`Gtk-WARNING **: языковой стандарт не поддерживается библиотекой C. `при запуске приложений из командной строки

31

Я не получил ответа, но я ничего не делал, и это интересная тема. В Ubuntu 12.04 при открытии файла в gedit или при работе с командной строкой в ​​dpkg я получаю сообщение об ошибке «языковой стандарт не поддерживается, возвращаясь к стандартным библиотекам« C »», и показанному ниже:

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
Diogenes Lantern
источник
Ваши локали, кажется, сломаны. Как вы установили Ubuntu точно? Кажется, вы установили его таким образом, что локали не настроены должным образом. Просьба представить более подробную информацию о том , что в вашем вопросе (редактировать его). И нет, Cлокаль - это то, к чему она возвращается, если нет доступной локализации. Это из языка программирования Си.
gertvdijk
Спасибо за ответ. Моя установка Ubuntu - это папка внутри директории Windows. Я знаю, почему я установил его там. Я ленился при установке и позволил демону Linux сделать эту часть для меня.
Фонарь Диогена

Ответы:

30

Сначала убедитесь, что язык вашей библиотеки установлен

sudo apt-get install language-pack-en-base,

например.

Затем, как суперпользователь, сократите работу, позволив Ubuntu автоматически настроить их:

sudo dpkg-reconfigure locales

Проверьте ваши настройки, если они правильные, то хорошо. Но если у вас пустые настройки LANG=или LANGUAGE=, запустите это в командной строке:

locale -a

Который генерирует локали, установленные и доступные для вас.

Выберите локаль из сгенерированного вывода, которая соответствует вашей ситуации, и экспортируйте этот параметр, чтобы заменить ваши локали, например:

export LC_ALL="en.utf-8"

Для ручной установки используйте ручную exportнастройку локали, которая будет вручную устанавливать пользовательские локали, сначала запустите настройку, как описано выше.

Затем, скажем, вы хотите установить "en_us-8"язык, но вам нужна другая локаль для NUMERICи TIME, вы можете использовать "en_NZ.utf-8"(помните: они чувствительны к регистру) или LANGUAGE="en_GB.utf-8"и NUMERIC="en.dk.ISO-8859-15". Путешествуя в Новую Зеландию, я мог бы изменить язык LANGUAGE="en.NZ". Для Германии мне просто нужно установить для него locales pkg и ввести в терминал, как в примерах ниже:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= может остаться пустым.

Diogenes Lantern
источник
3

первый:

sudo apt-get purge locales

тогда:

sudo aptitude install locales

и знаменитый:

sudo dpkg-reconfigure locales

Это освобождает систему локалей, затем переустанавливает локали и понижает libc6 с 2.19 до 2.13, что является проблемой. Затем снова настраивает локали.

оборота ткжеф
источник
1
Это очень очень вводит в заблуждение. Никогда не используйте этот ответ, первая команда сбросит много программного обеспечения вместе со своими данными, например postgresql.
Эрик Ван
@EricWang, вы правы, что оно может отбросить другое программное обеспечение, и это произойдет, потому что это программное обеспечение полагается на библиотеку libc6 2.19 (или что-то более высокое). Очень часто это программное обеспечение обновляло вашу систему и переводило ее в такое состояние, которое не поддерживалось библиотекой C. В любом случае, вы должны проверить, что удаляется, прежде чем подтвердить.
tkjef
3

Это происходило со мной несколько раз, на моем mint mate 18, который основан на Ubuntu 16.04, поэтому я хотел бы поделиться найденным решением, если кому-то понадобится.

шаги:

(Эти шаги работают для mint mate, но Ubuntu может иметь похожие конфигурации, не уверен)

  • Откройте «Настройки языка».
  • Установите языки, если они отсутствуют. (Для меня я бы установил китайский и японский языки в дополнение к английскому)
  • Для опции Languageи Regionубедитесь, что язык по умолчанию для них правильный, например, установлен «Английский, США UTF-8»,
  • Перезагрузите компьютер, если внесены какие-либо изменения.
  • Проверьте, нормально ли это.
Eric Wang
источник
0

С языками вы должны удалить язык, который конфликтует с вашей системой, это работало для меня, на Ubunty Kylin 16.04, я установил его на Ubuntu 14.04

Барт
источник
0

это просто сработало для меня, зайдя в gnome-терминал и набрав команду apt --fix locales и перезагрузив ваш linux, и ваше ожидание ошибки терминала закончилось. На этот раз он наверняка будет на вашем мониторе.

Shashank
источник
0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE к вашему LOCALE, и посмотрите UTF-8 или utf8

Dzmitry
источник
0

Мне удалось вызвать это самому при переносе файлов с точками домашнего каталога на новый компьютер, и я некоторое время не мог определить причину из-за поиска файлов, LC_но не смог LOC.

~/.bashrcФайл я скопировал имел следующее:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(Особое значение здесь было из-за предыдущих экспериментов с GNU Guix на старой машине; но релевантным фактом является просто то, что для переменной среды был задан недопустимый путь.)

Это приводило к следующей ошибке при запуске различных программ:

Warning: locale not supported by C library, locale unchanged

И эти ошибки при запуске 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

Удаление (или комментирование) LOCPATHстроки решило мои проблемы.

Phils
источник