使用SDLocalize高效完成iOS本地化国际化工作

打印 上一主题 下一主题

主题 967|帖子 967|积分 2901

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用SDLocalize高效完成iOS本地化国际化工作
SDLocalize
该方案最大特点是对旧代码几乎没有较多修改就可以完成从单语言项目修改为多语言的项目。并支持XIB的控件本地化,无需创建不同语言版本的XIB文件。
SDLocalize的工作原理:

  • 首先标记一组需要本地化的控件
  • 然后在恰当时机(viewDidLoad),触发一组本地化任务(Then (viewDidLoad) fires a set of localization tasks when needed)
  • SDLocalize会使用控件的文本作为LocalizedString.key替换当前控件的文本
SDLocalize设计时采取处理任务的模式,对项目代码和运行时(runtime)没有污染。SDLocalize本质上是一个处理控件UI样式的任务中心,是完全独立。
  1. control0.text = <LocalizedString.key>;
  2. control1.text = <LocalizedString.key>;
  3. control2.text = <LocalizedString.key>;
  4. ...
  5. [control0 sdl_defaultRegister];
  6. [control1 sdl_defaultRegister];
  7. control2.sdl_defaultRegister = @"-";
  8. ...
  9. // 然后在恰当时机(viewDidLoad),触发一组本地化任务
  10. // It then triggers a set of localization tasks when needed
  11. - (void)viewDidLoad {
  12.     [SDLocalize defaultLocalize]; // Takes effect on all controls marked as default pages
  13.     //[control0 sdl_localizeIfNeed];
  14.     //[control1 sdl_localizeIfNeed];
  15.     //[control2 sdl_localizeIfNeed];
  16.     // ...
  17. }
复制代码
 并且支持动态的格式字符串
  1. control.sdl_dynamicFormat = @"My name is %@, %@ years old."; // XIB supported
  2. ...
  3. [control sdl_localizeWithFormateArgs:@[name, age]];
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表