{{| T}} और {% trans%} में क्या अंतर है?


11

मैंने देखा कि ड्रुपल 8 सपोर्ट {% trans %}जो सिम्फनी डॉक्यूमेंटेशन ( i18n एक्सटेंशन ) के अनुसार, ट्विग के लिए गेटटेक्स्ट सपोर्ट जोड़ता है।

{{ |t }}जहाँ तक मुझे पता है, ड्रुपल टेम्प्लेट्स में ट्रांसलेटेबल स्ट्रिंग्स को जोड़ने के लिए विरासत तरीका है। प्रलेखन के अनुसार , t()एक स्ट्रिंग को वर्तमान भाषा या किसी दिए गए भाषा में अनुवाद करता है।

दोनों बहु-भाषा वेबसाइट का समर्थन करते हैं।

  • उन एक्सटेंशनों के बीच अंतर क्या हैं?
  • मुझे दूसरे पर एक का उपयोग कब करना चाहिए?

मैं अपरा के लिए ट्रांस का उपयोग करता हूं। अन्यथा सरल टी। उदाहरण के लिए "{% ट्रांस%} आइटम {% बहुवचन गिनती%} आइटम {% एंडट्रांस%}"

जवाबों:


21

{{ |t }}फ़िल्टर और {% trans %} ... {% endtrans %}ब्लॉक दोनों , जब Drupal में Twig टेम्पलेट फ़ाइल के संदर्भ में उपयोग किए जाते हैं, तो Drupal स्थानीयकरण प्रणाली का हिस्सा होते हैं। और किसी एक के साथ संसाधित स्ट्रिंग्स के लिए अनुवाद उसी तरह से, और localize.drupal.org के माध्यम से नियंत्रित किया जाता है। पाठ के सरल तारों के लिए उन्हें परस्पर उपयोग किया जा सकता है, हालांकि %transब्लॉक में जटिल तारों के लिए कुछ अतिरिक्त उपयोगी विशेषताएं हैं।

अंतर यह है कि tफिल्टर केवल साधारण तारों की अनुमति देता है, जबकि %transब्लॉक का उपयोग करके स्ट्रिंग में गतिशील प्लेसहोल्डर्स का उपयोग करने की अनुमति मिलती है। Php t()फ़ंक्शन का उपयोग करना बहुत पसंद है ।

यहाँ कुछ उदाहरण दिए गए हैं:

tफिल्टर के माध्यम से सरल स्ट्रिंग अनुवाद :

{{ 'Hello Stack Exchange!'|t }}

प्लेसहोल्डर के साथ स्ट्रिंग अनुवाद:

{% trans %}Hello {{ user.name }}, today's date is {{ date|placeholder }}.{% endtrans %}

प्लेसहोल्डर डिफ़ॉल्ट रूप से बच जाते हैं, लेकिन {{ var|passthrough }}प्लेसहोल्डर के रूप में लेफ्ट-अनस्कैप्ड या स्वरूपित भी हो सकते हैं {{ var|placeholder }}। यह क्रमशः @string; string, and% string in t () फ़ंक्शन का उपयोग करने के बराबर है।

आप %transबहुवचन तारों को प्रारूपित करने के लिए ब्लॉक का भी उपयोग कर सकते हैं।

{% trans %}
  There is 1 comment.
{% plural count %}
  There are {{ count }} comments.
{% endtrans %}

सरल स्ट्रिंग्स के लिए वास्तव में कोई नियम नहीं हैं कि आपको कब |tबनाम का उपयोग करना चाहिए %trans। इसलिए मैं आपके खाके में जो कुछ भी पढ़ना आसान है, उसका उपयोग करने की सलाह दूंगा। |tफ़िल्टर का उपयोग करने के मेरे अनुभव में शॉर्ट स्ट्रिंग्स के लिए अच्छी तरह से काम करता है, जबकि %transब्लॉक पाठ के लंबे स्ट्रिंग्स के लिए आसान है।

उपयोग के बारे में अधिक जानकारी यहां पाई जा सकती है: https://www.drupal.org/node/2357633 और यहां https://www.drupal.org/developing/api/8/localization


बहुत बढ़िया व्याख्या। धन्यवाद! ऐसा करने पर स्पष्टीकरण का गंभीर अभाव था। उदाहरणों के साथ आपकी अधिक गहन व्याख्या ने मुझे बहुत मदद की और मुझे कुछ विचार दिए। विशेष रूप से बहुवचन स्ट्रिंग उदाहरण। यह बहुत चालाक है!
टायलर यंगब्लड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.