QiShare文章汇总iOS 开发每天分享优质文章

iOS 本地化(非IB篇)

2018-11-22  本文已影响108人  QiShare

级别:★★☆☆☆
标签:「iOS本地化」「Localizable.strings」
作者: WYW
审校: QiShare团队

上篇:iOS 本地化(IB篇),讲述了iOS 本地化中与Interface Builder相关的内容。
本篇将给大家分享一下iOS本地化(非IB本地化文本)的内容。

iOS本地化(非IB本地化文本)

步骤如下:

示意图如下:

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; 

有三个参数keyvaluetableName,并且返回一个字符串。

参数 含义
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的过程相同。
如下图:

简体中文的supplementaryLocalizable.strings 英文的supplementaryLocalizable.strings

调用方法:

[[NSBundle mainBundle] localizedStringForKey:@"奇分享本地化文本补充" value:nil table:@"supplementaryLocalizable"];

// 或者使用宏
NSLocalizedStringFromTable(@"奇分享本地化文本补充", @"supplementaryLocalizable", nil);

工程源码:GitHub地址

关注我们的途径有:
QiShare(简书)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公众号)

推荐文章:
iOS 文件操作简介
iOS 关键帧动画
iOS 小游戏项目——数字速算升级版
iOS 小游戏项目——你话我猜升级版
奇舞周刊

上一篇 下一篇

猜你喜欢

热点阅读