【问题标题】:Context specific localisation in DjangoDjango 中的上下文特定本地化
【发布时间】:2011-11-02 14:36:38
【问题描述】:

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

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

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

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

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

我对如何做到这一点束手无策。可能是网站框架有些杂乱无章?

【问题讨论】:

    标签: python django localization sites


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      相关资源
      最近更新 更多