gpt4 book ai didi

没有路径前缀的 Django i18n 默认语言

转载 作者:行者123 更新时间:2023-12-03 15:16:17 31 4
gpt4 key购买 nike

我有一个现有的多语言 Django 应用程序,我正在移植到 Django 1.4。 I18n 支持目前基于一些丑陋的 hack,我想让它使用 Django 的内置 i18n 模块。

一个限制是我不想更改已经存在的 url。这个站点已经活跃了一段时间,并且有指向它的外部链接,我不想中断或重定向。 urls 方案是这样工作的:英文内容位于网站的根目录,而其他语言在域名中使用前缀:

英文网址:

/
/articles/
/suggestions/

西类牙语网址:
/es/
/es/articulos/
/es/sugerencias/

我已经得到了使用 Django 1.4 的 i18n 模块的翻译页面,但它真的,真的,真的想把所有的英文网址放在/en/下。我尝试了一些不同的技巧,包括为英文版定义非国际化网址:
def build(callback):
return callback('',
url(_(r'^$'), home.index, name="home"),
url(_(r'^articles/$'), content.article_list, name='article_list'),
url(_(r'^suggestions/$'), suggestions.suggestions, name='suggestions'),
)

urlpatterns = build(patterns)
urlpatterns += build(i18n_patterns)

这使得 url 可以正确解析,但是用于反向解析的 {% url %} 标记不起作用。

完成无前缀英文网址的最佳方法是什么?

最佳答案

我使用solid-i18n-url 来解决类似的问题:
https://github.com/st4lk/django-solid-i18n-urls

很好的描述它是如何工作的,位于此处:
http://www.lexev.org/en/2013/multilanguage-site-django-without-redirects/

关于没有路径前缀的 Django i18n 默认语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13636604/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com