我有一个Django应用程序。将其本地化为多种语言很简单,但网站的一部分是一个复杂的富互联网应用程序。网站的这一部分允许用户进入他的工作空间模式。
一切都保持不变,但术语发生了变化。例如:
www.exmaple.com/myria/chemist
www.exmaple.com/myria/biologist
www.exmaple.com/myria/physicistmyria是我的富互联网应用程序。单词chemist、biologist和physicist仅表示工作空间。整个Django应用程序本身使用相同的代码库,其他内容没有变化。
我使用django-rosetta来管理翻译,使用django-localeurl来提供基于URL的区域设置切换(在站点的正常部分)。
我对如何做到这一点束手无策。也许是一些与网站框架相关的东西?
发布于 2011-11-06 18:37:25
简单的回答是:你不需要它。在大多数情况下,最好在URL中使用拉丁字符,而不是%%转义的字符。
冗长的答案: DjangoCMS为每个页面提供了依赖于语言环境的URL。你可以像这样拼凑一些东西:
from django.utils.translations import ugettext as _
from django import http
...
def myria_view(request, localized_workspace):
my_workspaces = (
(_('foo'), foo_view),
(_('bar'), bar_view),
(_('buz'), buz_view),
)
for ws in my_workspaces:
if ws[0] == localized_workspace:
return ws[1](request)
raise http.Http404但是,再说一次,不要这么做。这太大错特错了
更新: Django做到了开箱即用https://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#translating-url-patterns
https://stackoverflow.com/questions/7982127
复制相似问题