3

我需要使用惰性翻译,但我也需要进行翻译 - 如何处理?

这段代码正在做我需要的事情:

print ugettext_lazy('Hello world!')

现在我想将两个惰性翻译连接在一起并单独翻译(我现在不行,为什么但想要两个翻译字符串)。

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

我可以做这样的代码,但它产生的翻译比需要的多。

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

是否可以有两个翻译字符串和惰性翻译?

4

2 回答 2

15

由于 django 1.11string-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)
于 2017-11-13T11:16:04.640 回答
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)
于 2015-03-25T10:22:42.057 回答