Описание тега balance
Я использую Арч Линукс, и я следовал инструкциям на Вики О мой язык.
Почти каждая программа, которая запускается жалуется на язык, даже язык
. Это выглядит так:
% язык
язык: не удается задать значение lc_all для локали по умолчанию: нет такого файла или каталога
Ланг=
Языкового=язык.В UTF-8
Lc_numeric языкового=ан-Нас
У=Ан-Нас
КАТЕГОРИИ LC_COLLATE="СТАНДАРТЕ POSIX"
LC_MONETARY=ан-Нас
ДЛЯ КАТЕГОРИИ LC_MESSAGES="POSIX И"
LC_PAPER="СТАНДАРТЕ POSIX"
LC_NAME="СТАНДАРТЕ POSIX"
LC_ADDRESS="СТАНДАРТЕ POSIX"
LC_TELEPHONE="СТАНДАРТЕ POSIX"
LC_MEASUREMENT=ан-Нас
LC_IDENTIFICATION="СТАНДАРТЕ POSIX"
Значение lc_all=
или:
% на Perl
на Perl: предупреждение: установка локали не удалось.
на Perl: предупреждение: пожалуйста, убедитесь, что настройки локали:
Язык = (отключенное),
Lc_all = (отключенное),
У = "Ан-Нас",
Lc_numeric языкового = "ан-Нас",
LC_MONETARY = "ан-Нас",
LC_MEASUREMENT = "ан-Нас",
Языкового = "язык.В UTF-8",
Ланг = (отменить)
поддерживаются и установленных на вашей системе.
на Perl: предупреждение: возврат к стандартной локали ("с")
Что-то немного смущает то, что файл/etc/язык.ген
имеет несколько примеров; все в UTF-8 строки "что-то.В UTF-8", и работает язык-поколения
показывает язык.В UTF-8... сделано
в то время как он работает, но язык -такой
, который должен показать список доступных языков, показывает язык.в utf8
. Я пробовал различные комбинации обоих форматов в файл/etc/локаль-быт
и язык=
в /етц/РЦ.конф
, но ничего не исправили проблему.
Дополнительную информацию:
% локализации -
С
В POSIX
язык
язык.iso88591
язык.в utf8
Брюс Эдигер предложение установки Ланг=С
и значение lc_all=язык.UTF-8 не
работал (на самом деле, устанавливая значение lc_all
зафиксировал его, установив Лан
не важно), но я бы хотел знать, что происходит. По данным Сус, значение lc_all будет переопределить все остальные LC_* переменные, если он задан и не равен null. В моей системе он установлен, но он имеет значение null, так что это должно быть проигнорировано, и другие ценности должны использоваться вместо этого. Это не то, что происходит, кажется, что приложения вызов функции setlocale
с значение lc_all
, получая нуль
обратно, и выдаст ошибку, даже когда другие вызовы функции setlocale
возвращает хорошую строку.
Вот на вершине ltrace
из локали
(прокрутите вправо, чтобы увидеть функции возвращают значения)
% ltrace язык
(0, 0, 0, -1, 0x7f5c1ae44510) = 0x7f5c1ae47140
__файл libc_начать_главный(0x401d70, 1, 0x7fff7c8cfbf8, 0x404610, 0x4046a0 <недоделанный ...>
функции setlocale(0, "") = "язык.В UTF-8"
функции setlocale(5, "") = "язык.В UTF-8"
вызов домене("библиотеки libc") = "библиотеку libc"
argp_parse(0x607280, 1, 0x7fff7c8cfbf8, 0, 0x7fff7c8cfad4) = 0
в разделе setlocale(6, "") = нуль
dcgettext(0, 0x405aa8, 5, 0, 0) = 0x405aa8
Ошибка(0, 2, 0x405aa8, 1, 0locale: не удается задать значение lc_all для локали по умолчанию: нет такого файла или каталога)