在 CentOS 8 上,当我尝试将 LANG 变量更改为意大利语时,它没有改变。这是我正在做的一个例子。
LANG=it_IT.UTF-8
然后,如果我这样做,ls --help
我仍然会以英语显示结果。
谢谢。
答案1
要使其发挥作用,需要满足以下几个条件:
- 该
it_IT.UTF-8
区域设置必须在系统上可用。查看locale -a | grep it
- 相应应用程序的意大利语翻译必须可用(对于 GNU
ls
,通常类似于/usr/share/locale/it/LC_MESSAGES/coreutils.mo
CentOS 等 GNU 系统)。 - 该
LANG
变量必须导出到环境中才能ls
访问它 (export LANG
)。 - 特别是对于消息语言设置,在 GNU 系统上,
$LANGUAGE
优先于LANG
和LC_*
变量(除非LC_MESSAGE
,LANG
或LC_ALL
设置为 C/POSIX 语言环境)。因此,如果您有LANGUAGE=fr:en:it
,即使您将其他所有设置为 ,您也会收到法语消息(如果可用)it_IT.UTF-8
。 - 对于消息语言设置,
LC_MESSAGES
优先于LANG
并LC_ALL
优先于其他所有内容(除非LANGUAGE
它是C
/POSIX
,如上所示)。
的输出locale
应该为您提供当前设置的摘要。env | grep -e LANG -e LC_
应该给你一个与区域设置相关的列表环境当前设置的变量。
答案2
LANG
是 20 世纪 80 年代 Sun Microsystems 开发当前本地化基础知识时的旧环境变量。
该变量仍在使用中,但仅用作备用,以防官方标准中的其他变量未定义。
搜索顺序是:
LC_ALL 用于覆盖全部
LC_MESSAGES 和类似的正常使用
LANG 如果 LC_ALL 和区域设置类型特定定义都不可用。
如果您想覆盖,请使用记录的 LC_ALL。
答案3
尝试LC_ALL=it_IT.UTF-8
除LANGUAGE=it_IT.UTF-8
之外LANG=it_IT.UTF-8
。
检查您当前的区域设置是否正确设置locale
。
还要检查it_IT.UTF-8
区域设置是否可用locale -a
。
我只需进行设置LANGUAGE=it_IT.UTF-8
即可更改消息文本,例如help
或man
页面中的消息文本。请记住,这LANGUAGE
会设置存在翻译的消息的语言。所以ls --help
可能不完全是意大利语。
答案4
tmux
我在 Ubuntu 上使用它时无法显示图标等。
通过使用
export LANG=en_IN.utf-8
它解决了问题。我用来正确显示的另一种方法是使用tmux -u
.