This may or may not fulfill your needs, but one way to gain programmatic access over the app's current locale is to override the AppleLanguages
key in NSUserDefaults. For example, to change to French:
[[NSUserDefaults standardUserDefaults] setObject:@[ @"fr" ]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
The downside to this approach is that you need to close and reopen the app for the change to take effect.
Note, to return to the system default, simply call:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];