在iOS应用中以指定语言显示系统用户界面

时间:2018-07-25 22:31:58

标签: ios swift localization

我们有一个iOS应用程序,仅支持英语UI。当我们在设置为其他语言/地区(例如fr-CA)的设备上运行它时,系统用户界面会以设备语言而非英语显示。我们的首选是使所有UI都以英语显示在“内部”。

为了进行实验,我创建了一个单视图项目,该项目仅做两件事:请求通知权限并显示MapKit地图视图,这是我们最关心的两件事。我尝试了以下方法,但似乎都没有达到预期的效果:

  • 完全没有本地化(即创建新的Xcode iOS项目时的默认设置)
  • 添加了明确的“英语-开发语言”本地化版本(即CFBundleLocalizations),并且没有其他本地化版本
  • 尝试在App生命周期的早期阶段在UserDefaults中设置“ AppleLanguages”(在Setting "AppleLanguages" doesn't change app language中描述的解决方案中,在AppDelegate和自定义main.swift中进行了尝试)
let defaults = UserDefaults.standard
defaults.set(["en-CA"], forKey: "AppleLanguages")
defaults.synchronize()

Apple开发者论坛上的帖子建议/不应该尝试动态更改本地化 (例如https://forums.developer.apple.com/thread/85549https://forums.developer.apple.com/message/36704#36704),但这不完全是我们想要的。再去。我们不想即时进行更改(例如,响应应用程序中的语言选项),而只是拥有所有用户界面,无论是我们的界面还是来自系统/框架的界面都只能以英语显示。

是否可以通过某种方式通知系统该应用正在我们刚刚忽略的指定本地环境中运行?

0 个答案:

没有答案