Bash语言变量逻辑

Bash语言变量逻辑,bash,internationalization,Bash,Internationalization,有人能给我解释一下语言环境变量的逻辑吗。我不明白为什么这里的第二个,尤其是第三个例子是用法语写的。他们不是都应该用英语吗 $ LANGUAGE=en_US gerp No command 'gerp' found, did you mean: Command 'grep' from package 'grep' (main) $ LANGUAGE=en_US:fr gerp La commande « gerp » est introuvable, vouliez-vous dire : La

有人能给我解释一下语言环境变量的逻辑吗。我不明白为什么这里的第二个,尤其是第三个例子是用法语写的。他们不是都应该用英语吗

$ LANGUAGE=en_US gerp
No command 'gerp' found, did you mean: Command 'grep' from package 'grep' (main)
$ LANGUAGE=en_US:fr gerp
La commande « gerp » est introuvable, vouliez-vous dire : La commande « grep » du paquet « grep » (main)
$ LANGUAGE=en_US:fr:it gerp
La commande « gerp » est introuvable, vouliez-vous dire : La commande « grep » du paquet « grep » (main)

我做了一些测试,它似乎通过了列表,并停留在已知的第一语言。而且
en_US
似乎不是一种有效的
语言
代码。顺便说一下,两者都不是。似乎
bash
只有在没有设置其他语言的情况下才使用英语

[bf@bf-laptop ~]$ LANGUAGE=en:it gerp
bash: gerp: comando non trovato...
Un comando simile è: 'grep'

[bf@bf-laptop ~]$ LANGUAGE=foo:bar:fr gerp
bash: gerp: commande inconnue...
Commande similaire : 'grep'
该变量在
gettext
库中使用。那里的文件说明:

默认情况下,显示的是英文消息,而不是不存在的翻译


gettext
库使用,而不是直接由
bash
使用。@chepner感谢您的链接。我已经更新了我的答案。KDE[区域设置][翻译][首选语言]似乎设置了bash使用的语言变量,因此如果我选择美式英语、法语和意大利语(按顺序),我希望bash能够以英语显示消息。这是gettext中的错误吗?我不知道这是怎么设计的。