format_code_lang()
云策文档标注
概述
format_code_lang() 函数用于根据语言代码返回对应的语言名称。它处理两字母代码,若代码存在则返回语言,否则返回代码的前两个字母。
关键要点
- 参数:$code(可选字符串),默认空,为两字母语言代码
- 返回值:字符串,对应语言名称或代码前两个字母
- 内部处理:将代码转换为小写并取前两个字符,使用预定义数组映射
- Hook:支持通过 apply_filters('lang_codes', $lang_codes, $code) 过滤语言代码数组
- 环境限制:仅在多站点环境中可用,非多站点安装会引发未定义函数错误
代码示例
$code = 'da';
$language = format_code_lang( $code );
echo $language; // 'Danish'注意事项
- 此函数仅适用于 WordPress 多站点环境,普通插件在非多站点安装中调用会导致错误
原文内容
Returns the language for a language code.
Parameters
$codestringoptional-
The two-letter language code. Default empty.
Source
function format_code_lang( $code = '' ) {
$code = strtolower( substr( $code, 0, 2 ) );
$lang_codes = array(
'aa' => 'Afar',
'ab' => 'Abkhazian',
'af' => 'Afrikaans',
'ak' => 'Akan',
'sq' => 'Albanian',
'am' => 'Amharic',
'ar' => 'Arabic',
'an' => 'Aragonese',
'hy' => 'Armenian',
'as' => 'Assamese',
'av' => 'Avaric',
'ae' => 'Avestan',
'ay' => 'Aymara',
'az' => 'Azerbaijani',
'ba' => 'Bashkir',
'bm' => 'Bambara',
'eu' => 'Basque',
'be' => 'Belarusian',
'bn' => 'Bengali',
'bh' => 'Bihari',
'bi' => 'Bislama',
'bs' => 'Bosnian',
'br' => 'Breton',
'bg' => 'Bulgarian',
'my' => 'Burmese',
'ca' => 'Catalan; Valencian',
'ch' => 'Chamorro',
'ce' => 'Chechen',
'zh' => 'Chinese',
'cu' => 'Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic',
'cv' => 'Chuvash',
'kw' => 'Cornish',
'co' => 'Corsican',
'cr' => 'Cree',
'cs' => 'Czech',
'da' => 'Danish',
'dv' => 'Divehi; Dhivehi; Maldivian',
'nl' => 'Dutch; Flemish',
'dz' => 'Dzongkha',
'en' => 'English',
'eo' => 'Esperanto',
'et' => 'Estonian',
'ee' => 'Ewe',
'fo' => 'Faroese',
'fj' => 'Fijjian',
'fi' => 'Finnish',
'fr' => 'French',
'fy' => 'Western Frisian',
'ff' => 'Fulah',
'ka' => 'Georgian',
'de' => 'German',
'gd' => 'Gaelic; Scottish Gaelic',
'ga' => 'Irish',
'gl' => 'Galician',
'gv' => 'Manx',
'el' => 'Greek, Modern',
'gn' => 'Guarani',
'gu' => 'Gujarati',
'ht' => 'Haitian; Haitian Creole',
'ha' => 'Hausa',
'he' => 'Hebrew',
'hz' => 'Herero',
'hi' => 'Hindi',
'ho' => 'Hiri Motu',
'hu' => 'Hungarian',
'ig' => 'Igbo',
'is' => 'Icelandic',
'io' => 'Ido',
'ii' => 'Sichuan Yi',
'iu' => 'Inuktitut',
'ie' => 'Interlingue',
'ia' => 'Interlingua (International Auxiliary Language Association)',
'id' => 'Indonesian',
'ik' => 'Inupiaq',
'it' => 'Italian',
'jv' => 'Javanese',
'ja' => 'Japanese',
'kl' => 'Kalaallisut; Greenlandic',
'kn' => 'Kannada',
'ks' => 'Kashmiri',
'kr' => 'Kanuri',
'kk' => 'Kazakh',
'km' => 'Central Khmer',
'ki' => 'Kikuyu; Gikuyu',
'rw' => 'Kinyarwanda',
'ky' => 'Kirghiz; Kyrgyz',
'kv' => 'Komi',
'kg' => 'Kongo',
'ko' => 'Korean',
'kj' => 'Kuanyama; Kwanyama',
'ku' => 'Kurdish',
'lo' => 'Lao',
'la' => 'Latin',
'lv' => 'Latvian',
'li' => 'Limburgan; Limburger; Limburgish',
'ln' => 'Lingala',
'lt' => 'Lithuanian',
'lb' => 'Luxembourgish; Letzeburgesch',
'lu' => 'Luba-Katanga',
'lg' => 'Ganda',
'mk' => 'Macedonian',
'mh' => 'Marshallese',
'ml' => 'Malayalam',
'mi' => 'Maori',
'mr' => 'Marathi',
'ms' => 'Malay',
'mg' => 'Malagasy',
'mt' => 'Maltese',
'mo' => 'Moldavian',
'mn' => 'Mongolian',
'na' => 'Nauru',
'nv' => 'Navajo; Navaho',
'nr' => 'Ndebele, South; South Ndebele',
'nd' => 'Ndebele, North; North Ndebele',
'ng' => 'Ndonga',
'ne' => 'Nepali',
'nn' => 'Norwegian Nynorsk; Nynorsk, Norwegian',
'nb' => 'Bokmål, Norwegian, Norwegian Bokmål',
'no' => 'Norwegian',
'ny' => 'Chichewa; Chewa; Nyanja',
'oc' => 'Occitan, Provençal',
'oj' => 'Ojibwa',
'or' => 'Oriya',
'om' => 'Oromo',
'os' => 'Ossetian; Ossetic',
'pa' => 'Panjabi; Punjabi',
'fa' => 'Persian',
'pi' => 'Pali',
'pl' => 'Polish',
'pt' => 'Portuguese',
'ps' => 'Pushto',
'qu' => 'Quechua',
'rm' => 'Romansh',
'ro' => 'Romanian',
'rn' => 'Rundi',
'ru' => 'Russian',
'sg' => 'Sango',
'sa' => 'Sanskrit',
'sr' => 'Serbian',
'hr' => 'Croatian',
'si' => 'Sinhala; Sinhalese',
'sk' => 'Slovak',
'sl' => 'Slovenian',
'se' => 'Northern Sami',
'sm' => 'Samoan',
'sn' => 'Shona',
'sd' => 'Sindhi',
'so' => 'Somali',
'st' => 'Sotho, Southern',
'es' => 'Spanish; Castilian',
'sc' => 'Sardinian',
'ss' => 'Swati',
'su' => 'Sundanese',
'sw' => 'Swahili',
'sv' => 'Swedish',
'ty' => 'Tahitian',
'ta' => 'Tamil',
'tt' => 'Tatar',
'te' => 'Telugu',
'tg' => 'Tajik',
'tl' => 'Tagalog',
'th' => 'Thai',
'bo' => 'Tibetan',
'ti' => 'Tigrinya',
'to' => 'Tonga (Tonga Islands)',
'tn' => 'Tswana',
'ts' => 'Tsonga',
'tk' => 'Turkmen',
'tr' => 'Turkish',
'tw' => 'Twi',
'ug' => 'Uighur; Uyghur',
'uk' => 'Ukrainian',
'ur' => 'Urdu',
'uz' => 'Uzbek',
've' => 'Venda',
'vi' => 'Vietnamese',
'vo' => 'Volapük',
'cy' => 'Welsh',
'wa' => 'Walloon',
'wo' => 'Wolof',
'xh' => 'Xhosa',
'yi' => 'Yiddish',
'yo' => 'Yoruba',
'za' => 'Zhuang; Chuang',
'zu' => 'Zulu',
);
/**
* Filters the language codes.
*
* @since MU (3.0.0)
*
* @param string[] $lang_codes Array of key/value pairs of language codes where key is the short version.
* @param string $code A two-letter designation of the language.
*/
$lang_codes = apply_filters( 'lang_codes', $lang_codes, $code );
return strtr( $code, $lang_codes );
}
Hooks
- apply_filters( ‘lang_codes’, string[] $lang_codes, string $code )
-
Filters the language codes.
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
Skip to note 3 content
Codex
Example
$code = 'da'; $language = format_code_lang( $code ); echo $language; // 'Danish'Skip to note 4 content
Denis Žoljom
One thing to note is that this function works only in the multisite environment. So you cannot use it in your regular plugins on non multisite install, othervise you’ll get a
Uncaught Error: Call to undefined function format_code_lang()error.