Найти - Пользователи
Полная версия: Мультиязычность на django(ошибка при makemessages+urls)
Начало » Django » Мультиязычность на django(ошибка при makemessages+urls)
1
sonic911
Всем привет

Занимаюсь адаптацией веб-сайта под мультиязычность.
Настроил 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
Проблема решена. На Mac OS нужно правильно настроить $PATH после установки(пример можно найти на stackoverflow). В моем случае джанго просто не мог найти iconv() поэтому и возникала ошибка, а из-за русской раскладки ошибка закодирована в unicode. + Если кто-то натолкнется на похожую структуру web-приложения сразу используйте render(request, ‘***.html’) - не будет ошибки с csrf_token( не знаю почему она возникает при смене языка)
FishHook
sonic911
На Mac OS нужно правильно настроить $PATH
PATH до чего? Зачем это, а доке же написано, что команда makemessages должная выполняться внутри каталога джанго-приложения.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB