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

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



Alex Kanavin wrote:

> In article <87ln5iiej7.fsf@toy.pzz.msk.ru> you wrote:
> > ptr>   Hа мой взгляд еще одна ублюдочная идея ("утвержденная"
> > POSIX) ptr>   в том, ptr> что приложение должно обязательно
> > вызвать setlocale(...,"") ptr> с пустым (!)  аргументом, только
> > для того, чтобы libc "всосала" ptr> "текущую локаль" (LANG).
> > Уж если я сделал для себя "среду" задав
>
> > AK> Кстати, а нельзя ли пропихнуть в glibc "принудительную" установку
> > AK> локали? А чтобы сохранить POSIX-совместимость (и чтобы Корчмарь не
> > AK> ругался :), сделать эту фичу включаемой в run-time, скажем,
> > AK> еще через одну переменную среды.
>
> > Кто-то мне говорил, что у динамическая библиотека может иметь функцию,
> > которая автоматически будет вызвана при загрузке библиотеки. Если
> > это правда, то надо сделать .so-шничек, который из этой функции будет
> > звать setlocale(), и грузить его LD_PRELOAD'ом.
>
> Что думаете, господа? Хоть и хак, но лучше, чем во все программы setlocale
> вставлять.
>
> --
> Alexander
>
> Homepage: http://www.musicland.spb.ru/ak/ - temporarily unavailable

Простите, но это полная ерунда. Типичный грубый хак, коих так много у нас и
от которых бледнеют разработчки по всему миру, о чем я как-то уже писал. Если
вам нужна setlocale(), то вы ее и вставьте, но вовсе не всегда и не всюду это
возможно. Кроме того, осталось совсем не так много программ, которые не умеют
работать с locale. Не лучше ли заняться ими, а не искать панацею? Я во всех
списках рассылки предлагаю взяться за составление перечня недружественных
приложений. Однако, когда начинают идти заяки, то выясняется, что в 95%
случаях проблема уже решена.
К сожалению, западные авторы действительно не всегда (мягко говоря)
разбираются в проблемах создания локализованной среды. Часто они получают
советы отсюда, и эти советы портят все окончательно. Вчера я разбирался с
новой licq. Замечу, что qt2 не умеет работать с нормальным gettext, она имеет
(о ужас!) свой формат файлов с переводами, который надо явно указать в
программе. Автору прислали файл ru_RU.KOI8-R.po, который он подключает в том
случае, если значение переменной LANGUAGE (sic!) или, если она не определена,
то LANG есть ru_RU.KOI8-R.  На locale он даже не смотрит. К этому приложена
переписка с русскими пользователями. Надо объяснять дальше?

Rgrds, AEN.