iOS 语言本地化

App 本地化,又称国际化,是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。也可以手动设置。

·

1.配置项目中可以本地化的语言。
2.应用名称本地化。
3.项目代码中的字符串本地化。

·

配置项目中可以本地化的语言。

项目 - PROJECT - info -> Localizations,点“+”,选择(Chinese(Simplified))添加简体中文,(Chinese(Traditional))添加繁体中文,英文Xcode自带有(English),所以不需要再次添加。


iOS 语言本地化_第1张图片
pic1.png

选择Finish即可。


iOS 语言本地化_第2张图片
pic2.png

·

应用名称本地化。

添加配置文件。在Supporting Files文件夹下,New File -> Strings File。


iOS 语言本地化_第3张图片
pic3.png

创建的.strings文件必须命名为InfoPlist。


iOS 语言本地化_第4张图片
pic4.png

在项目文件夹下,新增了InfoPlist.strings文件。
pic6.png

选中InfoPlist.strings,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,选择需要本地化的语言。
iOS 语言本地化_第5张图片
pic5.png

点击Localize后,会弹出一个对话框,然后展开对话框列表。选择需要本地化的一个语言,然后点击对话框的Localize按钮。


iOS 语言本地化_第6张图片
pic7.png

Xcode右侧的File inspection变成了下图的样式。
勾选Chinese(Simple)、English。
iOS 语言本地化_第7张图片
pic8.png

Xcode左侧的InfoPlist.stirings左侧多了一个箭头,点击箭头可以展开。


iOS 语言本地化_第8张图片
pic9.png

注:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,显示应用程序的名字。
分别在三个文件中,添加不同语言的情况下,应用的名称。
CFBundleDisplayName = "Localizable App Name";
CFBundleDisplayName = "测试";
.
CFBundleDisplayName = "測試";
.
CFBundleDisplayName = "Test";

本地化App的应用名称效果如下:


iOS 语言本地化_第9张图片
pic10-1.png
iOS 语言本地化_第10张图片
pic10-2.png
iOS 语言本地化_第11张图片
pic10-3.png

·

项目代码中的字符串本地化。

字符串本地化,就是指App内的字符串在不同的语言环境下显示不同的内容。比如,"主页"在中文语言环境下显示“主页”,在英语环境下显示“Home”。
添加配置文件。在Supporting Files文件夹下,New File -> Strings File。
创建的.strings文件必须命名为Localizable。


iOS 语言本地化_第12张图片
pic11.png

剩余步骤同上。在打开Localizable.strings文件,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,选择需要本地化的语言。勾选没有选中的本地化语言。
Xcode右侧的File inspection变成了下图的样式。


iOS 语言本地化_第13张图片
pic12.png

接下来就是在代码中,把字符串本地化,苹果提供了本地化的函数。

#define NSLocalizedString(key, comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]

部分实现代码如下:

//中文
"Master" = "首页";
"SpecialUserActionDanmu" = "特殊用户弹幕";
"YZHeartView" = "心视图";
"YZDanmuView" = "弹幕视图";
"commentView" = "评论视图";
"AllDemoTogether" = "全部特效";
//繁体中文
"Master" = "首頁";
"SpecialUserActionDanmu" = "特殊用戶彈幕";
"YZHeartView" = "心視圖";
"YZDanmuView" = "彈幕視圖";
"commentView" = "評論視圖";
"AllDemoTogether" = "全部效果";
//英文
"Master" = "Center";
"SpecialUserActionDanmu" = "SpecialUser";
"YZHeartView" = "Heart";
"YZDanmuView" = "Danmu";
"commentView" = "Comment";
"AllDemoTogether" = "Together";

//
NSLocalizedString(@"Master", nil)

实现效果如下:


iOS 语言本地化_第14张图片
pic13-1.png
iOS 语言本地化_第15张图片
pic13-2.png
iOS 语言本地化_第16张图片
pic13-3.png

你可能感兴趣的:(iOS 语言本地化)