Lingo.dev + .yaml (Rails)
تقوم واجهة سطر أوامر Lingo.dev بترجمة ملفات YAML الخاصة بتدويل Ruby on Rails باستخدام مفاتيح جذر مستندة إلى اللغة المحلية لسير عمل التدويل القياسي في Rails. تدير واجهة سطر الأوامر جميع ترجمات Rails في ملفات لغات مركزية، وتحافظ على اتفاقيات المفاتيح المتداخلة في Rails للنماذج/العروض/وحدات التحكم، وتضمن عمل مراسي YAML والاختصارات عبر اللغات المحلية، وتتكامل بسلاسة مع مساعدات Rails t()
، وتتبع أفضل ممارسات تدويل Rails بدقة.
الإعداد السريع
التكوين لملفات اللغات المحلية في Rails:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"yaml-root-key": {
"include": ["config/locales/*.yml"]
}
}
}
ترجمة ملفات تدويل Rails
npx lingo.dev@latest i18n
تدير المحتوى المحدد للغة المحلية في 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 i18n المساعدة:
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"]
}