Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

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".

Tuesday, December 7, 2010

SQL vs NoSQL

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

P.S.  Уползаю писать очередную map\reduce функцию для CouchDB на Javascript. По другому, выборку из базы данных не сделать, увы)