MediaWiki REL1_37
|
Base class for multi-variant language conversion. More...
Public Member Functions | |
__construct ( $langobj) | |
autoConvert ( $text, $toVariant=false) | |
Dictionary-based conversion. | |
autoConvertToAllVariants ( $text) | |
Call translate() to convert text to all valid variants. | |
convert ( $text) | |
Convert text to different variants of a language. | |
convertCategoryKey ( $key) | |
Convert the sorting key for category links. | |
convertHtml ( $text) | |
Perform output conversion on a string, and encode for safe HTML output. | |
convertNamespace ( $index, $variant=null) | |
Get the namespace display name in the preferred variant. | |
convertTitle ( $title) | |
Auto convert a LinkTarget or PageReference to a readable string in the preferred variant. | |
convertTo ( $text, $variant) | |
Same as convert() except a extra parameter to custom variant. | |
findVariantLink (&$link, &$nt, $ignoreOtherCond=false) | |
If a language supports multiple variants, it is possible that non-existing link in one variant actually exists in another variant. | |
getConvRuleTitle () | |
Get the title produced by the conversion rule. | |
getDefaultVariant () | |
This function would not be affected by user's settings. | |
getDescCodeSeparator () | |
Get desc code separator. | |
getDescVarSeparator () | |
Get desc var separator. | |
getExtraHashOptions () | |
Returns language specific hash options. | |
getFlags () | |
Get strings that maps to the flags. | |
getMainCode () | |
Get main language code. | |
getManualLevel () | |
Get manual level limit for supported variants. | |
getPreferredVariant () | |
Get preferred language variant. | |
getURLVariant () | |
Get the variant specified in the URL. | |
getVariantFallbacks ( $variant) | |
In case some variant is not defined in the markup, we need to have some fallback. | |
getVariantNames () | |
Get variant names. | |
getVariants () | |
Get all valid variants for current Coverter. | |
getVariantsFallbacks () | |
Get language variants fallbacks. | |
getVarSeparatorPattern () | |
Get the cached separator pattern for ConverterRule::parseRules() | |
guessVariant ( $text, $variant) | |
Guess if a text is written in a variant. | |
hasVariant ( $variant) | |
Strict check if the language has the specific variant. | |
hasVariants () | |
Check if this is a language with variants. | |
markNoConversion ( $text, $noParse=false) | |
Enclose a string with the "no conversion" tag. | |
translate ( $text, $variant) | |
Translate a string to a variant. | |
updateConversionTable (LinkTarget $linkTarget) | |
Refresh the cache of conversion tables when MediaWiki:Conversiontable* is updated. | |
validateVariant ( $variant=null) | |
Validate the variant and return an appropriate strict internal variant code if one exists. | |
Static Public Attributes | |
static array | $languagesWithVariants |
languages supporting variants | |
Protected Member Functions | |
applyManualConv (ConverterRule $convRule) | |
Apply manual conversion rules. | |
getAdditionalFlags () | |
Provides additional flags for converter. | |
getAdditionalManualLevel () | |
Provides additional flags for converter. | |
getHeaderVariant () | |
Determine the language variant from the Accept-Language header. | |
getLanguageVariants () | |
Get supported variants of the language. | |
getUserVariant (User $user) | |
Determine if the user has a variant set. | |
loadDefaultTables () | |
Load default conversion tables. | |
loadTables ( $fromCache=true) | |
Load conversion tables either from the cache or the disk. | |
postLoadTables () | |
Hook for post processing after conversion tables are loaded. | |
recursiveConvertRule ( $text, $variant, &$startPos, $depth=0) | |
Recursively convert text on the inside. | |
recursiveConvertTopLevel ( $text, $variant, $depth=0) | |
Recursively convert text on the outside. | |
Protected Attributes | |
ReplacementArray[] bool[] | $mTables |
Private Member Functions | |
parseCachedTable ( $code, $subpage='', $recursive=true) | |
Parse the conversion table stored in the cache. | |
reloadTables () | |
Reload the conversion tables. | |
Private Attributes | |
$mConvRuleTitle = false | |
$mHeaderVariant | |
Language | $mLangObj |
$mMaxDepth = 10 | |
$mTablesLoaded = false | |
$mUcfirst = false | |
$mURLVariant | |
$mUserVariant | |
$mVarSeparatorPattern | |
const | CACHE_VERSION_KEY = 'VERSION 7' |
Base class for multi-variant language conversion.
Definition at line 36 of file LanguageConverter.php.
LanguageConverter::__construct | ( | $langobj | ) |
Language | $langobj |
Reimplemented in CrhConverter.
Definition at line 84 of file LanguageConverter.php.
References deprecatePublicProperty(), deprecatePublicPropertyFallback(), getDescCodeSeparator(), getDescVarSeparator(), getFlags(), getMainCode(), getVariantNames(), getVariants(), and getVariantsFallbacks().
|
protected |
Apply manual conversion rules.
ConverterRule | $convRule |
Definition at line 689 of file LanguageConverter.php.
References ConverterRule\getConvTable(), ConverterRule\getRulesAction(), and ConverterRule\getTitle().
LanguageConverter::autoConvert | ( | $text, | |
$toVariant = false |
|||
) |
Dictionary-based conversion.
This function would not parse the conversion rules. If you want to parse rules, try to use convert() or convertTo().
string | $text | The text to be converted |
bool | string | $toVariant | The target language code |
Implements ILanguageConverter.
Definition at line 497 of file LanguageConverter.php.
References StringUtils\explode(), and Parser\MARKER_PREFIX.
LanguageConverter::autoConvertToAllVariants | ( | $text | ) |
Call translate() to convert text to all valid variants.
string | $text | The text to be converted |
Implements ILanguageConverter.
Definition at line 673 of file LanguageConverter.php.
LanguageConverter::convert | ( | $text | ) |
Convert text to different variants of a language.
The automatic conversion is done in autoConvert(). Here we parse the text marked with -{}-, which specifies special conversions of the text that can not be accomplished in autoConvert().
Syntax of the markup: -{code1:text1;code2:text2;...}- or -{flags|code1:text1;code2:text2;...}- or -{text}- in which case no conversion should take place for text
string | $text | Text to be converted, already html escaped. |
Implements ILanguageConverter.
Definition at line 810 of file LanguageConverter.php.
LanguageConverter::convertCategoryKey | ( | $key | ) |
Convert the sorting key for category links.
This should make different keys that are variants of each other map to the same key.
string | $key |
Implements ILanguageConverter.
Reimplemented in GanConverter, KkConverter, and ZhConverter.
Definition at line 1293 of file LanguageConverter.php.
LanguageConverter::convertHtml | ( | $text | ) |
Perform output conversion on a string, and encode for safe HTML output.
string | $text | Text to be converted |
Implements ILanguageConverter.
Definition at line 1391 of file LanguageConverter.php.
LanguageConverter::convertNamespace | ( | $index, | |
$variant = null |
|||
) |
Get the namespace display name in the preferred variant.
int | $index | Namespace id |
string | null | $variant | Variant code or null for preferred variant |
Implements ILanguageConverter.
Definition at line 748 of file LanguageConverter.php.
References $cache, Language\getFormattedNsText(), NS_MAIN, and wfMessage().
LanguageConverter::convertTitle | ( | $title | ) |
Auto convert a LinkTarget or PageReference to a readable string in the preferred variant.
LinkTarget | PageReference | $title |
Implements ILanguageConverter.
Definition at line 727 of file LanguageConverter.php.
LanguageConverter::convertTo | ( | $text, | |
$variant | |||
) |
Same as convert() except a extra parameter to custom variant.
string | $text | Text to be converted, already html escaped |
-taint | $text | exec_html |
string | $variant | The target variant code |
Implements ILanguageConverter.
Definition at line 824 of file LanguageConverter.php.
LanguageConverter::findVariantLink | ( | & | $link, |
& | $nt, | ||
$ignoreOtherCond = false |
|||
) |
If a language supports multiple variants, it is possible that non-existing link in one variant actually exists in another variant.
This function tries to find it. See e.g. LanguageZh.php The input parameters may be modified upon return
string | &$link | The name of the link |
Title | &$nt | The title object of the link |
bool | $ignoreOtherCond | To disable other conditions when we need to transclude a template or update a category's link |
Implements ILanguageConverter.
Reimplemented in LanguageConverterSpecific.
Definition at line 976 of file LanguageConverter.php.
References $wgRequest, and NS_MAIN.
|
protected |
Provides additional flags for converter.
By default it return empty array and typically should be overridden by implementation of converter.
Reimplemented in SrConverter.
Definition at line 184 of file LanguageConverter.php.
Referenced by getFlags().
|
protected |
Provides additional flags for converter.
By default it return empty array and typically should be overridden by implementation of converter.
Reimplemented in GanConverter, and ZhConverter.
Definition at line 214 of file LanguageConverter.php.
LanguageConverter::getConvRuleTitle | ( | ) |
Get the title produced by the conversion rule.
Implements ILanguageConverter.
Definition at line 280 of file LanguageConverter.php.
LanguageConverter::getDefaultVariant | ( | ) |
This function would not be affected by user's settings.
Implements ILanguageConverter.
Definition at line 326 of file LanguageConverter.php.
References $wgDefaultLanguageVariant.
LanguageConverter::getDescCodeSeparator | ( | ) |
Get desc code separator.
By default returns ":", can be overridden by implementation of converter.
Reimplemented in GanConverter, and ZhConverter.
Definition at line 225 of file LanguageConverter.php.
Referenced by __construct().
LanguageConverter::getDescVarSeparator | ( | ) |
Get desc var separator.
By default returns ";", can be overridden by implementation of converter.
Reimplemented in GanConverter, and ZhConverter.
Definition at line 236 of file LanguageConverter.php.
Referenced by __construct().
LanguageConverter::getExtraHashOptions | ( | ) |
Returns language specific hash options.
Implements ILanguageConverter.
Definition at line 1045 of file LanguageConverter.php.
|
final |
Get strings that maps to the flags.
Definition at line 157 of file LanguageConverter.php.
References getAdditionalFlags(), and getVariants().
Referenced by __construct().
|
protected |
Determine the language variant from the Accept-Language header.
Definition at line 440 of file LanguageConverter.php.
References $wgRequest.
|
abstractprotected |
Get supported variants of the language.
Reimplemented in BanConverter, CrhConverter, EnConverter, GanConverter, IuConverter, KkConverter, KuConverter, ShiConverter, SrConverter, TgConverter, TlyConverter, UzConverter, and ZhConverter.
|
abstract |
Get main language code.
Reimplemented in BanConverter, CrhConverter, EnConverter, GanConverter, IuConverter, KkConverter, KuConverter, ShiConverter, SrConverter, TgConverter, TlyConverter, UzConverter, and ZhConverter.
Referenced by __construct(), and LanguageConverterSpecific\findVariantLink().
|
final |
Get manual level limit for supported variants.
Definition at line 194 of file LanguageConverter.php.
LanguageConverter::getPreferredVariant | ( | ) |
Get preferred language variant.
Implements ILanguageConverter.
Definition at line 288 of file LanguageConverter.php.
References $wgDefaultLanguageVariant.
Referenced by LanguageConverterSpecific\findVariantLink().
LanguageConverter::getURLVariant | ( | ) |
Get the variant specified in the URL.
Implements ILanguageConverter.
Definition at line 382 of file LanguageConverter.php.
References $wgRequest.
|
protected |
Determine if the user has a variant set.
User | $user |
Definition at line 406 of file LanguageConverter.php.
References User\isRegistered(), and User\isSafeToLoad().
LanguageConverter::getVariantFallbacks | ( | $variant | ) |
In case some variant is not defined in the markup, we need to have some fallback.
For example, in zh, normally people will define zh-hans and zh-hant, but less so for zh-sg or zh-hk. when zh-sg is preferred but not defined, we will pick zh-hans in this case. Right now this is only used by zh.
string | $variant | The language code of the variant |
Implements ILanguageConverter.
Definition at line 272 of file LanguageConverter.php.
LanguageConverter::getVariantNames | ( | ) |
Get variant names.
Reimplemented in BanConverter, GanConverter, and ZhConverter.
Definition at line 245 of file LanguageConverter.php.
Referenced by __construct().
|
final |
Get all valid variants for current Coverter.
It uses abstract
Implements ILanguageConverter.
Definition at line 256 of file LanguageConverter.php.
References $wgDisabledVariants.
Referenced by __construct(), getFlags(), and LanguageConverterIcu\loadDefaultTables().
|
abstract |
Get language variants fallbacks.
Reimplemented in BanConverter, CrhConverter, EnConverter, GanConverter, IuConverter, KkConverter, KuConverter, ShiConverter, SrConverter, TgConverter, TlyConverter, UzConverter, and ZhConverter.
Referenced by __construct().
LanguageConverter::getVarSeparatorPattern | ( | ) |
Get the cached separator pattern for ConverterRule::parseRules()
Definition at line 1319 of file LanguageConverter.php.
LanguageConverter::guessVariant | ( | $text, | |
$variant | |||
) |
Guess if a text is written in a variant.
This should be implemented in subclasses.
string | $text | The text to be checked |
string | $variant | Language code of the variant to be checked for |
Implements ILanguageConverter.
Reimplemented in BanConverter, and SrConverter.
Definition at line 1061 of file LanguageConverter.php.
LanguageConverter::hasVariant | ( | $variant | ) |
Strict check if the language has the specific variant.
Compare to LanguageConverter::validateVariant() which does a more lenient check and attempts to coerce the given code to a valid one.
string | $variant |
Implements ILanguageConverter.
Definition at line 1379 of file LanguageConverter.php.
LanguageConverter::hasVariants | ( | ) |
Check if this is a language with variants.
Implements ILanguageConverter.
Definition at line 1365 of file LanguageConverter.php.
|
protected |
Load default conversion tables.
This method must be implemented in derived class.
MWException |
Reimplemented in EnConverter, GanConverter, IuConverter, KkConverter, KuConverter, ShiConverter, SrConverter, TgConverter, TlyConverter, UzConverter, ZhConverter, and LanguageConverterIcu.
Definition at line 1071 of file LanguageConverter.php.
|
protected |
Load conversion tables either from the cache or the disk.
bool | $fromCache | Load from memcached? Defaults to true. |
Definition at line 1081 of file LanguageConverter.php.
References $cache, and $wgLanguageConverterCacheType.
LanguageConverter::markNoConversion | ( | $text, | |
$noParse = false |
|||
) |
Enclose a string with the "no conversion" tag.
This is used by various functions in the Parser.
string | $text | Text to be tagged for no conversion |
bool | $noParse | Unused |
Implements ILanguageConverter.
Definition at line 1275 of file LanguageConverter.php.
|
private |
Parse the conversion table stored in the cache.
The tables should be in blocks of the following form: -{ word => word ; word => word ; ... }-
To make the tables more manageable, subpages are allowed and will be parsed recursively if $recursive == true.
string | $code | Language code |
string | $subpage | Subpage name |
bool | $recursive | Parse subpages recursively? Defaults to true. |
Definition at line 1157 of file LanguageConverter.php.
References $s, $t, $title, CONTENT_MODEL_WIKITEXT, StringUtils\explode(), and NS_MEDIAWIKI.
|
protected |
Hook for post processing after conversion tables are loaded.
Reimplemented in KkConverter, and ZhConverter.
Definition at line 1118 of file LanguageConverter.php.
|
protected |
Recursively convert text on the inside.
string | $text | Text to be converted |
string | $variant | The target variant code |
int | &$startPos | |
int | $depth | Depth of recursion |
MWException |
Definition at line 898 of file LanguageConverter.php.
References wfMessage().
|
protected |
Recursively convert text on the outside.
Allow to use nested markups to custom rules.
string | $text | Text to be converted |
string | $variant | The target variant code |
int | $depth | Depth of recursion |
Definition at line 843 of file LanguageConverter.php.
|
private |
Reload the conversion tables.
Also used by test suites which need to reset the converter state.
Called by ParserTestRunner with the help of TestingAccessWrapper
Definition at line 1128 of file LanguageConverter.php.
LanguageConverter::translate | ( | $text, | |
$variant | |||
) |
Translate a string to a variant.
Doesn't parse rules or do any of that other stuff, for that use convert() or convertTo().
string | $text | Text to convert |
string | $variant | Variant language code |
Implements ILanguageConverter.
Reimplemented in EnConverter, IuConverter, KkConverter, KuConverter, ShiConverter, SrConverter, UzConverter, and LanguageConverterIcu.
Definition at line 657 of file LanguageConverter.php.
LanguageConverter::updateConversionTable | ( | LinkTarget | $linkTarget | ) |
Refresh the cache of conversion tables when MediaWiki:Conversiontable* is updated.
LinkTarget | $linkTarget | The LinkTarget of the page being updated |
Implements ILanguageConverter.
Definition at line 1303 of file LanguageConverter.php.
References $t, MediaWiki\Linker\LinkTarget\getDBkey(), MediaWiki\Linker\LinkTarget\getNamespace(), and NS_MEDIAWIKI.
LanguageConverter::validateVariant | ( | $variant = null | ) |
Validate the variant and return an appropriate strict internal variant code if one exists.
Compare to Language::hasVariant() which does a strict test.
string | null | $variant | The variant to validate |
Implements ILanguageConverter.
Definition at line 354 of file LanguageConverter.php.
|
static |
languages supporting variants
Definition at line 44 of file LanguageConverter.php.
|
private |
Definition at line 72 of file LanguageConverter.php.
|
private |
Definition at line 75 of file LanguageConverter.php.
|
private |
Definition at line 69 of file LanguageConverter.php.
|
private |
Definition at line 76 of file LanguageConverter.php.
|
protected |
Definition at line 64 of file LanguageConverter.php.
|
private |
Definition at line 59 of file LanguageConverter.php.
|
private |
Definition at line 71 of file LanguageConverter.php.
|
private |
Definition at line 73 of file LanguageConverter.php.
|
private |
Definition at line 74 of file LanguageConverter.php.
|
private |
Definition at line 77 of file LanguageConverter.php.
|
private |
Definition at line 79 of file LanguageConverter.php.