问题描述
|
对于国际化的数据,最好使用PHP的\“ intl \”扩展名的
\\ResourceBundle
类。
我运行了扩展程序(PHP 5.3.4; Windows),并使用ICU数据库自定义程序*创建了一个.dat文件,但是我没有从资源包类中获得预期的结果。
现在我这样做
$bundle = \'/var/www/libs/icudt48l.dat\';
$resource = new \\ResourceBundle(\'en_US\',$bundle,true);
var_dump($resource,is_file($bundle)); //--> NULL,TRUE
问题是“ 2”返回NULL而不引发任何错误。这是怎么回事?
*(仅检查了最后两个数据部分,始终包含基础数据,我将其导出为ICU4C)
解决方法
<?php
$b = \'/var/www/libs/icudt48l\';
$r = new \\ResourceBundle(\'en_US\',$b,true);
var_dump($r instanceof \\ResourceBundle); //-> TRUE
应该保留.dat扩展名以使其工作
, 试试$resource = resourcebundle_create(\'en_US\',$bundle,true);