Timur Mustafaev
Timur Mustafaev

Reputation: 4929

Change language of the ios application

I've put my app settings into iPhone Settings panel. I want to switch between languages independently of the iPhone system language. Is it possible? I'm using this advice: How to force NSLocalizedString to use a specific language

But it translates only string inside app, but my nib files are same. How to reload my nibs?

Upvotes: 4

Views: 6194

Answers (1)

Mike Weller
Mike Weller

Reputation: 45598

The key is to override the NSUserDefaults language key before UIApplicationMain() is called in your main() function in main.m. Try something like this in your main() function:

// use whatever language/locale id you want to override
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de_DE", nil]
                                          forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
int retVal = UIApplicationMain(argc, argv, nil, nil);

Upvotes: 20

Related Questions