我正在尝试实现一个可以改变应用语言的函数。
我试着把它设置成这样
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("de", forKey: "AppleLanguages")
在应用程序重新启动之后,语言仍然是“系统默认”。
现在,我通过设置Scheme > Application Language > language
测试不同的语言。
但是,用户是否可以单击一个按钮并在重新启动后查看所选的语言?
另外,为了避免在重启时更改语言,应该如何做到这一点?
发布于 2015-06-10 07:42:44
是的,你可以立即改变应用语言,
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)
将您的NSUserDefaults值用于语言。
发布于 2016-12-16 02:06:11
您必须使用数组而不是字符串设置AppleLanguages
键:
UserDefaults.standard.set(["de"], forKey: "AppleLanguages")
发布于 2016-07-18 05:49:19
下面是在swift
发布之前如何改变语言的方法-
让我说,我想强制Hebrew
本地化:
1.创建您自己的Main.swift类
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))
2.解除AppDelegate.swift的“主要”责任
//@UIApplicationMain <-- COMMENT THIS OUT
class AppDelegate: UIResponder, UIApplicationDelegate
这将使您的应用程序被迫在不需要任何启动的情况下进行区域设置。
https://stackoverflow.com/questions/30749459
复制相似问题