首页 > 解决方案 > 本地化 iOS 14 动态小部件配置

问题描述

我正在尝试根据应用程序语言为小部件加载不同的配置,但是当我使用类似的东西时:

Locale.preferredLanguages
Bundle.main.preferredLocalizations
Bundle.main.localizations

他们都只在 IntentExtensionTarget 中返回“en”。

这是我使用代码的示例:

extension IntentHandler: ReciterAndSurahIntentHandling {
    
    func provideSurahOptionsCollection(for intent: ReciterAndSurahIntent, with completion: @escaping (INObjectCollection<NSString>?, Error?) -> Void) {
        
        Locale.preferredLanguages
        Bundle.main.preferredLocalizations
        Bundle.main.localizations
        // All of them return "en" only, and I have multiple localization for the app.
    }
}

标签: swiftswiftuiios14widgetkit

解决方案


您只能获得 EN,因为描述和小部件名称中的本地化是基于设备语言的。如果您尝试将设备语言设置为其他语言,则本地化应该可以工作。就目前而言,无法在小部件描述和名称本地化上使用应用内语言。


推荐阅读