[Ror-es] Multi - idiomas
Hari Seldon
hari.seldon.developer at gmail.com
Wed Sep 5 15:53:37 GMT 2007
Esta solución que propones, Iñigo, me parece una cagada, con perdón.
Es el planteamiento que hace Globalize, y me parece HORROROSO.
De paso, ya que estamos, aprovecho yo también para preguntar a ver si hay
algo parecido a lo que existe en Symfony (seguramente exista)
En Symfony, si se tiene el modelo:
Producto { id, nombre, descripcion, created_at }
Y lo quieres internacionalizar, creas una tabla i18n, así:
Producto { id, created_at }
Producto_i18n { culture, producto_id, nombre, descripcion }
Dónde en el modelo Producto_i18n es PK clave principal "culture" (es, etc
etc...) y "producto_id" FK clave externa
Es evidente que así tenemos un gestor de productos dinámico en cuánto a
lenguajes posibles de traducción.
Y lo mejor de todo, es que esto se integra en el ActiveRecord de Symfony; si
por ejemplo queremos el nombre del producto en español, haríamos:
$producto = ProductoPeer::getByPK(1);
$producto->setCulture('es');
echo $producto->getNombre();
En inglés:
$producto->setCulture('en');
echo $producto->getNombre();
Y así sucesivamente...
¿Existe algo así para RoR? Yo creo que tiene que existir... El caso es
¿dónde? ;)
Un saludo a todos y gracias
De: ror-es-bounces at lists.simplelogica.net
[mailto:ror-es-bounces at lists.simplelogica.net] En nombre de Iñigo Sola Núñez
Enviado el: miércoles, 05 de septiembre de 2007 16:10
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
Asunto: Re: [Ror-es] Multi - idiomas
Melisa, a mi forma de ver, deberías crear campos para cada idioma en la
tabla noticias, pero mejor veamos un ejemplo:
Supongamos que tienes una tabla llamada Noticias. En ella puedes tener, por
ejemplo, los siguiente campos: id, title, description, created_at.
De esa manera tanto en el campo destinado al titulo (title) como el campo
destinado para la descripción (description) solo puedes almacenar contenido
para un idioma. Sin embargo, podemos solucionar el problema si la tabla, en
vez de tener esos campos, tuviera estos otros: id, title_en, description_en,
title_es, description_es, created_at.
Así conseguimos poder guardar tanto el título como la descripción de la
noticia en dos idiomas (ingles y castellano en este caso). De forma análoga
para más idiomas.
Tendremos que modificar el formulario de creación y actualización de las
noticias, insertando los correspondientes campos para el nuevo idioma. Y a
la hora de visualizar el contenido puedes hacer uso de la variable 'locale'
para determinar qué campos debes mostrar en función del lenguaje elegido por
el usuario.
Espero que esta solución te sea de utilidad.
Saludos.
More information about the Ror-es
mailing list