如何根据现有区域设置和不同语言创建新区域设置?

如何根据现有区域设置和不同语言创建新区域设置?

我想创建一个en_IL.UTF-8区域设置:语言是英语(如果我需要具体,则为美国英语),但日期、数字等在以色列/巴勒斯坦很常见。

我需要做什么才能实现这一点?

注意:如果重要的话,发行版是 Devuan Beowulf 或 antiX 19.3。

答案1

不完整但有效的解决方案:

首先检查输出$ locale

然后阅读这些软件包的手册并安装(如果适合):

localelocaledeflocalehelperlocales-all, 和localepurge

我只locales-all在我的中安装并设置了它.bashrc

export LANG="en_GB"
export LANGUAGE="en_GB:en"
export LC_CTYPE="en_GB"
export LC_NUMERIC="de_DE"
export LC_TIME="de_DE"
export LC_COLLATE="de_DE"
export LC_MONETARY="es_MX"
export LC_MESSAGES="en_GB"
export LC_PAPER="de_DE"
export LC_NAME="de_DE"
export LC_ADDRESS="de_DE"
export LC_TELEPHONE="de_DE"
export LC_MEASUREMENT="es_MX"
export LC_IDENTIFICATION="de_DE"
export LC_ALL=

下次登录时,我的系统达到了预期的效果。

这样我就有了一个开销:未使用的语言环境存储在 arround 中250MiB(据我可以从中提取ncdu)。由于现在存储很便宜,我暂时保留这些。

答案2

这是我需要做的,创建一个新的语言环境:

找到一个最接近所需的区域设置,在我的例子中是en_US,现在:

cd /usr/share/i18n/locales
sudo cp en_US en_XX
sudo vim en_XX

当然,您不会使用en_XX,对于您的特定问题,它会类似于en_IL。在 Debian 上,文件中有相当不错的注释,使编辑它们变得很容易。我还查看了我所在国家/地区的文件,以获取地址字符串和纸张尺寸。

然后编译该语言环境很重要:

sudo localedef --no-archive -i en_XX  -f UTF-8 en_XX.UTF-8

最后可以实际设置它:

sudo localectl set-locale en_XX.UTF-8

相关内容