如何获取 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 中所有语言的列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Laravel 5 的模块/目录中获取路由列表?

Facebook API:如何在facebook中获取登录用户的关注者列表[重复]

如何从 WooCommerce 产品属性分类中获取术语?

如何在 python 中使用 pandas 获取所有重复项的列表?

PHP API获取请求者IP地址[重复]

如何使用PHP从元素中获取包含内容的所有标签[重复]