Merge "Improve "selfmove" message's wording"
[lhc/web/wiklou.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 }