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