LanguageConverter Class Reference
[Language]

base class for language convert More...

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

List of all members.

Public Member Functions

 __construct ($langobj, $maincode, $variants=array(), $variantfallbacks=array(), $markup=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.
 getPreferredVariant ($fromUser=true)
 get preferred language variants.
 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 Doesn't process markup or do any of that other stuff, for that use convert().
 autoConvertToAllVariants ($text)
 convert text to all supported variants
 convertLinkToAllVariants ($text)
 convert link text to all supported variants
 prepareManualConv ($convRule)
 prepare manual conversion table
 applyManualConv ()
 apply manual conversion from $this->mManualAddTables and $this->mManualRemoveTables
 parserConvert ($text, &$parser)
 Convert text using a parser object for context.
 convertNamespace ($title, $variant)
 convert namespace
 convertTitle ($text, $variant)
 convert title
 convert ($text, $isTitle=false)
 convert text to different variants of a language.
 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
 getParsedTitle ()
 get title text as defined in the body of the article text
 lockCache ()
 a write lock to the cache
 unlockCache ()
 unlock cache
 loadDefaultTables ()
 Load default conversion tables This method must be implemented in derived class.
 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 Wrap math into rawoutput -{R| math }- syntax.

Public Attributes

 $mPreferredVariant = ''
 $mMainLanguageCode
 $mVariants
 $mVariantFallbacks
 $mVariantNames
 $mTablesLoaded = false
 $mTables
 $mManualAddTables
 $mManualRemoveTables
 $mNamespaceTables
 $mTitleDisplay = ''
 $mDoTitleConvert = true
 $mDoContentConvert = true
 $mManualLevel
 $mTitleFromFlag = false
 $mCacheKey
 $mLangObj
 $mMarkup
 $mFlags
 $mDescCodeSep = ':'
 $mDescVarSep = ';'
 $mUcfirst = false
const CACHE_VERSION_KEY = 'VERSION 6'

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 convert

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(),
markup = array(),
flags = array(),
manualLevel = array() 
)

Constructor.

Parameters:
string $maincode the main language code of this language
array $variants the supported variants of this language
array $variantfallback the fallback language of each variant
array $markup array defining the markup used for manual conversion
array $flags array defining the custom strings that maps to the flags
array $manualLevel limit for supported variants
Access:
public

Reimplemented in GanConverter, and ZhConverter.

Definition at line 51 of file LanguageConverter.php.

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


Member Function Documentation

LanguageConverter::applyManualConv (  ) 

apply manual conversion from $this->mManualAddTables and $this->mManualRemoveTables

Access:
private

Definition at line 398 of file LanguageConverter.php.

Referenced by convert().

LanguageConverter::armourMath ( text  ) 

Armour rendered math against conversion Wrap math into rawoutput -{R| math }- syntax.

Definition at line 868 of file LanguageConverter.php.

References $text.

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 231 of file LanguageConverter.php.

References $fname, $prefix, $text, $wgParser, getPreferredVariant(), loadTables(), translate(), wfProfileIn(), and wfProfileOut().

Referenced by convert(), ZhConverter::convertCategoryKey(), and GanConverter::convertCategoryKey().

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 312 of file LanguageConverter.php.

References $fname, $text, 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 213 of file LanguageConverter.php.

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

LanguageConverter::convert ( text,
isTitle = false 
)

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:
string $text text to be converted
bool $isTitle whether this conversion is for the article title
Returns:
string converted text
Access:
public

Definition at line 496 of file LanguageConverter.php.

References $text, applyManualConv(), autoConvert(), convertTitle(), StringUtils::explode(), MagicWord::get(), getPreferredVariant(), and prepareManualConv().

Referenced by convertTitle(), and parserConvert().

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 840 of file LanguageConverter.php.

References $key.

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 334 of file LanguageConverter.php.

References $text, loadTables(), and translate().

LanguageConverter::convertNamespace ( title,
variant 
)

convert namespace

Parameters:
string $title the title included namespace
Returns:
array of string
Access:
private

Definition at line 438 of file LanguageConverter.php.

References $title.

Referenced by convertTitle().

LanguageConverter::convertTitle ( text,
variant 
)

convert title

Access:
private

Definition at line 452 of file LanguageConverter.php.

References $action, $text, $wgDisableTitleConversion, $wgRequest, $wgUser, convert(), and convertNamespace().

Referenced by convert().

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 560 of file LanguageConverter.php.

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

LanguageConverter::getExtraHashOptions (  ) 

returns language specific hash options

Access:
public

Definition at line 610 of file LanguageConverter.php.

References getPreferredVariant().

LanguageConverter::getParsedTitle (  ) 

get title text as defined in the body of the article text

Access:
public

Definition at line 620 of file LanguageConverter.php.

LanguageConverter::getPreferredVariant ( fromUser = true  ) 

get preferred language variants.

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

Definition at line 129 of file LanguageConverter.php.

References $_SERVER, $wgDefaultLanguageVariant, $wgRequest, $wgUser, and $wgVariantArticlePath.

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

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 116 of file LanguageConverter.php.

LanguageConverter::getVariants (  ) 

Access:
public

Definition at line 101 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, and ZhConverter.

Definition at line 657 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 666 of file LanguageConverter.php.

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

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

LanguageConverter::lockCache (  ) 

a write lock to the cache

Access:
private

Definition at line 629 of file LanguageConverter.php.

References $i, $success, and $wgMemc.

Referenced by loadTables().

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 826 of file LanguageConverter.php.

References $text.

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 848 of file LanguageConverter.php.

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

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 734 of file LanguageConverter.php.

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

Referenced by loadTables().

LanguageConverter::parserConvert ( text,
&$  parser 
)

Convert text using a parser object for context.

Access:
public

Reimplemented in KkConverter, KuConverter, and SrConverter.

Definition at line 413 of file LanguageConverter.php.

References $text, $wgDisableLangConversion, and convert().

LanguageConverter::postLoadTables (  ) 

Hook for post processig after conversion tables are loaded.

Reimplemented in KkConverter, and ZhConverter.

Definition at line 705 of file LanguageConverter.php.

Referenced by loadTables().

LanguageConverter::prepareManualConv ( convRule  ) 

prepare manual conversion table

Access:
private

Definition at line 363 of file LanguageConverter.php.

References $action, $t, and $title.

Referenced by convert().

LanguageConverter::reloadTables (  ) 

Reload the conversion tables.

Access:
private

Definition at line 712 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 296 of file LanguageConverter.php.

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

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

LanguageConverter::unlockCache (  ) 

unlock cache

Access:
private

Definition at line 645 of file LanguageConverter.php.

References $wgMemc.

Referenced by loadTables().


Member Data Documentation

LanguageConverter::$mCacheKey

Definition at line 31 of file LanguageConverter.php.

LanguageConverter::$mDescCodeSep = ':'

Definition at line 35 of file LanguageConverter.php.

LanguageConverter::$mDescVarSep = ';'

Definition at line 35 of file LanguageConverter.php.

LanguageConverter::$mDoContentConvert = true

Definition at line 28 of file LanguageConverter.php.

LanguageConverter::$mDoTitleConvert = true

Definition at line 28 of file LanguageConverter.php.

LanguageConverter::$mFlags

Definition at line 34 of file LanguageConverter.php.

LanguageConverter::$mLangObj

Definition at line 32 of file LanguageConverter.php.

LanguageConverter::$mMainLanguageCode

Definition at line 20 of file LanguageConverter.php.

LanguageConverter::$mManualAddTables

Definition at line 24 of file LanguageConverter.php.

LanguageConverter::$mManualLevel

Definition at line 29 of file LanguageConverter.php.

LanguageConverter::$mManualRemoveTables

Definition at line 25 of file LanguageConverter.php.

LanguageConverter::$mMarkup

Definition at line 33 of file LanguageConverter.php.

LanguageConverter::$mNamespaceTables

Definition at line 26 of file LanguageConverter.php.

LanguageConverter::$mPreferredVariant = ''

Definition at line 19 of file LanguageConverter.php.

LanguageConverter::$mTables

Definition at line 23 of file LanguageConverter.php.

LanguageConverter::$mTablesLoaded = false

Definition at line 22 of file LanguageConverter.php.

LanguageConverter::$mTitleDisplay = ''

Definition at line 27 of file LanguageConverter.php.

LanguageConverter::$mTitleFromFlag = false

Definition at line 30 of file LanguageConverter.php.

LanguageConverter::$mUcfirst = false

Definition at line 36 of file LanguageConverter.php.

LanguageConverter::$mVariantFallbacks

Definition at line 21 of file LanguageConverter.php.

LanguageConverter::$mVariantNames

Definition at line 21 of file LanguageConverter.php.

LanguageConverter::$mVariants

Definition at line 21 of file LanguageConverter.php.

Definition at line 38 of file LanguageConverter.php.


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

Generated on Sat Sep 5 02:08:39 2009 for MediaWiki by  doxygen 1.5.9