我的手机系统语言设置为en_us,我已经将瑞典语和法语添加到VoiceOver转盘语言中。
添加语言后,当浏览包含语言设置的网页时,VoiceOver/Safari组合会自动以相应的语言开始。
检查了我安装的各种非英语AppStore应用程序后,其中一个在我打开它时会触发屏幕阅读器的自动语言更改。
我在一个非常简单的iOS应用程序中尝试了语言和本地化设置,以查看是否可以触发这样的切换。该应用程序包含一个由Storyboard编辑器创建的带有UILabel的单个视图控制器。
我尝试更改Info.plist中“本地化本地开发区域”的值。瑞典语在图形编辑器的下拉菜单中不可用,因此我使用“打开源代码”进行了更改。这只是将瑞典标签读取为英语文本,也就是与不做任何事情没有区别。
然后我尝试了ahbou's solution中的编辑project.pbxproj,将对“en”的引用替换为“sv”。我重新部署了这个更改,但没有任何区别。
我尝试添加第二个非英语环境,以及检查和取消“使用基本本地化”选项,但这也没有任何差别。
在所有的瞎忙活中,它曾经很短暂地开始了瑞典语,但在将转子转回后,我再也无法触发改变。
我想到从Xcode部署和部署IPA之间可能存在差异,所以我尝试了一下,但没有运气。
我试图看看能否在不依赖故事板并且本地化为英语和瑞典语的非最小应用程序中触发VoiceOver语言更改。如果在通过Xcode部署之前编辑模式,并将“应用程序语言”设置为“瑞典语”和“应用程序区域”设置为“瑞典”,则会导致VoiceOver在应用程序中以瑞典语开始,但仅设置应用程序语言则不会。
查看我安装的触发瑞典语音的AppStore应用程序时,它看起来像是在Web视图内显示的Web内容。即使如此,它工作的事实表明应该有一些方法来在标准iOS应用程序中触发自动切换。
感谢任何想法!
---- 2019年2月6日星期三编辑 ----
请注意,对于UIApplication,默认情况下
添加语言后,当浏览包含语言设置的网页时,VoiceOver/Safari组合会自动以相应的语言开始。
检查了我安装的各种非英语AppStore应用程序后,其中一个在我打开它时会触发屏幕阅读器的自动语言更改。
我在一个非常简单的iOS应用程序中尝试了语言和本地化设置,以查看是否可以触发这样的切换。该应用程序包含一个由Storyboard编辑器创建的带有UILabel的单个视图控制器。
我尝试更改Info.plist中“本地化本地开发区域”的值。瑞典语在图形编辑器的下拉菜单中不可用,因此我使用“打开源代码”进行了更改。这只是将瑞典标签读取为英语文本,也就是与不做任何事情没有区别。
然后我尝试了ahbou's solution中的编辑project.pbxproj,将对“en”的引用替换为“sv”。我重新部署了这个更改,但没有任何区别。
我尝试添加第二个非英语环境,以及检查和取消“使用基本本地化”选项,但这也没有任何差别。
在所有的瞎忙活中,它曾经很短暂地开始了瑞典语,但在将转子转回后,我再也无法触发改变。
我想到从Xcode部署和部署IPA之间可能存在差异,所以我尝试了一下,但没有运气。
我试图看看能否在不依赖故事板并且本地化为英语和瑞典语的非最小应用程序中触发VoiceOver语言更改。如果在通过Xcode部署之前编辑模式,并将“应用程序语言”设置为“瑞典语”和“应用程序区域”设置为“瑞典”,则会导致VoiceOver在应用程序中以瑞典语开始,但仅设置应用程序语言则不会。
查看我安装的触发瑞典语音的AppStore应用程序时,它看起来像是在Web视图内显示的Web内容。即使如此,它工作的事实表明应该有一些方法来在标准iOS应用程序中触发自动切换。
感谢任何想法!
---- 2019年2月6日星期三编辑 ----
根据Mats的建议,我尝试使用accessibilityLanguage设置。在UIApplication上设置语言会将其传播到应用程序中的所有元素。我按以下方式修改了应用程序委托:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
application.accessibilityLanguage = "sv"
return true
}
请注意,对于UIApplication,默认情况下
isAccessibilityElement
的值为false(与用户通常预期看到或与之交互的组件不同)。无需将其更改为true以应用语言设置,并且我不确定更改它的价值是什么,因为用户不直接与应用程序交互。我尝试将其设置为true,但就VoiceOver而言似乎没有任何区别。