Python 'different_locale' 错误的语言环境转换

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'


任何想法为什么?


三国纷争
浏览 83回答 1
1回答

慕标琳琳

我建议使用 django 的translation.override上下文管理器。这是一个文档示例。我在本地尝试了以下脚本并返回了所需的结果。import calendarfrom django.utils import translationfrom django.utils.translation import gettext as _conditions = []    for i in range(1, 13):        with translation.override('lt_LT'):            conditions.append(_(calendar.month_name[i]))输出:['sausis', 'vasaris', 'kovas', 'balandis', 'gegu\xc5\xbe\xc4\x97', 'bir\xc5\xbeelis', 'liepa', 'rugpj\xc5\xabtis', 'rugs\xc4\x97jis', 'spalis', 'lapkritis', 'gruodis']如果你打印它们,它会产生:sausisvasariskovasbalandisgegužėbirželislieparugpjūtisrugsėjisspalislapkritisgruodis
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python