[英]Setting default language for iPhone app on first run
我正在開發應支持兩種語言的應用程序:英語和法語。 但是,由於尚未完成英語翻譯,因此我們僅希望將其部署為法語,之后再添加英語翻譯。
問題是我不想從代碼中剝離英語,因為某些部分已經完成,該語言有不同的NIB等。相反,我只是希望英語在我的應用程序中被暫時禁用。
我所做的是將這段代碼作為
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObjects:@"fr", nil] forKey:@"AppleLanguages"];
[defaults synchronize];
除了一件事,它工作正常。 安裝后首次啟動該應用程序時,它仍然是英文。 這可能是因為尚未為其設置AppleLanguages
首選項。 退出應用程序並重新啟動后,它會以法語正確顯示。
有誰知道修復程序,因此在第一次運行時也應用了法語?
我遇到了同樣的問題,而解決該問題的唯一方法是在應用程序的最早階段,即在main.c中擁有代碼段:
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObjects:@"fr", nil] forKey:@"AppleLanguages"];
[defaults synchronize];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
我不確定這是否是一個很好的做法,但就我而言,它是否按預期工作。
聽起來很亂。 為什么不從目標中取消選中未完成的英語資源,以使它們不會被部署呢? 另外,您是否查看過Info.plist中的CFBundleDevelopmentRegion設置?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.