如何在 Django 中加入惰性翻译?

How can I join lazy translation in 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个翻译文件合二为一,所以我认为这是不可能的,但我可能是错的。

这是正确的做法

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)

因为 django 1.11 string-concat is deprecated, and 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)