[devel] Переводы %description в spec

" Vyacheslav Dikonov " =?iso-8859-1?q?sdiconov_=CE=C1_mail=2Eru?=
Сб Фев 21 13:10:46 MSK 2004


В в очередной раз запустил synaptic и увидел, что русские описания некоторых пакетов показываются правильно, но большинство превращается в бНОПНЮ. Моя локаль - ru_RU.1251. Вот списки некоторых проблемных пакетов с указанием способа объявления русского перевода summary и description:    

----------------------------------------------------------------
Нечитабельны в локали 1251

ru - acidrip
ru - acpi
ru_RU.KOI8-R - agrep # есть польский и украинский
ru_RU.KOI8-R - alsaplayer
ru_RU.KOI8-R - amanda*
ru_RU.KOI8-R - apache*
ru_RU.KOI8-R - apg*
ru_RU.KOI8-R - aptitude
ru_RU.KOI8-R - AqGuard
ru_RU.KOI8-R - ardour
ru_RU.KOI8-R - arpwatch
aserver
ru_RU.KOI8-R - aterm
ru_RU.KOI8-R - auth-ldap
ru_RU.KOI8-R - autotrace
ru_RU.KOI8-R - avidemux2
ru_RU.KOI8-R - aviinfo
ru_RU.KOI8-R - awemidi
ru_RU.KOI8-R - awstats
...
------------------------------------------------------------------
Читабельны в локали 1251

ru_RU.UTF8 - abook
ru_RU.UTF8 - AlephOne*
ru_RU.CP1251 - apt*
ru_RU.UTF8 - arj
ru_RU.UTF8 - *-fonts-ttf
ru_RU.UTF8 - aspell-ru-lebedev*
ru_RU.CP1251 - audacity
ru_RU.UTF8 - axiom
ru_RU.UTF8 - bchunk
...
------------------------------------------------------------------

Наблюдения:

1) Все описания хранятся apt-ом в той кодировке, что использовалась в spec.
2) Описания в UTF-8 правильно читаются в любой локали как при выполнении консольных команд rpm и apt, так и в synaptic.
3) Описания KOI8 в локали 1251 видны как бНОПНЯ.
4) Редкие описания в 1251 я видел правильно потому, что они совпадали с локалью и используемым шрифтом.
5) Описания без указания кодировки ("-l ru") читаются только при совпадении кодировки с локалью



Выводы:
UTF-8 преобразуется в текущую 8-битную локаль, а KOI8 и 1251 - нет.

Предложение:
Перевести все spec на UTF-8 и запретить использование 8-битных кодировок в полях summary и description. Внести проверку в sisyphus_check. 

В этом случае оисания будут нормально читаться у всех. Это также позволит хранить в spec многоязычный текст без боязни случайно его испортить. Преобразование всех spec можно сделать автоматически, например с помощью sed и iconv.




Подробная информация о списке рассылки Devel