Установка locale или как я решал проблему с локалью

У меня возникла проблема, когда некоторые категории локали были не заданы:

# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

побороть данную ошибку можно с помощью тулзы localedef, которая считывает указанные файлы charmap и input, компилирует их в форму, используемую функциями locale(7) в библиотеке C, и помещает их в шесть файлов вывода в каталоге outputpath, давайте попробуем:

localedef -i en_US -f UTF-8 en_US.UTF-8

проверяем:

locale -a
C
C.UTF-8
en_US.utf8
POSIX
ru_RU.utf8

Все должно быть хорошо (но если нет - попробуй поменять локаль вручную), но что же сделала команда localdef:

-i en_US - устанавливаем язык_территория. По мануалу -i inputfile, --inputfile=inputfile указывает на файл определений локали для компиляции. Если inputfile не является абсолютным, то localedef будет искать файлы определения локали в каталоге, определенном переменной окружения I18NPATH и в каталоге по умолчанию.

-f UTF-8 - устанавливаем кодировку символов. По мануалу -f charmapfile, --charmap=charmapfile указывает файл, в котором содержится таблица преобразований символов, используемая файлом ввода. Если файл находится в каталоге по умолчанию для таблиц преобразований символов, то можно не указывать его полное имя.

Каталог по умолчанию можно посмотреть командой localedef --help.

# localedef --help
Usage: localedef [OPTION...] NAME
...

System's directory for character maps : /usr/share/i18n/charmaps
repertoire maps: /usr/share/i18n/repertoiremaps
locale path : /usr/lib/locale:/usr/share/i18n

В моем случае выходит, что файлы хранятся тут:

/usr/share/i18n/locales - каталог в котором хранятся доступные язык_территория

/usr/share/i18n/charmaps - каталог, в котором хранятся кодировки символов

Удачки.

p.s. никакой запуск dpkg-reconfigure locales мне не помог.

Источник: 1


25.02.2015 08:45

Комментарии

с помощью команды dpkg-reconfigure locales можно выбрать все возможные поддерживаемые локали в текущей ОС
Sunshine | 13.09.2015 08:16