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); 複製程式碼
工程原始碼: ofollow,noindex">GitHub地址
關注我們的途徑有:
QiShare(微信公眾號)