参考文章:Android 13 changelog: A deep dive by Mishaal Rahman
前言
国内音乐流媒体过去几年的版本争夺导致包括我在内的很多人都没法在一个平台中听到自己想听的全部歌曲,用户不得不开各家会员并来回切换应用才能获得一个“正常”的体验。我从前年开始,就不再续费国内音乐流媒体的会员了,日区 Apple Music 是我的替代方案。但是,愚蠢的苹果会根据系统语言来翻译东亚文字。比如说,当我的系统语言为英文时,Apple Music 会将中文以拼音的方式转化为英文,将日语变为罗马音。这对于有多种语言环境的人而言是不方便的,因为期待阅读的是这些文字的原始版本。对此,我的解决方案是单独买了一个合约机并将系统语言设置为中文(这样所有的东亚文字都不会被翻译)只用于 Apple Music。
在 MacOS 上,用户可以在语言设置中为每一个应用程序设置一个优先于系统语言设置的选项。但是在 Apple Music iOS 版本中,苹果没有提供该设置选项。
Android 上的设置
在2022年,谷歌终于在新推出的 Android 13 版本中提供了 iOS 更早就提供的“为应用设置单独语言”的选项。但在上手后,我却发现 Apple Music 应用中并没有语言设置选项。在通过其他应用对比后,确定是 Apple Music 自己的问题,所以决定一探究竟。
经过一番搜索后,在谷歌的文档中发现了应用语言是由 Android LocaleManager
管理的,getOverrideLocaleConfig()
函数会返回用户强制设置的语言选项。开发者需要在应用包内提供一个名为 locales_config.xml
的配置文件来创建一个可供用户选项的语言选项,当该文件不存在时则系统不会给用户提供应用语言设置选项。很显然,Apple Music 应用虽然已经为很多语言做了本地化翻译,但它并没有跟随操作系统设计来为用户提供一个设置语言的选项,而是单纯地跟随了系统设置。在它们自家的 iOS 上都没有做适配,更别说在 Android 上了。
好在 Android 对于高级用户有一些更方便的操作选项。通过下面的 ADB 命令,你可以让 Android 系统禁用对locales_config.xml
的检测,而对所有应用强制设置任意选项的语言(但具体是否生效则得看应用本身的本地化翻译程度)
adb shell settings put global settings_app_locale_opt_in_enabled false
成果
在执行完上述的 ADB 命令后,我们回到 Apple Music 的设置中,已经可以看到出现了语言设置。
在将语言设置为简体中文后,清除应用缓存,重新启动应用,就可以看到不翻译版本的曲库了。
转载请标注来源