资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

ios多语言开发,iOS 多语言

iOS 多语言开发(国际化)

点击Localization出现下图,选择一种语言进行初始化,这里选择的是English

创新互联主营北票网站建设的网络公司,主营网站建设方案,app软件开发公司,北票h5微信小程序开发搭建,北票网站营销推广欢迎北票等地区企业咨询

添加完成后程序中的.strings 文件多出三个子文件,括号中的字段表示对应的语言

使用的时候,需要用到一个系统宏,和该宏类似的宏还有如下图所以的4种

#define NSLocalizedStringFromTable(key, tbl, comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tel)]

这个宏实际是调用了bundle的localizedStringForKey:::方法,并根据tbl名称和key返回NSString类型,tbl就是我们所创建的.strings文件的文件名;key的话,这时候用plist的方式去理解就更加直观了,就是plist文件的中key;Comment是对该key的一个描述,填nil即可。

ios 多国语言(国际化)

官方文档:

( )

一.添加语言

二.国际化多国语言操作

1.应用名称

(1)在new File..找到strings格式

(2)将.strings文件命名为“InfoPlist”

在每个语种中填写CFBundleDisplayName = "对应语种的命名";

二.字符串

(1)如上所示,同样new File一个名为Localizable的strings文件

(2)添加各种语言中需要翻译的字符串,格式如下

3.如果调用NSLocalizedString(key, comment)没有找到key,则直接显示key。

三.图片(需要国际化的图片不能放在Assets中!)

四.xib和storyboard

(1)xib和storyboard的国际化同上,Base文件是最重要的,这个文件的意义是,除了你选中的语言外,其他语言显示的都是他。

(2)除了Base文件其他都是.strings文件,.strings文件中会自动将Base中的文字展示出来,最后替换成相关语言即可。

ios最简单的多语言设置

只为了最基础的学习。

最简单的教学。

第一步:先建一个项目,打开项目如图添加多语言文件

第二步:你在左边的项目目录里面去创建一个Localizable.strings文件, 切记 :文件名为Localizable,我试过其他名字没有起到作用的原因是:如果创建.strings文件是自定义的名字的话,如Internation.strings,那么调用的方式为:

NSLocalizedStringFromTable(@”name”,@”起的文件名字”, nil) 

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

第三步:创建完成后你会在左边的项目目录中看到你新建的文件Localizable.strings,点击这个文件,看右边点击点击Localize,然后选择一个你新添加的语言,之后再看右边把选择栏的语言都选择上如图

第四步:之后,就回到左边,你会看到Localizable.strings有出现下拉的文件了,你下拉进去就会看到你添加的语言文件,之后在对应的文件内添加对象名字和对象要显示的什么语言,如图

最后一步:就是在你需要显示的地方去使用NSLocalizedString方法提取出来如图

以上就是最基本的根据系统语言进行语言的转换。

下面是在一个APP改变多语言的常规做法

我分别写了两个按钮button去控制我更改的语言,样式需要怎么去做就看你的自己的设计图了,方法大多数是一致的。

第一步先定义一个宏,这个宏的作用是去哪个语言文件拿对应的中英文如图

第二步,我之前有预先写了两个按钮,当我点击英文就是把英文的代表符村进来,点击中文就是把中文代表符存进来,如图

以上就是最简单的多语言选择。

demo:

iOS 国际化多语言(上)

这里介绍的方法只是根据系统语言变化

demo

iOS 国际化多语言(下)

获取Info.plist文件中key的方法: 选中Info.plist--右键选中Open As--Source Code

注意:选中Property List 恢复列表样

注意: 如果创建.strings文件是自定义的名字的话,如Internation.strings,那么调用的方式为: NSLocalizedStringFromTable(@”English”,@”Internation”, nil) NSLocalizedStringFromTable(@”Authority”,@”Internation”, nil) 当自定义名字后,使用NSLocalizedString的方式不起作用,这里要特别注意,注意,注意!!!(重要的说三遍);

大额数字,在不同的语言中,表现形式可能不一样。比如100w,在英语中是“1,000,000”这样表示;而在西班牙语中表示为“1.000.000”;想实现大额数字显示的国际化,可以按照如下步骤:

目前根据查阅资料只想到了这些,如果还有其它的或更好的方法,希望大家能多留言告知,后续也会更新~~~

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多语言开发,iOS 多语言
网站网址:http://cdkjz.cn/article/phgjis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220