2010-05-28 20 views
10

Django दस्तावेज़ों में this section के अनुसार मुझे उन मामलों के लिए {% blocktrans %} का उपयोग करना चाहिए जहां मुझे बहुवचन का अनुवाद करने की आवश्यकता है। हालांकि, निम्नलिखित उदाहरण के साथ, क्या मैं कुछ और सुविधाजनक नहीं कर सकता हूं?Django टेम्पलेट {% trans%} बहुवचन

{% blocktrans count video.views.count as views %} 
The video has been viewed <span>{{ views }}</span> time 
{% plural %} 
The video has been viewed <span>{{ views }}</span> times 
{% endblocktrans %} 

मैं निम्नलिखित करने की कोशिश की:

{% blocktrans %}time{% plural %}times{% endblocktrans %} 

लेकिन यह फेंक दिया TemplateSyntaxError: 'blocktrans' doesn't allow other block tags (seen u'plural') inside it

+3

यह, अनुवादकों के लिए बहुत मुश्किल बनाता है के रूप में आप शब्दों के एक आदेश देने के लिए मजबूर कर रहे हैं; क्या होगा यदि अनुवाद के लिए '{{views}} के सामने बहुवचन रूप होना आवश्यक है? वर्बोज अभिव्यक्ति वास्तव में जाने का रास्ता है। – bouke

उत्तर

12

आप blocktrans टैग में count variable as variable_name भूल

कि चर का मान का उपयोग किया जाएगा पता लगाएं कि यह बहुवचन है या नहीं।

{% blocktrans count variable as variable_name %} 
    time 
    {% plural %} 
    {{ variable_name }} times 
{% endblocktrans %} 
+0

आह अब मैं देखता हूं :) मुझे अभी भी लगता है कि इस तरह से अधिक सुविधाजनक तरीका होना चाहिए हालांकि: {% ट्रांस "वीडियो देखा गया है"%} {{video.views.count}} {% ब्लॉकट्रान वीडियो के रूप में गिनती .views.count%} समय {% बहुवचन%} बार {% endblocktrans%} – jmagnusson

+1

दस्तावेज़ों से लिंक https://docs.djangoproject.com/en/dev/topics/i18n/translation/#std: templatetag-blocktrans – Gesias

-1

आप उपयोग कर सकते हैं:

{% blocktrans with video.views.count|pluralize as foo and video.views.count as views %} 
The video has been viewed <span>{{ views }}</span> time{{ foo }} 
{% endblocktrans %} 
+2

... जो ब्लॉकट्रान के उपयोग को हरा रहा है। यह इसके बजाय और शब्द-पहेली बना रहा है। '{% बहुवचन%} 'समाधान के लिए बेहतर जाएं। – vdboor

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