由於我花了超過 4 個小時挖掘 libicu 原始碼才找到答案,我想在這裡發布是個好主意。要存取預設「語系」資料以外的其他資料(透過傳遞 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!
由於我花了超過 4 個小時挖掘 libicu 原始碼才找到答案,我想在這裡發布是個好主意。要存取預設「語系」資料以外的其他資料(透過傳遞 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