Налаштування місцеположення не вірно. Як їх скинути?


43

У мене проблема локалізації.
Послідовність згортання в nautilusінших програмах змінилася.
Коли я запускаю програму GUI, у терміналі з’являються локальні помилки.

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

localeКоманда видає повідомлення про помилку

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

Як було запропоновано у питанні askubuntu , я запустив наступні команди, але змін не було.

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

Я також спробував пропозицію в питанні askubuntu ... також ніяких змін.

    apt-get install --reinstall locales

Я думаю, що це почалося, коли я тимчасово встановив та видалив редактор методів введення мови урду через IBus.. це, безумовно, сталося того ж дня.

Можливо, це пов’язано з IBus, але я до цього не мав жодних проблем.

  • ОС - 10.04

Відповіді:


27

Мені вдалося знову зробити «нормально».

Спробувавши багато переустановок пакунків тощо, включаючи повне видалення IBus (все безрезультатно), я почав думати, що це може бути викликано налаштуваннями конфігурації, які повторна інсталяція не змінює.

Я помічав, що вихід із localeзаданих UTF-8 присвоєний, але я перевірив це в нещодавно встановленому VM ... всі записи LC_ * (крім LC_ALL, який переосмислює всі інші) були встановлені .UTF-8суфіксом. тому я вручну встановлюю значення LC_ *, як показано нижче.

Я, мабуть, міг би щойно використати LC_ALL="en_AU.UTF-8", але, читаючи про це, я виявив, як налаштувати системний формат дати та часу , і LC_ALLзамінив би мої власні налаштування.

Я не знаю, чи використовував я найбільш відповідний метод, але він працює!

Змінений файл: /etc/default/locale

  • Це показує вміст перед модом:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • Це показує вміст після модифікації:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_CTYPE="en_AU.UTF-8"
    LC_NUMERIC="en_AU.UTF-8"
    LC_TIME="en_AU.UTF-8"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU.UTF-8"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU.UTF-8"
    LC_NAME="en_AU.UTF-8"
    LC_ADDRESS="en_AU.UTF-8"
    LC_TELEPHONE="en_AU.UTF-8"
    LC_MEASUREMENT="en_AU.UTF-8"
    LC_IDENTIFICATION="en_AU.UTF-8"
    

Цей самий файл у ВМ містив лише цей один рядок:

    LANG="en_AU.UTF-8" 


дякую за ваш пост Для запису мені довелося перезапустити систему, щоб виправлення працювало. (можливо, міг би використовувати emacs eval-buffer?)
Девід Лебоуер

19

Перевизначення локалів та перенастроювання може бути достатнім для усунення проблеми:

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

При запуску sudo dpkg-reconfigure localesви можете вибрати локаль ви хочете, натиснувши на spacebarі пересувається з і до удару Enter.


Можливо, варто згадати, що ви вибираєте потрібні вам мови з пробілом.
Даніель Кмак

@Daniel Я не розумію: пробіл?
Гійом Вінсент

1
Під час запуску dpkg-reconfigureви отримуєте список з прапорцями та для вибору мови потрібно використовувати пробіл. У консольній програмі такої інформації немає, тому я подумав, що це допоможе записати її під відповідь. Я не знав, як вибрати ці мови.
Даніель Кмак

1
@Daniel done :)
Гійом Вінсент

15

Я також зіткнувся з цією проблемою, як бачите, ваша LC_ALLпорожня. Я зробив так, і це допомагає:

$ sudo vim /etc/environment

і встановити LC_ALLщось на зразок en_US.UTF-8, моє:

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

потім перезавантажте та запустіть locale, і це має бути щось на кшталт:

LANG=zh_CN.utf8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Це рішення добре працює на Ubuntu 12.04 LTS точно
speciousfool

Налаштування LC_ALLне рекомендується. "Використання LC_ALL сильно не рекомендується, оскільки це перекриває все. Будь ласка, використовуйте його лише під час тестування та ніколи не встановлюйте його у файл запуску." wiki.debian.org/Locale
gertvdijk

4

Якщо ви віддалено підключені до машини через ssh (наприклад, з пристрою macosx), вам потрібно встановити ці змінні на машині, з якої ви підключаєтеся

додайте до ~ / .bash_profile наступне

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

1
Це відома несправність при підключенні з ОС X?
MindTooth

не маю уявлення, чи це проект, чи помилка / помилка
Somatik

2

Я просто хочу додати, що мені також потрібно було редагувати домашній профіль:

gedit ~/.profile

Так у вашому випадку це виглядатиме так:

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

Вихід + Вхід. І все як очікується.


Мені потрібно було exportна початку кожного рядка, і я вкладав його ~/.bashrc.
Sparhawk

2

У мене виникли одні і ті ж проблеми протягом декількох місяців, багато програмних засобів попереджали про порушені налаштування локалі, а деякі навіть відмовилися працювати. Я хочу користуватися англійською мовою, але шведською мовою та налаштуваннями номерів.

Що нарешті для мене працювало, - це редагувати, /etc/default/localeде я видалив усе з цього файлу. Потім я запустив налаштування мови Unity (Settings -> Language Support), налаштував усе (Ubuntu хотів встановити деякі відсутні компоненти) і натиснув, "Apply System-wide"коли я закінчив.

Моє /etc/default/localeзараз виглядає так.

LC_NUMERIC = "sv_SE.UTF-8"
LC_TIME = "sv_SE.UTF-8"
LC_MONETARY = "sv_SE.UTF-8"
LC_PAPER = "sv_SE.UTF-8"
LC_IDENTIFICATION = "sv_SE.UTF-8"
LC_NAME = "sv_SE.UTF-8"
LC_ADDRESS = "sv_SE.UTF-8"
LC_TELEPHONE = "sv_SE.UTF-8"
LC_MEASUREMENT = "sv_SE.UTF-8"
LANGUAGE = "en"
LANG = "en_US.UTF-8"

Велика різниця між цим та моїм оригінальним файлом LANGUAGE="en".


Моє рятівне життя ...
Джон Джо

2

Минуло час, коли це було опубліковано, але останнім часом у мене виникли проблеми із змінними "locale", і жодна відповідь не дала мені результатів. Можливо, мій власний досвід міг би допомогти комусь іншому.

Моя змінна LANG була порожньою, і це створювало проблеми.

$locale

Вихід:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

Я спробував кілька таких команд, як:

sudo locale-gen
sudo dpkg-reconfigure locales

Без успіху. Я спробував редагувати / etc / default / locale і з’ясував, що це вже нормально:

$cat /etc/default/locale

Вихід:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

Також мій файл .pam_environment здався правильним:

$cat .pam_environment

Вихід:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

Я не хочу додавати зайві речі до файлів профілю або bash, головним чином тому, що, хоча це може вирішити проблему, я не знаю причину, і це мене дратувало.

Нарешті я задумався, чи щось вже переважає змінні "locale", і я запустив наступну команду:

$cat .bashrc | grep LANG

Вихід:

unset LANG

Тому я знайшов два рядки у своєму файлі .bashrc , де причина (я не вставляю весь файл):

unset LANG
export LC_ALL=POSIX

Я не знаю, як і коли ці рядки опинилися в моєму файлі bash, але я повністю впевнений, що я їх не написав, можливо, мій .bashrc був замінений, коли я працював з деякими матеріалами веб-розробки, я дійсно не Я не знаю, але оскільки я знаю, що це було ненавмисно, і там є люди, які не мають уявлення про те, що спричиняє "локальну" поведінку, можливо, це може їм допомогти. У будь-якому випадку, коментуючи ці рядки та перезавантаження, вирішили проблему для мене. Тут я відповів на те саме питання, що було зосереджено на скаргах sublimeT3 щодо змінної LANG .


1

Здається, оновлення смажених локалів якось. Я знайшов виправлення: вийти, змінити мову, вибрану перед входом у систему, та ввійти знову.

Можливо, це також допоможе перевстановити локали в синаптичному плані, хоча я не можу підтвердити, що саме це було виправлено для мене, я думаю, що він вийшов із системи чи щось.


Повторний вхід та зміна мови. Я не бачу фактичного способу змінити мову під час входу. Я бачу текст, в якому згадується зміна мови, але немає варіантів (кнопок або подібних) .. можливо, це тому, що у мене включений лише австралійський англійський .... і я запустив всі команди, наведені вище .. так що на даний момент це таємниця ...
Пітер.O

@ red.bear: Спробуйте встановити, language-pack-enа language-support-enпотім повторіть процес вище.
RolandiXor

1

Я спробував редагувати файл локалів та обирати різні мови при вході.

Фільтрування для зламаних пакетів із Synaptic та повне видалення 9 пакетів, які ображають, працювали на мене (libreoffice та python uno).

Але я не можу встановити LibreOffice, не маючи пошкодження менеджера пакунків. Він, однак, встановлює.

Я 11.04 i386. Відмова від відповідальності: Під час останньої частини мого встановлення сталася помилка живлення, оскільки Ubuntu завантажував оновлення.


1

У мене була така ж проблема, але перехід до системи> Адміністрація> Мовна підтримка може вирішити вашу проблему, оскільки може попросити встановити деякі пакунки, і тоді це буде добре !! Це працювало для мене, так що я думаю, це зробить те саме!


0

Біжи

export LC_ALL="zh_CN.utf8"
ibus-setup

і виберіть один із варіантів способу введення за вашим бажанням.


0

У мене була подібна проблема (найбільш помітна в Thunderbird) з прикладом en_AU тут - але я з en_NZ - і після деякої пробної та помилки з Ubuntu 17.10 моє виправлення було оновити ~ / .pam_environment, замінивши всі інші записи ( переважно en_AU та en_US) з en_NZ, потім перезавантаження.

Прикро, що ви не можете просто встановити свою локальну службу і змусити її робити те, що вона вимагає - найбільше розчаровано, що використання локалів, налаштованих dpkg, насправді не робить нічого корисного.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.