您尚未登录。

#1 2018-09-09 11:42:44

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

为什么我的一些程序是中文显示,其余的不是

本是想统一用默认的英文就可以,但是shell里的输出是中文,ss-qt5也是中文,不知道哪儿设置的

$ printenv | grep -i ang
LANG=en_US.UTF-8
LANGUAGE=en_US:zh_CN:zh_TW:ja

================

十五樓上了圖

最近编辑记录 foodtooth (2018-10-13 11:22:44)

离线

#2 2018-09-09 12:29:04

Kurobac
小白
注册时间: 2018-05-12
帖子: 85

Re: 为什么我的一些程序是中文显示,其余的不是

这个问题我前两天也碰到过……无论locale是啥终端输出都是中文。
没深究原因,后来直接把~/.config/locale.conf删掉就好了。
不过还是不知道ss-qt5的语言是哪来的……

最近编辑记录 Kurobac (2018-09-09 13:11:09)


# pacman -Syu

离线

#3 2018-09-09 19:08:10

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,368
个人网站

Re: 为什么我的一些程序是中文显示,其余的不是

在线

#4 2018-09-09 20:59:31

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 为什么我的一些程序是中文显示,其余的不是

看你的程序是咋启动的,肯定有某个配置文件写了local呗,localectl看下系统级设置,用户是不是有.pam_environment之类的,bash是不是有.bash_profile,图形界面启动的时候是不是xinit启动的导致会读.xinitrc ,你的终端模拟器软件是不是有什么配置项设置了shell进程的环境变量。有的程序压根不管环境变量自己走一套配置,或者本地化不到位支持七国语言不带中文导致fallback到英文UI.


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#5 2018-09-16 23:15:02

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

Kurobac 说:

这个问题我前两天也碰到过……无论locale是啥终端输出都是中文。
没深究原因,后来直接把~/.config/locale.conf删掉就好了。
不过还是不知道ss-qt5的语言是哪来的……

我這兒並沒有那個文件……或者類似的文件

$ ls ~/.config/lo*
ls: 无法访问'/home/mike/.config/lo*': 没有那个文件或目录

离线

#6 2018-09-16 23:16:58

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

依云 说:

這工具好像可以搞清每個程序的lang設置……不過裝得好慢啊,掛了vpn都搞不定

這能知道異常的設置是在哪來的?

离线

#7 2018-09-16 23:26:37

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

xtricman 说:

看你的程序是咋启动的,肯定有某个配置文件写了local呗,localectl看下系统级设置,用户是不是有.pam_environment之类的,bash是不是有.bash_profile,图形界面启动的时候是不是xinit启动的导致会读.xinitrc ,你的终端模拟器软件是不是有什么配置项设置了shell进程的环境变量。有的程序压根不管环境变量自己走一套配置,或者本地化不到位支持七国语言不带中文导致fallback到英文UI.

1. 程序就是kde左下角的menu裏起的,用的是desktop那種配置文件?
2.

$ localectl 
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: n/a

3.

$ cat ~/.pam_environment 
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

4.

$ cat ~/.bash_profile 
#
# ~/.bash_profile
#

[[ -f ~/.bashrc ]] && . ~/.bashrc
$ cat ~/.bashrc 
#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '

5. plasma是sddm起的
6. 這邊是想統一用英文啊,settings裏面首選英文,然後是簡體中文等等。但是像ss-qt就是菜單欄 + 各條目都是中文顯示。terminal是菜單欄、配置等都是英文,一用上某些命令就是中文輸出(比如yay -Syu)
7. konsole settings裏面的environment設置是這樣的……

TERM=xterm-256color
COLORTERM=truecolor

离线

#8 2018-09-16 23:48:07

Kurobac
小白
注册时间: 2018-05-12
帖子: 85

Re: 为什么我的一些程序是中文显示,其余的不是

foodtooth 说:
Kurobac 说:

这个问题我前两天也碰到过……无论locale是啥终端输出都是中文。
没深究原因,后来直接把~/.config/locale.conf删掉就好了。
不过还是不知道ss-qt5的语言是哪来的……

我這兒並沒有那個文件……或者類似的文件

$ ls ~/.config/lo*
ls: 无法访问'/home/mike/.config/lo*': 没有那个文件或目录

我也不大清楚这个是怎么“解决”的。我当时怎么也想不出来什么配置会既影响tty也影响终端模拟器,影响bash也影响zsh。即使运行程序时指定LANG照样不行…
而且我可以确定某个时间之前这个配置是工作正常的。因为我在zshrc里面写了一条是tty就把locale改到英文,之前一直工作正常直到某一天发现tty乱码…
而删掉用户级别的locale.conf就好了让我更摸不到头脑…这个文件和/etc/locale.conf的内容完全相同…
要说是bug我当时建了个新用户却完全正常…


# pacman -Syu

离线

#9 2018-09-17 00:33:08

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,368
个人网站

Re: 为什么我的一些程序是中文显示,其余的不是

foodtooth 说:
依云 说:

這工具好像可以搞清每個程序的lang設置……不過裝得好慢啊,掛了vpn都搞不定

這能知道異常的設置是在哪來的?

国内的话,可以用 ustc 的 crates.io 源。

不能知道异常从哪里来,但是看到异常的分布,可以做一些猜测。


PS: 如果你有耐心的话,也可以去 htop 里边一个个进程按 e 检查环境变量。
PPS: 如果你会编程的话,自己写一个类似的程序很容易的。

在线

#10 2018-09-17 00:35:25

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,368
个人网站

Re: 为什么我的一些程序是中文显示,其余的不是

foodtooth 说:

6. 這邊是想統一用英文啊,settings裏面首選英文,然後是簡體中文等等。但是像ss-qt就是菜單欄 + 各條目都是中文顯示。terminal是菜單欄、配置等都是英文,一用上某些命令就是中文輸出(比如yay -Syu)

shell 里执行 locale 命令,应该能看到语言设置是中文的。然后你追踪一下它是从哪里来的?(可以使用 strace)

在线

#11 2018-09-24 17:21:58

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

依云 说:
foodtooth 说:
依云 说:

這工具好像可以搞清每個程序的lang設置……不過裝得好慢啊,掛了vpn都搞不定

這能知道異常的設置是在哪來的?

国内的话,可以用 ustc 的 crates.io 源。

不能知道异常从哪里来,但是看到异常的分布,可以做一些猜测。


PS: 如果你有耐心的话,也可以去 htop 里边一个个进程按 e 检查环境变量。
PPS: 如果你会编程的话,自己写一个类似的程序很容易的。

來一起看看分佈呀

$ .cargo/bin/compare-env LANG
    6 Nothing ([565, 604, 608, 1094, 1098, 1121])
   50 Value("en_US.UTF-8") ([558, 566, 574, 603, 605, 615, 621, 632, 643, 655, 657, 659, 671, 673, 678, 681, 718, 720, 738, 744, 748, 774, 785, 797, 802, 808, 819, 827, 828, 834, 875, 878, 879, 880, 881, 882, 892, 901, 905, 906, 908, 909, 911, 914, 989, 1556, 1946, 2013, 13214, 13954])
  168 Fail ([1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 60, 102, 103, 104, 105, 106, 107, 116, 129, 167, 170, 171, 172, 173, 179, 180, 203, 204, 213, 224, 234, 235, 237, 246, 250, 289, 294, 299, 331, 364, 369, 370, 371, 372, 428, 431, 433, 434, 435, 446, 448, 458, 461, 464, 555, 559, 660, 679, 686, 769, 1097, 1100, 1186, 1205, 1267, 1323, 1333, 1371, 1384, 1388, 1397, 1405, 1422, 1429, 1466, 1479, 1491, 1497, 1577, 1584, 1594, 1604, 1619, 1641, 1645, 1697, 1712, 1719, 1722, 1733, 1736, 1743, 1754, 1757, 1762, 1775, 1782, 1785, 1792, 1799, 2030, 2058, 7087, 7157, 7277, 7312, 7365, 7399, 7434, 7454, 7455, 7456, 7485, 8652, 9529, 13270, 13475, 13522, 13537, 13551, 13565, 13755, 13770, 13772, 13787, 13839, 13887, 13890, 13949])

看了幾個例子

$ ps aux | egrep "[1]3214|^USER"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mike     13214  0.4  0.9 1005200 79224 ?       SLl  17:05   0:03 /usr/bin/ss-qt5

$ ps aux | egrep "[1]3839|^USER"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     13839  0.0  0.0      0     0 ?        I    17:14   0:00 [kworker/0:3-events]

$ ps aux | egrep "[1]121|^USER"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mike      1121  0.0  2.1 669120 173424 ?       Sl   Sep22   0:58 /usr/lib/chromium/chromium --type=gpu-process --field-trial-handle=10177196974108529031,2598045621234816855,131072 --gpu-preferences=KAAAAAAAAACAAABAAQAAAAAAAAAAAGAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --service-request-channel-token=1981753388314757497

仙子這個如何推測啊……

离线

#12 2018-09-24 17:23:49

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

依云 说:
foodtooth 说:

6. 這邊是想統一用英文啊,settings裏面首選英文,然後是簡體中文等等。但是像ss-qt就是菜單欄 + 各條目都是中文顯示。terminal是菜單欄、配置等都是英文,一用上某些命令就是中文輸出(比如yay -Syu)

shell 里执行 locale 命令,应该能看到语言设置是中文的。然后你追踪一下它是从哪里来的?(可以使用 strace)

$ 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=

是這樣哦,就像我上面

$ localectl

一樣的

离线

#13 2018-09-24 19:28:57

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,368
个人网站

Re: 为什么我的一些程序是中文显示,其余的不是

所以你的语言设置得好像挺对的啊。看看 LANGUAGE 变量和 LC_MESSAGES 呢?

另外你哪些程序不听话呢?

在线

#14 2018-09-24 19:33:45

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 为什么我的一些程序是中文显示,其余的不是

ss-qt进程的环境变量查一下,如果全是enUS却还显示中文那就是自己有一套配置了,或者是落入了某种本地化有中文没英文的奇怪fallback中,请检查下游打包或/并联系上游。


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#15 2018-10-13 11:19:49

foodtooth
会员
注册时间: 2016-03-26
帖子: 26

Re: 为什么我的一些程序是中文显示,其余的不是

依云 说:

所以你的语言设置得好像挺对的啊。看看 LANGUAGE 变量和 LC_MESSAGES 呢?

另外你哪些程序不听话呢?

這兩個變量在一樓十二樓給出了哦

至於會變得詭異的程序,

這種啓動個fm就很正常
啓動fm正常

yay運行下就不正常
啓動yay不正常

造成的原因我估計是LANGUANGE變量,去掉後面的fallback應該就不會有這種了。但是爲什麼會這樣,並不太懂,第一個首選語言明明是英文

离线

页脚