iOS Localizations 国际化多语言配置

2019-02-26  本文已影响0人  AlleniCode

New Localization Workflows in Xcode 10

新建一个工程

LocalizationsDemo

新建工程@2x.png

设置 Application has localized display name

打开 Info.plist 文件,添加 Application has localized display name,并设置为 YES:

设置 Application has localized display name@2x.png

设置 Localizations

打开 LocalizationsDemo -> PROJECT -> Info -> Localizations -> +,点击 “+” 添加所需语言:

QQ20190226-114039@2x.png

先添加一个中文简体的,点击“Finish”:

添加中文简体@2x.png

添加完成后会看到文件的变化:

添加完成后的变化@2x.png

添加 InfoPlist.strings 文件

新建 Strings File 文件(快捷键 command + N):

新建 Strings File 文件@2x.png

选中“Resource”下面的“Strings File”,然后点击“Next”:

Resource->Strings File@2x.png

命名为“InfoPlist”(注意:必须是 InfoPlist,别的没试过),点击“Create”:

命名 InfoPlist 文件@2x.png

InfoPlist.strings 文件创建完成:

InfoPlist.strings 文件创建完成@2x.png

点击右侧面板的“Localize”按钮,再点击弹框的“Localize”按钮:

Localize@2x.png

右侧面板的 Localization 会多出一个选项:

Localization@2x.png

选中“Chinese”选项,左侧面板会自动添加一个“InfoPlist.strings(Chinese (Simplifield))”文件:

InfoPlist.strings(Chinese (Simplifield))@2x.png

配置 InfoPlist.strings 文件

分别在 InfoPlist.strings(English) 和 InfoPlist.strings(Chinese (Simplifield)) 文件中添加以下内容:

CFBundleDisplayName = "APP Name"@2x.png CFBundleDisplayName = "APP 名字"@2x.png

其他可配置的内容:

NSCameraUsageDescription = "Use your camera to scan the qr code and update the avatar";
NSPhotoLibraryUsageDescription = "Use your photo album for qr code recognition and update avatar";
NSContactsUsageDescription = "Find contacts you might know";
NSFaceIDUsageDescription = "Use Face ID to login";
NSCalendarsUsageDescription = "Use your calendar to get dates.";
NSMicrophoneUsageDescription = "Use your microphone for voice playback";
NSHealthShareUsageDescription = "Use your health data for data statistics";
NSHealthUpdateUsageDescription = "Use your health data for data statistics";
NSPhotoLibraryAddUsageDescription = "Use your photo album to add photo";
NSLocationAlwaysUsageDescription = "Use your location data for data statistics";
NSLocationWhenInUseUsageDescription = "Use your location data for data statistics";
NSCameraUsageDescription = "使用您相机进行扫描二维码以及更新头像";
NSPhotoLibraryUsageDescription = "使用您的相册进行二维码识别以及更新头像";
NSContactsUsageDescription = "使用您的相册通讯录查找可能认识的人";
NSFaceIDUsageDescription = "使用Face ID解锁应用";
NSCalendarsUsageDescription = "使用您的日历获取日期";
NSMicrophoneUsageDescription = "使用您的麦克风进行语音播放";
NSHealthShareUsageDescription = "使用您的健康数据进行统计";
NSHealthUpdateUsageDescription = "使用您的健康数据进行统计";
NSPhotoLibraryAddUsageDescription = "使用您的相册添加图片";
NSLocationAlwaysUsageDescription = "使用您的位置进行数据统计";
NSLocationWhenInUseUsageDescription = "使用您的位置进行数据统计";

添加 Localizable.strings 文件

新建 Strings File 文件(快捷键 command + N),选中“Resource”下面的“Strings File”,然后点击“Next”:

新建 Strings File 文件@2x.png

命名为“Localizable”(注意:非必须是 Localizable,后面可以自己设置),点击“Create”:

Localizable.strings 文件@2x.png

Localizable.strings 文件创建完成后,点击右侧面板的“Localize”按钮,再点击弹框的“Localize”按钮:

Localize@2x.png

选中“Chinese”选项,左侧面板会自动添加一个“Localizable.strings(Chinese (Simplifield))”文件:

Localizable.strings(Chinese (Simplifield))@2x.png

配置 Localizable.strings 文件

分别添加以下内容:

配置 Localizable.strings 文件@2x.png

添加代码测试

ViewController.m 文件里添加以下代码:

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

运行模拟器:

APP Name@2x.png 系统语言为英文@2x.png APP 名字@2x.png 系统语言为英文@2x.png

系统语言设置

Settings@2x.png General@2x.png Language & Region@2x.png iPhone Language@2x.png 简体中文@2x.png Change to Chinese, Simplified@2x.png 正在设置语言@2x.png 语言设置完成@2x.png

总结

欢迎留言讨论,有错误请指出,谢谢!

【联系我(QQ:3500229193)或者加入社群,请戳这里!】

更新日志

日期 次数 备注
2019.02.26 1
上一篇 下一篇

猜你喜欢

热点阅读