簡體   English   中英

Python 'different_locale' 錯誤的語言環境轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM