Django:在编写翻译的字符串时保持延迟翻译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:在编写翻译的字符串时保持延迟翻译相关的知识,希望对你有一定的参考价值。
在Django中,我很高兴使用ugettext_lazy
来推迟字符串的翻译,只有在需要它的表示时。
问题是,当我将一个惰性字符串连接到普通字符串或当我使用它的方法(例如,capitalize())时,字符串被评估并且我松散了延迟翻译。
EG
label = ugettext_lazy('my label') #This is lazy
label_concat = label + ' some other string' #'label_concat' contains transalted 'label'
label_cap = label.capitalize() #'label_cap' contains transalted 'label'
#Set language
...
print label #Translated
print label_cap #Not translated
我知道这是Django的正常行为,但我想知道是否有人解决了这个问题。
答案
对于连接,你可以使用string_concat
(最高1.10)/ format_lazy
(从1.11开始)创建一个懒惰的对象
如果你想实现懒惰的capitalize
,请使用django.utils.functional.lazy
装饰器。见string_concat
implementation。
以上是关于Django:在编写翻译的字符串时保持延迟翻译的主要内容,如果未能解决你的问题,请参考以下文章