¿Cómo puedo internacionalizar decir una tabla de categorías (con una columna de nombre) en diferentes idiomas. ¿Qué tal una tabla de productos (que consiste en un nombre y columnas de descripción). ¿Cuál es la mejor forma de internacionalizar el contenido de estas tablas de base de datos con Ruby on Rails?¿Cómo internacionalizar el contenido en ruby on rails?
Respuesta
¿Ha echado un vistazo a: http://guides.rubyonrails.org/i18n.html
En él se describe con cierto detalle cómo internacionalizar su solicitud y
"proporciona un marco fácil de usar y extensible para la traducción de su aplicación a un único idioma personalizado que no sea inglés o para que proporciona compatibilidad con varios idiomas en su aplicación. "
Algunos enlaces útiles:
Si desea almacenar los valores para los diferentes idiomas en la base de datos junto a los raíles estándar i18n (yml), podrías hacer algo como esto:
los productos campo Nombre de tabla:
- Suite Sencilla
- name_fr
- name_nl
buscar el valor correcto:
def i18n_db_value(object, attribute)
object.send("#{attribute.to_s}_#{I18n.locale}") if object
end
"almacenar varias versiones de contenido en el modelo y tener un sitio "vs. "tienda de una sola versión de los contenidos en el modelo pero tiene múltiples sitios"
En Railscasts hay un buen artículo sobre, usando una gema llamada Globalize3. Eso sólo le permiten establecer qué modelos serán traducidos y gestionar un traducen tablas para cada modelo, y funciona igual que i18n es a páginas estáticas ...
Tome una mirada
http://railscasts.com/episodes/338-globalize3?view=asciicast
Puede sobrescribir El método "nombre" en la Categoría modelo, puede buscar la traducción correcta en otra tabla.
Para que, en la tabla de categorías, debe tener en el campo "nombre" el idioma predeterminado traducido, por ejemplo "Otro". Y luego buscar "Otro" en una tabla como:
transtations table
en_text "Other" <--- You search this (default language)
es_text "Otros" ---> You retrun this
ca_text "Altres" ---> or this
# Category table
class Category < ActiveRecord::Base
def name
Translation.translate(read_attribute("name"))
end
end
# Your transltation model
class Translation < ActiveRecord::Base
def self.translate(text)
locale=I18n.locale
if locale!="en" # default locale: what is on the table "category"
trad=self.find_by_en_text(text)
if trad
return eval("trad.#{locale}_text")
end
end
return text
end
end
- 1. Internacionalizar contenido dinámico en Rails
- 2. contenido dinámico con ajax (ruby on rails)
- 3. ¿Cómo funciona Ruby on Rails?
- 4. Cómo dominar Ruby on Rails
- 5. Ruby on Rails Switch
- 6. Ruby on Rails will_paginate
- 7. Ruby on Rails enviar
- 8. Ruby vs. Ruby on Rails
- 9. El último 20% en Ruby on Rails
- 10. Ruby on Rails: descargable
- 11. Docsplit Ruby on Rails
- 12. Ruby on Rails en IIS?
- 13. ¿Cómo Monkey Patch en Ruby on Rails?
- 14. Cómo caché JSON en ruby on rails?
- 15. Ruby on Rails Sistemas de gestión de contenido?
- 16. cómo manipular DOM con Ruby on Rails
- 17. Ruby On Rails CMS inspirado en DjangoCMS
- 18. Ruby on Rails: formulario select
- 19. Ruby on Rails field average?
- 20. Ruby on Rails - ¿Variables globales?
- 21. Ruby on Rails Debug Pregunta
- 22. ¿Cómo se puede leer el contenido del archivo remoto en Ruby on Rails?
- 23. Ruby on rails y Node.js
- 24. link_to con Ruby on Rails
- 25. Ruby on rails application root
- 26. Antipatterns con Ruby on Rails
- 27. Ruby on Rails asociación polimórfica
- 28. Usos de Ruby on Rails
- 29. Busting Ruby on Rails Myths
- 30. Ruby on Rails - Render JSON
Todas estas referencias no hablan sobre la traducción de los contenidos de la base de datos ...como la gema Globalize3 –