代码之家  ›  专栏  ›  技术社区  ›  RaYell

首次运行时设置iPhone应用程序的默认语言

  •  0
  • RaYell  · 技术社区  · 15 年前

    我做的是把这段代码作为

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[NSArray arrayWithObjects:@"fr", nil] forKey:@"AppleLanguages"];
    [defaults synchronize];
    

    它工作得很好,除了一件事。当您在安装后第一次启动应用程序时,它仍然是英文的。那可能是因为 AppleLanguages

    是否有人知道一个修正,使法语也适用于第一次运行?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Matt Martel    15 年前

    听起来很乱。为什么不取消选中目标中未完成的英语资源,这样它们就不会被部署?另外,您是否查看了Info.plist中的CFBundleDevelopmentRegion设置?

        2
  •  11
  •   romrom    15 年前

    我遇到了同样的问题,唯一能解决的办法就是在应用程序的最早阶段,即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;
     }
    

    我不确定这是否是一个好的做法,但在我的情况下,它起到了预期的作用。