Контекстная локализация в Django
У меня есть приложение Django. Локализовать это на несколько языков просто и понятно, но одна часть сайта представляет собой сложное многофункциональное интернет-приложение. Эта часть сайта позволяет пользователю перейти в режим рабочего пространства.
Все остается прежним, но терминология меняется. например
www.exmaple.com/myria/chemist
www.exmaple.com/myria/biologist
www.exmaple.com/myria/physicist
myria
мое богатое интернет-приложение. Слова chemist
, biologist
а также physicist
просто обозначить рабочее пространство. Все приложение Django itselt использует одну и ту же кодовую базу, и больше ничего не меняется.
Я использую django-rosetta для управления переводом и django-localeurl для обеспечения переключения локали на основе URL (в обычных частях сайта).
Я в своем уме о том, как этого добиться. Может быть, какой-то клубок с рамками сайтов?
1 ответ
Краткий ответ: вам это не нужно. В большинстве случаев лучше иметь латинские символы в URL, а не что-то %%- экранировать.
Длинный ответ: DjangoCMS предоставляет зависящий от локали URL для каждой страницы. Вы можете kludge что-то вроде:
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/