MediaWiki REL1_28
SrConverter Class Reference

There are two levels of conversion for Serbian: the script level (Cyrillics <-> Latin), and the variant level (ekavian <->iyekavian). More...

Inheritance diagram for SrConverter:
Collaboration diagram for SrConverter:

Public Member Functions

 findVariantLink (&$link, &$nt, $ignoreOtherCond=false)
 A function wrapper:
 
 guessVariant ( $text, $variant)
 Guess if a text is written in Cyrillic or Latin.
 
 loadDefaultTables ()
 Load default conversion tables.
 
 parseManualRule ( $rule, $flags=[])
 rules should be defined as -{ekavian | iyekavian-} -or- -{code:text | code:text | ...}-
 
 translate ( $text, $toVariant)
 It translates text into variant, specials:
 
- Public Member Functions inherited from LanguageConverter
 __construct ( $langobj, $maincode, $variants=[], $variantfallbacks=[], $flags=[], $manualLevel=[])
 Constructor.
 
 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.
 
 convertNamespace ( $index, $variant=null)
 Get the namespace display name in the preferred variant.
 
 convertTitle ( $title)
 Auto convert a Title object to a readable string in the preferred variant.
 
 convertTo ( $text, $variant)
 Same as convert() except a extra parameter to custom variant.
 
 getConvRuleTitle ()
 Get the title produced by the conversion rule.
 
 getDefaultVariant ()
 Get default variant.
 
 getExtraHashOptions ()
 Returns language specific hash options.
 
 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.
 
 getVariants ()
 Get all valid variants.
 
 getVarSeparatorPattern ()
 Get the cached separator pattern for ConverterRule::parseRules()
 
 loadTables ( $fromCache=true)
 Load conversion tables either from the cache or the disk.
 
 markNoConversion ( $text, $noParse=false)
 Enclose a string with the "no conversion" tag.
 
 parseCachedTable ( $code, $subpage='', $recursive=true)
 Parse the conversion table stored in the cache.
 
 postLoadTables ()
 Hook for post processing after conversion tables are loaded.
 
 reloadTables ()
 Reload the conversion tables.
 
 updateConversionTable (Title $titleobj)
 Refresh the cache of conversion tables when MediaWiki:Conversiontable* is updated.
 
 validateVariant ( $variant=null)
 Validate the variant.
 

Public Attributes

 $mToCyrillics
 
 $mToLatin
 
- Public Attributes inherited from LanguageConverter
string $mCacheKey
 Memcached key name.
 
 $mConvRuleTitle = false
 
 $mDescCodeSep = ':'
 
 $mDescVarSep = ';'
 
 $mFlags
 
 $mHeaderVariant
 
 $mLangObj
 
 $mMainLanguageCode
 
 $mManualLevel
 
 $mMaxDepth = 10
 
 $mTables
 
 $mTablesLoaded = false
 
 $mUcfirst = false
 
 $mURLVariant
 
 $mUserVariant
 
 $mVariantFallbacks
 
 $mVariantNames
 
 $mVariants
 
 $mVarSeparatorPattern
 
const CACHE_VERSION_KEY = 'VERSION 7'
 

Additional Inherited Members

- Static Public Attributes inherited from LanguageConverter
static array $languagesWithVariants
 languages supporting variants
 
- Protected Member Functions inherited from LanguageConverter
 applyManualConv ( $convRule)
 Apply manual conversion rules.
 
 getHeaderVariant ()
 Determine the language variant from the Accept-Language header.
 
 getUserVariant ()
 Determine if the user has a variant set.
 
 recursiveConvertRule ( $text, $variant, &$startPos, $depth=0)
 Recursively convert text on the inside.
 
 recursiveConvertTopLevel ( $text, $variant, $depth=0)
 Recursively convert text on the outside.
 

Detailed Description

There are two levels of conversion for Serbian: the script level (Cyrillics <-> Latin), and the variant level (ekavian <->iyekavian).

The two are orthogonal. So we really only need two dictionaries: one for Cyrillics and Latin, and one for ekavian and iyekavian.

Definition at line 33 of file LanguageSr.php.

Member Function Documentation

◆ findVariantLink()

SrConverter::findVariantLink ( $link,
$nt,
  $ignoreOtherCond = false 
)

A function wrapper:

  • if there is no selected variant, leave the link names as they were
  • do not try to find variants for usernames
Parameters
string&$link
Title&$nt
bool$ignoreOtherCond

Reimplemented from LanguageConverter.

Definition at line 113 of file LanguageSr.php.

References $link, LanguageConverter\getPreferredVariant(), NS_USER, and NS_USER_TALK.

◆ guessVariant()

SrConverter::guessVariant (   $text,
  $variant 
)

Guess if a text is written in Cyrillic or Latin.

Overrides LanguageConverter::guessVariant()

Parameters
string$textThe text to be checked
string$variantLanguage code of the variant to be checked for
Returns
bool True if $text appears to be written in $variant
Author
Nikola Smolenski smole.nosp@m.nsk@.nosp@m.eunet.nosp@m..rs
Since
1.19

Reimplemented from LanguageConverter.

Definition at line 178 of file LanguageSr.php.

◆ loadDefaultTables()

SrConverter::loadDefaultTables ( )

Load default conversion tables.

This method must be implemented in derived class.

Access:\n private
Exceptions
MWException

Reimplemented from LanguageConverter.

Definition at line 70 of file LanguageSr.php.

◆ parseManualRule()

SrConverter::parseManualRule (   $rule,
  $flags = [] 
)

rules should be defined as -{ekavian | iyekavian-} -or- -{code:text | code:text | ...}-

update: delete all rule parsing because it's not used currently, and just produces a couple of bugs

Parameters
string$rule
array$flags
Returns
array

Definition at line 89 of file LanguageSr.php.

References $flags, and as.

◆ translate()

SrConverter::translate (   $text,
  $toVariant 
)

It translates text into variant, specials:

  • ommiting roman numbers
Parameters
string$text
string$toVariant
Exceptions
MWException
Returns
string

Reimplemented from LanguageConverter.

Definition at line 139 of file LanguageSr.php.

References $matches, $ret, as, and LanguageConverter\loadTables().

Member Data Documentation

◆ $mToCyrillics

SrConverter::$mToCyrillics
Initial value:
= [
'a' => 'а', 'b' => 'б', 'c' => 'ц', 'č' => 'ч', 'ć' => 'ћ',
'd' => 'д', 'dž' => 'џ', 'đ' => 'ђ', 'e' => 'е', 'f' => 'ф',
'g' => 'г', 'h' => 'х', 'i' => 'и', 'j' => 'ј', 'k' => 'к',
'l' => 'л', 'lj' => 'љ', 'm' => 'м', 'n' => 'н', 'nj' => 'њ',
'o' => 'о', 'p' => 'п', 'r' => 'р', 's' => 'с', 'š' => 'ш',
't' => 'т', 'u' => 'у', 'v' => 'в', 'z' => 'з', 'ž' => 'ж',
'A' => 'А', 'B' => 'Б', 'C' => 'Ц', 'Č' => 'Ч', 'Ć' => 'Ћ',
'D' => 'Д', 'Dž' => 'Џ', 'Đ' => 'Ђ', 'E' => 'Е', 'F' => 'Ф',
'G' => 'Г', 'H' => 'Х', 'I' => 'И', 'J' => 'Ј', 'K' => 'К',
'L' => 'Л', 'LJ' => 'Љ', 'M' => 'М', 'N' => 'Н', 'NJ' => 'Њ',
'O' => 'О', 'P' => 'П', 'R' => 'Р', 'S' => 'С', 'Š' => 'Ш',
'T' => 'Т', 'U' => 'У', 'V' => 'В', 'Z' => 'З', 'Ž' => 'Ж',
'DŽ' => 'Џ', 'd!ž' => 'дж', 'D!ž' => 'Дж', 'D!Ž' => 'ДЖ',
'Lj' => 'Љ', 'l!j' => 'лј', 'L!j' => 'Лј', 'L!J' => 'ЛЈ',
'Nj' => 'Њ', 'n!j' => 'нј', 'N!j' => 'Нј', 'N!J' => 'НЈ'
]

Definition at line 50 of file LanguageSr.php.

◆ $mToLatin

SrConverter::$mToLatin
Initial value:
= [
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
'ђ' => 'đ', 'е' => 'e', 'ж' => 'ž', 'з' => 'z', 'и' => 'i',
'ј' => 'j', 'к' => 'k', 'л' => 'l', 'љ' => 'lj', 'м' => 'm',
'н' => 'n', 'њ' => 'nj', 'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'ћ' => 'ć', 'у' => 'u', 'ф' => 'f',
'х' => 'h', 'ц' => 'c', 'ч' => 'č', 'џ' => 'dž', 'ш' => 'š',
'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D',
'Ђ' => 'Đ', 'Е' => 'E', 'Ж' => 'Ž', 'З' => 'Z', 'И' => 'I',
'Ј' => 'J', 'К' => 'K', 'Л' => 'L', 'Љ' => 'Lj', 'М' => 'M',
'Н' => 'N', 'Њ' => 'Nj', 'О' => 'O', 'П' => 'P', 'Р' => 'R',
'С' => 'S', 'Т' => 'T', 'Ћ' => 'Ć', 'У' => 'U', 'Ф' => 'F',
'Х' => 'H', 'Ц' => 'C', 'Ч' => 'Č', 'Џ' => 'Dž', 'Ш' => 'Š',
]

Definition at line 34 of file LanguageSr.php.


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