ResourceBundle クラス
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)
はじめに
ローカライズしたソフトウェア製品には、 現在のロケールによって切り替えるデータのセットが必要となることがよくあります。 たとえばメッセージやラベル、書式パターンなどです。 ICU のリソース機能を使うと、リソースセットを定義することができます。 ロケールに基づいてアプリケーションからこれを読み込み、 ロケールにかかわらず統一された方法でアクセスすることができます。
このクラスは ICU のリソースデータファイルへのアクセスを実装しています。 このファイルはバイナリデータの配列で、ICU がローカライズしたデータを保存するために使っています。
ICU リソースバンドルには、シンプルなリソースと複雑なリソースを保持することができます。 複雑なリソースとはコンテナ形式のもので、数値添字あるいは文字列添字 (PHP の配列と同じ) のいずれかの形式になります。シンプルなリソースは 文字列、整数、バイナリデータフィールド、整数の配列 のいずれかの型となります。
ResourceBundle からデータにアクセスするには、 配列を使う方法と foreach を使う方法、そしてクラスメソッドを使う方法があります。 シンプルなリソースの場合は PHP の値、複雑なリソースの場合は ResourceBundle オブジェクトとして取得できます。 リソースはすべて読み込み専用となります。
クラス概要
/* メソッド */
}変更履歴
バージョン | 説明 |
---|---|
8.0.0 | ResourceBundle は、 IteratorAggregate を実装しました。 これより前のバージョンでは、 Traversable を代わりに実装していました。 |
7.4.0 | ResourceBundle は、 Countable を新たに実装しました。 |
目次
- ResourceBundle::count — バンドル内の要素数を取得する
- ResourceBundle::create — リソースバンドルを作成する
- ResourceBundle::get — バンドルからデータを取得する
- ResourceBundle::getErrorCode — バンドルの直近のエラーコードを取得する
- ResourceBundle::getErrorMessage — バンドルの直近のエラーメッセージを取得する
- ResourceBundle::getLocales — サポートするロケールを取得する
+add a note
User Contributed Notes 1 note
maiseralves at gmail dot com ¶
13 years ago
<?php
/*
* Struct of a Resource Bundle file
* file root.txt
* root:table {
* usage:string { "Usage: genrb [Options] files" }
* version:int { 122 }
* errorcodes:array {
* :string { "Invalid argument" }
* :string { "File not found" }
* }
* }
* use: $genrb root.txt to generate resource bundle file (root.res)
*/
//recursive function to list a resource bundle file structure using a ResourceBundle Object ( ) reference
function t($rb) {
foreach($rb as $k => $v) {
if(is_object($v)) {
print_r($v);
var_dump($k);
t($v);
} else {
var_dump($k . " " . $v);
}
}
}
//open root.res from folder locale
$rb = new ResourceBundle('root', "./locale");
t($rb);//call the function
/* The output from root table is
* |- string(34) "usage Usage: genrb [Options] files"
* |- string(11) "version 122"
* |- ResourceBundle Object ( ) string(10) "errorcodes"
* |- string(18) "0 Invalid argument"
* |- string(16) "1 File not found"
*/
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google