Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 

 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




Что значит "программа правильно написана" ?

Во-первых, программа нигде не привязана к 7-ми битным ASCII символам, и пользуется стандатрными библиотечными функциями isalpha(), isupper(), и tolower()/toupper() не полагаясь, что Upper=Lower+0x20 и т.д. Как правило, национальные алфавиты расположены начиная с кода 128, поэтому для совместимости со старыми реализациями locale можно объявить все символы как unsigned char, например ключом компилятора (для gcc -funsigned-char) или явно.

Во-вторых, программа явно начинается с вызова setlocale(LC_ALL,"") (такая форма вызова означает, что всем категориям локализации сразу будет присвоено значение переменной окружения LANG), или подобного кода.


*ПРИМЕЧАHИЕ: Во FreeBSD можно вылечить некоторые программы путем
* задания строки окружения: export ENABLE_STARTUP_LOCALE=""
* тогда setlocale(LC_ALL,"") будет вызываться автоматически при старте
* программ (без их перекомпиляции).
* В Linux libc такого нет (пока?) и по умолчанию включено "C".
* Однако можно пересобрать Linux libc, указав другое значение
* по умолчанию.

Для полной поддержки NLS весь вывод сообщений пользователю должен происходить c использованием функций NLS и должен быть создан каталог сообщений (message catalog) для данной программы (и данного языка).



With any suggestions or questions please feel free to contact us