2010-05-28 24 views
10

Django belgelerinde this section'a göre çoğullaştırmaları çevirmem gereken durumlarda {% blocktrans %} kullanmalıyım. Ancak, aşağıdaki gibi bir örnekle yapabileceğim daha uygun bir şey yok mu?Django şablonu {% trans%} çoğullaştırma

{% 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 %} 

aşağıdaki yapmaya çalıştım:

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

Ama

+3

kelimelerin bir sipariş zorluyor gibi bu çevirmenler için çok zor hale getirir; çeviri, {{views}} 'önünde çoğul forma sahip olmak isterse ne olur? Tembel ifade gerçekten gitmek için yoldur. – bouke

cevap

12

TemplateSyntaxError: 'blocktrans' doesn't allow other block tags (seen u'plural') inside it Bunu değişkenin değeri kullanılacaktır

blocktrans etiketinde count variable as variable_name unuttum attı Çoğul olup olmadığını tespit edin.

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

Ah şimdi anlıyorum :) Hâlâ bundan daha uygun bir şekilde olması gerektiğini düşünüyorum: {% trans "Video"%} {{video.views.count}} {% blocktrans sayısı video.views.count gösterim olarak%} time {% çoğul%} times {% endblocktrans%} – jmagnusson

+1

Dokümanlara bağlantı https://docs.djangoproject.com/en/dev/topics/i18n/translation/#std: templatetag-blocktrans – Gesias

-1

Sen kullanabilirsiniz:

{% 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

... bu, blocktrans kullanımını yitiriyor. Bunun yerine daha fazla kelime bulmaca yaratıyor. '{% Çoğul%}' çözüm için daha iyi gidin. – vdboor