iOS中app国际化的学习记录

有的时候产品里需要涉及到多语言,所以需要国际化的设置,现在就记录一下,首先如果要国际化需要到PROJECT下选择info里的Localizations,点击+号,这样可以增加国际化的语言版本


设置好了以后,你的InfoPlist.strings下面就会多出来2个文件



之后,你就可以在这里设置一些相关的信息

例如,程序名称

//Simplified:
CFBundleDisplayName="中文app";

//English:
CFBundleDisplayName="en-app";

在模拟器切换语言的方法是:设置-通用-多语言环境-语言


本地化内容:

New File… -->Resource-->Strings File,很多教程说文件的名字必须是Localizable.strings否则无法识别,其实并不是,这里我们用另一个方法,把名字设置成MyLocalization.strings

 


然后在对应的MyLocalization.strings的中英文环境里设置想要的字段,用NSLocalizedStringFromTable方法取出想要的文字

//china
"key" = "中文内容";

//en
"key" = "en";


UILabel *label = [[UILabel alloc] init];
    label.frame = CGRectMake(20, 40, 250, 60);
    label.text = NSLocalizedStringFromTable (@"key",@"MyLocalization", nil);
    [self.view addSubview:label];
    
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 250, 60)];
    
    //判断当前语言类型
    NSArray *languages = [NSLocale preferredLanguages];
    //得到语言类型
    NSString *currentLanguage = [languages objectAtIndex:0];
    
    if([currentLanguage isEqualToString:@"en"])
    {
        view.backgroundColor = [UIColor yellowColor];
    }else{
        view.backgroundColor = [UIColor redColor];
    }
    [self.view addSubview:view];

如果想要不同的语言环境对应不同的图片也是可以设置的,大致如之前我们所设置,添加语言环境,会看到


如果想换那个图片,只需要右键点击,showFinder,进去替换成名字一样的图片就可以了啊,哈哈~~


源码:国际化demo

你可能感兴趣的:(ios,国际化,localizations)