Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Мультиязычность на django(ошибка при makemessages+urls) [RSS Feed]

#1 Янв. 7, 2018 16:25:46

sonic911
Зарегистрирован: 2018-01-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность на django(ошибка при makemessages+urls)

Всем привет

Занимаюсь адаптацией веб-сайта под мультиязычность.
Настроил settings.py(путь до locale, languages, i18n и middleware)

При:

 $python manage.py makemessages -l de

Появляется ошибка:
 CommandError: errors happened while running msguniq
msguniq: \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \xabASCII\xbb \u0432 \xabUTF-8\xbb.  msguniq \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 iconv(). \u042d\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0431\u0435\u0437 iconv()

Невозможно преобразовать из ascii в UTF-8, потому что не настроен iconv(). Проблема скорее всего в gettext. Актуально.

Изначально, думал, что проблема в views.py - сейчас сомневаюсь.
GNU gettext установлен(последней версии), библиотеки все есть.

Плюс к ошибке выше есть вопрос по поводу правильности настройки урлов:

 urlpatterns  = i18n_patterns('',
  url(r'^visualizations/', visual, name="visual"),
  url(r'^userprofile/', userprofile, name="profile"),
  url(r'^insights/', insights, name="insights"),
)
На такую реализацию урлов вылетает ошибка:

 TypeError: hasattr(): attribute name must be string
Реализация вида: url(_(r'^visualizations/'), visual, name=“visual”) само собой не помогает.

Вьюшки:

 @login_required
def userprofile(request):
  return render(request, 'userprofile.html', {
    'user': request.user, 
    'form': UserProfileForm(instance=request.user)
  })
@login_required
def insights(request):
  return render_to_response('insights.html', {'client': request.user.client, 'user': request.user})

Отредактировано sonic911 (Янв. 8, 2018 12:10:37)

Офлайн

#2 Янв. 9, 2018 11:09:44

sonic911
Зарегистрирован: 2018-01-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность на django(ошибка при makemessages+urls)

Проблема решена. На Mac OS нужно правильно настроить $PATH после установки(пример можно найти на stackoverflow). В моем случае джанго просто не мог найти iconv() поэтому и возникала ошибка, а из-за русской раскладки ошибка закодирована в unicode. + Если кто-то натолкнется на похожую структуру web-приложения сразу используйте render(request, ‘***.html’) - не будет ошибки с csrf_token( не знаю почему она возникает при смене языка)

Офлайн

#3 Янв. 9, 2018 11:50:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Мультиязычность на django(ошибка при makemessages+urls)

sonic911
На Mac OS нужно правильно настроить $PATH
PATH до чего? Зачем это, а доке же написано, что команда makemessages должная выполняться внутри каталога джанго-приложения.



Отредактировано FishHook (Янв. 9, 2018 11:52:42)

Офлайн

  • Начало
  • » Django
  • » Мультиязычность на django(ошибка при makemessages+urls)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version