Lingo.dev + .yaml (Rails)

Lingo.dev CLI traduit les fichiers YAML i18n de Ruby on Rails en utilisant des clés racine basées sur les locales pour le workflow d'internationalisation standard de Rails. Le CLI gère toutes les traductions Rails dans des fichiers de locale centralisés, maintient les conventions de clés imbriquées de Rails pour les modèles/vues/contrôleurs, garantit que les ancres et alias YAML fonctionnent entre les locales, s'intègre parfaitement avec les helpers t() de Rails, et suit exactement les meilleures pratiques i18n de Rails.

Configuration rapide

Configurez pour les fichiers de locale Rails :

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

Traduire les fichiers i18n Rails

npx lingo.dev@latest run

Gère le contenu spécifique aux locales Rails sous les clés racine tout en préservant la structure YAML et les conventions i18n de Rails.

Structure i18n Rails

Organisation standard 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"

Messages de validation 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"

Fonctionnalités d'intégration Rails

Compatibilité avec les méthodes helper

Fonctionne parfaitement avec les helpers i18n de Rails :

  • t('users.index.title')
  • I18n.t('hello')
  • <%= t('.edit') %> (lazy lookup)
  • User.model_name.human

Support de l'interpolation

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"

Configuration avancée

Fichiers de locale Rails multiples

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

Verrouiller les clés système Rails

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