Pregunta

Entonces, lo que quiero saber es si lo siguiente es posible. Tengo un sitio web donde internacionalizamos el uso de la gema estándar I18N (con traducciones en config/locales/*. YML). En este momento, hemos confiado en una variedad de correcciones (bastante poco elegantes) para que JavaScript recoja palabras traducidas (principalmente mediante el uso de los atributos de datos HTML5). Ahora que hemos actualizado nuestro sitio a Rails 3.1, y nos gustan las nuevas cosas de la tubería de activos, sería genial si pudiéramos internacionalizar nuestros archivos JS algo como lo siguiente:

aplicación/activo/jsfile.js.erb

alert(<%= I18n.t('javascript.key.name') %>)

y luego haga que la tubería de activos se itera a través del archivo para generar público/activos/jsfile.en.js, público/activos/jsfile.de.js, etc. (supongo que un local consciente javascripts_include_tag también sería útil)

¿Alguien es consciente de algún ejemplos/gemas/complementos que puedan hacer este tipo de trabajo, o es hora de romper el IDE y comenzar a codificar algo yo mismo?

¿Fue útil?

Solución

Tuve el mismo problema y al final decidí implementar algo. Agregué a Assets.Rake algunas tareas que crean los archivos localizados especificados en config.assets.localized_precompile, por ejemplo:

config.assets.localized_precompile = ['application-it.js', 'application-fr.js', 'application-de.js', 'application-en.js']

Entonces estoy usando

=javascript_include_tag "application-#{I18n.locale}"

Y la aplicación-xx.js son todos como:

//= require application

Puedo compartir más detalles si está interesado

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top