我使用 arch 并希望将我的整个系统的语言环境设置为C
(且仅C
)。C
未在里面列出/etc/locale.gen
(且仅en_US.UTF-8 UTF-8
被取消注释)但C
在 里面可以找到/usr/share/i18n/locales/
。
我运行命令localectl set-locale C
并注销/登录,命令locale
显示C
一切——很好。
我的问题是:
我是否需要注释掉
en_US.UTF-8 UTF-8
文件内的行locale.gen
并运行命令locale-gen
来从我的系统中删除其他不需要的区域设置残余?在运行命令之前
locale-gen
我是否应该附加C
到文件locale.gen
,如果是,<charmap>
它的标准是什么?
我查看了目录内部,/usr/share/i18n/charmaps/
但没有看到类似C.gz
内部的任何内容。是UTF-8.gz
正确的还是ANSI_X3.110-1983.gz
或一个ISO-*
/ISO_*
一?
我运行命令localectl list-locales
并看到:
C.UTF-8
en_US.UTF-8
这是否意味着我的语言环境并不完整且唯一,C
并且我还保留着其他不想要的残留?
C
aka语言环境POSIX
始终存在,它是默认语言环境。即使您创建一个名为
C
或POSIX
使用 的区域设置localedef
,它也将被忽略。如果特定
LC_*
类别设置为 C 或 POSIX,则表示setlocale()
该部分未本地化,您将获得默认的内置行为。在大多数系统上,
LC_CTYPE
默认的字符表ANSI_X3.4-1968
也就是 ASCII。(
C.utf8
在 GNU libc 的最新版本中添加,另请参阅https://sourceware.org/glibc/wiki/Proposals/C.UTF-8;在此之前,C.utf8
GNU 系统的下游分销商已经发布了该版本)。