-1

我无法从我的 Intents 扩展访问本地化资源。在我的应用程序和扩展程序之间共享的框架中,我有几个本地化为不同语言的 JSON 文件。当我通过我的应用程序访问它们时path(forResource:ofType),它会访问正确的本地化版本,但如果我从 Shortcuts 应用程序中的扩展名调用它,它会返回英文,即使应用程序本身和 Shortcuts 应用程序都设置为另一个语。

我可以让正确的语言出现的唯一方法是如果我更改设备语言 - 仅为应用程序或快捷方式更改它没有效果。

我正在使用 iOS 14 SDK 构建,但在 iOS 13 和 14 上都会发生相同的行为。

4

1 回答 1

1

首先,请检查可本地化文件的目标成员身份,确保已检查您的扩展名。

目标会员

其次,将您的应用语言保存在具有 AppGroups 的 UserDefaults 中。

static func setLanguageExtension(_ language: String, forKey: String) {
        if let userDefault = UserDefaults(suiteName: "APP_LANGUAGE") {
            userDefault.setValue(language, forKey: forKey)
        }
    }
    
    static func getLanguageExtension(key: String) -> String? {
        if let userDefault = UserDefaults(suiteName: "APP_LANGUAGE") {
            return userDefault.string(forKey: key)
        } else {
            return "en-US"
        }
    }
于 2020-09-15T04:30:56.813 回答