为什么覆盖LANG环境变量而不改变我的语言?

我正在尝试用另一种语言运行应用程序作为我当前的环境。 简单来说,我想改变ls的语言。

这是我在整个地方阅读的内容(请参阅下面的相关问题):将LANG设置为受支持的语言环境之一,例如:

 LANG=nl_NL.UTF-8 ls /nonexistent 

让它显示荷兰(NL)输出。

但是,我仍然得到英文输出:

 $ LANG=nl_NL.UTF-8 ls -al /nonexistent ls: cannot access /nonexistent: No such file or directory 

我目前的环境:

 $ locale LANG=en_GB.UTF-8 LANGUAGE=en_GB:en LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.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 nl_NL /usr/share/i18n/SUPPORTED nl_NL.UTF-8 UTF-8 nl_NL ISO-8859-1 nl_NL@euro ISO-8859-15 
  • 生成区域设置:

     sudo locale-gen nl_NL.UTF-8 

    sudo dpkg-reconfigure locales也显示它已生成。

  • 安装荷兰语语言包(已安装):

     sudo apt-get install language-pack-nl 

还有什么我试过的?

  • 使用export设置LANGLANGUAGE而不是在命令前添加。
  • 同时设置LC_ALL

具有讽刺意味的是,一些(只有一些!)GUI应用程序实际上是荷兰语,但我根本没有配置!

在此处输入图像描述

我在Kubuntu 12.04(.2),就此而言。

类似的问题(无济于事):

  • 是否可以暂时更改用户界面的语言?
  • 如何在单个命令上覆盖系统区域设置?
  • 暂时更改终端消息/警告/错误的语言 (certificate有效,但对我不起作用)
  • 如何将语言环境添加到ubuntu服务器?

我的系统出了什么问题? 哪里进一步调试?

因为LANGUAGE优先于LANG,所以设置并保持不变。

 $ LANGUAGE=nl ls /nonexistent ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet 

更多信息在GNU gettext文档中 :

为了消息处理,GNU gettext优先使用LANGUAGE而不是LC_ALL和LANG,但是你仍然需要将LANG(或LC_ALL)设置为主要语言; 这是系统库的其他部分所必需的。