Lines
100.00%
9 / 9
Methods
100.00%
6 / 6
Classes
100.00%
1 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| getAll | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| getAllSorted | 100.00% | 3 / 3 | 100.00% | 1 / 1 | 1 | ||
| get | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| getSupported | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 2 | ||
| getKey | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| getAllSupported | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| 22 | class LanguageCodes | |
| 23 | { | |
| 24 | /** | |
| 25 | * ISO 639 language code list with native language names | |
| 26 | * | |
| 27 | * @var array<string, string> | |
| 28 | */ | |
| 29 | protected static array $languageCodes = [ | |
| 30 | 'aa' => 'Qafar', | |
| 31 | 'ab' => 'Аԥсуа бызшәа', | |
| 32 | 'af' => 'Afrikaans', | |
| 33 | 'am' => 'አማርኛ', | |
| 34 | 'ar' => 'العربية', | |
| 35 | 'ar_ae' => 'العربية (الإمارات)', | |
| 36 | 'ar_bh' => 'العربية (البحرين)', | |
| 37 | 'ar_dz' => 'العربية (الجزائر)', | |
| 38 | 'ar_eg' => 'العربية (مصر)', | |
| 39 | 'ar_iq' => 'العربية (العراق)', | |
| 40 | 'ar_jo' => 'العربية (الأردن)', | |
| 41 | 'ar_kw' => 'العربية (الكويت)', | |
| 42 | 'ar_lb' => 'العربية (لبنان)', | |
| 43 | 'ar_ly' => 'العربية (ليبيا)', | |
| 44 | 'ar_ma' => 'العربية (المغرب)', | |
| 45 | 'ar_om' => 'العربية (عمان)', | |
| 46 | 'ar_qa' => 'العربية (قطر)', | |
| 47 | 'ar_sa' => 'العربية (السعودية)', | |
| 48 | 'ar_sy' => 'العربية (سوريا)', | |
| 49 | 'ar_tn' => 'العربية (تونس)', | |
| 50 | 'ar_ye' => 'العربية (اليمن)', | |
| 51 | 'as' => 'অসমীয়া', | |
| 52 | 'ay' => 'Aymar aru', | |
| 53 | 'az' => 'Azərbaycan dili', | |
| 54 | 'ba' => 'Башҡорт теле', | |
| 55 | 'be' => 'Беларуская', | |
| 56 | 'bg' => 'Български', | |
| 57 | 'bh' => 'भोजपुरी', | |
| 58 | 'bi' => 'Bislama', | |
| 59 | 'bn' => 'বাংলা', | |
| 60 | 'bo' => 'བོད་ཡིག', | |
| 61 | 'br' => 'Brezhoneg', | |
| 62 | 'bs' => 'Bosanski', | |
| 63 | 'ca' => 'Català', | |
| 64 | 'co' => 'Corsu', | |
| 65 | 'cs' => 'Čeština', | |
| 66 | 'cy' => 'Cymraeg', | |
| 67 | 'da' => 'Dansk', | |
| 68 | 'de' => 'Deutsch', | |
| 69 | 'de_at' => 'Deutsch (Österreich)', | |
| 70 | 'de_ch' => 'Deutsch (Schweiz)', | |
| 71 | 'de_li' => 'Deutsch (Liechtenstein)', | |
| 72 | 'de_lu' => 'Deutsch (Luxemburg)', | |
| 73 | 'div' => 'ދިވެހި', | |
| 74 | 'dz' => 'རྫོང་ཁ', | |
| 75 | 'el' => 'Ελληνικά', | |
| 76 | 'en' => 'English', | |
| 77 | 'en_au' => 'English (Australia)', | |
| 78 | 'en_bz' => 'English (Belize)', | |
| 79 | 'en_ca' => 'English (Canada)', | |
| 80 | 'en_gb' => 'English (United Kingdom)', | |
| 81 | 'en_ie' => 'English (Ireland)', | |
| 82 | 'en_jm' => 'English (Jamaica)', | |
| 83 | 'en_nz' => 'English (New Zealand)', | |
| 84 | 'en_ph' => 'English (Philippines)', | |
| 85 | 'en_tt' => 'English (Trinidad)', | |
| 86 | 'en_us' => 'English (United States)', | |
| 87 | 'en_za' => 'English (South Africa)', | |
| 88 | 'en_zw' => 'English (Zimbabwe)', | |
| 89 | 'eo' => 'Esperanto', | |
| 90 | 'es' => 'Español', | |
| 91 | 'es_ar' => 'Español (Argentina)', | |
| 92 | 'es_bo' => 'Español (Bolivia)', | |
| 93 | 'es_cl' => 'Español (Chile)', | |
| 94 | 'es_co' => 'Español (Colombia)', | |
| 95 | 'es_cr' => 'Español (Costa Rica)', | |
| 96 | 'es_do' => 'Español (República Dominicana)', | |
| 97 | 'es_ec' => 'Español (Ecuador)', | |
| 98 | 'es_es' => 'Español (España)', | |
| 99 | 'es_gt' => 'Español (Guatemala)', | |
| 100 | 'es_hn' => 'Español (Honduras)', | |
| 101 | 'es_mx' => 'Español (México)', | |
| 102 | 'es_ni' => 'Español (Nicaragua)', | |
| 103 | 'es_pa' => 'Español (Panamá)', | |
| 104 | 'es_pe' => 'Español (Perú)', | |
| 105 | 'es_pr' => 'Español (Puerto Rico)', | |
| 106 | 'es_py' => 'Español (Paraguay)', | |
| 107 | 'es_sv' => 'Español (El Salvador)', | |
| 108 | 'es_us' => 'Español (Estados Unidos)', | |
| 109 | 'es_uy' => 'Español (Uruguay)', | |
| 110 | 'es_ve' => 'Español (Venezuela)', | |
| 111 | 'et' => 'Eesti', | |
| 112 | 'eu' => 'Euskara', | |
| 113 | 'fa' => 'فارسی', | |
| 114 | 'fi' => 'Suomi', | |
| 115 | 'fj' => 'Vosa Vakaviti', | |
| 116 | 'fo' => 'Føroyskt', | |
| 117 | 'fr' => 'Français', | |
| 118 | 'fr_be' => 'Français (Belgique)', | |
| 119 | 'fr_ca' => 'Français (Canada)', | |
| 120 | 'fr_ch' => 'Français (Suisse)', | |
| 121 | 'fr_lu' => 'Français (Luxembourg)', | |
| 122 | 'fr_mc' => 'Français (Monaco)', | |
| 123 | 'fy' => 'Frysk', | |
| 124 | 'ga' => 'Gaeilge', | |
| 125 | 'gd' => 'Gàidhlig', | |
| 126 | 'gl' => 'Galego', | |
| 127 | 'gn' => "Avañe'ẽ", | |
| 128 | 'gu' => 'ગુજરાતી', | |
| 129 | 'ha' => 'Hausa', | |
| 130 | 'he' => 'עברית', | |
| 131 | 'hi' => 'हिन्दी', | |
| 132 | 'hr' => 'Hrvatski', | |
| 133 | 'hu' => 'Magyar', | |
| 134 | 'hy' => 'Հայերեն', | |
| 135 | 'ia' => 'Interlingua', | |
| 136 | 'id' => 'Bahasa Indonesia', | |
| 137 | 'ie' => 'Interlingue', | |
| 138 | 'ik' => 'Iñupiaq', | |
| 139 | 'in' => 'Bahasa Indonesia', | |
| 140 | 'is' => 'Íslenska', | |
| 141 | 'it' => 'Italiano', | |
| 142 | 'it_ch' => 'Italiano (Svizzera)', | |
| 143 | 'iw' => 'עברית', | |
| 144 | 'ja' => '日本語', | |
| 145 | 'ji' => 'ייִדיש', | |
| 146 | 'jw' => 'Basa Jawa', | |
| 147 | 'ka' => 'ქართული', | |
| 148 | 'kk' => 'Қазақ тілі', | |
| 149 | 'kl' => 'Kalaallisut', | |
| 150 | 'km' => 'ភាសាខ្មែរ', | |
| 151 | 'kn' => 'ಕನ್ನಡ', | |
| 152 | 'ko' => '한국어', | |
| 153 | 'kok' => 'कोंकणी', | |
| 154 | 'ks' => 'कश्मिरी', | |
| 155 | 'ku' => 'Kurdî', | |
| 156 | 'ky' => 'Кыргызча', | |
| 157 | 'kz' => 'Кыргызча', | |
| 158 | 'la' => 'Latina', | |
| 159 | 'ln' => 'Lingála', | |
| 160 | 'lo' => 'ລາວ', | |
| 161 | 'ls' => 'Slovenščina', | |
| 162 | 'lt' => 'Lietuvių', | |
| 163 | 'lv' => 'Latviešu', | |
| 164 | 'mg' => 'Malagasy', | |
| 165 | 'mi' => 'Te Reo Māori', | |
| 166 | 'mk' => 'Македонски', | |
| 167 | 'ml' => 'മലയാളം', | |
| 168 | 'mn' => 'Монгол', | |
| 169 | 'mo' => 'Moldovenească', | |
| 170 | 'mr' => 'मराठी', | |
| 171 | 'ms' => 'Bahasa Melayu', | |
| 172 | 'mt' => 'Malti', | |
| 173 | 'my' => 'ဗမာစာ', | |
| 174 | 'na' => 'Dorerin Naoero', | |
| 175 | 'nb' => 'Norsk (Bokmål)', | |
| 176 | 'nb_no' => 'Norsk (Bokmål)', | |
| 177 | 'ne' => 'नेपाली', | |
| 178 | 'nl' => 'Nederlands', | |
| 179 | 'nl_be' => 'Nederlands (België)', | |
| 180 | 'nn_no' => 'Norsk (Nynorsk)', | |
| 181 | 'no' => 'Norsk (Bokmål)', | |
| 182 | 'oc' => 'Occitan', | |
| 183 | 'om' => 'Oromoo', | |
| 184 | 'or' => 'ଓଡ଼ିଆ', | |
| 185 | 'pa' => 'ਪੰਜਾਬੀ', | |
| 186 | 'pl' => 'Polski', | |
| 187 | 'ps' => 'پښتو', | |
| 188 | 'pt' => 'Português', | |
| 189 | 'pt_br' => 'Português (Brasil)', | |
| 190 | 'qu' => 'Runa Simi', | |
| 191 | 'rm' => 'Rumantsch', | |
| 192 | 'rn' => 'Ikirundi', | |
| 193 | 'ro' => 'Română', | |
| 194 | 'ro_md' => 'Română (Moldova)', | |
| 195 | 'ru' => 'Русский', | |
| 196 | 'ru_md' => 'Русский (Молдова)', | |
| 197 | 'rw' => 'Kinyarwanda', | |
| 198 | 'sa' => 'संस्कृतम्', | |
| 199 | 'sb' => 'Serbšćina', | |
| 200 | 'sd' => 'سنڌي', | |
| 201 | 'sg' => 'Sängö', | |
| 202 | 'sh' => 'Srpskohrvatski', | |
| 203 | 'si' => 'සිංහල', | |
| 204 | 'sk' => 'Slovenčina', | |
| 205 | 'sl' => 'Slovenščina', | |
| 206 | 'sm' => "Gagana fa'a Samoa", | |
| 207 | 'sn' => 'chiShona', | |
| 208 | 'so' => 'Soomaali', | |
| 209 | 'sq' => 'Shqip', | |
| 210 | 'sr' => 'Српски', | |
| 211 | 'ss' => 'SiSwati', | |
| 212 | 'st' => 'Sesotho', | |
| 213 | 'su' => 'Basa Sunda', | |
| 214 | 'sv' => 'Svenska', | |
| 215 | 'sv_fi' => 'Svenska (Finland)', | |
| 216 | 'sw' => 'Kiswahili', | |
| 217 | 'sx' => 'Sesotho', | |
| 218 | 'syr' => 'ܣܘܪܝܝܐ', | |
| 219 | 'ta' => 'தமிழ்', | |
| 220 | 'te' => 'తెలుగు', | |
| 221 | 'tg' => 'Тоҷикӣ', | |
| 222 | 'th' => 'ไทย', | |
| 223 | 'ti' => 'ትግርኛ', | |
| 224 | 'tk' => 'Türkmen', | |
| 225 | 'tl' => 'Tagalog', | |
| 226 | 'tn' => 'Setswana', | |
| 227 | 'to' => 'Lea faka-Tonga', | |
| 228 | 'tr' => 'Türkçe', | |
| 229 | 'ts' => 'Xitsonga', | |
| 230 | 'tt' => 'Татар', | |
| 231 | 'tw' => 'Twi', | |
| 232 | 'uk' => 'Українська', | |
| 233 | 'ur' => 'اردو', | |
| 234 | 'uz' => 'Oʻzbekcha', | |
| 235 | 'vi' => 'Tiếng Việt', | |
| 236 | 'vo' => 'Volapük', | |
| 237 | 'wo' => 'Wolof', | |
| 238 | 'xh' => 'isiXhosa', | |
| 239 | 'yi' => 'ייִדיש', | |
| 240 | 'yo' => 'Yorùbá', | |
| 241 | 'zh' => '中文', | |
| 242 | 'zh_cn' => '中文 (中国)', | |
| 243 | 'zh_hk' => '中文 (香港)', | |
| 244 | 'zh_mo' => '中文 (澳門)', | |
| 245 | 'zh_sg' => '中文 (新加坡)', | |
| 246 | 'zh_tw' => '中文 (台灣)', | |
| 247 | 'zu' => 'isiZulu', | |
| 248 | ]; | |
| 249 | ||
| 250 | /** | |
| 251 | * phpMyFAQ supported language code list, this is a representation of phpMyFAQ translations | |
| 252 | * | |
| 253 | * @var array|string[] | |
| 254 | */ | |
| 255 | protected static array $supportedLanguageCodes = [ | |
| 256 | 'ar' => 'العربية', | |
| 257 | 'eu' => 'Euskara', | |
| 258 | 'bn' => 'বাংলা', | |
| 259 | 'bs' => 'Bosanski', | |
| 260 | 'zh' => '中文', | |
| 261 | 'cs' => 'Čeština', | |
| 262 | 'da' => 'Dansk', | |
| 263 | 'nl' => 'Nederlands', | |
| 264 | 'en' => 'English', | |
| 265 | 'fa' => 'فارسی', | |
| 266 | 'fi' => 'Suomi', | |
| 267 | 'fr' => 'Français', | |
| 268 | 'fr_ca' => 'Français (Canada)', | |
| 269 | 'de' => 'Deutsch', | |
| 270 | 'el' => 'Ελληνικά', | |
| 271 | 'he' => 'עברית', | |
| 272 | 'hi' => 'हिन्दी', | |
| 273 | 'hu' => 'Magyar', | |
| 274 | 'id' => 'Bahasa Indonesia', | |
| 275 | 'it' => 'Italiano', | |
| 276 | 'ja' => '日本語', | |
| 277 | 'ko' => '한국어', | |
| 278 | 'lv' => 'Latviešu', | |
| 279 | 'lt' => 'Lietuvių', | |
| 280 | 'ms' => 'Bahasa Melayu', | |
| 281 | 'mn' => 'Монгол', | |
| 282 | 'nb' => 'Norsk (Bokmål)', | |
| 283 | 'pl' => 'Polski', | |
| 284 | 'pt' => 'Português', | |
| 285 | 'pt_br' => 'Português (Brasil)', | |
| 286 | 'ro' => 'Română', | |
| 287 | 'ru' => 'Русский', | |
| 288 | 'sr' => 'Српски', | |
| 289 | 'sk' => 'Slovenčina', | |
| 290 | 'sl' => 'Slovenščina', | |
| 291 | 'es' => 'Español', | |
| 292 | 'sv' => 'Svenska', | |
| 293 | 'th' => 'ไทย', | |
| 294 | 'tr' => 'Türkçe', | |
| 295 | 'zh_tw' => '中文 (台灣)', | |
| 296 | 'uk' => 'Українська', | |
| 297 | 'ur' => 'اردو', | |
| 298 | 'vi' => 'Tiếng Việt', | |
| 299 | 'cy' => 'Cymraeg', | |
| 300 | ]; | |
| 301 | ||
| 302 | /** | |
| 303 | * Returns all language codes. | |
| 304 | * | |
| 305 | * @return array<string, string> | |
| 306 | */ | |
| 307 | public static function getAll(): array | |
| 308 | { | |
| 309 | return static::$languageCodes; | |
| 310 | } | |
| 311 | ||
| 312 | public static function getAllSorted(): array | |
| 313 | { | |
| 314 | $sortedLanguageCodes = static::$languageCodes; | |
| 315 | asort($sortedLanguageCodes); | |
| 316 | return $sortedLanguageCodes; | |
| 317 | } | |
| 318 | ||
| 319 | /** | |
| 320 | * Return language name from language code. | |
| 321 | * | |
| 322 | * @return string|null → language code or null | |
| 323 | */ | |
| 324 | public static function get(string $key): ?string | |
| 325 | { | |
| 326 | return static::$languageCodes[strtolower($key)] ?? null; | |
| 327 | } | |
| 328 | ||
| 329 | /** | |
| 330 | * Return language name from a phpMyFAQ supported language code. | |
| 331 | * | |
| 332 | * @return string|null → language code or null | |
| 333 | */ | |
| 334 | public static function getSupported(string $key): ?string | |
| 335 | { | |
| 336 | $supported = static::$supportedLanguageCodes[strtolower($key)] ?? null; | |
| 337 | ||
| 338 | return is_string($supported) ? $supported : null; | |
| 339 | } | |
| 340 | ||
| 341 | public static function getKey(string $value): false|int|string | |
| 342 | { | |
| 343 | return array_search($value, static::$languageCodes, strict: true); | |
| 344 | } | |
| 345 | ||
| 346 | public static function getAllSupported(): array | |
| 347 | { | |
| 348 | return static::$supportedLanguageCodes; | |
| 349 | } | |
| 350 | } |