pybabel或其他用于PHP的l10n库

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'

最佳答案 PHP 5.3附带
intl扩展:

Internationalization extension
(further is referred as Intl) is a
wrapper for ICU library, enabling PHP
programmers to perform UCA-conformant
collation and
date/time/number/currency formatting
in their scripts.

>使用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');

此外,还有Collat​​ion和MessageFormatter类.

点赞