Lingo.dev + .yaml (Rails)

Lingo.dev CLI traduce archivos YAML de i18n de Ruby on Rails utilizando claves raíz basadas en la configuración regional para el flujo de trabajo estándar de internacionalización de Rails. La CLI gestiona todas las traducciones de Rails en archivos de configuración regional centralizados, mantiene las convenciones de claves anidadas de Rails para modelos/vistas/controladores, asegura que los anclajes y alias YAML funcionen en todas las configuraciones regionales, se integra perfectamente con los ayudantes t() de Rails y sigue exactamente las mejores prácticas de i18n de Rails.

Configuración rápida

Configurar para archivos de configuración regional de Rails:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "yaml-root-key": {
      "include": ["config/locales/*.yml"]
    }
  }
}

Traducir archivos i18n de Rails

npx lingo.dev@latest i18n

Gestiona el contenido específico de la configuración regional de Rails bajo claves raíz mientras preserva la estructura YAML y las convenciones de i18n de Rails.

Estructura i18n de Rails

Organización estándar de Rails


# config/locales/en.yml

en:
  hello: "Hello world"

  # Model translations
  activerecord:
    models:
      user: "User"
      post: "Post"
    attributes:
      user:
        name: "Name"
        email: "Email Address"

  # View translations
  layouts:
    application:
      title: "My Rails App"

  # Controller/action specific
  users:
    index:
      title: "All Users"
      new_user: "New User"
    show:
      edit: "Edit User"
      delete: "Delete User"

es:
  hello: "Hola mundo"

  activerecord:
    models:
      user: "Usuario"
      post: "Publicación"
    attributes:
      user:
        name: "Nombre"
        email: "Dirección de Correo"

  layouts:
    application:
      title: "Mi Aplicación Rails"

  users:
    index:
      title: "Todos los Usuarios"
      new_user: "Nuevo Usuario"
    show:
      edit: "Editar Usuario"
      delete: "Eliminar Usuario"

Mensajes de validación de Rails

en:
  activerecord:
    errors:
      messages:
        blank: "can't be blank"
        too_short: "is too short (minimum is %{count} characters)"
        too_long: "is too long (maximum is %{count} characters)"
        taken: "has already been taken"

es:
  activerecord:
    errors:
      messages:
        blank: "no puede estar en blanco"
        too_short: "es demasiado corto (mínimo %{count} caracteres)"
        too_long: "es demasiado largo (máximo %{count} caracteres)"
        taken: "ya está en uso"

Características de integración con Rails

Compatibilidad con métodos auxiliares

Funciona perfectamente con los helpers de i18n de Rails:

  • t('users.index.title')
  • I18n.t('hello')
  • <%= t('.edit') %> (búsqueda perezosa)
  • User.model_name.human

Soporte de interpolación

en:
  welcome_message: "Welcome, %{name}!"
  items_count:
    zero: "No items"
    one: "One item"
    other: "%{count} items"

es:
  welcome_message: "¡Bienvenido, %{name}!"
  items_count:
    zero: "Sin artículos"
    one: "Un artículo"
    other: "%{count} artículos"

Configuración avanzada

Múltiples archivos de localización de Rails

"yaml-root-key": {
  "include": [
    "config/locales/*.yml",
    "config/locales/**/*.yml"
  ]
}

Bloquear claves del sistema Rails

"yaml-root-key": {
  "include": ["config/locales/*.yml"],
  "lockedKeys": ["number", "time", "date", "datetime"]
}