В моем приложении пользователи могут выбирать язык, поэтому я бы хотел, чтобы мое приложение изменило язык соответствующим образом, но оно не работает.Я нашел этот код в Интернете:
// Force languages
NSString * lang=[[NSUserDefaults standardUserDefaults] stringForKey:@"idioma"];
NSLog(@"language %@",[[NSUserDefaults standardUserDefaults] stringForKey:@"AppleLanguages"]);
if ([lang isEqualToString:@"castella"]) {
[[NSUserDefaults standardUserDefaults]
setObject:[NSArray arrayWithObject:@"es"]
forKey:@"AppleLanguages"];
} //else just default user lang
Этот код не работает.Я думаю, что я просто настраиваю другую настройку предпочтений.Я действительно хочу изменить язык.У меня есть несколько локализованных строк, а также некоторые файлы NIB , поэтому я хотел бы добавить список испанских языков в список предпочтительных локалей на первой позиции, но я не совсем понимаю, как это сделать.
В настройках приложения у меня есть возможность выбрать язык.Это не просто из моего упрямства;просто здесь важны региональные языковые стандарты, и иногда iPhone не обеспечивает их поддержку, но я произношу переводы.
Из ответов я решил отказаться от работы с локалью, но можно ли будет показать другой файл NIB (из en.proj или es.proj)?У меня уже есть первая часть:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
NSString * lang=[[NSUserDefaults standardUserDefaults] stringForKey:@"idioma"];
if ([lang isEqualToString:@"castella"]) {
//Load NIB filer from "es.proj".
}
}
return self;
}
Это вообще возможно?