Hola a todos, estoy pensando en crear una web multi-idioma.
Como framework usare Laravel 5, he visto que disponemos de ayuda referente a las traducciones (trans creo que era la función), el cual va tirando de unos archivos ya sea en, es, etc; donde están todas las traducciones.
Pero si quiero agregar contenido en X idiomas, necesitaría una tabla con los distintos idiomas, por ejemplo la descripción de algún servicio, un post u otra información.
Que forma de organizarlo me recomendáis?
Utilizo mucho Laravel (4 y ahora 5), pero siempre, igual es por vicio o pereza, que el proyecto requiere multi-idioma (en base de datos, contenidos gestionados por el cliente, ... ) acabo utilizando CakePHP por su Translate Behaviour, que permite, de forma transparente, gestionar en base de datos las diferentes versiones (idiomas) de los contenidos [ http://book.cakephp.org/2.0/en/core-libraries/behaviors/translate.html ].
Para Laravel dispones de esto: https://github.com/dimsav/laravel-translatable pero no lo he probado, aunque como verás tiene muchas similitudes con el sistema de CakePHP.
Muchas gracias por la información, por lo que veo esto puede servir, tendré que ponerme a ello para verlo.
Directamente lo que hace la clases es guardar en bbdd y desde ahí obtener los datos, genial...
Hola,
Yo hice hace unos años un sistema en varios idiomas y a las tablas recuerdo haberles puesto a las columnas que tenian traduccion, por ejemplo descripcion_ES (Español), descripcion_FR (Francés) y tenia una variable de session con el idioma seleccionado y en los "SELECT a la DB concatenaba esa variable de session y me cogia el campo del idioma seteado" y siempre le ponia el "alias" en el select al campo sin el _ES o _FR y para el front-end lo que mostraba era el campo "descripcion". Luego lo mismo hacia con un "include" para los literales "aceptar, cancelar, modificar, borrar" incluida por ejemplo lang_ES.php y alli tenia todo en un array los posibles valores. Si se agregaba un idioma era relativamente facil actualizarlo.
Saludos,
Como framework usare Laravel 5, he visto que disponemos de ayuda referente a las traducciones (trans creo que era la función), el cual va tirando de unos archivos ya sea en, es, etc; donde están todas las traducciones.
Pero si quiero agregar contenido en X idiomas, necesitaría una tabla con los distintos idiomas, por ejemplo la descripción de algún servicio, un post u otra información.
Que forma de organizarlo me recomendáis?
Saludos
19/03/2015 15:18
Para Laravel dispones de esto: https://github.com/dimsav/laravel-translatable pero no lo he probado, aunque como verás tiene muchas similitudes con el sistema de CakePHP.
19/03/2015 16:06
Directamente lo que hace la clases es guardar en bbdd y desde ahí obtener los datos, genial...
Gracias por la información.
14/04/2015 18:30
Yo hice hace unos años un sistema en varios idiomas y a las tablas recuerdo haberles puesto a las columnas que tenian traduccion, por ejemplo descripcion_ES (Español), descripcion_FR (Francés) y tenia una variable de session con el idioma seleccionado y en los "SELECT a la DB concatenaba esa variable de session y me cogia el campo del idioma seteado" y siempre le ponia el "alias" en el select al campo sin el _ES o _FR y para el front-end lo que mostraba era el campo "descripcion". Luego lo mismo hacia con un "include" para los literales "aceptar, cancelar, modificar, borrar" incluida por ejemplo lang_ES.php y alli tenia todo en un array los posibles valores. Si se agregaba un idioma era relativamente facil actualizarlo.
Saludos,