Джанго интернализация в URL? Как сделать URL-адреса, как это: "EN / статьи" и "Pt / Artigos" ...? - PullRequest
1 голос
/ 07 ноября 2011

Hy!

Мне нужно сделать URL на основе языка.

Пример:

Если бы у меня был английский язык и подкатегория под названием "статьи", тогда URL-адрес мог бы быть таким:

/en/articles/...

Если бы язык был португальский, а подкатегория уже переведена как "artigos", то URL будет:

/pt/artigos/...

Как я могу это сделать? Я должен использовать urls.py или некоторые обезьяньи патчи?

спасибо

Ответы [ 3 ]

1 голос
/ 07 ноября 2011

Эта функция уже существует в еще не выпущенной версии 1.4. Вы можете прочитать об этом в заметке о выпуске .

Если вам действительно нужна эта функция, и ни одно из существующих приложений не отвечает вашим потребностям, вы все равно можете попробовать применить соответствующий патч самостоятельно.

1 голос
/ 09 ноября 2011

Я использую transurlvania с большим успехом, он делает именно то, что вам нужно, и даже больше, однако я вижу, что в следующем выпуске Django django-i18nurls будет включено в ядро django, так что, возможно, было бы лучше узнать, что

1 голос
/ 07 ноября 2011

Django LocaleURL - это промежуточное ПО, которое делает именно это.Документация может быть найдена в источнике, или онлайн .

Редактировать: я прочитал тот факт, что вы хотите перевести сам URL-адрес ... Я не знаю ни одной частикода, который обеспечивает это.Возможно, вы могли бы расширить промежуточное программное обеспечение LocalURL, чтобы позаботиться о переводах для вас.Скажем, у вас есть совпадение с регулярным выражением типа (?P<articles>\w+), вы можете в промежуточном программном обеспечении определить, какое представление вы хотите использовать.Возможно, что-то вроде следующего отображения?

if article_slug in ['articles', 'artigos', 'article']:
    article(request) # Call the article view
...