我正在尝试实现可以更改应用程序语言的功能.
我试着像这样设置:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("de", forKey: "AppleLanguages")
Run Code Online (Sandbox Code Playgroud)
应用程序重启后语言仍为"系统默认".
现在我通过设置测试不同的语言Scheme > Application Language > language.
但用户是否可以单击按钮并在重新启动后查看所选语言?
还有什么方法可以避免在重启时更改语言?
huj*_*eng 14
您必须AppleLanguages使用数组而不是字符串设置密钥:
UserDefaults.standard.set(["de"], forKey: "AppleLanguages")
Run Code Online (Sandbox Code Playgroud)
小智 7
是的,您可以立即更改应用语言,例如,
var language = "de"
let path = NSBundle.mainBundle().pathForResource(language, ofType: "lproj")
let bundle = NSBundle(path: path!)
let string = bundle?.localizedStringForKey("key", value: nil, table: nil)
Run Code Online (Sandbox Code Playgroud)
将NSUserDefaults值用于语言.
这是您在启动以下语言之前更改语言的方式swift-
可以说我想强制Hebrew本地化:
import Foundation
import UIKit
// Your initialization code here
let langCultureCode: String = "he_IL"
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject([langCultureCode], forKey: "AppleLanguages")
defaults.synchronize()
UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate))
Run Code Online (Sandbox Code Playgroud)
//@UIApplicationMain <-- COMMENT THIS OUT
class AppDelegate: UIResponder, UIApplicationDelegate
Run Code Online (Sandbox Code Playgroud)
这将使您的应用强制进入某个语言环境,而无需任何启动
| 归档时间: |
|
| 查看次数: |
13581 次 |
| 最近记录: |