Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
53.33% |
16 / 30 |
|
71.43% |
5 / 7 |
CRAP | |
0.00% |
0 / 1 |
BanConverter | |
53.33% |
16 / 30 |
|
71.43% |
5 / 7 |
11.98 | |
0.00% |
0 / 1 |
getMainCode | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getLanguageVariants | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getVariantsFallbacks | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
getVariantNames | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
getIcuRules | |
100.00% |
8 / 8 |
|
100.00% |
1 / 1 |
1 | |||
getTransliteratorAliases | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
1 | |||
guessVariant | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | /** |
3 | * This program is free software; you can redistribute it and/or modify |
4 | * it under the terms of the GNU General Public License as published by |
5 | * the Free Software Foundation; either version 2 of the License, or |
6 | * (at your option) any later version. |
7 | * |
8 | * This program is distributed in the hope that it will be useful, |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * GNU General Public License for more details. |
12 | * |
13 | * You should have received a copy of the GNU General Public License along |
14 | * with this program; if not, write to the Free Software Foundation, Inc., |
15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
16 | * http://www.gnu.org/copyleft/gpl.html |
17 | * |
18 | * @file |
19 | */ |
20 | |
21 | /** |
22 | * Balinese specific code. |
23 | * |
24 | * @ingroup Languages |
25 | */ |
26 | class BanConverter extends LanguageConverterIcu { |
27 | |
28 | public function getMainCode(): string { |
29 | return 'ban'; |
30 | } |
31 | |
32 | public function getLanguageVariants(): array { |
33 | return [ 'ban', 'ban-bali', 'ban-x-dharma', 'ban-x-palmleaf', 'ban-x-pku' ]; |
34 | } |
35 | |
36 | public function getVariantsFallbacks(): array { |
37 | return [ |
38 | 'ban-bali' => 'ban', |
39 | 'ban-x-dharma' => 'ban', |
40 | 'ban-x-palmleaf' => 'ban', |
41 | 'ban-x-pku' => 'ban', |
42 | ]; |
43 | } |
44 | |
45 | public function getVariantNames(): array { |
46 | $names = [ |
47 | 'ban' => 'Basa Bali', |
48 | 'ban-bali' => 'ᬩᬲᬩᬮᬶ', |
49 | 'ban-x-dharma' => 'Basa Bali (alih aksara DHARMA)', |
50 | 'ban-x-palmleaf' => 'Basa Bali (alih aksara Palmleaf.org)', |
51 | 'ban-x-pku' => 'Basa Bali (alih aksara Puri Kauhan Ubud)', |
52 | ]; |
53 | return array_merge( parent::getVariantNames(), $names ); |
54 | } |
55 | |
56 | protected function getIcuRules() { |
57 | $rules = []; |
58 | |
59 | # transliteration rules developed for Palmleaf.org |
60 | $rules['ban-x-palmleaf'] = <<<'EOF' |
61 | ::NFC; |
62 | |
63 | ᬒᬁ → \uE050; # OM |
64 | ᬁ → \uE001; # SIGN ULU CANDRA |
65 | ᬂ → \uE002; # SIGN CECEK |
66 | ᬄ → \uE003; # SIGN BISAH |
67 | ᬅ → \uE005; # LETTER AKARA |
68 | ᬆ → \uE006; # LETTER AKARA TEDUNG |
69 | ᬇ → \uE007; # LETTER IKARA |
70 | ᬈ → \uE008; # LETTER IKARA TEDUNG |
71 | ᬉ → \uE009; # LETTER UKARA |
72 | ᬊ → \uE00A; # LETTER UKARA TEDUNG |
73 | ᬋ → \uE00B; # LETTER RA REPA |
74 | ᬌ → \uE060; # LETTER RA REPA TEDUNG |
75 | ᬍ → \uE00C; # LETTER LA LENGA |
76 | ᬎ → \uE061; # LETTER LA LENGA TEDUNG |
77 | ᬏ → \uE00F; # LETTER EKARA |
78 | ᬐ → \uE010; # LETTER AIKARA |
79 | ᬑ → \uE013; # LETTER OKARA |
80 | ᬒ → \uE014; # LETTER OKARA TEDUNG |
81 | ᬓ → \uE015; # LETTER KA |
82 | ᬔ → \uE016; # LETTER KA MAHAPRANA |
83 | ᬕ → \uE017; # LETTER GA |
84 | ᬖ → \uE018; # LETTER GA GORA |
85 | ᬗ → \uE019; # LETTER NGA |
86 | ᬘ → \uE01A; # LETTER CA |
87 | ᬙ → \uE01B; # LETTER CA LACA |
88 | ᬚ → \uE01C; # LETTER JA |
89 | ᬛ → \uE01D; # LETTER JA JERA |
90 | ᬜ → \uE01E; # LETTER NYA |
91 | ᬝ → \uE01F; # LETTER TA LATIK |
92 | ᬞ → \uE020; # LETTER TA MURDA MAHAPRANA |
93 | ᬟ → \uE021; # LETTER DA MURDA ALPAPRANA |
94 | ᬠ → \uE022; # LETTER DA MURDA MAHAPRANA |
95 | ᬡ → \uE023; # LETTER NA RAMBAT |
96 | ᬢ → \uE024; # LETTER TA |
97 | ᬣ → \uE025; # LETTER TA TAWA |
98 | ᬤ → \uE026; # LETTER DA |
99 | ᬥ → \uE027; # LETTER DA MADU |
100 | ᬦ → \uE028; # LETTER NA |
101 | ᬧ → \uE02A; # LETTER PA |
102 | ᬨ → \uE02B; # LETTER PA KAPAL |
103 | ᬩ → \uE02C; # LETTER BA |
104 | ᬪ → \uE02D; # LETTER BA KEMBANG |
105 | ᬫ → \uE02E; # LETTER MA |
106 | ᬬ → \uE02F; # LETTER YA |
107 | ᬭ → \uE030; # LETTER RA |
108 | ᬮ → \uE032; # LETTER LA |
109 | ᬯ → \uE035; # LETTER WA |
110 | ᬰ → \uE036; # LETTER SA SAGA |
111 | ᬱ → \uE037; # LETTER SA SAPA |
112 | ᬲ → \uE038; # LETTER SA |
113 | ᬳ → \uE039; # LETTER HA |
114 | ᬴ → \uE03C; # SIGN REREKAN |
115 | ᬵ → \uE03E; # VOWEL SIGN TEDUNG |
116 | ᬶ → \uE03F; # VOWEL SIGN ULU |
117 | ᬷ → \uE040; # VOWEL SIGN ULU SARI |
118 | ᬸ → \uE041; # VOWEL SIGN SUKU |
119 | ᬹ → \uE042; # VOWEL SIGN SUKU ILUT |
120 | ᬺ → \uE043; # VOWEL SIGN RA REPA |
121 | ᬻ → \uE044; # VOWEL SIGN RA REPA TEDUNG |
122 | ᬼ→ \uE062; # VOWEL SIGN LA LENGA |
123 | ᬽ → \uE063; # VOWEL SIGN LA LENGA TEDUNG |
124 | ᬾ → \uE047; # VOWEL SIGN TALING |
125 | ᬿ → \uE048; # VOWEL SIGN TALING REPA |
126 | ᭀ → \uE04B; # VOWEL SIGN TALING TEDUNG |
127 | ᭁ → \uE04C; # VOWEL SIGN TALING REPA TEDUNG |
128 | ᭂ → \uE045; # VOWEL SIGN PEPET |
129 | ᭃ → \uE049; # VOWEL SIGN PEPET TEDUNG |
130 | ᭄ → \uE04D; # ADEG ADEG |
131 | ᭅ → \uE058; # LETTER KAF SASAK |
132 | ᭆ → \uE059; # LETTER KHOT SASAK |
133 | ᭇ → \uE024\uE03C; # LETTER TZIR SASAK |
134 | ᭈ → \uE05E; # LETTER EF SASAK |
135 | ᭉ → \uE081; # LETTER VE SASAK |
136 | ᭊ → \uE05B; # LETTER ZAL SASAK |
137 | ᭋ → \uE038\uE03C; # LETTER ASYURA SASAK |
138 | ᭐ → \uE066; # DIGIT ZERO |
139 | ᭑ → \uE067; # DIGIT ONE |
140 | ᭒ → \uE068; # DIGIT TWO |
141 | ᭓ → \uE069; # DIGIT THREE |
142 | ᭔ → \uE06A; # DIGIT FO |
143 | ᭕ → \uE06B; # DIGIT FIVE |
144 | ᭖ → \uE06C; # DIGIT SIX |
145 | ᭗ → \uE06D; # DIGIT SEVEN |
146 | ᭘ → \uE06E; # DIGIT EIGHT |
147 | ᭙ → \uE06F; # DIGIT NINE |
148 | ᭚ → '//'; # PANTI |
149 | ᭛ → '///'; # PAMADA |
150 | ᭜ → •; # WINDU |
151 | ᭟᭜᭟ → '\\•\\'; |
152 | ᭟ ' ' ᭜ ' ' ᭟ → '\\ • \\'; |
153 | ᭝ → \:; # CARIK PAMUNGKAH |
154 | ᭞ → \uE064; # CARIK SIKI |
155 | ᭟ → \uE065; # CARIK PAREREN |
156 | ᭠ → ‐; # PAMENENG |
157 | |
158 | #consonants |
159 | $chandrabindu=\uE001; |
160 | $ardhachandra=\u1B00; |
161 | $anusvara=\uE002; |
162 | $visarga=\uE003; |
163 | # w←vowel→ represents the stand-alone form |
164 | $wa=\uE005; |
165 | $waa=\uE006; |
166 | $wi=\uE007; |
167 | $wii=\uE008; |
168 | $wu=\uE009; |
169 | $wuu=\uE00A; |
170 | $wr=\uE00B; |
171 | $wl=\uE00C; |
172 | $wce=\uE00D; # LETTER CANDRA E |
173 | $wse=\uE00E; # LETTER SHORT E |
174 | $we=\uE00F; # ए LETTER E |
175 | $wai=\uE010; |
176 | $wco=\uE011; # LETTER CANDRA O |
177 | $wso=\uE012; # LETTER SHORT O |
178 | $wo=\uE013; # ओ LETTER O |
179 | $wau=\uE014; |
180 | $ka=\uE015; |
181 | $kha=\uE016; |
182 | $ga=\uE017; |
183 | $gha=\uE018; |
184 | $nga=\uE019; |
185 | $ca=\uE01A; |
186 | $cha=\uE01B; |
187 | $ja=\uE01C; |
188 | $jha=\uE01D; |
189 | $nya=\uE01E; |
190 | $tta=\uE01F; |
191 | $ttha=\uE020; |
192 | $dda=\uE021; |
193 | $ddha=\uE022; |
194 | $nna=\uE023; |
195 | $ta=\uE024; |
196 | $tha=\uE025; |
197 | $da=\uE026; |
198 | $dha=\uE027; |
199 | $na=\uE028; |
200 | $ena=\uE029; #compatibility |
201 | $pa=\uE02A; |
202 | $pha=\uE02B; |
203 | $ba=\uE02C; |
204 | $bha=\uE02D; |
205 | $ma=\uE02E; |
206 | $ya=\uE02F; |
207 | $ra=\uE030; |
208 | $vva=\uE081; |
209 | $rra=\uE031; |
210 | $la=\uE032; |
211 | $lla=\uE033; |
212 | $ela=\uE034; #compatibility |
213 | $va=\uE035; |
214 | $sha=\uE036; |
215 | $ssa=\uE037; |
216 | $sa=\uE038; |
217 | $ha=\uE039; |
218 | $nukta=\uE03C; |
219 | $avagraha=\uE03D; # SIGN AVAGRAHA |
220 | # ←vowel→ represents the dependent form |
221 | $aa=\uE03E; |
222 | $i=\uE03F; |
223 | $ii=\uE040; |
224 | $u=\uE041; |
225 | $uu=\uE042; |
226 | $rh=\uE043; |
227 | $rrh=\uE044; |
228 | $ce=\uE045; #VOWEL SIGN CANDRA E |
229 | $se=\uE046; #VOWEL SIGN SHORT E |
230 | $e=\uE047; |
231 | $ai=\uE048; |
232 | $co=\uE049; # VOWEL SIGN CANDRA O |
233 | $so=\uE04A; # VOWEL SIGN SHORT O |
234 | $o=\uE04B; # ो |
235 | $au=\uE04C; |
236 | $virama=\uE04D; |
237 | $om=\uE050; # OM |
238 | \uE051→; # UNMAPPED STRESS SIGN UDATTA |
239 | \uE052→; # UNMAPPED STRESS SIGN ANUDATTA |
240 | \uE053→; # UNMAPPED GRAVE ACCENT |
241 | \uE054→; # UNMAPPED ACUTE ACCENT |
242 | $lm = \uE055;# Telugu Length Mark |
243 | $ailm=\uE056;# AI Length Mark |
244 | $aulm=\uE057;# AU Length Mark |
245 | #urdu compatibity forms |
246 | $uka=\uE058; |
247 | $ukha=\uE059; |
248 | $ugha=\uE05A; |
249 | $ujha=\uE05B; |
250 | $uddha=\uE05C; |
251 | $udha=\uE05D; |
252 | $ufa=\uE05E; |
253 | $uya=\uE05F; |
254 | $wrr=\uE060; |
255 | $wll=\uE061; |
256 | $lh=\uE062; |
257 | $llh=\uE063; |
258 | $danda=\uE064; |
259 | $doubleDanda=\uE065; |
260 | $zero=\uE066; # DIGIT ZERO |
261 | $one=\uE067; # DIGIT ONE |
262 | $two=\uE068; # DIGIT TWO |
263 | $three=\uE069; # DIGIT THREE |
264 | $four=\uE06A; # DIGIT FOUR |
265 | $five=\uE06B; # DIGIT FIVE |
266 | $six=\uE06C; # DIGIT SIX |
267 | $seven=\uE06D; # DIGIT SEVEN |
268 | $eight=\uE06E; # DIGIT EIGHT |
269 | $nine=\uE06F; # DIGIT NINE |
270 | # Glottal stop |
271 | $dgs=\uE082; |
272 | #Khanda-ta |
273 | $kta=\uE083; |
274 | $depVowelAbove=[\uE03E-\uE040\uE045-\uE04C]; |
275 | $depVowelBelow=[\uE041-\uE044]; |
276 | # $x was originally called '§'; $z was '%' |
277 | $x=[$aa$ai$au$ii$i$uu$u$rrh$rh$lh$llh$e$o$se$ce$so$co]; |
278 | $z=[bcdfghjklmnpqrstvwxyz]; |
279 | $vowels=[aeiour̥̄̆]; |
280 | $forceIndependentMatra = [^[[:L:][̀-͌]]]; |
281 | $strike=\u0336; |
282 | |
283 | ###################################################################### |
284 | # normalize input |
285 | ###################################################################### |
286 | |
287 | # delete zwnj |
288 | \u200C→; |
289 | # reprocess from beginning |
290 | ::Null; |
291 | |
292 | ###################################################################### |
293 | # convert from Native letters to Latin letters |
294 | ###################################################################### |
295 | |
296 | #glottal stop |
297 | $wa$virama → k''; |
298 | |
299 | #anusvara |
300 | $anusvara → ng; |
301 | |
302 | #surang |
303 | ᬃ → r̀; |
304 | |
305 | # Urdu compatibility |
306 | $ya$nukta}$x → y; |
307 | $ya$nukta$virama → y; |
308 | $ya$nukta → ya; |
309 | $la$nukta }$x → l; |
310 | $la$nukta$virama → l; |
311 | $la$nukta → la; |
312 | $na$nukta }$x → n; |
313 | $na$nukta$virama → n; |
314 | $na$nukta → na; |
315 | $ena }$x → n; |
316 | $ena$virama → n; |
317 | $ena → na; |
318 | $uka → qa; |
319 | $ka$nukta }$x → q; |
320 | $ka$nukta$virama → q; |
321 | $ka$nukta → qa; |
322 | $kha$nukta }$x → kh; |
323 | $kha$nukta$virama → kh; |
324 | $kha$nukta → kha; |
325 | $ukha$virama → kh; |
326 | $ukha → kha; |
327 | $ugha → gha; |
328 | $ga$nukta }$x → gh; |
329 | $ga$nukta$virama → gh; |
330 | $ga$nukta → gha; |
331 | $ujha → za; |
332 | $ja$nukta }$x → z; |
333 | $ja$nukta$virama → z; |
334 | $ja$nukta → za; |
335 | $ddha$nukta}$x → r; |
336 | $ddha$nukta$virama → r; |
337 | $ddha$nukta → ra; |
338 | $uddha}$x → r; |
339 | $uddha$virama → r; |
340 | $uddha → ra; |
341 | $udha → ra; |
342 | $dda$nukta}$x → r; |
343 | $dda$nukta$virama → r; |
344 | $dda$nukta → ra; |
345 | $pha$nukta }$x → f; |
346 | $pha$nukta$virama → f; |
347 | $pha$nukta → fa; |
348 | $ufa }$x → f; |
349 | $ufa$virama → f; |
350 | $ufa → fa; |
351 | $ra$nukta}$x → r; |
352 | $ra$nukta$virama → r; |
353 | $ra$nukta → ra; |
354 | $lla$nukta}$x → l; |
355 | $lla$nukta$virama → l; |
356 | $lla$nukta → la; |
357 | $ela}$x → l; |
358 | $ela$virama → l; |
359 | $ela → la; |
360 | $uya}$x → y; |
361 | $uya$virama → y; |
362 | $uya → ya; |
363 | |
364 | # normal consonants |
365 | $ka$virama}$ha→k''; |
366 | $ka}$x→k; |
367 | $ka$virama→k; |
368 | $ka→ka; |
369 | $kha$i$u→k $strike h $strike; |
370 | $kha}$x→kh; |
371 | $kha$virama→kh; |
372 | $kha→kha; |
373 | $ga$virama}$ha→g''; |
374 | $ga}$x→g; |
375 | $ga$virama→g; |
376 | $ga→ga; |
377 | $gha$i$u→g $strike h $strike; |
378 | $gha}$x→gh; |
379 | $gha$virama→gh; |
380 | $gha→gha; |
381 | $nga$i$u→n $strike g $strike; |
382 | $nga}$x→ng; |
383 | $nga$virama→ng; |
384 | $nga→nga; |
385 | $ca$virama}$ha→c''; |
386 | $ca}$x→c; |
387 | $ca$virama→c; |
388 | $ca→ca; |
389 | $cha$i$u→c $strike h $strike; |
390 | $cha}$x→ch; |
391 | $cha$virama→ch; |
392 | $cha→cha; |
393 | $ja$virama}$ha→j''; |
394 | $ja}$x→j; |
395 | $ja$virama→j; |
396 | $ja→ja; |
397 | $jha$i$u→j $strike h $strike; |
398 | $jha}$x→jh; |
399 | $jha$virama→jh; |
400 | $jha→jha; |
401 | $nya }$x→ñ; |
402 | $nya$virama→ñ; |
403 | $nya → ña; |
404 | $tta$virama}$ha→ṭ''; |
405 | $tta}$x→ṭ; |
406 | $tta$virama→ṭ; |
407 | $tta→ṭa; |
408 | $ttha$i$u→ṭ $strike h $strike; |
409 | $ttha}$x→ṭh; |
410 | $ttha$virama→ṭh; |
411 | $ttha→ṭha; |
412 | $dda}$x$ha→ḍ''; |
413 | $dda}$x→ḍ; |
414 | $dda$virama→ḍ; |
415 | $dda→ḍa; |
416 | $ddha$i$u→ḍ $strike h $strike; |
417 | $ddha}$x→ḍh; |
418 | $ddha$virama→ḍh; |
419 | $ddha→ḍha; |
420 | $nna}$x→ṇ; |
421 | $nna$virama→ṇ; |
422 | $nna→ṇa; |
423 | $ta$virama}$ha→t''; |
424 | $ta}$x→t; |
425 | $ta$virama→t; |
426 | $ta→ta; |
427 | $tha$i$u→t $strike h $strike; |
428 | $tha}$x→th; |
429 | $tha$virama→th; |
430 | $tha→tha; |
431 | $da$virama}$ha→d''; |
432 | $da}$x→d; |
433 | $da$virama→d; |
434 | $da→da; |
435 | $dha$i$u→d $strike h $strike; |
436 | $dha}$x→dh; |
437 | $dha$virama→dh; |
438 | $dha→dha; |
439 | $na$virama}$ga→n''; |
440 | $na}$x→n; |
441 | $na$virama→n; |
442 | $na→na; |
443 | $pa$virama}$ha→p''; |
444 | $pa}$x→p; |
445 | $pa$virama→p; |
446 | $pa→pa; |
447 | $pha$i$u→p $strike h $strike; |
448 | $pha}$x→ph; |
449 | $pha$virama→ph; |
450 | $pha→pha; |
451 | $ba$virama}$ha→b''; |
452 | $ba}$x→b; |
453 | $ba$virama→b; |
454 | $ba→ba; |
455 | $bha$i$u→b $strike h $strike; |
456 | $bha}$x→bh; |
457 | $bha$virama→bh; |
458 | $bha→bha; |
459 | $ma}$x→m; |
460 | $ma$virama→m; |
461 | $ma→ma; |
462 | $ya}$x→y; |
463 | $ya$virama→y; |
464 | $ya→ya; |
465 | $ra}$x→r; |
466 | $ra$virama→r; |
467 | $ra→ra; |
468 | $vva}$x→v; |
469 | $vva$virama→v; |
470 | $vva→va; |
471 | $rra}$x→r; |
472 | $rra$virama→r; |
473 | $rra→ra; |
474 | $la}$x→l; |
475 | $la$virama→l; |
476 | $la→la; |
477 | $lla}$x→l; |
478 | $lla$virama→l; |
479 | $lla→la; |
480 | $va}$x→w; |
481 | $va$virama→w; |
482 | $va→wa; |
483 | $sa}$x→s; |
484 | $sa$virama→s; |
485 | #for gurmukhi |
486 | $sa$nukta}$x→sy; |
487 | $sa$nukta$virama→sy; |
488 | $sa$nukta→sya; |
489 | $sa→sa; |
490 | $sha}$x→ś; |
491 | $sha$virama→ś; |
492 | $sha→śa; |
493 | $ssa}$x→sy; |
494 | $ssa$virama→ṣ; |
495 | $ssa→ṣa; |
496 | $ha}$x→h; |
497 | $ha$virama→h; |
498 | $ha→ha; |
499 | |
500 | # dependent vowels (should never occur except following consonants) |
501 | $forceIndependentMatra{$aa → ̔ā; |
502 | $forceIndependentMatra{$ai → ̔ai; |
503 | $forceIndependentMatra{$au → ̔au; |
504 | $forceIndependentMatra{$ii → ̔ī; |
505 | $forceIndependentMatra{$i → ̔i; |
506 | $forceIndependentMatra{$uu → ̔ū; |
507 | $forceIndependentMatra{$u → ̔u; |
508 | $forceIndependentMatra{$rrh → ̔r̥ö; |
509 | $forceIndependentMatra{$rh → ̔r̥ĕ; |
510 | $forceIndependentMatra{$llh → ̔l̥ö; |
511 | $forceIndependentMatra{$lh → ̔l̥ĕ; |
512 | $forceIndependentMatra{$e → ̔e; |
513 | $forceIndependentMatra{$o → ̔o; |
514 | #extra vowels |
515 | $forceIndependentMatra{$ce → ̔ĕ; |
516 | $forceIndependentMatra{$co → ̔ö; |
517 | $forceIndependentMatra{$se → ̔ĕ; |
518 | $forceIndependentMatra{$so → ̔o; |
519 | $forceIndependentMatra{$nukta →; # Nukta cannot appear independently or as first character |
520 | $forceIndependentMatra{$virama →; # Virama cannot appear independently or as first character |
521 | $i$u → $strike; |
522 | $aa → ā; |
523 | $ai → ai; |
524 | $au → au; |
525 | $ii → ī; |
526 | $i → i; |
527 | $uu → ū; |
528 | $u → u; |
529 | $rrh → r̥ö; |
530 | $rh → r̥ĕ; |
531 | $llh → l̥ö; |
532 | $lh → l̥ĕ; |
533 | $e → e; |
534 | $o → o; |
535 | #extra vowels |
536 | $ce → ĕ; |
537 | $co → ö; |
538 | $se → ĕ; |
539 | $so → o; |
540 | |
541 | #dependent vowels when following independent vowels. Generally Illegal only for roundtripping |
542 | $waa} $x → ā; |
543 | $wai} $x → ai; |
544 | $wau} $x → au; |
545 | $wii} $x → ī; |
546 | $wi } $x → i; |
547 | $wuu} $x → ū; |
548 | $wu } $x → u; |
549 | $wrr} $x → r̥ö; |
550 | $wr } $x → r̥ĕ; |
551 | $wll} $x → l̥ö; |
552 | $wl } $x → l̥ĕ; |
553 | $we } $x → e; |
554 | $wo } $x → o; |
555 | $wa } $x → a; |
556 | #extra vowels |
557 | $wce} $x → ĕ; |
558 | $wco} $x → ö; |
559 | $wse} $x → ĕ; |
560 | $wso} $x → o; |
561 | $om} $x → oṁ; |
562 | |
563 | # independent vowels when preceeded by vowels |
564 | $vowels{$waa → ''ā; |
565 | $vowels{$wai → ''ai; |
566 | $vowels{$wau → ''au; |
567 | $vowels{$wii → ''ī; |
568 | $vowels{$wi → ''i; |
569 | $vowels{$wuu → ''ū; |
570 | $vowels{$wu → ''u; |
571 | $vowels{$we → ''e; |
572 | $vowels{$wo → ''o; |
573 | $vowels{$wa → ''a; |
574 | #extra vowels |
575 | $vowels{$wce → ''ĕ; |
576 | $vowels{$wco → ''ö; |
577 | $vowels{$wse → ''ĕ; |
578 | $vowels{$wso → ''o; |
579 | $vowels{$om → ''oṁ; |
580 | |
581 | # independent vowels (otherwise) |
582 | $waa → ā; |
583 | $wai → ai; |
584 | $wau → au; |
585 | $wii → ī; |
586 | $wi → i; |
587 | $wuu → ū; |
588 | $wu → u; |
589 | $wrr → r̥ö; |
590 | $wr → r̥ĕ; |
591 | $wll → l̥ö; |
592 | $wl → l̥ĕ; |
593 | $we → e; |
594 | $wo → o; |
595 | $wa → a; |
596 | #extra vowels |
597 | $wce → ĕ; |
598 | $wco → ö; |
599 | $wse → ĕ; |
600 | $wso → o; |
601 | $om → oṁ; |
602 | |
603 | # stress marks |
604 | $avagraha → ; |
605 | $chandrabindu → ṅġ; |
606 | $ardhachandra → ṃ; |
607 | $visarga → ḥ; |
608 | |
609 | # numbers |
610 | $zero → 0; |
611 | $one → 1; |
612 | $two → 2; |
613 | $three → 3; |
614 | $four → 4; |
615 | $five → 5; |
616 | $six → 6; |
617 | $seven → 7; |
618 | $eight → 8; |
619 | $nine → 9; |
620 | $lm →; |
621 | $ailm →; |
622 | $aulm →; |
623 | $dgs→''; |
624 | $kta→t; |
625 | # Balinese numbers are surrounded by dandas which can be removed |
626 | $danda } [$zero$one$two$three$four$five$six$seven$eight$nine] → ' '; |
627 | [0123456789] { $danda → ' '; |
628 | $danda→', '; |
629 | $doubleDanda→'. '; |
630 | |
631 | \uE070→; # ABBREVIATION SIGN |
632 | # LETTER RA WITH MIDDLE DIAGONAL |
633 | \uE071}$x→ra; |
634 | \uE071$virama→r; |
635 | \uE071→ra; |
636 | # LETTER RA WITH LOWER DIAGONAL |
637 | \uE072}$x→ra; |
638 | \uE072$virama→r; |
639 | \uE072→ra; |
640 | \uE073→; # RUPEE MARK |
641 | \uE074→; # RUPEE SIGN |
642 | \uE075→; # CURRENCY NUMERATOR ONE |
643 | \uE076→; # CURRENCY NUMERATOR TWO |
644 | \uE077→; # CURRENCY NUMERATOR THREE |
645 | \uE078→; # CURRENCY NUMERATOR FOUR |
646 | \uE079→; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR |
647 | \uE07A→; # CURRENCY DENOMINATOR SIXTEEN |
648 | \uE07B→; # ISSHAR |
649 | \uE07C→; # TIPPI |
650 | \uE07D→; # ADDAK |
651 | \uE07E→; # IRI |
652 | \uE07F→; # URA |
653 | \uE080→; # EK ONKAR |
654 | \uE004→; # DEVANAGARI VOWEL SIGN SHORT A |
655 | |
656 | ::NFC; |
657 | EOF; |
658 | |
659 | # transliteration rules following DHARMA project "strict transliteration" |
660 | # mostly follows ISO-15919, with modifications for precision and broader coverage |
661 | # https://hal.inria.fr/halshs-02272407/ |
662 | $rules['ban-x-dharma'] = <<<'EOF' |
663 | ::NFC; |
664 | |
665 | $dv_no_rerekan = [\u1B35-\u1B44]; |
666 | $dv = [\u1B34$dv_no_rerekan]; |
667 | $c = [\u1B13-\u1B33 \u1B45-\u1B4C]; |
668 | |
669 | # disambiguation from aspirates |
670 | [kgcjṭḍtdpb] { ᭄ } ᬳ → \:; |
671 | |
672 | # various signs |
673 | ᬀ → ṁ\*; # ulu ricem / ardhacandra |
674 | ᬁ → m̐; # ulu candra / candrabindu |
675 | ᬂ → ṁ; # cecek / anusvara |
676 | ᬃ → r\=; # surang / repha (note, "Indonesian mode" not "Indian mode") |
677 | ᬄ → ḥ; # bisah / visarga |
678 | |
679 | # akara used as glottal |
680 | ᬅ } $dv_no_rerekan → q; |
681 | |
682 | # independent vowels |
683 | ᬅ → A; # LETTER AKARA |
684 | ᬆ → A\:; # LETTER AKARA TEDUNG |
685 | ᬇ → I; # LETTER IKARA |
686 | ᬈ → I\:; # LETTER IKARA TEDUNG |
687 | ᬉ → U; # LETTER UKARA |
688 | ᬊ → U\:; # LETTER UKARA TEDUNG |
689 | ᬋ → R̥; # LETTER RA REPA |
690 | ᬌ → R̥\:; # LETTER RA REPA TEDUNG |
691 | ᬍ → L̥; # LETTER LA LENGA |
692 | ᬎ → L̥̄; # LETTER LA LENGA TEDUNG |
693 | ᬏ → E; # LETTER EKARA |
694 | ᬐ → Ai; # LETTER AIKARA |
695 | ᬑ → O; # LETTER OKARA |
696 | ᬒ → O\:; # LETTER OKARA TEDUNG |
697 | |
698 | # consonants |
699 | ᬓ } $dv → k; |
700 | ᬓ → ka; # LETTER KA |
701 | ᬔ } $dv → kh; |
702 | ᬔ → kha; # LETTER KA MAHAPRANA |
703 | ᬕ } $dv → g; |
704 | ᬕ → ga; # LETTER GA |
705 | ᬖ } $dv → gh; |
706 | ᬖ → gha; # LETTER GA GORA |
707 | ᬗ } $dv → ṅ; |
708 | ᬗ → ṅa; # LETTER NGA |
709 | ᬘ } $dv → c; |
710 | ᬘ → ca; # LETTER CA |
711 | ᬙ } $dv → ch; |
712 | ᬙ → cha; # LETTER CA LACA |
713 | ᬚ } $dv → j; |
714 | ᬚ → ja; # LETTER JA |
715 | ᬛ } $dv → jh; |
716 | ᬛ → jha; # LETTER JA JERA |
717 | ᬜ } $dv → ñ; |
718 | ᬜ → ña; # LETTER NYA |
719 | ᬝ } $dv → ṭ; |
720 | ᬝ → ṭa; # LETTER TA LATIK |
721 | ᬞ } $dv → ṭh; |
722 | ᬞ → ṭha; # LETTER TA MURDA MAHAPRANA |
723 | ᬟ } $dv → ḍ; |
724 | ᬟ → ḍa; # LETTER DA MURDA ALPAPRANA |
725 | ᬠ } $dv → ḍh; |
726 | ᬠ → ḍha; # LETTER DA MURDA MAHAPRANA |
727 | ᬡ } $dv → ṇ; |
728 | ᬡ → ṇa; # LETTER NA RAMBAT |
729 | ᬢ } $dv → t; |
730 | ᬢ → ta; # LETTER TA |
731 | ᬣ } $dv → th; |
732 | ᬣ → tha; # LETTER TA TAWA |
733 | ᬤ } $dv → d; |
734 | ᬤ → da; # LETTER DA |
735 | ᬥ } $dv → dh; |
736 | ᬥ → dha; # LETTER DA MADU |
737 | ᬦ } $dv → n; |
738 | ᬦ → na; # LETTER NA |
739 | ᬧ } $dv → p; |
740 | ᬧ → pa; # LETTER PA |
741 | ᬨ } $dv → ph; |
742 | ᬨ → pha; # LETTER PA KAPAL |
743 | ᬩ } $dv → b; |
744 | ᬩ → ba; # LETTER BA |
745 | ᬪ } $dv → bh; |
746 | ᬪ → bha; # LETTER BA KEMBANG |
747 | ᬫ } $dv → m; |
748 | ᬫ → ma; # LETTER MA |
749 | ᬬ } $dv → y; |
750 | ᬬ → ya; # LETTER YA |
751 | ᬭ } $dv → r; |
752 | ᬭ → ra; # LETTER RA |
753 | ᬮ } $dv → l; |
754 | ᬮ → la; # LETTER LA |
755 | ᬯ } $dv → v; |
756 | ᬯ → va; # LETTER WA |
757 | ᬰ } $dv → ś; |
758 | ᬰ → śa; # LETTER SA SAGA |
759 | ᬱ } $dv → ṣ; |
760 | ᬱ → ṣa; # LETTER SA SAPA |
761 | ᬲ } $dv → s; |
762 | ᬲ → sa; # LETTER SA |
763 | ᬳ } $dv → h; |
764 | ᬳ → ha; # LETTER HA |
765 | \u1B4C } $dv → j\=ñ; |
766 | \u1B4C → j\=ña; # LETTER ARCHAIC JNYA |
767 | |
768 | # rerekan (not present in DHARMA, "*" used as impromptu mark) |
769 | ᬴ } $dv_no_rerekan → \*; |
770 | ᬴ → \* a; # SIGN REREKAN |
771 | |
772 | # dependent vowels |
773 | ᬵ → ā; # VOWEL SIGN TEDUNG |
774 | ᬶ → i; # VOWEL SIGN ULU |
775 | ᬷ → ī; # VOWEL SIGN ULU SARI |
776 | ᬸ → u; # VOWEL SIGN SUKU |
777 | ᬹ → ū; # VOWEL SIGN SUKU ILUT |
778 | ᬺ → r̥; # VOWEL SIGN RA REPA |
779 | ᬻ → r̥\:; # VOWEL SIGN RA REPA TEDUNG |
780 | ᬼ→ l̥; # VOWEL SIGN LA LENGA |
781 | ᬽ → l̥\:; # VOWEL SIGN LA LENGA TEDUNG |
782 | ᬾ → e; # VOWEL SIGN TALING |
783 | ᬿ → ai; # VOWEL SIGN TALING REPA |
784 | ᭀ → o; # VOWEL SIGN TALING TEDUNG |
785 | ᭁ → au; # VOWEL SIGN TALING REPA TEDUNG |
786 | ᭂ → ə; # VOWEL SIGN PEPET |
787 | ᭃ → ə\:; # VOWEL SIGN PEPET TEDUNG |
788 | |
789 | # adeg-adeg |
790 | ᭄\u200C → ·; # explicit ADEG ADEG |
791 | ᭄ } $c → ; # ADEG ADEG |
792 | ᭄ → ·; # ADEG ADEG |
793 | |
794 | # Sasak consonants (not present in DHARMA, "'" used as impromptu mark) |
795 | ᭅ } $dv → k\'; |
796 | ᭅ → k\'a; # LETTER KAF SASAK |
797 | ᭆ } $dv → kh\'; |
798 | ᭆ → kh\'a; # LETTER KHOT SASAK |
799 | ᭇ } $dv → t\'; |
800 | ᭇ → t\'a; # LETTER TZIR SASAK |
801 | ᭈ } $dv → p\'; |
802 | ᭈ → p\'a; # LETTER EF SASAK |
803 | ᭉ } $dv → v\'; |
804 | ᭉ → v\'a; # LETTER VE SASAK |
805 | ᭊ } $dv → j\'; |
806 | ᭊ → j\'a; # LETTER ZAL SASAK |
807 | ᭋ } $dv → s\'; |
808 | ᭋ → s\'a; # LETTER ASYURA SASAK |
809 | |
810 | # digits |
811 | ᭐ → 0; # DIGIT ZERO |
812 | ᭑ → 1; # DIGIT ONE |
813 | ᭒ → 2; # DIGIT TWO |
814 | ᭓ → 3; # DIGIT THREE |
815 | ᭔ → 4; # DIGIT FOUR |
816 | ᭕ → 5; # DIGIT FIVE |
817 | ᭖ → 6; # DIGIT SIX |
818 | ᭗ → 7; # DIGIT SEVEN |
819 | ᭘ → 8; # DIGIT EIGHT |
820 | ᭙ → 9; # DIGIT NINE |
821 | |
822 | # punctuation |
823 | ᭚ → '<g type="panti"/>'; # PANTI |
824 | ᭛ → '<g type="pamada"/>'; # PAMADA |
825 | ᭜ → \@; # WINDU |
826 | ᭝ → '<g type="pamungkah"/>'; # CARIK PAMUNGKAH |
827 | ᭞ → \,; # CARIK SIKI |
828 | ᭟ → \,\,; # CARIK PAREREN |
829 | ᭠ → '<g type="pameneng"/>'; # PAMENENG |
830 | \u1B7D → '<g type="pantiLantang"/>'; |
831 | \u1B7E → '<g type="pamadaLantang"/>'; |
832 | EOF; |
833 | |
834 | # transliteration rules developed at Puri Kauhan Ubud and widely used in Bali |
835 | # default Balinese to Latin transliteration variant |
836 | $rules['ban-x-pku'] = <<<'EOF' |
837 | ::NFC; |
838 | |
839 | $dv_no_rerekan = [\u1B35-\u1B44]; |
840 | $dv = [\u1B34$dv_no_rerekan]; |
841 | $c = [\u1B13-\u1B33 \u1B45-\u1B4C]; |
842 | $base = [\u1B05-\u1B33 \u1B45-\u1B60]; |
843 | |
844 | # ulu suku deletion mark |
845 | $base ᬶᬸ → ∅; |
846 | |
847 | # disambiguation from aspirates |
848 | [kgcjṭḍtdpb] { ᭄ } ᬳ → \:; |
849 | |
850 | # various signs |
851 | ᬀ → ṃ; # ulu ricem / ardhacandra |
852 | ᬁ → m̐; # ulu candra / candrabindu |
853 | ᬂ → ŋ; # cecek / anusvara |
854 | ᬃ → ŕ; # surang / repha (note, "Indonesian mode" not "Indian mode") |
855 | ᬄ → ḥ; # bisah / visarga |
856 | |
857 | # akara used as glottal |
858 | ᬅ } $dv_no_rerekan → \*; |
859 | |
860 | # independent vowels |
861 | ᬅ → ᵒa; # LETTER AKARA |
862 | ᬆ → ᵒā; # LETTER AKARA TEDUNG |
863 | ᬇ → ᵒi; # LETTER IKARA |
864 | ᬈ → ᵒī; # LETTER IKARA TEDUNG |
865 | ᬉ → ᵒu; # LETTER UKARA |
866 | ᬊ → ᵒū; # LETTER UKARA TEDUNG |
867 | ᬋ → r̥; # LETTER RA REPA |
868 | ᬌ → r̥̄; # LETTER RA REPA TEDUNG |
869 | ᬍ → l̥; # LETTER LA LENGA |
870 | ᬎ → l̥̄; # LETTER LA LENGA TEDUNG |
871 | ᬏ → ᵒe; # LETTER EKARA |
872 | ᬐ → ᵒai; # LETTER AIKARA |
873 | ᬑ → ᵒo; # LETTER OKARA |
874 | ᬒ → ᵒau; # LETTER OKARA TEDUNG |
875 | |
876 | # consonants |
877 | ᬓ } $dv → k; |
878 | ᬓ → ka; # LETTER KA |
879 | ᬔ } $dv → kh; |
880 | ᬔ → kha; # LETTER KA MAHAPRANA |
881 | ᬕ } $dv → g; |
882 | ᬕ → ga; # LETTER GA |
883 | ᬖ } $dv → gh; |
884 | ᬖ → gha; # LETTER GA GORA |
885 | ᬗ } $dv → ṅ; |
886 | ᬗ → ṅa; # LETTER NGA |
887 | ᬘ } $dv → c; |
888 | ᬘ → ca; # LETTER CA |
889 | ᬙ } $dv → ch; |
890 | ᬙ → cha; # LETTER CA LACA |
891 | ᬚ } $dv → j; |
892 | ᬚ → ja; # LETTER JA |
893 | ᬛ } $dv → jh; |
894 | ᬛ → jha; # LETTER JA JERA |
895 | ᬜ } $dv → ñ; |
896 | ᬜ → ña; # LETTER NYA |
897 | ᬝ } $dv → ṭ; |
898 | ᬝ → ṭa; # LETTER TA LATIK |
899 | ᬞ } $dv → ṭh; |
900 | ᬞ → ṭha; # LETTER TA MURDA MAHAPRANA |
901 | ᬟ } $dv → ḍ; |
902 | ᬟ → ḍa; # LETTER DA MURDA ALPAPRANA |
903 | ᬠ } $dv → ḍh; |
904 | ᬠ → ḍha; # LETTER DA MURDA MAHAPRANA |
905 | ᬡ } $dv → ṇ; |
906 | ᬡ → ṇa; # LETTER NA RAMBAT |
907 | ᬢ } $dv → t; |
908 | ᬢ → ta; # LETTER TA |
909 | ᬣ } $dv → th; |
910 | ᬣ → tha; # LETTER TA TAWA |
911 | ᬤ } $dv → d; |
912 | ᬤ → da; # LETTER DA |
913 | ᬥ } $dv → dh; |
914 | ᬥ → dha; # LETTER DA MADU |
915 | ᬦ } $dv → n; |
916 | ᬦ → na; # LETTER NA |
917 | ᬧ } $dv → p; |
918 | ᬧ → pa; # LETTER PA |
919 | ᬨ } $dv → ph; |
920 | ᬨ → pha; # LETTER PA KAPAL |
921 | ᬩ } $dv → b; |
922 | ᬩ → ba; # LETTER BA |
923 | ᬪ } $dv → bh; |
924 | ᬪ → bha; # LETTER BA KEMBANG |
925 | ᬫ } $dv → m; |
926 | ᬫ → ma; # LETTER MA |
927 | ᬬ } $dv → y; |
928 | ᬬ → ya; # LETTER YA |
929 | ᬭ } $dv → r; |
930 | ᬭ → ra; # LETTER RA |
931 | ᬮ } $dv → l; |
932 | ᬮ → la; # LETTER LA |
933 | ᬯ } $dv → w; |
934 | ᬯ → wa; # LETTER WA |
935 | ᬰ } $dv → ś; |
936 | ᬰ → śa; # LETTER SA SAGA |
937 | ᬱ } $dv → ṣ; |
938 | ᬱ → ṣa; # LETTER SA SAPA |
939 | ᬲ } $dv → s; |
940 | ᬲ → sa; # LETTER SA |
941 | ᬳ } $dv → h; |
942 | ᬳ → ha; # LETTER HA |
943 | \u1B4C } $dv → j\=ñ; |
944 | \u1B4C → j\=ña; # LETTER ARCHAIC JNYA |
945 | |
946 | # rerekan (not present in DHARMA, "*" used as impromptu mark) |
947 | ᬴ } $dv_no_rerekan → \*; |
948 | ᬴ → \* a; # SIGN REREKAN |
949 | |
950 | # dependent vowels |
951 | ᬵ → ā; # VOWEL SIGN TEDUNG |
952 | ᬶ → i; # VOWEL SIGN ULU |
953 | ᬷ → ī; # VOWEL SIGN ULU SARI |
954 | ᬸ → u; # VOWEL SIGN SUKU |
955 | ᬹ → ū; # VOWEL SIGN SUKU ILUT |
956 | ᬺᭂ → r̥ĕ; |
957 | ᬺ → r̥ĕ; # VOWEL SIGN RA REPA |
958 | ᬻ → r̥ö; # VOWEL SIGN RA REPA TEDUNG |
959 | ᬼ→ lĕ; # VOWEL SIGN LA LENGA |
960 | ᬽ → lö; # VOWEL SIGN LA LENGA TEDUNG |
961 | ᬾ → e; # VOWEL SIGN TALING |
962 | ᬿ → ai; # VOWEL SIGN TALING REPA |
963 | ᭀ → o; # VOWEL SIGN TALING TEDUNG |
964 | ᭁ → au; # VOWEL SIGN TALING REPA TEDUNG |
965 | ᭂ → ĕ; # VOWEL SIGN PEPET |
966 | ᭃ → ö; # VOWEL SIGN PEPET TEDUNG |
967 | |
968 | # adeg-adeg |
969 | ᭄\u200C → ·; # explicit ADEG ADEG |
970 | ᭄ } $c → ; # ADEG ADEG |
971 | ᭄ → ·; # ADEG ADEG |
972 | |
973 | # Sasak consonants (not present in DHARMA, "'" used as impromptu mark) |
974 | ᭅ } $dv → k\'; |
975 | ᭅ → k\'a; # LETTER KAF SASAK |
976 | ᭆ } $dv → kh\'; |
977 | ᭆ → kh\'a; # LETTER KHOT SASAK |
978 | ᭇ } $dv → t\'; |
979 | ᭇ → t\'a; # LETTER TZIR SASAK |
980 | ᭈ } $dv → p\'; |
981 | ᭈ → p\'a; # LETTER EF SASAK |
982 | ᭉ } $dv → w\'; |
983 | ᭉ → w\'a; # LETTER VE SASAK |
984 | ᭊ } $dv → j\'; |
985 | ᭊ → j\'a; # LETTER ZAL SASAK |
986 | ᭋ } $dv → s\'; |
987 | ᭋ → s\'a; # LETTER ASYURA SASAK |
988 | |
989 | # digits |
990 | ᭐ → 0; # DIGIT ZERO |
991 | ᭑ → 1; # DIGIT ONE |
992 | ᭒ → 2; # DIGIT TWO |
993 | ᭓ → 3; # DIGIT THREE |
994 | ᭔ → 4; # DIGIT FOUR |
995 | ᭕ → 5; # DIGIT FIVE |
996 | ᭖ → 6; # DIGIT SIX |
997 | ᭗ → 7; # DIGIT SEVEN |
998 | ᭘ → 8; # DIGIT EIGHT |
999 | ᭙ → 9; # DIGIT NINE |
1000 | |
1001 | # punctuation |
1002 | ᭚ → '||'; # PANTI |
1003 | ᭛ → '//'; # PAMADA |
1004 | ᭜ → 0; # WINDU |
1005 | ᭝ → \=; # CARIK PAMUNGKAH |
1006 | ᭞ → \,; # CARIK SIKI |
1007 | ᭟ → \.; # CARIK PAREREN |
1008 | ᭠ → \-; # PAMENENG |
1009 | \u1B7D → '|||'; |
1010 | \u1B7E → '///'; |
1011 | EOF; |
1012 | |
1013 | return $rules; |
1014 | } |
1015 | |
1016 | protected function getTransliteratorAliases() { |
1017 | return [ |
1018 | 'ban' => 'ban-x-pku', |
1019 | 'ban-bali' => 'ban-x-pku', |
1020 | ]; |
1021 | } |
1022 | |
1023 | /** |
1024 | * Guess if a text is written in Balinese or Latin. |
1025 | * Overrides LanguageConverter::guessVariant() |
1026 | * |
1027 | * @param string $text The text to be checked |
1028 | * @param string $variant Language code of the variant to be checked for |
1029 | * @return bool True if $text appears to be written in $variant |
1030 | */ |
1031 | public function guessVariant( $text, $variant ) { |
1032 | $hasBalinese = preg_match( "/[\x{1B00}-\x{1B7F}]/u", $text ); |
1033 | return ( $variant == 'ban-bali' ) == $hasBalinese; |
1034 | } |
1035 | |
1036 | } |