【问题标题】:Django translationDjango 翻译
【发布时间】:2018-02-23 13:08:45
【问题描述】:

我正在使用 django Rosetta 将我的网站翻译成 2 种不同的语言,并且它工作正常。所以如果我想从英语翻译成印度尼西亚语,我输入

127.0.0.1:8000/en/ to 127.0.0.1:8000/id/ 

但问题是当我想在模板中添加选择选项时 我只是不确定如何将所选语言传递给 Rosetta。

{% get_available_languages as languages %}

{% trans '' %}
{% for lang_code, lang_name in languages %}
    {% language lang_code %}
        <li>
        <i class="icon-wrench"></i>
        <a href="#" target="_blank" data-toggle="modal">
            {{lang_name|slice:'3' }}, {{ lang_code|upper }}
        </a>
        </li>
    {% endlanguage %}
{% endfor %}

在我的情况下,我如何将我的选择传递给 Rosetta 进行翻译

【问题讨论】:

  • 是数据库查询返回的选择选项还是静态python或html值?
  • 您好,如果不是从数据库中选择,因为我按照文档所说设置了 Rosetta,还添加了我的翻译文件,我可以在 url 中切换它们,它可以从英语到印度尼西亚我会说 127.0.0.1:8080/en/ 到 127.0.0.1:8080/id/ 所以我认为这是来自 Rosetta 包的常见选择。

标签: django django-rosetta


【解决方案1】:

所以我通过仅使用模板语言语法找到了解决问题的方法,我将在这里分享我的代码,以防有人发现类似的挑战。

{% for lang_code, lang_name in languages %}
    {% language lang_code %}
        <li>
        <i class="icon-wrench"></i>
            <a href="/{{ lang_code }}/"
                 {% if lang_code == LANGUAGE_CODE %}
                 {% endif %}>
            {% if lang_code == 'en' %}
             <img src="{% static "img/en.png" %}" alt="Eng"
                  style="height: 13pt;
                  margin-bottom: 3pt;">
                {{ lang_code|upper }}
            {% endif %}
             {% if lang_code == 'id' %}
             <img src="{% static "img/id.png" %}" alt="Ind"
                  style="height: 13pt;
                  margin-bottom: 3pt;">
                {{ lang_code|upper }}
            {% endif %}

         </a>
        </li>
    {% endlanguage %}
{% endfor %}

【讨论】:

  • 除非我单击一种语言切换到我会被重定向到我网站的主页。如何让网站重新加载并且只更改语言 ID 而无需将我重定向到主页。
  • 有人可以帮助我如何让 javascript 添加当前位置,并且只更改 URL 中的语言 ID,这样我就不会重定向到主页。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-07-12
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
相关资源
最近更新 更多