MediaWiki master
LanguageConverterIcu.php
Go to the documentation of this file.
1<?php
28
33
39 protected function loadDefaultTables(): array {
40 $tables = [];
41 foreach ( $this->getVariants() as $variant ) {
42 $tables[$variant] = new ReplacementArray();
43 }
44 return $tables;
45 }
46
47 public function translate( $text, $variant ) {
48 $text = parent::translate( $text, $variant );
49 if ( trim( $text ) ) {
50 $text = $this->icuTranslate( $text, $variant );
51 }
52 return $text;
53 }
54
62 public function icuTranslate( $text, $variant ) {
63 return $this->getTransliterators()[$variant]->transliterate( $text );
64 }
65
72 abstract protected function getIcuRules();
73
79 protected function getTransliterators() {
80 if ( $this->mTransliterators === null ) {
81 $this->mTransliterators = [];
82 foreach ( $this->getIcuRules() as $variant => $rule ) {
83 $this->mTransliterators[$variant] = Transliterator::createFromRules( $rule );
84 }
85 foreach ( $this->getTransliteratorAliases() as $alias => $variant ) {
86 $this->mTransliterators[$alias] = $this->mTransliterators[$variant];
87 }
88 }
89 return $this->mTransliterators;
90 }
91
97 protected function getTransliteratorAliases() {
98 return [];
99 }
100}
A class that extends LanguageConverterSpecific for converts that use ICU rule-based transliterators.
icuTranslate( $text, $variant)
Translate a string to a variant using ICU transliterator.
getIcuRules()
Get the array mapping variants to ICU transliteration rules.
Transliterator[] $mTransliterators
getTransliterators()
Get the array mapping variants to ICU transliterators.
loadDefaultTables()
Creates empty tables.
translate( $text, $variant)
Translate a string to a variant.
getTransliteratorAliases()
Get the array mapping variant aliases to the main variant.
A class that extends LanguageConverter with specific behaviour.
getVariants()
Get all valid variants.
Wrapper around strtr() that holds replacements.