重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

ios开发国际化,iOS系统开发

iOS国际化多语言方案-MultiLanguage-简单几步即可完成

  最近我们的iOS工程需要搞国际化,查资料学习,静下心思考最后完成这份方案。这份方案是为了先解决我司当前需求,肯定不是最完美的,抛砖引玉,欢迎大家提出建议,为开源社会出一份力。

公司主营业务:成都网站建设、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出佳县免费做网站回馈大家。

  先别BB那么多,搜这个问题的人肯定都是着急解决问题,我们先说怎么用,原理啥的感兴趣后面再说!

  将MultiLanguage/Resources/Config.plist文件夹下的 RunFilterScript 字段设为YES,command +B 会弹出目录选择,选择你要处理的文件夹。脚本运行后在会在桌面生成multi-language.csv表格。将表格拿去给翻译人员翻译。

  表格内目前是四列分别为 key , zh_CN , en_GB , ja_JP,如有扩展,自行更改firstScript.py脚本即可。

  将MultiLanguage/Resources/Config.plist文件夹下的 RunScvToJsonScScript 字段设为YES,command +B ,选择对应csv文件转换后,在桌面生成multi-language.json文件,将multi-language.json文件拖入主工程即可完成全部多语言配置。

  1.平时需要RunFilterScript和RunScvToJsonScScript字段设置为NO,这样便不会执行python脚本。

  2.为什么不直接生成和翻译json文件?我们产品要求导出格式为表格,有其他格式需求可自行更改脚本。

  3.为什么不在脚本中使用google、百度、有道自动翻译?因为自动翻译目前不够信、达、雅。如果有需要的小伙伴,可自行编辑脚本。

  4.在Xcode的buildLog中可以查看此组件运行的log 。如下图所示:

  5. github链接 ,欢迎大家提出改进建议,使iOS项目国际化更加方便。

  6.大家若有好的想法或者集成上的问题可以在评论区交流

iOS开发之SDK国际化

对SDK内部text进行国际化处理

在控制器上显示一段文字,底下有三个按钮,每一个按钮点击之后切换不同的语种,分英文、简体中文和繁体中文三种。

注意:

创建静态库可以参考: iOS开发库之(二):静态库Framework的创建

创建Bundle可以参考: iOS之Bundle的创建与使用

点击刚刚创建的Localizable.strings文件,点击以下红框:

默认只支持英文的:

选择需要支持的语言,比如说Chinese(Simlified)/Chinese(Traditional):

本处只需要支持三种:英文、简体中文、繁体中文,那配置结果如下图:

以上属于Bundle里面的设置内容,这个国际化的内容就设置完了,接下来是如何显示不同的内容,先编译一下Bundle,另外每次改变Bundle都需要重新单独编译~

注意:其他的联调的我就不说了,另外还有Alert的那个类我也不说了,大家更详细的可以看DEMO, DEMO传送门

以下附上三张效果图:

附带其他的国际化:

3分钟实现iOS语言本地化/国际化(图文详解)

以上!!!

iOS App国际化

app有时需要同时支持多种语言,国际化分为应用名国际化和app内容国际化两部分,接下来以中英两种语言来介绍一下如何实现app国际化

一.应用名称国际化

1.首先创建一个项目,然后执行以下操作

选择语言后会有以下弹窗, 若项目中用到storyBoard并且里面的文字也需要国际化,此处要如下图勾选,然后店家Finish即可

2.创建一个Strings文件,命名为 InfoPlist.strings(此处名字不可以更改)

3.选中该文件

接下来,把所需要的语言都选中,如下图:

选中后InfoPlist.strings文件下面会出现两个文件,分别是英文和中文,如下图:

4.在两个文件中,分别写入app的英文名和中文名,key-value方式。key 为CFBundleDisplayName

运行程序后,app名称就会根据系统的语言来显示中英文

二.内容国际化

1.内容国际化和app名称国际化一样,只是创建Strings文件的时候把名字改为Localizable.strings (此名字不许随意更改)

2.把文字同样以key-value的形式分别加入到Strings文件中

注意:这两个文件里面的key要保持一致

先导入Foundation,然后通过 NSLocalizedString 函数找到key对应的value, 这样就可以实现语言根据系统语言来切换了

三.storyBoard和xib国际化

1.xib

选择语言后,会自动形成一个key

这样就可以实现语言切换

2.storyBorad和xib操作相同

iOS简单国际化的处理

本文最近更新时间: 2017年8月9日

大部分应用都需要根据 手机系统语言 的不同,使用不同的 应用名称 和 应用内的显示语言 。

一般来说,支持英语、简体中文、繁体中文是比较常见的。当然,如果还要添加其他的语言,原理是相同的。

添加需要国际化的语言种类支持

添加国际化新文件

添加并命名

选中添加后的文件,在右边添加base

都打上勾,就添加到工程中了

添加之后,会显示成这样

在文件里以“key” = “value”;的格式修改应用名称,就成功了

应用内的国际化和上面的基本一样,只是一般会重新创一个文件,命名也会不同

然后在工程中使用时,要用

NSLocalizedString(@"XXX", nil)的格式替代NSString就可以了

首先选中xib文件,在右边的inspector中选择对应的国际化语言,如下图:

然后xib文件下面就回出现国际化的文件,打开文件,就可以修改对应的翻译了

有时候,翻译的条目很多,编译的时候, Localizable.string 文件会报错,说文件格式不对。但是哪里不对并没有指出。

一开始后的时候,我都是根据 每一个分号和等于号必定对应着4个英文分号的规则 来通过肉眼差错。后来,自己写了一个工具,用来检查错误,效率的确高多了。

如果你也需要,这里是地址:

Mac App Store

希望大家能批评指正,后续有深入的内容,会慢慢加入。

iOS- 国际化(多语言设置)

如上点击“+”号会弹出所提供的语言,选择所需要的语言就可以了

第二步:创建Localizable.strings(注意:文件名最好不要随意更改,以免带来不必要的麻烦)作为多语言对应的词典,存储多重语言。

(1)点击Localizable.strings文件右侧的Localiza...

(2)继续在Localization里添加所要支持的语言,将其勾选上

第三步,此时,我们的前期工作基本就完成了,可以在Localizable.strings里随意设置所需要支持的语言了。

假设,我们设置了简体中文

"testName" = "多语言设置成功啦";

第四步,设置完对应的语言后,我们就可以去使用它啦

注意:

如果创建.strings文件是自定义的名字的话,如Internation.strings,那么调用的方式为:

当自定义名字后,使用NSLocalizedString的方式不起作用,这里要特别注意,注意,注意!!!(重要的说三遍);

(1)应用名设置与多语言基本设置的步骤大致是一样的,只是创建的.strings文件的名字要为InfoPlist.strings。

(2)同样以简体中文为例,"CFBundleDisplayName" = "慧眼"。

(3)在info.plist文件中设置Bundle display name为CFBundleDisplayName即可。

storyboard同Localizable.strings类似。当我们创建Localizable.strings对应的语言文件时,系统自动生成了storyboard对应的系统文件。假如我们在storyboard拖入了一个UILabel,我们想要直接在这里设置label的文本,这里就要用到了UILabel的Object ID了。

在对应的语言文件中添加如下格式的设置:

/* Class = "UILabel"; text = "测试"; ObjectID = "PXo-pJ-2Ml"; */

"PXo-pJ-2Ml.text" = "测试";

摘自:


本文名称:ios开发国际化,iOS系统开发
网页URL:http://cqcxhl.com/article/phejph.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP