簡體   English   中英

無法從應用擴展訪問本地化資源

[英]Cannot access localized resource from app extension

我無法從我的 Intents 擴展訪問本地化資源。 我有幾個 JSON 文件,它們在我的應用程序和擴展程序之間共享的框架中本地化為不同的語言。 當我通過我的應用程序通過path(forResource:ofType)訪問它們時,它會訪問正確的本地化版本,但是如果我從快捷方式應用程序的擴展程序中調用它,那么它會返回英語,即使應用程序本身和快捷方式也是如此應用程序都設置為另一種語言。

我可以顯示正確語言的唯一方法是更改​​設備語言 - 僅針對應用程序或快捷方式更改它不會產生任何效果。

我正在使用 iOS 14 SDK 進行構建,但在 iOS 13 和 14 上都會發生相同的行為。

首先,請檢查可本地化文件的目標成員身份,確保已檢查您的擴展名。

目標會員

其次,將您的應用程序語言保存在具有 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"
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM