Lingo.dev + .yaml (Rails)
واجهة سطر أوامر Lingo.dev تترجم ملفات YAML للتدويل في Ruby on Rails باستخدام مفاتيح جذرية قائمة على اللغة لسير عمل التدويل القياسي في Rails. تدير واجهة سطر الأوامر جميع ترجمات Rails في ملفات لغة مركزية، وتحافظ على اصطلاحات المفاتيح المتداخلة في Rails للنماذج/العروض/وحدات التحكم، وتضمن عمل مراسي YAML والأسماء المستعارة عبر اللغات، وتتكامل بسلاسة مع مساعدات t() في Rails، وتتبع أفضل ممارسات التدويل في Rails بدقة.
الإعداد السريع
التكوين لملفات اللغة في Rails:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"yaml-root-key": {
"include": ["config/locales/*.yml"]
}
}
}
ترجمة ملفات التدويل في Rails
npx lingo.dev@latest run
تدير المحتوى الخاص باللغة في Rails تحت المفاتيح الجذرية مع الحفاظ على بنية YAML واصطلاحات التدويل في Rails.
بنية التدويل في Rails
التنظيم القياسي في 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"
رسائل التحقق في 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"
ميزات التكامل مع Rails
التوافق مع دوال المساعدة
تعمل بسلاسة مع مساعدات التدويل في Rails:
t('users.index.title')I18n.t('hello')<%= t('.edit') %>(البحث الكسول)User.model_name.human
دعم الاستيفاء
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"
التكوين المتقدم
ملفات لغة متعددة في Rails
"yaml-root-key": {
"include": [
"config/locales/*.yml",
"config/locales/**/*.yml"
]
}
قفل مفاتيح النظام في Rails
"yaml-root-key": {
"include": ["config/locales/*.yml"],
"lockedKeys": ["number", "time", "date", "datetime"]
}