LINUX.ORG.RU

[hg, gettext] Ширина строки gettext


0

1

В теме про Mercurial 1.9 я уже писал, что сделал его русский перевод. Он пока не полный, конечно, а самое главное, что очень корявый. Но я надеюсь поправить это к 1.9.1 или 1.9.2 и призываю желающих поучаствовать на bitbucket или писать мне на мыло.

А у вас я хотел спросить, почему gettext рисует переведенный текст с шириной строки, похоже равной 80 байтам, а не символам, т.е. русский текст получается вдвое короче английского, как на этом скриншоте. Кто-нибудь сталкивался с подобным?

(Скрин из бубунты 10.04, mg писал, что то же самое у него в Debian testing)


gettext не занимается отрисовкой текста. Он просто смотрит в словаре соответствующий перевод и возвращает его в программу как строку.

kim-roader ★★ ()
Ответ на: комментарий от kim-roader

да я понимаю, но возможно он вставляет переводы строк по какому-нибудь своему параметру или еще как-нибудь

gaga ()
Ответ на: комментарий от gaga

gettext этим не занимается. Он просто смотрит в словаре по ключу и возвращает значение. Ключём работает строка на английским, а значением написанная переводчиком строка в .po файле. Косяки в коде hg. Конкретно надо смотреть в minirst.formatblock, util.wrap, а дальше поток выполнения уже уходит в стандартные либы.

Вот наглядное объяснение в чём там косяк с использованием стандартного textwrap:

$ LANG=en_US.UTF-8 python
Python 2.6.7 (r267:88850, Jun 13 2011, 22:03:32) 
[GCC 4.6.1 20110608 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import textwrap
>>> print textwrap.fill("test " * 20, 78)
test test test test test test test test test test test test test test test
test test test test test
>>> print textwrap.fill("тест " * 20, 78)
тест тест тест тест тест тест тест тест
тест тест тест тест тест тест тест тест
тест тест тест тест
>>> print textwrap.fill(u"тест " * 20, 78)
тест тест тест тест тест тест тест тест тест тест тест тест тест тест тест
тест тест тест тест тест
>>> exit()

kim-roader ★★ ()

Потому что Мэтт МакКал не осилил юникод.

vasilenko ★★ ()
Ответ на: комментарий от kim-roader

ок, спасибо, я поковыряю потом. жаль только, что нихера не знаю пистон. но на вид не ракетная наука

gaga ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.