[英]Python 'different_locale' bad locale conversion
conditions = []
for i in range(1, 13):
with different_locale('lt_LT'):
conditions.append(calendar.month_name[i])
试着用我的母语“立陶宛语”来度过所有的几个月。 代码结果:
['sausis', 'vasaris', 'kovas', 'balandis', 'geguþë', 'birþelis', 'liepa', 'rugpjûtis', 'rugsëjis', 'spalis', 'lapkritis', 'gruodis']
预期结果:
['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis']
还尝试了“lt_LT.UTF-8”,但得到了以下结果: 'gegužÄ\x97', 'birželis'
任何想法为什么?
我建议使用 django 的translation.override
上下文管理器。 这是一个文档示例。
我在本地尝试了以下脚本,它返回了所需的结果。
import calendar
from django.utils import translation
from django.utils.translation import gettext as _
conditions = []
for i in range(1, 13):
with translation.override('lt_LT'):
conditions.append(_(calendar.month_name[i]))
Output:
['sausis', 'vasaris', 'kovas', 'balandis', 'gegu\xc5\xbe\xc4\x97', 'bir\xc5\xbeelis', 'liepa', 'rugpj\xc5\xabtis', 'rugs\xc4\x97jis', 'spalis', 'lapkritis', 'gruodis']
如果你打印它们,它会产生:
sausis
vasaris
kovas
balandis
gegužė
birželis
liepa
rugpjūtis
rugsėjis
spalis
lapkritis
gruodis
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.