iOS---多语言的实现

2018-06-09  本文已影响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的文件,来进行切换语言。

总结:

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

上一篇下一篇

猜你喜欢

热点阅读