【问题标题】:iPhone : Using localization change language of an app set it in NSUserDefaultsiPhone:使用应用程序的本地化更改语言在 NSUserDefaults 中设置它
【发布时间】:2014-01-31 04:03:20
【问题描述】:

嗨,朋友们,我是 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];

【问题讨论】:

  • 是否需要点击相应按钮更改语言?
  • 是的,我需要通过单击按钮更改语言

标签: ios iphone objective-c


【解决方案1】:

试试这个。

// 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"];    
        }
     }    
}

【讨论】:

    【解决方案2】:

    试试这个来保存价值

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

    【讨论】:

    • 应用启动时如何回调
    • 请帮锄头做朋友
    • [[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en",@"es", nil] forKey:@"Applanguage"]; [[NSUserDefaults standardUserDefaults] 同步];我这样做是为了在我的 appdelegate 中阅读。
    • 我浏览了链接,但他们将语言保存在 NSuserdefaults 中
    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多