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 ↓
    <!-- 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
  3. Gregory Konin

    01.10.2010

    0 ↑
    0 ↓
    Django ругается на первую же строку в init.py, поэтому после генерации po файлов мне приходилось очищать этот файл. И тем не менее, имена приложений остались не переведенными. Хотя я и заполнил перевод а потом скомпилировал (выполнил django-admin.py compilemessage)
  4. Если нужно настраивать заглавную страницу админки, то поставьте django-admin-tools и не мучайте себя.

  5. user1

    01.10.2010

    0 ↑
    0 ↓
    Я тоже с этой темой парился.
    Ставить для этого внешний модуль для глобального изменения админки не хотелось, вроде и так нормально, в итоге ничего не придумал. кроме как JavaScript поверх наложить, который изменяет.
    Но это мне тоже не нравится особо.

    Поэтому если кто-то знает способ без установки дополнений к админки и js, то я тоже хотел бы его узнать. Поделитесь.
  6. 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. Нет. http://code.djangoproject.com/ticket/3591 . Официальная позиция была - перекрывайте шаблон заглавной страницы и делайте с ним тогда, что хотите. django-admin-tools, собственно говоря, этим и занимается.

  10. Gregory Konin

    01.10.2010

    0 ↑
    0 ↓
    Михаил, а как же хлебные крошки и страница самого приложения?
  11. Хлебные крошки остаются теми же, что и в стандартной админке.

    Страница самого приложения настраивается точно так же, как заглавная страница (хотя это не очень хорошо документировано). По умолчанию она содержит ту же информацию, что и стандартная, только с другим внешним видом. В любом случае использовать ее приходится редко, т.к. группировку схожих ссылок удобнее сделать блоком прямо на главной странице.

    Да, еще появляется глобальное меню, в которое можно помещать что угодно.

  12. Т.е. да, в крошках название останется непереведенным. Другое дело, что может иметь смысл их вообще скрыть через css, т.к. их функционал доступен из глобального меню (и там хорошо настраивается).

  13. Codeboy.ru

    02.10.2010

    1 ↑
    0 ↓
    Собственно в последнее время пришел к выводу, что клиент, да и сами разработчики не будут пользоваться встроенной админкой, т.е. мы им не дадим. Проще сделать удобную свою внешнюю одинаковую для не больших проектов, и кастомизировать под крупные. Не так уж много работы тут.
    Собственно ещё с PHP решил давать пользователю возможность править текст прямо на сайте через JS и AJAX.
  14. Пришел к почти противоположным выводам) Что нечего писать по 10 раз CRUD и делать под это какие-то шаблоны, что заказчики вполне довольны админкой, за исключением ее стартовой страницы, и если на стартовую страницу разместить понятным для заказчика образом ссылки и какую-то полезную информацию еще, то с админкой можно очень далеко уехать. Сами вьюшки в админке же очень простые - показать форму, сохранить форму, нужно что-то поменять - указываешь свою форму. Если что-то не гнется сразу - делать свою вьюху и вставлять ее или как ссылку на приборной панели, или как ссылку в changelist (где логичнее). Текст - да, удобнее прямо с сайта редактировать (не обязательно через js/ajax, впрочем).

  15. Gregory Konin

    02.10.2010

    1 ↑
    0 ↓
    Да ситуация такая, что проект очень низкобюджетный, но халтурить не хочется. Хочется использовать стандартную админку. Спасибо за советы )

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.