为什么我的 Django 翻译不起作用?

Why is my django Translation not working?

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

我有一个文件,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")),
)

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

我使用 from .languages import LANGUAGE_OPTIONS as language_choices

将其导入 forms.py

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

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

"Which language(s)" 翻译正确,但选择的语言不正确。

我错了什么?

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

我认为 LANGUAGE_OPTIONS 应该设置为

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

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

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

对吗?

LANGUAGE_OPTIONS 应设置为

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

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

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