Я пытаюсь понять локали, используемые в Linux. В моей системе Ubuntu 11.10 locale
выдает следующее:
LANG=en_DK.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_DK.UTF-8"
LC_TIME="en_DK.UTF-8"
LC_COLLATE=en_GB.UTF-8
LC_MONETARY="en_DK.UTF-8"
LC_MESSAGES=en_GB.UTF-8
LC_PAPER="en_DK.UTF-8"
LC_NAME="en_DK.UTF-8"
LC_ADDRESS="en_DK.UTF-8"
LC_TELEPHONE="en_DK.UTF-8"
LC_MEASUREMENT="en_DK.UTF-8"
LC_IDENTIFICATION="en_DK.UTF-8"
LC_ALL=
(en_dk
для использования формата международного дня, континентального европейского форматирования чисел (1.234,56) и т. д.)
Я думаю, что понимаю, что делает семейство LC_*
, что LANG
является запасным вариантом, если одна из них не установлена, и что LC_ALL устанавливает все переменные LC_*
в свое значение.
То, что я пока не знаю, это то, для чего используется LANGUAGE
. Обозначение en_GB:en
напоминает мне HTTP-заголовок Accept-Language
. При указанных выше настройках это означает, что используется британский английский, если для него существует перевод. В противном случае будет использован любой существующий перевод на английский язык (en_US, en_AU, ..., что угодно).
Я прав до сих пор?
Кроме того, какие программы действительно соответствуют настройкам LANGUAGE
? Насколько он отличается от LC_MESSAGES
?
К сожалению, man locale
только документирует LC_*
. И поиск в интернете по запросу «linux locale LANGUAGE» или подобный - это немой момент. (Конечно, язык - это слово, часто используемое при разговоре о локалях, и оно также может быть показано только в выводе locale
без обсуждения).
Кто-нибудь из вас может помочь мне там?