Есть бешенно желание руссифицировать админку django до конца... Упёрся
в локализацию имён приложений. Погуглил. Нашёл кучу костылей:
http://habrahabr.ru/blogs/django/46087/
http://djangosnippets.org/snippets/1882/
кто-т писал ещё что использует django-admin-tools и там допиливает
руссификацию...
Сам я использую для админки django-grappelli (http://code.google.com/p/
django-grappelli/)
Какие способы Вы используете для того чтобы название приложения было
написано по русски?
Буду рад любым (адекватным) предложениям ;)
Заранее спасибо!
Суть его в app_label.
Предположим что у нас есть модель Game.
class Game(models.Model):
...
class Meta:
db_table='casino_games'
app_label='games'
verbose_name = u'игра'
verbose_name_plural = u'Список игр'
...
В данном случае создастся таблица casino_games и игра попадет в
админку в раздел Games
Стоит только переименовать app_label='games' в app_label=u'игры', как
в админке модель перенесется в раздел "Игры", но таблица не будет
создана. Просто 'manage.py syncdb' поведет себя так, как будто этой
модели не существует. Я решил проблему следующим путем - сначала все
app_name написал латиницей, сделал 'manage.py syncdb', а потом все
переименовал на русский.
Кстати, не пробовал еще сделать через gettext. Возможно прокатит такой
вариант:
from django.utils.translation import ugettext as _
...
app_label=_('games')
...
А потом все перевести.
И еще - я хотел поправить атрибут прямо перед регистрацией в админке:
User._meta.app_label=u'юзвери'
admin.site.register(User)
Но при попытке открыть или создать конкретного юзера в админке, я
вывалился в AttributeError:
'NoneType' object has no attribute '_meta',
хотя с первого взгляда все работало как нужно.
Я думаю если пошаманить немного, то последний вариант можно сделать
вполне работоспособным.
On 21 июн, 14:00, ivankin <lukyanets.i...@gmail.com> wrote:
> Доброго времени суток!
>
> Есть бешенно желание руссифицировать админку django до конца... Упёрся
> в локализацию имён приложений. Погуглил. Нашёл кучу костылей:
>
> http://habrahabr.ru/blogs/django/46087/http://djangosnippets.org/snippets/1882/
Следующая схема:
> from django.utils.translation import ugettext as _
> ...
> app_label=_('games')
работает, но к сожалению меняется и url приложения в админке...
поэтому прибегнул к Вашему 1му варианту... он работает как часы)))
спасибо!
> >http://habrahabr.ru/blogs/django/46087/http://djangosnippets.org/snip...
Request Method: GET
Request URL: http://test.local/admin/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F/audioblog/
Django Version: 1.2.1
Exception Type: UnicodeEncodeError
Exception Value:
('ascii', u'/var/www/test/templates/admin/\u0413\u043b
\u0430\u0432\u043d\u0430\u044f/audioblog/change_list.html', 42, 49,
'ordinal not in range(128)')
Есть ли способ это побороть?
On 22 июн, 00:39, spacenergy <spacene...@gmail.com> wrote:
> >http://habrahabr.ru/blogs/django/46087/http://djangosnippets.org/snip...
export LANG="ru_RU.UTF-8"
On 12 июл, 18:57, ivankin <lukyanets.i...@gmail.com> wrote:
> Кстати... выплыла проблемка...
> Способ с app_label=u'название приложения' работает только для
> локальной отладки ... т.е. закинул проект сейчас на свой сервак для
> теста и получил следуюшее:
>
> Request Method: GET
> Request URL: http://test.local/admin/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F/au...