[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help: не вводятсяpyсские бyквы вNetscape'е 3.Х



Ivan Pascal wrote:

>   Честно говоря, я от Алексея примерно такого ответы и ожидал.
>   И то, что этот ответ будет - тоже.
>   :-)))
>
> > Простите, но это полная ерунда. Типичный грубый хак, коих так много у нас и
> > от которых бледнеют разработчки по всему миру, о чем я как-то уже писал.
>
>   Ну почему ?!!!! бы благородному дону не использовать этот хак, если
> он решает проблему (и достаточно успешно)?

Если он ее решает -- его личное дело. Проблема хаков в том, что они плодятся и
размножаются, делая принципиально невозможной какую-либо поддержку системы. Если
бы Вы только могли представить, какое количество писем приходит ко мне от
пользователей, которые изуродовали свои системы по рекомендациям лучших юниксоидов
exUSSR! И ведь не найдешь уже потом гадость, так как зарыто глубоко,
распростраяется бинарным путем, да еще одна на другой сидит и третьей погоняет.
Это то, что я называю сисадминством. Сисадмину нужно, чтобы работало у него и
сейчас. И это верно. Программисту же нужно чтобы работало в стандартных системах,
а потому он не может пойти на нарушение стандартов. Так все и должно быть. Но,
увы, наступает момент, когда сисадмину (хорошему!) хочется рассказать
общественности о своих достижениях. И вот тут-то все и начинается.

>
>
>   К тому же я и не предлагаю ее пропихивать в официальные дистрибутивы
> (все равно - вряд ли согласятся).

Да уж. Это и плохо. Нельзя делать (на уровне системы, на уровне приложений --
можно с оговорками) ничего, что принципиально нельзя пропихнуть в дистриубутивы.

>
>   Пусть это останется нашей маленькой хитростью.

Конечно, страдать будут другие.

>
>
> > Если
> > вам нужна setlocale(), то вы ее и вставьте, но вовсе не всегда и не всюду это
> > возможно. Кроме того, осталось совсем не так много программ, которые не умеют
> > работать с locale. Не лучше ли заняться ими, а не искать панацею? Я во всех
> > списках рассылки предлагаю взяться за составление перечня недружественных
> > приложений. Однако, когда начинают идти заяки, то выясняется, что в 95%
> > случаях проблема уже решена.
>
>   Что значит - решена?
> В смысле - в "авторских" исходниках тоже?
> (Что там Вагнер писал про Tcl/Tk?
> Где вроде бы и проблема решена и автор "в курсе". И все-равно в новой версии
> все тот же глюк.)

Другой. То есть немного  в другом жанре.

>
>
>   И кстати, кроме "авторского" дистрибутива есть еще и другие.
> Недавно я столкнулся с тем, что в дистрибутиве FreeBSD программка grep хотя
> и GNU, но очень уж "несвежая" (с багами, которых в GNU'шных дистрибутивах
> уже давно нет). Естественно, речь идет о новых дистрибутивах FreeBSD.
>
>   В конце концов, когда все программы (во всех последних дистрибутивах)
> будут доведены до ума, тогда "хак" отомрет сам собой.

Нет!!! Он останется. Посмотрите на Linux Cyrillic HOWTO. Оно уже давно неверно, но
живет и будет жить. Более того, именно к нему отсылают новых юзеров Хаки не
умирают, они живут в сети вечно. Наши собиратели советов не уничтожают ссылки на
них.

>
>
> > К сожалению, западные авторы действительно не всегда (мягко говоря)
> > разбираются в проблемах создания локализованной среды.
>
>   Вот именно.
>   И пакость в том, что если они разбираются, они и setlocale если
> надо поставят и без нее обойдутся, например, разбирая keysym'ы самостоятельно.
>   А если НЕ разбираются, то полагаются на то, что библиотеки сами обеспечат
> все, что нужно.
>   А вот эти библиотеки (пусть даже писаные теми кто разбирается), все равно
> требуют, чтобы автор явно вызвал хотя бы минимальный набор
> "локале-устанавливающих" вызовов.

Но не без разбору. Вызовы вызовам рознь. Если спучтится на уровень шрифтов,
скажем, то там все не так просто (см. gdk, например).

>
>
>   Кстати, вопрос к locale & POSIX гуру -
> Ну какой такой глубокий смысл вложен в то, что автор обязательно должен
> явно вызвать setlocale (даже если он в этом полный чайник)?
>   Почему этого нельзя делать автоматически при старте приложения.
> Заметьте, что:
>  - если в каких-то категориях правильная локаль только мешает
> (numeric, monetary), то можно переменными среды выставить
> каждую категорию отдельно;

О!! одному приложению мешает, другому -- помогает.

>
> - если это требутся только для нескольких приложений - опять же не проблема
> запускать их через скрипт с установкой нужной переменной;

Вот мы и пришли к лечению _конкретных_ приложений_ Из-за чего же сыр-бор? Значит,
панацеи -- нет! А если нет, то давайте лечить каждого, а не всем сразу --
тампончик с йодом.

>
> - если автор такой умный и пользует setlocale с аргументами не "", то
> тоже не проблема - setlocale(...,"") отработает при старте, а потом
> автор "по ходу пьесы" может их поменять на "более подходящие".

То есть Вы хотите, чтобы вместо locale C по умолчанию каждая программа имела
locale системы? Ну-ну. Автор тогда должен долго думать, как ему читать
конфигурационный файл и время. Нет, Вас явно понесло не туда.
И все из за чего? Где у Вас проблемы с locale? Вот у меня их почти не осталось.
Обновляйтесь!

Rgrds, AEN.