# ResourceBundle クラス

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

## はじめに

ローカライズしたソフトウェア製品には、 現在のロケールによって切り替えるデータのセットが必要となることがよくあります。 たとえばメッセージやラベル、書式パターンなどです。 ICU のリソース機能を使うと、リソースセットを定義することができます。 ロケールに基づいてアプリケーションからこれを読み込み、 ロケールにかかわらず統一された方法でアクセスすることができます。

このクラスは ICU のリソースデータファイルへのアクセスを実装しています。 このファイルはバイナリデータの配列で、ICU がローカライズしたデータを保存するために使っています。

ICU リソースバンドルには、シンプルなリソースと複雑なリソースを保持することができます。 複雑なリソースとはコンテナ形式のもので、数値添字あるいは文字列添字 (PHP の配列と同じ) のいずれかの形式になります。シンプルなリソースは 文字列、整数、バイナリデータフィールド、整数の配列 のいずれかの型となります。

ResourceBundle からデータにアクセスするには、 配列を使う方法と foreach を使う方法、そしてクラスメソッドを使う方法があります。 シンプルなリソースの場合は PHP の値、複雑なリソースの場合は ResourceBundle オブジェクトとして取得できます。 リソースはすべて読み込み専用となります。

## クラス概要

class ResourceBundle implements IteratorAggregate, Countable {
/* メソッド */
public function __construct(?string `$locale`, ?string `$bundle`, bool `$fallback` = `true`)
public function count(): int
public static function create(?string `$locale`, ?string `$bundle`, bool `$fallback` = `true`): ?ResourceBundle
public function get(string|int `$index`, bool `$fallback` = `true`): ResourceBundle|array|string|int|null
public function getErrorCode(): int
public function getErrorMessage(): string
public static function getLocales(string `$bundle`): array|false
}

## 変更履歴

バージョン | 説明
--- | ---
8.0.0 | ResourceBundle は、 IteratorAggregate を実装しました。 これより前のバージョンでは、 Traversable を代わりに実装していました。
7.4.0 | ResourceBundle は、 Countable を新たに実装しました。

## 参考

- » ICU Resource Management
- » ICU Data

## 目次

- ResourceBundle::count — バンドル内の要素数を取得する
- ResourceBundle::create — リソースバンドルを作成する
- ResourceBundle::get — バンドルからデータを取得する
- ResourceBundle::getErrorCode — バンドルの直近のエラーコードを取得する
- ResourceBundle::getErrorMessage — バンドルの直近のエラーメッセージを取得する
- ResourceBundle::getLocales — サポートするロケールを取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open