级别:★★☆☆☆
标签:「iOS本地化」「Localizable.strings」
作者: WYW
审校: QiShare团队
上篇:iOS 本地化(IB篇),讲述了iOS 本地化中与
Interface Builder
相关的内容。
本篇将给大家分享一下iOS本地化(非IB本地化文本)的内容。
iOS本地化(非IB本地化文本)
步骤如下:
- 步骤一:创建
Localizable.strings
,用于本地化文本。
示意图如下:
- 步骤二:
Localizable.strings
添加中文简体支持,如下图:
- 步骤三:
Localizable.strings
创建完成,如下图:
- 步骤四:添加本地化文本(默认叫
Localizable.strings
),如下图:
本地化(英文环境部分):
本地化(简体中文环境部分):
备注:可以使用“英文”作为key,也可以使用“中文”作为key。(可以根据开发者的语言习惯决定)
- 步骤五:
调用方法:就会根据设备当前的语言环境 => 不同语种的字符串。
[[NSBundle mainBundle] localizedStringForKey:@"QiPushViewController_localizationLabel.text" value:nil table:nil];
[[NSBundle mainBundle] localizedStringForKey:@"奇分享本地化文本" value:nil table:nil];
// 官方还提供了宏来做这件事,也可以使用。
NSString *str1 = NSLocalizedString(@"QiPushViewController_localizationLabel.text", @"奇分享本地化文本");
NSString *str2 = NSLocalizedString(@"QiPushViewController_localizationLabel.text", nil);
NSString *str3 = NSLocalizedString(@"奇分享本地化文本", nil);
其中这个方法:
- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName;
有三个参数key
、value
、tableName
,并且返回一个字符串。
参数 | 含义 |
---|---|
key | 键名 |
value | 值名 |
tableName | 文件名(默认是Localizable) |
key,value,和返回的字符串之间的关系可由如下表格表示
key | value | return(string) |
---|---|---|
nil | nil | empty string |
nil | non-nil | value |
not found | nil or empty string | key |
not found | non-nil | value |
注:在日常开发中:直接使用
NSLocalizedString(key, comment)
这个宏就可以啦~既方便又直观快捷。
本地化补充:创建多个本地化文件。
可以添加其他的本地化文件,例如:supplementaryLocalizable.strings
,过程与创建Localizable.strings
的过程相同。
如下图:
调用方法:
[[NSBundle mainBundle] localizedStringForKey:@"奇分享本地化文本补充" value:nil table:@"supplementaryLocalizable"];
// 或者使用宏
NSLocalizedStringFromTable(@"奇分享本地化文本补充", @"supplementaryLocalizable", nil);
工程源码:GitHub地址
了解更多iOS及相关新技术,请关注我们的公众号:
关注我们的途径有:
QiShare(简书)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公众号)
推荐文章:
iOS 文件操作简介
iOS 关键帧动画
iOS 小游戏项目——数字速算升级版
iOS 小游戏项目——你话我猜升级版
奇舞周刊