Ustawienia regionalne to preferencje użytkownika związane z Twoją kulturą.
Nazwy ustawień regionalnych
We wszystkich obecnych wariantach unixa, które znam (ale nie na kilku antykach), nazwy ustawień regionalnych mają ten sam wzór:
- ISO 639-1 małe dwuliterowy kod języka, albo ISO 639-2 trzyliterowy kod języka, jeśli język nie ma dwuliterowy kod. Na przykład
en
w języku angielskim, de
niemieckim, ja
japońskim, uk
ukraińskim, ber
berberyjskim…
- W wielu, ale nie we wszystkich językach, podkreślenie,
_
po którym następuje dwuliterowy kod kraju zgodny z ISO 3166 . Tak więc: en_US
dla amerykańskiego angielskiego, en_UK
brytyjskiego angielskiego, fr_CA
kanadyjskiego (Quebec) francuskiego, de_DE
niemieckiego niemieckiego, de_AT
niemieckiego austriackiego, ja_JP
japońskiego (japońskiego) itp.
- Ewentualnie, kropka
.
następnie nazwa kodowania znaków , takich jak UTF-8
, ISO-8859-1
, KOI8-U
, GB2312
, Big5
, itd. Z LIBC co najmniej (nie wiem jak to jest powszechne), przypadek i interpunkcja jest ignorowana w kodowania nazw. Na przykład zh_CN.UTF-8
jest chińskim mandaryńskim (uproszczonym) zakodowanym w UTF-8, a zh_CN
chińskim mandaryńskim zakodowanym w GB2312, a zh_TW
chińskim tajwańskim (tradycyjnym) zakodowanym w Big5.
- Opcjonalnie znak at,
@
po którym następuje nazwa wariantu. Znaczenie wariantów zależy od ustawień regionalnych. Na przykład wiele krajów europejskich ma @euro
wariant lokalny, w którym znak waluty to €, a kodowanie obejmuje ten znak (ISO 8859-15 lub ISO 8859-16), w przeciwieństwie do nie ozdobionego wariantu ze starszym znakiem waluty. Na przykład en_IE
(angielski, Irlandia) używa kodowania latin1 (ISO 8859-1) i £ jako symbolu waluty, podczas gdy en_IE@euro
używa kodowania latin9 (ISO 8859-15) i € jako symbolu waluty.
Ponadto istnieją dwie nazwy ustawień narodowych, które istnieją we wszystkich systemach uniksopodobnych: C
i POSIX
. Nazwy te są synonimami i oznaczają „computerese”, tj. Ustawienia domyślne odpowiednie dla danych analizowanych przez program komputerowy.
Ustawienia regionalne
Następujące kategorie ustawień narodowych są zdefiniowane przez POSIX :
LC_CTYPE
: zestaw znaków używany przez aplikacje terminalowe: dane klasyfikacyjne (które to znaki to litery, znaki interpunkcyjne, spacje, niepoprawne itp.) i konwersja wielkości liter. Narzędzia tekstowe zwykle zwracają uwagę LC_CTYPE
na granice znaków.
LC_COLLATE
: porządek sortowania (tzn. sortowania). To ustawienie jest bardzo ograniczone z kilku powodów:
- Większość języków ma skomplikowane reguły, które zależą od tego, co jest sortowane (np. Słowa słownikowe i nazwy własne mogą nie mieć tej samej kolejności) i nie mogą być wyrażone przez
LC_COLLATE
.
- Istnieje kilka aplikacji, w których istotne znaczenie ma porządek sortowania, które wykonuje oprogramowanie korzystające z ustawień regionalnych. Na przykład edytory tekstu przechowują język i kodowanie pliku w samym pliku (w przeciwnym razie plik nie zostałby poprawnie przetworzony w systemie z różnymi ustawieniami regionalnymi) i nie dbają o ustawienia regionalne określone przez środowisko.
LC_COLLATE
może mieć nieprzyjemne skutki uboczne, w szczególności dlatego, że powoduje porządek sortowania A <a <B <…, co powoduje, że „między A i Z” obejmuje małe litery od a do y. W szczególności bardzo popularne wyrażenia regularne, takie jak [A-Z]
uszkodzenie niektórych aplikacji .
LC_MESSAGES
: język komunikatów informacyjnych i komunikatów o błędach.
LC_NUMERIC
: formatowanie liczb: separator dziesiętny i tysiące.
Wiele aplikacji koduje na stałe .
jako separator dziesiętny. To sprawia, że LC_NUMERIC
niezbyt przydatne i potencjalnie niebezpieczne:
- Nawet jeśli go ustawisz, nadal dość często zobaczysz domyślny format.
- Prawdopodobnie wpadniesz w sytuację, w której jedna aplikacja generuje dane wyjściowe zależne od ustawień regionalnych, a inna aplikacja oczekuje,
.
że będzie kropką dziesiętną lub ,
separatorem pól.
LC_MONETARY
: jak LC_NUMERIC
, ale dla kwot w lokalnej walucie.
Korzysta z tego bardzo niewiele aplikacji.
LC_TIME
: formatowanie daty i godziny: nazwy dnia tygodnia i miesiąca, zegar 12 lub 24-godzinny, kolejność części daty, interpunkcja itp.
GNU libc, które można znaleźć w niewbudowanym systemie Linux, definiuje dodatkowe kategorie ustawień regionalnych:
LC_PAPER
: domyślny rozmiar papieru (określony przez wysokość i szerokość).
LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
: Nie wiem z dowolnej aplikacji, która korzysta z nich.
Zmienne środowiska
Aplikacje korzystające z ustawień regionalnych określają je na podstawie zmiennych środowiskowych.
- Następnie
LANG
używana jest wartość zmiennej środowiskowej, chyba że zostanie zastąpiona innym ustawieniem. Jeśli LANG
nie jest ustawiony, domyślnymi ustawieniami narodowymi są C
.
- Te
LC_xxx
nazwy mogą być używane jako zmienne środowiskowe.
- Jeśli
LC_ALL
jest ustawiony, wszystkie inne wartości są ignorowane; przydaje się to przede wszystkim do ustawiania LC_ALL=C
uruchomionych aplikacji, które muszą generować takie same dane wyjściowe, niezależnie od tego, gdzie są uruchamiane.
- Ponadto GNU libc używa
LANGUAGE
do definiowania błędów zastępczych LC_MESSAGES
(np. LANGUAGE=fr_BE:fr_FR:en
Preferuje francuski francuski lub jeśli jest niedostępny francuski francuski lub jeśli jest niedostępny angielski).
Instalowanie ustawień regionalnych
Dane regionalne mogą być duże, więc niektóre dystrybucje nie wysyłają ich w użytecznej formie i zamiast tego wymagają dodatkowego kroku instalacji.
- W systemie Debian, aby zainstalować ustawienia regionalne, uruchom
dpkg-reconfigure locales
i wybierz z listy w oknie dialogowym lub edytuj, /etc/locale.gen
a następnie uruchom locale-gen
.
- W systemie Ubuntu, aby zainstalować ustawienia narodowe, uruchom
locale-gen
z nazwami ustawień narodowych jako argumentami.
Możesz zdefiniować własne ustawienia regionalne .
Rekomendacje
Przydatne ustawienia to:
- Ustaw
LC_CTYPE
język i kodowanie, w którym kodujesz pliki tekstowe. Upewnij się, że terminale używają tego kodowania.
W przypadku większości języków liczy się tylko kodowanie. Jest kilka wyjątków; na przykład wielkie litery i
są I
w większości języków, ale İ
w języku tureckim ( tr_TR
).
- Ustaw
LC_MESSAGES
język, w którym chcesz widzieć wiadomości.
- Ustaw
LC_PAPER
się en_US
jeśli chcesz US Letter być domyślny rozmiar papieru, a po prostu o coś innego (np en_GB
) Jeśli chcesz A4.
- Opcjonalnie
LC_TIME
możesz ustawić swój ulubiony format czasu.
Jak wyjaśniono powyżej, unikaj ustawiania LC_COLLATE
i LC_NUMERIC
. Jeśli używasz LANG
, wyraźnie zastąp te dwie kategorie, ustawiając je na C
.
Gilles „SO- przestań być zły”
źródło
LC_PAPER
. Czy mogę to zaktualizować w całym systemie bez ponownego uruchamiania?/etc/default/locale
. Pliki te obowiązują po zalogowaniu; możesz zrobićexport LC_PAPER=…
w powłoce, aby wpływać na polecenia uruchamiane z tej powłoki.