Rails I18n y mensaje elegante que pasa a JavaScript
El proceso de "internacionalización" generalmente significa abstraer todas las cadenas y otros bits específicos de la configuración regional (como formatos de fecha o moneda) de su aplicación. El proceso de “localización” significa proporcionar traducciones y formatos localizados para estos bits.
Cómo funciona I18n en Ruby on Rails
❝Los límites de mi idioma son los límites de mi mundo.❞ ‒Ludwig Wittgenstein. Con más de 6.909 lenguas distintas en el mundo y la mayoría de ellas con tantas diferencias (por ejemplo, en las reglas de pluralización), es difícil proporcionar herramientas específicas para la internalización. Sin embargo, para eliminar las barreras de los idiomas, la API Rails I18n se centra en:
- brindando soporte para inglés e idiomas similares listos para usar
- facilitando la personalización y ampliación de todo para otros idiomas
Como parte de esta solución, cada cadena estática en el Marco de rieles – por ejemplo, mensajes de validación de Active Record, formatos de fecha y hora – se ha internacionalizado, por lo que localización de una aplicación Rails significa "anular" estos valores predeterminados.
1.1 La arquitectura general de la biblioteca
Así, la gema Ruby I18n se divide en dos partes:
- La API pública del marco i18n: un módulo Ruby con métodos públicos que definen cómo funciona la biblioteca
- Un backend predeterminado (que se denomina intencionalmente Simple backend) que implementa estos métodos
Como usuario, siempre debes acceder solo a los métodos públicos en el módulo I18n, pero es útil conocer las capacidades del backend.
Aquí, la forma más sencilla de implementar la internacionalización en JavaScript;
a) Utilice el guión
<script type=”text/javascript”>
ventana.I18n = <%= I18n.backend.send(:translations).to_json.html_safe %>
</script>
b) Puede agregar el siguiente código en js archivo;
I18n[“en-US”][“alfa”][“bienvenido”];
C) Obtenga ayuda del ayudante de aplicación agregando el siguiente método;
def traducciones_actuales
@traducciones ||= I18n.backend.send(:traducciones)
@translations[I18n.locale].con_acceso_indiferente
fin
d) Es necesario inicializar el backend si aún no lo ha hecho.
¿I18n.backend.send(:init_translations) a menos que I18n.backend.inicializado?
# ahora puedes volcar las traducciones a json de forma segura
mi) Invoca lo siguiente en tu aplicación.html.erb ;
<script type=”text/javascript”>
ventana.I18n = <%= current_translations.to_json.html_safe %>
</script>
F) Para evitar tener que conocer la configuración regional actual en JavaScript.
I18n[“alfa”][“bienvenido”]; O I18n.alpha.bienvenido;
gramo) Varias bibliotecas y complementos para internacionalización y localización:
i18siguiente – https://github.com/i18next/i18next
Gema I18n – https://github.com/svenfuchs/i18n
requirejs-i18n – https://requirejs.org/docs/api.html#i18n
En RielesCarma Utilizamos las últimas herramientas y técnicas para crear aplicaciones únicas. Verificar nuestro portafolio para comprender cómo estamos ayudando a cambiar la forma de la industria del software. Para saber más sobre el desarrollo de Ruby on Rails, ¡Ponte en contacto con nosotros ahora!