如何在Ubuntu Server中更改默认区域设置?

我有一个远程服务器,我已经安装并尝试了几个小时,但未能成功将区域设置更改为法语。以下是我的区域设置文件的内容:
/etc/default/locale:
LANG="fr_FR.UTF-8"
LANGUAGE="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL="fr_FR.UTF-8

/var/lib/locales/supported.d/local:

fr_FR.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
en_GB.ISO-8859-15 ISO-8859-15
fr_BE.UTF-8 UTF-8
fr_CA.UTF-8 UTF-8
fr_CH.UTF-8 UTF-8
fr_LU.UTF-8 UTF-8
fr_FR ISO-8859-1

一切仍然默认为英文日期和美元货币在我的网络应用程序中。 我是否忽视了其他事情? 我还应该提到,在更改后,我已经重新配置了dpkg并重新启动了服务器。
3个回答

运行命令locale - 它应该显示您当前的语言环境。
为法语生成语言环境。
sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8

同时,尝试运行以下命令以重新生成支持的区域设置列表:
sudo dpkg-reconfigure locales

更新/更改当前默认语言环境:
sudo update-locale LANG=fr_FR.UTF-8

更新

尝试的额外步骤:

尝试: ``` sudo update-locale LANG="fr_FR.UTF-8" LANGUAGE="fr_FR" sudo dpkg-reconfigure locales ```
也许在`/etc/environment`中添加LANG和LANGUAGE可以强制更改。尝试注销/登录或重新启动。
`locale`命令将显示当前用户的当前区域设置。也许值得检查这些文件,以确保没有设置本地语言变量:`~/.profile`、`~/.bashrc`、`~/.bash_profile`。
更多信息:

1只是一个简单的问题。更改生效后,系统需要重新启动吗? - Dark Star1
2我觉得注销/登录应该可以解决这个问题。 - Savvas Radevic
希望它能够实现。最后我不得不将这些值硬编码到应用程序中并进行更新。 - Dark Star1
1尝试执行 sudo update-locale LANG="fr_FR.UTF-8" LANGUAGE="fr_FR"sudo dpkg-reconfigure locales 命令。最后,尝试在 /etc/environment 中添加 LANG 和 LANGUAGE 以强制更改。尝试重新启动,可能需要服务器服务。 :) - Savvas Radevic
还找到了这个问题和网站,可能会很有用:http://serverfault.com/questions/228474/correctly-changing-default-locale-in-ubuntu-server-10-04-lts - https://help.ubuntu.com/community/Locale - Savvas Radevic
1sudo update-locale var=locale 并重新启动对我在 Ubuntu Server 16.04 上有效。 - Daniel
1@DarkStar1 关于重新启动系统,我不得不重启。 - Alfonso Nishikawa
在.bashrc文件中设置的语言是问题所在。这个问题很棘手,不容易找到解决方法。只需更改语言,然后关闭并重新启动终端仿真器,问题就会解决。 - ttoine
工作得很好!谢谢 :) - systemdebt

你还需要编辑/etc/profile
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

很奇怪,很少有人提到这个。谢谢! - Martin Bramwell

我尝试了各种方法,从sudo locale-gen和sudo update-locale到sudo update-locale,还手动在/etc/default/locale和/etc/environment中进行条目的添加,有时候重启有时候不重启。
但是似乎没有任何方法奏效,我的Python代码在Ubuntu 18.04l上仍然报Unicode错误。最后,在~/.bashrc中修改环境变量才起作用。
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

当然不要忘记source ~/.bashrc 我知道这不是推荐的方法,但其他方法对我都没用。

当然,这必须对每个用户的.bashrc执行,并添加到新用户的skelton中..... - mckenzm
1所有上述的解决方案都没有起作用,只有这个对我的Ubuntu 18 Docker容器上的Elixir设置起了作用。谢谢! - xs2rashid