php语言最简单的代码,有没有一种简单的方法来从PHP中的国家代码获取语言代码...

正如其他人所指出的那样,没有内置的功能,这可能是由于许多国家有多种语言的现实.不幸的是,我不能指向你这样做的图书馆,但是我已经做了一个小小的功能,做了你想要的.

有两个注意事项,一个是如果没有提供一种语言,它将只选择列表中的第一个区域设置.为了解决这个问题,你必须在函数调用周围放一些逻辑来提供相应的语言.另一个是它需要安装php5-intl.

/**

/* Returns a locale from a country code that is provided.

/*

/* @param $country_code ISO 3166-2-alpha 2 country code

/* @param $language_code ISO 639-1-alpha 2 language code

/* @returns a locale, formatted like en_US, or null if not found

/**/

function country_code_to_locale($country_code, $language_code = '')

{

// Locale list taken from:

// https://stackoverflow.com/questions/3191664/

// list-of-all-locales-and-their-short-codes

$locales = array('af-ZA',

'am-ET',

'ar-AE',

'ar-BH',

'ar-DZ',

'ar-EG',

'ar-IQ',

'ar-JO',

'ar-KW',

'ar-LB',

'ar-LY',

'ar-MA',

'arn-CL',

'ar-OM',

'ar-QA',

'ar-SA',

'ar-SY',

'ar-TN',

'ar-YE',

'as-IN',

'az-Cyrl-AZ',

'az-Latn-AZ',

'ba-RU',

'be-BY',

'bg-BG',

'bn-BD',

'bn-IN',

'bo-CN',

'br-FR',

'bs-Cyrl-BA',

'bs-Latn-BA',

'ca-ES',

'co-FR',

'cs-CZ',

'cy-GB',

'da-DK',

'de-AT',

'de-CH',

'de-DE',

'de-LI',

'de-LU',

'dsb-DE',

'dv-MV',

'el-GR',

'en-029',

'en-AU',

'en-BZ',

'en-CA',

'en-GB',

'en-IE',

'en-IN',

'en-JM',

'en-MY',

'en-NZ',

'en-PH',

'en-SG',

'en-TT',

'en-US',

'en-ZA',

'en-ZW',

'es-AR',

'es-BO',

'es-CL',

'es-CO',

'es-CR',

'es-DO',

'es-EC',

'es-ES',

'es-GT',

'es-HN',

'es-MX',

'es-NI',

'es-PA',

'es-PE',

'es-PR',

'es-PY',

'es-SV',

'es-US',

'es-UY',

'es-VE',

'et-EE',

'eu-ES',

'fa-IR',

'fi-FI',

'fil-PH',

'fo-FO',

'fr-BE',

'fr-CA',

'fr-CH',

'fr-FR',

'fr-LU',

'fr-MC',

'fy-NL',

'ga-IE',

'gd-GB',

'gl-ES',

'gsw-FR',

'gu-IN',

'ha-Latn-NG',

'he-IL',

'hi-IN',

'hr-BA',

'hr-HR',

'hsb-DE',

'hu-HU',

'hy-AM',

'id-ID',

'ig-NG',

'ii-CN',

'is-IS',

'it-CH',

'it-IT',

'iu-Cans-CA',

'iu-Latn-CA',

'ja-JP',

'ka-GE',

'kk-KZ',

'kl-GL',

'km-KH',

'kn-IN',

'kok-IN',

'ko-KR',

'ky-KG',

'lb-LU',

'lo-LA',

'lt-LT',

'lv-LV',

'mi-NZ',

'mk-MK',

'ml-IN',

'mn-MN',

'mn-Mong-CN',

'moh-CA',

'mr-IN',

'ms-BN',

'ms-MY',

'mt-MT',

'nb-NO',

'ne-NP',

'nl-BE',

'nl-NL',

'nn-NO',

'nso-ZA',

'oc-FR',

'or-IN',

'pa-IN',

'pl-PL',

'prs-AF',

'ps-AF',

'pt-BR',

'pt-PT',

'qut-GT',

'quz-BO',

'quz-EC',

'quz-PE',

'rm-CH',

'ro-RO',

'ru-RU',

'rw-RW',

'sah-RU',

'sa-IN',

'se-FI',

'se-NO',

'se-SE',

'si-LK',

'sk-SK',

'sl-SI',

'sma-NO',

'sma-SE',

'smj-NO',

'smj-SE',

'smn-FI',

'sms-FI',

'sq-AL',

'sr-Cyrl-BA',

'sr-Cyrl-CS',

'sr-Cyrl-ME',

'sr-Cyrl-RS',

'sr-Latn-BA',

'sr-Latn-CS',

'sr-Latn-ME',

'sr-Latn-RS',

'sv-FI',

'sv-SE',

'sw-KE',

'syr-SY',

'ta-IN',

'te-IN',

'tg-Cyrl-TJ',

'th-TH',

'tk-TM',

'tn-ZA',

'tr-TR',

'tt-RU',

'tzm-Latn-DZ',

'ug-CN',

'uk-UA',

'ur-PK',

'uz-Cyrl-UZ',

'uz-Latn-UZ',

'vi-VN',

'wo-SN',

'xh-ZA',

'yo-NG',

'zh-CN',

'zh-HK',

'zh-MO',

'zh-SG',

'zh-TW',

'zu-ZA',);

foreach ($locales as $locale)

{

$locale_region = locale_get_region($locale);

$locale_language = locale_get_primary_language($locale);

$locale_array = array('language' => $locale_language,

'region' => $locale_region);

if (strtoupper($country_code) == $locale_region &&

$language_code == '')

{

return locale_compose($locale_array);

}

elseif (strtoupper($country_code) == $locale_region &&

strtolower($language_code) == $locale_language)

{

return locale_compose($locale_array);

}

}

return null;

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值