[devel] Локализация и использование функции catgets
Alexander Bokovoy
=?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Ср Фев 20 18:44:24 MSK 2002
On Wed, Feb 20, 2002 at 06:10:36PM +0300, Sergey Vlasov wrote:
> > так что лучше ??? или правильнее использовать с точки зрания
> > кросплатформенности?
>
> Кстати, у них тут
> (http://www.openldap.org/lists/openldap-devel/200201/msg00120.html) еще
> одно требование: сервер должен сам отдавать сообщения на запрошенном языке
> в UTF-8. Похоже, gettext при всех своих преимуществах тут пролетает по
> следущей причине: он использует язык, установленный в LC_MESSAGES.
> Динамически переключать его неудобно, к тому же сервер, насколько я понял,
> на pthreads - тут вообще труба, т.к. setlocale действует глобально для
> всего процесса.
>
> Т.е. gettext хорошо подходит для тех ситуаций, где не нужно переключать
> язык динамически, но при их подходе к локализации сервера он не годится.
Неверно. Дело в том, что gettext прекрасно справляется и с этой задачей
посредством использования функции bind_textdomain_codeset(const char *
DOMAINNAME, const char* CODESET).
> что wchar_t == Unicode, что в общем случае неверно; кроме того, у
> wcstombs/mbstowcs есть проблемы с кодировками, зависящими от состояния -
> т.е. сам интерфейс тоже кривоват). С более новыми и правильными функциями
> опять та же проблема - они не везде есть. GNU libiconv (этот точно под
> LGPL) им опять, вероятно, не понравится?
Если не понравится, то сами себе они злобные буратины. Других настолько же
общих и портабельных решений нет.
--
/ Alexander Bokovoy
Software architect and analyst // SaM-Solutions Ltd.
---
Refreshed by a brief blackout, I got to my feet and went next door.
-- Martin Amis, _Money_
Подробная информация о списке рассылки Devel