将 K8S 的 dashboard 语言强制设置为英文

Kubernetes Web UI 默认的配置下语言会跟着浏览器的语言走,也就是说你的浏览器语言是中文的话,面板的语言默认也是中文,并且无法通过面板上的设置来选择语言。大多数时候当然是母语最适合用户,但是像 k8s 这种系统,网上查到的资料大都是英文的,所以反倒是看到对应的中文术语的时候会让人愣一下,反应下这个中文对应的英文术语是什么。所以我个人更倾向将开发工具都默认设置为英文,很多情况下这反倒是提高了我的工作效率。

既然 k8s 的面板默认没有提供语言的选择,有没有办法来切换呢?

在网上搜索了一番,貌似都没有特别成熟或者方便的办法,下面这个网址算是一个解决办法:

https://jimmysong.io/kubernetes-handbook/practice/dashboard-upgrade.html

1
2
3
4
5
6
7
8
设置界面的语言
我们看到现在 dashboard 的页面都已经被汉化了,当前支持英文、中文简体、中文繁体、日语,根据浏览器的语言自动切换的。如果想要强制设置 dashboard 中显示的语言,需要在 dahsboard 的 Deployment yaml 配置中增加如下配置:
env:
- name: ACCEPT_LANGUAGE
value: english
更简单的方式是,如果您使用的Chrome浏览器,则在浏览器中的配置中设置语言的顺序后刷新网页,dashboard将以您在Chrome中配置的首选语言显示。

可以说是两种方法:一种是部署 dashboard 的时候强制指定为英文,也就是说会无视用户浏览器的语言配置,默认都返回英文的页面;另一种是设置浏览器的语言,将浏览器的语言设置为英文即可。

两种方法都有弊端,前者我们必须有 k8s dashboard 的部署控制权,这在很多时候是不可能的,另外,这也剥夺了用户使用本地化语言的权力;后者的话会导致浏览器请求所有的网页都按照英文来请求,这也不是我们所期待的。

有没有办法能够只让 k8s dashboard 请求英文网页,而不影响其他网站呢,经过一番研究我找到了一个相对不算特别复杂的方法。

首先安装一个 chrome 插件:Locale Switcher。打开 k8s dashboard 可以通过点击插件图标来切换语言,选择英文即可。

不过这个插件默认是全局生效的,所以一但点击英文,所有的网站请求都会默认有限请求英文的网站。虽然可以通过点击中文来切换回来,比起到浏览器的语言设置里修改语言已经简单了许多。但是毕竟我们不想总是这样的手工控制语言切换。

其实chrome是可以指定插件可以生效的网站范围的,右键点击插件图标,选择管理扩展程序就会跳转到插件的管理页面,会看到一个条目是 有权访问的网站 ,在此条目下选择 在特定网站上 ,并在下面填写你的 k8s dashboard 个地址,形如 https://your-host:port/* (注意 *)。

这样将插件选择成英文后,再次刷新你的 k8s dashboard 页面时,语言就默认是英文了,而其他网站的语言设置却不受插件的影响,如果你嫌插件的图标占地方,甚至可以选择隐藏图标,因为大概率你以后不需要再点击这个图标了。

当然,这个方法也支持将其他网站的请求语言设置为不同的语言,不仅限于 k8s dashboard