1110 1110 - 1 year ago 109
Swift Question

Setting "AppleLanguages" doesn't change app language

I am trying to implement a function that can change app language.

I tried to set it like this:

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("de", forKey: "AppleLanguages")

And after app restart language is still 'system default'.

Now I test different languages by setting
Scheme > Application Language > language

But is it possible to user click a button and after restart to see picked language?

Also what is the proper way to do this to avoid changing language on restart?

Answer Source

Yes you can change the app language immediately like,

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)

use your NSUserDefaults value to language.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download