ResourceBundle返回NULL而不会引发任何错误

时间:2011-06-06 19:22:19

标签: php resourcebundle icu intl

对于国际化数据,使用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)

2 个答案:

答案 0 :(得分:1)

<?php
$b = '/var/www/libs/icudt48l';
$r = new \ResourceBundle('en_US', $b, true);
var_dump($r instanceof \ResourceBundle); //-> TRUE

应该保留.dat扩展名以使其正常工作

答案 1 :(得分:0)

尝试$resource = resourcebundle_create('en_US',$bundle,true);