小编Col*_*ney的帖子

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

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

一个限制是我不想更改已经存在的URL.这个网站已经活跃了一段时间,并且有一些外部链接,我不想打破或重定向.网址方案的工作方式如下:英文内容位于网站的根目录,而其他语言则使用域名中的前缀:

英文网址:

/
/articles/
/suggestions/
Run Code Online (Sandbox Code Playgroud)

西班牙语网址:

/es/
/es/articulos/
/es/sugerencias/
Run Code Online (Sandbox Code Playgroud)

我已经将翻译后的页面与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)
Run Code Online (Sandbox Code Playgroud)

这使得网址正确解析,但执行反向解析的{%url%}标记不起作用.

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

django internationalization

15
推荐指数
3
解决办法
9971
查看次数

标签 统计

django ×1

internationalization ×1