Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 30, 2011 13:16:13

AlexNasonov
От:
Зарегистрирован: 2011-11-13
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

gettext, msgfmt.py и utf-8

Я работаю под виндой. Пытаюсь сделать *.mo файл под gettext.
Все скрипты, темплейты и т.д. заточены под utf-8.
Если я создаю *.po файл в utf-8, то при компилляции с msgfmt.py он находит TypeError и SyntaxError в каждой строке.
Единственный вариант как его заставить сработать - сохранить .po обычным Notepad с ASCII.
Тогда при запросе скрипта на перевод:

t = gettext.translation('index','./locale',  languages=['ru'])
_= t.ugettext
t.install()
он выдает UnicodeDecodeError: ‘utf8’ codec can't decode byte 0xcc in position 72: invalid continuation byte

Че делать?



Отредактировано (Ноя. 30, 2011 13:17:57)

Офлайн

#2 Ноя. 30, 2011 13:36:53

AlexNasonov
От:
Зарегистрирован: 2011-11-13
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

gettext, msgfmt.py и utf-8

Вроде как решилась проблема сохранением *.po в utf-8 без BOM.
Правда, теперь русский текст выдается как

\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430
или
\xd1\x81\xd0\xb8\xd1\x81\xd1\x82\xd0\xb5\xd0\xbc\xd0\xbd\xd0\xb0\xd1\x8f \xd0\xbe\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd0\xb0
Вопрос прежний: че делать?



Офлайн

#3 Май 8, 2014 03:58:06

med_phisiker
Зарегистрирован: 2012-04-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

gettext, msgfmt.py и utf-8

Здравствуйте у меня возникала аналогичная проблема решил я ее таким образом
pygettext.py при переводе русских букв в английские не понимает их и выдает .po файл с кучей непонятных символов вместо русских поэтому я скачал программу poedit у нее есть утилита xgettext.exe с ее помощью из исходного python - кода я сгенерировал .pot - файл в котором все отображалось правильно ) Рекомендую использовать xgettext.exe - если хотите я могу выслать вам исходный код и составить подробное описание процесса

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version