【发布时间】:2011-09-09 13:26:27
【问题描述】:
对于国际化数据,最好使用 PHP 的“intl”扩展中的 \ResourceBundle 类。
我让扩展程序运行(PHP 5.3.4;Windows)并使用 ICU Data Library Customizer* 创建了一个 .dat 文件,但我没有从资源包类中得到预期的结果。
现在我这样做
$bundle = '/var/www/libs/icudt48l.dat';
$resource = new \ResourceBundle('en_US', $bundle, true);
var_dump($resource, is_file($bundle)); //--> NULL, TRUE
问题是$resource 返回 NULL 而没有引发任何错误。怎么回事?
*(只检查了最后两个数据部分 - 始终包含基本数据 - 我将其导出为 ICU4C)
【问题讨论】:
-
您可以考虑直接读取 CLDR 数据,因为这是 ICU 数据的来源——不应依赖 ICU4C 数据的内部格式。请问,你们定制的目的是什么?最好根据 intl 扩展来实现您的组件,或者建议对 intl 或 ICU 进行更改。
标签: php resourcebundle icu intl