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

Re: ru_* locale major update.



>>    Действительно, LC_ALL "сильнее" чем LANG. То есть приоритеты
>>   расставлены так :
>>
>>   1) LC_CATEGORY   -  конкретная категория (если есть)
>>   2) LC_ALL
>>   3) LANG
>>
>на самом деле так:
>
>   LANGUAGE
>   LC_ALL
>   LC_*
>   LANG

 Ну, не надо смешивать мух и котлет :-)

 Это совершенно разные механизмы : есть механизм POSIX locale
и есть механизм messages NLS (Native Language Support).

 POSIX *пытается* определить язык сообщений через категорию
LC_MESSAGES (бывшая LC_RESPONCE) но становится в
этом месте крайне невнятным. Поэтому принято считать, что
в POSIX механизм messages NLS *не определен*.

 Реальных же de-facto механизма messages NLS есть два :
- msgcat (который с .cat)
- gettext  (который с .po)

 Нередко они даже сосуществуют в одной системе.

 Дак вот, msgcat управляется категорией  LC_MESSAGES
а если нету -- 'наследует' переменную LANG.

 А gettext управляется переменной LANGUAGE и НЕ ИМЕЕТ
пересечения с механизмом POSIX locale вообще. И
соответственно, не управляется через LC_MESSAGES и LANG.
Если я не прав, меня поправят. :-)

 Собственно, я писал про это :
http://www.sensi.org/~alec/locale/locale_n.html

>важно, что LC_ALL перебивает LC_*.  если пользователь предполагает,
>что паковальщики не установили LC_ALL (что он вправе предполагать), у
>него может крыша съехать.


 Дело в том, что POSIX умалчивает случай одновременной установки
переменных LC_ALL *и* конкретной LC_CATEGORY в случае
вызова setlocale(LC_ALL,""). Принято считать, что указание конкретной
категории "сильнее" чем LC_ALL, но не факт. Или у меня стандарт
старый.


>   1) Задавать точное ДЛИННОЕ POSIX значение LANG
>
>    Насколько я понял, именно по этому пути идет GNU.
>
>в ГНУ предпочитают ll_CC.  именно поэтому было ru_RU и ru_SU.

 Это уже победили. Пока ru_RU.KOI8-R идет как исключение, но я
думаю украинцы продавят свой uk_UA.KOI8-U а там и пойдет
помаленьку...


>   Вот пусть RedHat c ними и извращается. :-)
>вот это нехорошая мысль.
>

 Да уж. Смалодушничал. :-) Идти, дак до конца ! :-)

--
-=AV=-