Don*_*Don 6 django translation gettext internationalization lazy-evaluation
在Django中,我很高兴使用ugettext_lazy仅在需要表示字符串时才能翻译字符串.
问题是,当我将一个惰性字符串连接到一个普通字符串或当我使用它的方法(例如,capitalize())时,字符串被评估并且我松散了懒惰的翻译.
例如
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
Run Code Online (Sandbox Code Playgroud)
我知道这是Django的正常行为,但我想知道是否有人解决了这个问题.
对于连接,您可以使用string_concat(最多1.10)/ format_lazy(从1.11开始)创建一个惰性对象
如果你想实现懒惰capitalize,请使用django.utils.functional.lazy装饰器.见string_concat 实施.
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |