语言环境:LANGUAGE 变量的用途是什么?(什么时候?)

sey*_*eya 7 linux unix language locale

我试图了解 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=
Run Code Online (Sandbox Code Playgroud)

en_dk用于使用国际日格式、欧洲大陆数字格式(1.234,56)等)

我想我明白这个LC_*家庭的所作所为,LANG如果其中一个没有设置并且 LC_ALL 将所有LC_*变量设置为其值,那就是后备。

我还不知道,LANGUAGE是用来做什么的。这个符号en_GB:en让我想起了Accept-LanguageHTTP 标头。有了上面的设置,这意味着使用英式英语,如果存在翻译的话。否则将使用任何现有的英语翻译(en_US、en_AU、...等等)。

到目前为止我是对的吗?

还有哪些程序实际上遵守LANGUAGE设置?它与 相差多远LC_MESSAGES

不幸的是,man locale只记录了LC_*家人。在网上搜索“linux locale LANGUAGE”或类似的东西是一个静音点。(当然,语言是在谈论语言环境时经常使用的一个词,它也可能只显示在输出中locale而不被讨论)。

你们有人可以帮我吗?

Ign*_*ams 5

它覆盖$LC_ALL gettext 消息目录中给出的区域设置。否则,不会被使用。