Murat D. Kadirov - debian-russian@lists.debian.org @ Wed, 31 Dec 2008
00:43:17 +0500:
Хорошо известный кроссплатформенный способ добавить в программу
поддержку юникода - использовать библиотеку libicu. С ней все
работает, но... весит это счастье более 10 мегабайт.
apt-cache show говорит, что 6 (впрочем, тоже немало)
P.S. Собранный с поддержкой русского языка (с помощью libicu) tksqlite
весит 9,1 Мб - и это
упакованный в starpack. Ну, положим, в дебиане libicu можно с собой не
таскать, но как это не
печально, существуют и другие дистрибутивы и платформы.
А сказать, что, дескать, моя программа хочет libicu, и тогда в нужный
дистриб
её положат, можно попробовать? Если твоя софтина окажется нужной и полезной,
вряд ли пакетирование libicu станет главной проблемой для дистрибутивов.
З.Ы.
$ apt-cache rdepends libicu38 | sort | uniq | wc -l
38
Не так уж и мало.
MDK Ничтожно мало. И в общем случае не согласен с предлагаемым тобой
MDK решением проблемы путём: ах у вас этого нету, ну дак это ваши же
MDK проблемы. Любой мэйнтейнер (да собственно и внимательный юзер) сильно
MDK скептически относится к тому, что необходимая утиль весит 200-300 кб, но
MDK зато тянет за собой 10 метров зависимости (одной!), которые в сущности
прямой
MDK функциональности в программу не добавляет.
Программистский анекдот времен моей молодости:
- Но Ваша программа работает в 10 раз медленнее моей!
- Да, но зато она работает ПРАВИЛЬНО.
Насколько я знаю, что такое юникод, 10 мегабайт для ПРАВИЛЬНОЙ работы с
ним вполне может оказаться необходимым минимумом. Другое дело, если от
поддержки юникода нужно какое-то небольшое подмножество...
Сам, лично, на N800 ходил по граблям. В базу sqlite из питона пишется
слово, содержащее букву й. Если кто не в курсе (вспоминая тут
дискуссию про ё), есть такая буква в русском языке. Читается оттуда
обратно почему-то композитный символ и с акцентом. Хрен знает,
почему, но право имеет - нормализуются они в одно и то же (кажется, в
этот композитный и нормализуются, потому, наверное, так и возвращает).
А мне сравнить надо. Так вот, в итоге, чтобы сравнить, приходится
прогонять оба значения через функцию нормализации, и потом (сравнение
нужно case-insensitive) через уникодный то ли tolower, то ли toupper, не
помню. Это еще мне там точность сортировки пофигу и греческим я не
пользуюсь, и потому оно там справляется без указания языка (а язык там,
надо сказать, смешанный русский с английским, причем нередко в пределах
одной записи)...
Ну а в процессе ходьбы по оным граблям почитал некоторые документы на
тему, в частности, преобразования lower-upper-title case в уникоде... В
общем, желающие могут.
--
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: r...@jabber.ran.pp.ru
Штатными средствами среды я могу пририсовать документу оглавление,
обсуждение, усы и бороду
(c) Бо Беркгаут
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org