2012-03-18 8 views
5

मैं रूसी भाषा में बहुवचन रूप का उपयोग करने की कोशिश करता हूं, लेकिन रूसी में बहुवचन शब्दों के लिए शब्द के दो रूप हैं (उदाहरण के लिए: "1 курс" = 1 कोर्स, "2 курс а" = 2 पाठ्यक्रम, लेकिन "5 курс ов" = 5 पाठ्यक्रम)।रूसी स्थानीयकरण के लिए बहुवचन रूप का उपयोग

Django इस खास समर्थन करता है और बहुवचन रूप निर्दिष्ट करता है इस एल्गोरिथ्म (django.po हेडर) का उपयोग करते हुए:

"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" 
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 

बहुवचन रूप का विवरण इस (django.po) की तरह दिखता है:

msgid "%(курс) курс" 
msgid_plural "%(курс) курса" 
msgstr[0] "%(курс) курс" 
msgstr[1] "%(курс) курса" 
msgstr[2] "%(курс) курсов" 

कैसे क्या मैं इसे टेम्पलेट्स में उपयोग करता हूं? इस {% sometag word="курс" counter=courses|lenht %} की तरह कुछ? क्या डिफ़ॉल्ट टैग है, या क्या मुझे इस टैग को अपने आप लागू करने की ज़रूरत है?

+1

blocktrans आप मदद करनी चाहिए –

+0

@Tomasz विसोकी आपको एक उदाहरण पोस्ट कर सकते हैं? – Deadly

+0

"बहुवचन-रूप: nplurals = 3; बहुवचन = एन% 10 == 1 && n% 100! = 11? 0: एन% 10> = 2 && n%" "10 <= 4 && (एन% 100 <10 || n%100> = 20)? 1: 2; \ n "मुझे आशा है कि एन अंतिम अंक है, न कि नंबर खुद? अन्यथा यह n = 21, 31, 41 आदि 22-24, 32-34, आदि – drgs

उत्तर

5

आपको थॉमसज़ द्वारा संकेत के रूप में blocktrans का उपयोग करने की आवश्यकता है। blocktrans documentation से:

यह टैग भी बहुवचन के लिए प्रदान करता है। इसका उपयोग करने के लिए:

नाम गणना के साथ काउंटर वैल्यू को नामित और बाध्य करें। यह मान सही बहुवचन रूप का चयन करने के लिए उपयोग किया जाएगा। दोनों को {% blockural%} टैग {{block blockans%} और {% endblocktrans%} टैग के भीतर अलग करने वाले एकवचन और बहुवचन रूपों को निर्दिष्ट करें।

एक उदाहरण:

{% blocktrans count counter=list|length %} There is only one {{ name 
}} object. {% plural %} There are {{ counter }} {{ name }} objects. {% 
endblocktrans %} 

एक अधिक जटिल उदाहरण:

{% blocktrans with amount=article.price count years=i.length %} That 
will cost $ {{ amount }} per year. {% plural %} That will cost $ {{ 
amount }} per {{ years }} years. {% endblocktrans %} 
+0

के लिए सही नहीं है धन्यवाद, मैंने पहले दस्तावेज़ों को पढ़ा है। लेकिन यह मेरे मामले में काम नहीं कर रहा है और मैं वास्तव में नहीं जानता कि मैं कहां गलत हूं। मैं इसका उपयोग करने का प्रयास करता हूं: '{% ब्लॉक के साथ नाम =" курс "गिनती काउंटर = own_corses | लंबाई%} {{name}} {% बहुवचन%} {{name}} {% endblocktrans%} 'djnago.po में: "% (नाम) रों курс" चुनेंगे "% (नाम) रों курсов" अछि [0] "% (नाम) रों курс" अछि [1] "% (नाम) रों курса" अछि [2] " % (नाम) s курсов "' परिणाम: "13 курс" - यह गलत है। – Deadly

+1

आपको केवल '{% ब्लॉकट्रान गिनती काउंटर = own_corses | लंबाई%} {{name}} {% बहुवचन%} {{name}} {% endblocktrans%} की आवश्यकता है' –

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