LanguageConverter Class Reference
[Language]

Base class for language conversion. More...

Inherited by GanConverter, KkConverter, KuConverter, SrConverter, TestConverter, TgConverter, and ZhConverter.

List of all members.

Public Member Functions

 __construct ($langobj, $maincode, $variants=array(), $variantfallbacks=array(), $flags=array(), $manualLevel=array())
 Constructor.
 getVariants ()
 getVariantFallbacks ($v)
 In case some variant is not defined in the markup, we need to have some fallback.
 getConvRuleTitle ()
 Get the title produced by the conversion rule.
 getPreferredVariant ($fromUser=true, $fromHeader=false)
 Get preferred language variants.
 validateVariant ($v=null)
 Validate the variant.
 getURLVariant ()
 Get the variant specified in the URL.
 getUserVariant ()
 Determine if the user has a variant set.
 getHeaderVariant ()
 Determine the language variant from the Accept-Language header.
 captionConvert ($matches)
 Caption convert, base on preg_replace_callback.
 autoConvert ($text, $toVariant=false)
 Dictionary-based conversion.
 translate ($text, $variant)
 Translate a string to a variant.
 autoConvertToAllVariants ($text)
 Convert text to all supported variants.
 convertLinkToAllVariants ($text)
 Convert link text to all supported variants.
 applyManualConv ($convRule)
 Prepare manual conversion table.
 convert ($text)
 Convert text to different variants of a language.
 convertTitle ($title)
 Convert a Title object to a readable string in the preferred 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.
 getExtraHashOptions ()
 Returns language specific hash options.
 loadDefaultTables ()
 Load default conversion tables.
 loadTables ($fromcache=true)
 Load conversion tables either from the cache or the disk.
 postLoadTables ()
 Hook for post processig after conversion tables are loaded.
 reloadTables ()
 Reload the conversion tables.
 parseCachedTable ($code, $subpage= '', $recursive=true)
 Parse the conversion table stored in the cache.
 markNoConversion ($text, $noParse=false)
 Enclose a string with the "no conversion" tag.
 convertCategoryKey ($key)
 Convert the sorting key for category links.
 armourMath ($text)
 Armour rendered math against conversion.
 getVarSeparatorPattern ()
 Get the cached separator pattern for ConverterRule::parseRules().

Public Attributes

 $mMainLanguageCode
 $mVariants
 $mVariantFallbacks
 $mVariantNames
 $mTablesLoaded = false
 $mTables
 $mManualLevel
 $mCacheKey
 $mLangObj
 $mFlags
 $mDescCodeSep = ':'
 $mDescVarSep = ';'
 $mUcfirst = false
 $mConvRuleTitle = false
 $mURLVariant
 $mUserVariant
 $mHeaderVariant
 $mMaxDepth = 10
 $mVarSeparatorPattern
const CACHE_VERSION_KEY = 'VERSION 6'

Protected Member Functions

 recursiveConvertTopLevel ($text, $variant, $depth=0)
 recursiveConvertRule ($text, $variant, &$startPos, $depth=0)

Private Member Functions

 OnArticleSaveComplete ($article, $user, $text, $summary, $isminor, $iswatch, $section, $flags, $revision)
 Hook to refresh the cache of conversion tables when MediaWiki:conversiontable* is updated.


Detailed Description

Base class for language conversion.

Author:
Zhengzhu Feng <zhengzhu@gmail.com> fdcn <fdcn64@gmail.com>, shinjiman <shinjiman@gmail.com>, PhiLiP <philip.npc@gmail.com>

Definition at line 18 of file LanguageConverter.php.


Constructor & Destructor Documentation

LanguageConverter::__construct ( langobj,
maincode,
variants = array(),
variantfallbacks = array(),
flags = array(),
manualLevel = array() 
)

Constructor.

Parameters:
$langobj The Language Object
$maincode String: the main language code of this language
$variants Array: the supported variants of this language
$variantfallbacks Array: the fallback language of each variant
$flags Array: defining the custom strings that maps to the flags
$manualLevel Array: limit for supported variants

Reimplemented in GanConverter, and ZhConverter.

Definition at line 49 of file LanguageConverter.php.

References $wgDisabledVariants, $wgLanguageNames, and wfMemcKey().


Member Function Documentation

LanguageConverter::applyManualConv ( convRule  ) 

Prepare manual conversion table.

Access:
private

Definition at line 492 of file LanguageConverter.php.

References $action, and validateVariant().

Referenced by recursiveConvertRule().

LanguageConverter::armourMath ( text  ) 

Armour rendered math against conversion.

Wrap math into rawoutput -{R| math }- syntax.

Definition at line 986 of file LanguageConverter.php.

LanguageConverter::autoConvert ( text,
toVariant = false 
)

Dictionary-based conversion.

Parameters:
string $text the text to be converted
string $toVariant the target language code
Returns:
string the converted text
Access:
private

Reimplemented in KkConverter, KuConverter, and SrConverter.

Definition at line 325 of file LanguageConverter.php.

References $fname, $t, $wgParser, StringUtils::explode(), getPreferredVariant(), loadTables(), translate(), wfProfileIn(), and wfProfileOut().

Referenced by ZhConverter::convertCategoryKey(), GanConverter::convertCategoryKey(), convertTitle(), recursiveConvertRule(), and recursiveConvertTopLevel().

LanguageConverter::autoConvertToAllVariants ( text  ) 

Convert text to all supported variants.

Parameters:
string $text the text to be converted
Returns:
array of string
Access:
public

Definition at line 433 of file LanguageConverter.php.

References $fname, loadTables(), translate(), wfProfileIn(), and wfProfileOut().

Referenced by findVariantLink().

LanguageConverter::captionConvert ( matches  ) 

Caption convert, base on preg_replace_callback.

To convert text in "title" or "alt", like '<img alt="text" ... ' or '<span title="text" ... '

Returns:
string like ' alt="yyyy"' or ' title="yyyy"'
Access:
private

Definition at line 306 of file LanguageConverter.php.

References $title, getPreferredVariant(), and translate().

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

Parameters:
$text String: text to be converted
Returns:
String: converted text

Definition at line 539 of file LanguageConverter.php.

References $wgDisableLangConversion, getPreferredVariant(), and recursiveConvertTopLevel().

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.

Reimplemented in GanConverter, KkConverter, and ZhConverter.

Definition at line 956 of file LanguageConverter.php.

LanguageConverter::convertLinkToAllVariants ( text  ) 

Convert link text to all supported variants.

Parameters:
string $text the text to be converted
Returns:
array of string
Access:
public

Definition at line 456 of file LanguageConverter.php.

References StringUtils::explode(), loadTables(), and translate().

LanguageConverter::convertTitle ( title  ) 

Convert a Title object to a readable string in the preferred variant.

Definition at line 551 of file LanguageConverter.php.

References $title, autoConvert(), getPreferredVariant(), wfEmptyMsg(), and wfMsgForContentNoTrans().

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

Parameters:
string $link the name of the link
mixed $nt the title object of the link
boolean $ignoreOtherCond: to disable other conditions when we need to transclude a template or update a category's link
Returns:
null the input parameters may be modified upon return
Access:
public

Reimplemented in KkConverter, KuConverter, and SrConverter.

Definition at line 684 of file LanguageConverter.php.

References $action, $wgDisableLangConversion, $wgDisableTitleConversion, $wgRequest, $wgUser, autoConvertToAllVariants(), and Title::newFromText().

LanguageConverter::getConvRuleTitle (  ) 

Get the title produced by the conversion rule.

Returns:
string

Definition at line 123 of file LanguageConverter.php.

LanguageConverter::getExtraHashOptions (  ) 

Returns language specific hash options.

Access:
public

Definition at line 750 of file LanguageConverter.php.

References getPreferredVariant().

LanguageConverter::getHeaderVariant (  ) 

Determine the language variant from the Accept-Language header.

Returns:
mixed variant if one found, false otherwise.

Definition at line 231 of file LanguageConverter.php.

References $language, $result, $wgRequest, StringUtils::explode(), getVariantFallbacks(), and validateVariant().

Referenced by getPreferredVariant().

LanguageConverter::getPreferredVariant ( fromUser = true,
fromHeader = false 
)

Get preferred language variants.

Parameters:
boolean $fromUser Get it from $wgUser's preferences
boolean $fromHeader Get it from Accept-Language
Returns:
string the preferred language code
Access:
public

Definition at line 134 of file LanguageConverter.php.

References $wgDefaultLanguageVariant, getHeaderVariant(), getURLVariant(), getUserVariant(), and validateVariant().

Referenced by autoConvert(), captionConvert(), convert(), convertTitle(), SrConverter::findVariantLink(), KuConverter::findVariantLink(), KkConverter::findVariantLink(), and getExtraHashOptions().

LanguageConverter::getURLVariant (  ) 

Get the variant specified in the URL.

Returns:
mixed variant if one found, false otherwise.

Definition at line 178 of file LanguageConverter.php.

References $wgRequest, and validateVariant().

Referenced by getPreferredVariant().

LanguageConverter::getUserVariant (  ) 

Determine if the user has a variant set.

Returns:
mixed variant if one found, false otherwise.

Definition at line 201 of file LanguageConverter.php.

References $wgUser, and validateVariant().

Referenced by getPreferredVariant().

LanguageConverter::getVariantFallbacks ( v  ) 

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.

Parameters:
string $v The language code of the variant
Returns:
string array The code of the fallback language or false if there is no fallback
Access:
public

Definition at line 112 of file LanguageConverter.php.

Referenced by getHeaderVariant().

LanguageConverter::getVariants (  ) 

Access:
public

Definition at line 96 of file LanguageConverter.php.

LanguageConverter::getVarSeparatorPattern (  ) 

Get the cached separator pattern for ConverterRule::parseRules().

Definition at line 997 of file LanguageConverter.php.

LanguageConverter::loadDefaultTables (  ) 

Load default conversion tables.

This method must be implemented in derived class.

Access:
private

Reimplemented in GanConverter, KkConverter, KuConverter, SrConverter, TgConverter, ZhConverter, and TestConverter.

Definition at line 761 of file LanguageConverter.php.

References $name, and wfDie().

Referenced by loadTables().

LanguageConverter::loadTables ( fromcache = true  ) 

Load conversion tables either from the cache or the disk.

Access:
private

Definition at line 770 of file LanguageConverter.php.

References $wgMemc, loadDefaultTables(), parseCachedTable(), postLoadTables(), wfProfileIn(), and wfProfileOut().

Referenced by autoConvert(), autoConvertToAllVariants(), convertLinkToAllVariants(), reloadTables(), and translate().

LanguageConverter::markNoConversion ( text,
noParse = false 
)

Enclose a string with the "no conversion" tag.

This is used by various functions in the Parser.

Parameters:
string $text text to be tagged for no conversion
Returns:
string the tagged text
Access:
public

Reimplemented in GanConverter, KkConverter, KuConverter, SrConverter, and ZhConverter.

Definition at line 942 of file LanguageConverter.php.

LanguageConverter::OnArticleSaveComplete ( article,
user,
text,
summary,
isminor,
iswatch,
section,
flags,
revision 
) [private]

Hook to refresh the cache of conversion tables when MediaWiki:conversiontable* is updated.

Definition at line 965 of file LanguageConverter.php.

References $t, $title, reloadTables(), and validateVariant().

LanguageConverter::parseCachedTable ( code,
subpage = '',
recursive = true 
)

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.

Definition at line 838 of file LanguageConverter.php.

References $code, $s, $t, $title, $wgMessageCache, StringUtils::explode(), Title::makeTitleSafe(), and Language::ucfirst().

Referenced by loadTables().

LanguageConverter::postLoadTables (  ) 

Hook for post processig after conversion tables are loaded.

Reimplemented in KkConverter, and ZhConverter.

Definition at line 808 of file LanguageConverter.php.

Referenced by loadTables().

LanguageConverter::recursiveConvertRule ( text,
variant,
&$  startPos,
depth = 0 
) [protected]

Definition at line 604 of file LanguageConverter.php.

References applyManualConv(), autoConvert(), and wfMsgForContent().

Referenced by recursiveConvertTopLevel().

LanguageConverter::recursiveConvertTopLevel ( text,
variant,
depth = 0 
) [protected]

Definition at line 575 of file LanguageConverter.php.

References $out, autoConvert(), and recursiveConvertRule().

Referenced by convert().

LanguageConverter::reloadTables (  ) 

Reload the conversion tables.

Access:
private

Definition at line 815 of file LanguageConverter.php.

References loadTables().

Referenced by OnArticleSaveComplete().

LanguageConverter::translate ( text,
variant 
)

Translate a string to a variant.

Doesn't process markup or do any of that other stuff, for that use convert().

Parameters:
string $text Text to convert
string $variant Variant language code
Returns:
string Translated text
Access:
private

Reimplemented in KkConverter, KuConverter, and SrConverter.

Definition at line 412 of file LanguageConverter.php.

References loadTables(), wfProfileIn(), and wfProfileOut().

Referenced by autoConvert(), autoConvertToAllVariants(), captionConvert(), and convertLinkToAllVariants().

LanguageConverter::validateVariant ( v = null  ) 

Validate the variant.

Parameters:
string $v the variant to validate
Returns:
mixed returns the variant if it is valid, null otherwise

Definition at line 166 of file LanguageConverter.php.

Referenced by applyManualConv(), getHeaderVariant(), getPreferredVariant(), getURLVariant(), getUserVariant(), and OnArticleSaveComplete().


Member Data Documentation

LanguageConverter::$mCacheKey

Definition at line 25 of file LanguageConverter.php.

LanguageConverter::$mConvRuleTitle = false

Definition at line 30 of file LanguageConverter.php.

LanguageConverter::$mDescCodeSep = ':'

Definition at line 28 of file LanguageConverter.php.

LanguageConverter::$mDescVarSep = ';'

Definition at line 28 of file LanguageConverter.php.

LanguageConverter::$mFlags

Definition at line 27 of file LanguageConverter.php.

LanguageConverter::$mHeaderVariant

Definition at line 33 of file LanguageConverter.php.

LanguageConverter::$mLangObj

Definition at line 26 of file LanguageConverter.php.

LanguageConverter::$mMainLanguageCode

Definition at line 19 of file LanguageConverter.php.

LanguageConverter::$mManualLevel

Definition at line 24 of file LanguageConverter.php.

LanguageConverter::$mMaxDepth = 10

Definition at line 34 of file LanguageConverter.php.

LanguageConverter::$mTables

Definition at line 22 of file LanguageConverter.php.

LanguageConverter::$mTablesLoaded = false

Definition at line 21 of file LanguageConverter.php.

LanguageConverter::$mUcfirst = false

Definition at line 29 of file LanguageConverter.php.

LanguageConverter::$mURLVariant

Definition at line 31 of file LanguageConverter.php.

LanguageConverter::$mUserVariant

Definition at line 32 of file LanguageConverter.php.

LanguageConverter::$mVariantFallbacks

Definition at line 20 of file LanguageConverter.php.

LanguageConverter::$mVariantNames

Definition at line 20 of file LanguageConverter.php.

LanguageConverter::$mVariants

Definition at line 20 of file LanguageConverter.php.

LanguageConverter::$mVarSeparatorPattern

Definition at line 35 of file LanguageConverter.php.

Definition at line 37 of file LanguageConverter.php.


The documentation for this class was generated from the following file:

Generated on Sat Apr 30 22:57:40 2011 for MediaWiki by  doxygen 1.5.9