linux - 如何找出弄乱我的语言环境设置的原因?
问题描述
某些东西弄乱了我的语言环境设置,我无法找出发生这种情况的位置和原因。我在 Manjaro 系统上,但几天前安装了带有双引导选项的 Ubuntu。问题从那时开始。
/etc/locale.gen
...
#en_BW ISO-8859-1
#en_CA.UTF-8 UTF-8
#en_CA ISO-8859-1
en_DK.UTF-8 UTF-8
#en_DK ISO-8859-1
#en_GB.UTF-8 UTF-8
...
sudo locale-gen 被称为
/etc/default/locale
LANG=en_DK.utf8
LC_CTYPE="en_DK.utf8"
LC_NUMERIC=en_DK.UTF-8
LC_TIME=en_DK.UTF-8
LC_COLLATE="en_DK.utf8"
LC_MONETARY=en_DK.UTF-8
LC_MESSAGES="en_DK.utf8"
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=
/etc/locale.conf
LANG=en_DK.UTF-8
manjaro 设置管理器:
everything set to en_DK.UTF-8
在 bashrc、zshrc、~/.profile 中没有进一步的导出
输出语言环境:
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_DK.UTF-8
LC_CTYPE="en_DK.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_DK.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_DK.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
解决方案
通过使用解决了这个问题
grep -rnw '.' -e 'en_GB.UTF-8'
找出 Ubuntu 在 ~/.pam_environment 中设置的语言环境以某种方式覆盖了系统默认值。更换这些后,一切都很好。
也许这会为某人省去一些麻烦。
推荐阅读
- prolog - 规则 CLIPS 到 PROLOG
- java - 使用 replaceall() 删除任何与模式不匹配的字符串
- f# - 改进我的牛顿方法的 F# 实现以找到根源
- android - 在搜索栏中的两个连续进度点之间添加平滑动画
- java - 将图标添加到 viewPager 内的选项卡
- java - IntelliJ 2018.3 CE 中的测试运行器选项卡未显示
- macros - 当内部宏接受参数时,如何定义定义另一个宏的宏?
- c# - configuration.getValue 或 configuration.getsection 总是返回 null
- windows - 运行 Gradle 应用程序分发时的编码问题
- c++ - 在配置脚本名称中查找具有指定版本的包