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