Як змінити / виправити локальну систему системи, коли ви встановлюєте мову, яка не є офіційною у вашій країні?


16

Як налаштувати глобальний локальний комп'ютер?

Нещодавно я встановив Kubuntu 14.04LTS англійською мовою, але, оскільки я перебуваю в Іспанії, я вибрав Іспанію як країну, а потім змінив параметри місцевості, щоб отримати всю конфігурацію для кожної країни, наприклад, групування цифр, десятковий роздільник, формат дати тощо. Я також додав іспанську мову.

Тепер усі програми скаржаться на те, що локаль неправильний. check-language-supportговорить мені, що я використовую en_ES.UTF-8як локаль системи, і що мова справді неправильна, в Іспанії немає мови для англійської мови.

Я спробував скористатися налаштуваннями країни / регіону та мови Kubuntu, але це не виправить. Я спробував використовувати export LANG=en_GB.UTF-8і те, export LC_ALL=en_GB.UTF-8і тоді, sudo dpkg-reconfigure localesі це призвело check-language-supportдо того, що я маю правильну конфігурацію, але якщо вона є, це лише в тому сеансі консолі. Ця проблема також не дозволяє konsole показувати символи unicode, і я не можу використовувати мертві клавіші або вводити будь-який "міжнародний символ", наприклад - ç або ç (ті, що працюють в інших програмах, таких як Firefox, які я використовую для публікації цього питання).

Отже, питання полягає в тому, як я можу налаштувати глобальну локаль для комп'ютера?

Це не звіт про помилку, я, мабуть, перевстановлюю комп’ютер у підсумку, якщо не зможу його виправити. Але мені дуже хочеться знати, як я можу виконати це НАДАЛЬНО базове завдання.

Дякую.

$ check-language-support
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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_COLLATE to default locale: No such file or directory
hunspell-en-ca libreoffice-help-en-gb libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au wspanish

$ cat /etc/default/locale
LANG="en_US.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"


$ 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
LANG=en_ES.UTF-8
LANGUAGE=en:es:en
LC_CTYPE="en_ES.UTF-8"
LC_NUMERIC=en_ES.UTF-8
LC_TIME=en_ES.UTF-8
LC_COLLATE="en_ES.UTF-8"
LC_MONETARY=en_ES.UTF-8
LC_MESSAGES="en_ES.UTF-8"
LC_PAPER=en_ES.UTF-8
LC_NAME=en_ES.UTF-8
LC_ADDRESS=en_ES.UTF-8
LC_TELEPHONE=en_ES.UTF-8
LC_MEASUREMENT=en_ES.UTF-8
LC_IDENTIFICATION=en_ES.UTF-8
LC_ALL=
$ update-locale
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Відповіді:


9

Тут повідомляється про помилку: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 - "Зміна країни призводить до недійсної місцевості"

Обхідні шляхи:

  1. Виберіть країну Британська англійська - не американська англійська (а потім мова Іспанія)
  2. Або вручну відредагуйте ~/.kde/env/setlocale.sh, змінивши налаштування країни / регіону та мови

8

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

Я використовую Linux Mint в якості мого основного розповсюдження системи, а Debian - як мої системні сервери.

Незважаючи на те, що Ubuntu походить від Debian, параметри локалі дещо відрізняються.

1) Перевірте, які локальні установки встановлені та створені у вашій системі:

sudo locale -a

2) видаліть небажані локалі за допомогою наступної команди:

sudo localedef --delete-from-archive <YOUR DESIRED LOCALE HERE>

наприклад:

sudo localedef --delete-from-archive en_AG

Конфігурація за замовчуванням, розташована в /etc/default/locale, перекривається особистими налаштуваннями (лише для локальних користувачів), створеними додатком System Language. Ці налаштування знаходяться в $HOME/.pam_environment( $HOME= Місце вашої домашньої папки).

Очистіть цей файл і напишіть потрібні вам конфігурації.

Мій .pam_environmentфайл:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LC_PAPER=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_CTYPE=pt_BR.UTF-8

Змінна LANG встановлює неконфігурований LC_ * на встановлене там значення. Наприклад:

Якщо система здійснює пошук змінної LC_TIME, і вона не встановлена, вона буде використовувати значення LANG як стандартне значення для цієї змінної (LC_TIME в цьому випадку).

Я в .pam_environmentосновному говорить: встановіть майже всі змінні на pt_BR.UTF-8та систему мови на англійську.

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


1

Вам потрібно скористатися командою update-locale . Перейдіть на цю сторінку, як її використовувати. Ви в основному запускаєте його (з судо) з аргументами, встановлюючи локаль таким, яким ви хочете. Це "Modif [ies] глобальні налаштування мови" для ваших вимог.

Редагувати 1: Ви також можете вивчити локальний рід, якщо попередній не працює для вас.


Дякую. Я вже пробував це. dpkg-reconfigure localesстворили всі можливі комбінації для англійської та іспанської. Схоже, виклик locale-gen для всіх встановлених комбінацій мов. Я також закликав locale-genкілька локалів на всякий випадок. Проблема полягає в тому, що en_ES не існує
Калабацин

Дуже добре, я буду продовжувати шукати рішення. Я давно не бачив такої проблеми.
Zzzach ...

1

Як прокоментував у своїй відповіді Фредді Вулто, про цю відому помилку повідомляють тут: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

Перегляньте цей звіт про помилку, якщо вам потрібно виправити його вручну. Серед інших можливих виправлень можна виправити виклик ~ / .kde / env / setlocale.sh (можливо, після зміни).


1

Ще одне рішення - це псевдонім англійською (Іспанія) - англійською (США):

echo en_ES.UTF-8 en_US.UTF-8 >> /etc/locale.aliases


Навіть якщо це просто вирішення, я думаю, що це розумно і мені це подобається. Це, швидше за все, теж працює :)
Калабацин

0

Мені вдалося тимчасово виправити проблему, змінивши системну мову з американської англійської на англійську англійську, як було запропоновано вище. Я зробив це через діалогове вікно Налаштування системи KDE> Місцеположення> Мови. Приємно, на ній з’явилося повідомлення про помилку, в якому сказано, що заміна поточної мови заборонена, але на практиці це було з тих пір, як нові параметри застосовувались, коли я натискав кнопку «застосувати», і перезавантажував машину.


0

У мене була така ж проблема в моїй системі: Kubuntu 16.04 LTS (ядро: 4.4.0-31-generic (x86_64)). Але я вирішив це дуже просто:

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

(налаштування системи> регіональні налаштування> формати> детальні налаштування)

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


-3

Хлопці, хлопці, чому ви збожеволієте ?? Все, що вам потрібно - це перейти на панель пошуку або об'єктив Unity (якщо Ubuntu) введіть "Мова", ви знайдете додаток "Країна / регіон та мова". На вкладці "Країна" Виберіть бажану мову мови.

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

Це доступно в дистрибутиві Ubuntu 14.04 LTS та пізніших версіях.


4
Ubuntu за замовчуванням має Unity. Це проблема KDE. Зовсім не пов'язані між собою. Крім того, зміна регіональних налаштувань не вирішила проблему, як зазначено в оп. Все ж дякую, що знайшли свій час, щоб спробувати виправити цю проблему.
Калабацин
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.