Мы пытаемся реализовать i18n в нашем веб-приложении Django 1.7.4. успешно создали .mo и .po файлы, иврит .po файл:Django {% trans%} шаблон тега, дающий DjangoUnicodeDecodeError
#: templates/community/profile.html:109
msgid "Games"
msgstr "משחקים"
Некоторые содержат еврейские символы (не ASCII), я создал небольшой шаблон, который имеет только это:
{% load i18n %}
{% trans "Games" %}
Получение ошибки:
DjangoUnicodeDecodeError at /community/testtrans/
'ascii' codec can't decode byte 0xd7 in position 0: ordinal not in range(128). You passed in <django.utils.functional.__proxy__ object at 0x05A29550> (<class 'django.utils.functional.__proxy__'>)
Я заметил, что сгенерированный файл .po был скомпилирован как ASCII, попробуйте изменить кодировку UTF-8, не Хель р
Эти испытания прошли нормально:
- Дать ивритский текст непосредственно в HTML-файл
- Передача параметра вида
viewParams['trans_games'] = _("Games")
, а затем отображать его на шаблоне с{{trans_games}}
Мы пытались это на двух локальных компьютерах: Windows & Mac
Это прискорбно вы downvoted. После работы с информацией i18n в течение многих лет, я столкнулся с этим сегодня. После того, как я ударил головой о стену, никогда не сталкиваясь с этим, я, наконец, обнаружил это Q + A через Google. Добавление вышеупомянутой строки в метаданные моего файла PO решило проблему для меня (Django 1.9). См. Также метаданные здесь: https://polib.readthedocs.io/en/latest/quickstart.html#creating-po-catalogs-from-scratch –