-
Снова здравствуйте. Целый вечер я гуглил и пытался как-то повлиять на имена приеложений в админке Django. И все безуспешно.
Насколько я понял, если в админском шаблоне имя приложения «обернуто» в тег blocktrans, значит это имя можно переводить с помощью механизма интернационализации.
Сначала я пытался найти что либо в корне с дистрибом django (/conf/locale), затем запускал
в директории с проектом, но ничего небыло создано. Затем нагуглил довольно интересный «способ» — http://grx.no/kb/2010/03/04/translation-of-django-apps/ но и он не сработал… я наверное не совсем понимаю всего механизма действия… В общем, буду очень благодарен за помощь. Возможно ли это сделать без «хаков» или нет? И если возможно, то что я делаю не так?django-admin.py makemessages -l ru
-
<!-- app_index.html -->
{% for app in app_list %}
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{% endfor %}</div>{% endblock %}# my_project/__init__.py
from django.utils.translation import ugettext_lazy as _
_(u'auth')
_(u'configuration')
_(u'sites')Насколько понял Я, последнее они делают
...чтобы в файлах .po оказались нужные строки перевода, иначе как система перевода определить что там окажется в шаблоне при генерации страницы со списком приложений.
P.s как альтернатива консольной системе генерации файлов *.po программа PoEdit -
Django ругается на первую же строку в init.py, поэтому после генерации po файлов мне приходилось очищать этот файл. И тем не менее, имена приложений остались не переведенными. Хотя я и заполнил перевод а потом скомпилировал (выполнил django-admin.py compilemessage)
-
Если нужно настраивать заглавную страницу админки, то поставьте django-admin-tools и не мучайте себя.
-
Я тоже с этой темой парился.
Ставить для этого внешний модуль для глобального изменения админки не хотелось, вроде и так нормально, в итоге ничего не придумал. кроме как JavaScript поверх наложить, который изменяет.
Но это мне тоже не нравится особо.
Поэтому если кто-то знает способ без установки дополнений к админки и js, то я тоже хотел бы его узнать. Поделитесь. -
c js - вполне хорошее решение, так-то)
Ставить для этого внешний модуль для глобального изменения админки не хотелось, вроде и так нормально
django-admin-tools тем и хорош, что только главную страницу меняет, а остальное не трогает. Остается та же админка, с теми же стилями, логикой и тд. Меняется внешний вид заглавной страницы и становится просто ее настраивать (добавлять-убирать-группировать любые блоки, втч свои), вот и все.
Стандартная заглавная страница в любом случае становится неюзабельной очень быстро, даже если названия приложений переведете.
-
Django ругается на первую же строку в init.py,
мне кажется, что
my_project/__init__.py
подгружается интерпретатором до того, как будет проинициализирован инстанс django. поэтому как раз сюда нельзя помещать djagno-зависимый код. поместите код в любой другой файл, который подцепляется после загрузки settings (я обычно подгружаю манкипатчи через urls.py проекта). либо - внутрь какого-нибудь приложения (admins.py будет хорошим кандидатом). -
В литературе четко написано зачем нужен этот файл ;-) Но дело не в этом. Я просто прочитав кучу американских топиков так и не понял однозначно, «не-через-жопу» возможно замутить этот перевод или нет?
-
Нет. http://code.djangoproject.com/ticket/3591 . Официальная позиция была - перекрывайте шаблон заглавной страницы и делайте с ним тогда, что хотите. django-admin-tools, собственно говоря, этим и занимается.
-
Михаил, а как же хлебные крошки и страница самого приложения?
-
Хлебные крошки остаются теми же, что и в стандартной админке.
Страница самого приложения настраивается точно так же, как заглавная страница (хотя это не очень хорошо документировано). По умолчанию она содержит ту же информацию, что и стандартная, только с другим внешним видом. В любом случае использовать ее приходится редко, т.к. группировку схожих ссылок удобнее сделать блоком прямо на главной странице.
Да, еще появляется глобальное меню, в которое можно помещать что угодно.
-
Т.е. да, в крошках название останется непереведенным. Другое дело, что может иметь смысл их вообще скрыть через css, т.к. их функционал доступен из глобального меню (и там хорошо настраивается).
-
Собственно в последнее время пришел к выводу, что клиент, да и сами разработчики не будут пользоваться встроенной админкой, т.е. мы им не дадим. Проще сделать удобную свою внешнюю одинаковую для не больших проектов, и кастомизировать под крупные. Не так уж много работы тут.
Собственно ещё с PHP решил давать пользователю возможность править текст прямо на сайте через JS и AJAX. -
Пришел к почти противоположным выводам) Что нечего писать по 10 раз CRUD и делать под это какие-то шаблоны, что заказчики вполне довольны админкой, за исключением ее стартовой страницы, и если на стартовую страницу разместить понятным для заказчика образом ссылки и какую-то полезную информацию еще, то с админкой можно очень далеко уехать. Сами вьюшки в админке же очень простые - показать форму, сохранить форму, нужно что-то поменять - указываешь свою форму. Если что-то не гнется сразу - делать свою вьюху и вставлять ее или как ссылку на приборной панели, или как ссылку в changelist (где логичнее). Текст - да, удобнее прямо с сайта редактировать (не обязательно через js/ajax, впрочем).
-
Да ситуация такая, что проект очень низкобюджетный, но халтурить не хочется. Хочется использовать стандартную админку. Спасибо за советы )
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.