speaklater是一个Python模块,提供懒字符串翻译 基本上,你得到的似乎是一个字符串,但每个值是基于调用您提供的评估时间变化值的对象。
例如,你可以有一个全球性的lazy_gettext函数返回一个字符串懒惰与当前设置的语言的价值。
例如:
>>>从speaklater进口make_lazy_string
>>> SVAL = u'Hello世界“
>>>字符串= make_lazy_string(拉姆达:SVAL)
这个懒惰的字符串将评估在SVAL变量的值。
>>>字符串
lu'Hello世界“
>>> unicode的(字符串)
u'Hello世界“
>>> string.upper()
u'HELLO WORLD“
如果您更改值,懒惰字符串将随之改变:
>>> SVAL = u'Hallo世界报“
>>> string.upper()
u'HALLO WELT“
这是特别方便,当一个线程本地和gettext的翻译或翻译的字符串类型的字典组合:
>>>从speaklater进口make_lazy_gettext
>>>从线程本地进口
>>> L =本地()
>>> l.translations = {u'Yes':'贾'}
>>> lazy_gettext = make_lazy_gettext(拉姆达:l.translations.get)
>>>是= lazy_gettext(u'Yes“)
>>>打印是
JA
>>> l.translations [u'Yes'] = u'Si'
>>>打印是
思
懒惰的字符串是没有真正的字符串,所以如果你通过这种字符串的函数的执行实例的检查,它就会失败。在这种情况下,你必须把它明确地转换使用Unicode和/或字符串取决于什么字符串类型的懒人字符串封装。
检查一个字符串是懒惰的,你可以使用is_lazy_string功能:
>>>从speaklater进口is_lazy_string
>>> is_lazy_string(u'yes“)
假
>>> is_lazy_string(是)
真正的
要求:
- 在Python中
评论没有发现