如何在Debian上安装/更改语言环境?

我已经编写了一个用户界面使用荷兰语的Web应用程序。 我使用系统的date和时间例程来格式化应用程序中的datestring。 但是,系统格式的datestring是英文的,但我想用荷兰语,所以我需要设置系统的语言环境。 我如何在Debian上做到这一点? 我尝试设置LC_ALL=nl_NL但它似乎没有任何影响:

 $ date Sat Aug 15 14:31:31 UTC 2009 $ LC_ALL=nl_NL date Sat Aug 15 14:31:36 UTC 2009 

我记得在我的Ubuntu桌面系统上设置LC_ALL可以正常工作。 我是否需要安装额外的软件包来完成这项工作,还是我完全错了?

编辑/etc/default/locale并将内容设置为:

 LANG="nl_NL.UTF-8" 

你可以检查你目前使用的语言环境:

 # locale -a 

您可以通过编辑/etc/locale.gen来生成更多信息,并取消注释要启用的语言环境的行。 然后你可以通过运行生成它们:

 # locale-gen 

您可以在/usr/share/i18n/SUPPORTEDfind支持的语言环境列表

Debian wiki上有更多的信息。

您可能需要安装locales包。 这会问你要生成哪些语言环境。 如果已经安装,那么dpkg-reconfigure locales可以让你生成更多的语言环境。

这些答案都没有为我工作,在LXC容器上安装:

 lxc-create -n sse-master -t download -n sse-master -- \ -d debian -r jessie --arch i386 

我总是从locale-gen获得以下输出,即不生成任何语言环境(没有列出):

 $ sudo locale-gen Generating locales (this might take a while)... Generation complete. 

运行dpkg-reconfigure locales并select一些语言环境并没有像我期望的那样更新/etc/locale.gen

但是,当我手动修改该文件并取消注释所需的语言环境时, locale-gen开始正常工作:

 $ sudo locale-gen Generating locales (this might take a while)... en_GB.UTF-8... done en_US.UTF-8... done Generation complete. 

我也能够像这样手动生成区域设置:

 sudo localedef -i en_US -f UTF-8 en_US.UTF-8 sudo localedef -i en_GB -f UTF-8 en_GB.UTF-8 

但是这不是一个永久性的解决scheme:我发现在没有--keep-existing选项的情况下运行locale-gen会删除所有这些手动生成的语言环境,也就是说,在/etc/locale.gen没有列出(和未注释)的所有语言环境。

对于Web应用程序,最好在程序中使用setlocale (),而不要求在系统外部正确设置系统默认语言环境。 这种方式不太松散。

但首先你需要安装所需的语言包。 在我的德国VPS上,没有预装英语语言包。 所以首先你检查你是否安装了它:

 aptitude install language-pack-en