首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查Django中的另一种语言是否存在当前的URL模式

检查Django中的另一种语言是否存在当前的URL模式
EN

Stack Overflow用户
提问于 2017-07-29 08:39:02
回答 1查看 565关注 0票数 1

我正试图开始我的新网站在Django与许多设置,在未来的道路上将更难实施。其中之一是网站国际化,也是网址模式国际化。

我想要实现的是拥有这样的urls:

代码语言:javascript
运行
复制
www.example.com/news                 [en] [news]
www.example.com/en/news              [en] [news]
www.example.com/no/nyheter           [no] [news]
www.example.com/en/top-articles      [en] [top articles]

在我访问的每一页上,我都希望网站导航有一个下拉菜单,其中包含网站语言,以及当前选择的语言。与此类似:

代码语言:javascript
运行
复制
<ul class="dropdown">
    <li><a href="/en/news" hreflang="en" class="active">English</a></li>
    <li><a href="/no/nyheter" hreflang="no" rel="alternate">Norsk</a></li>
</ul>

至于切换到另一种语言,如果当前页面存在于用户可以从中选择的语言中,那么是否有办法查看呢?

如果当前页面在所选语言中不存在,我希望将用户返回到所选语言的前端页。所以下拉菜单看起来是这样的:

代码语言:javascript
运行
复制
<ul class="dropdown">
    <li><a href="/en/top-articles" hreflang="en" class="active">English</a></li>
    <li><a href="/no" hreflang="no">Norsk</a></li>
</ul>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-29 18:18:34

我看到您这样做的一种方法是根据用户选择在用户会话中设置django_language

Django将处理使用gettext_lazy指定的任何文本的翻译。您的URL将使用Django url.reverse函数以及django_language和其他参数生成。

确定当前页面是否存在于用户可以选择的语言中,这将归结为您的实现。

例如,内容模型将有一个语言字段,可以方便地查询语言匹配django_language的记录。如果没有匹配,则可以将其重定向到语言首页,前提是它将始终存在。

参考文献:

http://django-book.readthedocs.io/en/latest/chapter19.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45387227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档