1 /* This file is (c) 2013 Maksim Tamkovicz <quendimax@gmail.com>
2 * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
3
4 #include "belarusiantranslit.hh"
5 #include "transliteration.hh"
6 #include <QCoreApplication>
7
8 namespace BelarusianTranslit {
9
10 class BelarusianLatinToClassicTable: public Transliteration::Table
11 {
12 public:
BelarusianLatinToClassicTable()13 BelarusianLatinToClassicTable()
14 {
15 // Utf8ins()
16
17 // latin to cyrillic
18 ins( "a", "а" );
19 ins( "b", "б" );
20 ins( "c", "ц" );
21 ins( "ć", "ць" );
22 ins( "č", "ч" );
23 ins( "cz", "ч" );
24 ins( "d", "д" );
25 ins( "e", "э" );
26 ins( "f", "ф" );
27 ins( "g", "ґ" );
28 ins( "h", "г" );
29 ins( "i", "і" );
30 ins( "j", "й" );
31 ins( "k", "к" );
32 ins( "l", "ль" );
33 ins( "ł", "л" );
34 ins( "m", "м" );
35 ins( "n", "н" );
36 ins( "ń", "нь" );
37 ins( "o", "о" );
38 ins( "p", "п" );
39 ins( "r", "р" );
40 ins( "s", "с" );
41 ins( "ś", "сь" );
42 ins( "š", "ш" );
43 ins( "sz", "ш" );
44 ins( "t", "т" );
45 ins( "u", "у" );
46 ins( "ŭ", "ў" );
47 ins( "v", "в" );
48 ins( "w", "в" );
49 ins( "y", "ы" );
50 ins( "z", "з" );
51 ins( "ź", "зь" );
52 ins( "ž", "ж" );
53 ins( "ż", "ж" );
54 ins( "ch", "х" );
55
56 ins( "ja", "я" ); ins( "je", "е" ); ins( "jo", "ё" ); ins( "ju", "ю" );
57 ins( "la", "ля" ); ins( "le", "ле" ); ins( "lo", "лё" ); ins( "lu", "лю" ); ins( "li", "лі" );
58
59 ins( "bia", "бя" ); ins( "bie", "бе" ); ins( "bio", "бё" ); ins( "biu", "бю" );
60 ins( "cia", "ця" ); ins( "cie", "це" ); ins( "cio", "цё" ); ins( "ciu", "цю" );
61 ins( "dzia","дзя" ); ins( "dzie","дзе" ); ins( "dzio","дзё" ); ins( "dziu","дзю" );
62 ins( "fia", "фя" ); ins( "fie", "фе" ); ins( "fio", "фё" ); ins( "fiu", "фю" );
63 ins( "gia", "ґя" ); ins( "gie", "ґе" ); ins( "gio", "ґё" ); ins( "giu", "ґю" );
64 ins( "hia", "гя" ); ins( "hie", "ге" ); ins( "hio", "гё" ); ins( "hiu", "гю" );
65 ins( "kia", "кя" ); ins( "kie", "ке" ); ins( "kio", "кё" ); ins( "kiu", "кю" );
66 ins( "lia", "ліa" ); ins( "lie", "ліэ" ); ins( "lio", "ліо" ); ins( "liu", "ліу" );
67 ins( "mia", "мя" ); ins( "mie", "ме" ); ins( "mio", "мё" ); ins( "miu", "мю" );
68 ins( "nia", "ня" ); ins( "nie", "не" ); ins( "nio", "нё" ); ins( "niu", "ню" );
69 ins( "pia", "пя" ); ins( "pie", "пе" ); ins( "pio", "пё" ); ins( "piu", "пю" );
70 ins( "sia", "ся" ); ins( "sie", "се" ); ins( "sio", "сё" ); ins( "siu", "сю" );
71 ins( "via", "вя" ); ins( "vie", "ве" ); ins( "vio", "вё" ); ins( "viu", "вю" );
72 ins( "wia", "вя" ); ins( "wie", "ве" ); ins( "wio", "вё" ); ins( "wiu", "вю" );
73 ins( "zia", "зя" ); ins( "zie", "зе" ); ins( "zio", "зё" ); ins( "ziu", "зю" );
74 ins( "chia", "хя" ); ins( "chie", "хе" ); ins( "chio", "хё" ); ins( "chiu", "хю" );
75
76 ins( "bja", "б'я" ); ins( "bje", "б'е" ); ins( "bjo", "б'ё" ); ins( "bju", "б'ю" );
77 ins( "cia", "ц'я" ); ins( "cje", "ц'е" ); ins( "cjo", "ц'ё" ); ins( "cju", "ц'ю" );
78 ins( "fja", "ф'я" ); ins( "fje", "ф'е" ); ins( "fjo", "ф'ё" ); ins( "fju", "ф'ю" );
79 ins( "hja", "г'я" ); ins( "hje", "г'е" ); ins( "hjo", "г'ё" ); ins( "hju", "г'ю" );
80 ins( "kja", "к'я" ); ins( "kje", "к'е" ); ins( "kjo", "к'ё" ); ins( "kju", "к'ю" );
81 ins( "łja", "л'я" ); ins( "łje", "л'е" ); ins( "łjo", "л'ё" ); ins( "łju", "л'ю" );
82 ins( "mja", "м'я" ); ins( "mje", "м'е" ); ins( "mjo", "м'ё" ); ins( "mju", "м'ю" );
83 ins( "nja", "н'я" ); ins( "nje", "н'е" ); ins( "njo", "н'ё" ); ins( "nju", "н'ю" );
84 ins( "pja", "п'я" ); ins( "pje", "п'е" ); ins( "pjo", "п'ё" ); ins( "pju", "п'ю" );
85 ins( "sja", "с'я" ); ins( "sje", "с'е" ); ins( "sjo", "с'ё" ); ins( "sju", "с'ю" );
86 ins( "vja", "в'я" ); ins( "vje", "в'е" ); ins( "vjo", "в'ё" ); ins( "vju", "в'ю" );
87 ins( "wja", "в'я" ); ins( "wje", "в'е" ); ins( "wjo", "в'ё" ); ins( "wju", "в'ю" );
88 ins( "zja", "з'я" ); ins( "zje", "з'е" ); ins( "zjo", "з'ё" ); ins( "zju", "з'ю" );
89 ins( "chja", "х'я" ); ins( "chje", "х'е" ); ins( "chjo", "х'ё" ); ins( "chju", "х'ю" );
90
91 ins( "nnia", "ньня" ); ins( "nnie", "ньне" ); ins( "nnio", "ньнё" ); ins( "nniu", "ньню" );ins( "nni", "ньні" );
92
93 // cyrillic to latin
94 ins( "а", "a" ); ins( "б", "b" ); ins( "в", "v" ); ins( "г", "h" );
95 ins( "ґ", "g" ); ins( "д", "d" ); ins( "е", "je" ); ins( "ё", "jo" );
96 ins( "ж", "ž" ); ins( "з", "z" ); ins( "і", "i" ); ins( "ї", "ï" );
97 ins( "й", "j" ); ins( "к", "k" ); ins( "л", "ł" ); ins( "м", "m" );
98 ins( "н", "n" ); ins( "о", "o" ); ins( "п", "p" ); ins( "р", "r" );
99 ins( "с", "s" ); ins( "т", "t" ); ins( "у", "u" ); ins( "ў", "ŭ" );
100 ins( "ф", "f" ); ins( "х", "ch" ); ins( "ц", "c" ); ins( "ч", "č" );
101 ins( "ш", "š" ); ins( "ы", "y" ); ins( "э", "e" ); ins( "ю", "ju" );
102 ins( "я", "ja" ); ins( "кг", "g" );
103 ins( "бе", "bie" ); ins( "бё", "bio" ); ins( "бю", "biu" ); ins( "бя", "bia" );
104 ins( "ве", "vie" ); ins( "вё", "vio" ); ins( "вю", "viu" ); ins( "вя", "via" );
105 ins( "ге", "hie" ); ins( "гё", "hio" ); ins( "гю", "hiu" ); ins( "гя", "hia" );
106 ins( "ґе", "gie" ); ins( "ґё", "gio" ); ins( "ґю", "giu" ); ins( "ґя", "gia" );
107 ins( "кге", "gie" ); ins( "кгё", "gio" ); ins( "кгю", "giu" ); ins( "кгя", "gia" );
108 ins( "зе", "zie" ); ins( "зё", "zio" ); ins( "зю", "ziu" ); ins( "зя", "zia" ); ins( "зь", "ź" );
109 ins( "ке", "kie" ); ins( "кё", "kio" ); ins( "кю", "kiu" ); ins( "кя", "kia" );
110 ins( "ле", "le" ); ins( "лё", "lo" ); ins( "лю", "lu" ); ins( "ля", "la" ); ins( "ль", "l" ); ins( "лі", "li" );
111 ins( "ме", "mie" ); ins( "мё", "mio" ); ins( "мю", "miu" ); ins( "мя", "mia" ); ins( "мь", "m" );
112 ins( "не", "nie" ); ins( "нё", "nio" ); ins( "ню", "niu" ); ins( "ня", "nia" ); ins( "нь", "ń" );
113 ins( "пе", "pie" ); ins( "пё", "pio" ); ins( "пю", "piu" ); ins( "пя", "pia" ); ins( "пь", "p" );
114 ins( "се", "sie" ); ins( "сё", "sio" ); ins( "сю", "siu" ); ins( "ся", "sia" ); ins( "сь", "ś" );
115 ins( "фе", "fie" ); ins( "фё", "fio" ); ins( "фю", "fiu" ); ins( "фя", "fia" ); ins( "фь", "f" );
116 ins( "хе", "chie" ); ins( "хё", "chio" ); ins( "хю", "chiu" ); ins( "хя", "chia" );
117 ins( "це", "cie" ); ins( "цё", "cio" ); ins( "цю", "ciu" ); ins( "ця", "cia" ); ins( "ць", "ć" );
118 ins( "бʼ", "b" ); ins( "б'", "b" ); ins( "б’", "b" );
119 ins( "вʼ", "v" ); ins( "в'", "v" ); ins( "в’", "v" );
120 ins( "гʼ", "h" ); ins( "г'", "h" ); ins( "г’", "h" );
121 ins( "ґʼ", "g" ); ins( "ґ'", "g" ); ins( "ґ’", "g" );
122 ins( "дʼ", "d" ); ins( "д'", "d" ); ins( "д’", "d" );
123 ins( "жʼ", "ž" ); ins( "ж'", "ž" ); ins( "ж’", "ž" );
124 ins( "зʼ", "z" ); ins( "з'", "z" ); ins( "з’", "z" );
125 ins( "кʼ", "k" ); ins( "к'", "k" ); ins( "к’", "k" );
126 ins( "лʼ", "ł" ); ins( "л'", "ł" ); ins( "л’", "ł" );
127 ins( "мʼ", "m" ); ins( "м'", "m" ); ins( "м’", "m" );
128 ins( "нʼ", "n" ); ins( "н'", "n" ); ins( "н’", "n" );
129 ins( "пʼ", "p" ); ins( "п'", "p" ); ins( "п’", "p" );
130 ins( "рʼ", "r" ); ins( "р'", "r" ); ins( "р’", "r" );
131 ins( "сʼ", "s" ); ins( "с'", "s" ); ins( "с’", "s" );
132 ins( "тʼ", "t" ); ins( "т'", "t" ); ins( "т’", "t" );
133 ins( "фʼ", "f" ); ins( "ф'", "f" ); ins( "ф’", "f" );
134 ins( "хʼ", "ch" ); ins( "х'", "ch" ); ins( "х’", "ch" );
135 ins( "цʼ", "c" ); ins( "ц'", "c" ); ins( "ц’", "c" );
136 ins( "чʼ", "č" ); ins( "ч'", "č" ); ins( "ч’", "č" );
137 ins( "шʼ", "š" ); ins( "ш'", "š" ); ins( "ш’", "š" );
138 }
139 };
140
141 class BelarusianLatinToSchoolTable: public Transliteration::Table
142 {
143 public:
BelarusianLatinToSchoolTable()144 BelarusianLatinToSchoolTable()
145 {
146 // Utf8ins()
147
148 // latin to cyrillic
149 ins( "a", "а" );
150 ins( "b", "б" );
151 ins( "c", "ц" );
152 ins( "ć", "ць" );
153 ins( "č", "ч" );
154 ins( "cz", "ч" );
155 ins( "d", "д" );
156 ins( "e", "э" );
157 ins( "f", "ф" );
158 ins( "g", "г" );
159 ins( "h", "г" );
160 ins( "i", "і" );
161 ins( "j", "й" );
162 ins( "k", "к" );
163 ins( "l", "ль" );
164 ins( "ł", "л" );
165 ins( "m", "м" );
166 ins( "n", "н" );
167 ins( "ń", "нь" );
168 ins( "o", "о" );
169 ins( "p", "п" );
170 ins( "r", "р" );
171 ins( "s", "с" );
172 ins( "ś", "сь" );
173 ins( "š", "ш" );
174 ins( "sz", "ш" );
175 ins( "t", "т" );
176 ins( "u", "у" );
177 ins( "ŭ", "ў" );
178 ins( "v", "в" );
179 ins( "w", "в" );
180 ins( "y", "ы" );
181 ins( "z", "з" );
182 ins( "ź", "зь" );
183 ins( "ž", "ж" );
184 ins( "ż", "ж" );
185 ins( "ch", "х" );
186
187 ins( "ja", "я" ); ins( "je", "е" ); ins( "jo", "ё" ); ins( "ju", "ю" );
188 ins( "la", "ля" ); ins( "le", "ле" ); ins( "lo", "лё" ); ins( "lu", "лю" ); ins( "li", "лі" );
189
190 ins( "bia", "бя" ); ins( "bie", "бе" ); ins( "bio", "бё" ); ins( "biu", "бю" );
191 ins( "cia", "ця" ); ins( "cie", "це" ); ins( "cio", "цё" ); ins( "ciu", "цю" );
192 ins( "dzia","дзя" ); ins( "dzie","дзе" ); ins( "dzio","дзё" ); ins( "dziu","дзю" );
193 ins( "fia", "фя" ); ins( "fie", "фе" ); ins( "fio", "фё" ); ins( "fiu", "фю" );
194 ins( "gia", "гя" ); ins( "gie", "ге" ); ins( "gio", "гё" ); ins( "giu", "гю" );
195 ins( "hia", "гя" ); ins( "hie", "ге" ); ins( "hio", "гё" ); ins( "hiu", "гю" );
196 ins( "kia", "кя" ); ins( "kie", "ке" ); ins( "kio", "кё" ); ins( "kiu", "кю" );
197 ins( "lia", "ліa" ); ins( "lie", "ліэ" ); ins( "lio", "ліо" ); ins( "liu", "ліу" );
198 ins( "mia", "мя" ); ins( "mie", "ме" ); ins( "mio", "мё" ); ins( "miu", "мю" );
199 ins( "nia", "ня" ); ins( "nie", "не" ); ins( "nio", "нё" ); ins( "niu", "ню" );
200 ins( "pia", "пя" ); ins( "pie", "пе" ); ins( "pio", "пё" ); ins( "piu", "пю" );
201 ins( "sia", "ся" ); ins( "sie", "се" ); ins( "sio", "сё" ); ins( "siu", "сю" );
202 ins( "via", "вя" ); ins( "vie", "ве" ); ins( "vio", "вё" ); ins( "viu", "вю" );
203 ins( "wia", "вя" ); ins( "wie", "ве" ); ins( "wio", "вё" ); ins( "wiu", "вю" );
204 ins( "zia", "зя" ); ins( "zie", "зе" ); ins( "zio", "зё" ); ins( "ziu", "зю" );
205 ins( "chia", "хя" ); ins( "chie", "хе" ); ins( "chio", "хё" ); ins( "chiu", "хю" );
206
207 ins( "bja", "б'я" ); ins( "bje", "б'е" ); ins( "bjo", "б'ё" ); ins( "bju", "б'ю" );
208 ins( "cia", "ц'я" ); ins( "cje", "ц'е" ); ins( "cjo", "ц'ё" ); ins( "cju", "ц'ю" );
209 ins( "fja", "ф'я" ); ins( "fje", "ф'е" ); ins( "fjo", "ф'ё" ); ins( "fju", "ф'ю" );
210 ins( "hja", "г'я" ); ins( "hje", "г'е" ); ins( "hjo", "г'ё" ); ins( "hju", "г'ю" );
211 ins( "kja", "к'я" ); ins( "kje", "к'е" ); ins( "kjo", "к'ё" ); ins( "kju", "к'ю" );
212 ins( "łja", "л'я" ); ins( "łje", "л'е" ); ins( "łjo", "л'ё" ); ins( "łju", "л'ю" );
213 ins( "mja", "м'я" ); ins( "mje", "м'е" ); ins( "mjo", "м'ё" ); ins( "mju", "м'ю" );
214 ins( "nja", "н'я" ); ins( "nje", "н'е" ); ins( "njo", "н'ё" ); ins( "nju", "н'ю" );
215 ins( "pja", "п'я" ); ins( "pje", "п'е" ); ins( "pjo", "п'ё" ); ins( "pju", "п'ю" );
216 ins( "sja", "с'я" ); ins( "sje", "с'е" ); ins( "sjo", "с'ё" ); ins( "sju", "с'ю" );
217 ins( "vja", "в'я" ); ins( "vje", "в'е" ); ins( "vjo", "в'ё" ); ins( "vju", "в'ю" );
218 ins( "wja", "в'я" ); ins( "wje", "в'е" ); ins( "wjo", "в'ё" ); ins( "wju", "в'ю" );
219 ins( "zja", "з'я" ); ins( "zje", "з'е" ); ins( "zjo", "з'ё" ); ins( "zju", "з'ю" );
220 ins( "źja", "з'я" ); ins( "źje", "з'е" ); ins( "źjo", "з'ё" ); ins( "źju", "з'ю" );
221 ins( "chja", "х'я" ); ins( "chje", "х'е" ); ins( "chjo", "х'ё" ); ins( "chju", "х'ю" );
222
223 ins( "śbia", "сбя" ); ins( "śbie", "сбе" ); ins( "śbio", "сбё" ); ins( "śbiu", "сбю" ); ins( "śbi", "сбі" );
224 ins( "ścia", "сця" ); ins( "ście", "сце" ); ins( "ścio", "сцё" ); ins( "ściu", "сцю" ); ins( "ści", "сці" ); ins( "ść", "сць" );
225 ins( "śdzia","сдзя" ); ins( "śdzie","сдзе" ); ins( "śdzio","сдзё" ); ins( "śdziu","сдзю" ); ins( "śdzi","сдзі" ); ins( "śdź","сдзь" );
226 ins( "śfia", "сфя" ); ins( "śfie", "сфе" ); ins( "śfio", "сфё" ); ins( "śfiu", "сфю" ); ins( "śfi", "сфі" );
227 ins( "ślia", "сліa" ); ins( "ślie", "сліэ" ); ins( "ślio", "сліо" ); ins( "śliu", "сліу" ); ins( "śli", "слі" ); ins( "śl", "сль" );
228 ins( "śmia", "смя" ); ins( "śmie", "сме" ); ins( "śmio", "смё" ); ins( "śmiu", "смю" ); ins( "śmi", "смі" );
229 ins( "śnia", "сня" ); ins( "śnie", "сне" ); ins( "śnio", "снё" ); ins( "śniu", "сню" ); ins( "śni", "сні" ); ins( "śń", "снь" );
230 ins( "śpia", "спя" ); ins( "śpie", "спе" ); ins( "śpio", "спё" ); ins( "śpiu", "спю" ); ins( "śpi", "спі" );
231 ins( "śsia", "сся" ); ins( "śsie", "ссе" ); ins( "śsio", "ссё" ); ins( "śsiu", "ссю" ); ins( "śsi", "ссі" );
232 ins( "śvia", "свя" ); ins( "śvie", "све" ); ins( "śvio", "свё" ); ins( "śviu", "свю" ); ins( "śvi", "сві" );
233 ins( "świa", "свя" ); ins( "świe", "све" ); ins( "świo", "свё" ); ins( "świu", "свю" ); ins( "świ", "сві" );
234 ins( "śzia", "сзя" ); ins( "śzie", "сзе" ); ins( "śzio", "сзё" ); ins( "śziu", "сзю" ); ins( "śzi", "сзі" ); ins( "śź", "сзь" );
235
236 ins( "ćbia", "цбя" ); ins( "ćbie", "цбе" ); ins( "ćbio", "цбё" ); ins( "ćbiu", "цбю" ); ins( "ćbi", "цбі" );
237 ins( "ćcia", "цця" ); ins( "ćcie", "цце" ); ins( "ćcio", "ццё" ); ins( "ćciu", "ццю" ); ins( "ćci", "цці" );
238 ins( "ćdzia","цдзя" ); ins( "ćdzie","цдзе" ); ins( "ćdzio","цдзё" ); ins( "ćdziu","цдзю" ); ins( "ćdzi","цдзі" );
239 ins( "ćfia", "цфя" ); ins( "ćfie", "цфе" ); ins( "ćfio", "цфё" ); ins( "ćfiu", "цфю" ); ins( "ćfi", "цфі" );
240 ins( "ćlia", "цліa" ); ins( "ćlie", "цліэ" ); ins( "ćlio", "цліо" ); ins( "ćliu", "цліу" ); ins( "ćli", "цлі" ); ins( "ćl", "цль" );
241 ins( "ćmia", "цмя" ); ins( "ćmie", "цме" ); ins( "ćmio", "цмё" ); ins( "ćmiu", "цмю" ); ins( "ćmi", "цмі" );
242 ins( "ćnia", "цня" ); ins( "ćnie", "цне" ); ins( "ćnio", "цнё" ); ins( "ćniu", "цню" ); ins( "ćni", "цні" ); ins( "ćń", "цнь" );
243 ins( "ćpia", "цпя" ); ins( "ćpie", "цпе" ); ins( "ćpio", "цпё" ); ins( "ćpiu", "цпю" ); ins( "ćpi", "цпі" );
244 ins( "ćsia", "цся" ); ins( "ćsie", "цсе" ); ins( "ćsio", "цсё" ); ins( "ćsiu", "цсю" ); ins( "ćsi", "цсі" ); ins( "ćś", "цсь" );
245 ins( "ćvia", "цвя" ); ins( "ćvie", "цве" ); ins( "ćvio", "цвё" ); ins( "ćviu", "цвю" ); ins( "ćvi", "цві" );
246 ins( "ćwia", "цвя" ); ins( "ćwie", "цве" ); ins( "ćwio", "цвё" ); ins( "ćwiu", "цвю" ); ins( "ćwi", "цві" );
247 ins( "ćzia", "цзя" ); ins( "ćzie", "цзе" ); ins( "ćzio", "цзё" ); ins( "ćziu", "цзю" ); ins( "ćzi", "цзі" ); ins( "ćź", "цзь" );
248
249 ins( "źbia", "збя" ); ins( "źbie", "збе" ); ins( "źbio", "збё" ); ins( "źbiu", "збю" ); ins( "źbi", "збі" );
250 ins( "źcia", "зця" ); ins( "źcie", "зце" ); ins( "źcio", "зцё" ); ins( "źciu", "зцю" ); ins( "źci", "зці" ); ins( "źć", "зць" );
251 ins( "ździa","здзя" ); ins( "ździe","здзе" ); ins( "ździo","здзё" ); ins( "ździu","здзю" ); ins( "ździ","здзі" ); ins( "źdź","здзь" );
252 ins( "źfia", "зфя" ); ins( "źfie", "зфе" ); ins( "źfio", "зфё" ); ins( "źfiu", "зфю" ); ins( "źfi", "зфі" );
253 ins( "źlia", "зліa" ); ins( "źlie", "зліэ" ); ins( "źlio", "зліо" ); ins( "źliu", "зліу" ); ins( "źli", "злі" ); ins( "źl", "зль" );
254 ins( "źmia", "змя" ); ins( "źmie", "зме" ); ins( "źmio", "змё" ); ins( "źmiu", "змю" ); ins( "źmi", "змі" );
255 ins( "źnia", "зня" ); ins( "źnie", "зне" ); ins( "źnio", "знё" ); ins( "źniu", "зню" ); ins( "źni", "зні" );
256 ins( "źpia", "зпя" ); ins( "źpie", "зпе" ); ins( "źpio", "зпё" ); ins( "źpiu", "зпю" ); ins( "źpi", "зпі" );
257 ins( "źsia", "зся" ); ins( "źsie", "зсе" ); ins( "źsio", "зсё" ); ins( "źsiu", "зсю" ); ins( "źsi", "зсі" );
258 ins( "źvia", "звя" ); ins( "źvie", "зве" ); ins( "źvio", "звё" ); ins( "źviu", "звю" ); ins( "źvi", "зві" );
259 ins( "źwia", "звя" ); ins( "źwie", "зве" ); ins( "źwio", "звё" ); ins( "źwiu", "звю" ); ins( "źwi", "зві" );
260 ins( "źzia", "ззя" ); ins( "źzie", "ззе" ); ins( "źzio", "ззё" ); ins( "źziu", "ззю" ); ins( "źzi", "ззі" );
261
262 ins( "ńnia", "ння" ); ins( "ńnie", "нне" ); ins( "ńnio", "ннё" ); ins( "ńniu", "нню" ); ins( "ńni", "нні" );
263 ins( "dździa", "ддзя" ); ins( "dździe", "ддзе" ); ins( "dździo", "ддзё" ); ins( "dździu", "ддзю" ); ins( "dździ", "ддзі" );
264
265 // cyrillic to latin
266 ins( "а", "a" ); ins( "б", "b" ); ins( "в", "v" ); ins( "г", "h" );
267 ins( "ґ", "g" ); ins( "д", "d" ); ins( "е", "je" ); ins( "ё", "jo" );
268 ins( "ж", "ž" ); ins( "з", "z" ); ins( "і", "i" ); ins( "ї", "ï" );
269 ins( "й", "j" ); ins( "к", "k" ); ins( "л", "ł" ); ins( "м", "m" );
270 ins( "н", "n" ); ins( "о", "o" ); ins( "п", "p" ); ins( "р", "r" );
271 ins( "с", "s" ); ins( "т", "t" ); ins( "у", "u" ); ins( "ў", "ŭ" );
272 ins( "ф", "f" ); ins( "х", "ch" ); ins( "ц", "c" ); ins( "ч", "č" );
273 ins( "ш", "š" ); ins( "ы", "y" ); ins( "э", "e" ); ins( "ю", "ju" );
274 ins( "я", "ja" ); ins( "кг", "g" );
275 ins( "бе", "bie" ); ins( "бё", "bio" ); ins( "бю", "biu" ); ins( "бя", "bia" );
276 ins( "ве", "vie" ); ins( "вё", "vio" ); ins( "вю", "viu" ); ins( "вя", "via" );
277 ins( "ге", "hie" ); ins( "гё", "hio" ); ins( "гю", "hiu" ); ins( "гя", "hia" );
278 ins( "ґе", "gie" ); ins( "ґё", "gio" ); ins( "ґю", "giu" ); ins( "ґя", "gia" );
279 ins( "кге", "gie" ); ins( "кгё", "gio" ); ins( "кгю", "giu" ); ins( "кгя", "gia" );
280 ins( "зе", "zie" ); ins( "зё", "zio" ); ins( "зю", "ziu" ); ins( "зя", "zia" ); ins( "зь", "ź" );
281 ins( "ке", "kie" ); ins( "кё", "kio" ); ins( "кю", "kiu" ); ins( "кя", "kia" );
282 ins( "ле", "le" ); ins( "лё", "lo" ); ins( "лю", "lu" ); ins( "ля", "la" ); ins( "ль", "l" ); ins( "лі", "li" );
283 ins( "ме", "mie" ); ins( "мё", "mio" ); ins( "мю", "miu" ); ins( "мя", "mia" ); ins( "мь", "m" );
284 ins( "не", "nie" ); ins( "нё", "nio" ); ins( "ню", "niu" ); ins( "ня", "nia" ); ins( "нь", "ń" );
285 ins( "пе", "pie" ); ins( "пё", "pio" ); ins( "пю", "piu" ); ins( "пя", "pia" ); ins( "пь", "p" );
286 ins( "се", "sie" ); ins( "сё", "sio" ); ins( "сю", "siu" ); ins( "ся", "sia" ); ins( "сь", "ś" );
287 ins( "фе", "fie" ); ins( "фё", "fio" ); ins( "фю", "fiu" ); ins( "фя", "fia" ); ins( "фь", "f" );
288 ins( "хе", "chie" ); ins( "хё", "chio" ); ins( "хю", "chiu" ); ins( "хя", "chia" );
289 ins( "це", "cie" ); ins( "цё", "cio" ); ins( "цю", "ciu" ); ins( "ця", "cia" ); ins( "ць", "ć" );
290 ins( "бʼ", "b" ); ins( "б'", "b" ); ins( "б’", "b" );
291 ins( "вʼ", "v" ); ins( "в'", "v" ); ins( "в’", "v" );
292 ins( "гʼ", "h" ); ins( "г'", "h" ); ins( "г’", "h" );
293 ins( "ґʼ", "g" ); ins( "ґ'", "g" ); ins( "ґ’", "g" );
294 ins( "дʼ", "d" ); ins( "д'", "d" ); ins( "д’", "d" );
295 ins( "жʼ", "ž" ); ins( "ж'", "ž" ); ins( "ж’", "ž" );
296 ins( "зʼ", "z" ); ins( "з'", "z" ); ins( "з’", "z" );
297 ins( "кʼ", "k" ); ins( "к'", "k" ); ins( "к’", "k" );
298 ins( "лʼ", "ł" ); ins( "л'", "ł" ); ins( "л’", "ł" );
299 ins( "мʼ", "m" ); ins( "м'", "m" ); ins( "м’", "m" );
300 ins( "нʼ", "n" ); ins( "н'", "n" ); ins( "н’", "n" );
301 ins( "пʼ", "p" ); ins( "п'", "p" ); ins( "п’", "p" );
302 ins( "рʼ", "r" ); ins( "р'", "r" ); ins( "р’", "r" );
303 ins( "сʼ", "s" ); ins( "с'", "s" ); ins( "с’", "s" );
304 ins( "тʼ", "t" ); ins( "т'", "t" ); ins( "т’", "t" );
305 ins( "фʼ", "f" ); ins( "ф'", "f" ); ins( "ф’", "f" );
306 ins( "хʼ", "ch" ); ins( "х'", "ch" ); ins( "х’", "ch" );
307 ins( "цʼ", "c" ); ins( "ц'", "c" ); ins( "ц’", "c" );
308 ins( "чʼ", "č" ); ins( "ч'", "č" ); ins( "ч’", "č" );
309 ins( "шʼ", "š" ); ins( "ш'", "š" ); ins( "ш’", "š" );
310 }
311 };
312
313 class BelarusianSchoolToClassicTable: public Transliteration::Table
314 {
315 public:
BelarusianSchoolToClassicTable()316 BelarusianSchoolToClassicTable()
317 {
318 ins( "ньне", "нне" ); ins( "ньня", "ння" ); ins( "ньню", "нню" ); ins( "ньнё", "ннё" ); ins( "ньні", "нні" );
319 ins( "нне", "ньне" ); ins( "ння", "ньня" ); ins( "нню", "ньню" ); ins( "ннё", "ньнё" ); ins( "нні", "ньні" );
320
321 ins( "льле", "лле" ); ins( "льля", "лля" ); ins( "льлю", "ллю" ); ins( "льлё", "ллё" ); ins( "льлі", "ллі" );
322 ins( "лле", "льле" ); ins( "лля", "льля" ); ins( "ллю", "льлю" ); ins( "ллё", "льлё" ); ins( "ллі", "льлі" );
323
324 ins( "зьбе", "збе" ); ins( "зьбя", "збя" ); ins( "зьбю", "збю" ); ins( "зьбё", "збё" ); ins( "зьбі", "збі" );
325 ins( "збе", "зьбе" ); ins( "збя", "зьбя" ); ins( "збю", "зьбю" ); ins( "збё", "зьбё" ); ins( "збі", "зьбі" );
326 ins( "зьве", "зве" ); ins( "зьвя", "звя" ); ins( "зьвю", "звю" ); ins( "зьвё", "звё" ); ins( "зьві", "зві" );
327 ins( "зве", "зьве" ); ins( "звя", "зьвя" ); ins( "звю", "зьвю" ); ins( "звё", "зьвё" ); ins( "зві", "зьві" );
328 ins( "зьдзе", "здзе" ); ins( "зьдзя", "здзя" ); ins( "зьдзю", "здзю" ); ins( "зьдзё", "здзё" ); ins( "зьдзі", "здзі" ); ins( "зьдзь", "здзь" );
329 ins( "здзе", "зьдзе" ); ins( "здзя", "зьдзя" ); ins( "здзю", "зьдзю" ); ins( "здзё", "зьдзё" ); ins( "здзі", "зьдзі" ); ins( "здзь", "здзь" );
330 ins( "зьзе", "ззе" ); ins( "зьзя", "ззя" ); ins( "зьзю", "ззю" ); ins( "зьзё", "ззё" ); ins( "зьзі", "ззі" ); ins( "зьзь", "ззь" );
331 ins( "ззе", "зьзе" ); ins( "ззя", "зьзя" ); ins( "ззю", "зьзю" ); ins( "ззё", "зьзё" ); ins( "ззі", "зьзі" ); ins( "ззь", "зьзь" );
332 ins( "зьле", "зле" ); ins( "зьля", "зля" ); ins( "зьлю", "злю" ); ins( "зьлё", "злё" ); ins( "зьлі", "злі" ); ins( "зьль", "зль" );
333 ins( "зле", "зьле" ); ins( "зля", "зьля" ); ins( "злю", "зьлю" ); ins( "злё", "зьлё" ); ins( "злі", "зьлі" ); ins( "зль", "зьль" );
334 ins( "зьме", "зме" ); ins( "зьмя", "змя" ); ins( "зьмю", "змю" ); ins( "зьмё", "змё" ); ins( "зьмі", "змі" );
335 ins( "зме", "зьме" ); ins( "змя", "зьмя" ); ins( "змю", "зьмю" ); ins( "змё", "зьмё" ); ins( "змі", "зьмі" );
336 ins( "зьне", "зне" ); ins( "зьня", "зня" ); ins( "зьню", "зню" ); ins( "зьнё", "знё" ); ins( "зьні", "зні" ); ins( "зьнь", "знь" );
337 ins( "зне", "зьне" ); ins( "зня", "зьня" ); ins( "зню", "зьню" ); ins( "знё", "зьнё" ); ins( "зні", "зьні" ); ins( "знь", "зьнь" );
338 ins( "зьпе", "зпе" ); ins( "зьпя", "зпя" ); ins( "зьпю", "зпю" ); ins( "зьпё", "зпё" ); ins( "зьпі", "зпі" );
339 ins( "зпе", "зьпе" ); ins( "зпя", "зьпя" ); ins( "зпю", "зьпю" ); ins( "зпё", "зьпё" ); ins( "зпі", "зьпі" );
340 ins( "зьсе", "зсе" ); ins( "зься", "зся" ); ins( "зьсю", "зсю" ); ins( "зьсё", "зсё" ); ins( "зьсі", "зсі" ); ins( "зьсь", "зсь" );
341 ins( "зсе", "зьсе" ); ins( "зся", "зься" ); ins( "зсю", "зьсю" ); ins( "зсё", "зьсё" ); ins( "зсі", "зьсі" ); ins( "зсь", "зьсь" );
342 ins( "зьфе", "зфе" ); ins( "зьфя", "зфя" ); ins( "зьфю", "зфю" ); ins( "зьфё", "зфё" ); ins( "зьфі", "зфі" );
343 ins( "зфе", "зьфе" ); ins( "зфя", "зьфя" ); ins( "зфю", "зьфю" ); ins( "зфё", "зьфё" ); ins( "зфі", "зьфі" );
344 ins( "зьхе", "зхе" ); ins( "зьхя", "зхя" ); ins( "зьхю", "зхю" ); ins( "зьхё", "зхё" ); ins( "зьхі", "зхі" );
345 ins( "зхе", "зьхе" ); ins( "зхя", "зьхя" ); ins( "зхю", "зьхю" ); ins( "зхё", "зьхё" ); ins( "зхі", "зьхі" );
346 ins( "зьце", "зце" ); ins( "зьця", "зця" ); ins( "зьцю", "зцю" ); ins( "зьцё", "зцё" ); ins( "зьці", "зці" ); ins( "зьць", "зць" );
347 ins( "зце", "зьце" ); ins( "зця", "зьця" ); ins( "зцю", "зьцю" ); ins( "зцё", "зьцё" ); ins( "зці", "зьці" ); ins( "зць", "зьць" );
348
349 ins( "сьбе", "сбе" ); ins( "сьбя", "сбя" ); ins( "сьбю", "сбю" ); ins( "сьбё", "сбё" ); ins( "сьбі", "сбі" );
350 ins( "сбе", "сьбе" ); ins( "сбя", "сьбя" ); ins( "сбю", "сьбю" ); ins( "сбё", "сьбё" ); ins( "сбі", "сьбі" );
351 ins( "сьве", "све" ); ins( "сьвя", "свя" ); ins( "сьвю", "свю" ); ins( "сьвё", "свё" ); ins( "сьві", "сві" );
352 ins( "све", "сьве" ); ins( "свя", "сьвя" ); ins( "свю", "сьвю" ); ins( "свё", "сьвё" ); ins( "сві", "зьві" );
353 ins( "сьдзе", "сдзе" ); ins( "сьдзя", "сдзя" ); ins( "сьдзю", "сдзю" ); ins( "сьдзё", "сдзё" ); ins( "сьдзі", "сдзі" ); ins( "сьдзь", "сдзь" );
354 ins( "сдзе", "сьдзе" ); ins( "сдзя", "сьдзя" ); ins( "сдзю", "сьдзю" ); ins( "сдзё", "сьдзё" ); ins( "сдзі", "сьдзі" ); ins( "сдзь", "сьдзь" );
355 ins( "сьзе", "сзе" ); ins( "сьзя", "сзя" ); ins( "сьзю", "сзю" ); ins( "сьзё", "сзё" ); ins( "сьзі", "сзі" ); ins( "сьзь", "сзь" );
356 ins( "сзе", "сьзе" ); ins( "сзя", "сьзя" ); ins( "сзю", "сьзю" ); ins( "сзё", "сьзё" ); ins( "сзі", "сьзі" ); ins( "сзь", "сьзь" );
357 ins( "сьле", "сле" ); ins( "сьля", "сля" ); ins( "сьлю", "слю" ); ins( "сьлё", "слё" ); ins( "сьлі", "слі" ); ins( "сьль", "сль" );
358 ins( "сле", "сьле" ); ins( "сля", "сьля" ); ins( "слю", "сьлю" ); ins( "слё", "сьлё" ); ins( "слі", "сьлі" ); ins( "сль", "сьль" );
359 ins( "сьме", "сме" ); ins( "сьмя", "смя" ); ins( "сьмю", "смю" ); ins( "сьмё", "смё" ); ins( "сьмі", "смі" );
360 ins( "сме", "сьме" ); ins( "смя", "сьмя" ); ins( "смю", "сьмю" ); ins( "смё", "сьмё" ); ins( "смі", "сьмі" );
361 ins( "сьне", "сне" ); ins( "сьня", "сня" ); ins( "сьню", "сню" ); ins( "сьнё", "снё" ); ins( "сьні", "сні" ); ins( "сьнь", "снь" );
362 ins( "сне", "сьне" ); ins( "сня", "сьня" ); ins( "сню", "сьню" ); ins( "снё", "сьнё" ); ins( "сні", "сьні" ); ins( "снь", "сьнь" );
363 ins( "сьпе", "спе" ); ins( "сьпя", "спя" ); ins( "сьпю", "спю" ); ins( "сьпё", "спё" ); ins( "сьпі", "спі" );
364 ins( "спе", "сьпе" ); ins( "спя", "сьпя" ); ins( "спю", "сьпю" ); ins( "спё", "сьпё" ); ins( "спі", "сьпі" );
365 ins( "сьсе", "ссе" ); ins( "сься", "сся" ); ins( "сьсю", "ссю" ); ins( "сьсё", "ссё" ); ins( "сьсі", "ссі" ); ins( "сьсь", "ссь" );
366 ins( "ссе", "сьсе" ); ins( "сся", "сься" ); ins( "ссю", "сьсю" ); ins( "ссё", "сьсё" ); ins( "ссі", "сьсі" ); ins( "ссь", "сьсь" );
367 ins( "сьфе", "сфе" ); ins( "сьфя", "сфя" ); ins( "сьфю", "сфю" ); ins( "сьфё", "сфё" ); ins( "сьфі", "сфі" );
368 ins( "сфе", "сьфе" ); ins( "сфя", "сьфя" ); ins( "сфю", "сьфю" ); ins( "сфё", "сьфё" ); ins( "сфі", "сьфі" );
369 ins( "сьхе", "схе" ); ins( "сьхя", "схя" ); ins( "сьхю", "схю" ); ins( "сьхё", "схё" ); ins( "сьхі", "схі" );
370 ins( "схе", "сьхе" ); ins( "схя", "сьхя" ); ins( "схю", "сьхю" ); ins( "схё", "сьхё" ); ins( "схі", "сьхі" );
371 ins( "сьце", "сце" ); ins( "сьця", "сця" ); ins( "сьцю", "сцю" ); ins( "сьцё", "сцё" ); ins( "сьці", "сці" ); ins( "сьць", "сць" );
372 ins( "сце", "сьце" ); ins( "сця", "сьця" ); ins( "сцю", "сьцю" ); ins( "сцё", "сьцё" ); ins( "сці", "сьці" ); ins( "сць", "сьць" );
373
374 ins( "цьбе", "цбе" ); ins( "цьбя", "цбя" ); ins( "цьбю", "цбю" ); ins( "цьбё", "цбё" ); ins( "цьбі", "цбі" );
375 ins( "цбе", "цьбе" ); ins( "цбя", "цьбя" ); ins( "цбю", "цьбю" ); ins( "цбё", "цьбё" ); ins( "цбі", "цьбі" );
376 ins( "цьве", "цве" ); ins( "цьвя", "цвя" ); ins( "цьвю", "цвю" ); ins( "цьвё", "цвё" ); ins( "цьві", "цві" );
377 ins( "цве", "цьве" ); ins( "цвя", "цьвя" ); ins( "цвю", "цьвю" ); ins( "цвё", "цьвё" ); ins( "цві", "цьві" );
378 ins( "цьдзе", "цдзе" ); ins( "цьдзя", "цдзя" ); ins( "цьдзю", "цдзю" ); ins( "цьдзё", "цдзё" ); ins( "цьдзі", "цдзі" ); ins( "цьдзь", "цдзь" );
379 ins( "цдзе", "цьдзе" ); ins( "цдзя", "цьдзя" ); ins( "цдзю", "цьдзю" ); ins( "цдзё", "цьдзё" ); ins( "цдзі", "цьдзі" ); ins( "цдзь", "цьдзь" );
380 ins( "цьзе", "цзе" ); ins( "цьзя", "цзя" ); ins( "цьзю", "цзю" ); ins( "цьзё", "цзё" ); ins( "цьзі", "цзі" ); ins( "цьзь", "цзь" );
381 ins( "цзе", "цьзе" ); ins( "цзя", "цьзя" ); ins( "цзю", "цьзю" ); ins( "цзё", "цьзё" ); ins( "цзі", "цьзі" ); ins( "цзь", "цьзь" );
382 ins( "цьле", "цле" ); ins( "цьля", "цля" ); ins( "цьлю", "цлю" ); ins( "цьлё", "цлё" ); ins( "цьлі", "цлі" ); ins( "цьль", "цль" );
383 ins( "цле", "цьле" ); ins( "цля", "цьля" ); ins( "цлю", "цьлю" ); ins( "цлё", "цьлё" ); ins( "цлі", "цьлі" ); ins( "цль", "цьль" );
384 ins( "цьме", "цме" ); ins( "цьмя", "цмя" ); ins( "цьмю", "цмю" ); ins( "цьмё", "цмё" ); ins( "цьмі", "цмі" );
385 ins( "цме", "цьме" ); ins( "цмя", "цьмя" ); ins( "цмю", "цьмю" ); ins( "цмё", "цьмё" ); ins( "цмі", "цьмі" );
386 ins( "цьне", "цне" ); ins( "цьня", "цня" ); ins( "цьню", "цню" ); ins( "цьнё", "цнё" ); ins( "цьні", "цні" ); ins( "цьнь", "цнь" );
387 ins( "цне", "цьне" ); ins( "цня", "цьня" ); ins( "цню", "цьню" ); ins( "цнё", "цьнё" ); ins( "цні", "цьні" ); ins( "цнь", "цьнь" );
388 ins( "цьпе", "цпе" ); ins( "цьпя", "цпя" ); ins( "цьпю", "цпю" ); ins( "цьпё", "цпё" ); ins( "цьпі", "цпі" );
389 ins( "цпе", "цьпе" ); ins( "цпя", "цьпя" ); ins( "цпю", "цьпю" ); ins( "цпё", "цьпё" ); ins( "цпі", "цьпі" );
390 ins( "цьсе", "цсе" ); ins( "цься", "цся" ); ins( "цьсю", "цсю" ); ins( "цьсё", "цсё" ); ins( "цьсі", "цсі" ); ins( "цьсь", "цсь" );
391 ins( "цсе", "цьсе" ); ins( "цся", "цься" ); ins( "цсю", "цьсю" ); ins( "цсё", "цьсё" ); ins( "цсі", "цьсі" ); ins( "цсь", "цьсь" );
392 ins( "цьфе", "цфе" ); ins( "цьфя", "цфя" ); ins( "цьфю", "цфю" ); ins( "цьфё", "цфё" ); ins( "цьфі", "цфі" );
393 ins( "цфе", "цьфе" ); ins( "цфя", "цьфя" ); ins( "цфю", "цьфю" ); ins( "цфё", "цьфё" ); ins( "цфі", "цьфі" );
394 ins( "цьце", "цце" ); ins( "цьця", "цця" ); ins( "цьцю", "ццю" ); ins( "цьцё", "ццё" ); ins( "цьці", "цці" ); ins( "цьць", "цць" );
395 ins( "цце", "цьце" ); ins( "цця", "цьця" ); ins( "ццю", "цьцю" ); ins( "ццё", "цьцё" ); ins( "цці", "цьці" ); ins( "цць", "цьць" );
396
397 ins( "дзьдзе", "ддзе" ); ins( "дзьдзя", "ддзя" ); ins( "дзьдзю", "ддзю" ); ins( "дзьдзё", "ддзё" ); ins( "дзьдзі", "ддзі" );
398 ins( "ддзе", "дзьдзе" ); ins( "ддзя", "дзьдзя" ); ins( "ддзю", "дзьдзю" ); ins( "ддзё", "дзьдзё" ); ins( "ддзі", "дзьдзі" );
399
400 ins( "з'е", "зье" ); ins( "з'я", "зья" ); ins( "з'ю", "зью" ); ins( "з'ё", "зьё" ); ins( "з'і", "зьі" );
401 ins( "зье", "з'е" ); ins( "зья", "з'я" ); ins( "зью", "з'ю" ); ins( "зьё", "з'ё" ); ins( "зьі", "з'і" );
402 ins( "зʼе", "зье" ); ins( "зʼя", "зья" ); ins( "зʼю", "зью" ); ins( "зʼё", "зьё" ); ins( "зʼі", "зьі" );
403 ins( "зье", "зʼе" ); ins( "зья", "зʼя" ); ins( "зью", "зʼю" ); ins( "зьё", "зʼё" ); ins( "зьі", "зʼі" );
404 ins( "з’е", "зье" ); ins( "з’я", "зья" ); ins( "з’ю", "зью" ); ins( "з’ё", "зьё" ); ins( "з’і", "зьі" );
405 ins( "зье", "з’е" ); ins( "зья", "з’я" ); ins( "зью", "з’ю" ); ins( "зьё", "з’ё" ); ins( "зьі", "з’і" );
406 }
407 };
408
makeDictionaries()409 std::vector< sptr< Dictionary::Class > > makeDictionaries() THROW_SPEC( std::exception )
410 {
411 static BelarusianLatinToClassicTable t0;
412 static BelarusianLatinToSchoolTable t1;
413 static BelarusianSchoolToClassicTable t2;
414 std::vector< sptr< Dictionary::Class > > dicts;
415
416 dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1040",
417 QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration from latin to cyrillic (classic orthography)" ).toUtf8().data(),
418 QIcon( ":/flags/by.png" ), t0, false ) );
419 dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1041",
420 QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration from latin to cyrillic (school orthography)" ).toUtf8().data(),
421 QIcon( ":/flags/by.png" ), t1, false ) );
422 dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1042",
423 QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration (smoothes out the difference\n"
424 "between classic and school orthography in cyrillic)" ).toUtf8().data(),
425 QIcon( ":/flags/by.png" ), t2, false ) );
426 return dicts;
427 }
428
429 }
430