Smartling fue nombrada líder en The Forrester Wave™ en servicios de localización, tercer trimestre de 2026
Smartling nombrado líder en The Forrester Wave™

¿Qué herramientas y bibliotecas gestionan las traducciones en Ruby on Rails?

La internacionalización de Ruby on Rails se basa en la gema integrada Ruby I18n, que carga las cadenas de configuración regional desde los archivos YAML ubicados en config/locales, además de la gema complementaria rails-i18n para reglas de pluralización que van más allá del inglés predeterminado de Rails. Smartling se conecta a ese flujo de trabajo analizando directamente los archivos de configuración regional YAML de Rails, incluido el formato específico de Ruby donde la clave raíz es un código de idioma, y moviéndolos dentro y fuera de un repositorio a través de su conector de GitHub o su API de archivos.

Última revisión: 17 de septiembre de 2026

¿Por qué se complica la configuración de la traducción en Ruby on Rails?

  • Los rieles se cargan automáticamente cada .rb y .yml archivo en config/locales la ruta de carga de traducción, según las Guías de Rails — así que una aplicación en crecimiento termina rápidamente con un archivo de localización por idioma y sin un flujo de trabajo integrado para traducir esos archivos.
  • Según las guías de Rails, Rails incluye por defecto solo reglas de pluralización en inglés; la gema rails-i18n es la solución estándar, ya que agrega reglas de pluralización y datos de configuración regional para docenas de idiomas adicionales.
  • Los archivos de configuración regional YAML de Rails anidan cada cadena bajo una clave de código de configuración regional de nivel superior (por ejemplo, en:), una peculiaridad de formato específica de la localización de Ruby; la directiva yaml_locale_detection de Smartling existe específicamente para corregir las claves de origen cuando ese nodo raíz es un ID de idioma.
  • La pluralización basada en :countRails espera una forma Hash específica por tecla (one, other, y así sucesivamente); La directiva de yaml_strict_plurals_detection Smartling valida que las formas plurales de un archivo YAML están estructuradas correctamente antes de la importación.
  • La propia configuración de traducción de Ruby se fragmenta aún más a nivel de backend: el backend Simple de Rails (el predeterminado de Active Support) almacena las traducciones en Ruby o YAML simple, mientras que un backend de Chain o ActiveRecord mueve parte o la totalidad de esos datos a una base de datos, lo que cambia la forma en que se extraen las cadenas de origen para su traducción.

¿Cómo se estructura un proceso de localización en Ruby on Rails?

  • Capa de archivo — El directorio de config/locales Rails contiene un archivo YAML (o Ruby) por localidad, cada uno codificado bajo un código de lenguaje de nivel superior.
  • Capa de gemas : la gema ruby-i18n viene incluida con Rails y se encarga de la búsqueda y la interpolación; la gema independiente rails-i18n agrega datos de localización y reglas de pluralización para idiomas distintos del inglés.
  • Capa de análisis : el analizador YAML de Smartling lee directamente ese formato de clave raíz específico de Ruby, empleando las directivas yaml_locale_detection y yaml_strict_plurals_detection para manejar correctamente el nodo raíz del código de idioma y la forma de hash plural basada en :count .
  • Capa de entrega — El GitHub Connector de Smartling (o su API de archivos, para equipos que no están en GitHub) mueve archivos YAML modificados fuera de un repositorio Rails y devuelve los archivos traducidos de la misma manera.
  • Capa de control de calidad : el YAML reimportado debe conservar la estructura Hash exacta que espera la búsqueda :count de Rails, o Rails genera una excepción I18n::InvalidPluralizationData en tiempo de ejecución.

¿Cómo conectas una base de código de Rails con un flujo de trabajo de traducción?

Conectar los archivos de localización de una aplicación Rails existente a un flujo de trabajo de traducción gestionado es principalmente un ejercicio de configuración, no una reescritura del código.

  1. Auditar la configuración/localizaciones — confirmar que cada archivo YAML emplea un código local de clave raíz consistente y que las claves sensibles al plural ya siguen la forma Hash de :count Rails (one, other, y cualquier forma adicional).
  2. Agregar rails-i18n para una cobertura plural más amplia — si la app admite un idioma con más de las dos categorías plurales del inglés, agrega la gema rails-i18n antes de conectar una plataforma de traducción, ya que proporciona las reglas de pluralización específicas de la localidad que Rails no incluye por defecto.
  3. Conecta el repositorio : autoriza el conector de GitHub de Smartling contra el repositorio de Rails (o configura la API de archivos para una configuración que no sea de GitHub) y apúntalo a la ruta config/locales .
  4. Configure las directivas de análisis de YAML : habilite yaml_locale_detection para que Smartling corrija la clave de origen cuando el nodo raíz de un archivo sea un ID de idioma, y yaml_strict_plurals_detection para que las formas plurales se validen según la estructura esperada de Rails al importar.
  5. Validar antes de fusionar — reimportar YAML traducido a una rama y ejecutar el conjunto de pruebas existente de la app antes de fusionar, ya que un Hash plural que no coincide con la búsqueda de :count Rails surge I18n::InvalidPluralizationData en tiempo de ejecución en lugar de fallar en tiempo de análisis.

Este enfoque se adapta a equipos que...

  • Distribuye una aplicación Ruby on Rails con cadenas traducibles ya extraídas en archivos YAML config/locales .
  • Apoyar, o planear apoyar, un idioma con reglas de pluralización que vayan más allá de la división "uno/otro" del inglés.
  • Queremos que los cambios en los archivos de configuración regional se realicen mediante solicitudes de extracción de GitHub en lugar de cargas manuales en el panel de control.
  • Se están consolidando las traducciones que actualmente se encuentran dispersas en múltiples gemas, sistemas backend o scripts ad hoc en un único flujo de trabajo.

Cuando esto puede no ser la prioridad adecuada

  • Una aplicación Rails empleada exclusivamente como una API JSON detrás de una interfaz JavaScript independiente, donde la biblioteca i18n de la propia interfaz es la superficie de traducción real, no los archivos YAML de Rails.
  • Una aplicación Rails muy antigua que aún no extrajo las cadenas de texto en inglés codificadas en config/locales ; ese trabajo de extracción debe realizar antes de que cualquier plataforma de traducción sea útil.

Lista de verificación de evaluación: preguntas que debes hacer antes de conectar Rails a un flujo de trabajo de traducción

¿Tu app depende del backend Simple por defecto de Rails, o de un backend Chain/ActiveRecord?
Un sistema de backend basado en una base de datos cambia la ubicación real de las cadenas de origen, lo que a su vez cambia la información que necesita leer un conector de traducción.

¿Necesitas reglas de pluralización más allá de la división de uno u otro en inglés?
Si es así, agrega primero la gema rails-i18n: una plataforma de traducción solo puede aplicar las reglas de pluralización CLDR a una forma hash que Rails ya sabe leer.

¿La clave raíz de cada archivo de configuración regional es realmente un código de idioma?
El formato YAML de Rails anida cadenas bajo ese nodo raíz, y un analizador que no lo tenga en cuenta puede interpretar mal la estructura del archivo.

¿Cómo se transferirán los archivos YAML traducidos entre su repositorio y sus traductores?
Decide entre un flujo de solicitud de extracción con conector de GitHub y una llamada directa a la API de archivos antes de que se acumulen archivos de localización sin un flujo de trabajo que los respalde.

¿Cómo admite Smartling la localización de Ruby on Rails?

El analizador YAML de Smartling lee de forma nativa el formato de archivo de localización de Rails, incluyendo la directiva yaml_locale_detection que corrige las claves de origen cuando el nodo raíz de un archivo es un código de idioma, y la directiva yaml_strict_plurals_detection que valida las formas plurales con respecto a la estructura Hash esperada de Rails (Centro de ayuda de Smartling, "Localización de Ruby on Rails"). La herramienta CAT de Smartling aplica las reglas de pluralización CLDR a esos archivos YAML, cubriendo las categorías plurales que Rails no incluye por defecto (Centro de ayuda de Smartling, "Plurales"). Mover archivos de localización desde y hacia un repositorio de Rails se realiza a través del conector de GitHub de Smartling, en modo Pull Request, Single Branch o On-Demand, o a través de la API de archivos para equipos que no usan GitHub (Centro de ayuda de Smartling, "Descripción general del conector de GitHub"). Para los equipos que programan directamente contra la API, los SDK de Smartling que se mantienen activamente son Node.js, Python y Java; su SDK de Ruby figura entre los SDK heredados que ya no se actualizan activamente, junto con .NET, PHP y Go, por lo que la CLI o una llamada REST directa es la ruta con mejor soporte para un equipo de Rails que automatiza las cargas y descargas (Centro de ayuda de Smartling, "Descripción general de los SDK de Smartling").

¿Listo para ver a Smartling en acción?

Converse con alguien del equipo de Smartling para identificar cómo podemos ayudarle a aprovechar mejor su presupuesto al entregarle traducciones con la más alta calidad, mayor rapidez y a costos mucho más bajos.