更改 zypper 语言

更改 zypper 语言

我刚刚安装了 openSUSE Leap 42.2。我在语言设置上遇到了困难。

我希望计算机能跟我说英语,但我希望我的格式是瑞典语,所以我将设置更改为瑞典语和英语的混合。

在 Ubuntu 中,设置/etc/default/locale如下通常会给出我喜欢的内容:

LANG=en_US.UTF-8
LC_CTYPE=sv_SE.UTF-8
LC_NUMERIC=sv_SE.UTF-8
LC_TIME=sv_SE.UTF-8
LC_COLLATE=sv_SE.UTF-8
LC_MONETARY=sv_SE.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=sv_SE.UTF-8
LC_NAME=sv_SE.UTF-8
LC_ADDRESS=sv_SE.UTF-8
LC_TELEPHONE=sv_SE.UTF-8
LC_MEASUREMENT=sv_SE.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

在 openSUSE 中这似乎不是正确的方法。

相反,我在主文件夹中的几个文件中将 sv_SE 更改为 en_US 。

~/.config/plasma-locale-settings.sh
~/.config/plasma-localerc
~/.i18n
~/.profile

第一次尝试使用 gui 工具设置语言后: 亚斯特1 亚斯特2

现在locale给出了我所期望的,如图所示,大多数对话框都说英语,但 zypper 似乎并不关心:

user@computer:~> locale
LANG=en_US.UTF-8
LC_CTYPE=sv_SE.UTF-8
LC_NUMERIC=sv_SE.UTF-8
LC_TIME=sv_SE.UTF-8
LC_COLLATE=sv_SE.UTF-8
LC_MONETARY=sv_SE.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=sv_SE.UTF-8
LC_NAME=sv_SE.UTF-8
LC_ADDRESS=sv_SE.UTF-8
LC_TELEPHONE=sv_SE.UTF-8
LC_MEASUREMENT=sv_SE.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

user@computer:~> zypper search | head -3
Läser in förrådsdata...
Läser installerade paket...

我怎样才能说服 zypper 跟我说英语?

尝试通过使用而不是混合使用来解决该问题并不是en_DK很成功:en_USsv_SE

设置 en_DK 产生这个错误

即使每个 LC_variable 设置为 en_US,系统仍坚持使用瑞典语,因此一定还有其他因素影响显示的语言:

user@computer:~> locale | grep sv_SE 
LC_CTYPE=sv_SE.UTF-8
LC_NUMERIC=sv_SE.UTF-8
LC_TIME=sv_SE.UTF-8
LC_COLLATE=sv_SE.UTF-8
LC_MONETARY=sv_SE.UTF-8
LC_PAPER=sv_SE.UTF-8
LC_NAME=sv_SE.UTF-8
LC_ADDRESS=sv_SE.UTF-8
LC_TELEPHONE=sv_SE.UTF-8
LC_MEASUREMENT=sv_SE.UTF-8
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_CTYPE
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_NUMERIC
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_TIME
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_COLLATE
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_MONETARY
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_PAPER
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_NAME
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_ADDRESS
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_TELEPHONE
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref
LC_MEASUREMENT
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> NEXT=`locale | grep sv_SE | awk -F '=' '{ print $1 }' | head -1`; echo $NEXT; export $NEXT=en_US.UTF-8; zypper ref

bash: export: "=en_US.UTF-8": inte en giltig identifierare
Root-behörigheter krävs för att uppdatera systemarkiv.
user@computer:~> locale
LANG=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 并重新启动会教 zypper 英语:

user@computer:~> locale
LANG=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=
user@computer:~> zypper ref
Root privileges are required for refreshing system repositories.

答案1

export LC_ALL=C之前可以执行zypper ....

例如:

# export LC_ALL=C
# zypper dup
Warning: You are about to do a distribution upgrade with all enabled
repositories. Make sure these repositories are compatible before you
continue. See 'man zypper' for more information about this command.
Loading repository data...
Reading installed packages...
Computing distribution upgrade...
...
...

答案2

将所有内容设置回英语后,我可以通过以下方式获得所需的行为:

右键单击时钟 - 选择设置时间格式...- 选择详细设置并激活瑞典语以进行所有详细设置:

语言设定

之后验证区域设置,我想也许可能LC_CTYPE是骗子。但是我设置为瑞典语的许多 LC_variables 现在都是英语,因此需要更多修改才能确定。

user@computer:~> zypper ref
Root privileges are required for refreshing system repositories.
user@computer:~> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=sv_SE.UTF-8
LC_TIME=sv_SE.UTF-8
LC_COLLATE=sv_SE.UTF-8
LC_MONETARY=sv_SE.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=sv_SE.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

相关内容