簡體   English   中英

首次運行時為iPhone應用設置默認語言

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM