我需要使用懒惰的翻译,但我还需要翻译 - 如何处理?
此代码正在执行我需要的操作:
print ugettext_lazy('Hello world!')
现在我想加入两个懒惰的翻译并单独翻译(我现在不行,为什么但想要有两个翻译字符串)。
print ugettext_lazy('Hello world!') + ' ' + ugettext_lazy('Have a fun!')
我可以执行此类代码,但它会产生比需要更多的翻译。
print ugettext_lazy('Hello world! Have a fun!')
是否可以有两个翻译字符串和延迟翻译?
答案 0 :(得分:8)
由于django 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 :(得分:0)
我认为你不能,否则会导致另一个字符串被翻译......
以下是从文档中获取的示例。没有提到将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)