From: Amir Sarabadani Date: Sun, 31 Jul 2016 14:36:49 +0000 (+0430) Subject: Add CollationFa X-Git-Tag: 1.31.0-rc.0~4577^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22auteur_infos%22%2C%20%22id_auteur=%24id%22%29%20.%20%22?a=commitdiff_plain;h=708c02281e6e8880ae2cebbda7f353ce97841f94;p=lhc%2Fweb%2Fwiklou.git Add CollationFa Bug: T139110 Change-Id: Ie15a2ee1c22ff4a1d2b721ed137227fe83dd12ea --- diff --git a/autoload.php b/autoload.php index 5808040e41..f8b6f231fc 100644 --- a/autoload.php +++ b/autoload.php @@ -257,6 +257,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 fe254afdc5..0e0ee2f698 100644 --- a/includes/collation/Collation.php +++ b/includes/collation/Collation.php @@ -59,6 +59,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 ); + } +}