Jak zmienić / naprawić ustawienia regionalne systemu, jeśli konfigurujesz w języku nieoficjalnym w twoim kraju?

16

Jak skonfigurować globalne ustawienia regionalne dla komputera?

Niedawno zainstalowałem Kubuntu 14.04LTS w języku angielskim, ale ponieważ jestem w Hiszpanii, wybrałem Hiszpanię jako kraj, a następnie zmieniłem opcje ustawień regionalnych, aby uzyskać wszystkie konfiguracje specyficzne dla kraju, takie jak grupowanie cyfr, separator dziesiętny, format daty itp. dodano język hiszpański.

Teraz wszystkie aplikacje skarżą się, że ustawienia regionalne są nieprawidłowe. check-language-supportmówi mi, że używam en_ES.UTF-8jako ustawień regionalnych systemu i że ustawienia te są rzeczywiście nieprawidłowe, w Hiszpanii nie ma ustawień regionalnych dla języka angielskiego.

Próbowałem użyć ustawień kraju / regionu i języka Kubuntu, ale to nie rozwiązuje problemu. Próbowałem użyć export LANG=en_GB.UTF-8i export LC_ALL=en_GB.UTF-8wtedy sudo dpkg-reconfigure localesi to spowodowało check-language-support, że mam teraz poprawną konfigurację, ale jeśli tak, to tylko w tej sesji konsoli. Ten problem zapobiega również wyświetlaniu znaków Unicode przez konsolę i nie mogę używać martwych klawiszy ani wprowadzać żadnych „znaków międzynarodowych”, takich jak ñ lub ç (działają one w innych aplikacjach, takich jak Firefox, których używam do opublikowania tego pytania).

Pytanie brzmi: jak skonfigurować globalne ustawienia regionalne dla komputera?

To nie jest raport o błędzie, prawdopodobnie w końcu przeinstaluję komputer, jeśli nie będę mógł go naprawić. Ale naprawdę chcę wiedzieć, jak mogę wykonać NAPRAWDĘ podstawowe zadanie.

Dziękuję Ci.

$ 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").
Kalabacyna
źródło

Odpowiedzi:

9

Błąd jest zgłaszany tutaj: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 - „Zmiana kraju prowadzi do nieprawidłowych ustawień regionalnych”

Obejścia:

  1. Wybierz kraj Brytyjski angielski - nie amerykański angielski (a następnie język Hiszpania)
  2. Lub edytuj ręcznie ~/.kde/env/setlocale.shpo zmianie ustawień kraju / regionu i języka
Freddy Vulto
źródło
8

Rozwiązałem ten problem, wykonując poniższe czynności. Badałem, jak działają ustawienia narodowe i różne zestawy konfiguracyjne między niektórymi dystrybucjami (pierwotnie oparte na Debianie).

Używam Linux Mint jako mojej podstawowej dystrybucji systemu, a Debian jako moich serwerów systemowych.

Pomimo faktu, że Ubuntu wywodzi się z Debiana, ustawienia regionalne są nieco inne.

1) Sprawdź, które ustawienia regionalne są zainstalowane i wygenerowane w systemie:

sudo locale -a

2) usuń niepożądane ustawienia narodowe za pomocą następującego polecenia:

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

na przykład:

sudo localedef --delete-from-archive en_AG

Domyślna konfiguracja znajdująca się w /etc/default/localejest zastępowana przez ustawienia osobiste (tylko użytkownik lokalny) wygenerowane przez aplikację Język systemu. Te ustawienia znajdują się w $HOME/.pam_environment( $HOME= lokalizacja twojego folderu domowego).

Opróżnij ten plik i zapisz konfiguracje, których możesz potrzebować.

Mój .pam_environmentplik:

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

Zmienna LANG ustawia nieskonfigurowany LC_ * na skonfigurowany tam zestaw wartości. Na przykład:

Jeśli system wyszukuje zmienną LC_TIME i nie jest ustawiony, użyje wartości LANG jako domyślnej dla tej zmiennej (w tym przypadku LC_TIME).

Mówię w .pam_environmentzasadzie: ustaw prawie wszystkie zmienne na, pt_BR.UTF-8a język systemu na angielski.

Mam nadzieję, że te informacje mogą być przydatne.

Girol
źródło
1

Będziesz chciał użyć polecenia update-locale . Odwiedź tę stronę, aby dowiedzieć się, jak go używać. Zasadniczo uruchamiasz go (za pomocą sudo) z argumentami określającymi ustawienia regionalne tak, jak chcesz. To „Zmodyfikuj globalne ustawienia regionalne” zgodnie z własnymi wymaganiami.

Edycja 1: Możesz także zajrzeć do locale-gen, jeśli poprzednie nie działa dla ciebie.

Zzzach ...
źródło
Dziękuję Ci. Już tego próbowałem. dpkg-reconfigure localeswygenerowano wszystkie możliwe kombinacje dla języka angielskiego i hiszpańskiego. Wygląda na to, że wywołuje locale-gen dla wszystkich kombinacji zainstalowanych języków. Na locale-genwszelki wypadek wezwałem też kilka lokalizacji. Problem polega na tym, że en_ES nie istnieje
Calabacin
Bardzo dobrze będę szukać rozwiązań. Dawno nie widziałem takiego problemu.
Zzzach ...
1

Jak skomentował Freddy Vulto w swojej odpowiedzi, jest to znany błąd zgłoszony tutaj: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

Proszę spojrzeć na to zgłoszenie błędu, jeśli trzeba to naprawić ręcznie. Można to naprawić, wywołując ~ / .kde / env / setlocale.sh (prawdopodobnie po modyfikacji), między innymi możliwymi poprawkami.

Kalabacyna
źródło
1

Innym rozwiązaniem jest alias angielski (Hiszpania) na angielski (amerykański):

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

glin.
źródło
Nawet jeśli jest to tylko obejście, myślę, że jest sprytne i podoba mi się. Najprawdopodobniej też działa :)
Calabacin
0

Udało mi się tymczasowo rozwiązać ten problem, zmieniając język systemowy z amerykańskiego angielskiego na brytyjski angielski, jak sugerowano powyżej. Zrobiłem to za pomocą okna dialogowego Ustawienia systemowe KDE> Ustawienia regionalne> Języki. Zabawnie wyświetlił komunikat o błędzie informujący, że zastąpienie obecnego języka jest niedozwolone, ale w praktyce było tak, ponieważ nowe ustawienia zostały zastosowane po naciśnięciu przycisku „Zastosuj” i ponownym uruchomieniu komputera.

Yngvefaen
źródło
0

Miałem ten sam problem w moim systemie: Kubuntu 16.04 LTS (jądro: 4.4.0-31-generic (x86_64)). Ale rozwiązałem to w bardzo prosty sposób:

w „ ustawieniach systemu ” w zakładce „ personalizacja ” kliknij „ ustawienia regionalne ”. wybierz „ Formaty ” z prawego menu. Po lewej zaznacz „ szczegółowe ustawienia ” i zmień każdy szczegół, taki jak Liczby lub Czas, na żądany język i region.

(ustawienia systemowe> ustawienia regionalne> formaty> ustawienia szczegółowe)

Wiem, że jest to elementarne, ale może być przydatne dla kogoś.

Jesmi
źródło
-3

Chłopaki, dlaczego wariujecie ?? Wystarczy, że przejdziesz do paska wyszukiwania lub Unity Lens (jeśli Ubuntu) wpisz „Język”, znajdziesz aplikację „Kraj / region i język”. Na karcie „Kraj” wybierz żądany język ustawień regionalnych.

Jeśli chcesz zachować bieżące ustawienia narodowe i zmienić inne opcje, takie jak format daty lub wymiary imperialne na metryczne, po prostu użyj innych kart! :)

Jest to dostępne w dystrybucji Ubuntu 14.04 LTS i nowszych.

Dave Marksmen
źródło
4
Ubuntu ma domyślnie Unity. To jest problem KDE. Całkowicie niezwiązany. Poza tym zmiana ustawień regionalnych nie rozwiązała problemu, jak stwierdzono w op. Wciąż dziękuję za poświęcenie czasu na rozwiązanie tego problemu.
Calabacin