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