воскресенье, 5 февраля 2012 г.

Интернационализация URL в Django

Интернационализация URL, или, проще говоря, возможность в зависимости от языка подсовывать разные URL, появится в Django 1.4. Эта возможность вряд ли как-то повлияет на пользовательский опыт работы с сайтом, но и создавалась она не для людей. Её цель — поисковая оптимизация. Посмотрим, как мы можем получить такую функциональность в Django 1.3.

Проблема

Сейчас в Django есть LocaleMiddleware, которая определяет текущий язык на основании данных пользовательской сессии, cookies и HTTP заголовков (именно в таком порядке). Используя LocaleMiddleware ничего не стоит выдавать по одному и тому же адресу контент на разных языках в зависимости от языка пользователя. Это удобно для пользователя, но это также может стать причиной неполной индексации сайта. Действительно, ведь поисковый робот проиндексирует ваш сайт только на одном языке.