Babel or pybabel是Python中CLDR(公共区域设置数据存储库)的接口。因此,它具有与PHP的i18n函数和类相同的“知识”(如果在主机上安装了适当的语言环境),但没有使用像setlocale()
这样的进程范围设置的麻烦。
PHP是否有类似的库或工具包?特别要实现:
将数字转换为特定于语言和区域的格式
同样转换日期
访问特定区域设置中的名称,货币和其他信息(例如,
>>> from babel import Locale
>>> locale = Locale('en', 'US')
>>> locale.territories['US']
u'United States'
>>> locale = Locale('es', 'MX')
>>> locale.territories['US']
u'Estados Unidos'
答案 0 :(得分:2)
PHP 5.3带有intl扩展名:
国际化扩展 (进一步称为Intl)是a ICU库的包装器,启用PHP 程序员执行符合UCA的程序 整理和 日期/时间/数字/货币格式 在他们的剧本中。
NumberFormatter 类可以转换数字:
$fmt = new NumberFormatter("de_DE", NumberFormatter::DECIMAL);
echo $fmt->format(1234567.891234567890000);
使用 IntlDateFormatter 类可以转换日期:
$fmt = new IntlDateFormatter("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);
echo $fmt->format(0);
使用 Locale 类可以访问特定区域设置中的名称,货币和其他信息:
echo Locale::getRegion('de-CH-1901');
此外,还有排序规则和 MessageFormatter 类。