在我的應用程序中,用戶可以選擇一種語言,所以我希望我的應用程序相應地更改語言,但它不起作用。我在網上找到了這個代碼: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