2015-03-25 3 views
1

Мне нужно использовать ленивый перевод, но мне также нужно сделать перевод - как с этим бороться?Как я могу присоединиться к ленивому переводу в Django?

Этот код делает то, что мне нужно:

print ugettext_lazy('Hello world!') 

Теперь я хочу присоединиться к двум ленивым переводам вместе и перевести его отдельно (я теперь, не буду работать и почему, но хочу иметь две строки перевода).

print ugettext_lazy('Hello world!') + ' ' + ugettext_lazy('Have a fun!') 

Я могу сделать такой код, но он генерирует больше перевода, чем нужно.

print ugettext_lazy('Hello world! Have a fun!') 

Возможно ли иметь две строки перевода и ленивый перевод?

ответ

2

Поскольку Джанго 1,11 string-concat является устаревшим, и format_lazy следует использовать вместо

from django.utils.text import format_lazy 
from django.utils.translation import ugettext_lazy 

name = ugettext_lazy('John Lennon') 
instrument = ugettext_lazy('guitar') 
result = format_lazy('{} : {}', name, instrument) 
1

Я не думаю, что вы можете, в противном случае это приведет к другой строке переводится ...

Вот пример, взятый из документации. Нет никакого упоминания о присоединении к 2 файлам переводов в одном, поэтому я предполагаю, что это невозможно, но я могу ошибаться.

Это правильный способ сделать это

https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#joining-strings-string-concat

from django.utils.translation import string_concat 
from django.utils.translation import ugettext_lazy 
... 
name = ugettext_lazy('John Lennon') 
instrument = ugettext_lazy('guitar') 
result = string_concat(name, ': ', instrument) 

 Смежные вопросы

  • Нет связанных вопросов^_^