See I4542f57a. Meant as a temporary meassure until such a time
generic tailoring code is implemented for uca. This patch
is mostly Lejonel's code, with the class renamed.
Change-Id: Id39406c37a5277d9e7a9216544de2140411c2b01
* (bug 5346) Categories that are redirects will be displayed italic in
the category links section at the bottom of a page.
* (bug 43915) New maintenance script deleteEqualMessages.php.
* (bug 5346) Categories that are redirects will be displayed italic in
the category links section at the bottom of a page.
* (bug 43915) New maintenance script deleteEqualMessages.php.
+* New collation uppercase-sv, which is like uppercase, but adapted
+ to Swedish sort order.
=== Bug fixes in 1.21 ===
* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
=== Bug fixes in 1.21 ===
* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
'UnlistedSpecialPage' => 'includes/SpecialPage.php',
'UploadSourceAdapter' => 'includes/Import.php',
'UppercaseCollation' => 'includes/Collation.php',
'UnlistedSpecialPage' => 'includes/SpecialPage.php',
'UploadSourceAdapter' => 'includes/Import.php',
'UppercaseCollation' => 'includes/Collation.php',
+ 'UppercaseSvCollation' => 'includes/Collation.php',
'User' => 'includes/User.php',
'UserArray' => 'includes/UserArray.php',
'UserArrayFromResult' => 'includes/UserArray.php',
'User' => 'includes/User.php',
'UserArray' => 'includes/UserArray.php',
'UserArrayFromResult' => 'includes/UserArray.php',
switch( $collationName ) {
case 'uppercase':
return new UppercaseCollation;
switch( $collationName ) {
case 'uppercase':
return new UppercaseCollation;
+ case 'uppercase-sv':
+ return new UppercaseSvCollation;
case 'identity':
return new IdentityCollation;
case 'uca-default':
case 'identity':
return new IdentityCollation;
case 'uca-default':
+/**
+ * Like UppercaseCollation but swaps Ä and Æ.
+ *
+ * This provides an ordering suitable for Swedish.
+ * @author Lejonel
+ */
+class UppercaseSvCollation extends UppercaseCollation {
+
+ /* Unicode code point order is ÄÅÆÖ, Swedish order is ÅÄÖ and Æ is often sorted as Ä.
+ * Replacing Ä for Æ should give a better collation. */
+ function getSortKey( $string ) {
+ $uppercase = $this->lang->uc( $string );
+ return strtr( $uppercase, array( 'Ä' => 'Æ', 'Æ' => 'Ä' ) );
+ }
+}
+
/**
* Collation class that's essentially a no-op.
*
/**
* Collation class that's essentially a no-op.
*