使用SDLocalize高效完成iOS本地化國際化工作 SDLocalize 該方案最大特點是對舊代碼幾乎沒有較多修改就可以完成從單語言項目修改為多語言的項目。並支持XIB的控制項本地化,無需創建不同語言版本的XIB文件。 SDLocalize的工作原理: 首先標記一組需要本地化的控制項 然後在恰當時機 ...
使用SDLocalize高效完成iOS本地化國際化工作
該方案最大特點是對舊代碼幾乎沒有較多修改就可以完成從單語言項目修改為多語言的項目。並支持XIB的控制項本地化,無需創建不同語言版本的XIB文件。
SDLocalize的工作原理:
- 首先標記一組需要本地化的控制項
- 然後在恰當時機(viewDidLoad),觸發一組本地化任務(Then (viewDidLoad) fires a set of localization tasks when needed)
- SDLocalize會使用控制項的文本作為LocalizedString.key替換當前控制項的文本
SDLocalize設計時採取處理任務的模式,對項目代碼和運行時(runtime)沒有污染。SDLocalize本質上是一個處理控制項UI樣式的任務中心,是完全獨立。
control0.text = <LocalizedString.key>; control1.text = <LocalizedString.key>; control2.text = <LocalizedString.key>; ... [control0 sdl_defaultRegister]; [control1 sdl_defaultRegister]; control2.sdl_defaultRegister = @"-"; ... // 然後在恰當時機(viewDidLoad),觸發一組本地化任務 // It then triggers a set of localization tasks when needed - (void)viewDidLoad { [SDLocalize defaultLocalize]; // Takes effect on all controls marked as default pages //[control0 sdl_localizeIfNeed]; //[control1 sdl_localizeIfNeed]; //[control2 sdl_localizeIfNeed]; // ... }
並且支持動態的格式字元串
control.sdl_dynamicFormat = @"My name is %@, %@ years old."; // XIB supported ... [control sdl_localizeWithFormateArgs:@[name, age]];