xcode4.5应用程序本地化
我们在开发一款APP的时候,总是会涉及应用程序国际化的事情,用ios里专业术语叫做本地化,其实都是一个意思,简而言之就是不同的系统语言,显示不同的应用名称、字符串名称、图片名称、等等,除了代码,ios几乎可以本地化所有类型的文件。
那么接下来我就记录下来ios如何快速本地化项目,【记住千万不要把说明文字直接以字符形式写到各个.m文件中,或是统一都编写成静态字符串,这些都是不利于本地化的,等以后需要维护时,项目需求不同语言版本时,会很费事】。
一、本地化应用程序名称
首先我创建了一个simple Application,应用程序默认语言是:english;APP名称默认为创建项目的名称。我们打开应用程序-info.plist清单文件:空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,如下图所示,【注意:CFbundleName并不是APP名称的属性,而是CFbundleDisplayName】
接下来,开始给APP添加一个chinese语言支持,选中项目-Project-Localization-Add,如下图:
弹出的界面让我们选择需要本地化的文件,infoPlist.strings是必不可少的,使用这个才能设置不同的APP名称,ViewController我们暂且先够选上,一会本地化xib的时候需要用到,如下图:
然后展开infoPlist.strings文件(Engilsh),里添加:CFBundleDisplayName="Localized",英文环境下会显示这个名称,chinese里添加:CFBundleDisplayName="本地化",这是中文环境下显示的名称,如下图:
保存一下,再次运行APP,然后切换一下系统语言,会发现APP显示我们设置的名称(如果发现没有改变,是因为缓存的缘故,尝试-Project-clean一下,然后设备中删除我们的demo,再来build)
二、本地化xib文件
选中要本地化的xib文件,在右边的属性检查器视图中会发现多了一个localization选项,勾选我们要本地化的语言,会发现这个xib变成了和infoPlist.strings一样的列表:xib(English)、xib(chinese),我们可以在各自的xib中创建不同语言所显示的界面,等到APP需要显示此xib时,系统会首先寻找当前语言下的xib文件,如下图所示:
三、本地化字符串
本地化字符串需要一个Localize.settings文件,在代码中需要输入字符串的地方使用NSLocalizeString宏来定义字符串。
原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。
我们先手动创建这个文件:选中项目-new file - Resource-Stringfile
命名一定要是:Localizable
然后选中创建的Localizable.strings文件,在属性检查器的localization项点击-Localizae,我们先添加English的本地化,再添加chinese的本地化。
现在发现这个文件也变成了English和Chinese两个,那么我们在各自文件中写入:
继续在代码的viewdidload中,需要设置字符串的地方:
NSlocalizeString第一个参数是内容,第二个参数是在系统生成Localize.strings文件时,生成的注释,不需要的话可以设置为nil
看一下效果:
四、图片资源的本地化
我们可以向本地话字符串一样,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedStringFromTable来获取图片名称。
选中要本地化的图片,在右边的Inspector中 Localization下,点击localize...
继续上一次一样的操作,添加English和chinese,我们发现这个图片资源也分成了english和chinese的版本,如下图:
继续要做的是给chinese的文件设置(替换成)其语言下的图片资源,如下:
保存-clean后运行看一下:
同样的avator.png图片资源,在不同的语言环境下,显示不一样的图片资源,很不错吧?
转载自:http://www.2cto.com/kf/201306/216891.html
xcode4.5应用程序本地化的更多相关文章
- iOS 应用程序本地化
由于iPhone,iPad等苹果产品在全世界范围内的广泛流行,那么通过App Store下载应用程序的用户也将是来自世界范围的人们,所以开发者在开发过程中势必要考虑到不同语言环境下用户使用,好在iOS ...
- iOS应用程序本地化
一.简介 * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lpr ...
- app应用程序本地化--备用
一.简介 * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lpr ...
- C#控制台程序本地化应用(Localization)
本地化在百度百科上的解释如下: “软件本地化是指将某一产品的用户界面(UI)和辅助材料(文档资料和在线帮助菜单)从其原产国语言向另一种语言转化,使之适应某一外国语言和文化的过程.” 其原理主要是把相同 ...
- 在Xcode4中给程序提供命令行参数(转)
网上xcode4的资料实在是不多,再加上xcode4相对3的改动还那么大,并且还只有英文版.我为了这个问题头痛了很久.后来终于找到了...方法如下 xcode菜单的Product->EditSc ...
- C# Winform程序本地化应用
1. 创建一个WinForm应用程序 – “WindowsFormsLocalizationTest”. 2. 在主窗体属性栏里,把Localizable属性设置成”True”. 3. 添加两个But ...
- iOS本地化应用程序
因为使用的是xcode4,应用程序本地化的问题跟以前的版本还是有些不同,在网上找了些资料对于xcode4以上的版本资料还是相对较少,有些最后要通过手动创建文件,这样操作实在是太麻烦,所以经过一个下午的 ...
- ASP.NET Core 中文文档 第三章 原理(6)全球化与本地化
原文:Globalization and localization 作者:Rick Anderson.Damien Bowden.Bart Calixto.Nadeem Afana 翻译:谢炀(Kil ...
- iOS开发——高级技术&本地化与国际化详解
本地化与国际化详解 效果如下: 英语: 中文: 具体实现如下: ...
随机推荐
- OpenGL: 渲染管线理论
http://blog.csdn.net/augusdi/article/details/19934463 学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解. 首先要知 ...
- 2016阿里巴巴校招offer面经
前段时间参加阿里巴巴校招,非常荣幸,很快就拿到了offer,经历了三轮技术面试和一轮hr面,面试官们都非常nice,在此感谢一下各位面试官,你们辛苦了,百忙之中抽时间面试!为了帮助更多人想进阿里巴巴的 ...
- express 4.x 模板引擎与express.static
前提:要在express中使用模块引擎需要将要使用的模板引擎安装在本项目,当然,express也是要安装的.在下面实例中,我使用的模板引擎是pug(一起叫做jade) 我的目录结构如下: 根目录为st ...
- 解决spawn-fcgi child exited with: 1
spawn-fcgi -d /data/web/ad/ -f /data/web/ad/code.py -a -P /data/openresty_81/nginx/pid/ad.pid 出错的时候请 ...
- 操作笔记:linux下安装ftp
1,安装ftp [root@iZ945sgm0ugZ ~]# yum install vsftpd 安装成功的信息: [root@iZ945sgm0ugZ ~]# yum install vsftpd ...
- JS实现星级评分
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Duilib学习笔记《04》— 窗体显示
在前面已经了解了duilib控件以及界面布局相关内容,接下来就要考虑该如何将xml中描述的布局通过界面展现出来.实际上在 Duilib学习笔记<01> 中我们已经简单提到过基本的流程及元素 ...
- sass sublime text 2 gulp ionic
sass 安装1.全局安装 sass 我的Mac 所以不用再安装Ruby ,直接在终端输入 gem install sass 然后在终端中输入 sass -v 出现 Sass 3.4.8 (selec ...
- CuteFTP 9.0 上传文件时,中文文件名乱码
解决办法如图: 1.右键--->属性 2.选项---->档案名称编 选择ascⅡ
- 三国塔防游戏android源码
三国塔防游戏源码,这个游戏源码比较完整的,因为上传有20M限制,把代码工程包分开了,主文件是TFGame,其他res大家按照安卓包加进去就行,欢迎下载并交流 ,大家可以参考一下吧.<ignore ...