如何获取 PHP 中所有语言的列表 [重复]
Posted
技术标签:
【中文标题】如何获取 PHP 中所有语言的列表 [重复]【英文标题】:How do I get a list of all languages in PHP [duplicate] 【发布时间】:2021-07-27 06:03:00 【问题描述】:我使用的代码处理来自第 3 方 API 的响应,并且该响应包含一些语言代码。我看到似乎有 standards 定义语言的官方代码,并且想知道是否有任何方法可以在 php 中访问这些代码。
我也知道有些人只是使用硬编码的代码lists,但我更愿意将维护列表留给其他人,不是每天都会添加新语言,而是does happen
我的问题是如何在 PHP 中获取区域设置和语言列表?
【问题讨论】:
【参考方案1】:我发现 PHP 扩展 intl
包含一些处理语言环境的类,但需要花点时间才能得到我想要的。
国际扩展的文档是here。对我来说安装就像运行一样简单
sudo apt install php8.0-intl
然后为了展示如何获取不同的语言环境、代码和语言,我使用了以下代码:
$locales = ResourceBundle::getLocales('');
printf('Found %d locales like %s', count($locales), implode(',', array_slice($locales, 0, 5)));
echo PHP_EOL;
$languageCodes = array_unique(array_map(fn ($locale) => Locale::getPrimaryLanguage($locale), $locales));
printf('Found %d language codes like %s', count($languageCodes), implode(',', array_slice($languageCodes, 0, 5)));
echo PHP_EOL;
$languages = array_unique(array_map(fn ($code) => Locale::getDisplayName($code), $languageCodes));
printf('Found %d languages like %s', count($languages), implode(',', array_slice($languages, 0, 5)));
echo PHP_EOL;
在运行时会产生:
Found 751 locales like af,af_NA,af_ZA,agq,agq_CM
Found 204 language codes like af,agq,ak,am,ar
Found 204 languages like Afrikaans,Aghem,Akan,Amharic,Arabic
【讨论】:
以上是关于如何获取 PHP 中所有语言的列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Facebook API:如何在facebook中获取登录用户的关注者列表[重复]