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