2010-05-28 5 views
10

Django 문서의 this section에 따르면 복수형 번역이 필요한 경우에는 {% blocktrans %}을 사용해야합니다. 그러나 다음과 같은 예를 들어 내가 할 수있는 것이 더 편리하지 않은가?장고 템플릿 {% 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 %} 

그러나

+3

당신이 단어의 순서를 강요로 이것은, 번역을 위해 매우 열심히한다; 번역문이'{{views}} '앞에 복수형을 요구한다면 어떻게 될까요? 장황한 표현은 실제로가는 길입니다. – bouke

답변

12

TemplateSyntaxError: 'blocktrans' doesn't allow other block tags (seen u'plural') inside it 당신은 그 변수의 값으로 사용됩니다

blocktrans 태그의 count variable as variable_name를 잊었 던졌다 그것이 복수형인지 아닌지를 탐지하십시오.

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

아 아아 이제 보았습니다. 그래도 여전히 더 편리한 방법이 있어야한다고 생각합니다. {% trans "동영상을 보았습니다"%} {{video.views.count}} {% blocktrans 조회수로 동영상. 조회수 계산}} 시간 {% 복수}} {% endblocktrans %} – jmagnusson

+1

문서로 링크 https://docs.djangoproject.com/en/dev/topics/i18n/translation/#std : templtetag-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

... blocktrans의 사용을 무효화하고 있습니다. 대신에 더 많은 단어 퍼즐을 만들어 내고 있습니다. '{% plural %} '솔루션을 사용하는 것이 좋습니다. – vdboor