2011-11-02 18 views
2

我有一個Django應用程序。將其本地化爲多種語言是簡單而直接的,但該網站的一部分是一個複雜的富互聯網應用程序。這部分網站允許用戶使用他的工作區模式。上下文在Django中的specfic定位

一切都保持不變,但術語發生了變化。例如

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

myria是我的豐富的互聯網應用。單詞chemist,biologistphysicist僅表示工作區。整個Django應用程序itselt使用相同的代碼庫,沒有其他更改。

我正在使用django-rosetta來管理翻譯和django-localeurl以提供基於URL的區域設置切換(在網站的正常部分)。

我在我的智慧結束如何做到這一點。也許有一些與網站框架混雜?

任何想法/建議。

回答

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