
开发环境
- OS: macOS High Sierra 10.13.6
- Xcode: 10.0
简介
现在许多项目都开始需要支持多语言,目前Xcode
版本需要添加两个文件才能支持,分别是InfoPlist.strings
和Localizable.strings
,前一个必须添加(名称必须一样),后一个名称何以不一样,作用如下:
InfoPlist.strings
添加之后整个APP
都支持多语言,否则无法设置APP
语言选择。APP
显示名称也在这个文件设置。Localizable.strings
这个是默认的语言文件,系统显示字符串从该语言文件选区。
步骤
具体操作步骤如下:
添加
InfoPlist.strings
添加
Localizable.strings
添加多语言支持
这里默认都是支持英语,具体设置参考`Info.plist`文件。
添加其他语言
这里只选择支持多语言的两个文件,其他如有必要也可以添加

然后添加繁体中文和日文,最后文件显示如下:

目前已经支持四种语言了,首先设置APP
名称,需要在InfoPlist.strings
里面设置属性CFBundleDisplayName
,显示如下:


运行之后显示名称如下:


- 系统内显示多语言
在使用字符串的时候需要用到Localizable.strings
里面字符串,设置如下:


然后在获取时候使用NSLocalizedString
获取字符串:
1 | NSLocalizedString(@"title", nil); |
因为系统默认语言文件为Localizable.strings
,如果建了其他不一样的文件需要使用下面的方式获取:
1 | NSLocalizedStringFromTable(@"title", @"lan", nil); |
其中lan
指文件lan.strings
,至此多语言支持既可以了。
- 设置指定语言
有时候我们需要设置多语言支持而不能随系统显示,就需要强制设置APP当前语言:目前设置的是日语,系统为中文环境,显示如下:1
2[[NSUserDefaults standardUserDefaults] setObject:@[@"ja"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];