在Xcode中我们可以很方便的将APP适配各种本地化语言。苹果的框架已经帮我们把不同语言的数据分离开,包括图片,声音,视频,文档,用户界面文字(甚至代码中编写的用户界面文字),它们会被建立在同一个bundle中,便于我们管理。

 
下面分别介绍字符串,图片,应用程序名是如何实现多语言本地化,以及如何切换语言进行测试。
效果图如下:
    
    
1,本地化字符串
(1)项目配置 -> “Info” -> “Localizations”区域下,可以看到工程默认只支持英文,我们可以再添加中文语言。
(选择添加语言之后,会出现要选择的本地化文件,这里我们默认都选择)
(2)在工程中,右键添加文件(New File...),选择Resource下的Strings File文件类型,文件名定义为“Localizable.strings”
(3)选中刚创建的“Localicable.strings”文件,在右侧属性面板中点击“Localize...”创建本地化资源
  
(4)分别在英文和中文资源下,输入如下键值对
1
2
3
4
5
//英文资源里
"Welcome" = "Welcome to hangge.com";
 
//中文资源里
"Welcome" = "欢迎来到hangge.com";

(5)使用NSLocalizedString函数来访问Localizable.strings资源文件。
NSLocalizedString函数第一个参数为对应的键名,第二个是自定义的说明,给开发或翻译人员看的。

1
myLabel.text = NSLocalizedString("Welcome", comment: "Welcome")

2,本地化图片

(1)选中需要本地化的图片,同上面一样点击“Localize...”创建本地化图片资源。
(2)打开工程目录,可以看到在中文资源和英文资源下都有这个图片,把需要替换的图片替换掉。
(3)图片使用同平时一样
1
myImage.image = UIImage(named: "logo.png")

3,应用名称的本地化

(1)要实现应用名称根据语言环境显示不一样的名称,只需创建InfoPlist.strings文件,并像上面一样实现本地化资源。 
.
(2)分别在英文和中文InfoPlist.strings文件中定义CFBundleDisplayName值。
1
2
3
4
5
//英文资源里
"CFBundleDisplayName" = "hangge";
 
//中文资源里
"CFBundleDisplayName" = "航歌";

4,在Xcode中切换语言

为了调试国际化,我们除了可以进入模拟器或真机里切换系统语言。也可以在Xcode中配置相关项,使Debug运行时预览不同语言和地区APP的界面效果。
 
(1)选择“Product” -> “Scheme” -> “Edit Scheme...”
 
(2)切换语言后运行工程

Swift - iOS应用的国际化与本地化的更多相关文章

  1. IOS软件国际化(本地化Localizable)

    IOS软件国际化(本地化Localizable) iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因.在这一点上我们自主品牌还是要多学习学习. ...

  2. iOS: 设置App的国际化和本地化

    原文链接:http://www.cocoachina.com/appstore/20160310/15632.html 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的 ...

  3. 【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)

    原文网址:http://www.jianshu.com/p/a3a70f0398c4 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名 ...

  4. Android与Swift iOS开发:语言与框架对比

    Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有Sw ...

  5. Orchard 源码探索(Localization)之国际化与本地化

    本地化与国际化 基本上相关代码都在在Orchard.Framework.Localization中. T("english")是如何调用到WebViewPage.cs中的Local ...

  6. .NET:国际化和本地化

    .NET:国际化和本地化 背景 国际化(i18n)和本地化(l10n)是高端程序的必备技术,可惜从业五年从没有尝试过,下一步准备做一个多用户的博客系统,想支持多语言,今天就学习了一下,写出来,希望大家 ...

  7. IOS应用的国际化

    IOS应用的国际化,主要分为3个部分: Info.plist 文件的国际化 .xib文件的国际化 .m文件的国际化 下面我就来一一说明. Info.plist 文件的国际化我们使用Xcode 4.5 ...

  8. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  9. 十款不容错过的Swift iOS开源项目及介绍

    1.十款不容错过的Swift iOS开源项目. http://www.csdn.net/article/2014-10-16/2822083-swift-ios-open-source-project ...

随机推荐

  1. Windows Phone 8初学者开发—第7部分:本地化应用程序

    原文 Windows Phone 8初学者开发—第7部分:本地化应用程序 第7部分:本地化应用程序 原文地址: http://channel9.msdn.com/Series/Windows-Phon ...

  2. AseoZdpAseo.init(this, AseoZdpAseo.INSERT_TYPE);

    让以后的人知道吧,这就是一个广告包,相当于广告插件.

  3. 友盟iOS微信登陆没有回调的原因

    1.在友盟文档中这样说: 链接 7.4 微信登录 添加配置文件参考文档:添加微信及朋友圈,添加相关库文件,配置URL schemes及添加系统回调 注意微信登录必须先在微信开放平台申请微信登录权限 在 ...

  4. ViewPager实现广告自动轮播核心代码(Handler+Thread)

    ViewPager数据源是4个线性布局,每个布局里面充满一张高度固定.宽度充满父布局的图片.有4个小圆点跟随ViewPager滑动.轮播原本我是用Timer+TimerTask的,但是问题颇多,很是郁 ...

  5. web.xml 中<taglib>报错(转载)

    在web.xml加入taglib <taglib> <taglib-uri>/WEB-INF/tiles.tld</taglib- uri> <taglib- ...

  6. iOS8 UITableView 分割条设置separator intent = 0 不起作用

    转自:http://blog.csdn.net/ljb_wh/article/details/40788333 ios7的时候在storyboard 设置 TableView的separator in ...

  7. python模块学习---HTMLParser(解析HTML文档元素)

    HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义 ...

  8. C++ pair 使用方法

    类模板:template <class T1, class T2> struct pair 參数:T1是第一个值的数据类型,T2是第二个值的数据类型. 功能:pair将一对值组合成一个值, ...

  9. C++11 thread::detach(2)

    原文地址:http://www.cplusplus.com/reference/thread/thread/detach/ public member function <thread> ...

  10. SQL Server 基础 03 查询数据基础

    查询数据 简单的查询 create table stu_info ( sno int not null ,sname ) not null ,sex ) not null ,birth ) not n ...