由于在深入研究 libicu 源代码后,我花了 4 个多小时才找到这一点,我认为在这里发布它是个好主意。要访问除默认“locale”数据之外的其他数据(通过将 NULL 作为 $bundlename 传递获得),您可以使用以下一些“魔法”字符串来获取其他资源包
ICUDATA-curr
ICUDATA-lang
ICUDATA-region
ICUDATA-zone
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)
ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — 创建资源包
面向对象风格(方法)
$locale
, ?string $bundle
, bool $fallback
= true
): ?ResourceBundle过程化风格
面向对象风格(构造函数)
创建资源包。
locale
应加载资源的区域设置(区域设置名称,例如 en_CA)。
bundle
存储数据目录或 .dat 文件的名称。
fallback
是否应精确匹配区域设置或允许回退到父区域设置。
返回 ResourceBundle 对象或在出错时返回 null
。
示例 #1 resourcebundle_create() 示例
<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>
示例 #2 ResourceBundle::create() 示例
<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>
以上示例将输出
¡Hola, mundo!
由于在深入研究 libicu 源代码后,我花了 4 个多小时才找到这一点,我认为在这里发布它是个好主意。要访问除默认“locale”数据之外的其他数据(通过将 NULL 作为 $bundlename 传递获得),您可以使用以下一些“魔法”字符串来获取其他资源包
ICUDATA-curr
ICUDATA-lang
ICUDATA-region
ICUDATA-zone
根据您要加载的数据,您可能需要传递“root”或其他内容作为 $locale。
这是一个示例列表以及加载的文件的相应链接
ResourceBundle::create('de', 'ICUDATA-brkitr', false)
https://github.com/unicode-org/icu/blob/release-65-1/icu4c/source/data/brkitr/de.txt
ResourceBundle::create('root', 'ICUDATA-curr', false)
https://github.com/unicode-org/icu/blob/release-65-1/icu4c/source/data/curr/root.txt
ResourceBundle::create('root', 'ICUDATA-translit', false)
https://github.com/unicode-org/icu/blob/release-65-1/icu4c/source/data/translit/root.txt
ResourceBundle::create('likelySubtags', 'ICUDATA', false)
https://github.com/unicode-org/icu/blob/release-65-1/icu4c/source/data/misc/likelySubtags.txt