10use MediaWiki\Languages\LanguageFactory;
31 private $digitTransformLang;
40 LanguageFactory $languageFactory,
43 $this->digitTransformLang = $digitTransformLang instanceof
Language
45 : $languageFactory->getLanguage( $digitTransformLang );
46 parent::__construct( $languageFactory );
51 $sortkey = parent::getSortKey( $string );
52 $sortkey = $this->convertDigits( $sortkey );
58 $sortkey = preg_replace_callback(
'/\d+/',
static function (
$matches ) {
61 $len = strlen( $number );
64 $prefix = chr( (
int)floor( $len / 256 ) ) . chr( $len % 256 );
65 return '0' . $prefix . $number;
79 private function convertDigits( $string ) {
80 $table = $this->digitTransformLang->digitTransformTable();
82 $table = array_filter( $table );
83 $flipped = array_flip( $table );
85 $flipped = array_filter( $flipped,
'is_numeric' );
86 $string = strtr( $string, $flipped );
93 $convertedString = $this->convertDigits( $string );
95 if ( preg_match(
'/^\d/', $convertedString ) ) {
96 return wfMessage(
'category-header-numerals' )
100 return parent::getFirstLetter( $string );
106class_alias( NumericUppercaseCollation::class,
'NumericUppercaseCollation' );
wfMessage( $key,... $params)
This is the function for getting translated interface messages.