我正在开发应用程序,客户希望将其完全本地化。对于每种支持的语言,我们有几个Localizable.strings和InfoPlist.strings文件。
应用程序中有机会“即时”更改应用程序的语言。
(这是通过将另一个捆绑软件与所选语言相关联来完成的)到主捆绑软件。因此,当应用调用[NSBundle.mainBundle localizedStringForKey:value:table:]
时,它实际上是指用户选择的语言包。)
带来不良后果。系统权限警报(对位置使用情况,相机使用情况等的请求)未使用在应用内选择的语言进行本地化,而是使用iOS
设置中的首选语言进行了本地化。
例如,如果用户在“设置”中使用英语作为首选语言,但是在我们的应用中他选择了法语,则整个系统将以法语显示,但系统警报将以英语显示。
有什么办法可以解决?我的意思是,要以编程方式选择必须考虑将哪种语言系统警报视为首选?
苹果拒绝原因:您的应用程序的模式警报为英语,但您应用程序的主要语言为法语。为了帮助用户理解您的应用为何请求访问特定功能的原因,您应用的模式警报应使用与其他应用相同的语言。