Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Локализация и русификация Linux

Как проверить, что локализация заработала ?

    Если у Вас полная реализация POSIX.2 1996, то проще всего воспользоваться утилитой locale.

    Применяя locale можно получить множество полезных сведений :

  • какие возможные значения locale уже инсталлированы и известны системе.
    $ locale -a
  • каковы текущие значения отдельных категорий локализации :
    $ locale
  • каково внутреннее содержание какой-либо категории :
    $ locale LC_CTYPE
    $ locale LC_TIME

    e.t.c.

  • каковы текущие значения ключей (keywords) в какой-либо категории локализации :
    $ locale alpha
    $ locale toupper
    $ locale abmon

    e.t.c.


Также можно воспользоваться такой короткой прогрммкой :

/* testlocl.c : Минимальная проверка работоспособности locale,
                категория LC_CTYPE, "ключевое слово" - alpha */

#include <stdio.h>
#include <locale.h>
#include <ctype.h>

main() {

unsigned char c=0x0f9;

setlocale(LC_ALL, "");

printf("LC_CTYPE\t= %s\n", setlocale(LC_CTYPE, NULL));

printf("isalpha(%c)\t= %s\n", c, isalpha(c) ? "yes" : "no" );

return 0;
}

    Для русской локализации в koi8-r согласно RFC-1489, коду 0x0f9 соответствует русская буква "Ы" :
F9  CYRILLIC CAPITAL LETTER YERI
то есть. :

$ cc -o testlocl testlocl.c
$ ./testlocl
LC_CTYPE = ru_RU.KOI8-R 
isalpha(Ы) = yes 
$

    Правильность работы категории LC_COLLATE можно проверить даже не компилируя тестовых программок, предполагая, что утилиты tr и dd работают в соответствии с POSIX :

$ echo ы | tr '[:lower:]' '[:upper:]'
Ы
$ echo ы | dd conv=ucase
Ы
0+1 records in
0+1 records out
$