美高梅官方网站3045-mgm6608美高梅app下载
[iOS] 国际化详解

[iOS] 国际化详解

作者:mgm6608美高梅app下载    来源:未知    发布时间:2020-01-19 08:39    浏览量:

等第:★★☆☆☆标签:「iOS 本地化」「Storyboard」「Xib」「图片」「应用显示名称」笔者: WYW审阅核查: QiShare共青团和少先队

近日项目供给做“本地化”“本地化”是让app扶持多样语言的进度。附:官方文书档案

PS:修改设备系统语言艺术设置 -> 通用 -> 语言与地域 -> 魅族语言Settings -> General -> Language & Region -> iPhoneLanguage

参照他事他说加以考察资料

Internationalization and Localization Guide

本身将从以下几点介绍本地化内容:
  • iOS 本地化Storyboard、Xib、图片、应用呈现名称、版权音信。
  • 地点化非Interface Builder的文书。

本人动用storyboard结合代码成立了之类的叁个德姆o(QiShareLocalization)。

  • QiShareLocalization对塞尔维亚语和简体汉语做了本地化管理。
  • QiShareLocalization有一个运营页面,运维图显示的文本在拉脱维亚语情状下显得“QiShareLocalization”,在国语境遇下显得“奇分享本地化”。
  • QiShareLocalization的首页显示的图片,在塞尔维亚语景况下显得为“奇分享的Logo图片”,在粤语蒙受下显得为“奇分享的二维码图片”;满含对文件“首页”“跳转”“奇分享首页”都做了本地化管理。
  • QiShareLocalization点击跳转后的页面,对呈现的“奇分享本地化文本"图片接收名称版权音信都做了当地化管理。
  • 简体中文情况:运转页显示不切合简体中文

    图片 1起步页呈现和预期效应相符(zh-Hans图片 2

  • 克罗地亚语情状:

    图片 3

1. 增加需求国际化的语言

首先,必要加上需求国际化的言语,在 项目 -> Info -> PROJECT -> Localizations ;点击下方的 + 加多:

图片 4国际化语言

下一场,会弹出选拔须要国际化的文本:首借使采取 storyboard 和我们创造的 .strings 文件,也能够不选,在需求的位置再勾选,这里是全选;黄金时代伊始独有多少个storyboard文件,是不曾.strings文件的;

图片 5图 1图片 6图 2

那边增添了 简体中文英文

简介

国际化(internationalisation,i18n):叁个主次或软件可给一定的人群利用而无须校勘或再次编写翻译源代码。对于 iOS 来讲正是,使App能够适用于不一致的语言,地区,文化的进度。

本地化 (localisation,l10n):二个程序或软件在支撑国际化的基础上,给定程序特定区域的语言新闻使其在音信的输入输出等管理上适应特定区域人群的使用。对于 iOS 来讲正是,将App的剧情翻译为三种语言的进度。

不问可知,国际化是开荒者的任务,是二个平日化的经过;而当地化则是翻译者所做的业务,是一个生龙活虎的长河。国际化的周转为本地化职业提供了说不允许。三个软件的国际化完结必要本地化的支撑。

1.1 给项目拉长本地化语言
  • 增加普通话简体语言的点子如下:选中项目标PROJECT -> Info -> Localizations 增添简体中文(zh-Hans代表简体汉语)

累积简体汉语:

图片 7

Reference Language:

图片 8

假使再一次增添任何本地化语言,注意File Types可选:

图片 9

2. 国际化

第生龙活虎创设 InfoPlist.strings 文件:右键 -> New File... -> Resource -> Strings File

图片 10

在下一步命名文件名称的时候,必需倘若 InfoPlist ;因为这么些文件注重安装系统利用的文字的国际化,比方利用名称;是供系统接纳的,假使换了此外的称呼,系统是找不到的;

变成后,在文件列表会多出个 InfoPlist.strings 文件,选中该公文后,点击右边文件属性生龙活虎栏 Localizations 中的 Localize... ,在弹出的选择框中接纳四个待国际化的语言,此时只好选拔四个,完成后,再勾选其余的:

图片 11

如果有多少个语言要求国际化,此处是能够实行的:

图片 12

里面是逐个语言对应的国际化文本,在右边手的文书属性 Localization 下,能够选用我们供给国际化的言语,无需国际化的不勾选就能够;

接下来在各种语言文件中增添须要国际化的字符:

图片 13简体汉语图片 14英文

使用名称对应的key为:CFBundleDisplayName那个能够在 Info.plist文件中张开查看,不过急需 Open As -> Source Code

下一场切换设备语言境况测量试验一下就能够!

只假使地方品种中运用的文书/图片,供给新建另叁个 .strings 文件来进行国际化;同新建 InfoPlist.strings 相像,只然而名称修正为:Localizable,当时会新建三个 Localizable.strings 文件,相符,选中当前文件后,点击左边文件属性意气风发栏 Localizations 中的 Localize... 增多/勾选须求国际化的言语体系,然后增加相应的文本字符串:

图片 15简体普通话图片 16英文

此地也是 key-velue 的花样,依据自个儿的急需编写制定就可以;

在动用的时候,不能从来利用有些字符串也许图片名称了,须求系统提供的宏定义 NSLocalizedString(key, comment)

此间的 Key,即大家在多语言文本中定义key;comment 表达,能够和key同样,也得以传nil;假如大家定义的 .strings 文件名称不是 Localizable.strings ,而是别的的,比如myLoca.strings,那么在利用的时候就需求用:NSLocalizedStringFromTable(key, tbl, comment),首个参数正是大家的.strings 文件名称。

依照上边包车型大巴设置,大家在选取的时候如下所示,在分裂的语言境况下,就能够显得不相同的源委:

UILabel *label = [[UILabel alloc]init]; label.frame = CGRectMake(100, 100, 100, 100); label.backgroundColor = [UIColor redColor]; label.text = NSLocalizedString(@"首页", @"首页"); [self.view addSubview:label]; UIImageView *image = [[UIImageView alloc]init]; image.frame = CGRectMake(100, 200, 300, 300); image.image = [UIImage imageNamed:NSLocalizedString(@"mainImageName", @"mainImageName")]; [self.view addSubview:image];

伊始图平时不供给国际化,设置三个通用的就可以;可是只要有那个必要,能够按上面包车型客车秘籍伸开

启航空图的国际化要分两种情景:使用 LaunchScreen.storyboard 和不行使;

行使 LaunchScreen.storyboard 的好处是只须求安装八个最大分辨率的启航空图就能够适配全数尺寸的配备;假如不使用 LaunchScreen.storyboard ,就要求丰盛各种设施分辨率的图样,假若没拉长,在相应设备上的适配会有十分大的主题素材;所以,日常我们是应用 LaunchScreen.storyboard 来作为运维图的。

客户设置对于国际化的影响

在 iOS 设置使用中的通用->语言与地区中得以独家设置语言,地区和日历。三个援助国际化的施用会依据语言的安装选拔相应的地面化包,语言的改观会招致系统重新启航,以便全数应用重新使用新的语言设置。地区第少年老成影响日期,时间,数字,货币等数码的格式。顾客能够由此日历选用不一样的历法。地区和日历的装置都是即时的,无需再行启航系统。其余,在语言与地面中还是能够设置首推语言顺种类表,应用会以此为依赖选用当地化语言包(按梯次找第一个使用支撑的地面化语言包State of Qatar。

1.2 Use Base Internationalization

图片 17

勾选功用:把文件从.storyboard.xib文件中分离出来

  • 要是不选中Use Base Internationalization,那么在增多本地化语言的时候,会创造几个照顾语言的storyboardxib,那么大家还足以调解不一致语言下的分界面布局及展现内容。
  • 万黄金时代当选Use Base Internationalization,那么在累计语言的时候,会把当前的storyboardxib中的文本提抽取来,大家只供给在对应的新添的.strings文件中改善对应的文书就能够。

1.如果不选中“Use Base Internationalization”操作步骤及改变的公文,如下所示:

图片 18图片 19

扭转的文本:

图片 20

  1. 如果选中Use Base Internationalization並且改正LaunchScreen.storyboard的File Types Interface Builder Storyboard后,操作步骤及更换的文书。如下所示:

图片 21图片 22

  • 更改的文件:

图片 23

下一场大家能够调动.strings中的文件可能是调解相应语言的Storyboard都得以达到本地化Storyboard的成效

使用 LaunchScreen.storyboard

此种情形须要结 InfoPlist.strings 文件,其成立参见第四个知识点;

使用 LaunchScreen.storyboard 需要在 项目 - General - App Icons and Launch Images 中的 Launch Screen File 选择 LaunchScreen.storyboard:

图片 24

第一步:新建 Launch Screen

先新建三个 Launch Screen 分别命名字为:LaunchScreen_en、LaunchScreen_ch,名称自定义!(须求多少个语言版本就新建多少个)

图片 25新建 Launch Screen

接下来,和装置 LaunchScreen.storyboard 同样,增多贰个 UIImageView ,设置全屏凸显,增加要求的启航空图就能够!

第二步:配置 InfoPlist.strings 文件在 InfoPlist.strings 相应的国际化语言中加多相应的 Launch Screen 名称:

图片 26英文- 启动图图片 27简体中文

  • 启动图

这里的 key:UILaunchStoryboardName 同样可以在Info.plist 文件中 Open As.. -> Source Code 来查看;

然后,切换语言景况,重新运维项目就可以查看效果;如若没意义,要求将已设置的删减,再一次运维就可以!

使利用支撑国际化

1.3 Reference Language
  • Reference Language指的是新建的语言文件参谋的言语,假若新扩充普通话繁体参照他事他说加以考察普通话简体,那么新增加的华语繁体的文书将和项目中闽南语简体中的文件大器晚成律。

图片 28

不使用 LaunchScreen.storyboard

若是不行使 LaunchScreen.storyboard,就须要有备无患各类设施尺寸的启航空图,增添到项目中

那边须求说澳优下,因为不能够适配到具备的语言,为幸免在行使未国际化的言语时,引致运行图至极,应该安装生机勃勃套通用的启航空图,先将那套加多到项目中,在这里套运维图的底蕴上做上面包车型地铁操作,然后根据上面包车型地铁格局,将别的语言情况的启航空图增加到相应的公文夹,上面包车型地铁Base 选项就是适配全体语言处境的起步图

率先步:酌量图片图形导入后,选中当中一张图纸,然后点击左边属性栏 Localizations 中的 Localize...,在弹出的语言选取框中精选 Base

图片 29

下一场,选拔需求国际化的语言,达成后大致是其同样子:

图片 30

最终给各样加多的图纸都做同样的操作,完成后大概是这几个样子:

图片 31

下一场,选中任意一个进行后的精选,右键 - Show In Finder

图片 32

拜候到上边那一个目录:

图片 33

在那之中en.lproj 文件夹下是克罗地亚语碰着的启航空图;zh-汉斯.lproj 是简体粤语景况下的开发银行图;

将相应的开发银行图放入对应的文件夹就可以,须要在乎运转图的称谓,必须求和方面加多的名称豆蔻梢头致;

第二步:配置 Info.plist 文件

累积完毕后,将 Info.plist 使用 Sounce Code 方式展开,增添以下的代码:

<key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>launchImage_4</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320,480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>launchImage_5</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320,568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>launchImage_6</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{375,667}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>launchImage_6p</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{414,736}</string> </dict> </array>

切换回 Perporty List,大约是这种构造:

图片 34

增添了多少个运维图,就须求丰硕多少个Item;种种 Item 的布局相似;

最终,校订设备的语言,重新起动看下效果就可以!

这里的别样首假若指要求在Info.plist文件增多一些证实文字的景况,举个例子利用隐衷权限:相机、相册、定位等的陈说文本的国际化;相似是安插在 InfoPlist.strings 文件中的,这里以利用相机权限为例:

图片 35图片 36

此间的 key 相似能够在 Info.plist 文件中 Open As Source Code 来查看;

由于品种中平素采纳纯代码,少之又少使用 xib/storyboard,这里给贰个xib/storyboard 国际化的篇章以供参谋iOS国际化——通过脚本使storyboard,相关新闻合法的稿子也是有介绍

选取Base Internationalization国际化分界面文本

从Xcode5之后,工程暗中同意扶持Base Internationalization。
Base Internationalization将分界面文本与.storyboard和.xib文件分别,使得项目只需求生机勃勃套.storyboard和.xib文件。在.storyboard和.xib文件中动用你设置的开支语言填写界面文本,那套.storyboard和.xib文件就叫做Base Internationalization。之后在本地化时,将以支出语言为财富翻译成二种语言,这么些语言以.strings格式的文本文件对应相应的.storyboard和.xib文件。

诚如景象下,各类语言相呼应的文件会放在相应的言语包下,比方en.lproj、zh.lproj等。然则富有的.storyboard和.xib文件会放在三个名叫Base.lproj的公文夹内,这就是为着公协同生机勃勃套.storyboard和.xib文件,那样,在别的语言包内就足以只存放相应的.strings格式的文本文件了。由于.storyboard和.xib文件中早已选择支付语言填写了分界面文本,所以在开拓语言的言语包内就没有必要再有相对应的.strings文件了。
至于开辟语言的安装:

  1. 在项指标.xcodeproj文件中展开project.pbxproj
  2. 寻觅developmentRegion,并将该key的值改为所要设置的开采语言对应的语言ID,譬喻en、zh等
  3. 保存,效果如下图所示
![](https://upload-images.jianshu.io/upload_images/669609-0c93dab4f79fd5ae.png)

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有