The ResourceBundle class
(PHP >= 5.3.2, PECL intl >= 2.0.0)
Введение
Localized software products often require sets of data that are to be customized depending on current locale, e.g.: messages, labels, formatting patterns. ICU resource mechanism allows to define sets of resources that the application can load on locale basis, while accessing them in unified locale-independent fashion.
This class implements access to ICU resource data files. These files are binary data arrays which ICU uses to store the localized data.
ICU resource bundle can hold simple resources and complex resources. Complex resources are containers which can be either integer-indexed or string-indexed (just like PHP arrays). Simple resources can be of the following types: string, integer, binary data field or integer array.
ResourceBundle supports direct access to the data through array access pattern and iteration via foreach, as well as access via class methods. The result will be PHP value for simple resources and ResourceBundle object for complex ones. All resources are read-only.
Обзор классов
Содержание
- ResourceBundle::count — Get number of elements in the bundle
- ResourceBundle::create — Create a resource bundle
- ResourceBundle::getErrorCode — Get bundle's last error code.
- ResourceBundle::getErrorMessage — Get bundle's last error message.
- ResourceBundle::get — Get data from the bundle
- ResourceBundle::getLocales — Get supported locales
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Введение
- Установка и настройка
- Предопределенные константы
- Примеры
- The Collator class
- The NumberFormatter class
- The Locale class
- The Normalizer class
- The MessageFormatter class
- The IntlCalendar class
- The IntlTimeZone class
- The IntlDateFormatter class
- The ResourceBundle class
- The Spoofchecker class
- The Transliterator class
- The IntlBreakIterator class
- The IntlRuleBasedBreakIterator class
- The IntlCodePointBreakIterator class
- The IntlPartsIterator class
- The UConverter class
- Grapheme Функции
- IDN Функции
- IntlChar
- Exception class for intl errors
- The IntlIterator class
- intl Функции
Коментарии
<?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"
*/
?>