Javascript Django如何识别用Django实现的多语言网页中的语言更改?

Javascript Django如何识别用Django实现的多语言网页中的语言更改?,javascript,django,multilingual,django-multilingual,i18n,Javascript,Django,Multilingual,Django Multilingual,I18n,我已经用Django实现了一个英文网页。 我现在有一个问题,当我试图创建一个中文网页。中文页面将以前缀(/ch/)分隔 我计划实现一个按钮来更改语言,但问题是Django如何记住更改的页面。假设我的域名是“domain.com”,如果通过按钮将语言设置为中文,我希望在用户访问“domain.com”时打开“domain.com/ch”。 但是,单击按钮似乎无法控制Django(url.py)的urlpatterns,而且似乎有必要在javascript中存储与语言对应的变量 非常感谢您的建议。这

我已经用Django实现了一个英文网页。 我现在有一个问题,当我试图创建一个中文网页。中文页面将以前缀(/ch/)分隔

我计划实现一个按钮来更改语言,但问题是Django如何记住更改的页面。假设我的域名是“domain.com”,如果通过按钮将语言设置为中文,我希望在用户访问“domain.com”时打开“domain.com/ch”。 但是,单击按钮似乎无法控制Django(url.py)的urlpatterns,而且似乎有必要在javascript中存储与语言对应的变量


非常感谢您的建议。

这是一个相当复杂的主题,但是默认情况下,Django中有很多东西可以帮助您。django的Locale部分将查看cookies的语言首选项&我相信浏览器还提供了一些元素,它可以将这些元素作为默认语言提供给网站的新访问者

在Django,需要注意的是,关于这个主题的文档在这里

您需要启用两种设置以获得对多种语言的最佳支持;添加语言元素,并允许对日期、数字、货币等进行本地化格式设置

关于翻译主题,您需要确保python代码中的字符串、向用户显示的javascript和模板都包装在适当的翻译函数中

在根
urls.py
文件中,您还需要确保使用的是
i18n_模式
,该模式将使用当前启用的语言代码作为URL的前缀。Javascript翻译URL的一个例子是

from django.conf.urls.i18n import i18n_patterns

urlpatterns = i18n_patterns(
    url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)
一旦您对设置进行了排序,将URL设置为
i18n_模式
和模板中的一些
{%trans”“%}
标记,您就可以测试消息目录的实际生成

为此,您使用两个管理命令,第一个命令是将翻译添加到生成的文件中,然后运行
compilemessages
以完成此任务