Cómo traducir cadenas de JavaScript en Rails

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!

LUBAIB CEEJEY
Desarrollador Sr. Ruby on Rails

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish