Monday, January 31, 2011

Десктопное

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

Thursday, January 20, 2011

Django и мультиязычные flatpages

Надо ж как-нибудь научиться выражать свои мысле, ага. :)

Вчера столкнулся с такой вот проблемой: есть небольшой мультиязычный сайтик. Ну понятно - если ты кликнул на "русский язык" в выборе языков, то весь сайт предстаёт тебе на русском языке, если "немецкий", то на немецком.
Все мелкие названия, термини и элементы меню были давно переведены в через 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".