بنية الترجمة

بنية الترجمة

مجالات الترجمة

تسمح الاختصارات بالوصول إلى الترجمات بالنسبة لسياقات معينة.

// بالنسبة للتخطيط (علامات ميتا HTML وإطار الصفحة الرئيسية)
{{ '@layout::meta.description' | trans }}
// بالنسبة للصفحة (نص الصفحة أو نافذة منبثقة على سبيل المثال)
{{ '@page::page_title' | trans }}

الإدراجات

من المهم تقليل النصوص المكررة في ملف الترجمة. تسمح المفاتيح السحرية بالإدراج من ملف إلى آخر باستخدام البنية الداخلية @folder.file::key.sub_key.

يمكنك دمجها مع الكلمة المفتاحية % إذا كانت المفتاح أو شجرة المفاتيح هي نفسها.

# translation-file-one.en.yml
example_key:
  example_sub_key: Translation string

# translation-file-two.en.yml
example_key:
  # Using this key resolves to the first file
  # using the same key "example_key.example_sub_key"
  example_sub_key: '@translation-file-one::%'

الامتدادات

إذا كانت معظم المفاتيح في ملف ما هي نفسها كما في ملف آخر، فمن الأسهل استخدام بناء ~extends لإعادة استخدام جميع المفاتيح وإضافة المفاتيح الجديدة فقط.

# translation-file-two.en.yml
~extends: '@translation-file-one'

التخزين المؤقت

يتم حل ملفات الترجمة وتخزينها مؤقتاً للحفاظ على الأداء.

جافا سكريبت

يمكن تمرير الترجمات إلى جافا سكريبت للاستخدام الديناميكي.

// template.html.twig
trans_js('@page::javascript.*')
// Hello Javascript!
app.layout.page.trans('@page::javascript.demo_text');