0%

Xcode添加多语言设置

开发环境

  • OS: macOS High Sierra 10.13.6
  • Xcode: 10.0

简介

现在许多项目都开始需要支持多语言,目前Xcode版本需要添加两个文件才能支持,分别是InfoPlist.stringsLocalizable.strings,前一个必须添加(名称必须一样),后一个名称何以不一样,作用如下:

  • InfoPlist.strings添加之后整个APP都支持多语言,否则无法设置APP语言选择。APP显示名称也在这个文件设置。
  • Localizable.strings这个是默认的语言文件,系统显示字符串从该语言文件选区。

步骤

具体操作步骤如下:

  1. 添加InfoPlist.strings

  2. 添加Localizable.strings

  3. 添加多语言支持

    这里默认都是支持英语,具体设置参考`Info.plist`文件。
  4. 添加其他语言

这里只选择支持多语言的两个文件,其他如有必要也可以添加

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

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

运行之后显示名称如下:

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

然后在获取时候使用NSLocalizedString获取字符串:

1
NSLocalizedString(@"title", nil);

因为系统默认语言文件为Localizable.strings,如果建了其他不一样的文件需要使用下面的方式获取:

1
NSLocalizedStringFromTable(@"title", @"lan", nil);

其中lan指文件lan.strings,至此多语言支持既可以了。

  1. 设置指定语言
    有时候我们需要设置多语言支持而不能随系统显示,就需要强制设置APP当前语言:
    1
    2
    [[NSUserDefaults standardUserDefaults] setObject:@[@"ja"] forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    目前设置的是日语,系统为中文环境,显示如下: