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