Django中特定于上下文的本地化

时间:2011-11-02 14:36:39

标签: python django localization sites

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

一切都保持不变,但术语也发生了变化。 e.g。

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

myria是我的富互联网应用程序。单词chemistbiologistphysicist仅表示工作区。整个Django应用程序itselt使用相同的代码库而没有其他任何改变。

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

我的智慧结束了如何实现这一目标。也许还有一些与网站框架相关的问题?

1 个答案:

答案 0 :(得分: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