yml with spanish rails i18n ruby-on-rails database internationalization backend

ruby on rails - with - Carriles: almacenar traducciones en base de datos



rails date format spanish (4)

Estaba buscando una solución plugin / gem para ampliar los rieles nativos i18n para almacenar mis traducciones en mi base de datos. Tal vez usé los términos de búsqueda incorrectos, pero todo lo que encontré fue la información, que es realmente posible cambiar el backend y esta entrada de blog que describe cómo escribir mi propio backend.

Es difícil imaginar que todas esas aplicaciones de rieles tienen sus traducciones almacenadas en archivos yml o ¡cada desarrollador escribió sus propios backends!

¿Sabes soluciones de trabajo para esto? ¡Almacenar textos multilínea en yml realmente me deprime! ;)

Gracias y saludos,

Joe



Finalmente encontré lo que estaba buscando con la ayuda de Sven Fuchs:

http://github.com/dylanz/i18n_backend_database/tree/master

¡Este increíble complemento de Dylan Stamat hace exactamente lo que su nombre indica y además maneja el almacenamiento en caché!

Sven también mencionó que la rama actual de i18n / active_record también proporciona un backend ActiveRecord:

http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb

En el grupo de usuarios de goolge i18n se está discutiendo algo sobre este tema:

http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e

Problema resuelto, gracias al Sr. I18n Sven Fuchs! ;)


Tuvimos una buena experiencia con fast_gettext

tiene un backend respaldado por DB que viene con un controlador para hacer las traducciones a través de la web. El almacenamiento en caché está integrado, aunque tuvimos que codificar la precarga de todas las traducciones en el inicio (es mucho más rápido que obtenerlas una por una con el almacenamiento en caché).


i18n tiene soporte incorporado para usar la base de datos como backend de traducción.

Cree una tabla utilizando este código en una migración:

create_table :translations do |t| t.string :locale t.string :key t.text :value t.text :interpolations t.boolean :is_proc, :default => false end

Luego agregue un inicializador en config / initializers / i18n.rb con contenido:

I18n.backend = I18n::Backend::ActiveRecord.new

Y por último ... poner las traducciones en la tabla. Algo como:

locale key value en Cool Cool es Cool Frio en nav.Home home es nav.Home casa ...

A partir de i18n 0.5.0, creo que movieron este código a su propia gema ... Olvido cómo se llama esa gema.