2015-09-28 6 views
6

क्या डीजेगो ट्रांस टैग में एचटीएमएल टैग शामिल हो सकते हैं? उदाहरण के लिए मैं {% trans "Hold <em><strong>Ctrl</strong></em>" %} कर सकता हूं? या मुझे इसके बजाय {% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em>" करना होगा?क्या डीजेगो ट्रांस टैग में एचटीएमएल टैग शामिल हो सकते हैं?

उत्तर

5

क्या हम trans टेम्पलेट टैग के अंदर HTML टैग शामिल कर सकते हैं?

नहीं है, हम जैसा कि आप अपने 1 दृष्टिकोण {% trans "Hold <em><strong>Ctrl</strong></em>" %} में क्या कर रहे हैं एक trans टेम्पलेट टैग के अंदर HTML टैग शामिल नहीं होना चाहिए। यह एक गलत दृष्टिकोण

docs:

से {% trans %} टेम्पलेट टैग तब्दील हो या तो एक निरंतर स्ट्रिंग (एकल या डबल उद्धरण में संलग्न) या चर सामग्री है।

{% trans %} के भीतर एक स्ट्रिंग के अंदर एक टेम्पलेट चर मिश्रण करना संभव नहीं है। यदि आपके अनुवादों को चर (प्लेसहोल्डर्स) के साथ स्ट्रिंग की आवश्यकता है, तो इसके बजाय {% blocktrans %} का उपयोग करें।

<title>{% trans "This is the title." %}</title> # example 1 

<title>{% trans "myvar" noop %}</title> # example 2 

समाधान-1: का उपयोग करना trans टेम्पलेट टैग

trans टैग के अंदर एचटीएमएल कोड डाल के बजाय, आप इच्छित परिणाम प्राप्त करने के लिए (हालांकि यह नहीं है नीचे की तरह कुछ कर सकते हैं अनुशंसित दृष्टिकोण)।

{% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em> # using trans tag 

समाधान -2: blocktrans टैग का उपयोग करना बजाय

बेहतर विकल्प blocktrans टेम्पलेट टैग के बजाय trans टैग का उपयोग करने HTML टैग शामिल करने के लिए है।

blocktrans टैग आप प्लेसहोल्डर का उपयोग करके जटिल अनुवाद के लिए शाब्दिक और चर सामग्री से मिलकर वाक्य चिह्नित करने के लिए अनुमति देता है:

फिर आप बस कर सकते हैं:

{% blocktrans %} 
Hold <em><strong>Ctrl</strong></em> 
{% endblocktrans %} 
+0

क्या कोई परेशानी है। – Daniel

+1

यह DRY सिद्धांत के अनुसार प्रतीत नहीं होता है। – Daniel

+0

कुछ हद तक आप कह सकते हैं। –

1

जैसा कि राहुल ने अपने जवाब में कहा था, किसी को एक ट्रांस टेम्पलेट टैग के अंदर HTML टैग शामिल नहीं करना चाहिए। हालांकि, Translating text blocks with Django .. what to do with the HTML? (जिसे मैंने अभी पाया) के अनुसार, कोई भी HTML टैग को ब्लॉकट्रान टेम्पलेट टैग के अंदर डाल सकता है। इस प्रकार मुझे {% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em>" करना नहीं है। मैं the Django 1.8 docs में ऐसे निर्देश नहीं ढूंढ पाया।

+0

हां, हम 'ट्रांस' टेम्पलेट टैग के अंदर HTML टैग का उपयोग नहीं कर सकते हैं, लेकिन हम 'blocktrans' टैग का उपयोग कर सकते हैं। 'ट्रांस' टेम्पलेट का उपयोग कर समाधान सबसे अच्छा समाधान नहीं है। हम अपने मामले के बजाय 'ब्लॉकट्रान' टेम्पलेट टैग का उपयोग कर सकते हैं। मैंने जवाब अपडेट किया है, कृपया जांचें। –

संबंधित मुद्दे