Как изменить / исправить язык системы, когда вы настраиваете язык, не являющийся официальным в вашей стране?

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. Эта проблема также не позволяет konsole отображать символы Юникода, и я не могу использовать мертвые ключи или вводить какие-либо «международные символы», такие как - или ç (те, которые работают в других приложениях, таких как 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").
Calabacin
источник

Ответы:

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и язык системы на английский.

Я надеюсь, что эта информация может быть полезной.

Girol
источник
1

Вы захотите использовать команду update-locale . Посетите эту страницу о том, как его использовать. Вы в основном запускаете его (с помощью sudo) с аргументами, устанавливающими локаль так, как вы хотите. Это «Изменение глобальных настроек локали» в соответствии с вашими требованиями.

Редактировать 1: Вы также можете посмотреть локаль-ген, если предыдущий не работает для вас.

Zzzach ...
источник
Спасибо. Я уже попробовал это. dpkg-reconfigure localesгенерируются все возможные комбинации для английского и испанского языков. Кажется, он вызывает locale-gen для всех установленных языковых комбинаций. Я также назвал locale-genнесколько локалей на всякий случай. Проблема в том, что en_ES не существует
Calabacin
Очень хорошо, я буду продолжать искать решения. Я не видел такой проблемы в течение долгого времени.
Ззач ...
1

Как Фредди Вулто прокомментировал в своем ответе, об этой известной ошибке сообщается здесь: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

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

Calabacin
источник
1

Другое решение - использовать псевдоним с английского (Испания) на английский (США):

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

и др.
источник
Даже если это просто обходной путь, я думаю, что это умно, и мне это нравится. Скорее всего, это тоже работает :)
Calabacin
0

Мне удалось временно решить проблему, изменив язык системы с американского английского на британский английский, как предложено выше. Я сделал это с помощью KDE System Settings> Locale> Languages. Забавно, но на экране появилось сообщение об ошибке, в котором говорилось, что замена текущего языка не разрешена, но на практике это произошло потому, что новые настройки были применены, когда я нажал кнопку «Применить» и перезагрузил компьютер.

Yngvefaen
источник
0

У меня была такая же проблема в моей системе: Kubuntu 16.04 LTS (ядро: 4.4.0-31-generic (x86_64)). Но я решил это очень просто:

в « настройках системы » на вкладке « персонализация » нажмите « региональные настройки ». выберите « Форматы » в правом меню. Слева отметьте « подробные настройки » и измените каждую деталь, например «Числа» или «Время», на нужный язык и регион.

(системные настройки> региональные настройки> форматы> подробные настройки)

Я знаю, что это элементарно, но может быть полезно для кого-то.

Jesmi
источник
-3

Ребята, ребята, почему вы сходите с ума ?? Все, что вам нужно, это перейти на панель поиска или Unity Lens (если Ubuntu) типа «Язык», вы найдете приложение «Страна / Регион и язык». На вкладке «Страна» выберите нужный язык локали.

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

Это доступно в дистрибутиве Ubuntu 14.04 LTS и более поздних версиях.

Дейв Марксмен
источник
4
Ubuntu имеет Unity по умолчанию. Это проблема KDE. Совершенно не связано. Кроме того, изменение региональных настроек не решило проблему, как указано в оп. Тем не менее, спасибо, что нашли время, чтобы попытаться решить эту проблему.
Калабацин