【问题标题】:How to debug Django i18n?如何调试 Django i18n?
【发布时间】:2012-05-31 12:42:28
【问题描述】:

我继承了一个需要 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 或我在设置中设置的任何内容。

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

【问题讨论】:

    标签: django internationalization


    【解决方案1】:

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

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

    如果它在设置文件的末尾看起来是正确的,那么它可能没有被正确地传递给模板。您可以尝试像this 那样自己推动它。

    还有一件事要检查;你确定这不是你需要的 settings.LANGUAGE_CODE 吗?我不记得这是否只是我脑海中的模型。

    【讨论】:

    • 我尝试了使用和不使用 LANGUAGE_CODE,使用 runserver,使用 Apache,守护进程和非守护进程...
    • 在设置结束时打印出值给了你什么?
    • 但是感谢 mutli 设置文件的想法,我认为它们很干净,但现在发现了一些恐怖,并且没有导入语言环境中间件! i18n 现在可以工作了 :) 我要马上清理它。
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 2019-06-25
    • 2013-05-08
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多