iOS 语言本地化

2018-02-28  本文已影响0人  牛程程
App 本地化,又称国际化,是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。也可以手动设置。

·

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

·

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

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


pic1.png

选择Finish即可。


pic2.png
·

应用名称本地化。

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


pic3.png

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


pic4.png
在项目文件夹下,新增了InfoPlist.strings文件。
pic6.png 选中InfoPlist.strings,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,选择需要本地化的语言。 pic5.png

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


pic7.png
Xcode右侧的File inspection变成了下图的样式。
勾选Chinese(Simple)、English。
pic8.png

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


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

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


pic10-1.png pic10-2.png pic10-3.png

·

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

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


pic11.png

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


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)

实现效果如下:


pic13-1.png pic13-2.png pic13-3.png
上一篇 下一篇

猜你喜欢

热点阅读