Traducciones con parámetros

Akelos

Akelos

i18n

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.

Compartelo en tus redes socialesShare on FacebookShare on Google+Tweet about this on TwitterEmail this to someoneShare on TumblrShare on LinkedIn

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *