Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String
Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String
本地化主要包含两个部分:代码中文本的本地化
和 StoryBoard 中文本的本地化
iOS
和 macOS
是一样的
这里只介绍 StoryBoard
的本地化,代码中文本的本地化
请参阅这篇文章的前半部分,懒得说了
Internationalizing Your iOS App: Getting Started
前言:StoryBoard 的本地化分为两种方式
一种是基于一个 StoryBoard
文件,摘取其中的字符串生成不同语言的 .string
文件,来实现多语言支持
一种是基于多个 StoryBoard
文件,每个语言都对应一个文件,这样做很麻烦,只要改一处就需要改多个文件
所以我们只说基于多个 .string
文件的本地化操作
一、项目概览
有这样一个项目,结构是这样的,目前没有实现多语言支持,也就是本文中所谓的 本地化
Localization
,这些词都是一个意思。
二、给项目添加多语言支持
点击左侧项目,选择 [Project]
点选该项目,切到 [Info]
标签,点击下面的 [Localizations]
添加你需要支持的语言,如图:
此时点选左侧项目栏中的 main.storyboard 文件,会看到右侧会有多种语言支持,点选你需要支持的语言。
再点开 main.storyboard
右侧的箭头时会看到下面多出两个文件 Main.string(English)
Main.string(Chinese_Simple)
,这里面就包含了该 storybaord 文件中所有的字符串。
如图:
其实你还可以看到
Localization.string
文件下面也有两个语言文件,这个是用于程序代码中使用的字符串,具体查看开篇提到的那个教程文章
三、翻译对应的文本
打开上面生成的文件,会看到如下的内容,进行翻译即可
四、编译调试不同语言下的呈现状态
我们完成了多语言支持,那么如何调试呢? xcode
有相应的功能,来设置调试时的系统语言来,来实现调试应用在不同语言状态下的状态。
[点击项目名]
选择 [Edit Schema]
然后 [Run]
- [Info]
- [Language]
选择语言即可,这样再运行,就会显示对应语言的状态了
五、效果
以下是我这个应用在实现多语言支持后的效果: 中文
和 英文
六、重要:修改 StoryBoard 之后如何添加新词
前面做的已经很好,但如果你修改了 StoryBoard
,添加或删除了部分字符串后,如何修改呢?
对应的 .string
中的字符串并不会跟着变,新加的字符串也不会自己出现在 .string
文件中。
此时我们就需要手动进行一下一系列操作,来把新的字符串添加到对应的语言中,让我们开始:
1. 导出最新版的字符串
点击 项目名
,选择 [Editor]
菜单中的 [Export for Localization]
即可将当前 StroyBoard
和 Info.plist
对应的字符串都导出,然后选择保存位置
2. 修改对应的翻译文件
打开导出的文件夹看到如下结构,主要是修改其中的 xxx.xcloc/Localized Contents/xxx.xliff
文件,里面包含所有需要翻译的字符串
打开看一下
里面 <source>
标签中的文本是原文本, <target>
中的文本是翻译后的文本
对于新添加的一些东西,是没有<target>
这个标签的,需要手动添加内容
为了方便查找哪些没有翻译,Command + F 搜索正则 </source>\n *<note>
,就可以很容易定位到没有翻译的地方了,添加相应内容即可
3. 导入修改后的翻译文件
点击 项目名
,选择 [Editor]
菜单中的 [Import Localization]
,选择你刚才修改的文件目录即可导入
导入后会看到 .string
里面已经添加了对应的翻译条目
如果有些内容没有翻译,它会提示你哪些没有被翻译,以如下的方式展示,再根据指示回去修改即可
七、结
截图累死我了,不留下个赞就走,不太合适吧
Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String相关推荐
- nitro库_Nitro的故事,专业的翻译服务,可帮助开发人员进行本地化和多语言支持...
nitro库 Localizing your product can involve many pitfalls, and there are two of them that developers ...
- Localization 本地化与多语言支持
1.进入多语言支持处理 res–values–strings.xml 点击右上角的Open editor进入 随后点击左上角的小地球 选择简体中文 添加资源按左上角的+号,Chinese列是资源的转换 ...
- 从Java/Android到Swift iOS开发:语言与框架对比
今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发.主要内容如下: WhyFrom Java/Android to Swift Swift语言为什么值得学习? Java ...
- Windows Phone 8本地化多语言支持
原文:Windows Phone 8本地化多语言支持 在WP8平台处理本地化多语言的支持还是比较容易的,大部分工作都有VS IDE处理,开发者只需简单操作,并翻译本地资源即可实现. 无论您目前的应用是 ...
- Swift - iOS应用的国际化与本地化
在Xcode中我们可以很方便的将APP适配各种本地化语言.苹果的框架已经帮我们把不同语言的数据分离开,包括图片,声音,视频,文档,用户界面文字(甚至代码中编写的用户界面文字),它们会被建立在同一个bu ...
- Android与Swift iOS开发:语言与框架对比
Swift是现在Apple主推的语言,2014年新推出的语言,比 Scala等"新"语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android N ...
- swift int转string_用Swift开发macOS程序,九、目录模块
程序中跟目录模块相似的,也是通过使用Outline View组件显示内容的模块有:备注.搜索.角色.符号.字典等其它五个.设计完成本模块后将不再对其它模块进行说明,一切请查看Github上代码.目录模 ...
- Android Swift iOS开发:语言与框架对比
转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...
- 《Swift iOS应用开发实战》——2.2 了解故事板
本节书摘来自华章计算机<Swift iOS应用开发实战>一书中的第2章,第2.2节,作者:刘铭 著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 了 ...
最新文章
- 提升篇——SELINUX相关介绍
- 【PHP7.2+】win10安装laravel(完整版,包含运行)
- ROS安装并运行小乌龟
- python学习笔记四——数据类型
- windows下安装nodejs多版本管理工具nvm-windows
- 烂泥:nagios学习(四):pnp4nagios图形化绘制nagios数据
- 关闭流时,抛出异常:java.io.IOException: Stream Closed
- java TreeSet去重与排序入门
- Python爬虫入门教程21:文档的爬取
- matlab 求导数
- jq-ui的Sortable插件 两列布局 左右拖拽
- protocal buffer repeate 关键字
- Unity与UE4引擎源码内使用到的第三方库的比较
- STC8H8K64U单片机学习-2-后续所需软件介绍
- 阿里云服务器安全警告-异常网络连接-访问恶意域名
- java带你实现猜数字小游戏,刚入门也能看懂(超详细)
- 韦仕敦大学计算机科学,2020年西安大略大学有哪些优势专业
- iOS8 定位新增功能
- ipv6的127位掩码如何表示_计算机子网掩码知识举例详解
- 弹出表情气泡仿魔兽的技能冷效果却实现