在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. Android绘图监听接口OnPreDrawListener详解

    public static interface ViewTreeObserver.OnPreDrawListener 我们先看下API中的定义: 类概述: 为即将绘制视图树时执行的回调函数定义的接口. ...

  2. 解决Jetty Maven Plugin:Please initialize the log4j system properly(转)

    解决Jetty Maven Plugin:Please initialize the log4j system properly.Jetty Maven Plugin环境: <plugin> ...

  3. B-树和B+树的应用:数据搜索和数据库索引

    B-树和B+树的应用:数据搜索和数据库索引  B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用. 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每 ...

  4. 将 Java Spring Framework 应用程序迁移到 Windows Azure

    我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序( ...

  5. PHP - 目录、文件操作

    目录操作: <?php /** * Read Directory. * Just read the top-level directory. * @param string $path dire ...

  6. light oj 1047-neighbor house

    ime Limit:500MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Description The people ...

  7. Ural 1001 - Reverse Root

    The problem is so easy, that the authors were lazy to write a statement for it! Input The input stre ...

  8. 四级流水线的8bit加法器

    以流水线实现8bit 加法器. //date : 2013/8/23 //designer :pengxiaoen //function : module pipeline ( clock ,rese ...

  9. C#注册表

    C#注册表情缘   记得当时刚接触C#的时候,喜欢编写各种小软件,而注册表系列和网络系列被当时的我认为大牛的必备技能.直到我研究注册表前一天我都感觉他是那么的高深. 今天正好有空,于是就研究了下注册表 ...

  10. [Andriod官方API指南]连接之蓝牙

    Bluetooth —— 蓝牙 The Android platform includes support for the Bluetooth network stack, which allows ...