Android 13+ 通过 Shizuku + Language Selector 给特定应用设置独立语言
正文
最近5年我一直在使用 iPhone,从 iPhone 6 到 iPhone XR,再到买 iPhone 12 首发,到昨天也算是把 iPhone 12 用了三年整(还要多一个多月)。这 iPhone 12 已经卡得让人想骂娘了,尤其是打开过 Camera 应用之后,再切回微信,微信必被杀然后重启,我看到的就是小人+蓝色地球画面…… iPhone 12 卡死了,很慢,我当时还是 7599 首发价买的 4+256,没错,这破手机只有 4GB RAM,苹果是对 iOS 多有信心呐?
看了 redmi k70 发布会,前天 2989 购入了 redmi k70 16+512 版本,通过小米商城直播间购买还送了一个小米10000毫安充电宝。关于换手机这事,看看后续是否再写一篇文章记录吧。
本文探讨一下在 Android 下,如何给指定的应用设置语言,比如系统语言是英文,我想把地图应用设置为简体中文。
为什么把系统语言换成 English(United States),这个主要是避免有些 app 在我的手机上拉屎,因为你知道的,有些第三方 app,你把语言换成英文或者繁体中文就会发现老实多了。
很多 app 都是直接读取的系统语言,没有独立的语言设置,我从 F-Droid 安装了 Organic Maps, https://organicmaps.app/ 这个开源地图应用,但是无法切换成中文,地图上很多 label 是英文,看着难受,有的甚至无法分辨是什么地名。
暂时还没有 root ,在没有 root 的情况下,可以单独设置特定应用的语言吗?答案是可以。通过 Shizuku + Language Selector 能给特定应用设置独立语言。Android 13 开始,Android 提供了这个能力和功能,但是 MIUI 把这个功能给砍了,MIUI 上这个功能没有入口。
Pixel 是可以直接在 Settings 里更改应用的显示语言的,可以看看下面三个链接阅读详情。
- https://support.google.com/android/answer/12395118?hl=en
- https://developer.android.com/guide/topics/resources/app-languages
- https://9to5google.com/2022/08/16/change-language-per-app-android-13/
本文记录的是在 MIUI 系统下的操作,现在叫 Xiaomi HyperOS 但是底层仍然是 Android,这无需多言,只是小米为了生态大一统而这么宣发的,实际上这个生态严重依赖 Android 底层和生态,不多说了……
当前系统版本
- OS version: 1.0.4.0.UNKCNXM
- Android version: 14 | Android security update: 2023-11-01
Shizuku 入门,我是通过少数派这篇文章入门的 https://sspai.com/post/73294
Language Selector 是这个 GitHub repo https://github.com/VegaBobo/Language-Selector 从它的 release 页找到最新的 apk 下载到本地然后安装。
Shizuku 我是直接从 Google Play 下载的,也可以从这个页面寻找其他下载方式 https://shizuku.rikka.app/download/ (这是他们官网,放心进入)
手机这边,点击 N 次 OS version 打开开发者选项。
启动 Shizuku 需要打开 USB debugging 和 USB debugging (Security settings) (这个重要,如果不打开的话,在 shizuku 启动之后会有一个 warning,会导致它不能很好的工作(can not work properly)
然后要打开 Wireless debugging,打开之后选择 Pair device with pairing code,这里点击了之后会弹出一个 6 位数字的小窗口,但是此时你需要重点注意
- 需要 grant 授予 Shizuku 通知权限,把这个应用的通知权限打开
- 重点来了(本条针对 MIUI,其他国产系统可能处理方式不一样,如果你的系统不是 MIUI,请关注 Shizuku 里的提示),进入 Settings 搜索 Notification Shade,把 Notification Shade 的 Notification Style 从 Classic 改成 Android,这时你再在【Wireless debugging】中点击 【Pair device with pairing code】就能在通知中心输入那边生成的 6 位数字验证码,然后就是 pair 成功,Shizuku 成功运行
接下来就是打开 Language Selector,点击右上角三个点,点击 Show system apps。我为下面三个应用设置了 中文(简体中文,中国)
- Calculator(包名是
com.miui.calculator
) - Weather(包名是
com.miui.weather2
) - Organic Maps(包名是
app.organicmaps
) - MIUI 自带拨号应用 Phone / Contacts and dialer (包名是
com.android.contacts
)
这下舒服了,为什么要把系统语言设置成英文?
- 很多国产 app 会在手机里拉屎,对的,很多第三方应用你把它语言改成英文,广告就消失了,广告消失术?对,了解一下!
- 你要说把系统语言改成英文可以学英语我只能说您这扯淡呢,咱程序员每天都面对这些单词,但是硬要说,对于英语的敏感度肯定是有提升的,而且有时候还能见到不认识的单词,也会促进词汇量提升。对非程序员群体,对整体的英语能力提升确有好处
- 有些字体中文下很丑,英文下就还好
那本文折腾半天,为什么又要把部分 app 改成简体中文呢?本文的其他地方也略有提及,拨号、天气、小米计算器(可以方便的计算亲戚关系,还是中文比较方便),还有我下载的 Organic Maps 这样的地图应用,地图上的 label 全是中文有助于我了解地图,难道你们不是地图爱好者吗!
好了,that's all,希望能帮到你。
感谢
感谢我自己发的帖 https://www.v2ex.com/t/997299 和楼中回帖的朋友们
截图
我把几张重要的截图整合在了一起,可以看到在桌面首页的小米天气小组件当中,已经是中文了,但是其他所有地方都还是系统默认语言——英文。
整了个国行红米给在境外的老外用,系统语言调成英文,实际使用越南文。chrome里点语音搜索弹出的“Google语音识别及合成”服务却始终是英文,改不成越南语。用了你的Shizuku+Language Selector后,越南语来了。博主功德无量🤝
非常开心帮到你🙏🏻,我只是做了一个用法分享,实际的两个程序并非我开发(我也没那个能力)。peace and love,❤️️
也感谢那俩程序的开发者👍🏻
支持一下, 我跟博主的需求相反, 我是中文系统下需要用外文的软件, 但外文软件识别到系统语言为中文后 直接将应用语言换为英语了, 而不是该软件的本国语言。
刚按照教程设置了一下, 果然成功了呢。 不过这个 需要 保证:
以上步骤吗? 谢谢解答啊。
关机后重开是要保证 shizuku 打开并且服务开启的,language selector 应用需要对应的配置生效,比如你给 xxx app 设置了英文。
嗯好的, 反正关机重启的使用概率也不大, 比不能用强太多了~
谢谢分享~
太荣幸啦,很开心帮到你。
用的是荣耀magic4 pro,正好最近开放8.0系统自带gms,按照博主的方法搞定了给YouTube music单独设定日文的操作,不用再看满屏的罗马字转写了,非常感谢🤣
shizuku现在真是越来越方便了,可以自己给自己无线调试,本来因为要接电脑我一直很抵触
是的,【可以自己给自己无线调试】,这很方便。恭喜搞定!
直接解锁刷机不用shizuku会更香,苹果都玩卡了,真有你的!!不过个人还是觉得小米好使多了
小米社区等级不够,没法解锁刷机了……太无语了,本来小米解锁刷机体验最好的,这下直接崩盘。
苹果卡是因为运行内存不够,相机特别耗内存,打开过相机应用再切回其他 app,八成重新加载。
现在好像改了不用等级了,不过当初我升到三级也就用了不到十天,就是打开社区签到和随便发条消息,每天就花两三分钟
前天去酷安看了一下,现在更加严重了——想解锁门槛更高了。
已经改了不用等级了?前阵子我看还需要答题呢,不是android 开发几乎都不会通过的那种难度的题,而且每道题答题时间非常有限,甚至没时间google和问 chatgpt