From: jenkins-bot Date: Thu, 15 Dec 2016 13:37:56 +0000 (+0000) Subject: Merge "Add CollationFa" X-Git-Tag: 1.31.0-rc.0~4577 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=ce079cf6ad79ca8d3360817f809b219d166f9153;hp=17b3bab4d636df56e4a4b55e52fcda9fde892804 Merge "Add CollationFa" --- diff --git a/autoload.php b/autoload.php index 0283d3c512..9dba6cd648 100644 --- a/autoload.php +++ b/autoload.php @@ -260,6 +260,7 @@ $wgAutoloadLocalClasses = [ 'Collation' => __DIR__ . '/includes/collation/Collation.php', 'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php', 'CollationEt' => __DIR__ . '/includes/collation/CollationEt.php', + 'CollationFa' => __DIR__ . '/includes/collation/CollationFa.php', 'CommandLineInc' => __DIR__ . '/maintenance/commandLine.inc', 'CommandLineInstaller' => __DIR__ . '/maintenance/install.php', 'CompareParserCache' => __DIR__ . '/maintenance/compareParserCache.php', diff --git a/includes/collation/Collation.php b/includes/collation/Collation.php index 9950a11a6f..7659d6c4d5 100644 --- a/includes/collation/Collation.php +++ b/includes/collation/Collation.php @@ -63,6 +63,8 @@ abstract class Collation { return new CollationCkb; case 'xx-uca-et': return new CollationEt; + case 'xx-uca-fa': + return new CollationFa; default: $match = []; if ( preg_match( '/^uca-([a-z@=-]+)$/', $collationName, $match ) ) { diff --git a/includes/collation/CollationFa.php b/includes/collation/CollationFa.php new file mode 100644 index 0000000000..b7e45cc1d6 --- /dev/null +++ b/includes/collation/CollationFa.php @@ -0,0 +1,44 @@ +tertiaryCollator = Collator::create( 'fa' ); + } + + public function getPrimarySortKey( $string ) { + $firstLetter = mb_substr( $string, 0, 1 ); + if ( $firstLetter === 'و' || $firstLetter === 'ا' ) { + return $this->tertiaryCollator->getSortKey( $string ); + } + + return parent::getPrimarySortKey( $string ); + } +}