django语言翻译标签

django语言翻译标签,django,django-templates,translation,translate,Django,Django Templates,Translation,Translate,我正在使用django{%language%}{%endlanguage%}标记,使用html选择列表中不同的语言代码来过度控制django模板中文本的语言代码,但是它不起作用 这是我的密码: {% language '$("#id_language_code").val()' %} "{% trans 'to Present' %}" {% endlanguage %} 当用户从html选择列表中选择一个值时,$id\u language\u code.val肯定会更改。如果我

我正在使用django{%language%}{%endlanguage%}标记,使用html选择列表中不同的语言代码来过度控制django模板中文本的语言代码,但是它不起作用

这是我的密码:

{% language '$("#id_language_code").val()' %}

    "{% trans 'to Present' %}" 

{% endlanguage %}
当用户从html选择列表中选择一个值时,$id\u language\u code.val肯定会更改。如果我将$id_language_code.val附加到上面的翻译字符串,则会显示更改的语言代码,但不会更改翻译字符串。例如:

"{% trans 'to Present' %}" + $('#id_language_code').val() 
{% language 'de' %}
显示此项,其中de是用户选择的语言代码,但“要呈现的内容”未翻译:

to Present de
如果我将语言代码硬编码到{%language%}标记中,翻译字符串将被翻译。例如:

"{% trans 'to Present' %}" + $('#id_language_code').val() 
{% language 'de' %}

有人能指出我做错了什么吗?

Django模板在服务器上呈现-在客户端执行js之前,所以Django不知道什么是“$id\u language\u code.val”


您需要在模板上下文中将语言作为变量传递。

您似乎混淆了服务器端和客户端

Django在服务器端呈现模板。浏览器接收HTML内容,您可以使用JavaScript对其进行操作,但Django在这一点上是不可能的


关于在JavaScript中使用翻译。简而言之,Django有一种方法可以将字典以翻译目录的形式公开,您可以使用JavaScript。您需要改变您的方法,使其能够使用此翻译目录,而不仅仅是模板。

谢谢。我想我现在对这一点有了更好的理解。您是否有一个示例,说明如何在模板上下文中将语言作为JavaScript变量传递,然后我可以在模板中使用该语言?将django变量传递给js: