我有来自 bash 的消息,它已本地化,我想要英文消息,我的区域设置是:
$ locale
LANG=pl_PL.UTF-8
LANGUAGE=pl:en
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=
我尝试过:
LANG=en_US.UTF-8; type grunt
LC_ALL=en_US.UTF-8; type grunt
LC_MESSAGES=en_EN.UTF-8 && type grunt
export LC_MESSAGES=en_US.UTF-8; type grunt
但该消息不断以波兰语出现:
ścieżka do grunt jest zapamiętana (/usr/local/bin/grunt)
我怎样才能把这篇文章变成英文?
编辑
我跑过:
$ eval $(locale | sed -e 's/\(.*\)=.*/export \1=en_US.UTF-8/')
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
并输入 grunt show Polish 消息。
答案1
问题是你的分号/ &&
。按照您执行此操作的方式,外壳程序将您的分配作为单独的命令执行。因此,type
永远不会看到它。这样做:
LC_ALL=en_US.UTF-8 type grunt
这告诉您的 shell 临时设置环境变量LC_ALL=en_US.UTF-8
,执行type
,然后重置LC_ALL
为之前的值。