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

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

SDLocalize

该方案最大特点是对旧代码几乎没有较多修改就可以完成从单语言项目修改为多语言的项目。并支持XIB的控件本地化,无需创建不同语言版本的XIB文件。

SDLocalize的工作原理:

  1. 首先标记一组需要本地化的控件
  2. 然后在恰当时机(viewDidLoad),触发一组本地化任务(Then (viewDidLoad) fires a set of localization tasks when needed)
  3. 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]];

 

原文链接:https://www.cnblogs.com/xiaobajiu/p/16823227.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用SDLocalize高效完成iOS本地化国际化工作 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月18日

相关文章

  • 终端读取iOS项目所有设置参数(版本号、应用名等)

    在某些场景下(比如自动化打包等),我们需要从终端来读取到iOS项目的数据,首先先上代码 xcodebuild -showBuildSettings -target 项目target 但有时候我们需要将其转为字符串的话,需要在两边加上这个符号` OUTPUT=’xcodebuild -showBuildSettings -target 项目target’ #输…

    IOS 2023年4月17日
    00
  • xcode打包导出ipa

      众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账号,不需要688认证,就可以打包自己开发的ios应用,自己真机测试,下面是详细教程:…

    IOS 2023年4月18日
    00
  • C C++指针面试题零碎整理

    最基础的指针如下: int a; int* p = &a; 答:p指向a的地址,&是取a的地址。*指的是指针中取内容的符号。 2.str[]和str*的区别: char str1[] = “abc”; char str2[] = “abc”; const char str3[] = “abc”; const char str4[] = “ab…

    IOS 2023年4月18日
    00
  • HBuilder包装iOS APP上App Store的详细过程

    以前看过很多教程,然后。ITUNE管理APP功能被删除,IPA安装失败。Appuploader已有1个月的期限等问题。 请参见此教程重新安装。因此,放出。 很多新生开发,不知道如何包装。ios APP安装在自己的手机测试,ios不像安卓包装好后可以直接安装到手机上,苹果APP如果需要安装在非逃避的苹果手机。需要自己申请i特定OS证书包装才能安装。   在开发…

    IOS 2023年4月18日
    00
  • uniapp ios app离线打包

    前言 进行UniApp 离线打包之前, 建议先认真阅读一遍官方的开发文档。真正阅读过了,可以少踩很多坑。本文介绍离线打包前的准备及iOS工程的一些配置和需要注意的事项。 官方文档:App离线打包iOS插件开发教程iOS原生工程配置 首先,需要去UniApp官网创建一个开发者账号注册开发者登录开发者中心 账号创建成功后就可以去开发者中心创建应用了。 App的创…

    IOS 2023年4月18日
    00
  • iOS从UI内存地址到读取成员变量(oc/swift)

    开发调试时,我们发现bug时常首先是从UI显示发现异常,下一步才会去定位UI相关连的数据的。XCode有给我们提供一系列debug工具,但是很多人可能还没有形成一套稳定的调试流程,因此本文尝试解决这个问题,顺便提出一个暴论:UI显示异常问题只需要两个步骤就能完成定位工作的80%: 定位异常 UI 组件的内存地址。 利用内存地址读取其成员变量。 定位异常UI组…

    IOS 2023年4月19日
    00
  • iOS16新特性 | 灵动岛适配开发与到家业务场景结合的探索实践

    作者:京东零售 姜海 灵动岛是苹果在iPhone 14 Pro和iPhone 14 Pro Max上首次提出的全新UI交互形式,创新性的让虚拟软件和硬件的交互变得更为流畅。当有来电、短信等通知时,灵动岛会变化形态,以便让用户能够更直观地接收到这些信息。 而在用户使用一些应用App,比如音乐,并将其切换到后台时,灵动岛也能以另一种形态来显示这些软件,还可以通过…

    IOS 2023年4月17日
    00
  • 内存管理(二)之别小看了Tagged-Pointer关键时刻起到大作用

    本文主要研究Tagged Pointer技术,针对该技术需要解决的问题、以及在实际应用中的价值做一些简单的探讨。 如果你想要更进一步,去挖掘Tagged Pointer是如何实现的,可以参考Friday Q&A 2012-07-27: Let’s Build Tagged Pointers和objc源码。 另外,本文中涉及到的示例代码,请在真机iOS…

    IOS 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部