Jelajahi Sumber

WIP structure Korean.

scossu 5 bulan lalu
induk
melakukan
04af071adb
2 mengubah file dengan 343 tambahan dan 317 penghapusan
  1. 310 310
      scriptshifter/hooks/korean/data.yml
  2. 33 7
      scriptshifter/hooks/korean/romanizer.py

+ 310 - 310
scriptshifter/hooks/korean/data.yml

@@ -2875,327 +2875,327 @@ fkr069:
   "첫애": "처대"
 
 fkr073:
-  [["f", 7]["i", 11]["m", 20], ["f", 0]["i", 12]["m", 20]]
-  [["f", 7]["i", 11]["m", 6], ["f", 0]["i", 12]["m", 6]]
-  [["f", 7]["i", 18]["m", 20], ["f", 0]["i", 14]["m", 20]]
-  [["f", 7]["i", 18]["m", 6], ["f", 0]["i", 14]["m", 6]]
-
-fkr074,
-  [["f", 25]["i", 11]["m", 20], ["f", 0]["i", 14]["m", 20]]
-  [["f", 25]["i", 11]["m", 6], ["f", 0]["i", 14]["m", 6]]
-  [["f", 25]["i", 18]["m", 20], ["f", 0]["i", 14]["m", 20]]
-  [["f", 25]["i", 18]["m", 6], ["f", 0]["i", 14]["m", 6]]
-
-fkr075,
-  [["f", 1]["i", 2], ["f", 21]["i", 2]]
-  [["f", 1]["i", 5], ["f", 21]["i", 2]]
-  [["f", 1]["i", 6], ["f", 21]["i", 6]]
-
-fkr076,
-  [["f", 2]["i", 2], ["f", 21]["i", 2]]
-  [["f", 2]["i", 5], ["f", 21]["i", 2]]
-  [["f", 2]["i", 6], ["f", 21]["i", 6]]
-  [["f", 2]["i", 11], ["f", 0]["i", 1]]
-
-fkr077,
-  [["f", 3]["i", 0], k~k
-  [["f", 3]["i", 2], ng~n
-  [["f", 3]["i", 5], ng~n
-  [["f", 3]["i", 6], ng~m
-  [["f", 3]["i", 11], k~s
-
-fkr078,
-  [["f", 4]["i", 5], ["f", 8]["i", 5]]
-
-fkr079,
-  [["f", 5]["i", 0], n~k
-  [["f", 5]["i", 2], n~n
-  [["f", 5]["i", 3], n~t
-  [["f", 5]["i", 12], n~ch
-
-fkr080,
-  [["f", 6]["i", 0], ["f", 4]["i", 15]]
-  [["f", 6]["i", 2], ["f", 4]["i", 2]]
-  [["f", 6]["i", 3], ["f", 4]["i", 16]]
-  [["f", 6]["i", 12], ["f", 4]["i", 14]]
-
-fkr081,
-  [["f", 7]["i", 2], ["f", 4]["i", 2]]
-  [["f", 7]["i", 5], ["f", 4]["i", 2]]
-  [["f", 7]["i", 6], ["f", 4]["i", 6]]
-
-fkr082,
-  [["f", 8]["i", 2], ["f", 8]["i", 5]]
-
-fkr083,
-  [["f", 9]["i", 0], l~k
-  [["f", 9]["i", 2], ng~n
-  [["f", 9]["i", 3], k~t
-  [["f", 9]["i", 12], k~ch
-
-fkr084,
-  [["f", 10]["i", 0], m~k
-  [["f", 10]["i", 2], m~n
-  [["f", 10]["i", 3], m~t
-  [["f", 10]["i", 12], m~ch
-
-fkr085,
-  [["f", 11]["i", 0], l~k
-  [["f", 11]["i", 2], m~n
-  [["f", 11]["i", 3], l~t
-  [["f", 11]["i", 12], l~ch
-
-fkr086,
-  [["f", 13]["i", 0], l~k
-  [["f", 13]["i", 2], l~l
-  [["f", 13]["i", 3], l~t
-  [["f", 13]["i", 12], l~ch
-
-fkr087,
-  [["f", 14]["i", 0], p~k
-  [["f", 14]["i", 2], m~n
-  [["f", 14]["i", 3], p~t
-  [["f", 14]["i", 12], p~ch
-
-fkr088,
-  [["f", 15]["i", 0], ["f", 8]["i", 15]]
-  [["f", 15]["i", 2], ["f", 8]["i", 5]]
-  [["f", 15]["i", 3], ["f", 8]["i", 16]]
-  [["f", 15]["i", 12], ["f", 8]["i", 14]]
-
-fkr089,
-  [["f", 16]["i", 5], ["f", 16]["i", 2]]
-
-fkr090,
-  [["f", 17]["i", 2], ["f", 16]["i", 2]]
-  [["f", 17]["i", 5], ["f", 16]["i", 2]]
-  [["f", 17]["i", 6], ["f", 16]["i", 6]]
-
-fkr091,
-  [["f", 18]["i", 0], ["f", 17]["i", 0]]
-  [["f", 18]["i", 2], ["f", 16]["i", 2]]
-  [["f", 18]["i", 3], ["f", 17]["i", 3]]
-  [["f", 18]["i", 5], ["f", 16]["i", 2]]
-  [["f", 18]["i", 6], ["f", 16]["i", 6]]
-  [["f", 18]["i", 9], ["f", 17]["i", 9]]
-  [["f", 18]["i", 11], ["f", 17]["i", 9]]
-  [["f", 18]["i", 12], ["f", 17]["i", 12]]
-
-fkr092,
-  [["f", 19]["i", 2], ["f", 4]["i", 2]]
-  [["f", 19]["i", 5], ["f", 4]["i", 2]]
-  [["f", 19]["i", 6], ["f", 4]["i", 6]]
-  [["f", 19]["i", 11], ["f", 0]["i", 9]]
-
-fkr093,
-  [["f", 20]["i", 2], ["f", 4]["i", 2]]
-  [["f", 20]["i", 5], ["f", 4]["i", 2]]
-  [["f", 20]["i", 6], ["f", 4]["i", 6]]
-  [["f", 20]["i", 11], ["f", 0]["i", 10]]
-
-fkr094,
-  [["f", 21]["i", 5], ["f", 21]["i", 2]]
-
-fkr095,
-  [["f", 22]["i", 2], ["f", 4]["i", 2]]
-  [["f", 22]["i", 5], ["f", 4]["i", 2]]
-  [["f", 22]["i", 6], ["f", 4]["i", 6]]
-  [["f", 22]["i", 11], ["f", 0]["i", 12]]
-  [["f", 22]["i", 18], ["f", 0]["i", 14]]
-
-fkr096,
-  [["f", 23]["i", 2], ["f", 4]["i", 2]]
-  [["f", 23]["i", 5], ["f", 4]["i", 2]]
-  [["f", 23]["i", 6], ["f", 4]["i", 6]]
-  [["f", 23]["i", 11], ["f", 0]["i", 14]]
-  [["f", 23]["i", 18], ["f", 0]["i", 14]]
-
-fkr097,
-  [["f", 24]["i", 2], ["f", 21]["i", 2]]
-  [["f", 24]["i", 6], ["f", 21]["i", 6]]
-  [["f", 24]["i", 11], ["f", 0]["i", 15]]
-
-fkr098,
-  [["f", 25]["i", 2], ["f", 4]["i", 2]]
-  [["f", 25]["i", 6], ["f", 4]["i", 6]]
-  [["f", 25]["i", 11], ["f", 0]["i", 16]]
-
-fkr099,
-  [["f", 26]["i", 2], ["f", 16]["i", 2]]
-  [["f", 26]["i", 6], ["f", 16]["i", 6]]
-  [["f", 26]["i", 11], ["f", 0]["i", 17]]
-
-fkr100,
-  [["f", 27]["i", 0], ["f", 0]["i", 15]]
-  [["f", 27]["i", 2], ["f", 4]["i", 2]]
-  [["f", 27]["i", 3], ["f", 0]["i", 16]]
-  [["f", 27]["i", 5], ["f", 4]["i", 2]]
-  [["f", 27]["i", 6], ["f", 4]["i", 6]]
-  [["f", 27]["i", 7], ["f", 0]["i", 17]]
-  [["f", 27]["i", 11], ["f", 0]["i", 11]]
-  [["f", 27]["i", 12], ["f", 0]["i", 14]]
-
-fkr101,
-  [["f", 5]["i", 11], ["f", 4]["i", 12]]
-  [["f", 6]["i", 11], ["f", 4]["i", 11]]
-  [["f", 9]["i", 11], ["f", 8]["i", 0]]
-  [["f", 10]["i", 11], ["f", 8]["i", 6]]
-  [["f", 11]["i", 11], ["f", 8]["i", 7]]
-  [["f", 12]["i", 11], ["f", 8]["i", 9]]
-  [["f", 13]["i", 11], ["f", 8]["i", 16]]
-  [["f", 14]["i", 11], ["f", 8]["i", 17]]
-  [["f", 15]["i", 11], ["f", 8]["i", 11]]
-
-fkr102,
-  [["f", 5]["i", 18], ["f", 4]["i", 14]]
-  [["f", 6]["i", 18], ["f", 4]["i", 18]]
-  [["f", 9]["i", 18], ["f", 8]["i", 15]]
-  [["f", 10]["i", 18], ["f", 16]["i", 18]]
-  [["f", 11]["i", 18], ["f", 8]["i", 17]]
-  [["f", 13]["i", 18], ["f", 8]["i", 16]]
-  [["f", 14]["i", 18], ["f", 8]["i", 17]]
-  [["f", 15]["i", 18], ["f", 8]["i", 18]]
-
-fkr103,
-  [["f", 0]["i", 0], ~g
-  [["f", 0]["i", 3], ~d
-  [["f", 0]["i", 7], ~b
-  [["f", 0]["i", 12], ~j
-  [["f", 4]["i", 0], n~g
-  [["f", 4]["i", 3], n~d
-  [["f", 4]["i", 7], n~b
-  [["f", 4]["i", 12], n~j
-  [["f", 8]["i", 0], l~g
-  [["f", 8]["i", 7], l~b
-  [["f", 16]["i", 0], m~g
-  [["f", 16]["i", 3], m~d
-  [["f", 16]["i", 7], m~b
-  [["f", 16]["i", 12], m~j
-  [["f", 21]["i", 0], ng~g
-  [["f", 21]["i", 3], ng~d
-  [["f", 21]["i", 7], ng~b
-  [["f", 21]["i", 12], ng~j
-
-fkr104,
-  [["f", 1]["i", 11], g~
-  [["f", 7]["i", 11], d~
-  [["f", 17]["i", 11], b~
-  [["f", 22]["i", 11], j~
-
-fkr105,
-  [["f", 8]["i", 3], l~d
-  [["f", 8]["i", 12], l~j
-
-fkr106,
-  [["f", 1], ["f", 1]]
-  [["f", 2], ["f", 1]]
-  [["f", 3], ["f", 1]]
-  [["f", 4], ["f", 4]]
-  [["f", 5], ["f", 4]]
-  [["f", 6], ["f", 4]]
-  [["f", 7], ["f", 7]]
-  [["f", 8], ["f", 8]]
-  [["f", 9], ["f", 1]]
-  [["f", 10], ["f", 16]]
-  [["f", 11], ["f", 8]]
-  [["f", 12], ["f", 8]]
-  [["f", 13], ["f", 8]]
-  [["f", 14], ["f", 17]]
-  [["f", 15], ["f", 8]]
-  [["f", 16], ["f", 16]]
-  [["f", 17], ["f", 17]]
-  [["f", 18], ["f", 17]]
-  [["f", 19], ["f", 7]]
-  [["f", 20], ["f", 7]]
-  [["f", 21], ["f", 21]]
-  [["f", 22], ["f", 7]]
-  [["f", 23], ["f", 7]]
-  [["f", 24], ["f", 1]]
-  [["f", 25], ["f", 7]]
-  [["f", 26], ["f", 17]]
-  [["f", 27], ["f", 7]]
+  - [[{"f": 7}, {"i": 11}, {"m": 20}], {"f": 0, "i": 12, "m": 20}]
+  - [[{"f": 7}, {"i": 11}, {"m": 6}], {"f": 0, "i": 12, "m": 6}]
+  - [[{"f": 7}, {"i": 18}, {"m": 20}], {"f": 0, "i": 14, "m": 20}]
+  - [[{"f": 7}, {"i": 18}, {"m": 6}], {"f": 0, "i": 14, "m": 6}]
+
+fkr074:
+  - [[{"f": 25}, {"i": 11}, {"m": 20}], {"f": 0, "i": 14, "m": 20}]
+  - [[{"f": 25}, {"i": 11}, {"m": 6}], {"f": 0, "i": 14, "m": 6}]
+  - [[{"f": 25}, {"i": 18}, {"m": 20}], {"f": 0, "i": 14, "m": 20}]
+  - [[{"f": 25}, {"i": 18}, {"m": 6}], {"f": 0, "i": 14, "m": 6}]
+
+fkr075:
+  - [[{"f": 1}, {"i": 2}], {"f": 21, "i": 2}]
+  - [[{"f": 1}, {"i": 5}], {"f": 21, "i": 2}]
+  - [[{"f": 1}, {"i": 6}], {"f": 21, "i": 6}]
+
+fkr076:
+  - [[{"f": 2}, {"i": 2}], {"f": 21, "i": 2}]
+  - [[{"f": 2}, {"i": 5}], {"f": 21, "i": 2}]
+  - [[{"f": 2}, {"i": 6}], {"f": 21, "i": 6}]
+  - [[{"f": 2}, {"i": 11}], {"f": 0, "i": 1}]
+
+fkr077:
+  - [[{"f": 3}, {"i": 0}], {"f": "k", "i": "k"}]
+  - [[{"f": 3}, {"i": 2}], {"f": "ng", "i": "n"}]
+  - [[{"f": 3}, {"i": 5}], {"f": "ng", "i": "n"}]
+  - [[{"f": 3}, {"i": 6}], {"f": "ng", "i": "m"}]
+  - [[{"f": 3}, {"i": 11}], {"f": "k", "i": "s"}]
+
+fkr078:
+  - [[{"f": 4}, {"i": 5}], {"f": 8, "i": 5}]
+
+fkr079:
+  - [[{"f": 5}, {"i": 0}], {"f": "n", "i": "k"}]
+  - [[{"f": 5}, {"i": 2}], {"f": "n", "i": "n"}]
+  - [[{"f": 5}, {"i": 3}], {"f": "n", "i": "t"}]
+  - [[{"f": 5}, {"i": 12}], {"f": "n", "i": "ch"}]
+
+fkr080:
+  - [[{"f": 6}, {"i": 0}], {"f": 4, "i": 15}]
+  - [[{"f": 6}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 6}, {"i": 3}], {"f": 4, "i": 16}]
+  - [[{"f": 6}, {"i": 12}], {"f": 4, "i": 14}]
+
+fkr081:
+  - [[{"f": 7}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 7}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 7}, {"i": 6}], {"f": 4, "i": 6}]
+
+fkr082:
+  - [[{"f": 8}, {"i": 2}], {"f": 8, "i": 5}]
+
+fkr083:
+  - [[{"f": 9}, {"i": 0}], {"f": "l", "i": "k"}]
+  - [[{"f": 9}, {"i": 2}], {"f": "ng", "i": "n"}]
+  - [[{"f": 9}, {"i": 3}], {"f": "k", "i": "t"}]
+  - [[{"f": 9}, {"i": 12}], {"f": "k", "i": "ch"}]
+
+fkr084:
+  - [[{"f": 10}, {"i": 0}], {"f": "m", "i": "k"}]
+  - [[{"f": 10}, {"i": 2}], {"f": "m", "i": "n"}]
+  - [[{"f": 10}, {"i": 3}], {"f": "m", "i": "t"}]
+  - [[{"f": 10}, {"i": 12}], {"f": "m", "i": "ch"}]
+
+fkr085:
+  - [[{"f": 11}, {"i": 0}], {"f": "l", "i": "k"}]
+  - [[{"f": 11}, {"i": 2}], {"f": "m", "i": "n"}]
+  - [[{"f": 11}, {"i": 3}], {"f": "l", "i": "t"}]
+  - [[{"f": 11}, {"i": 12}], {"f": "l", "i": "ch"}]
+
+fkr086:
+  - [[{"f": 13}, {"i": 0}], {"f": "l", "i": "k"}]
+  - [[{"f": 13}, {"i": 2}], {"f": "l", "i": "l"}]
+  - [[{"f": 13}, {"i": 3}], {"f": "l", "i": "t"}]
+  - [[{"f": 13}, {"i": 12}], {"f": "l", "i": "ch"}]
+
+fkr087:
+  - [[{"f": 14}, {"i": 0}], {"f": "p", "i": "k"}]
+  - [[{"f": 14}, {"i": 2}], {"f": "m", "i": "n"}]
+  - [[{"f": 14}, {"i": 3}], {"f": "p", "i": "t"}]
+  - [[{"f": 14}, {"i": 12}], {"f": "p", "i": "ch"}]
+
+fkr088:
+  - [[{"f": 15}, {"i": 0}], {"f": 8, "i": 15}]
+  - [[{"f": 15}, {"i": 2}], {"f": 8, "i": 5}]
+  - [[{"f": 15}, {"i": 3}], {"f": 8, "i": 16}]
+  - [[{"f": 15}, {"i": 12}], {"f": 8, "i": 14}]
+
+fkr089:
+  - [[{"f": 16}, {"i": 5}], {"f": 16, "i": 2}]
+
+fkr090:
+  - [[{"f": 17}, {"i": 2}], {"f": 16, "i": 2}]
+  - [[{"f": 17}, {"i": 5}], {"f": 16, "i": 2}]
+  - [[{"f": 17}, {"i": 6}], {"f": 16, "i": 6}]
+
+fkr091:
+  - [[{"f": 18}, {"i": 0}], {"f": 17, "i": 0}]
+  - [[{"f": 18}, {"i": 2}], {"f": 16, "i": 2}]
+  - [[{"f": 18}, {"i": 3}], {"f": 17, "i": 3}]
+  - [[{"f": 18}, {"i": 5}], {"f": 16, "i": 2}]
+  - [[{"f": 18}, {"i": 6}], {"f": 16, "i": 6}]
+  - [[{"f": 18}, {"i": 9}], {"f": 17, "i": 9}]
+  - [[{"f": 18}, {"i": 11}], {"f": 17, "i": 9}]
+  - [[{"f": 18}, {"i": 12}], {"f": 17, "i": 12}]
+
+fkr092:
+  - [[{"f": 19}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 19}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 19}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 19}, {"i": 11}], {"f": 0, "i": 9}]
+
+fkr093:
+  - [[{"f": 20}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 20}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 20}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 20}, {"i": 11}], {"f": 0, "i": 10}]
+
+fkr094:
+  - [[{"f": 21}, {"i": 5}], {"f": 21, "i": 2}]
+
+fkr095:
+  - [[{"f": 22}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 22}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 22}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 22}, {"i": 11}], {"f": 0, "i": 12}]
+  - [[{"f": 22}, {"i": 18}], {"f": 0, "i": 14}]
+
+fkr096:
+  - [[{"f": 23}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 23}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 23}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 23}, {"i": 11}], {"f": 0, "i": 14}]
+  - [[{"f": 23}, {"i": 18}], {"f": 0, "i": 14}]
+
+fkr097:
+  - [[{"f": 24}, {"i": 2}], {"f": 21, "i": 2}]
+  - [[{"f": 24}, {"i": 6}], {"f": 21, "i": 6}]
+  - [[{"f": 24}, {"i": 11}], {"f": 0, "i": 15}]
+
+fkr098:
+  - [[{"f": 25}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 25}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 25}, {"i": 11}], {"f": 0, "i": 16}]
+
+fkr099:
+  - [[{"f": 26}, {"i": 2}], {"f": 16, "i": 2}]
+  - [[{"f": 26}, {"i": 6}], {"f": 16, "i": 6}]
+  - [[{"f": 26}, {"i": 11}], {"f": 0, "i": 17}]
+
+fkr100:
+  - [[{"f": 27}, {"i": 0}], {"f": 0, "i": 15}]
+  - [[{"f": 27}, {"i": 2}], {"f": 4, "i": 2}]
+  - [[{"f": 27}, {"i": 3}], {"f": 0, "i": 16}]
+  - [[{"f": 27}, {"i": 5}], {"f": 4, "i": 2}]
+  - [[{"f": 27}, {"i": 6}], {"f": 4, "i": 6}]
+  - [[{"f": 27}, {"i": 7}], {"f": 0, "i": 17}]
+  - [[{"f": 27}, {"i": 11}], {"f": 0, "i": 11}]
+  - [[{"f": 27}, {"i": 12}], {"f": 0, "i": 14}]
+
+fkr101:
+  - [[{"f": 5}, {"i": 11}], {"f": 4, "i": 12}]
+  - [[{"f": 6}, {"i": 11}], {"f": 4, "i": 11}]
+  - [[{"f": 9}, {"i": 11}], {"f": 8, "i": 0}]
+  - [[{"f": 10}, {"i": 11}], {"f": 8, "i": 6}]
+  - [[{"f": 11}, {"i": 11}], {"f": 8, "i": 7}]
+  - [[{"f": 12}, {"i": 11}], {"f": 8, "i": 9}]
+  - [[{"f": 13}, {"i": 11}], {"f": 8, "i": 16}]
+  - [[{"f": 14}, {"i": 11}], {"f": 8, "i": 17}]
+  - [[{"f": 15}, {"i": 11}], {"f": 8, "i": 11}]
+
+fkr102:
+  - [[{"f": 5}, {"i": 18}], {"f": 4, "i": 14}]
+  - [[{"f": 6}, {"i": 18}], {"f": 4, "i": 18}]
+  - [[{"f": 9}, {"i": 18}], {"f": 8, "i": 15}]
+  - [[{"f": 10}, {"i": 18}], {"f": 16, "i": 18}]
+  - [[{"f": 11}, {"i": 18}], {"f": 8, "i": 17}]
+  - [[{"f": 13}, {"i": 18}], {"f": 8, "i": 16}]
+  - [[{"f": 14}, {"i": 18}], {"f": 8, "i": 17}]
+  - [[{"f": 15}, {"i": 18}], {"f": 8, "i": 18}]
+
+fkr103:
+  - [[{"f": 0}, {"i": 0}], {"f": "", "i": "g"}]
+  - [[{"f": 0}, {"i": 3}], {"f": "", "i": "d"}]
+  - [[{"f": 0}, {"i": 7}], {"f": "", "i": "b"}]
+  - [[{"f": 0}, {"i": 12}], {"f": "", "i": "j"}]
+  - [[{"f": 4}, {"i": 0}], {"f": "n", "i": "g"}]
+  - [[{"f": 4}, {"i": 3}], {"f": "n", "i": "d"}]
+  - [[{"f": 4}, {"i": 7}], {"f": "n", "i": "b"}]
+  - [[{"f": 4}, {"i": 12}], {"f": "n", "i": "j"}]
+  - [[{"f": 8}, {"i": 0}], {"f": "l", "i": "g"}]
+  - [[{"f": 8}, {"i": 7}], {"f": "l", "i": "b"}]
+  - [[{"f": 16}, {"i": 0}], {"f": "m", "i": "g"}]
+  - [[{"f": 16}, {"i": 3}], {"f": "m", "i": "d"}]
+  - [[{"f": 16}, {"i": 7}], {"f": "m", "i": "b"}]
+  - [[{"f": 16}, {"i": 12}], {"f": "m", "i": "j"}]
+  - [[{"f": 21}, {"i": 0}], {"f": "ng", "i": "g"}]
+  - [[{"f": 21}, {"i": 3}], {"f": "ng", "i": "d"}]
+  - [[{"f": 21}, {"i": 7}], {"f": "ng", "i": "b"}]
+  - [[{"f": 21}, {"i": 12}], {"f": "ng", "i": "j"}]
+
+fkr104:
+  - [[{"f": 1}, {"i": 11}], {"f": "g", "i": ""}]
+  - [[{"f": 7}, {"i": 11}], {"f": "d", "i": ""}]
+  - [[{"f": 17}, {"i": 11}], {"f": "b", "i": ""}]
+  - [[{"f": 22}, {"i": 11}], {"f": "j", "i": ""}]
+
+fkr105:
+  - [[{"f": 8}, {"i": 3}], {"f": "l", "i": "d"}]
+  - [[{"f": 8}, {"i": 12}], {"f": "l", "i": "j"}]
+
+fkr106:
+  - [[{"f": 1}], {"f": 1}]
+  - [[{"f": 2}], {"f": 1}]
+  - [[{"f": 3}], {"f": 1}]
+  - [[{"f": 4}], {"f": 4}]
+  - [[{"f": 5}], {"f": 4}]
+  - [[{"f": 6}], {"f": 4}]
+  - [[{"f": 7}], {"f": 7}]
+  - [[{"f": 8}], {"f": 8}]
+  - [[{"f": 9}], {"f": 1}]
+  - [[{"f": 10}], {"f": 16}]
+  - [[{"f": 11}], {"f": 8}]
+  - [[{"f": 12}], {"f": 8}]
+  - [[{"f": 13}], {"f": 8}]
+  - [[{"f": 14}], {"f": 17}]
+  - [[{"f": 15}], {"f": 8}]
+  - [[{"f": 16}], {"f": 16}]
+  - [[{"f": 17}], {"f": 17}]
+  - [[{"f": 18}], {"f": 17}]
+  - [[{"f": 19}], {"f": 7}]
+  - [[{"f": 20}], {"f": 7}]
+  - [[{"f": 21}], {"f": 21}]
+  - [[{"f": 22}], {"f": 7}]
+  - [[{"f": 23}], {"f": 7}]
+  - [[{"f": 24}], {"f": 1}]
+  - [[{"f": 25}], {"f": 7}]
+  - [[{"f": 26}], {"f": 17}]
+  - [[{"f": 27}], {"f": 7}]
 
 fkr107:
-  "i9#m16": "shwi"
+  - [[{"i": 9}, {"m": 16}], {"i", "shwi", "m": ""}]
 
 fkr108:
-  "n~g": "n'g"
+  - [[{"f": "n"}, {"i": "g"}], {"f": "n'", "i": "g"}]
 
 fkr109:
   initials:
-    "i10": "ss"
-    "i11": ""
-    "i12": "ch"
-    "i13": "tch"
-    "i14": "ch'"
-    "i15": "k'"
-    "i16": "t'"
-    "i17": "p'"
-    "i18": "h"
-    "i0": "k"
-    "i1": "kk"
-    "i2": "n"
-    "i3": "t"
-    "i4": "tt"
-    "i5": "r"
-    "i6": "m"
-    "i7": "p"
-    "i8": "pp"
-    "i9": "s"
+    0: "k"
+    1: "kk"
+    2: "n"
+    3: "t"
+    4: "tt"
+    5: "r"
+    6: "m"
+    7: "p"
+    8: "pp"
+    9: "s"
+    10: "ss"
+    11: ""
+    12: "ch"
+    13: "tch"
+    14: "ch'"
+    15: "k'"
+    16: "t'"
+    17: "p'"
+    18: "h"
 
   medials:
-    "m10": "wae"
-    "m11": "oe"
-    "m12": "yo"
-    "m13": "u"
-    "m14": "wŏ"
-    "m15": "we"
-    "m16": "wi"
-    "m17": "yu"
-    "m18": "ŭ"
-    "m19": "ŭi"
-    "m20": "i"
-    "m0": "a"
-    "m1": "ae"
-    "m2": "ya"
-    "m3": "yae"
-    "m4": "ŏ"
-    "m5": "e"
-    "m6": "yŏ"
-    "m7": "ye"
-    "m8": "o"
-    "m9": "wa"
-    "f0E": "f0"
+    0: "a"
+    1: "ae"
+    2: "ya"
+    3: "yae"
+    4: "ŏ"
+    5: "e"
+    6: "yŏ"
+    7: "ye"
+    8: "o"
+    9: "wa"
+    10: "wae"
+    11: "oe"
+    12: "yo"
+    13: "u"
+    14: "wŏ"
+    15: "we"
+    16: "wi"
+    17: "yu"
+    18: "ŭ"
+    19: "ŭi"
+    20: "i"
+    # "f0E": "f0"
 
   finals:
-    "f10": "m"
-    "f11": "l"
-    "f12": "l"
-    "f13": "l"
-    "f14": "p"
-    "f15": "l"
-    "f16": "m"
-    "f17": "p"
-    "f18": "p"
-    "f19": "t"
-    "f20": "t"
-    "f21": "ng"
-    "f22": "t"
-    "f23": "t"
-    "f24": "k"
-    "f25": "t"
-    "f26": "p"
-    "f27": "t"
-    "f1": "k"
-    "f2": "k"
-    "f3": "k"
-    "f4": "n"
-    "f5": "n"
-    "f6": "n"
-    "f7": "t"
-    "f8": "l"
-    "f9": "k"
-    "f0": ""
+    0: ""
+    1: "k"
+    2: "k"
+    3: "k"
+    4: "n"
+    5: "n"
+    6: "n"
+    7: "t"
+    8: "l"
+    9: "k"
+    10: "m"
+    11: "l"
+    12: "l"
+    13: "l"
+    14: "p"
+    15: "l"
+    16: "m"
+    17: "p"
+    18: "p"
+    19: "t"
+    20: "t"
+    21: "ng"
+    22: "t"
+    23: "t"
+    24: "k"
+    25: "t"
+    26: "p"
+    27: "t"
 
 fkr111:
   "la": "ra"

+ 33 - 7
scriptshifter/hooks/korean/romanizer.py

@@ -474,14 +474,40 @@ def _kor_rom(kor):
         # FKR107: Exception for '쉬' = shi
         # FKR108: Exception for 'ㄴㄱ'= n'g
         for fkr_i in range(73, 109):
-            _fkr_log(fkr_i)
-            _bk = rom
-            rom = _replace_map(rom, KCONF[f"fkr{fkr_i:03}"])
-            if _bk != rom:
-                logger.debug(f"FKR{fkr_i} substitution: {rom} (was: {_bk})")
-
-        logger.debug(f"Coded romanization after replacements: {rom}")
+            # First dict is the source, second is the replacement destination.
+            for lookup, sub in fkr_i:
+                # Loop through coded tokens.
+                for i in range(rom_ls):
+                    tk = rom_ls[i]
+                    break_ = False
+                    rules = {}
+                    # Loop through lookup keys and look for a match for ALL.
+                    for j in range(lookup):
+                        if j == 0 and "f" in lookup[j]:
+                            # The lookup is looking for the final of the
+                            # previous token.
+                            if i == 0:
+                                # If at first token, no reason to continue.
+                                break_ = True
+                                break
+                            rules["f"] = rom_ls[i - 1]["f"] == lookup["f"]
+                        else:
+                            # Each rule has only one key.
+                            k = next(iter(lookup))
+                            rules[k] = rom_ls[i].get(k, "") == lookup[k]
+
+                    if break_:
+                        break
+                    if all(rules):
+                        _fkr_log(fkr_i)
+                        logger.debug(
+                                f"FKR{fkr_i} substitution: {sub} "
+                                f"(was: {rom_ls[i]})")
+                        rom_ls[i].update(sub)
+
+        logger.debug(f"Coded romanization after replacements: {rom_ls}")
         # FKR109: Convert everything else
+        # i.e. decode coded string.
         _fkr_log(109)
         for pos, data in KCONF["fkr109"].items():
             rom = _replace_map(rom, data)