Вчера столкнулся с такой вот проблемой: есть небольшой мультиязычный сайтик. Ну понятно - если ты кликнул на "русский язык" в выборе языков, то весь сайт предстаёт тебе на русском языке, если "немецкий", то на немецком.
Все мелкие названия, термини и элементы меню были давно переведены в через gettext и .po файлы.
А вот тексты на страницах типа /about/, /contact/, и т.п, геттекстом переводить проблематично - минимальное изменение и все переведённые тексты внезапно становятся английскими. Модуль django-multilingual, который вроде решает проблему мультиязычного контента, на Django 1.2 не завёлся.
Что делать, что делать.???777!!!111
Вообще лучшим вариантом было бы наверное разнести разные сайты на разные поддомены, но в тот момент это было недоступно.
Сделал я это следующим способом:
Сделал отдельные страницы для каждой языковой версии, а-ля /ru/about/, /de/about/, /en/about/, благо, у Django просто офигенная админка, в которой удобно работать.
В шаблоне, которые отвечает за вывод этих линков добавил следующее:
{% get_current_language as LANGUAGE_CODE %}.Теперь в переменной LANGUAGE_CODE у меня содержится буквенный код данного языка.
А ссылки на страницы оформил следующим образом:
<a href="{% LANGUAGE_CODE %}/about/">{% trans "About"%}</a>
Может кто-то скажет ,что это топорный способ, но на мой взгляд он отличный, быстрый и подтверждает почему Django называют "Framework for perfectionists with deadlines".