修改Cocoapods源代码!
- Efficient iOS localization solution.(Objc, swift, NSLocalizedString, xib)
- 高效的iOS本地化解决方案
- 点赞富一生.
- Drag floder
SDLocalize
to your project.
- SDLocalize
- NSObject + SDLocalize
- NSString + SDLocalize
- NSArray + SDLocalize
SDLocalize工作原理(How SDLocalize works)
- 首先标记一组需要本地化的控件
- 然后在恰当时机(viewDidLoad),触发一组本地化任务(Then (viewDidLoad) fires a set of localization tasks when needed)
- SDLocalize会使用控件的文本作为LocalizedString.key替换当前控件的文本
- Start by marking a set of controls that need to be localized
- Then (viewDidLoad) fires a set of localization tasks when needed
- SDLocalize replaces the text of the current control with the text of the control as LocalizedString.key
- 设置pageName至sdl_register(Set pageName to sdl_register)

// It then triggers a set of localization tasks when needed
- (void)viewDidLoad {
[SDLocalize defaultLocalize];
}
使用代码创建控件并完成本地化(Use code to create and localize the control)
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];
// ...
}
默认支持的控件(Supported controls)
< UILabe, UIButtonl, UITextView >.text
< UITextField >.placeholder
支持的自定义控件(Supported custom controls)
[SDLocalize customTextGetter:^(id object){
if(object is MyView) {
return myView.myText;
}
} andSetter:^(NSString *localizedText, id object){
if(object is MyView) {
myView.myText = localizedText;
}
}];
动态格式文本(Dynamic format text)
control.sdl_dynamicFormat = @"My name is %@, %@ years old."; // XIB supported
...
[control sdl_localizeWithFormateArgs:@[name, age]];
手动本地化(Perform localization manually)
[control sdl_localizeIfNeed];
string.sdl_localizedString;
@[string0, string1, string2, ...].sdl_localizedArray;
control.sdl_localizedDone
- 阅读源代码(Read the source code)