\uFB00 = ff
\uFB01 = fi
\uFB02 = fl
+ \uFB03 = ffi
+ \uFB04 = ffl
+ \uFB05 = \u017Ft # required at least for Estonian
+ \uFB06 = st
# pronounciation-based Chinese (4)
# FIXME: enable them after zh-CHS tailoring is added.
-#@2052 = 4 # zh-CN = zh-CHS
-#@4100 = 4 # zh-SG = zh-CHS
-#@5124 = 4 # zh-MO = zh-CHS
+@2052 = 4 # zh-CN = zh-CHS
+@4100 = 4 # zh-SG = zh-CHS
+@5124 = 4 # zh-MO = zh-CHS
# stroke-count-based Chinese : zh-CHT (31748)
# FIXME: enable them after zh-CHT tailoring is added.
-#@1028 = 31748 # zh-TW = zh-CHT
-#@3076 = 31748 # zh-HK = zh-CHT
+@1028 = 31748 # zh-TW = zh-CHT
+@3076 = 31748 # zh-HK = zh-CHT
# other aliases
@20 = 6 # no = da
\u04BA : 10 6B * *
\u04BB : 10 6B * *
+#@3 ca : contraction "ch" and "ll" are not handled
+
+@4 # zh-CHS : actually no mapping is required, but needed for aliases
+
@5 # cs
ch : 0E 2E 01 01
\u010C : 0E 0C 01 *
aa : 0E B1 01 01
\u00C4 : 0E AC * *
\u00E4 : 0E AC * *
- \u00C6 : 0E AC 01 01
+ \u00C6 : 0E AC 01 12
\u00E6 : 0E AC 01 01
\u01E2 : 0E AC 03 *
\u01E3 : 0E AC 03 *
\u0170 : 0E A1 1B *
\u0171 : 0E A1 1B *
+@15 # is
+ \u00C1 : 0E 04 01 *
+ \u00C6 : 0E AC 01 *
+ \u00C9 : 0E 22 01 *
+ \u00CD : 0E 33 01 *
+ \u00D0 : 0E 1B 01 *
+ \u00D3 : 0E 7D 01 *
+ \u00D6 : 0E AD 01 *
+ \u00D8 : 0E AD 1E *
+ \u00DA : 0E A0 01 *
+ \u00DD : 0E A8 01 *
+ \u00DE : 0E AB 01 *
+ \u00E1 : 0E 04 01 *
+ \u00E6 : 0E AC 01 *
+ \u00E9 : 0E 22 01 *
+ \u00ED : 0E 33 01 *
+ \u00F0 : 0E 7C 0E *
+ \u00F3 : 0E 7C 13 *
+ \u00F6 : 0E AD 01 *
+ \u00F8 : 0E AD 1E *
+ \u00FA : 0E A0 01 *
+ \u00FD : 0E A8 01 *
+ \u00FE : 0E AB 01 *
+ \u01E2 : 0E AC 16 *
+ \u01E3 : 0E AC 16 *
+ \u01FC : 0E 04 22 *
+ \u01FD : 0E 04 22 *
+
+@17 # ja
+ \u005C : 0A 05 * *
+ # \u2015 is treated as extender
+
+@18 # ko
+ \u005C : 0A 23 * *
+ # FIXME: For Korean FFA0-FFDC the table generator should fill this
+ # area to be equivalent to the corresponding Jamo, and should use
+ # different CodePointIndexer instance than usual CJK indexer.
+
+@21 # pl
+ \u00D3 : 0E 7D 01 *
+ \u00F3 : 0E 7D 01 *
+ \u0104 : 0E 04 01 *
+ \u0105 : 0E 04 01 *
+ \u0106 : 0E 0B 01 *
+ \u0107 : 0E 0B 01 *
+ \u0118 : 0E 22 01 *
+ \u0119 : 0E 22 01 *
+ \u0141 : 0E 4C 01 *
+ \u0142 : 0E 4C 01 *
+ \u0143 : 0E 72 01 *
+ \u0144 : 0E 72 01 *
+ \u015A : 0E 97 01 *
+ \u015B : 0E 97 01 *
+ \u0179 : 0E AB 01 *
+ \u017A : 0E AB 01 *
+ \u017B : 0E AC 01 *
+ \u017C : 0E AC 01 *
+
@24 # ro
\u00CE : 0E 34 01 *
\u00EE : 0E 34 01 *
\u0162 : 0E 9E 01 *
\u0163 : 0E 9E 01 *
-@26 # hr FIXME: finish
+@26 # hr
D\u017D : 0E 1D 04 1A
D\u017E : 0E 1D 04 12
d\u017E : 0E 1D 04 01
- \u0106 : 0E 0A 01 *
- \u0107 : 0E 0A 01 *
+ \u0106 : 0E 0C 01 *
+ \u0107 : 0E 0C 01 *
\u010C : 0E 0B 01 *
\u010D : 0E 0B 01 *
\u0110 : 0E 1E 01 *
*Diacritical 15 -> 05
*Diacritical 14 -> 04
+@27 # sk
+ \u00C4 : 0E 03 01 *
+ \u00D4 : 0E 7D 01 *
+ \u00E4 : 0E 03 01 *
+ \u00F4 : 0E 7D 01 *
+ \u010C : 0E 0C 01 *
+ \u010D : 0E 0C 01 *
+ \u0158 : 0E 8D 01 *
+ \u0159 : 0E 8D 01 *
+ \u0160 : 0E 97 01 *
+ \u0161 : 0E 97 01 *
+ \u017D : 0E AD 01 *
+ \u017E : 0E AD 01 *
+ \u0308 : 01 03 * * # Actually it seems the same as the secondary change
+ *Diacritical 13 -> 05
+ *Diacritical 10 -> 04
+ *Diacritical 11 -> 04
+
+@31 # tr
+ I : 0E 31 * *
+ \u00C7 : 0E 0C 01 *
+ \u00D6 : 0E 7D 01 *
+ \u00DC : 0E A1 01 *
+ \u00E7 : 0E 0C 01 *
+ \u00F6 : 0E 7D 01 *
+ \u00FC : 0E A1 01 *
+ \u011E : 0E 26 01 *
+ \u011F : 0E 26 01 *
+ \u0130 : 0E 32 01 *
+ \u0131 : 0E 31 01 *
+ # \u0132 = IJ
+ \u015E : 0E 97 01 *
+ \u015F : 0E 97 01 *
+ \u3390 : 0E 30 01 *
+ \u33CA : 0E 2E 01 *
+ \u33CB : 0E 2F 01 *
+
@34 # uk
\u042C : 10 8A * * # [10 7E]
\u044C : 10 8A * * # [10 7E]
+@36 # sl
+ \u0106 : 0E 19 01 *
+ \u0107 : 0E 19 01 *
+ \u010C : 0E 18 01 *
+ \u010D : 0E 18 01 *
+ \u0110 : 0E 20 01 *
+ \u0111 : 0E 20 01 *
+ \u015A : 0E 98 01 *
+ \u015B : 0E 98 01 *
+ \u0160 : 0E 97 01 *
+ \u0161 : 0E 97 01 *
+ \u0179 : 0E AD 01 *
+ \u017A : 0E AD 01 *
+ \u017D : 0E AC 01 *
+ \u017E : 0E AC 01 *
+
+@37 # et
+ V : 0E A1 * *
+ W : 0E A1 * *
+ Z : 0E 97 * *
+ v : 0E A1 * *
+ w : 0E A1 * *
+ z : 0E 97 * *
+ \u00C4 : 0E A3 01 *
+ \u00C5 : 0E A2 01 *
+ \u00C6 : 0E A4 01 *
+ \u00DC : 0E A5 01 *
+ \u00E4 : 0E A3 01 *
+ \u00E5 : 0E A2 01 *
+ \u00E6 : 0E A4 01 *
+ \u00FC : 0E A5 01 *
+ \u0160 : 0E 96 01 *
+ \u0161 : 0E 96 01 *
+ \u0160 : 0E 96 01 *
+ \u0179 : 0E 97 0E *
+ \u017A : 0E 97 0E *
+ \u017B : 0E 97 10 *
+ \u017C : 0E 97 10 *
+ \u017D : 0E 98 01 *
+ \u017E : 0E 98 01 *
+ \u017F : 0E 91 03 *
+
+@38 # lv
+ \u010C : 0E 0B 01 *
+ \u010D : 0E 0B 01 *
+ \u0122 : 0E 26 01 *
+ \u0123 : 0E 26 01 *
+ \u0136 : 0E 47 01 *
+ \u0137 : 0E 47 01 *
+ \u013B : 0E 49 01 *
+ \u013C : 0E 49 01 *
+ \u0145 : 0E 7B 01 *
+ \u0146 : 0E 7B 01 *
+ \u0160 : 0E 97 01 *
+ \u0160 : 0E 97 01 *
+ \u017D : 0E AB 01 *
+ \u017E : 0E AB 01 *
+
+@39 # lt
+ Y : 0E 33 * *
+ y : 0E 33 * *
+ \u010C : 0E 0B 01 *
+ \u010D : 0E 0B 01 *
+ \u0160 : 0E 97 01 *
+ \u0161 : 0E 97 01 *
+ \u017D : 0E AB 01 *
+ \u017E : 0E AB 01 *
+ \uFE39 : 0E 33 * *
+ \uFE59 : 0E 33 * *
+ * Diacritical 1B -> 0F
+
+@42 # vi
+ P : 0E 7F * *
+ R : 0E 8B * *
+ p : 0E 7F * *
+ r : 0E 8B * *
+ \u00C2 : 0E 04 01 *
+ \u00CA : 0E 22 01 *
+ \u00CE : 0E 34 01 *
+ \u00D4 : 0E 7D 01 *
+ \u00DB : 0E A1 01 *
+ \u00E2 : 0E 04 01 *
+ \u00EA : 0E 22 01 *
+ \u00EE : 0E 34 01 *
+ \u00F4 : 0E 7D 01 *
+ \u00FB : 0E A1 01 *
+ \u0110 : 0E 1B 01 *
+ \u0111 : 0E 1B 01 *
+ \u01A0 : 0E 1B 01 *
+ \u01A1 : 0E 1B 01 *
+ \u01AF : 0E A0 01 *
+ \u01B0 : 0E A0 01 *
+ \u0300 : 01 01 * * # Actually it seems the same as the secondary change
+ \u0301 : 01 04 * * # Actually it seems the same as the secondary change
+ \u0303 : 01 03 * * # Actually it seems the same as the secondary change
+ \u0309 : 01 01 * * # Actually it seems the same as the secondary change
+ \u0323 : 01 05 * * # Actually it seems the same as the secondary change
+ \u0340 : 01 01 * * # Actually it seems the same as the secondary change
+ \u0341 : 01 04 * * # Actually it seems the same as the secondary change
+ \u1EA4 : 0E 04 06 *
+ \u1EA5 : 0E 04 06 *
+ \u1EA6 : 0E 04 03 *
+ \u1EA7 : 0E 04 03 *
+ \u1EA8 : 0E 04 04 *
+ \u1EA9 : 0E 04 04 *
+ \u1EAA : 0E 04 05 *
+ \u1EAB : 0E 04 05 *
+ \u1EAC : 0E 04 07 *
+ \u1EAD : 0E 04 07 *
+ \u1EAE : 0E 03 06 *
+ \u1EAF : 0E 03 06 *
+ \u1EB0 : 0E 03 03 *
+ \u1EB1 : 0E 03 03 *
+ \u1EB2 : 0E 03 04 *
+ \u1EB3 : 0E 03 04 *
+ \u1EB4 : 0E 03 05 *
+ \u1EB5 : 0E 03 05 *
+ \u1EB6 : 0E 03 07 *
+ \u1EB7 : 0E 03 07 *
+ \u1EB8 : 0E 21 07 *
+ \u1EB9 : 0E 21 07 *
+ \u1EBA : 0E 21 04 *
+ \u1EBB : 0E 21 04 *
+ \u1EBC : 0E 21 05 *
+ \u1EBD : 0E 21 05 *
+ \u1EBE : 0E 22 06 *
+ \u1EBF : 0E 22 06 *
+ \u1EC0 : 0E 22 03 *
+ \u1EC1 : 0E 22 03 *
+ \u1EC2 : 0E 22 04 *
+ \u1EC3 : 0E 22 04 *
+ \u1EC4 : 0E 22 05 *
+ \u1EC5 : 0E 22 05 *
+ \u1EC6 : 0E 22 07 *
+ \u1EC7 : 0E 22 07 *
+ \u1ED0 : 0E 7D 06 *
+ \u1ED1 : 0E 7D 06 *
+ \u1ED2 : 0E 7D 03 *
+ \u1ED3 : 0E 7D 03 *
+ \u1ED4 : 0E 7D 04 *
+ \u1ED5 : 0E 7D 04 *
+ \u1ED6 : 0E 7D 05 *
+ \u1ED7 : 0E 7D 05 *
+ \u1ED8 : 0E 7D 07 *
+ \u1ED9 : 0E 7D 07 *
+ \u1EDA : 0E 7E 06 *
+ \u1EDB : 0E 7E 06 *
+ \u1EDC : 0E 7E 03 *
+ \u1EDD : 0E 7E 03 *
+ \u1EDE : 0E 7E 04 *
+ \u1EDF : 0E 7E 04 *
+ \u1EE0 : 0E 7E 05 *
+ \u1EE1 : 0E 7E 05 *
+ \u1EE2 : 0E 7E 07 *
+ \u1EE3 : 0E 7E 07 *
+ \u1EE8 : 0E A0 06 *
+ \u1EE9 : 0E A0 06 *
+ \u1EEA : 0E A0 03 *
+ \u1EEB : 0E A0 03 *
+ \u1EEC : 0E A0 04 *
+ \u1EED : 0E A0 04 *
+ \u1EEE : 0E A0 05 *
+ \u1EEF : 0E A0 05 *
+ \u1EF0 : 0E A0 07 *
+ \u1EF1 : 0E A0 07 *
+ * Diacritical 0F -> 03
+ * Diacritical 0E -> 06
+ * Diacritical 19 -> 05
+ * Diacritical 58 -> 07
+ * Diacritical 59 -> 07
+ * Diacritical 43 -> 04
+ * Diacritical 44 -> 04
+
@47 # mk
\u0403 : 10 13 * *
\u0453 : 10 13 * *
\u040C : 10 58 * *
\u045C : 10 58 * *
+
+@31748 # zh-CHT : actually no mapping is required, but needed for aliases