Есть лучший способ сделать это. Вы можете заставить язык так:
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
И отмените эту настройку:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
NB. вам, как правило, придется перезапустить приложение, чтобы это вступило в силу.
Подумайте, нужно ли вам позвонить [[NSUserDefaults standardUserDefaults] synchronize];
Я согласен, что пользователю не нужно указывать язык. Однако единственным исключением является возможность переопределить язык и установить его на родной язык разработчика. Если пользователь может говорить на языке разработчика (например, английском для меня), он может захотеть использовать приложение на этом языке, если переводы неверны.
Я ссылаюсь на этот ответ: Как заставить NSLocalizedString использовать определенный язык (ответ на самом деле не работает для меня, но следуя идеям в комментариях, сделал. Отменить то, что я разработал