بنية الترجمة
بنية الترجمة
مجالات الترجمة
تسمح الاختصارات بالوصول إلى الترجمات بالنسبة لسياقات معينة.
// بالنسبة للتخطيط (علامات ميتا 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');