Tips: 给不支持语言偏好列表的国产安卓(如 MIUI)设置语言偏好(需 ROOT) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX    Android

Tips: 给不支持语言偏好列表的国产安卓(如 MIUI)设置语言偏好(需 ROOT)

  •  
  •   liyafe1997 277 天前 3027 次点击
    这是一个创建于 277 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉好多国产安卓砍了这个功能( UI 层面),比如我手上的 MIUI/HyperOS ,设置菜单里就只能设置系统语言,不能设置那个语言偏好列表。(国际版是有的,我实在不知道国内版为啥要砍这个人畜无害的 UI )

    这就导致一些 App 无法显示期望的语言(在不更改系统语言的情况下)。比如我的系统语言为中文(此时你的语言列表里也只有中文),假如有一个 App 支持德语西班牙语和英语,我期望它显示英语,但它的逻辑很可能是,在你的语言列表里都没有这三种语言的情况下,默认显示德语,然而假如说我想让它显示英语,在 MIUI 下只能把系统语言设成英语(然而我并不想),如果我想显示西班牙语,就完全做不到了,因为 MIUI 系统语言选项压根没有西班牙语。

    我有 root 权限,于是我就想,能否绕过 UI 直接改这个参数。翻了半天互联网以及 Android 源码,发现这个设置存储在 system 空间的 system_locales 键中。可以通过

    settings get system system_locales 

    来读取。更改之前建议先读一下你当前的 locales ,因为“中文”在不同 Android 版本上表示似乎不同,比如有的是zh-Hans-CN 有的是 zh-CN 然后设置你自己的语言偏好列表,逗号分开不同的 locales ,比如

    settings put system system_locales zh-Hans-CN,en-US,ja-JP 

    (补充:对于系统语言,是在 persist.sys.locale 这个 prop 中,而不是在 settings 里。可以通过getprop persist.sys.locale / setprop persist.sys.locale xxx 来操作)。

    之后,发送CONFIGURATION_CHANGEDLOCALE_CHANGED广播,通知 App 语言变更

    am broadcast -a android.intent.action.CONFIGURATION_CHANGED am broadcast -a android.intent.action.LOCALE_CHANGED 

    尤其是对 Google Play 有用,因为现在许多 App 都用的 aab 包,以及 Play Asset Delivery 机制,只下载你需要的资源(比如不在你语言列表里的语言资源就不会下载),在更新了语言列表后,Google Play 会自动下载这些 App 对应的语言资源。

    如果发了广播 App 还是没有自动下载/更新,可以尝试重启一下。

    我发现在我的设备上挺奇怪的,无论是我发了广播还是重启之后,好像都没见 Google Play 立马有动静(在原生支持的安卓里,在设置中改了语言列表设置之后,Play 马上能看到一堆 App 在那更新转圈圈,其实不是更新版本是在下载语言资源),但是过了一会才发现,实际上是已经更新了语言资源的,可以在 Play 的管理中看到,一堆软件包刚刚被更新过。

    https://i.imgur.com/QxtBQXq.png

    然后各种 App 就能通过你期望的语言来显示了。

    第 1 条附言    276 天前
    补充:其实无需 root ,用 adb shell 也能写那个 system_locales 设置项。但是 adb shell 没有权限发广播,设置完只能重启看看能不能触发 Google Play 更新 App 的语言资源了。
    第 2 条附言    276 天前
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2863 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 14:08 PVG 22:08 LAX 06:08 JFK 09:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86