Сообщения, отличные от ASCII, выводятся вопросами. В предыдущей версии такого не было. --- --- [<a href="mailto:black@black" target="_new">black@black</a> black]$ rpm -q fortune-mod fortune-mod-1.0-ipl33mdk [<a href="mailto:black@black" target="_new">black@black</a> black]$ fortune --version fortune: invalid option -- - fortune-mod version 9708 fortune [-afilosw] [-m pattern] [-n number] [ [#%] file/directory/all] [<a href="mailto:black@black" target="_new">black@black</a> black]$ fortune ~/origin ... ? ????? ?? ?? ???? ?????????? [<a href="mailto:black@black" target="_new">black@black</a> black]$ LC_ALL=\"ru_RU.KOI8-R\" fortune ~/origin ... ?? ????, ????, ????????? [<a href="mailto:black@black" target="_new">black@black</a> black]$ LC_ALL=C fortune ~/origin ... ???? ? ???????? - ??????? ?????.
Ну это как бы не баг, а фича. fortune-mod > 1.0-ipl33mdk думает что все файлы данных в кодировке UTF-8 и перед выводом на экран перекодирует в текущий CODESET. Но наверно правильней будет сделать это конфигурабельным...
Надо подумать, как решить эту проблему красиво.
Не вижу проблемы. Файлы должны быть в UTF-8 и точка. Править тут в fortune нечего.
А проблема не в этом. Кроме кодировки есть ещё такое понятия как "язык". Мне например будет немного неинтересно читать фортунки на украинском или белорусском языке, потому как я их просто не знаю. Должно быть что-то вроде: /usr/share/games/fortune/ /usr/share/games/fortune/off/ /usr/share/games/fortune/ru/ /usr/share/games/fortune/ru/off/ /usr/share/games/fortune/uk/ /usr/share/games/fortune/uk/off/ и так далее. И выбирать нужные каталоги в зависимости от LC_MESSAGES или опции специального вида. Как портабельно вышеплять язык из локали я не знаю, SUSv3 никак не ограничивает формат имени.
Как это? Язык всегда до первого подчёркивания (или конца строки) ru в ru_RU Идея замечательная - внести зависимость от языка. Но если я всё же хочу читать и белорусские тоже? И как минимум всё равно надо отделить данные от программы и не таскать английский за собой. Потому что планы - ещё совсем не скоро.
(In reply to comment #6) > Как это? Язык всегда до первого подчёркивания (или конца строки) > ru в ru_RU А нету по стандарту никакого подчёркивания. Название локали может быть произвольным, главное чтобы libc это поддерживала. Наверно таки сделаю по первым двум буквам. > Идея замечательная - внести зависимость от языка. Но если я всё же хочу читать > и белорусские тоже? $LANGUAGE или ещё какая пересенная специального вида типа $FORTUNE_LANG или опция специального вида.
(In reply to comment #7) > А нету по стандарту никакого подчёркивания. Название локали может быть > произвольным, главное чтобы libc это поддерживала. Наверно таки сделаю по > первым двум буквам. Да, тем более что других вариантов мне, например, не встречалось. По поводу локали я придерживаюсь такого формата: * locale in form language[_territory][.charset][@modifier} * where language is an ISO 639 language code, territory * is an ISO 3166 country code, and codeset is a character set or encoding * identifier like ISO-8859-1 or UTF-8 > $LANGUAGE или ещё какая пересенная специального вида типа $FORTUNE_LANG или Мне кажется, LANGUAGE вполне подойдёт для начала.
Как дела с фортунками по языкам? :)
Никак. В этой помойке копаться просто противно.