在项目里的PROJECT Info的Localizations里添加你要支持的语言。
创建本地化(国际化)文件
- 注意如果要创建国际化App名称的文件则文件名必须是:
InfoPlist.strings
同时支持简体中文的文件里必须写
CFBundleDisplayName="国际化和本地化";
支持英语文件里必须写CFBundleDisplayName="LocalizedDemo";
-
NSString *string1 = NSLocalizedString(@"hao", nil);
当第二个参数时nil
时默认读取的是Localizable.strings
文件里面的hao
的value值 -
NSLocalizedStringFromTable(@"one", @"my", nil);
当table为nil时读取的是MainBundle
里my.strings
文件里的one
的value值。
设置本地化和国际化文件支持的语言。
- 选中
.strings
文件,点击左边Make Localized
按钮。会出现如下
- 会出现如下 点击
Localized
- 再在出现如下 选中你要支持的语言
在.strings
文件里写入国际化和本地化语言的key 和 value 值。
1 2 3 文件中分别写入key对应不同语言的value值。格式如下:
简体中文
"ni%@" = "你%@";
hao = "好";
- 英文
"ni%@" = "you %@";
hao = "hello";
- 其中常量字符串hao可以不用
" "
包含在内,而变量字符串必须用" "
包含在内
在要使用本地化和国际化语言文本是时。如下图:
本地化和国际化图片,有两种方式:
- 在不同语言的
Localizable.strings
中指定不同的图片名称,通过NSLocalizedString()
获取不同的图片名称后进行显示不同的图片(这个就是通过国际化文字那个) - 参照国际化应用名和文字的方式给图片标记两种不同的语言显示 (但将图片放Images.xcassets中时时似乎没有地方可以选择国际化语言的)
编辑模拟器语言,测试是否支持多语言。
- 第一步 点击截图 选择Edit Scheme
*第二部 设置语言
真机测试(一切以真机测试为准)
支持语言各种情况分类
真机具体测试情况
- 当app当前的本地语言在app本地支持的本地语言组时显示app当前的本地语言。
- 当app当前的本地语言不在app本地支持的本地语言组且手机支持的本地化语言组与app本地支持的本地语言组无交集时显示英语。
- 当app当前的本地语言不在app本地支持的本地语言组且手机支持的本地化语言组与app本地支持的本地语言组有交集时显示手机支持的本地化语言组中优先级较高的。
补充添加,Localization native development 好像没有什么卵用,app显示的是app本地支持语言和手机支持语言交集中优先级高的,若没有交集显示的是英语。