为什么我的django翻译无法正常工作?

时间:2019-05-03 15:00:15

标签: django django-i18n

我有一个表单,其中大多数元素都按我的预期进行翻译,但语言下拉列表却没有。

我有一个文件,languages.py,格式如下:

# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
LANGUAGE_OPTIONS = (
    ("Abkhaz", "аҧсуа (%s)" % _("Abkhaz")),
    ("Afar", "Afaraf (%s)" %  _("Afar")),
    ("Afrikaans", "Afrikaans (%s)" %  _("Afrikaans")),
    ("Akan", "Akan (%s)" %  _("Akan")),
    ("Albanian", "Shqip (%s)" %  _("Albanian")),
    ....
    ("Zhuang, Chuang", "Saɯ cueŋƅ, Saw cuengh (%s)" %  _("Zhuang, Chuang")),
)

想法是将代码的英文版保存到数据库中,但是用户可以看到其原始语言及其语言。

我使用forms.py将其导入from .languages import LANGUAGE_OPTIONS as language_choices

然后我在表格中有以下字段

other_languages = forms.MultipleChoiceField(
                 choices=language_choices, 
                 label = _("Which language(s)"), required = False
            )

“正确地翻译了哪种语言”,但选择的语言不正确。

我怎么了?

编辑 我想我可能知道答案,但是如果有人可以确认,我将不胜感激。

我认为LANGUAGE_OPTIONS应该设置为

LANGUAGE_OPTIONS = (
    ("Abkhaz", _("аҧсуа (Abkhaz)"),
    ...
)

然后在django.po中,我的翻译看起来像

msgid "аҧсуа (Abkhaz)"
msgstr "аҧсуа (abkhaz)"

对吗?

1 个答案:

答案 0 :(得分:0)

LANGUAGE_OPTIONS应该设置为

LANGUAGE_OPTIONS = (
    ("Abkhaz", _("аҧсуа (Abkhaz)"),
    ...
)

然后在django.po中,我的翻译看起来像

msgid "аҧсуа (Abkhaz)"
msgstr "аҧсуа (abkhaz)"