首发于重装Windows
Windows 切换显示语言与添加纯英文输入法

Windows 切换显示语言与添加纯英文输入法

Windows早就可以比较方便地切换语言了,准确的说是“Windows显示语言”(Windows display lanugage)。现在最新版Win10只需要登出一下就可以切换,连重启都不用(不过能重启最好)。不过换语言过程中有一些概念大家可能不是很清楚。

本文以下内容以Win10 1903修改为英文界面为例,当然也可以换成任意别的语言。以前的大版本win10某些步骤可能略有不同,不过差别不大。添加纯英文输入法与添加语言有一定关联,所以也一起说了,但放到后半部分说。

切换界面显示语言

  1. 打开设置(Settings),点时间和语言(Time & Lanuage),左边选语言(Language),点“首选的语言”(Preferred Language)下的添加语言。输想安装的语言的名称,英语是English (United States)
  2. 下一步可取消几个不需要的选项,比如手写,但其实占不了多少空间。勾上安装语言包才能改变界面语言,大小大概100多M。不用担心选错,之后再添加很容易。
  3. 点击安装后就会开始下载一些文件。下好后在上面的Windows显示语言改成英语,然后注销/重启就会变成英语。但是有几率下载失败,我也没啥好办法,隔一段时间再试也许就行了。

调整设置

  1. Region调成China,Regional format调成Chinese Simplified China。这样时间会是北京时间,时间的格式是24小时制。
  2. 因为我只想让Windows界面为英文,其它UWP还是显示中文(虽然用得极少),所以我把首选语言的中文调到了第一位。解释见下面的部分。
  3. Speech language不知道有什么用,个人测试和小娜无关。想启用小娜见下面的部分。
  4. 修改“ANSI”编码,见下面单独的部分,必做。

首选语言的作用

选中某一项语言,点Options可以安装之前可选功能时没装的。对非第一项的语言点Remove会移除;第一项的Remove会变灰,需要移到非第一项才能点。

虽然添加输入法和显示语言都要先在这里添加,但首选语言的顺序不影响Windows显示语言。按照上图微软的说明,首选语言是“Apps and websites”的语言。

然而这里的apps仅指UWP,传统桌面应用只会检测Windows显示语言;而UWP又分为支持多国语言和不支持的,不支持的调这个也没用;支持的有的又提供自己的设置单独调语言。

websites只影响挂了的Edge(也许还有IE),因为FF和Chrome都能在自己的设置里调首选语言。它还会影响默认输入法的顺序,不过对于只用两种语言来说问题不大,具体见后半段。

所以可以认为此项的顺序仅会影响应用商店、图片、画图3D等微软UWP的语言。比如英文在上时你是找不到计算器的,只有Calculator,中文在上时相反;与Windows显示语言无关。但Settings这个UWP是与显示语言一致的。

小娜

小娜与区域严重相关。如果显示语言与区域不一样,小娜会用不了,任务栏的小娜会消失。打开设置,选Cortana,在Cortana language中选English (United States)。这样看起来可以用英语和小娜说话,但效果是语音识别是英文,报错是英文,真正的回复是中文。

比如问“what's the time”,她会说“为你找到如下结果”,然后给出时间。如果问“现在是什么时候”,会识别失败,因为不是英文,然后她用英文回复“I can't do this now”。如果说“play music”,会打开bing进行搜索。

安装中文语音支持,修改Speech language为Chinese也没用,而Cortana language里根本不会出现Chinese。所以这样也没法说中文。

本来电脑上小娜的用处就不大,现在还搞这么一出,更加无法使用了。

修改“ANSI”编码

Settings的Region处,点右边的Administrative language settings(管理语言设置),点Change system locale(更改系统区域),选Chinese,然后注销/重启。这样会把活动代码页设置为GBK。

此项设置会影响记事本(以及其它使用ANSI的程序)的默认编码,这个大家都知道。但它还会影响系统级字体的Fallback。当代码页为GBK时,中文会优先使用微软雅黑UI来显示;如果不做调整,使用英语的437,中文会优先使用日文字体来显示。所以这项改动是必须做的。

但是我不知道是不是因为我现在使用的是原生英文映像的缘故,之前好像没有出现这样的问题。然后此问题又在大版本更新时重新出现了,我调了一下首选语言又解决了。所以到底是那一点的问题我也不清楚。

如果调代码页没有用,还是日文字体。可以使用 Tatsu-syo/noMeiryoUI 这个程序,亲测有效;更换显示语言后要重设一次。

其它系统

xp没试过。win7有一部分原理与本文所述类似但操作均在控制面板中,且安装语言包需要以补丁的形式单独下载,装好了以后需要重启;但win7没有首选语言的选项。win8没用过,应该也是有一部分类似。

“真正”的语言

安装语言包来切换显示语言是很方便,那不同语言的映像还有存在的必要吗?答案是:有。

比如使用中文的映像安装好了系统,那之后的“无损”升级也就只能使用中文的映像;如果改成英文的映像,只能进行保留个人文件但不保留程序和设置的升级。然后升级过程中就有可能把某些语言相关的选项(比如上文提到的几个)重置为原语言的。

其实还是旧代码太多,语言包能改变一部分,但改变不了全部;不同语言的映像区别不是一个语言包就能完全解决的。即使用了语言包,也还是会时不时看到原语言。

并不完美

虽然win用的是英文,但我仍希望使用中文的VS(因为涉及的概念太多)。然而VS的设置界面使用的是日文字体。如果把显示语言改成中文,这个问题会消失。这算是bug吗?我当时提交的是Feature Request,但是现在我觉得是bug,因为其它地方好像都正常,左边的列表也正常。


纯英文输入法

因为许多游戏都需要用到shift按键,有的游戏会自动屏蔽此功能,但是有的不会。

正常的解决办法就只有添加一个英语语言,这样会自动添加一个纯英文的输入法。位置是在上文的首选语言中添加,只是不需要安装语言包

很多人以为这样就解决了,其实不然。这样添加了的语言会自动排到首选语言的第一位,导致UWP变成英文。所以还需要把中文调到第一位

做完后用win+空格就可以进行切换了。有的游戏会屏蔽win,只能切出去换了再切进来。

原理

Win10安装完成后,默认只会有一个微软拼音输入法,这个输入法带有“英文模式”,使用shift进行切换。但这个功能其它输入法也都有,而且也都是用shift切换。

对于语言功能,win7和xp的输入法同样与语言挂钩,同样的可以添加英语语言下的英文输入法。只是win10的语言还和界面显示语言挂钩。

真正的区别是win7和xp存在一个中文语言下的英文输入法,即中文(简体) - 美式键盘;而win10没有。网上有方法说可以添加回这个键盘,但是要修改注册表,且我没有试过。

高级键盘设置(Advanced keyboard settings)

1809后此选项在language的最下方,蛮容易忽略的;1803好像还在控制面板里。提供的设置选项不多,但是却很重要。

替代默认输入法:即开机后使用的输入法。“使用语言列表”指的就是首选语言。如果你想UWP使用英文,但是开机后默认还是中文输入法,就在此处手动选择微软拼音。

Win10相比于7,一个重要的变化是输入法变成全局的了。win7和xp每开一个窗口就要切一次输入法,因为每个窗口最开始都会用默认输入法。勾上“每个窗口使用不同的输入法”即可切换成非全局模式。

快捷键的功能

alt+shift:上面说了win7也存在不同语言的输入法,而win7切换语言的快捷键不是win+space,只能用alt+shift。win10同样可以用alt+shift,区别是右下角不会显示win+空格时的候选列表,这样有的游戏不会跳出;不过有的游戏也会屏蔽这个组合键。

ctrl+shift的功能:切换同一种语言下的不同输入法。所以win7下如果也设置成中文语言只有一个中文输入法,且英语语言只有一个英文输入法,则按ctrl+shift无法进行切换。win10同理,如果添加了中文美式键盘,也可以用此快捷键。

单按shift是切换输入法的中英文模式,上面已经提到了。这个键还有一个重要的特性:当想输英文却发现输的是中文时,单按就可以把已经输了的文字打上去再切换成英文,即相当于按回车再切换成英文。这种情况下如果用alt+shift,有可能把当前输入的全部清除,也有可能把当前输入的重复一遍后打出去,非常坑。

ctrl+space

这个快捷键需要单开一个小节。

ctrl+space是许多IDE触发Intellisense的快捷键,但中文输入法下居然被占用了,这也是需要添加纯英文输入法的另一个理由。

理论上此快捷键的效果是:在中文语言下的中文输入法与中文美式键盘之间切换,称作Ime/NonIme Toggle。即如果装了多个中文输入法,不用按顺序切,可以直接切到美式键盘,再按一下切回刚才那个中文输入法。

那能不能把输入法的这个快捷键去掉呢?在高级键设置中能看到这个选项。直接去掉“启用按键顺序”,点应用就被改回来了。这个问题xp就存在,许多人发现过,有人认为这是BUG。网上可以搜到改注册表的方法。但是其实这个功能只是直接禁用无效,改成别的快捷键是有效的,所以没必要改注册表,改成超偏僻的快捷键就好,比如ctrl shift f12。

又但是,这个方法对win7以及win10下的其它输入法有效,而对win10的微软拼音无效。从微软拼音的设置中可以看到,ctrl+space的功能与单按shift的功能一样,也就是微软拼音主动把这个快捷键占了;且单按shift可以设置成关闭,而ctrl+space无法关闭!此时就只有换其它输入法了。

更新:2004的微软拼音终于允许取消ctrl space了,只要再修改Ime Toogle就好了,亲测可用触发Intellisense。

任务栏隐藏下的输入法

在任务栏隐藏的情况下,我经常发生:打字是英文->切输入法->打字还是英文->再切,这样的操作。

原因是开始是在拼音的英文模式,换了以后变成纯英文了,再换一次才又变成拼音的中文模式。而任务栏隐藏时我看不到当前状态。

如果想按win键查看当前输入法,需要卡半秒开始菜单才会弹出。而且虽然输入法是全局的,但中英文模式是每个程序单独的,搜狗和微软拼音都是这样。恰好桌面、任务栏、开始菜单就是不同的程序,所以按win键只能查看输入法,并不能查看中英文模式。

最最坑的是,不同程序默认的中英文模式可能不同。点开记事本,默认是中文模式;然而如果想对文件进行重命名或者进行搜索,Explorer默认的是英文模式。有病吧?也是因为这一点,去掉中英文切换快捷键是不可行的。

使用桌面语言栏太丑,不做考虑。

当前状态有多种可能性,切换后的状态又不明显,切的时候都不晓得自己是不是按得太快没生效。这些问题严重到我想取消任务栏自动隐藏了。

编辑于 2019-12-22

文章被以下专栏收录