2015-03-25 72 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

由於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

我不認爲你可以,否則會導致另一個字符串被翻譯...

下面是從文檔拍攝的例子。沒有提到將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)