更改iOS应用程序中的语言设置

时间:2012-07-19 13:18:24

标签: iphone objective-c ios xcode

我有一个表视图和2个静态组,其中一个包含语言,我想在我的应用程序设置中有2种语言英语和法语,当用户选择英语时,整个设置更改为英语和用户选择法语一切都改为法语你能不能帮助我,我看了一些样本,但我不知道如何设置,我应该在哪里设置代码,如何将代码连接到我的复选标记单元格! / p>

提前致谢!

这是我的设置图片:

enter image description here

2 个答案:

答案 0 :(得分:0)

首先从这段代码中获取语言代码

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];

2)制作本地化字符串文件

3)使用此NSLocalizedString(@"WelcomeKey", @"")

示例:

 NSString *example=@"";


    if([currentLanguage isEqualToString:@"en"])
    {
      example =  NSLocalizedString(@"WelcomeKey", @"Engliah");
    }

    else {
      example =  NSLocalizedString(@"WelcomeKey", @"french");
    }

答案 1 :(得分:0)

  1. 为所有xib(标签,文本字段)中的所有文本对象提供出口。这将允许您访问它们以更改其值(例如,将文本字段的占位符从“名字”更改为“Prénom”)。
  2. 制作.plist文件,其中包含英文内容的键和值(您可以使用插座名称作为键),另一个用于法语内容。
  3. 保留默认值,例如myLanguageIndicator(在NSUserDefaults中)将保留您当前的语言,并且在您设置语言时将分别更改。
  4. 根据您的默认值(如果是“eng”或“fr”),在每个类中,在viewWillAppear中,通过读取所需的.plist文件来设置出口的值。
  5. 假设您的默认语言值为“fr”。这意味着您将在viewWillAppear中使用fr.plist(或其他任何名称)。并且“titleLabel”是您的一个控制器中标题标签的出口。

    在另一个默认对象中,您保留了fr.plist的字典(谷歌如何将plist加载到字典中)。

    然后你说:

    if ([myLanguageIndicator isEqualToString:@"fr"]){
          titleLabel.text = [myFrenchDictionary objectForKey:@"titleLabel"];
       ... ... ...change here all your outlets to french values
       }
       else{
          titleLabel.text = [myEnglishDictionary objectForKey:@"titleLabel"];
           ... ... ...change here all your outlets to english values
       }
    

    当您选择语言时,只需将默认字符串对象myLanguageIndicator更改为@"fr"@"eng",具体取决于您选择的语言。