![]() |
Manejar multiples idiomas Code Igniter Hola :borracho: Actualmente estoy desarrollando una app con Code Igniter que tiene muchos niveles de jerarquia y por ende tengo muchos controllers y modelos, sin embargo mi duda es con respecto al manejo de los datos multi-idioma, en la base de datos yo tengo dos tablas.. por ejemplo Tabla es_seccion y tabla en_seccion Las dos tablas con esta estructura id_seccion id_parent nomSeccion Cuando se hace un nuevo registro envío los datos a las dos tablas para en una tener la misma información en dos idiomas. Se me habia ocurrido crear un router que dependiendo de la url cambie de idioma.. ejemplo http://app.com/es http://app.com/en Sin embargo no se como podria ser que todos los links apuntasen a el idioma pasado por la ulr, o si hay alguna manera mas decente de hacerlo, ademas de que en cada controlador no se si deba de hacer alguna comparación.. para saber que tabla cargar.. ¿alguna idea de como abordar mejor esto? |
Re: Manejar multiples idiomas Code Igniter Hola, La verdad no se si esta sea la mejor manera pero se me ocurre que... Seguramente la informacion por idiomas a nivel de db las separas a nivel de tablas.. por lo tanto yo me idearia alguna clase de regla para mis tablas, asi como tu mencionas tablas en ingles tabla1_en tabla2_en tablas en español tabla1_es tabla2_es A nivel de vista seguro tendras cosas en ambos idiomas que no estaran en la base de datos entonces los nombres de las vistas igual vistas en ingles vista1_en.php vista2_en.php vistas en español vista1_es.php Usando el sistema de sessiones de codeigniter puedo cambiar el idioma sin tener que modificar las url Modificaria la clase controller que esta en la carpeta libraries que es la que se inicializa con cada request.. añadiendo un atributo que defina el lenguaje y una condicion if a la funcion constructora que lo cambie en caso de existir un lenguaje definido en una variable de session. Código PHP: Código PHP: es/vista1.php en/vista1.php y llamarlas asi Código PHP: Código PHP: Código PHP: Puedes crear un metodo al controlador principal que haga esto, o en el controlador que consideres y hacer que el usuario cambie el idioma con la url o con botones dentro del mismo site Las posibilidades son muchas, hay que jugar y probar, lo mejor seria adaptar la idea sin tocar mucho la estructura del framework... Saludos |
Re: Manejar multiples idiomas Code Igniter Me parece muy buena idea.. gracias, sin embargo tengo una duda.. ¿Como cambio el valor del objeto Controller? intente hacer un método pero no me funciona.. no hay algo como super.variable.. como en java.. se que seria mas profesional hacer un get y set para la variable, pero no quiero meterle mucho mano al Controller.php hice esto.. en mi controller principal Código PHP: |
Re: Manejar multiples idiomas Code Igniter Cita:
Tu idea o lo que tratas de hacer me parece mejor ya que no se usarian sesiones para modificar el valor, pero no podras acceder a la variable de esta forma $this->lng sino tendras que siempre llamarla asi parent::$lng tanto para modificarla como para leer su valor, espero que se entienda lo que digo Saludos |
Re: Manejar multiples idiomas Code Igniter Hola, gracias por tu tiempo, sabes sin embargo me gusta la idea de las sessiones para no romper con los esquemas de herencia y oop, sin embargo ya hace el cambio pero si actualizo la pagina.. regresa al idioma anterior.. hice esto.. Código PHP: Código PHP: En Controller.php tengo esto.. Código PHP: Código PHP: |
Re: Manejar multiples idiomas Code Igniter Cita:
|
Re: Manejar multiples idiomas Code Igniter Ah, ese es la clase que trae CI, para cargar archivos de idioma, yo tengo dos archivos de idioma y es para tener arrays asociativos que corresponden a la configuración y textos constantes.. que quiero tambien internacionalizar.. |
Re: Manejar multiples idiomas Code Igniter Hola _xss Disculp por no responder rapido, he estado ocupado.. No veo nada raro en el codigo y te digo que la sesion no se pierde con el refresh ya que controlador no reinicia las sesiones, de ser asi las sesiones no serian sesiones como tal ya que se perderian en cada request.. Cuando tenga mas tiempo me pongo a hacer pruebas Saludos |
Respuesta: Manejar multiples idiomas Code Igniter Hmmm. esto me interesa muuucho! entonces ¿funciona todo bien? Soy novato en CI y para mi primera aplicación tengo que hacerla en 4 idiomas y necesito simplicidad, no complicarme la vida si algo no funciona. Gracias ^_^ |
| La zona horaria es GMT -6. Ahora son las 05:56. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.