在我的应用程序中,用户可以选择一种语言,所以我希望我的应用程序相应地更改语言,但它不起作用。我在网上找到了这个代码:iPhone - 自定义语言设置
// 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;
}
这是可能的吗?
thnks,如果它可以被拒绝,然后我不想这样做,但我怎么能显示从es.proj或从en.proj的笔尖记入一些用户默认设置 – vallllll 2012-02-01 17:11:05
iOS根据用户设置自动显示最佳选择。这意味着如果您的用户选择“es”语言,您的应用程序会显示您的NIB文件的“es”版本。 – Beppe 2012-02-01 17:21:53
我对es有所了解,但它只是一个例子,对于一些罕见的语言,它并不是如此,有没有办法绕过它? – vallllll 2012-02-01 17:25:25