IOS应用程序使用英语作为语言

时间:2014-06-02 00:42:09

标签: ios localization nsuserdefaults

现在我的应用程序需要以英文运行,但是当我第一次运行应用程序时,会使用设备的默认语言。

我试过这段代码:

    @autoreleasepool {
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    [[NSUserDefaults standardUserDefaults] setObject:@"en_US" forKey:@"AppleLocale"];
    [[NSUserDefaults standardUserDefaults] setObject:@"en_EN" forKey:@"AppleLanguages"];

    [[NSUserDefaults standardUserDefaults] synchronize];
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

问题仍然存在,第一次运行应用程序是错误的,但是如果你关闭应用程序并重新打开它,那么英语是默认语言的任何帮助吗?

1 个答案:

答案 0 :(得分:2)

您应该像这样自定义LocalizedString。启动应用程序时,使用UserDefaults获取语言密钥,而不是默认使用系统

typedef enum{
e_language_japanese,
e_language_english
}ENUM_LANGUAGE;

NSString* NSCustomLocalizedString( NSString *key , NSString *comment)
{
 NSString *rs = nil;
 if( [[NSUserDefaults standardUserDefaults] integerForKey:KEY_LANGUAGE ] ==  e_language_japanese)
{
    rs = NSLocalizedStringFromTable(key,@"Localizable.strings-ja",nil);
}
else
{
    rs = NSLocalizedStringFromTable(key,@"Localizable.strings-en",nil);
}
return rs;
}