Jak dodać ustawienia regionalne do serwera Ubuntu?

178

Obecnie mam te lokalizacje:

locale -a

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

Jak mogę zainstalować ru_RUustawienia regionalne na moim serwerze?

Srebrne światło
źródło

Odpowiedzi:

254
  1. Sprawdź, które lokalizacje są obsługiwane:

    locale -a
    
  2. Dodaj wybrane lokalizacje (na przykład ru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. Uruchom to polecenie aktualizacji:

    sudo update-locale 
    
PocketSam
źródło
26
... potem biegnijsudo update-locale
Justin Force
3
Co robisz, jeśli nie jest obsługiwane?
Kimble,
4
Czy możesz wyjaśnić, dlaczego są one potrzebne ru_RUi ru_RU.UTF-8potrzebne? Nie wiem wiele o lokalizacjach.
Sopalajo de Arrierez
15
Jeśli pracujesz z php5-fpm będziesz potrzebowaćsudo service php5-fpm restart
Stalinko
3
Właśnie tego potrzebowałem, ale musiałem zrestartować Apache, aby działał ... dzięki!
Jabari
53

Wybrałbym inną trasę, którą IMO lepiej pasuje do stylu Ubuntu. Skorzystaj z dostarczonych pakietów . Istnieją pakiety dla każdego ustawienia narodowego i wykonują całą pracę za Ciebie ... nie trzeba edytować / var plików, które zawsze uważałem, że nie były przeznaczone do ręcznej edycji.

sudo apt-get install language-pack-XX

gdzie XX oznacza kod języka. Zainstalowanie języka spowoduje zainstalowanie wszystkich wariantów dla danego kraju (na przykład zainstalowanie pakietu językowego spowoduje zainstalowanie it_CH.utf8 i it_IT.utf8, instalacja dla NL spowoduje zainstalowanie nl_AW, nl_AW.utf8, nl_BE.utf8 i nl_NL.utf8 ).

Palantir
źródło
Myślę, że jest to najlepszy i najbardziej „ubuntu” sposób na zrobienie tego
Luke Madhanga
4
Ale generowanie ustawień regionalnych zapewnia takie rzeczy, jak zlokalizowany format daty, separator dziesiętny, zestawy znaków itp. Pakiety językowe zapewniają również tłumaczenia, co niekoniecznie jest intencją.
Oskar Berggren,
1
Zgadzam się z Oskarem. Nawet silniejszy, jeśli weźmie się pod uwagę, że ta instalacja dotyczy serwera - większość interfejsów i tak będzie w języku angielskim.
igorsantos07
2
Bałem się, że to też zmieni obecne ustawienia regionalne, ale nie. Wszystko w porządku. Wygląda jak najlepsze imo approch. Nie potrzebuję szczególnie „tłumaczeń lub innych rzeczy”, ale jeśli z jakiegoś powodu używam ustawień regionalnych, spodziewam się, że będzie kompletny.
Balmipour
43
  1. sprawdź, które lokalizacje są obsługiwane:

    less /usr/share/i18n/SUPPORTED
    
  2. Dodaj ustawienia regionalne do listy wygenerowanych

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. Ponownie wygeneruj listę (wywoła locale-gen ...)

     sudo dpkg-reconfigure locales
    
użytkownik123231
źródło
4
Musiałem dodać drugą kolumnę: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local(UTF-8 występuje dwa razy) na Ubuntu 15.04. W przeciwnym razie to działa.
jfs
16

Znalazłem generała regionalnego jako twojego przyjaciela. jak w (dodając na przykład hebrajski utf8):

root@world:~# locale-gen he_IL.UTF-8

możesz nawet zmienić to tak:

root@world:~# dpkg-reconfigure locales

i sprawdź, czy zrobiłeś dobrze:

root@world:~# locale -a

Uważam, że to rozwiązanie jest znacznie prostsze niż dodawanie plików do plików tekstowych, nawet jeśli to robi.

boazr
źródło
6
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local

W punkcie 3 pojawia się następujący komunikat: „Błąd: zły wpis„ ru_RU.UTF8 ””

Ta praca dla mnie:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
użytkownik123
źródło
To zadziałało dla mnie. W moim przypadku wystąpił ten zły błąd wejścia dla lokalizacji en_GB. Zaktualizowałem mój /var/lib/locales/supported.d/mintlocaleplik, aby zawierał linie en_GB UTF-8i en_GB.UTF-8 UTF-8(brakowało dodatkowego UTF-8).
Samir Aguiar
4

Użyj pakietów językowych Ubuntu. Wszystkie obsługiwane języki są dostępne w domyślnych repozytoriach:

apt-cache search language-pack

Pełny przykład przełączania ustawień regionalnych w wersji Ubuntu (serwerowej):

jani@example:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Wszystkie dostępne (tj. Już zainstalowane) ustawienia narodowe można wyświetlić za pomocą:

locale -a

Moje obecne ustawienia regionalne to en_IE:

jani@example:~$ locale
LANG=en_IE.UTF-8
LANGUAGE=
LC_CTYPE="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_COLLATE="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="en_IE.UTF-8"
LC_NAME="en_IE.UTF-8"
LC_ADDRESS="en_IE.UTF-8"
LC_TELEPHONE="en_IE.UTF-8"
LC_MEASUREMENT="en_IE.UTF-8"
LC_IDENTIFICATION="en_IE.UTF-8"
LC_ALL=
jani@example:~$ date
Sat Nov  1 15:36:51 UTC 2014
jani@example:~$

Ponieważ nie miałem lokalizacji ru, muszę zainstalować pakiet językowy ru:

jani@example:~$ sudo apt-get -y install language-pack-ru
[..]
Generating locales...
  ru_RU.UTF-8... done
  ru_UA.UTF-8... done
Generation complete.
jani@example:~$ 

Teraz dostępne są lokalizacje ru. Domyślne ustawienia regionalne systemu są ustawiane poprzez edycję /etc/default/locale:

jani@example:~$ sudo vi /etc/default/locale
# Created by cloud-init v. 0.7.5 on Mon, 27 Oct 2014 18:46:13 +0000
LANG="ru_RU.UTF-8"
LC_MESSAGES=POSIX
jani@example:~$

Zaloguj się ponownie i sprawdź swoje nowe ustawienia regionalne:

jani@example:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
jani@example:~$ date
Сб. нояб.  1 15:43:45 UTC 2014
jani@example:~$ 
użytkownik272735
źródło
2

Modyfikuj /etc/locale.gen, odkomentuj lub dodaj ustawienia narodowe, które chcesz wygenerować. Potem biegnij sudo locale-gen.

Możesz sprawdzić, czy ustawienia narodowe zostały dodane locale -a, co spowoduje wyświetlenie wszystkich ustawień narodowych.

hunse
źródło
och, mój gen locale utworzył mnóstwo ustawień regionalnych, ignorując plik locale.gen. Dlatego używaj tej porady z rozwagą.
Dzenly,
0
  1. Sprawdź, które ustawienia regionalne są już obsługiwane w Twojej dystrybucji. Otwórz lub catplik /usr/share/i18n/SUPPORTEDi skopiuj żądane ustawienia regionalne, które mają zostać dodane.
  2. na terminalu wpisz sudo locale-gen locale_name.

    Na przykład sudo locale-gen de_DE.iso885915@euro

  3. wchodzić sudo update-locale

  4. Sprawdź, czy ustawienia regionalne są zainstalowane przy użyciu locale -a

BugShotGG
źródło
0

Nie mogłem skomentować, więc muszę dodać to jako odpowiedź.

Musiałem dodać „specjalny” typ ustawień regionalnych sr_RS.utf8@latin w Ubuntu.

Komenda:

sudo locale-gen sr_RS.utf8@latin

nie dodaje @latin do dostępnych ustawień regionalnych. Aby odnieść sukces, polecenie powinno wyglądać następująco:

sudo locale-gen [email protected]

Komenda:

sudo locale -a

teraz pokazuje:

sr_RS
sr_RS@latin
sr_RS.utf8
sr_RS.utf8@latin

Zwróć uwagę na różnicę składni między wynikiem locale -aa sposobem dodawania locale-genpoleceń.

Milan Oparnica
źródło
-2

Zrobiłem rzeczy w podobny sposób, aby zastosować cały system ustawień regionalnych bez ponownego uruchamiania lub wylogowywania.

Najpierw pobierz pakiet językowy:

sudo apt-get install language-pack-ru-base

Następnie sprawdź, które wersje są obsługiwane:

less /usr/share/i18n/SUPPORTED | grep ru_RU

Teraz zastosuj wynik (prawie zawsze używaj wersji UTF-8 dla prawie dowolnego języka!):

echo 'ru_RU.UTF-8 UTF-8' | sudo tee /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

Na koniec zaktualizuj plik domyślny, pobierz go, a następnie gotowe:

echo 'LANG=ru_RU.UTF-8' | sudo tee /etc/default/locale

zastosuj zmiany w systemie:

. /etc/default/locale
LANGUAGE=ru_RU.UTF-8

i sprawdź swoje wyniki:

locale
mchid
źródło
Uwaga: Jeśli używasz zwykłego systemu Ubuntu, a nie serwera Ubuntu, zmiany nie zostaną przeniesione poza konsolę (jeśli zdecydujesz się otworzyć nową kartę lub zamknąć terminal) aż do następnego logowania. Jednak za pomocą serwera Ubuntu i tak musisz się zalogować, aby otworzyć nową konsolę, więc nie powinno to mieć znaczenia.
mchid
To pytanie jest tagget z serwerem . A kto i dlaczego głosował za tym, proszę wyjaśnić.
Nikos Alexandris,