#alternate Имена приложений Django, перевод с помощью i18in (наверное очередная тема…) Форум: Django, 30.09.2010 1. Gregory Konin 30.09.2010 0 ↑ 0 ↓ Снова здравствуйте. Целый вечер я гуглил и пытался как-то повлиять на имена приеложений в админке Django. И все безуспешно. Насколько я понял, если в админском шаблоне имя приложения «обернуто» в тег blocktrans, значит это имя можно переводить с помощью механизма интернационализации. Сначала я пытался найти что либо в корне с дистрибом django (/conf/locale), затем запускал django-admin.py makemessages -l ru в директории с проектом, но ничего небыло создано. Затем нагуглил довольно интересный «способ» — http://grx.no/kb/2010/03/04/translation-of-django-apps/ но и он не сработал… я наверное не совсем понимаю всего механизма действия… В общем, буду очень благодарен за помощь. Возможно ли это сделать без «хаков» или нет? И если возможно, то что я делаю не так? 2. pkoltru 01.10.2010 0 ↑ 0 ↓ {% for app in app_list %} {% blocktrans with app.name as name %}{{ name }}{% endblocktrans %} {% endfor %}{% endblock %} # my_project/__init__.py from django.utils.translation import ugettext_lazy as _ _(u'auth') _(u'configuration') _(u'sites') Насколько понял Я, последнее они делают ...чтобы в файлах .po оказались нужные строки перевода, иначе как система перевода определить что там окажется в шаблоне при генерации страницы со списком приложений. P.s как альтернатива консольной системе генерации файлов *.po программа PoEdit 3. Gregory Konin 01.10.2010 0 ↑ 0 ↓ Django ругается на первую же строку в init.py, поэтому после генерации po файлов мне приходилось очищать этот файл. И тем не менее, имена приложений остались не переведенными. Хотя я и заполнил перевод а потом скомпилировал (выполнил django-admin.py compilemessage) 4. Михаил Коробов 01.10.2010 0 ↑ 0 ↓ Если нужно настраивать заглавную страницу админки, то поставьте django-admin-tools и не мучайте себя. 5. user1 01.10.2010 0 ↑ 0 ↓ Я тоже с этой темой парился. Ставить для этого внешний модуль для глобального изменения админки не хотелось, вроде и так нормально, в итоге ничего не придумал. кроме как JavaScript поверх наложить, который изменяет. Но это мне тоже не нравится особо. Поэтому если кто-то знает способ без установки дополнений к админки и js, то я тоже хотел бы его узнать. Поделитесь. 6. Михаил Коробов 01.10.2010 0 ↑ 0 ↓ c js - вполне хорошее решение, так-то) Ставить для этого внешний модуль для глобального изменения админки не хотелось, вроде и так нормально django-admin-tools тем и хорош, что только главную страницу меняет, а остальное не трогает. Остается та же админка, с теми же стилями, логикой и тд. Меняется внешний вид заглавной страницы и становится просто ее настраивать (добавлять-убирать-группировать любые блоки, втч свои), вот и все. Стандартная заглавная страница в любом случае становится неюзабельной очень быстро, даже если названия приложений переведете. 7. admin 01.10.2010 0 ↑ 0 ↓ Django ругается на первую же строку в init.py, мне кажется, что my_project/__init__.py подгружается интерпретатором до того, как будет проинициализирован инстанс django. поэтому как раз сюда нельзя помещать djagno-зависимый код. поместите код в любой другой файл, который подцепляется после загрузки settings (я обычно подгружаю манкипатчи через urls.py проекта). либо - внутрь какого-нибудь приложения (admins.py будет хорошим кандидатом). 8. Gregory Konin 01.10.2010 0 ↑ 0 ↓ В литературе четко написано зачем нужен этот файл ;-) Но дело не в этом. Я просто прочитав кучу американских топиков так и не понял однозначно, «не-через-жопу» возможно замутить этот перевод или нет? 9. Михаил Коробов 01.10.2010 0 ↑ 0 ↓ Нет. http://code.djangoproject.com/ticket/3591 . Официальная позиция была - перекрывайте шаблон заглавной страницы и делайте с ним тогда, что хотите. django-admin-tools, собственно говоря, этим и занимается. 10. Gregory Konin 01.10.2010 0 ↑ 0 ↓ Михаил, а как же хлебные крошки и страница самого приложения? 11. Михаил Коробов 01.10.2010 0 ↑ 0 ↓ Хлебные крошки остаются теми же, что и в стандартной админке. Страница самого приложения настраивается точно так же, как заглавная страница (хотя это не очень хорошо документировано). По умолчанию она содержит ту же информацию, что и стандартная, только с другим внешним видом. В любом случае использовать ее приходится редко, т.к. группировку схожих ссылок удобнее сделать блоком прямо на главной странице. Да, еще появляется глобальное меню, в которое можно помещать что угодно. 12. Михаил Коробов 01.10.2010 0 ↑ 0 ↓ Т.е. да, в крошках название останется непереведенным. Другое дело, что может иметь смысл их вообще скрыть через css, т.к. их функционал доступен из глобального меню (и там хорошо настраивается). 13. Codeboy.ru 02.10.2010 1 ↑ 0 ↓ Собственно в последнее время пришел к выводу, что клиент, да и сами разработчики не будут пользоваться встроенной админкой, т.е. мы им не дадим. Проще сделать удобную свою внешнюю одинаковую для не больших проектов, и кастомизировать под крупные. Не так уж много работы тут. Собственно ещё с PHP решил давать пользователю возможность править текст прямо на сайте через JS и AJAX. 14. Михаил Коробов 02.10.2010 1 ↑ 0 ↓ Пришел к почти противоположным выводам) Что нечего писать по 10 раз CRUD и делать под это какие-то шаблоны, что заказчики вполне довольны админкой, за исключением ее стартовой страницы, и если на стартовую страницу разместить понятным для заказчика образом ссылки и какую-то полезную информацию еще, то с админкой можно очень далеко уехать. Сами вьюшки в админке же очень простые - показать форму, сохранить форму, нужно что-то поменять - указываешь свою форму. Если что-то не гнется сразу - делать свою вьюху и вставлять ее или как ссылку на приборной панели, или как ссылку в changelist (где логичнее). Текст - да, удобнее прямо с сайта редактировать (не обязательно через js/ajax, впрочем). 15. Gregory Konin 02.10.2010 1 ↑ 0 ↓ Да ситуация такая, что проект очень низкобюджетный, но халтурить не хочется. Хочется использовать стандартную админку. Спасибо за советы ) Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый. Фильтр [bbcode___] Имя или OpenID ____________________ Предпросмотр Текст _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ Это поле — ловушка для роботов, оставьте его пустым ____________________ (Submit) Добавить