Django语言之间的国际化转换

时间:2011-11-29 20:49:48

标签: django internationalization

我有一个法语和英语网站,非常基本。我创建了我的fr语言文件。我有一些翻译的字符串来测试这个以确保它的工作,但我很困惑,如何设置实际的链接交换语言。我已经按照这个,https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/#the-set-language-redirect-view但接收了404 / / /页面,我这样做是否正确?如果这有帮助,这是我的代码:

                <form action="/i18n/setlang/" method="post">
                {% csrf_token %}
                <input name="next" type="hidden" value="/next/page/" />
                <select name="language">
                {% get_language_info_list for LANGUAGES as languages %}
                {% for lang in LANGUAGES %}
                    {% if lang.0 != '' %}
                        <option value="{{lang.0}}">{{lang.1}}</option>
                    {% endif %}
                {% endfor %}
                </select>
                <input type="submit" value="Go" />
            </form>

我还添加了我的网址:

(r'^i18n/', include('django.conf.urls.i18n')),

我在我的中间件和语言设置中有这个:

'django.middleware.locale.LocaleMiddleware',

LANGUAGES = (
    ('en', 'English'),
    ('fr', 'French'),
)

我很困惑如何使这个工作,所以我可以在2种语言之间交换,或者,如果我正确地做,为什么我在尝试更改语言时会在/ next / page中收到404错误?

谢谢!

杰夫

1 个答案:

答案 0 :(得分:1)

在这一行

<input name="next" type="hidden" value="/next/page/" />

在语言更改后,您必须将"/next/page/"替换为要加载的页面。

如果您要加载同一页面,则应编写value=""