Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS应用程序强制使用英语作为语言_Ios_Localization_Nsuserdefaults - Fatal编程技术网

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

IOS应用程序强制使用英语作为语言,ios,localization,nsuserdefaults,Ios,Localization,Nsuserdefaults,现在我的应用程序需要以英语运行,但当我第一次运行应用程序时,会使用设备的默认语言 我尝试了以下代码: @autoreleasepool { [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; [[NSUserDefaults standardUserD

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

我尝试了以下代码:

    @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]));
}

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

您应该像这样自定义本地化字符串。启动应用程序时,使用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;
}

没有办法正确地做到这一点。如果您的应用程序需要始终使用英语,请将其转换为完全不使用系统语言。在何处使用此。。这是安全的吗?您不用使用NSLocalizedString,而是使用此自定义本地化!我用这个,直到现在它还有效!它不属于系统,只属于您设置的键(en或ja)