欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS多语言设置

程序员文章站 2022-04-11 20:59:27
最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程。如有不对的地方,欢迎各位大神指正。下面就详细介绍下设置的过程: 1、基本设置 第一步:首先在 项目工程-PTROJECT-Info中添加需要支持的语言 如上点击“+”号会弹出提供的语言列表,我们选择项目 ......

最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程。如有不对的地方,欢迎各位大神指正。下面就详细介绍下设置的过程:

1、基本设置

第一步:首先在 项目工程-PTROJECT-Info中添加需要支持的语言

iOS多语言设置

 

如上点击“+”号会弹出提供的语言列表,我们选择项目需要支持的语言就可以了

iOS多语言设置

第二步:创建Localizable.strings(⚠️:该文件名不要随意更改)作为多语言资源对应的词典,存储多语言

iOS多语言设置

 

创建好后,接下来需要继续做如下操作:

(1)选中Localizable.strings文件,点击右侧栏对应的Localize...

iOS多语言设置

 

(2)在Localization里添加所要支持的语言,并勾选

第三步,经过以上几步,前期的基本设置完成了,可以在Localizable.strings里设置所需要的语言了。如下所示

iOS多语言设置

第四步,设置好对应的语言后,就可以去使用了。那么可以按以下方式去使用

NSString * tempStr = NSLocalizedString(@"test_label", nil); 

⚠️:

以上是对应的创建以Localizable为名字的文件调用方式。如果设置的是自定义的名字,如test.strings,调用的方式为:

NSLocalizedStringFromTable("name", "test", nil);

2、StoryBoard和Xib设置

storyBoard和xib设置同Localizable.strings类似。点那个我们创建Localizable.strings对应的语言文件时,系统自动的生成了app中现有storyBoard对应的系统文件。对于后加的文件,我们可以选中文件,点击右侧的Localize...并勾选对应的语言即可。

比如在storyBoard和xib中有一个Label,它对以会有一个Object ID了。我们可以通过这个ID来设置对应的语言文本

iOS多语言设置   iOS多语言设置

不过这个建议是所有的UI界面都设置完成后,再去设置多语言。当然可以通过对控件拖线,在代码实现中设置多语言

3、应用名等相关权限多语言设置

应用名等设置与上面的几个多语言设置的步骤是基本一致的,只是在创建strings文件的时候文件名要为InfoPlist。

这里以中文为例,设置app名称:"CFBundleDisplayName" = "测试";

iOS多语言设置

4、判断系统的语言

NSArray *languages = [NSLocale preferredLanguages];

NSString *currentLanguage = [languages objectAtIndex:0];

NSLog(@"%@", currentLanguage);

⚠️:通过[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]]设置app语言后,一定要记得重新设置window的rootViewController

好了,以上就是iOS多语言的相关内容