我有一个 Django 应用程序。将其本地化为多种语言是一种简单直接的方法,但网站的一部分是复杂的富互联网应用程序。站点的这一部分允许用户进入他的工作区模式。
一切都保持不变,但术语发生了变化。例如
www.exmaple.com/myria/chemist
www.exmaple.com/myria/biologist
www.exmaple.com/myria/physicist
myria 是我的富互联网应用程序。 chemist、biologist 和 physicist 等词仅表示工作空间。整个 Django 应用程序本身使用相同的代码库,没有其他任何变化。
我正在使用 django-rosetta 来管理翻译,并使用 django-localeurl 来提供基于 URL 的区域设置切换(在网站的正常部分)。
我对如何实现这一点束手无策。也许与站点框架有些混杂?
请您参考如下方法:
简短回答:您不需要它。在大多数情况下,最好在 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
