MediaWiki master
MediaWiki\Collation\PinyinCollation Class Reference

Tailored collation for Chinese Pinyin sorting. More...

Inherits MediaWiki\Collation\IcuCollation.

Collaboration diagram for MediaWiki\Collation\PinyinCollation:

Public Member Functions

 __construct (LanguageFactory $languageFactory, string $locale)
 
 getSortKey ( $string)
 ICU orders characters by script group (Latin/Hani) first, but we want to avoid having first-letter sections separately for Pinyin and English words on different pages of a large category.
 
- Public Member Functions inherited from MediaWiki\Collation\IcuCollation
 __construct (LanguageFactory $languageFactory, $locale)
 
 getFirstLetter ( $string)
 Given a string, return the logical "first letter" to be used for grouping on category pages and so on.This has to be coordinated carefully with convertToSortkey(), or else the sorted list might jump back and forth between the same "initial letters" or other pathological behavior. For instance, if you just return the first character, but "a" sorts the same as "A" based on getSortKey(), then you might get a list like== A ==

  • [[Aardvark]]
== a ==

  • [[antelope]]
== A ==

  • [[Ape]]
etc., assuming for the sake of argument that $wgCapitalLinks is false.
Since
1.16.3
Parameters
string$stringUTF-8 string
Returns
string UTF-8 string corresponding to the first letter of input

 
- Public Member Functions inherited from MediaWiki\Collation\Collation
 getSortKeys ( $strings)
 Get multiple sort keys.
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWiki\Collation\IcuCollation
static isCjk ( $codepoint)
 Test if a code point is a CJK (Chinese, Japanese, Korean) character.
 
- Protected Member Functions inherited from MediaWiki\Collation\IcuCollation
 getPrimarySortKey (string $string)
 
 getRawSortLetter (string $string)
 
- Protected Attributes inherited from MediaWiki\Collation\IcuCollation
Language $digitTransformLanguage
 
string $langCode
 
string $locale
 
string $localeGroup
 
Collator $mainCollator
 
Collator $primaryCollator
 

Detailed Description

Tailored collation for Chinese Pinyin sorting.

Groups Pinyin initials and Latin characters into buckets. TODO: Overrides for compounds of polyphonic characters (T401456)

Since
1.46

Definition at line 20 of file PinyinCollation.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Collation\PinyinCollation::__construct ( LanguageFactory $languageFactory,
string $locale )

Definition at line 22 of file PinyinCollation.php.

References MediaWiki\Collation\IcuCollation\$locale.

Member Function Documentation

◆ getSortKey()

MediaWiki\Collation\PinyinCollation::getSortKey ( $string)

ICU orders characters by script group (Latin/Hani) first, but we want to avoid having first-letter sections separately for Pinyin and English words on different pages of a large category.

Given a string, convert it to a (hopefully short) key that can be used for efficient sorting.A binary sort according to the sortkeys corresponds to a logical sort of the corresponding strings. Current code expects that a line feed character should sort before all others, but has no other particular expectations (and that one can be changed if necessary).

Since
1.16.3
Parameters
string$stringUTF-8 string
Returns
string Binary sortkey

Reimplemented from MediaWiki\Collation\IcuCollation.

Definition at line 45 of file PinyinCollation.php.

References MediaWiki\Collation\IcuCollation\getPrimarySortKey(), and MediaWiki\Collation\IcuCollation\getRawSortLetter().


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