| //-------------------------------------------------------------------- |
| // Copyright (C) 1999, International Business Machines |
| // Corporation and others. All Rights Reserved. |
| //-------------------------------------------------------------------- |
| // Date Name Description |
| // 11/17/99 aliu Creation. |
| // 12/10/99 aliu Fix case handling. |
| //-------------------------------------------------------------------- |
| |
| lcyril { |
| Rule { |
| //* /* This class is designed to be a general Latin-Cyrillic |
| //* transliteration. The standard Russian transliterations |
| //* are generally used for the letters from Russian, |
| //* with additional Cyrillic characters given consistent |
| //* mappings. |
| //* */ |
| |
| "S-hacek=\u0160;" |
| "s-hacek=\u0161;" |
| |
| "YO=\u0401;" |
| "J=\u0408;" |
| "A=\u0410;" |
| "B=\u0411;" |
| "V=\u0412;" |
| "G=\u0413;" |
| "D=\u0414;" |
| "YE=\u0415;" |
| "ZH=\u0416;" |
| "Z=\u0417;" |
| "YI=\u0418;" |
| "Y=\u0419;" |
| "K=\u041A;" |
| "L=\u041B;" |
| "M=\u041C;" |
| "N=\u041D;" |
| "O=\u041E;" |
| "P=\u041F;" |
| "R=\u0420;" |
| "S=\u0421;" |
| "T=\u0422;" |
| "U=\u0423;" |
| "F=\u0424;" |
| "KH=\u0425;" |
| "TS=\u0426;" |
| "CH=\u0427;" |
| "SH=\u0428;" |
| "SHCH=\u0429;" |
| "HARD=\u042A;" |
| "I=\u042B;" |
| "SOFT=\u042C;" |
| "E=\u042D;" |
| "YU=\u042E;" |
| "YA=\u042F;" |
| |
| // Lowercase |
| |
| "a=\u0430;" |
| "b=\u0431;" |
| "v=\u0432;" |
| "g=\u0433;" |
| "d=\u0434;" |
| "ye=\u0435;" |
| "zh=\u0436;" |
| "z=\u0437;" |
| "yi=\u0438;" |
| "y=\u0439;" |
| "k=\u043a;" |
| "l=\u043b;" |
| "m=\u043c;" |
| "n=\u043d;" |
| "o=\u043e;" |
| "p=\u043f;" |
| "r=\u0440;" |
| "s=\u0441;" |
| "t=\u0442;" |
| "u=\u0443;" |
| "f=\u0444;" |
| "kh=\u0445;" |
| "ts=\u0446;" |
| "ch=\u0447;" |
| "sh=\u0448;" |
| "shch=\u0449;" |
| "hard=\u044a;" |
| "i=\u044b;" |
| "soft=\u044c;" |
| "e=\u044d;" |
| "yu=\u044e;" |
| "ya=\u044f;" |
| |
| "yo=\u0451;" |
| "j=\u0458;" |
| |
| // variables |
| // some are duplicated so lowercasing works |
| |
| "csoft=[eiyEIY];" |
| "CSOFT=[eiyEIY];" |
| |
| "BECOMES_H=[{HARD}{hard}];" |
| "becomes_h=[{HARD}{hard}];" |
| |
| "BECOMES_S=[{S}{s}];" |
| "becomes_s=[{S}{s}];" |
| |
| "BECOMES_C=[{CH}{ch}];" |
| "becomes_c=[{CH}{ch}];" |
| |
| "BECOMES_VOWEL=[{A}{E}{I}{O}{U}{a}{e}{i}{o}{u}];" |
| "becomes_vowel=[{A}{E}{I}{O}{U}{a}{e}{i}{o}{u}];" |
| |
| "letter=[[:Lu:][:Ll:]];" |
| "lower=[[:Ll:]];" |
| |
| //* /* |
| //* Modified to combine display transliterator and typing transliterator. |
| //* The display mapping uses accents for the "soft" vowels. |
| //* It does not, although it could, use characters like \u0161 instead of digraphs |
| //* like sh. |
| //* */ |
| |
| // ############################################# |
| // Special titlecase forms, not duplicated |
| // ############################################# |
| |
| "Ch>{CH};" "Ch<{CH}({lower};" |
| "Kh>{KH};" "Kh<{KH}({lower};" |
| "Shch>{SHCH};" "Shch<{SHCH}({lower};" |
| "Sh>{SH};" "Sh<{SH}({lower};" |
| "Ts>{TS};" "Ts<{TS}({lower};" |
| "Zh>{ZH};" "Zh<{ZH}({lower};" |
| "Yi>{YI};" //+ "Yi<{YI}({lower};" |
| "Ye>{YE};" //+ "Ye<{YE}({lower};" |
| "Yo>{YO};" //+ "Yo<{YO}({lower};" |
| "Yu>{YU};" //+ "Yu<{YU}({lower};" |
| "Ya>{YA};" //+ "Ya<{YA}({lower};" |
| |
| // ############################################# |
| // Rules to Duplicate |
| // To get the lowercase versions, copy these and lowercase |
| // ############################################# |
| |
| // variant spellings in English |
| |
| "SHTCH>{SHCH};" |
| "TCH>{CH};" |
| "TH>{Z};" |
| "Q>{K};" |
| "WH>{V};" |
| "W>{V};" |
| "X>{K}{S};" //+ "X<{K}{S};" |
| |
| // Separate letters that would otherwise join |
| |
| "SH''<{SH}({BECOMES_C};" |
| "T''<{T}({BECOMES_S};" |
| |
| "K''<{K}({BECOMES_H};" |
| "S''<{S}({BECOMES_H};" |
| "T''<{T}({BECOMES_H};" |
| "Z''<{Z}({BECOMES_H};" |
| |
| "Y''<{Y}({BECOMES_VOWEL};" |
| |
| // Main letters |
| |
| "A<>{A};" |
| "B<>{B};" |
| "CH<>{CH};" |
| "D<>{D};" |
| "E<>{E};" |
| "F<>{F};" |
| "G<>{G};" |
| "\u00cc<>{YI};" |
| "I<>{I};" |
| "KH<>{KH};" |
| "K<>{K};" |
| "L<>{L};" |
| "M<>{M};" |
| "N<>{N};" |
| "O<>{O};" |
| "P<>{P};" |
| "R<>{R};" |
| "SHCH<>{SHCH};" |
| "SH>{SH};" //+ "SH<{SH};" |
| "{S-hacek}<>{SH};" |
| "S<>{S};" |
| "TS<>{TS};" |
| "T<>{T};" |
| "U<>{U};" |
| "V<>{V};" |
| //\u00cc\u00c0\u00c8\u00d2\u00d9 |
| "YE>{YE};" //+ "YE<{YE};" |
| "\u00c8<>{YE};" |
| "YO>{YO};" //+ "YO<{YO};" |
| "\u00d2<>{YO};" |
| "YU>{YU};" //+ "YU<{YU};" |
| "\u00d9<>{YU};" |
| "YA>{YA};" //+ "YA<{YA};" |
| "\u00c0<>{YA};" |
| "Y<>{Y};" |
| "ZH<>{ZH};" |
| "Z<>{Z};" |
| |
| "H<>{HARD};" |
| "\u0178<>{SOFT};" |
| |
| // Non-russian |
| |
| "J<>{J};" |
| |
| // variant spellings in English |
| |
| "C({csoft}>{S};" |
| "C>{K};" |
| |
| // ############################################# |
| // Duplicated Rules |
| // Copy and lowercase the above rules |
| // ############################################# |
| |
| // variant spellings in english |
| |
| "shtch>{shch};" |
| "tch>{ch};" |
| "th>{z};" |
| "q>{k};" |
| "wh>{v};" |
| "w>{v};" |
| "x>{k}{s};" //+ "x<{k}{s};" |
| |
| // separate letters that would otherwise join |
| |
| "sh''<{sh}({becomes_c};" |
| "t''<{t}({becomes_s};" |
| |
| "k''<{k}({becomes_h};" |
| "s''<{s}({becomes_h};" |
| "t''<{t}({becomes_h};" |
| "z''<{z}({becomes_h};" |
| |
| "y''<{y}({becomes_vowel};" |
| |
| // main letters |
| |
| "a<>{a};" |
| "b<>{b};" |
| "ch<>{ch};" |
| "d<>{d};" |
| "e<>{e};" |
| "f<>{f};" |
| "g<>{g};" |
| "\u00ec<>{yi};" |
| "i<>{i};" |
| "kh<>{kh};" |
| "k<>{k};" |
| "l<>{l};" |
| "m<>{m};" |
| "n<>{n};" |
| "o<>{o};" |
| "p<>{p};" |
| "r<>{r};" |
| "shch<>{shch};" |
| "sh>{sh};" //+ "sh<{sh};" |
| "{s-hacek}<>{sh};" |
| "s<>{s};" |
| "ts<>{ts};" |
| "t<>{t};" |
| "u<>{u};" |
| "v<>{v};" |
| //\u00ec\u00e0\u00e8\u00f2\u00f9 |
| "ye>{ye};" //+ "ye<{ye};" |
| "\u00e8<>{ye};" |
| "yo>{yo};" //+ "yo<{yo};" |
| "\u00f2<>{yo};" |
| "yu>{yu};" //+ "yu<{yu};" |
| "\u00f9<>{yu};" |
| "ya>{ya};" //+ "ya<{ya};" |
| "\u00e0<>{ya};" |
| "y<>{y};" |
| "zh<>{zh};" |
| "z<>{z};" |
| |
| "h<>{hard};" |
| "\u00ff<>{soft};" |
| |
| // non-russian |
| |
| "j<>{j};" |
| |
| // variant spellings in english |
| |
| "c({csoft}>{s};" |
| "c>{k};" |
| |
| |
| |
| // ############################################# |
| // End of Duplicated Rules |
| // ############################################# |
| |
| //generally the last rule |
| "''>;" |
| //the end |
| } |
| } |