martes, 25 de octubre de 2011

Codeigniter Language CLASS




Este tutorial trata sobre como usar la libreria Language Class de codeigniter y sera el preámbulo par aun tutorial de como crear sus sistema multi lenguaje con codeigniter, primero vamos a empezar por lo básico, como se hace en codeigniter para trabajar con varios lenguajes. Codeigniter posee una Clase dedicada especialmente para trabajar con los lenguajes, (y tambien tiene un helper), lo primero que debemos saber es que hay dos carpetas donde se guardan los diferentes lenguajes en codeigniter, una esta en "system/language" y la otra en "application/language", en la primera se guarda los lenguajes que tienen que ver solamente con el sistema principal, y la segunda guarda los lenguajes de nuestro proyecto Web. 

Dentro de esas carpetas deben tantas carpetas como lenguajes tengamos, y a su ves tantos archivos de lenguajes como necesitemos, eso si, de carpeta a carpeta de lenguaje deben estar exactamente los mismos archivos, con los mismos arrays, la única diferencia es que el lenguaje en el que van a estar escritos los valores de los lenguajes. Como ya en una entrada anterior les deje la traducción de codeigniter al español, aqui!. Que si la revisan con detenimiento es idéntica a la del ingles con la única diferencia que el contenido esta en español, esa traducción como la traducción del sistema va en "system/language",


Creando Archivos de Lenguaje

Para trabajar con varios lenguajes en codeigniter debemos empezar creando los archivos de lenguajes en "application/language/(el lenguaje)/miarchivo_lang.php", todos los archivos de lenguaje deben terminar en _lang.php,  y deberíamos tener uno exactamente igual para cada lenguaje. 

Dentro de nuestro debemos ir colocando lineas que extiendan el array $lang, para ir definiendo nuevos textos en ese lenguaje. las lineas deben seguir este prototipo:

$lang['clave del lenguaje']="contenido para esta clave";

A la hora de crear nuestro archivo de lenguaje es bueno crear y seguir nuestra propia notación para que despues no vayamos a confundirnos. Ejemplo:

$lang['msj_mensaje_borrado']="Su mensaje a sido borrado";
$lang['error_mensaje_borrado"]="Su mensaje no a podido ser borrado";

Cargando un archivo de lenguaje.

Después de tener creado lso archivos de lenguaje, vamos a necesitar cargarlos, esto se hace con :

$this->lang->load('mi archivo','el lenguaje que quiero');

El segundo parámetro es opcional y si no se coloca cargara el lenguaje predeterminado en nuestro archivo de configuración.

También podemos cargar un archivo de lenguaje automaticamente cada ves que nuestra aplicación cargue, definiendo lo en "applicacion/config/autoload.php".

Imprimiendo lineas de el archivo de lenguaje.

El  Languague Class tienen un método line('clave del lenguaje'), que devuelve una linea especifica de lenguaje. Este metodo seguna la documentación oficial, pues ya no se debería a usar más y se debería usar la función lang() de el Langueage helper. 

echo $this->lang->line('msj_mensaje_borrado');
//Salida: Su mensaje a sido borrado
echo lang('msj_mensaje_borrado');
//Salida: Su mensaje a sido borrado
echo lang('msj_mensaje_borrado','id_input_formulario')
//Salida: <label for='id_input_formulario'">Su mensaje a sido borrado</label>

Bueno esto es todo por hoy, Voy a tratar de que al proxima entrada sea de como crear un sistema Multilenguaje con Codeigniter.

Nota: si crean como es debido los archivos de lenguaje en la carpeta de español y ingles, veran como al modificar la variable en el config.php va a cambiar en lenguaje al reabrir la pagina.

No hay comentarios:

Publicar un comentario