0

我继承了一个需要 i18n 的 Django 项目。我已经完成了 i18n 所需的所有通常操作,这些操作通常在其他项目中执行并且通常有效。但是在这个上它不起作用,它是 Django 1.3,所以我去了 i18n 上的文档并按照所有步骤操作,但它不起作用。

我不知道可能出了什么问题,因为我自己没有设置所有项目我不知道它的哪个部分可能会破坏 i18n。

在 base.html 中,我添加了从文档中选择的典型语言 + LANGUAGE_CODE 标签以获得一些反馈:

<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
{% endfor %}
</select>
Lang:{{ LANGUAGE_CODE }}
<input type="submit" value="Go" />
</form>

无论我做什么,LANGUAGE_CODE 总是返回默认的 en-us 或我在设置中设置的任何内容。

我应该按什么顺序检查?从哪里开始,改变什么?

4

1 回答 1

1

根据文档, LANGUAGE_CODE 设置为安装语言代码。您确定您已在设置文件中将其从 en-us 更改了吗?

您是否尝试过在设置文件的末尾打印语言代码,然后在非守护程序模式下运行,以便看到它的输出?就我个人而言,我使用多部分配置文件,并且之前遇到过一些问题,即后面的设置文件已经改变了一些我希望进一步工作的东西。有这种可能吗?

如果它在设置文件的末尾看起来是正确的,那么它可能没有正确地输入到模板中。你可以尝试像这样通过自己来确定。

要检查的另一件事;你确定这不是你需要的 settings.LANGUAGE_CODE 吗?我不记得这是否只是在我头顶的模型中。

于 2012-05-31T12:49:22.027 回答