昨天我关闭了我的电脑,今天当我打开它并登录到 12.04 时,某些字符串是日文/中文(我不知道如何区分两者)。字符串是:
我怎样才能把一切都改回英文?
我在 Ubuntu 12.04 中使用 Gnome classic。
我知道为了理解命令的工作原理,我们应该使用手册页。但是对于命令 locale 和 locale-gen。我没有得到确切的含义和他们的职责。我需要更多关于他们的工作以及locale和locale-gen之间关系的描述。基于 man 语言环境:
locale - 获取特定于语言环境的信息。
确定什么是语言环境?
描述 语言环境程序写入有关当前语言环境的信息???ment 或所有区域设置到标准输出。
什么是locale环境?
我刚刚使用debootstrap. 当我这样做时sudo aptitude upgrade,我收到此错误消息:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file …Run Code Online (Sandbox Code Playgroud) LANGUAGE 环境变量设置在哪个配置文件中?(或者我怎样才能通过其他方式改变它?)
背景:我在 kubuntu 中玩弄语言设置并意外安装了俄语。现在它不会完全消失。是的,GUI 中显示的是英语,但命令行中显示的是俄语。据我所知,这是由于 LANGUAGE 环境变量造成的。见第三行:
leon@leon-Desktop:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en:ru:en
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=
Run Code Online (Sandbox Code Playgroud)
除 LANGUAGE 外,所有设置都正确。我已经阅读了许多有关如何配置语言环境/语言的说明,但似乎没有任何改变 LANGUAGE(尽管它们更改了其他环境变量,例如 LANG)。所以,我对如何更改语言环境的概述不感兴趣。我需要特别知道如何更改 LANGUAGE (除非我完全误解了这种情况)。值得一提的是,LANG 设置在 /etc/default/locale 中,但 LANGUAGE 未设置在那里。(我尝试在那里设置 LANGUAGE,但它以某种方式被覆盖。)如果我手动将 LANGUAGE 设置为 en,那么该特定 shell 工作正常,所以我认为只需要更改 LANGUAGE。
编辑:
只是为了说明,在 /etc/default/locale中设置 LANGAUGE没有帮助。此外, ~/.pam_environment 不存在。
见下文。LANGUAGE 在 /etc/default/locale 中设置为“en”。我重新启动了机器。我验证了 /etc/default/locale.conf 的内容。但是,apt-get 仍然以俄语输出,因为 LANGUAGE 在其他地方被覆盖(从语言环境生成上述输出)。
leon@leon-Desktop:~$ cat /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en"
leon@leon-Desktop:~$ cat ~/.pam_environment
cat: /home/leon/.pam_environment: No such file or directory
leon@leon-Desktop:~$ sudo …Run Code Online (Sandbox Code Playgroud) 所以我想创建一种具有公制/SI 测量、A4 纸张尺寸、ISO 日期格式等的国际美国英语语言环境。
据我了解,语言环境在/usr/share/i18n/locales. 我是否可以将语言环境放在此处并在选择语言环境时被识别?我会为这个语言环境命名文件吗?在哪里可以找到有关各种设置的文件格式和有效值的信息?
LC_NUMERIC由于点和逗号,我需要更改为英语(我有西班牙语的 Ubuntu),但是如果我LC_NUMERIC="en_US.UTF-8"在退出终端并再次打开它时使用,LC_NUMERIC又是西班牙语。
有谁知道如何解决这个问题?
我发现,在我的家庭服务器上,运行 Ubuntu Server 18.04,我选择了很多区域设置,但实际上我不需要。我只想要en_US.UTF-8和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
Run Code Online (Sandbox Code Playgroud)
然后我尝试直接编辑/etc/locale.gen,但一切都很好,因为只有我真正想要的两个没有被注释掉,所以它应该可以工作。我已经从上到下多次检查了该文件。
尽管如此,locale-gen手动运行会产生与上面相同的结果。
所以我想知道这是一个错误还是一个功能?该文件是否可能缓存在某处,或者是否存在我不知道的另一个配置文件?我已经尝试过重新启动系统,但正如预期的那样,这并没有改变任何东西。
我听说可以用不同的语言构建自定义版本的 Ubuntu。这些是什么,我该如何制作?
我曾多次潜入迷宫般的语言环境配置系统,阅读手册页和浏览 Internet。我读过的每一篇博客/教程/问答要么不完整、冒险、超复杂、冒险、矛盾、错误、难以理解、不合时宜的解释,要么全部同时发生,而且从不解释如何撤消他们建议的更改.
在安装普通的 Ubuntu 桌面时,我想要这些合理的设置:
在 Windows 中配置这几件事是一件非常简单的事情,但在 Ubuntu 中它似乎是一个可怕的噩梦。
例如,我可能想要:
有人可以帮忙吗?
我仍在等待这个常见问题的答案。
有没有明确简单的方法来做到这一点?
我已经设置了一个全新的 Ubuntu 16.04 服务器,但是当我尝试永久更改语言环境设置时,它失败并恢复为 POSIX 语言环境。
键入会locale产生以下结果:
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
据我所知,这意味着根本没有设置语言环境,因为文档指出 POSIX 是“后备、ASCII 编码,与 C 相同”。
为了确保语言环境de_AT.utf8和en_US.utf8存在我的系统上,我跑了locale -a,这产生了:
C
C.UTF-8
POSIX
de_AT.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
Run Code Online (Sandbox Code Playgroud)
请注意与 的不一致C.UTF-8,但是de_AT.utf8!更让我担心的是 POSIX 是第三个条目,而在不同的工作系统上,它是列表的最后一个。
为了将我的语言更改为en_US.utf8,我输入了sudo …