Как сделать интернационализацию URL? - PullRequest
2 голосов
/ 04 апреля 2011

У меня вопрос по поводу интернационализации URL-адресов веб-сайтов.

Вопрос в том, как сделать это правильно?

Я бы хотел сделать что-то вроде этого.

Предположим, у вас есть URL в вашей адресной строке

www.mydomain.com/en/book

тогда, если вы введете www.mydomain.com/de/book, вы будете перенаправлены на немецкую версию сайта, поэтому URL изменится на www.mydomain.com/de/buch и так далее.

Идея :

Я думал о создании таблицы, которая будет использоваться в качестве словаря между разными языками. Для контента сайта я бы все еще использовал i18n , но я думаю, что для urls это не может быть применено.

Реализация :

Я думал об изменении routing.py таким образом, чтобы перед вызовом любого соединения я распознавал в URL язык, который хочет пользователь, и сохранял его в переменной сеанса для дальнейшего использования с * 1036. * i18n . Затем я перенаправил бы пользователя на правильный URL для этого языка и вызвал попер controller / action .

Любые идеи, предложения или рекомендации приветствуются.

Изменить (2011-04-04 18:35):

  1. Я только что напомнил себе, что уже сталкивался с подобной проблемой в Opera Blog ;
  2. существует проблема в StackOverflow: Интернационализация приложения Pylons , но она касается исключительно интернационализации сайта, никаких проблем с URL в комплекте;
  3. WZeberaFFS указал нам на небольшую проблему, которая может возникнуть, если не будут приняты во внимание ссылка или предыдущие языковые настройки ;
  4. Дополнительный вопрос : Что нужно сохранить в базе данных, чтобы она работала быстро? У меня есть своя идея, но позже я попробую.

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Я считаю, что ваша реализация будет работать как журнал, поскольку у вас нет одинакового имени для разных страниц, например, если у вас есть страница с именем www.mydomain.com/en/music и если music на немецком языке - book, то проблема будет будь то, если вы хотите перейти на www.mydomain.com/fr/music, то вы не знаете, придете ли вы из /de/ или /en/. Но это только проблема, если у вас есть конфликтующие имена на разных страницах, они будут работать, если вы будете иметь одно и то же имя для слова в 2 различных языках, вы не будете точно знать, где они образуются, но вы будете знать, куда они направляются.

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

0 голосов
/ 04 апреля 2011

Я понятия не имею, как это можно сделать в Python, но обычно люди делают такие вещи с помощью переписывающего устройства URL или фильтра URL - что-то, что будет потреблять ваш URL и перенаправлять к правильной настройке страницы. в то же время.

...