Idiomas
From Tlalokes
Tlalokes utiliza arreglos, vectores ó mátrices para manejar las variables de idioma. Ejemplo:
$locale['name'] = 'English'; $l['general'] = 'Label for every controller'; $l['controllers']['TestCtl']['controlador'] = 'Label for the controller Test'; $l['controllers']['TestCtl']['actions']['one']['foo'] = 'Label only for action one'; $l['controllers']['TestCtl']['actions']['two']['foo'] = 'Label only for action two';
Contents |
Nombre del archivo
Este arreglo debe estar ubicado en un archivo con cuyo nombre corresponda con el código de idioma, se sugiere utilizar los códigos de tres letras definidos en el ISO 639-2. Ejemplo:
eng.php para inglés spa.php para castellano ó español.
Ubicación
Los archivos de idioma se ubican dentro del directorio de la aplicación, en el subdirectorio _locale.
application/
_locale/
eng.php
spa.php
Estructura y acceso
El achivo debe contener dos arreglos $locale y $l, el primero incluirá información como nombre del idioma, formatos de moneda, fecha, etc.; y el segundo contendrá el contenido como tal.
Tlalokes analizará el contenido del arreglo y lo asignará dentro del objeto TlalokesResponse, el cual es accesible desde el controlador como propiedad, y desde la vista como variable local.
Para que Tlalokes pueda realizar una asignación correcta, el arreglo deberá respetar una estructura básica donde cada llave será representada como una propiedad en TlalokesResponse y como una variable local en la vista.
$locale deberá ser un arreglo de una sola dimensión.
$locale['name'] = 'Español';
$l puede ser un arreglo multidimensional. El nivel básico del arreglo es de una sola dimensión, ejemplo:
$l['home'] = 'Home';
lo anterior será accesible desde el controlador de la siguiente manera:
/**
* @ActionDefinition( file='index.tpl' )
*/
public function index ()
{
echo $this->response->home;
}
y desde una vista simple de la siguiente manera:
<p><?=$home;?></p>
si se utilizara Smarty el acceso sería:
<p>{$home}</p>
los valores asignados en una sola dimensión serán accesibles por todos los controladores. Ahora bien, supongamos que deseamos asignar contenido que fuera accesible únicamente para cierto controlador, la forma de asignarlo sería mediante el uso de arreglos multidimensionales. Ejemplo:
$l['controllers']['TestCtl']['title'] = 'Test';
lo anterior será accesible desde el controlador de la siguiente manera:
/**
* @ActionDefinition( file='index.tpl' )
*/
public function index ()
{
echo $this->response->title;
}
desde una vista simple:
<p><?=$title;?></p>
usando Smarty:
<p>{$title}</p>
Si se deseara que el acceso a cierto contenido fuera accesible únicamente desde cierta acción del controlador, la forma de asignarlo sería:
$l['controllers']['TestCtl']['actions']['index']['save'] = 'Save';
y el acceso desde el controlador sería:
/**
* @ActionDefinition( file='index.tpl' )
*/
public function index ()
{
echo $this->response->save;
}
desde una vista simple:
<p><?=$save;?></p>
desde Smarty:
<p>{$save}</p>
