美文网首页
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---多语言的实现

    1.设置要适应的语言 重点:文件的名字必须是Localizable.strings,设置app的名字需要创建一个名...

  • Flutter 多语言&多主题实现

    目录 多语言实现 多主题实现 状态管理 切换多语言 切换多主题 多语言实现 1. AndroidStudio-> ...

  • IOS---多线程实现方案二 (GCD)

    IOS---多线程实现方案二 (GCD) 上篇文章讨论了使用PTHread和NSThread的多线程实现。这篇文章...

  • 微信平台Java 后端AES加密的app前端实现

    [Facee]iOS---关于微信平台Java 后端AES加密的app前端实现 按照Java流程是全部转化为字节流...

  • 20170504 RunTime

    iOS---防止UIButton重复点击的三种实现方式 iOS防止Button重复点击 iOS网络请求缓冲优化Ht...

  • 用Application Loader 上传的时候报错

    iOS---用Application Loader 上传的时候报错No suitable application ...

  • iOS多语言构建技巧

    虽说是讲多语言,但是这里不讲怎么实现多语言,因为各大网站都有说,而且这个技术不在话下。 今天来讲讲构建多语言文件,...

  • iOS多语言构建技巧

    虽说是讲多语言,但是这里不讲怎么实现多语言,因为各大网站都有说,而且这个技术不在话下。 今天来讲讲构建多语言文件,...

  • asp.net core 基于 JSON 实现多语言

    asp.net core 基于 JSON 实现多语言 Intro 上次我们提到了,微软默认提供基于资源文件的多语言...

  • rxjs - i18n

    目的 实现网页多语言的切换 依赖 react,rxjs,useObservable感觉就是简单,简单,简单 实现 ...

网友评论

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

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