1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace Xoops\Core\Locale;
13:
14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
39: class LegacyCodes
40: {
41: private static $rawCodes = array(
42: ['ar_SA', 'ar', 'ar-Arab-SA', ['arabic']],
43: ['bg_BG', 'bg', 'bg-Cyrl-BG', ['bulgarian']],
44: ['cs_CZ', 'cs', 'cs-Latn-CZ', ['czech']],
45: ['da_DK', 'da', 'da-Latn-DK', ['danish']],
46: ['de_DE', 'de', 'de-Latn-DE', ['german']],
47: ['el_GR', 'el', 'el-Grek-GR', ['greek']],
48: ['en_US', 'en', 'en-Latn-US', ['english']],
49: ['es_ES', 'es', 'es-Latn-ES', ['spanish']],
50: ['fa_IR', 'fa', 'fa-Arab-IR', ['persian']],
51: ['fr_FR', 'fr', 'fr-Latn-FR', ['french']],
52: ['hr_HR', 'hr', 'hr-Latn-HR', ['croatian']],
53: ['hu_HU', 'hu', 'hu-Latn-HU', ['hungarian']],
54: ['it_IT', 'it', 'it-Latn-IT', ['italian']],
55: ['ja_JP', 'ja', 'ja-Jpan-JP', ['japanese']],
56: ['ko_KR', 'ko', 'ko-Kore-KR', ['korean']],
57: ['ms_MY', 'ms', 'ms-Latn-MY', ['malaysian']],
58: ['nl_NL', 'nl', 'nl-Latn-NL', ['dutch']],
59: ['no_NO', 'no', 'no-Latn-NO', ['norwegian']],
60: ['pl_PL', 'pl', 'pl-Latn-PL', ['polish']],
61: ['pt_BR', 'pt', 'pt-Latn-BR', ['portuguesebr', 'brazilian']],
62: ['pt_PT', 'pt_PT', 'pt-Latn-PT', ['portuguese']],
63: ['ru_RU', 'ru', 'ru-Cyrl-RU', ['russian']],
64: ['sk_SK', 'sk', 'sk-Latn-SK', ['slovak']],
65: ['sl_SI', 'sl', 'sl-Latn-SI', ['slovenian']],
66: ['sv_SE', 'sv', 'sv-Latn-SE', ['swedish']],
67: ['th_TH', 'th', 'th-Thai-TH', ['thai']],
68: ['tr_TR', 'tr', 'tr-Latn-TR', ['turkish']],
69: ['vi_VN', 'vi', 'vi-Latn-VN', ['vietnamese']],
70: ['zh_CN', 'zh_Hans', 'zh-Hans-CN', ['schinese']],
71: ['zh_TW', 'zh_Hant', 'zh-Hant-TW', ['tchinese', 'chinese_zh']],
72: );
73:
74: private static $namesByCode = null;
75: private static $codesByName = null;
76:
77: 78: 79: 80: 81:
82: public static function getLegacyName($localeCode)
83: {
84: if (empty(self::$namesByCode)) {
85: foreach (self::$rawCodes as $codeDef) {
86: list($locale, $shortLocale, $fullLocale, $languages) = $codeDef;
87: self::$namesByCode[$locale] = $languages;
88: self::$namesByCode[$shortLocale] = $languages;
89: }
90: }
91:
92: if (isset(self::$namesByCode[$localeCode])) {
93: return self::$namesByCode[$localeCode];
94: }
95:
96: $langOnly = substr($localeCode, 0, 2);
97: if (isset(self::$namesByCode[$langOnly])) {
98: return self::$namesByCode[$langOnly];
99: }
100:
101: return array();
102: }
103:
104: 105: 106: 107: 108:
109: public static function getLocaleCode($languageDir)
110: {
111: if (empty(self::$codesByName)) {
112: foreach (self::$rawCodes as $codeDef) {
113: list($locale, $shortLocale, $fullLocale, $languages) = $codeDef;
114: foreach ($languages as $language) {
115: self::$codesByName[$language] = $fullLocale;
116: }
117: }
118: }
119:
120: if (isset(self::$codesByName[$languageDir])) {
121: return self::$codesByName[$languageDir];
122: }
123:
124: return null;
125: }
126: }
127: