Jon Harald Søby has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/396007 )
Change subject: Add custom collation for Northern Sami
......................................................................
Add custom collation for Northern Sami
This commit adds a custom collation order for
Northern Sami ('se'). Northern Sami exists in ICU,
but the version of ICU that Wikimedia uses is a
few years old, and does *not* include Northern
Sami. It could be years before Wikimedia's production
servers use the one that includes Northern Sami (see
bug), so this is a temporary workaround to amend this
issue.
Bug: T181503
Change-Id: Ib8a48b8db99bef8ec4b05144aace5dbdcacfeded
---
M autoload.php
M includes/collation/Collation.php
A includes/collation/NorthernSamiUppercaseCollation.php
3 files changed, 85 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/07/396007/1
diff --git a/autoload.php b/autoload.php
index 2661fd7..cd01828 100644
--- a/autoload.php
+++ b/autoload.php
@@ -1040,6 +1040,7 @@
'NewPagesPager' => __DIR__ .
'/includes/specials/pagers/NewPagesPager.php',
'NewUsersLogFormatter' => __DIR__ .
'/includes/logging/NewUsersLogFormatter.php',
'NolinesImageGallery' => __DIR__ .
'/includes/gallery/NolinesImageGallery.php',
+ 'NorthernSamiUppercaseCollation' => __DIR__ .
'/includes/collation/NorthernSamiUppercaseCollation.php',
'NotRecursiveIterator' => __DIR__ .
'/includes/libs/iterators/NotRecursiveIterator.php',
'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
'NukePage' => __DIR__ . '/maintenance/nukePage.php',
diff --git a/includes/collation/Collation.php b/includes/collation/Collation.php
index d009168..7171a21 100644
--- a/includes/collation/Collation.php
+++ b/includes/collation/Collation.php
@@ -67,6 +67,8 @@
return new CollationFa;
case 'uppercase-ba':
return new BashkirUppercaseCollation;
+ case 'uppercase-se':
+ return new NorthernSamiUppercaseCollation;
default:
$match = [];
if ( preg_match( '/^uca-([A-Za-z@=-]+)$/',
$collationName, $match ) ) {
diff --git a/includes/collation/NorthernSamiUppercaseCollation.php
b/includes/collation/NorthernSamiUppercaseCollation.php
new file mode 100644
index 0000000..a5be4a9
--- /dev/null
+++ b/includes/collation/NorthernSamiUppercaseCollation.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.30
+ *
+ * @file
+ */
+
+/**
+ * Temporary workaround for incorrect collation of Northern Sami
+ * language ('se') in Wikimedia servers (see bug T181503).
+ *
+ * When the ICU's 'se' collation has been included in PHP-intl and Wikimedia
+ * servers updated to that new version of PHP, this file should be deleted
+ * and the collation for 'se' set to 'uca-se'.
+ *
+ * @since 1.31
+ */
+
+class NorthernSamiUppercaseCollation extends CustomUppercaseCollation {
+
+ public function __construct() {
+ parent::__construct( [
+ 'A',
+ 'Á',
+ 'B',
+ 'C',
+ 'Č',
+ 'Ʒ', // Not part of modern alphabet, but part of ICU
+ 'Ǯ', // Not part of modern alphabet, but part of ICU
+ 'D',
+ 'Đ',
+ 'E',
+ 'F',
+ 'G',
+ 'Ǧ', // Not part of modern alphabet, but part of ICU
+ 'H',
+ 'I',
+ 'J',
+ 'K',
+ 'Ǩ', // Not part of modern alphabet, but part of ICU
+ 'L',
+ 'M',
+ 'N',
+ 'Ŋ',
+ 'O',
+ 'P',
+ 'Q',
+ 'R',
+ 'S',
+ 'Š',
+ 'T',
+ 'Ŧ',
+ 'U',
+ 'V',
+ 'W',
+ 'X',
+ 'Y',
+ 'Z',
+ 'Ž',
+ 'Ø', // Not part of native alphabet, but part of ICU
+ 'Æ', // Not part of native alphabet, but part of ICU
+ 'Å', // Not part of native alphabet, but part of ICU
+ 'Ä', // Not part of native alphabet, but part of ICU
+ 'Ö', // Not part of native alphabet, but part of ICU
+ ], Language::factory( 'se' ) );
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/396007
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib8a48b8db99bef8ec4b05144aace5dbdcacfeded
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Jon Harald Søby <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits