如果使用您所在国家/地区的非官方语言进行设置,如何更改/修复系统的区域设置?

如何为计算机设置全局区域设置?

我最近用英语安装了Kubuntu 14.04LTS,但由于我在西class牙,我选择了西class牙作为国家,然后改变了语言环境选项,以便我得到所有国家特定的配置,如数字分组,小数分隔符,日期格式等。我也添加了西class牙语。

现在所有应用程序都抱怨语言环境错误。 check-language-support告诉我我正在使用en_ES.UTF-8作为系统的语言环境,并且该语言环境确实是错误的,西class牙语中没有英语语言环境。

我尝试使用Kubuntu的国家/地区和语言设置,但它没有修复它。 我尝试使用export LANG=en_GB.UTF-8export LC_ALL=en_GB.UTF-8然后sudo dpkg-reconfigure locales ,这导致check-language-support说我现在有一个正确的配置,但如果是,那就是只在那个konsole会议上。 这个问题也阻止konsole显示unicode字符,我不能使用死键或输入任何“国际字符”,如ñ或ç(那些适用于其他应用程序,如Firefox,我用来发布这个问题)。

所以问题是:如何为计算机设置全局区域设置?

这不是错误报告,如果我无法修复它,我最终可能会重新安装我的电脑。 但我真的想知道如何执行这个非常基本的任务。

谢谢。

 $ check-language-support perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en:es:en", LC_ALL = (unset), LC_PAPER = "en_ES.UTF-8", LC_ADDRESS = "en_ES.UTF-8", LC_MONETARY = "en_ES.UTF-8", LC_NUMERIC = "en_ES.UTF-8", LC_TELEPHONE = "en_ES.UTF-8", LC_IDENTIFICATION = "en_ES.UTF-8", LC_MEASUREMENT = "en_ES.UTF-8", LC_TIME = "en_ES.UTF-8", LC_NAME = "en_ES.UTF-8", LANG = "en_ES.UTF-8" 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_COLLATE to default locale: No such file or directory hunspell-en-ca libreoffice-help-en-gb libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au wspanish $ cat /etc/default/locale LANG="en_US.UTF-8" LC_NUMERIC="es_ES.UTF-8" LC_TIME="es_ES.UTF-8" LC_MONETARY="es_ES.UTF-8" LC_PAPER="es_ES.UTF-8" LC_NAME="es_ES.UTF-8" LC_ADDRESS="es_ES.UTF-8" LC_TELEPHONE="es_ES.UTF-8" LC_MEASUREMENT="es_ES.UTF-8" LC_IDENTIFICATION="es_ES.UTF-8" $ locale 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 or directory LANG=en_ES.UTF-8 LANGUAGE=en:es:en LC_CTYPE="en_ES.UTF-8" LC_NUMERIC=en_ES.UTF-8 LC_TIME=en_ES.UTF-8 LC_COLLATE="en_ES.UTF-8" LC_MONETARY=en_ES.UTF-8 LC_MESSAGES="en_ES.UTF-8" LC_PAPER=en_ES.UTF-8 LC_NAME=en_ES.UTF-8 LC_ADDRESS=en_ES.UTF-8 LC_TELEPHONE=en_ES.UTF-8 LC_MEASUREMENT=en_ES.UTF-8 LC_IDENTIFICATION=en_ES.UTF-8 LC_ALL= $ update-locale perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en:es:en", LC_ALL = (unset), LC_PAPER = "en_ES.UTF-8", LC_ADDRESS = "en_ES.UTF-8", LC_MONETARY = "en_ES.UTF-8", LC_NUMERIC = "en_ES.UTF-8", LC_TELEPHONE = "en_ES.UTF-8", LC_IDENTIFICATION = "en_ES.UTF-8", LC_MEASUREMENT = "en_ES.UTF-8", LC_TIME = "en_ES.UTF-8", LC_NAME = "en_ES.UTF-8", LANG = "en_ES.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). 

此处报告了错误: https : //bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 – “更改国家/地区会导致无效的区域设置”

解决方法:

  1. 选择国家英国英语 – 不是美国英语(然后是西class牙语)
  2. 或者在更改国家/地区和语言设置后手动编辑~/.kde/env/setlocale.sh

我按照以下步骤解决了这个问题。 我一直在研究语言环境如何工作以及某些发行版之间的不同配置集(最初是Debian Based)。

我使用Linux Mint作为我的主要系统发行版,使用Debian作为我的系统服务器。

尽管Ubuntu源自Debian,但语言环境设置略有不同。

1)validation系统中安装和生成的区域设置:

 sudo locale -a 

2)使用以下命令删除不需要的语言环境:

 sudo localedef --delete-from-archive  

例如:

 sudo localedef --delete-from-archive en_AG 

位于/etc/default/locale的默认配置由系统语言应用程序生成的个人(仅限本地用户)设置覆盖。 这些设置位于$HOME/.pam_environment$HOME =您的主文件夹的位置)。

清空此文件并编写您可能需要的配置。

我的.pam_environment文件:

 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_NUMERIC=pt_BR.UTF-8 LC_TIME=pt_BR.UTF-8 LC_MONETARY=pt_BR.UTF-8 LC_PAPER=pt_BR.UTF-8 LC_IDENTIFICATION=pt_BR.UTF-8 LC_NAME=pt_BR.UTF-8 LC_ADDRESS=pt_BR.UTF-8 LC_TELEPHONE=pt_BR.UTF-8 LC_MEASUREMENT=pt_BR.UTF-8 LC_CTYPE=pt_BR.UTF-8 

LANG变量将未配置的LC_ *设置为在那里配置的值集。 例如:

如果系统查找LC_TIME变量并且未设置,则它将使用LANG值作为该变量的默认值(在本例中为LC_TIME)。

我的.pam_environment基本上说:将几乎所有变量设置为pt_BR.UTF-8 ,将系统语言设置为英语。

我希望这些信息可能是有用的。

您将需要使用update-locale命令。 访问该页面,了解如何使用它。 你基本上运行它(使用sudo),并使用参数设置语言环境的方式。 这个“修改全局区域设置”符合您的要求。

编辑1:如果前一个不适合您,您也可以查看locale-gen 。

就像Freddy Vulto在他的回答中评论的那样,这是一个已知的错误报告: https ://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

如果您需要手动修复错误报告,请查看它。 它可以修复调用〜/ .kde / env / setlocale.sh(可能在修改后),以及其他可能的修复。

另一个解决方案是将英语(西class牙)改为英语(美国):

echo en_ES.UTF-8 en_US.UTF-8 >> /etc/locale.aliases

如上所述,我设法通过将系统语言从美式英语更改为英式英语来暂时解决问题。 我是通过KDE系统设置>区域设置>语言对话框完成的。 有趣的是,它显示一条错误消息,说不允许替换当前语言,但实际上是因为当我点击“apply”按钮并重新启动机器时应用了新设置。

我的系统遇到了同样的问题:Kubuntu 16.04 LTS(内核:4.4.0-31-通用(x86_64))。 但我以非常简单的方式解决了它:

在“ 个性化 ”选项卡下的“ 系统设置 ”中,单击“ 区域设置 ”。 从右侧菜单中选择“ 格式 ”。 在左侧选中“ 详细设置 ”,将每个细节(如数字或时间)更改为所需的语言和区域。

(系统设置>区域设置>格式>详细设置)

我知道这是基本的,但对某人有用。

伙计们,你为什么要疯了? 您只需要搜索栏或Unity Lens(如果是Ubuntu)键入“语言”,您将找到“国家/地区和语言”应用程序。 在“国家/地区”选项卡中选择所需的区域设置语言。

如果要保留当前区域设置并更改其他选项(如日期格式或英制到公制测量),请使用其他选项卡! 🙂

这在Ubuntu发行版14.04 LTS及更高版本中可用。