Lingo.dev + .yaml (Rails)

Lingo.dev CLI traduit les fichiers YAML d'internationalisation Ruby on Rails en utilisant des clés racines basées sur les locales pour le workflow standard d'internationalisation 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, assure que les ancres et alias YAML fonctionnent à travers les locales, s'intègre parfaitement avec les assistants t() de Rails, et suit exactement les meilleures pratiques d'i18n de Rails.

Configuration rapide

Configuration 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 de Rails

npx lingo.dev@latest i18n

Gère le contenu spécifique à la locale de Rails sous des clés racines tout en préservant la structure YAML et les conventions i18n de Rails.

Structure i18n de Rails

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

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é des méthodes d'assistance

Fonctionne parfaitement avec les assistants i18n de Rails :

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

Support d'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 localisation 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"]
}