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


11

我正在尝试使用其他语言作为当前环境来运行应用程序。首先,我想更改的语言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)。

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

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

Answers:


12

因为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)设置为主要语言。这是系统库的其他部分所必需的。


我发誓我已经尝试过了。但是,查看我的shell历史记录,我认为这是因为我仅生成语言环境之前尝试过此操作。您能否提供“ LANGUAGE优先于LANG”的来源?感谢您的注意。
gertvdijk

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.