美文网首页
iOS---多语言的实现

iOS---多语言的实现

作者: 彬至睢阳 | 来源:发表于2018-06-09 09:26 被阅读0次

    1.设置要适应的语言

    重点:文件的名字必须是Localizable.strings,设置app的名字需要创建一个名为InfoPlist.strings的文件

    然后如下图添加要支持的语言

    添加完所支持的语言之后,

    在我们工程的左侧。也就是刚刚创建的文件下面会长生相对应的子文件夹,如:

    二右边文件中左侧Language为对应的key值,右侧的为相对应语言的写法。

    在代码中可以这样设置

     UILabel* lab = [[UILabelalloc]init];

        [self.viewaddSubview:lab];

        lab.frame=CGRectMake(80,100,80,30);

        lab.textColor = [UIColor redColor];

        lab.text = NSLocalizedString(@"Language", nil);

    即可。

    应用内实现多语言

    在添加了应用所需的语言之后,在应用的文件夹内会出现以下目录


    这就是各种语言所对应的文件。

      NSString *path = [[NSBundle mainBundle] pathForResource:@"zh-Hans" ofType:@"lproj"];//获取语言路径

         NSString *showValue = [[NSBundle bundleWithPath:path] localizedStringForKey:@"Language" value:nil table:nil];//获得相对应语言,相对应key的值

        NSLog(@"result: %@", showValue);

    我们可以动态的切换各种语言所对应的后缀为lproj的文件,来进行切换语言。

    总结:

    虽然到此为止,已经实现了应用多语言的大致流程,但是觉得还是有一些弊端。在当今的应用市场中,很多应用展示给用户的数据,基本都是动态获取的,一开始就在应用内写死的数据很少了,所以这种切换多语言的方式就显的捉襟见肘了。这应该是苹果的一个弊端吧。通过这种方式不能实现将服务端返回的数据就行多语言设置。我们的国民应用支付宝也是支持多语言设置在应用内和应用外。他就是将一本分数据进行了多语言的切换,而另外一些就没有。想必也是因为这个原因造成的吧。

    相关文章

      网友评论

          本文标题:iOS---多语言的实现

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