#-------------------------------------------------------------------- # Copyright (c) 1999-2004, International Business Machines # Corporation and others. All Rights Reserved. #-------------------------------------------------------------------- :: NFD (NFC) ; # to do: make reversible # define special conversion characters. # varients of this could use different characters, or set one or the other to null. $pre = \< ; $post = \> ; # Provide keyboard equivalents for common diacritics used in transliteration $pre \` $post <> \u0300 ; # COMBINING GRAVE ACCENT $pre \' $post <> \u0301 ; # COMBINING ACUTE ACCENT $pre \^ $post <> \u0302 ; # COMBINING CIRCUMFLEX ACCENT $pre \~ $post <> \u0303 ; # COMBINING TILDE $pre \- $post <> \u0304 ; # COMBINING MACRON $pre \" $post <> \u0308 ; # COMBINING DIAERESIS $pre \* $post <> \u030A ; # COMBINING RING ABOVE $pre \, $post <> \u0327 ; # COMBINING CEDILLA $pre '/' $post <> \u0338 ; # COMBINING LONG SOLIDUS OVERLAY $pre \. $post <> \u0323 ; # COMBINING DOT BELOW # Combine common characters $pre AE $post <> \u00C6 ; # LATIN CAPITAL LETTER AE $pre ae $post <> \u00E6 ; # LATIN SMALL LETTER AE $pre D $post <> \u00D0 ; # LATIN CAPITAL LETTER ETH $pre d $post <> \u00F0 ; # LATIN SMALL LETTER ETH $pre O'/' $post <> \u00D8 ; # LATIN CAPITAL LETTER O WITH STROKE $pre o'/' $post <> \u00F8 ; # LATIN SMALL LETTER O WITH STROKE $pre TH $post <> \u00DE ; # LATIN CAPITAL LETTER THORN $pre th $post <> \u00FE ; # LATIN SMALL LETTER THORN $pre OE $post <> \u0152 ; # LATIN CAPITAL LIGATURE OE $pre oe $post <> \u0153 ; # LATIN SMALL LIGATURE OE $pre ss $post <> \u00DF ; # LATIN SMALL LETTER SHARP S $pre NG $post <> \u014A ; # LATIN CAPITAL LETTER ENG $pre ng $post <> \u014B ; # LATIN SMALL LETTER ENG $pre T $post <> \u0398 ; # THETA $pre t $post <> \u03B8 ; # THETA $pre SH $post <> \u01A9 ; # LATIN CAPITAL LETTER ESH $pre sh $post <> \u0283 ; # LATIN SMALL LETTER ESH $pre ZH $post <> \u01B7 ; # LATIN CAPITAL LETTER EZH $pre zh $post <> \u0292 ; # LATIN SMALL LETTER EZH $pre U $post <> \u01B1 ; # LATIN CAPITAL LETTER UPSILON $pre u $post <> \u028A ; # LATIN SMALL LETTER UPSILON $pre A $post <> \u018F ; # LATIN CAPITAL LETTER SCHWA $pre a $post <> \u0259 ; # LATIN SMALL LETTER SCHWA $pre O $post <> \u0186 ; # LATIN CAPITAL LETTER OPEN O $pre o $post <> \u0254 ; # LATIN SMALL LETTER OPEN O $pre E $post <> \u0190 ; # LATIN CAPITAL LETTER OPEN E $pre e $post <> \u025B ; # LATIN SMALL LETTER OPEN E # three that don't have uppercases $pre '?' $post <> \u0294 ; # LATIN LETTER GLOTTAL STOP $pre i $post <> \u026A ; # LATIN LETTER SMALL CAPITAL I $pre v $post <> \u028C ; # LATIN SMALL LETTER TURNED V # Additional Characters that may be added in the future # $pre XXX $post <> \u0306 ; # COMBINING BREVE # $pre XXX $post <> \u0307 ; # COMBINING DOT ABOVE # $pre XXX $post <> \u0309 ; # COMBINING HOOK ABOVE # $pre XXX $post <> \u030B ; # COMBINING DOUBLE ACUTE ACCENT # $pre XXX $post <> \u030C ; # COMBINING CARON # $pre XXX $post <> \u030F ; # COMBINING DOUBLE GRAVE ACCENT # $pre XXX $post <> \u0311 ; # COMBINING INVERTED BREVE # $pre XXX $post <> \u0313 ; # COMBINING COMMA ABOVE # $pre XXX $post <> \u0314 ; # COMBINING REVERSED COMMA ABOVE # $pre XXX $post <> \u031B ; # COMBINING HORN # $pre XXX $post <> \u0324 ; # COMBINING DIAERESIS BELOW # $pre XXX $post <> \u0325 ; # COMBINING RING BELOW # $pre XXX $post <> \u0326 ; # COMBINING COMMA BELOW # $pre XXX $post <> \u0328 ; # COMBINING OGONEK # $pre XXX $post <> \u032D ; # COMBINING CIRCUMFLEX ACCENT BELOW # $pre XXX $post <> \u032E ; # COMBINING BREVE BELOW # $pre XXX $post <> \u0330 ; # COMBINING TILDE BELOW # $pre XXX $post <> \u0331 ; # COMBINING MACRON BELOW # $pre YYY $post <> \u00AA ; # FEMININE ORDINAL INDICATOR # $pre YYY $post <> \u00BA ; # MASCULINE ORDINAL INDICATOR # $pre YYY $post <> \u0110 ; # LATIN CAPITAL LETTER D WITH STROKE # $pre YYY $post <> \u0111 ; # LATIN SMALL LETTER D WITH STROKE # $pre YYY $post <> \u0126 ; # LATIN CAPITAL LETTER H WITH STROKE # $pre YYY $post <> \u0127 ; # LATIN SMALL LETTER H WITH STROKE # $pre YYY $post <> \u0131 ; # LATIN SMALL LETTER DOTLESS I # $pre YYY $post <> \u0138 ; # LATIN SMALL LETTER KRA # $pre YYY $post <> \u013F ; # LATIN CAPITAL LETTER L WITH MIDDLE DOT # $pre YYY $post <> \u0140 ; # LATIN SMALL LETTER L WITH MIDDLE DOT # $pre YYY $post <> \u0141 ; # LATIN CAPITAL LETTER L WITH STROKE # $pre YYY $post <> \u0142 ; # LATIN SMALL LETTER L WITH STROKE # $pre YYY $post <> \u0149 ; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE # $pre YYY $post <> \u0166 ; # LATIN CAPITAL LETTER T WITH STROKE # $pre YYY $post <> \u0167 ; # LATIN SMALL LETTER T WITH STROKE # $pre YYY $post <> \u017F ; # LATIN SMALL LETTER LONG S # $pre YYY $post <> \u0180 ; # LATIN SMALL LETTER B WITH STROKE # $pre YYY $post <> \u0181 ; # LATIN CAPITAL LETTER B WITH HOOK # $pre YYY $post <> \u0182 ; # LATIN CAPITAL LETTER B WITH TOPBAR # $pre YYY $post <> \u0183 ; # LATIN SMALL LETTER B WITH TOPBAR # $pre YYY $post <> \u0184 ; # LATIN CAPITAL LETTER TONE SIX # $pre YYY $post <> \u0185 ; # LATIN SMALL LETTER TONE SIX # $pre YYY $post <> \u0187 ; # LATIN CAPITAL LETTER C WITH HOOK # $pre YYY $post <> \u0188 ; # LATIN SMALL LETTER C WITH HOOK # $pre YYY $post <> \u0189 ; # LATIN CAPITAL LETTER AFRICAN D # $pre YYY $post <> \u018A ; # LATIN CAPITAL LETTER D WITH HOOK # $pre YYY $post <> \u018B ; # LATIN CAPITAL LETTER D WITH TOPBAR # $pre YYY $post <> \u018C ; # LATIN SMALL LETTER D WITH TOPBAR # $pre YYY $post <> \u018D ; # LATIN SMALL LETTER TURNED DELTA # $pre YYY $post <> \u018E ; # LATIN CAPITAL LETTER REVERSED E # $pre YYY $post <> \u0191 ; # LATIN CAPITAL LETTER F WITH HOOK # $pre YYY $post <> \u0192 ; # LATIN SMALL LETTER F WITH HOOK # $pre YYY $post <> \u0193 ; # LATIN CAPITAL LETTER G WITH HOOK # $pre YYY $post <> \u0194 ; # LATIN CAPITAL LETTER GAMMA # $pre YYY $post <> \u0195 ; # LATIN SMALL LETTER HV # $pre YYY $post <> \u0196 ; # LATIN CAPITAL LETTER IOTA # $pre YYY $post <> \u0197 ; # LATIN CAPITAL LETTER I WITH STROKE # $pre YYY $post <> \u0198 ; # LATIN CAPITAL LETTER K WITH HOOK # $pre YYY $post <> \u0199 ; # LATIN SMALL LETTER K WITH HOOK # $pre YYY $post <> \u019A ; # LATIN SMALL LETTER L WITH BAR # $pre YYY $post <> \u019B ; # LATIN SMALL LETTER LAMBDA WITH STROKE # $pre YYY $post <> \u019C ; # LATIN CAPITAL LETTER TURNED M # $pre YYY $post <> \u019D ; # LATIN CAPITAL LETTER N WITH LEFT HOOK # $pre YYY $post <> \u019E ; # LATIN SMALL LETTER N WITH LONG RIGHT LEG # $pre YYY $post <> \u019F ; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE # $pre YYY $post <> \u01A2 ; # LATIN CAPITAL LETTER OI # $pre YYY $post <> \u01A3 ; # LATIN SMALL LETTER OI # $pre YYY $post <> \u01A4 ; # LATIN CAPITAL LETTER P WITH HOOK # $pre YYY $post <> \u01A5 ; # LATIN SMALL LETTER P WITH HOOK # $pre YYY $post <> \u01A6 ; # LATIN LETTER YR # $pre YYY $post <> \u01A7 ; # LATIN CAPITAL LETTER TONE TWO # $pre YYY $post <> \u01A8 ; # LATIN SMALL LETTER TONE TWO # $pre YYY $post <> \u01AA ; # LATIN LETTER REVERSED ESH LOOP # $pre YYY $post <> \u01AB ; # LATIN SMALL LETTER T WITH PALATAL HOOK # $pre YYY $post <> \u01AC ; # LATIN CAPITAL LETTER T WITH HOOK # $pre YYY $post <> \u01AD ; # LATIN SMALL LETTER T WITH HOOK # $pre YYY $post <> \u01AE ; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK # $pre YYY $post <> \u01B2 ; # LATIN CAPITAL LETTER V WITH HOOK # $pre YYY $post <> \u01B3 ; # LATIN CAPITAL LETTER Y WITH HOOK # $pre YYY $post <> \u01B4 ; # LATIN SMALL LETTER Y WITH HOOK # $pre YYY $post <> \u01B5 ; # LATIN CAPITAL LETTER Z WITH STROKE # $pre YYY $post <> \u01B6 ; # LATIN SMALL LETTER Z WITH STROKE # $pre YYY $post <> \u01B8 ; # LATIN CAPITAL LETTER EZH REVERSED # $pre YYY $post <> \u01B9 ; # LATIN SMALL LETTER EZH REVERSED # $pre YYY $post <> \u01BA ; # LATIN SMALL LETTER EZH WITH TAIL # $pre YYY $post <> \u01BB ; # LATIN LETTER TWO WITH STROKE # $pre YYY $post <> \u01BC ; # LATIN CAPITAL LETTER TONE FIVE # $pre YYY $post <> \u01BD ; # LATIN SMALL LETTER TONE FIVE # $pre YYY $post <> \u01BE ; # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE # $pre YYY $post <> \u01BF ; # LATIN LETTER WYNN # $pre YYY $post <> \u01C0 ; # LATIN LETTER DENTAL CLICK # $pre YYY $post <> \u01C1 ; # LATIN LETTER LATERAL CLICK # $pre YYY $post <> \u01C2 ; # LATIN LETTER ALVEOLAR CLICK # $pre YYY $post <> \u01C3 ; # LATIN LETTER RETROFLEX CLICK # $pre YYY $post <> \u01C4 ; # LATIN CAPITAL LETTER DZ WITH CARON # $pre YYY $post <> \u01C5 ; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON # $pre YYY $post <> \u01C6 ; # LATIN SMALL LETTER DZ WITH CARON # $pre YYY $post <> \u01C7 ; # LATIN CAPITAL LETTER LJ # $pre YYY $post <> \u01C8 ; # LATIN CAPITAL LETTER L WITH SMALL LETTER J # $pre YYY $post <> \u01C9 ; # LATIN SMALL LETTER LJ # $pre YYY $post <> \u01CA ; # LATIN CAPITAL LETTER NJ # $pre YYY $post <> \u01CB ; # LATIN CAPITAL LETTER N WITH SMALL LETTER J # $pre YYY $post <> \u01CC ; # LATIN SMALL LETTER NJ # $pre YYY $post <> \u01DD ; # LATIN SMALL LETTER TURNED E # $pre YYY $post <> \u01E4 ; # LATIN CAPITAL LETTER G WITH STROKE # $pre YYY $post <> \u01E5 ; # LATIN SMALL LETTER G WITH STROKE # $pre YYY $post <> \u01F1 ; # LATIN CAPITAL LETTER DZ # $pre YYY $post <> \u01F2 ; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z # $pre YYY $post <> \u01F3 ; # LATIN SMALL LETTER DZ # $pre YYY $post <> \u01F6 ; # LATIN CAPITAL LETTER HWAIR # $pre YYY $post <> \u01F7 ; # LATIN CAPITAL LETTER WYNN # $pre YYY $post <> \u021C ; # LATIN CAPITAL LETTER YOGH # $pre YYY $post <> \u021D ; # LATIN SMALL LETTER YOGH # $pre YYY $post <> \u0222 ; # LATIN CAPITAL LETTER OU # $pre YYY $post <> \u0223 ; # LATIN SMALL LETTER OU # $pre YYY $post <> \u0224 ; # LATIN CAPITAL LETTER Z WITH HOOK # $pre YYY $post <> \u0225 ; # LATIN SMALL LETTER Z WITH HOOK # $pre YYY $post <> \u0250 ; # LATIN SMALL LETTER TURNED A # $pre YYY $post <> \u0251 ; # LATIN SMALL LETTER ALPHA # $pre YYY $post <> \u0252 ; # LATIN SMALL LETTER TURNED ALPHA # $pre YYY $post <> \u0253 ; # LATIN SMALL LETTER B WITH HOOK # $pre YYY $post <> \u0255 ; # LATIN SMALL LETTER C WITH CURL # $pre YYY $post <> \u0256 ; # LATIN SMALL LETTER D WITH TAIL # $pre YYY $post <> \u0257 ; # LATIN SMALL LETTER D WITH HOOK # $pre YYY $post <> \u0258 ; # LATIN SMALL LETTER REVERSED E # $pre YYY $post <> \u025A ; # LATIN SMALL LETTER SCHWA WITH HOOK # $pre YYY $post <> \u025C ; # LATIN SMALL LETTER REVERSED OPEN E # $pre YYY $post <> \u025D ; # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK # $pre YYY $post <> \u025E ; # LATIN SMALL LETTER CLOSED REVERSED OPEN E # $pre YYY $post <> \u025F ; # LATIN SMALL LETTER DOTLESS J WITH STROKE # $pre YYY $post <> \u0260 ; # LATIN SMALL LETTER G WITH HOOK # $pre YYY $post <> \u0261 ; # LATIN SMALL LETTER SCRIPT G # $pre YYY $post <> \u0262 ; # LATIN LETTER SMALL CAPITAL G # $pre YYY $post <> \u0263 ; # LATIN SMALL LETTER GAMMA # $pre YYY $post <> \u0264 ; # LATIN SMALL LETTER RAMS HORN # $pre YYY $post <> \u0265 ; # LATIN SMALL LETTER TURNED H # $pre YYY $post <> \u0266 ; # LATIN SMALL LETTER H WITH HOOK # $pre YYY $post <> \u0267 ; # LATIN SMALL LETTER HENG WITH HOOK # $pre YYY $post <> \u0268 ; # LATIN SMALL LETTER I WITH STROKE # $pre YYY $post <> \u0269 ; # LATIN SMALL LETTER IOTA # $pre YYY $post <> \u026B ; # LATIN SMALL LETTER L WITH MIDDLE TILDE # $pre YYY $post <> \u026C ; # LATIN SMALL LETTER L WITH BELT # $pre YYY $post <> \u026D ; # LATIN SMALL LETTER L WITH RETROFLEX HOOK # $pre YYY $post <> \u026E ; # LATIN SMALL LETTER LEZH # $pre YYY $post <> \u026F ; # LATIN SMALL LETTER TURNED M # $pre YYY $post <> \u0270 ; # LATIN SMALL LETTER TURNED M WITH LONG LEG # $pre YYY $post <> \u0271 ; # LATIN SMALL LETTER M WITH HOOK # $pre YYY $post <> \u0272 ; # LATIN SMALL LETTER N WITH LEFT HOOK # $pre YYY $post <> \u0273 ; # LATIN SMALL LETTER N WITH RETROFLEX HOOK # $pre YYY $post <> \u0274 ; # LATIN LETTER SMALL CAPITAL N # $pre YYY $post <> \u0275 ; # LATIN SMALL LETTER BARRED O # $pre YYY $post <> \u0276 ; # LATIN LETTER SMALL CAPITAL OE # $pre YYY $post <> \u0277 ; # LATIN SMALL LETTER CLOSED OMEGA # $pre YYY $post <> \u0278 ; # LATIN SMALL LETTER PHI # $pre YYY $post <> \u0279 ; # LATIN SMALL LETTER TURNED R # $pre YYY $post <> \u027A ; # LATIN SMALL LETTER TURNED R WITH LONG LEG # $pre YYY $post <> \u027B ; # LATIN SMALL LETTER TURNED R WITH HOOK # $pre YYY $post <> \u027C ; # LATIN SMALL LETTER R WITH LONG LEG # $pre YYY $post <> \u027D ; # LATIN SMALL LETTER R WITH TAIL # $pre YYY $post <> \u027E ; # LATIN SMALL LETTER R WITH FISHHOOK # $pre YYY $post <> \u027F ; # LATIN SMALL LETTER REVERSED R WITH FISHHOOK # $pre YYY $post <> \u0280 ; # LATIN LETTER SMALL CAPITAL R # $pre YYY $post <> \u0281 ; # LATIN LETTER SMALL CAPITAL INVERTED R # $pre YYY $post <> \u0282 ; # LATIN SMALL LETTER S WITH HOOK # $pre YYY $post <> \u0284 ; # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK # $pre YYY $post <> \u0285 ; # LATIN SMALL LETTER SQUAT REVERSED ESH # $pre YYY $post <> \u0286 ; # LATIN SMALL LETTER ESH WITH CURL # $pre YYY $post <> \u0287 ; # LATIN SMALL LETTER TURNED T # $pre YYY $post <> \u0288 ; # LATIN SMALL LETTER T WITH RETROFLEX HOOK # $pre YYY $post <> \u0289 ; # LATIN SMALL LETTER U BAR # $pre YYY $post <> \u028B ; # LATIN SMALL LETTER V WITH HOOK # $pre YYY $post <> \u028D ; # LATIN SMALL LETTER TURNED W # $pre YYY $post <> \u028E ; # LATIN SMALL LETTER TURNED Y # $pre YYY $post <> \u028F ; # LATIN LETTER SMALL CAPITAL Y # $pre YYY $post <> \u0290 ; # LATIN SMALL LETTER Z WITH RETROFLEX HOOK # $pre YYY $post <> \u0291 ; # LATIN SMALL LETTER Z WITH CURL # $pre YYY $post <> \u0293 ; # LATIN SMALL LETTER EZH WITH CURL # $pre YYY $post <> \u0294 ; # LATIN LETTER GLOTTAL STOP # $pre YYY $post <> \u0295 ; # LATIN LETTER PHARYNGEAL VOICED FRICATIVE # $pre YYY $post <> \u0296 ; # LATIN LETTER INVERTED GLOTTAL STOP # $pre YYY $post <> \u0297 ; # LATIN LETTER STRETCHED C # $pre YYY $post <> \u0298 ; # LATIN LETTER BILABIAL CLICK # $pre YYY $post <> \u0299 ; # LATIN LETTER SMALL CAPITAL B # $pre YYY $post <> \u029A ; # LATIN SMALL LETTER CLOSED OPEN E # $pre YYY $post <> \u029B ; # LATIN LETTER SMALL CAPITAL G WITH HOOK # $pre YYY $post <> \u029C ; # LATIN LETTER SMALL CAPITAL H # $pre YYY $post <> \u029D ; # LATIN SMALL LETTER J WITH CROSSED-TAIL # $pre YYY $post <> \u029E ; # LATIN SMALL LETTER TURNED K # $pre YYY $post <> \u029F ; # LATIN LETTER SMALL CAPITAL L # $pre YYY $post <> \u02A0 ; # LATIN SMALL LETTER Q WITH HOOK # $pre YYY $post <> \u02A1 ; # LATIN LETTER GLOTTAL STOP WITH STROKE # $pre YYY $post <> \u02A2 ; # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE # $pre YYY $post <> \u02A3 ; # LATIN SMALL LETTER DZ DIGRAPH # $pre YYY $post <> \u02A4 ; # LATIN SMALL LETTER DEZH DIGRAPH # $pre YYY $post <> \u02A5 ; # LATIN SMALL LETTER DZ DIGRAPH WITH CURL # $pre YYY $post <> \u02A6 ; # LATIN SMALL LETTER TS DIGRAPH # $pre YYY $post <> \u02A7 ; # LATIN SMALL LETTER TESH DIGRAPH # $pre YYY $post <> \u02A8 ; # LATIN SMALL LETTER TC DIGRAPH WITH CURL # $pre YYY $post <> \u02A9 ; # LATIN SMALL LETTER FENG DIGRAPH # $pre YYY $post <> \u02AA ; # LATIN SMALL LETTER LS DIGRAPH # $pre YYY $post <> \u02AB ; # LATIN SMALL LETTER LZ DIGRAPH # $pre YYY $post <> \u02AC ; # LATIN LETTER BILABIAL PERCUSSIVE # $pre YYY $post <> \u02AD ; # LATIN LETTER BIDENTAL PERCUSSIVE # $pre YYY $post <> \u02B0 ; # MODIFIER LETTER SMALL H # $pre YYY $post <> \u02B1 ; # MODIFIER LETTER SMALL H WITH HOOK # $pre YYY $post <> \u02B2 ; # MODIFIER LETTER SMALL J # $pre YYY $post <> \u02B3 ; # MODIFIER LETTER SMALL R # $pre YYY $post <> \u02B4 ; # MODIFIER LETTER SMALL TURNED R # $pre YYY $post <> \u02B5 ; # MODIFIER LETTER SMALL TURNED R WITH HOOK # $pre YYY $post <> \u02B6 ; # MODIFIER LETTER SMALL CAPITAL INVERTED R # $pre YYY $post <> \u02B7 ; # MODIFIER LETTER SMALL W # $pre YYY $post <> \u02B8 ; # MODIFIER LETTER SMALL Y # $pre YYY $post <> \u02E0 ; # MODIFIER LETTER SMALL GAMMA # $pre YYY $post <> \u02E1 ; # MODIFIER LETTER SMALL L # $pre YYY $post <> \u02E2 ; # MODIFIER LETTER SMALL S # $pre YYY $post <> \u02E3 ; # MODIFIER LETTER SMALL X # $pre YYY $post <> \u02E4 ; # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP # $pre YYY $post <> \u1E9A ; # LATIN SMALL LETTER A WITH RIGHT HALF RING # $pre YYY $post <> \u207F ; # SUPERSCRIPT LATIN SMALL LETTER N :: NFC (NFD) ;