连猴子都能看懂的 IOS 国际化(本地化)教程
来源:互联网 发布:长颈鹿美语待遇 知乎 编辑:程序博客网 时间:2024/05/29 03:18
语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。苹果设备遍布全球,往往一个应用要供给全世界各个范围内的人群使用。这时,做好应用的国际化就显得尤为重要!
本篇博文旨在让所有 IOS 开发者都能快速上手国际化方案,以图文形式展示,简单易懂,自己亲自成功实践过。下面详细解说:
配置需要国际化的语言
在进行配置国际化语言之前,首先当然也是最重要的是,请做好目标语言的翻译工作。确定好翻译后,开启国际化之旅!
在 Xcode 中配置需要国际化的语言选项,无论是国际化 APP 名称,还是应用名称,还是 storyBoard 或者 xib,都需要做这一步的准备工作(一个项目中仅需配置一次)。如下图所示:
弹出如下图所示对话框,直接点击 finish :
应用名称国际化
首先说说应用名称的国际化方案,先创建一个 Strings File 文件,如下图所示:
然后给文件名字命名为InfoPlist,且必须是这个名字:
选中 InfoPlist.strings,在 Xcode 的 File inspection(Xcode右侧文件检查器)中点击 Localize,目的是选择我们需要本地化的语言,接下来,勾选需要国际化的语言:
接下来,我们分别用不同的语言给InfoPlist.strings下的文件设置对应的名字,这里只截取一张图片,其他语言类似:
到此,应用的名称就已经国际化完毕,可以更改设置中的系统语言,检测国际化成果,这里不再截图。
代码字符串本地化
所谓字符串本地化,就是指App内的字符串在不同的语言环境下显示不同的内容。比如,app 在运行过程中有一个弹框,需要根据系统语言进行国际化。下面就开始进行字符串本地化。
其实字符串本地化与APP名称国际化差不多,只是创建的文件名不一样,同样以截图的形式一一展示,同理,文件名必须命名为 Localizable:
选中 Localizable.strings 文件,在 Xcode 的 File inspection 中点击 Localize,目的是选择我们需要本地化的语言(和本地化App名称同理):
然后我们只需要在Localizable.strings下对应的文件中,分别以Key-Value的形式,为代码中每一个需要本地化的字符串赋值:
最后,有一个步骤十分关键,需要在代码中设置相关的宏替换:
#define NSLocalizedString(key, comment) [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
至此,代码字符串本地化完成。
StoryBoard/Xib 国际化
StoryBoard/Xib 国际化方法较多,此处讲一种最容易上手的方法,当然,这不是最好的方法,会有一些麻烦,基本原理类似,展开 Main.storyboard,给每种语言的storyboard 一一国际化:
在未接触过国际化之前,总觉得很神奇,但真正操作过一遍之后才领会到其中的奥秘,其实很简单,要多做,敢于尝试,很多技术点都是熟能生巧!分享之,望共同学习,共同进步!
- 连猴子都能看懂的 IOS 国际化(本地化)教程
- 猴子都能看懂的Android Menu总结
- 一般人都能看懂的git教程
- 连傻瓜都能看懂的基于代码注入的线程守护技术
- iOS国际化(本地化)详解
- 关于iOS App 国际化和本地化 的一些总结:国际化 vs 本地化(Internationalization vs Localization)
- iOS本地化国际化(续):不更随系统,手动选择APP语言 本地化和国际化的实现
- 能看懂的Pandas教程
- 能看懂的Pandas教程
- 4j 都能看懂的例子
- 任何人都能看懂的TensorFlow介绍
- 人人都能看懂的LSTM
- Rails的国际化和本地化技术教程
- 二叉树的建立与遍历详解 菜鸟都能看懂的教程
- iOS-应用的国际化和本地化
- iOS开发 APP的国际化与本地化
- Swift - iOS应用的国际化与本地化
- 初学者都能看懂的IOS股票K线图代码,用 CoreGraphics 框架
- java基础部分代码相关题2
- 使用MultipartEntity对文字、图片、视频进行综合上传
- mysql基础教程
- props和state
- CSDN-markdown编辑器使用指南
- 连猴子都能看懂的 IOS 国际化(本地化)教程
- BufferedImage 和 Graphics2D 画图,背景色透明
- 面向对象的概念:继承、封装、多态
- scala调用java代码
- POJ 3276 Face The Right Way——开关问题
- java泛型案例之电话簿
- java数据类型
- group by 多个字段
- 创建型-工厂模式(simple factory)