我知道为了理解命令的工作原理,我们应该使用手册页。但对于命令 locale 和 locale-gen,我不明白它们的确切含义和作用。我需要更多关于它们的作用以及它们之间的关系的描述区域设置和本地化. 根据 man locale:
locale-获取特定于语言环境的信息。
好的,什么是语言环境?
描述 区域设置程序将有关当前区域设置环境或所有区域设置的信息写入标准输出。
什么是区域环境?
答案1
来自维基百科:
在计算领域,区域设置是一组参数,用于定义用户的语言、国家/地区以及用户希望在用户界面中看到的任何特殊变体偏好。通常,区域设置标识符至少包含一个语言标识符和一个地区标识符。
程序locale
将输出一组 shell 变量及其值。这些变量会改变某些命令的行为,包括语言、字符集使用等。从我的系统来看:
benoit@thorgal:~s locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
benoit@thorgal:~$
这会告诉那些监听的命令使用美式英语和 UTF8 编码来处理特殊字符。如果我更改语言并改为使用 fr_FR.UTF-8,则支持该命令的命令将以法语而不是英语输出。当然,前提是安装了法语翻译。
对于该locale-gen
命令,我认为其手册页的第一段是不言自明的:
编译后的语言环境文件大约占用 50MB 的磁盘空间,而大多数用户只需要少数几个语言环境。为了节省磁盘空间,编译后的语言环境文件不包含在 locales 包中,但安装此包时,通过运行 locale-gen 程序会自动生成选定的语言环境。
当您运行locale-gen
或locale-gen <locale code>
编译所需的语言环境文件时,允许命令使用由 显示的环境变量中指定的语言环境locale
。
例子:locale-gen en_US.UTF8
您可以使用命令获取可用的区域设置代码locale -a
。