[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Help: не вводятсяpyсские бyквы вNetscape'е 3.Х
> бы Вы только могли представить, какое количество писем приходит ко мне от
> пользователей, которые изуродовали свои системы по рекомендациям лучших
> юниксоидов exUSSR!
> И ведь не найдешь уже потом гадость, так как зарыто глубоко,
> распростраяется бинарным путем, да еще одна на другой сидит и третьей
> погоняет.
Мне такие письма тоже приходят (может быть не в таком количестве).
Но я не представляю, что может такого насоветовать "сисадмин", что будет
потом "зарыто глубоко в бинарники".
> Программисту же нужно чтобы работало в стандартных системах,
> а потому он не может пойти на нарушение стандартов. Так все и должно быть.
Ох уж эти стандарты.
Они решают только одну проблему - совместимость, и то не всегда успешно.
И плодят кучу мелких проблемок.
В результате те, кто отступает от них могут оказаться в более выгодном
положении.
(Например, знаю историю, с одной функцией, которую в FreeBSD сделали
"по POSIX" и сразу обрезали часть возможностей. А в Linux пошли своим путем.
Теперь "у вас работает", а на FreeBSD - нет. Совместимость нарушена,
а страдают только "POSIX юзеры".)
> > К тому же я и не предлагаю ее пропихивать в официальные дистрибутивы
> > (все равно - вряд ли согласятся).
>
> Да уж. Это и плохо. Нельзя делать (на уровне системы, на уровне приложений --
> можно с оговорками) ничего, что принципиально нельзя пропихнуть в дистриубутивы.
OK. Тогда надо "пропихнуть" принудительную установку локали в libc или libX11.
> > В конце концов, когда все программы (во всех последних дистрибутивах)
> > будут доведены до ума, тогда "хак" отомрет сам собой.
>
> Нет!!! Он останется. Посмотрите на Linux Cyrillic HOWTO. Оно уже давно неверно, но
> живет и будет жить. Более того, именно к нему отсылают новых юзеров Хаки не
> умирают, они живут в сети вечно. Наши собиратели советов не уничтожают ссылки на
> них.
Вот с чем я полностью согласен - есть проблема "древних советов".
Но, во-первых, с этим тоже надо бороться - работать с "колекционерами", как
и с авторами программ (популярных сборников ссылок и советов не так уж много).
А во-вторых. Есть "безобидные" советы (например - поместить path к русским
шрифтам в начало списка) и "вредные" (выключить xkb, "испортить" locale).
Данный хак - "безобидный".
> > - если это требутся только для нескольких приложений - опять же не проблема
> > запускать их через скрипт с установкой нужной переменной;
>
> Вот мы и пришли к лечению _конкретных_ приложений_ Из-за чего же сыр-бор? Значит,
> панацеи -- нет! А если нет, то давайте лечить каждого, а не всем сразу --
> тампончик с йодом.
Только есть разница - "создать среду" для такого приложения проще, чем
пересобрать его (что вообще не всегда возможно).
И кроме того - если говорить конкретно.
LC_CTYPE по локали вряд ли кому мешает. Примеры есть?
А вот LC_NUMERIC сейчас мешает почти всем.
Так что - особенно "индивидуального" подхода и не требуется.
> > - если автор такой умный и пользует setlocale с аргументами не "", то
> > тоже не проблема - setlocale(...,"") отработает при старте, а потом
> > автор "по ходу пьесы" может их поменять на "более подходящие".
>
> То есть Вы хотите, чтобы вместо locale C по умолчанию каждая программа имела
> locale системы?
Yessss!!! Именно этого и хочу.
Locale C пусть будет "стандартная". И кому ее надо пусть явно вызывают.
А "по умолчанию" - то что пользователь хочет.
> Ну-ну. Автор тогда должен долго думать, как ему читать
> конфигурационный файл и время. Нет, Вас явно понесло не туда.
Хм.. Странный какой-то аргумент.
- Какие проблемы с чтением даты?
- это не дело автора приложения, а соответствующей библиотеки
- если она написала дату по LC_TIME, то и прочитать должна так же
- если программа хранит где-то дату, пусть пишет ее в любом самописном
формате, вывод по locale только для human readable
- если дату написала другая программа, то - ничего не поможет.
Если какой-то японский ftp пишет в dir дату по японски, то у меня никакая
программа не прочитает, будь в ней locale С или ru_RU.KOI8-R.
Это уже не "проблема чтения", а "проблема обмена данными".
- Какие проблемы с чтением конфигурационного файла?
- Если по поводу numeric, то - см. выше про дату.
- А если ему мешает LC_TYPE, то ...
- все "служебные" слова должны быть в portable character set, он от локали
не зависит
- а вот всяческие value ("лейблы", имена файлов, etc.) имеют право быть
в любом виде. И нефиг "парсеру" лазить "внутрь ковычек".
А кроме того, "долго думать" тоже полезно.
Может быть автор додумается, что для решения его проблем (кстати, как много
таких приложений, которым нужно читать "локалезависимые" конфиги и даты?)
нужно использовать явный вызов setlocale(<чего надо>, "C").
Зато потом будет делать это не задумываясь.
> И все из за чего? Где у Вас проблемы с locale? Вот у меня их почти не осталось.
> Обновляйтесь!
Хм... Надеюсь, Вы это не мне. :-)))
У меня проблем с локалью (как и с клавиатурным вводом) нет.
Проблема другого рода. Как только задумываюсь о том, чтобы помочь другим
"не иметь проблем с локалью". Оказывается, что вместо доки
"Как решать проблемы с вводом и выводом русских букв", придется писать
"Как решать проблемы." :-)
--
Ivan U. Pascal | e-mail: pascal@tsu.ru
Administrator of | Tomsk State University
University Network | Tomsk, Russia