ios - iPhone : Using localization change language of an app set it in NSUserDefaults

标签 ios iphone objective-c

嗨 friend 们,我是 iPhone 新手。在我的项目中,我使用本地化来更改应用程序的语言。我做到了,但是问题来了。当应用程序停止并再次运行时,通过本地化设置的语言不会保留。所以我读到我们需要在 NSUserDefaults 中保存本地化设置的语言。请帮我。如何将其保存在 NSUserDefaults 中并在应用程序启动时回调?这是代码。这样我就设置了语言

- (IBAction)EngLang:(id)sender {
    [[Localization sharedInstance] setPreferred:@"en" fallback:@"es"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"en" forKey:@"Applanguage"];   
}

- (IBAction)espLang:(id)sender {
    [[Localization sharedInstance] setPreferred:@"es" fallback:@"en"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"es" forKey:@"Applanguage"];
}

如何在 NSUserDefaults 中保存语言以及如何在应用程序启动时调用它? 现在我将语言保存在 NSUserDefaults 中。怎么读呢?这是我以前读过的代码。我在 appDelegate 中完成了此操作。

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en",@"es", nil] forKey:@"Applanguage"];
[[NSUserDefaults standardUserDefaults] synchronize];

最佳答案

试试这个。

// Set languge en
- (IBAction)EngLang:(id)sender {
    [[Localization sharedInstance] setPreferred:@"en" fallback:@"es"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"en" forKey:@"Applanguage"];
    [defaults synchronize];
}

// Set languge es
- (IBAction)espLang:(id)sender {
    [[Localization sharedInstance] setPreferred:@"es" fallback:@"en"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"es" forKey:@"Applanguage"];
    [defaults synchronize];
}

// Call this method on launching.
- (void) retainTheLastSettedLanguage
{
    NSString * currentLanguage ;

    if ([[NSUserDefaults standardUserDefaults] valueForKey:@"Applanguage"] != nil)
     {
        currentLanguage = [[NSUserDefaults standardUserDefaults] valueForKey:@"Applanguage"];
        if ([currentLanguage isEqualToString:@"en"]) 
        {
           [[Localization sharedInstance] setPreferred:@"en" fallback:@"es"];   
        }
        else
        {
           [[Localization sharedInstance] setPreferred:@"es" fallback:@"en"];    
        }
     }    
}

关于ios - iPhone : Using localization change language of an app set it in NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472208/

相关文章:

c++ - 带有 float 据的 C 数组在 Objective C 类中崩溃 (EXC_BAD_ACCESS)

ios - 将 CLLocationCoordinate2D 返回到结构

ios - 自动续订订阅收据验证

ios - 关闭 View Controller iOS

iphone - 可滚动且与 UITable 滚动同步的背景图像

iphone - 如何在没有 Apple 硬件(iPhone + Mac)的情况下将 Phonegap 应用程序部署到 iPhone

ios - textFieldIndex (0) 超出了文本字段数组的范围

iphone - ZUUIRevealController 泄漏内存?

iphone - 根据 iPhone 尺寸的特定类型自动布局 UIButton 和 UILabel 字体大小[非编程方式]

objective-c - AFNetworking 不恢复下载