gpt4 book ai didi

ios - 在什么情况下,VoiceOver 会在 iOS 应用程序中自动切换语言

转载 作者:行者123 更新时间:2023-12-04 17:40:55 28 4
gpt4 key购买 nike

我的手机设置为 en_us 作为系统语言,并且我在 VoiceOver 转子语言中添加了瑞典语和法语。

添加语言后,我发现在浏览文档包含语言设置的网页时,VoiceOver/Safari 组合会自动以适当的语言启动。

在检查了我安装的各种非英语 AppStore 应用程序后,其中一个在我打开时会触发屏幕阅读器中的自动语言更改。

我在一个非常简单的 iOS 应用程序中尝试了语言和本地化设置,看看我是否可以触发这样的切换。该应用程序包含一个带有 UILabel 的 View Controller ,它是在 Storyboard编辑器中创建的。

我试图改变 Info.plist 中“Localization native development region”的值。瑞典语在图形编辑器的下拉菜单中不可用,因此我将其更改为“作为源代码打开”。这只是将瑞典语标签当作英文文本来读取,也就是说,与什么都不做没有区别。

然后我试了ahbou's solution编辑 project.pbxproj,将对“en”的引用替换为“sv”。我重新部署并进行了此更改,但没有任何区别。

我尝试添加第二个非英语语言环境,还尝试选中和取消选中“使用基本本地化”选项,但这也没有什么不同。

随着所有的麻烦,它确实以瑞典语开始了,但在将转子转回原处后,我再也无法触发更改。

我突然想到,从 Xcode 部署和部署 IPA 之间可能存在差异,所以我试了一下,但没有成功。

我尝试查看是否可以在不依赖 Storyboard且本地化为英语和瑞典语的非最小应用程序中触发 VoiceOver 语言更改。如果我在通过 Xcode 部署之前编辑模式,将“应用程序语言”设置为瑞典语并将“应用程序区域”设置为瑞典,会导致 VoiceOver 以瑞典语为应用程序启动,但仅设置应用程序语言不会。

在查看我安装的触发瑞典语语音的 AppStore 应用程序时,看起来该应用程序可能是在 Web View 中显示的 Web 内容。即使是这样,它有效的事实也表明应该有某种方法可以在标准 iOS 应用程序中触发自动切换。

感谢任何想法!

---- 2019 年 2 月 6 日星期三编辑----

我根据 Mats 的有用建议尝试了 accessibilityLanguage 设置。在 UIApplication 上设置语言确实会将其传播到应用程序中的所有元素。我修改了应用委托(delegate)如下:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
application.accessibilityLanguage = "sv"
return true
}

请注意,对于 UIApplication,isAccessibilityElement 的值默认为 false(与通常希望用户看到或与之交互的组件不同)。无需将其更改为 true 即可应用语言设置,而且我不确定更改它的值(value)是什么,因为用户不直接与应用程序交互。我确实尝试将其设置为 true,就 VoiceOver 而言,这似乎没有任何区别。

最佳答案

您可以通过检查 Info.plist 文件更改您的首选语言(XCode 的 GUI 编辑器只允许几种语言),一旦修改下一个属性

<key>CFBundleLocalizations</key>
<array>
<string>sp</string>
</array>

不要使用 sp(西类牙语代码),而是使用您要使用的语言环境代码。我这样做了,现在 VoiceOver 语言在应用程序中无处不在。

关于ios - 在什么情况下,VoiceOver 会在 iOS 应用程序中自动切换语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com