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"]
}