]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - languages/LanguageCode.php
MediaWiki 1.30.2-scripts2
[autoinstallsdev/mediawiki.git] / languages / LanguageCode.php
1 <?php
2 /**
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16  * http://www.gnu.org/copyleft/gpl.html
17  *
18  * @file
19  * @ingroup Language
20  */
21
22 /**
23  * Methods for dealing with language codes.
24  * @todo Move some of the code-related static methods out of Language into this class
25  *
26  * @since 1.29
27  * @ingroup Language
28  */
29 class LanguageCode {
30         /**
31          * Mapping of deprecated language codes that were used in previous
32          * versions of MediaWiki to up-to-date, current language codes.
33          *
34          * @var array Mapping from language code to language code
35          *
36          * @since 1.30
37          */
38         private static $deprecatedLanguageCodeMapping = [
39                 // Note that als is actually a valid ISO 639 code (Tosk Albanian), but it
40                 // was previously used in MediaWiki for Alsatian, which comes under gsw
41                 'als' => 'gsw',
42                 'bat-smg' => 'sgs',
43                 'be-x-old' => 'be-tarask',
44                 'fiu-vro' => 'vro',
45                 'roa-rup' => 'rup',
46                 'zh-classical' => 'lzh',
47                 'zh-min-nan' => 'nan',
48                 'zh-yue' => 'yue',
49         ];
50
51         /**
52          * Returns a mapping of deprecated language codes that were used in previous
53          * versions of MediaWiki to up-to-date, current language codes.
54          *
55          * This array is merged into $wgDummyLanguageCodes in Setup.php, along with
56          * the fake language codes 'qqq' and 'qqx', which are used internally by
57          * MediaWiki's localisation system.
58          *
59          * @return string[]
60          *
61          * @since 1.29
62          */
63         public static function getDeprecatedCodeMapping() {
64                 return self::$deprecatedLanguageCodeMapping;
65         }
66
67         /**
68          * Replace deprecated language codes that were used in previous
69          * versions of MediaWiki to up-to-date, current language codes.
70          * Other values will returned unchanged.
71          *
72          * @param string $code Old language code
73          * @return string New language code
74          *
75          * @since 1.30
76          */
77         public static function replaceDeprecatedCodes( $code ) {
78                 if ( isset( self::$deprecatedLanguageCodeMapping[$code] ) ) {
79                         return self::$deprecatedLanguageCodeMapping[$code];
80                 }
81                 return $code;
82         }
83 }