/** * Checks if this region contains a culture. * * Useful to check if a language is spoken in a region. * @param mixed $culture <CultureInfo> or culture code * @return bool true or false */ function ContainsCulture($culture) { if ($culture instanceof CultureInfo) { $culture = $culture->Code; } foreach ($this->KnownCultures as $kc) { if (strtolower($kc) == strtolower($culture)) { return true; } $ci = internal_getCultureInfo($kc); if ($ci->IsParentOf($culture) || $ci->IsChildOf($culture)) { return true; } } return false; }
/** * @internal */ function internal_getLanguage($code) { switch (strtolower($code)) { case 'ar': return new CultureInfo('ar', '', 'ar', 'Arabic', 'العربية', '1'); case 'bg': return new CultureInfo('bg', '', 'bg', 'Bulgarian', 'Български', '0'); case 'ca': return new CultureInfo('ca', '', 'ca', 'Catalan', 'Català', '0'); case 'zh-cht': return new CultureInfo('zh-CHT', 'zh-Hant', 'zh', 'Chinese (Traditional)', '中文(繁體)', '0'); case 'cs': return new CultureInfo('cs', '', 'cs', 'Czech', 'Čeština', '0'); case 'da': return new CultureInfo('da', '', 'da', 'Danish', 'Dansk', '0'); case 'de': return new CultureInfo('de', '', 'de', 'German', 'Deutsch', '0'); case 'el': return new CultureInfo('el', '', 'el', 'Greek', 'Ελληνικά', '0'); case 'en': return new CultureInfo('en', '', 'en', 'English', 'English', '0'); case 'fi': return new CultureInfo('fi', '', 'fi', 'Finnish', 'Suomi', '0'); case 'fr': return new CultureInfo('fr', '', 'fr', 'French', 'Français', '0'); case 'he': return new CultureInfo('he', '', 'he', 'Hebrew', 'עברית', '1'); case 'hu': return new CultureInfo('hu', '', 'hu', 'Hungarian', 'Magyar', '0'); case 'is': return new CultureInfo('is', '', 'is', 'Icelandic', 'Íslenska', '0'); case 'it': return new CultureInfo('it', '', 'it', 'Italian', 'Italiano', '0'); case 'ja': return new CultureInfo('ja', '', 'ja', 'Japanese', '日本語', '0'); case 'ko': return new CultureInfo('ko', '', 'ko', 'Korean', '한국어', '0'); case 'nl': return new CultureInfo('nl', '', 'nl', 'Dutch', 'Nederlands', '0'); case 'no': return new CultureInfo('no', '', 'no', 'Norwegian', 'Norsk', '0'); case 'pl': return new CultureInfo('pl', '', 'pl', 'Polish', 'Polski', '0'); case 'pt': return new CultureInfo('pt', '', 'pt', 'Portuguese', 'Português', '0'); case 'ro': return new CultureInfo('ro', '', 'ro', 'Romanian', 'Română', '0'); case 'ru': return new CultureInfo('ru', '', 'ru', 'Russian', 'Русский', '0'); case 'hr': return new CultureInfo('hr', '', 'hr', 'Croatian', 'Hrvatski', '0'); case 'sk': return new CultureInfo('sk', '', 'sk', 'Slovak', 'Slovenčina', '0'); case 'sq': return new CultureInfo('sq', '', 'sq', 'Albanian', 'Shqipe', '0'); case 'sv': return new CultureInfo('sv', '', 'sv', 'Swedish', 'Svenska', '0'); case 'th': return new CultureInfo('th', '', 'th', 'Thai', 'ไทย', '0'); case 'tr': return new CultureInfo('tr', '', 'tr', 'Turkish', 'Türkçe', '0'); case 'ur': return new CultureInfo('ur', '', 'ur', 'Urdu', 'اُردو', '1'); case 'id': return new CultureInfo('id', '', 'id', 'Indonesian', 'Bahasa Indonesia', '0'); case 'uk': return new CultureInfo('uk', '', 'uk', 'Ukrainian', 'Україньска', '0'); case 'be': return new CultureInfo('be', '', 'be', 'Belarusian', 'Беларускі', '0'); case 'sl': return new CultureInfo('sl', '', 'sl', 'Slovenian', 'Slovenski', '0'); case 'et': return new CultureInfo('et', '', 'et', 'Estonian', 'Eesti', '0'); case 'lv': return new CultureInfo('lv', '', 'lv', 'Latvian', 'Latviešu', '0'); case 'lt': return new CultureInfo('lt', '', 'lt', 'Lithuanian', 'Lietuvių', '0'); case 'fa': return new CultureInfo('fa', '', 'fa', 'Persian', 'فارسى', '1'); case 'vi': return new CultureInfo('vi', '', 'vi', 'Vietnamese', 'Tiếng Việt', '0'); case 'hy': return new CultureInfo('hy', '', 'hy', 'Armenian', 'Հայերեն', '0'); case 'az': return new CultureInfo('az', '', 'az', 'Azeri', 'Azərbaycanılı', '0'); case 'eu': return new CultureInfo('eu', '', 'eu', 'Basque', 'Euskara', '0'); case 'mk': return new CultureInfo('mk', '', 'mk', 'Macedonian', 'Македонски јазик', '0'); case 'af': return new CultureInfo('af', '', 'af', 'Afrikaans', 'Afrikaans', '0'); case 'ka': return new CultureInfo('ka', '', 'ka', 'Georgian', 'ქართული', '0'); case 'fo': return new CultureInfo('fo', '', 'fo', 'Faroese', 'Føroyskt', '0'); case 'hi': return new CultureInfo('hi', '', 'hi', 'Hindi', 'हिंदी', '0'); case 'ms': return new CultureInfo('ms', '', 'ms', 'Malay', 'Bahasa Malaysia', '0'); case 'kk': return new CultureInfo('kk', '', 'kk', 'Kazakh', 'Қазащb', '0'); case 'ky': return new CultureInfo('ky', '', 'ky', 'Kyrgyz', 'Кыргыз', '0'); case 'sw': return new CultureInfo('sw', '', 'sw', 'Kiswahili', 'Kiswahili', '0'); case 'uz': return new CultureInfo('uz', '', 'uz', 'Uzbek', 'U\'zbek', '0'); case 'tt': return new CultureInfo('tt', '', 'tt', 'Tatar', 'Татар', '0'); case 'pa': return new CultureInfo('pa', '', 'pa', 'Punjabi', 'ਪੰਜਾਬੀ', '0'); case 'gu': return new CultureInfo('gu', '', 'gu', 'Gujarati', 'ગુજરાતી', '0'); case 'ta': return new CultureInfo('ta', '', 'ta', 'Tamil', 'தமிழ்', '0'); case 'te': return new CultureInfo('te', '', 'te', 'Telugu', 'తెలుగు', '0'); case 'kn': return new CultureInfo('kn', '', 'kn', 'Kannada', 'ಕನ್ನಡ', '0'); case 'mr': return new CultureInfo('mr', '', 'mr', 'Marathi', 'मराठी', '0'); case 'sa': return new CultureInfo('sa', '', 'sa', 'Sanskrit', 'संस्कृत', '0'); case 'mn': return new CultureInfo('mn', '', 'mn', 'Mongolian', 'Монгол хэл', '0'); case 'gl': return new CultureInfo('gl', '', 'gl', 'Galician', 'Galego', '0'); case 'kok': return new CultureInfo('kok', '', 'kok', 'Konkani', 'कोंकणी', '0'); case 'syr': return new CultureInfo('syr', '', 'syr', 'Syriac', 'ܣܘܪܝܝܐ', '1'); case 'dv': return new CultureInfo('dv', '', 'dv', 'Divehi', 'ދިވެހިބަސް', '1'); case 'zh-chs': return new CultureInfo('zh-CHS', 'zh-Hans', 'zh', 'Chinese (Simplified)', '中文(简体)', '0'); case 'es': return new CultureInfo('es', '', 'es', 'Spanish', 'Español', '0'); case 'sr': return new CultureInfo('sr', '', 'sr', 'Serbian', 'Srpski', '0'); case 'am-et': return internal_getCultureInfo('am-ET'); case 'tzm-latn-dz': return internal_getCultureInfo('tzm-Latn-DZ'); case 'iu-latn-ca': return internal_getCultureInfo('iu-Latn-CA'); case 'sma-no': return internal_getCultureInfo('sma-NO'); case 'mn-mong-cn': return internal_getCultureInfo('mn-Mong-CN'); case 'gd-gb': return internal_getCultureInfo('gd-GB'); case 'prs-af': return internal_getCultureInfo('prs-AF'); case 'bn-bd': return internal_getCultureInfo('bn-BD'); case 'wo-sn': return internal_getCultureInfo('wo-SN'); case 'rw-rw': return internal_getCultureInfo('rw-RW'); case 'qut-gt': return internal_getCultureInfo('qut-GT'); case 'sah-ru': return internal_getCultureInfo('sah-RU'); case 'gsw-fr': return internal_getCultureInfo('gsw-FR'); case 'co-fr': return internal_getCultureInfo('co-FR'); case 'oc-fr': return internal_getCultureInfo('oc-FR'); case 'mi-nz': return internal_getCultureInfo('mi-NZ'); case 'ga-ie': return internal_getCultureInfo('ga-IE'); case 'se-se': return internal_getCultureInfo('se-SE'); case 'br-fr': return internal_getCultureInfo('br-FR'); case 'smn-fi': return internal_getCultureInfo('smn-FI'); case 'moh-ca': return internal_getCultureInfo('moh-CA'); case 'arn-cl': return internal_getCultureInfo('arn-CL'); case 'ii-cn': return internal_getCultureInfo('ii-CN'); case 'dsb-de': return internal_getCultureInfo('dsb-DE'); case 'ig-ng': return internal_getCultureInfo('ig-NG'); case 'kl-gl': return internal_getCultureInfo('kl-GL'); case 'lb-lu': return internal_getCultureInfo('lb-LU'); case 'ba-ru': return internal_getCultureInfo('ba-RU'); case 'nso-za': return internal_getCultureInfo('nso-ZA'); case 'quz-bo': return internal_getCultureInfo('quz-BO'); case 'yo-ng': return internal_getCultureInfo('yo-NG'); case 'ha-latn-ng': return internal_getCultureInfo('ha-Latn-NG'); case 'fil-ph': return internal_getCultureInfo('fil-PH'); case 'ps-af': return internal_getCultureInfo('ps-AF'); case 'fy-nl': return internal_getCultureInfo('fy-NL'); case 'ne-np': return internal_getCultureInfo('ne-NP'); case 'se-no': return internal_getCultureInfo('se-NO'); case 'iu-cans-ca': return internal_getCultureInfo('iu-Cans-CA'); case 'sr-latn-rs': return internal_getCultureInfo('sr-Latn-RS'); case 'si-lk': return internal_getCultureInfo('si-LK'); case 'sr-cyrl-rs': return internal_getCultureInfo('sr-Cyrl-RS'); case 'lo-la': return internal_getCultureInfo('lo-LA'); case 'km-kh': return internal_getCultureInfo('km-KH'); case 'cy-gb': return internal_getCultureInfo('cy-GB'); case 'bo-cn': return internal_getCultureInfo('bo-CN'); case 'sms-fi': return internal_getCultureInfo('sms-FI'); case 'as-in': return internal_getCultureInfo('as-IN'); case 'ml-in': return internal_getCultureInfo('ml-IN'); case 'or-in': return internal_getCultureInfo('or-IN'); case 'bn-in': return internal_getCultureInfo('bn-IN'); case 'tk-tm': return internal_getCultureInfo('tk-TM'); case 'bs-latn-ba': return internal_getCultureInfo('bs-Latn-BA'); case 'mt-mt': return internal_getCultureInfo('mt-MT'); case 'sr-cyrl-me': return internal_getCultureInfo('sr-Cyrl-ME'); case 'se-fi': return internal_getCultureInfo('se-FI'); case 'zu-za': return internal_getCultureInfo('zu-ZA'); case 'xh-za': return internal_getCultureInfo('xh-ZA'); case 'tn-za': return internal_getCultureInfo('tn-ZA'); case 'hsb-de': return internal_getCultureInfo('hsb-DE'); case 'bs-cyrl-ba': return internal_getCultureInfo('bs-Cyrl-BA'); case 'tg-cyrl-tj': return internal_getCultureInfo('tg-Cyrl-TJ'); case 'sr-latn-ba': return internal_getCultureInfo('sr-Latn-BA'); case 'smj-no': return internal_getCultureInfo('smj-NO'); case 'rm-ch': return internal_getCultureInfo('rm-CH'); case 'smj-se': return internal_getCultureInfo('smj-SE'); case 'quz-ec': return internal_getCultureInfo('quz-EC'); case 'quz-pe': return internal_getCultureInfo('quz-PE'); case 'sr-latn-me': return internal_getCultureInfo('sr-Latn-ME'); case 'sma-se': return internal_getCultureInfo('sma-SE'); case 'ug-cn': return internal_getCultureInfo('ug-CN'); case 'sr-cyrl-ba': return internal_getCultureInfo('sr-Cyrl-BA'); } }