美文网首页
2020-06-05

2020-06-05

作者: zxb有缘 | 来源:发表于2020-06-06 16:11 被阅读0次

    1.新建项目,创建

    image

    2.文件名字我是使用的系统的Localizable

    image

    3.设置支持的语言版本

    image

    [图片上传中...(02181497-6E15-419F-A674-5D3A1A883934.png-986780-1513850483670-0)]

    4.目前为止,就实现了跟随系统语言来切换app里边的内容
    设置语言资源:分别在两个语言文件里边设置key:valuekey必须相同,然后value分别对应版本语言

    image image

    使用方法:self.label.text = NSLocalizedString(@"xxx", nil);

    5.进阶需求,童鞋们想实现进app之后,设置默认语言,如果是当前本地语言之外的语言,就设置语言为英文的话,请看下边思路!
    首先didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中判断当前系统语言

    
            NSArray  *languages = [NSLocale preferredLanguages];
            //判断当前系统语言
            NSString *language = [languages objectAtIndex:0];
            if ([language hasPrefix:@"zh-Hans"]) {
                //我这里的需求是,如果不是中文,则APP语言都显示成英文,
                //先把它存在NSUserDefaults中
                [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
            } else{
                //en.lproj 是英文资源包的文件名字
                [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
            }
    
    

    可以看下资源包名字,就明白了

    image

    在pch中,写上这个

    #define WWNSLocalizedString(Context)  [NSString stringWithFormat:@"%@", [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(Context) value:nil table:nil]]
    
    

    这行代码意思获取首页userdefault中设置的语言类型,然后根据类型去获取语言资源包,然后使用相应的资源
    调用的时候就这么用就OK啦

    self.label.text = WWNSLocalizedString(@"xxx");
    
    

    效果图:中文简体语言下

    image

    非中文简体下

    image

    相关文章

      网友评论

          本文标题:2020-06-05

          本文链接:https://www.haomeiwen.com/subject/fjhazhtx.html