为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

三国纷争 2022-12-20 15:33:24
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'任何想法为什么?
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我建议使用 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]))

输出:


['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


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信