【问题标题】:Select language of a web page with django使用 django 选择网页的语言
【发布时间】:2013-05-05 20:35:41
【问题描述】:

我正在开发一个多语言博客,django 文档中的示例代码对我有用

<form action="/i18n/setlang/" method="post">
        {% csrf_token %}
        <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>
        <input type="submit" value="Go" />
    </form>

此表单让用户选择他们想要的语言。但我实际上想把它放在链接的形式,如: [法文][英文][六] 如何在模板中实现它?

【问题讨论】:

  • 你可以设置一个像/i18n/setlang/(FR|EN|VI)/这样的url端点并使其成为GET-able。选择语言是用户的选择。看不出有什么理由这样做POST

标签: python django internationalization django-templates


【解决方案1】:

使用 jquery:

<form action="/i18n/setlang/" method="post" style="display: none" id="change_language_form">
    {% csrf_token %}
    <input type="hidden" value="" name="language" id="language" />
</form>

{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
    <a href="#" lang_code="{{ language.code }}" class="change_language">{{ language.name_local }} ({{ language.code }})</a>
{% endfor %}

<script>
    $('.change_language').click(function(e){
        e.preventDefault();
        $('#language').val($(this).attr('lang_code'));
        $('#change_language_form').submit();
    });
</script>

【讨论】:

  • 这可能有效,但不是我想象的那样。也许我要开发一个视图,在其中设置客户端会话的语言代码
猜你喜欢
  • 2012-01-03
  • 2017-07-29
  • 1970-01-01
  • 2018-02-22
  • 2020-03-30
  • 2014-03-14
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
相关资源
最近更新 更多