2011-11-02 3 views
2

장고 응용 프로그램이 있습니다. 이것을 여러 언어로 현지화하는 것은 간단하고 간단하지만이 사이트의 한 부분은 복잡한 리치 인터넷 응용 프로그램입니다. 사이트의이 부분은 사용자가 작업 영역 모드를 사용할 수있게합니다.장고의 컨텍스트 특정 지역

모든 것은 동일하지만 용어가 변경됩니다. 예 :

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

myria은 내 풍부한 인터넷 응용 프로그램입니다. 단어 chemist, biologistphysicist은 작업 영역을 나타냅니다. 장고 응용 프로그램 자체는 동일한 코드베이스를 사용하며 그 외에는 아무 것도 변경되지 않습니다.

django-rosetta를 사용하여 번역을 관리하고 django-localeurl을 사용하여 URL 기반 로켈 전환을 제공합니다 (사이트의 정상적인 부분).

나는 이것을 수행하는 방법에 대해 끝내 준다. 어쩌면 사이트 프레임 워크와 함께 어떤 kludging?

아이디어/제안.

답변

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