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
- 遊戲出海本地化策略——巴西市場篇遊戲
- TNN iOS非影像模型入門iOS模型
- iOS語言國際化/本地化-實踐總結iOS
- 遊戲出海本地化策略——墨西哥市場篇遊戲
- iOS非越獄逆向--程式碼注入iOS
- IOS效能優化篇iOS優化
- 遊戲/應用出海本地化策略 | 韓國市場篇遊戲
- 遊戲/應用出海本地化策略 :泰國市場篇遊戲
- Mysql 事務日誌(Ib_logfile)MySql
- xtrabackup備份mysql“ib_logfile0 is ofMySql
- iOS 多國語言本地化與App內語言切換(Swift)iOSAPPSwift
- 遊戲/應用出海本地化策略 | 俄羅斯市場篇遊戲
- ios 開發UI篇—UITextViewiOSUITextView
- Flutter混合開發—iOS篇FlutteriOS
- opentack - 本地化
- 一篇文章瞭解JsBridge之IOS篇JSiOS
- iOS開發UI篇--iOS動畫(Core Animation)總結iOSUI動畫
- iOS逆向與安全:基礎篇iOS
- iOS多執行緒GCD篇iOS執行緒GC
- iOS 動畫 - 窗景篇(二)iOS動畫
- iOS CoreAnimation教程 第二篇iOS
- app穩定性測試-iOS篇APPiOS
- Flutter外掛開發---iOS篇FlutteriOS
- 同時使用 IB 和 Masonry 時,如何刪除 NSIBPrototypingLayoutConstraintAI
- 語言本地化
- iOS逆向之旅(進階篇) — 工具(LLDB)iOSLLDB
- iOS逆向之旅(進階篇) — HOOK(Logos)iOSHookGo
- iOS逆向之旅(進階篇) — HOOK(FishHook)iOSHook
- iOS 繪製漸變·基礎篇iOS
- iOS 動畫基礎總結篇iOS動畫
- iOS開發小記-基礎篇iOS
- iOS 效能篇一一UITableView效能優化iOSUIView優化
- iOS 元件化實戰篇(私有庫)iOS元件化
- 非越獄下 iOS程式碼注入&HOOK微信登入iOSHook
- 【UX本地化】超框問題:遊戲本地化的“老大難”?UX遊戲