ss_blog_claim=f608201a5759a78f27cb629c1a6d9de0

Sunday, April 26, 2009

Traducciones con parámetros

Akelos

i18n

La i18n (internationalization) de Akelos (framework PHP) nos permite incluir parámetros en la invocación. A continuación compartimos un ejemplo con ustedes:

Trabajaremos con el controlador product

Y el método greeting
archivo app/controller/product_controller.php

function greeting() { }

En la vista (archivo app/views/product/greeting.tpl):

translate( 'Hello %user_name. Justice %question_mark', array('%user_name' => 'Osho', '%question_mark' => '?') );

Aquí debemos prestar atención a los parámetros que se indican con el prefijo de porcentaje ('%'). Y como segundo parámetro del método translate tenemos el arreglo con llaves y valores para los parámetros.

En los archivos de traducción se puede ser flexibles con la presencia y posición de las variables al interior de las expresiones.

Ej:
archivo app/locales/product/en.php
$dictionary['Hello %user_name. Justice %question_mark']='Hello %user_name. Justice %question_mark';
archivo app/locales/product/es.php
$dictionary['Hello %user_name. Justice %question_mark']='%user_name e. Justicia chu.';

Obtendríamos como resultado:

- Hello Joseph. Justice?
- Joseph e. Justicia chu.

De esta forma podemos ubicar las palabras en el lugar correspondiente de acuerdo a las reglas de cada lenguaje. Incluso prescindir de elementos como ciertos signos de puntuación que sólo son válidos en determinados idiomas.

También podemos reutilizar expresiones ya traducidas, así evitamos las variaciones en la traducción de frases muy similares. La clave es identificar patrones en las expresiones, cuando en la práctica escribimos repetidas veces lo mismo.

- Ha fallado el comando DELETE.
- Command EXECUTE has failed.

Y podemos dar por cerrada una etapa de traducción antes de terminar el proceso de desarrollo de la lógica de una solución.

- Le quedan 2 tareas por revisar.
- 1 task to do.