gpt4 book ai didi

ios - 如何在运行时在 iOS 上更改语言?

转载 作者:搜寻专家 更新时间:2023-11-01 05:40:34 25 4
gpt4 key购买 nike

我正在尝试使用语言更改按钮,我正在使用以下内容:

NSUserDefaults.standardUserDefaults().setObject(["de"], forKey: 
"AppleLanguages") NSUserDefaults.standardUserDefaults().synchronize()

但它只有在应用程序重新启动时才有效。

如何在运行时更改语言?

最佳答案

在 SWIFT 3 中

<强>1。从这里下载“NSBundle+Language”.h .m 类 https://gist.github.com/narikbi/352e93e446e8b1faf283

<强>2。 #import "NSBundle+Language.h" 到 Objective-c bridging Header file 以便快速使用

<强>3。将此全局方法放入您的“Appdelegate.swift”:-

//MARK:- Language Setter 
public func changeLanguage(){

if var arr = (UserDefaults.standard.object(forKey: "AppleLanguages") as? [String]){
let changedKey = arr[0] == "ja" ? "en":"ja"

//this will set current language key for future use
UserDefaults.standard.set([changedKey], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()

//Run time conversion if you want
Bundle.setLanguage(changedKey)//Magic Line ;)
}

}

<强>4。在 Controller 中的任何位置使用 UIButton 或 Switch 切换操作:-

 @IBAction func btnSwitchTaped(_ sender: Any) {

print(UserDefaults.standard.object(forKey: "AppleLanguages") ?? "")
(UIApplication.shared.delegate as! AppDelegate).changeLanguage()

//if you want to check your string programatically on console print when switch toggle value(testing purpose)
let check = NSLocalizedString("Test", comment: "testing")
print(check)

}

编码愉快:)

关于ios - 如何在运行时在 iOS 上更改语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059330/

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