iOS 本地化(非IB篇)
級別:★★☆☆☆
標籤:「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地址
關注我們的途徑有:
QiShare(簡書)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公眾號)
推薦文章:
iOS 檔案操作簡介
iOS 關鍵幀動畫
iOS 小遊戲專案——數字速算升級版
iOS 小遊戲專案——你話我猜升級版
奇舞週刊
相關文章
- iOS 本地化(IB篇)iOS
- Swift iOS : 本地化SwiftiOS
- iOS 專案本地化iOS
- iOS 國際化 && 本地化iOS
- iOS國際化(本地化)iOS
- iOS語言國際化(本地化)iOS
- iOS 專案相容8.0列表(Xib篇)iOS
- 遊戲出海本地化策略——巴西市場篇遊戲
- iOS應用程式多語言&本地化解決方案iOS
- 遊戲/應用出海本地化策略 :泰國市場篇遊戲
- iOS語言國際化/本地化-實踐總結iOS
- 遊戲/應用出海本地化策略 | 俄羅斯市場篇遊戲
- 遊戲出海本地化策略——墨西哥市場篇遊戲
- 遊戲/應用出海本地化策略 | 韓國市場篇遊戲
- TNN iOS非影像模型入門iOS模型
- iOS逆向工程 iOS工具篇iOS
- iOS UIButton之UIButtonType詳解iOSUI
- iOS UIButton 全面解析iOSUI
- iOS開發-UIButtoniOSUI
- iOS非越獄逆向--程式碼注入iOS
- iOS 除錯篇iOS除錯
- IBM Lotus Notes 8.5 for Linux 本地化版本結構與安裝IBMLinux
- iOS 多國語言本地化與App內語言切換(Swift)iOSAPPSwift
- iOS ARC工程中加入非ARC檔案iOS
- iOS 控制檯輸出中文,非外掛iOS
- iOS (CoreText框架) NSAttributedStringiOS框架
- IOS效能優化篇iOS優化
- 那些著名或非著名的iOS面試題(上)iOS面試題
- 那些著名或非著名的iOS面試題(下)iOS面試題
- 那些著名或非著名的iOS面試題(中)iOS面試題
- 語言本地化
- iOS 中 iBeacon 開發iOS
- iOS使用xib自定義UIViewiOSUIView
- iOS IB_DESIGNABLE 和 IBInspectable 用法簡介iOS
- 【UX本地化】超框問題:遊戲本地化的“老大難”?UX遊戲
- iOS 動畫 - 窗景篇(二)iOS動畫
- Flutter混合開發—iOS篇FlutteriOS
- ios 開發UI篇—UITextViewiOSUITextView