使用 django 选择网页语言

nam*_*nam 0 python django django-templates internationalization

我正在开发一个多语言博客,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>
Run Code Online (Sandbox Code Playgroud)

该表单让用户选择他们想要的语言。但我实际上想以链接的形式放置它,例如: [FR][EN][VI] 我如何在模板中实现它?

Aam*_*nan 5

使用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>
Run Code Online (Sandbox Code Playgroud)