La clase ResourceBundle

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

Introducción

Los productos de software regionalizados a menudo requieren conjuntos de datos que necesitan ser personalizados dependiendo de la configuración regional actual, p.ej: mensajes, etiquetas, patrones de formateo. El mecanismo de recursos de ICU permite definir conjuntos de recursos que la aplicación puede cargar basándose en la configuración regional, mientras que accede a ellos de una manera unificada independiente de la configuración regional.

Esta clase implementa el acceso a los ficheros de datos de recursos de ICU. Estos ficheros son arrays de información binaria que ICU utiliza para almacenar la información regional.

El paquete de recursos de ICU puede contener recursos simples y recursos complejos. Los recursos complejos son contenedores que pueden tener sus índices de tipo into o string (al igual que los arrays de PHP). Los recursos simples pueden ser de los siguientes tipos: string, integer, campos de datos binarios o array de enteros

ResourceBundle soporta el acceso directo a la información a través de patrones de acceso al array, y la iteración mediante foreach, así como el acceso mediante métodos de clase. El resultado será un valor de PHP para recursos simples y un objeto ResourceBundle para los complejos. Todos los recursos son de sólo lectura.

Sinopsis de la Clase

class ResourceBundle {
/* Métodos */
public __construct(string $locale, string $bundlename, bool $fallback = ?)
public count(): int
public static create(string $locale, string $bundlename, bool $fallback = ?): ResourceBundle
public getErrorCode(): int
public get(string|int $index): mixed
public getLocales(string $bundlename): array
}

Tabla de contenidos

add a note add a note

User Contributed Notes 1 note

up
0
maiseralves at gmail dot com
12 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"
*/
?>
To Top