2

我有一个 Django 应用程序。将其本地化为多种语言是一件简单明了的事,但该网站的一部分是一个复杂的富互联网应用程序。这部分网站允许用户进入他的工作区模式。

一切都保持不变,但术语发生了变化。例如

www.exmaple.com/myria/chemist
www.exmaple.com/myria/biologist
www.exmaple.com/myria/physicist

myria是我的富互联网应用程序。chemist和一词biologistphysicist表示工作区。整个 Django 应用程序 itelt 使用相同的代码库,没有其他任何变化。

我正在使用 django-rosetta 来管理翻译,并使用 django-localeurl 来提供基于 URL 的语言环境切换(在网站的正常部分)。

我对如何做到这一点束手无策。也许与网站框架有些混搭?

4

1 回答 1

0

简短的回答:你不需要它。在大多数情况下,最好在 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

于 2011-11-06T10:37:24.740 回答