我发现,在我的家庭服务器上,运行 Ubuntu Server 18.04,我选择了很多语言环境,实际上我不需要。我只想要en_US.UTF-8
and de_DE.UTF-8
,因为整个系统被配置为只使用这些。
所以,首先,我通过运行尝试了“Debian方式” dpkg-reconfigure locales
,然后取消选择了我真正想要的两个之外的所有内容。之后系统会自动重新生成语言环境,但不幸的是,比我选择的要多:
Generating locales (this might take a while)...
de_DE.UTF-8... done
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IL.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
然后我尝试直接编辑/etc/locale.gen
,但在那里一切都很好,因为只有我真正想要的两个没有被注释掉,所以它应该可以工作。我已经从上到下多次检查了该文件。
尽管如此,locale-gen
手动运行仍会产生与上述相同的结果。
所以我想知道这是一个错误还是一个功能?该文件是否可能缓存在某处,或者是否有另一个我不知道的配置文件?我已经尝试重新启动系统,但正如预期的那样,这并没有改变任何东西。
许多英语语言环境可能在那里,因为您安装了英语语言包。你应该通过运行看到它们:
因此,使列表更短的一种方法是删除英语语言包:
我找到了一个适用于我的解决方案,我发现它比接受的答案更完整。
如果我编辑我的语言环境编辑文件
/etc/locale.gen
或使用 command 选择它们dpkg-reconfigure locales
,当我选择一种语言的任何语言环境时,我会获得该语言所有变体的语言环境。例如,如果我只选择en_US.UTF-8
,我会得到这个列表:这显然不是我想要的。
我的解决方案: 使用之前的命令选择我喜欢的语言环境后,我在
/var/lib/locales/supported.d/
. 在我的示例中,我编辑了 file/var/lib/locales/supported.d/en
,其中包含我之前展示的语言环境的完整列表。我只留下这一行:然后我执行命令
sudo dpkg-reconfigure locales -f noninteractive
,我只得到了我喜欢的语言环境,而不是我不想要的所有变体。这适用于多种语言,我觉得对于具有多种变体(西班牙语、英语等)的语言非常有用。我希望这可以帮助像我这样处于这种情况的其他人。
在 Ubuntu 服务器 18.04 和 20.04 中测试。