iOS-多语言设置

1,956 阅读2分钟

「这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战

因为做的项目有境外的用户存在, 所以APP需要做多语言的兼容, 查了一下资料多语言兼容设置起来还是挺麻烦的, 好多步骤要走, 如果哪里设置不正确还是挺烦人的, 所以开一篇文章来聊一聊这个事情.

首先我们需要进行项目的配置
生成对应的语言配置

image.png

然后我们来生成多语言的配置文件

image.png

给文件起个对应语言的文件名称, 因为可能会有多个国家的语言文件存在

image.png

选中生成的文件配置, 设置多语言配置

image.png

选择对应的语言配置

image.png

然后基本上就已经设置完毕了. 后续就是需要在文件中写对应的语言关键词了.

这样写出来的多语言文件是根据手机系统语言来变化, 如果改变系统语言并且APP中有对应语言的配置文件, 那么就可以实现对应的语言显示了.

在项目中如何使用多语言的配置呢?

我们可以通过设置一个宏来省去很多不必要的代码, 如下所示

#define LocalizedString(key) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:@"File"]

使用宏的话对程序的启动会有一定的影响, 如果对这方面有极限追求的话, 也可以用过调用函数的方式来实现.

比如 我们再语言文件中设置了 home 的字样, 在中文语言下显示 首页, 在英文语言下显示 home, 那么我们就可以如下使用:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 150, 30)];
label.text = NSLocalizedString(@"home", @"");
[self.view addSubview:label];

这样就可以实现了, 还是比较简单易懂的, 就是设置起来比较麻烦一点, 如果有更好的建议, 可以再评论区告知我,谢谢