- 浏览: 250207 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (174)
- android (5)
- android代码片段 (10)
- ios (102)
- 程序员 (5)
- 人生 (1)
- UITextField (2)
- UINavigationController (2)
- iPhone开发 (87)
- cocos2d (8)
- Object-c (1)
- Xcode4 (4)
- Mac (1)
- ASIHTTPRequest (1)
- UITableView (9)
- UIImageView (2)
- CATransition (1)
- CCMenu (1)
- UIView (2)
- UIScrollView (1)
- NSString (1)
- Git (2)
- UISwitch (1)
- UIImage (1)
- 拉伸 (1)
- delegate (1)
- NSTimer (1)
- Crash (1)
- Log (1)
- TabBar (1)
- UITabBarController (1)
- UITextView (1)
- iPad (1)
- app (1)
- test (1)
- 数据库 (1)
最新评论
-
cccoooccooco:
测了下,效率很高啊。谢谢分享。
字符串替换算法【java】 -
zkai309:
你好,
我们是ios手游《富豪传奇》的开发商,你开发的糗事囧 ...
如何判断自己是否到了该辞职的时候 -
xyxdasnjss:
吃饱了就饿 写道以后会用到
设备判断 iphone3? iphone4? iphone5? -
吃饱了就饿:
以后会用到
设备判断 iphone3? iphone4? iphone5? -
xyxdasnjss:
zhihaoshi 写道ios 5.0 中用什么方法判断 iO ...
ios 判断设备的GPS功能是否开启
http://chenjohney.iteye.com/blog/1303723
最近要做一个应用要实现本地化,因为使用的是xcode4,应用程序本地化的问题跟以前的版本还是有些不同,在网上找了些资料对于xcode4以上的版本资料还是相对较少,有些最后要通过手动创建文件,这样操作实在是太麻烦,所以经过一个下午的研究,总算是成功了一点点,还是庆幸一下。先给出结果。
英语: 中文:
具体实现如下:
静态本地化 : 加载的文件,如xib文件,图像文件,还有实现应用程序名本地化
动态本地化: 显示的字符串本地化
一。先做准备:设置程序本地化
在xcode点击程序图标:点击Info选项->Localizationn,点击“+”,选择要添加的语言,简体中文选择Chinese(zh-Hans)
你会在你工程目录下发现多了个文件夹,“zh-Hans.lproj",x-code使用.lproj作为其本地化文件夹的扩展名。
二。设置xib文件本地化, 图像本地化的方法是一样道理的,可以根据用户的显示语言加载不同的xib文件
操作:点击xib文件,在IB窗口中选择选项选择“File Inspecter",也就是第一个选项,选择“Localization->"+"选择添加的语言,
效果如下,原来的xib文件就会出现三角形,其下有两个文件,因为我的为storyboard,但效果是一样的。就可以实现将其本地化了,非常简单吧
三。设置应用程序名本地化,
设置应用程序名存储在应用程序的Info.plist文件中,我们例子实际上为Localize-Info.plist,选择文件,并不需要对文件进行本地化,而是使"Info.strings"本地化就可以了,在Localize.Info.plist,空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,我们只需要在对应的 Info.plist中添加以下代码就可以了
英文版:
中文版:
效果图:
四、加载的字符串本地化,
原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。,
- labelName.text = NSLocalizedString(@"Name", @"The name is ");
- labelPassword.text = NSLocalizedString(@"Password:",@"The password is");
NSlocalizeString 第一个参数是内容,第二个参数将会转化为字符串文件里的注释。
转化方法如下 :先关闭项目,打开终端,进入到项目的目录,输入genStrings 文件名.m就可以将该文件中的宏转化为相应的字符串文件,
效果如下:会看到生成"Localizable.strings",
打开文件,就可以交给翻译人员去翻译了
===================
1、本地化字符串,网上那些方法我就不说了,我只更正一点:如果你的Classes下面有子文件夹会报错,使用下面的命令:
find . -name \*.m | xargs genstrings -o /Users/apple/(你目标的文件夹)
2、本地化软件的名字:
(1)在info.plist文件里做如下设置:
(2)创建一个InfoPlist.strings文件,里面写如下内容:
"CFBundleDisplayName"="你软件的名称";
"CFBundleName"="你软件的名称";
(3)本地化这个文件即可。
3、本地化资源,不必细说了,网上资料很多,这里我只说下我的疑惑:图片资源貌似只能用zh-Hans。
4、本地化icon,目前不支持,所以不要费劲的去本地化icon了。
5、商店的本地化,也不必细说了,很简单,按照苹果需要的填就可以了。
====================
应用genstrings和NSLocalizedString实现App文本的本地化
Admin
2012年3月20日
App本地化的须要不消讲大师也都熟悉打听,本文将介绍一种简单的办法来实现字符串的本地化。
在不推敲本地化的景象下,我们若是在代码中给一个Button定义title,一般会如许写:
btn.titleLable.text = @"Example Button";
也许我们已经写了很长的代码才推敲到本地化的题目,大可不必头疼,这时辰,我们要做的是把代码从头扫一遍,然后把每个会显示给用户看的字符串做如下批改:
(对于内部应用的字符串就用不着本地化了)
btn.titleLable.text = NSLocalizedString(@"btn_title", nil);
NSLocalizedString是一个定义在NSBundle.h中的宏,其用处是寻找当前体系说话对应的Localizable.strings文件中的某个key的值。
第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings对象生成Localizable.strings文件时会主动加上去。
到今朝为止,我们还没有生成Localizable.strings文件。这是一个逆向的过程,也就是先写好调用过程,再生成strings资料文件。
当我们把所有的.m文件都修发好了,就该genstrings对象出场了。
1. 启动终端,进入工程地点目次。
2. 新建两个目次,推荐放在资料目次下。
目次名会感化到Localizable.strings文件对应的说话,不克不及写错了。这里zh-Hans指简体中文,重视不克不及用zh.lproj默示。
mkdir zh-Hans.lproj
mkdir en.lproj
3. 生成Localizable.strings文件
genstrings -o zh-Hans.lproj *.m
genstrings -o en.lproj *.m
-o <文件夹>,指定生成的Localizable.strings文件放置的目次。
*.m,扫描所有的.m文件。这里支撑的文件还包含.h, .java等。
4. 右键点击工程的Resources目次,选择“New Group”,添加两个目次zh-Hans.lproj和en.lproj。
5. 在新建的group中添加方才生成的Localizable.strings文件。
6. 最后在Localizable.strings文件中,批改每个key所对应的内容,就大功成功了。
说了一大堆,其实操纵起来还是很简单的,总的来讲就是两条:
1. 在代码里用NSLocalizedString获取要本地化的字符串
2. 用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中。
最后祝大师的产品早日走向世界。
发表评论
-
iOS 关闭键盘 3种方式
2015-12-11 14:21 7881,明确知道 当前的UITextField,或者UITextV ... -
在webapp中判断native app是否安装并直接打开
2015-08-31 18:15 840http://www.baidufe.com/item/cc5 ... -
iOS之ARC下的Block
2015-04-15 14:37 600http://www.cnblogs.com/tekkama ... -
UITableView 隐藏多余的Cell的分割线
2015-02-02 14:39 1555- (void)setExtraCellLineHidden ... -
UILabel顶端对齐
2014-09-10 10:15 722http://shfzhzhr.iteye.com/blog ... -
iOS7滑动返回
2014-06-24 11:48 919http://blog.csdn.net/wmqi10/ar ... -
UIView (Additon)
2014-06-19 22:23 758#import <UIKit/UIKit.h> ... -
UIColor (XYCategory)
2014-06-19 22:13 492#import <UIKit/UIKit.h> ... -
OC MD5
2014-06-19 21:50 765#import <Foundation/Foundat ... -
IOS判断设备是否已越狱(isJailbroken)
2014-06-03 21:17 693@interface UIDevice (Helper) ... -
iOS6 Xcode5 去掉Icon高亮
2014-05-25 11:13 0我昨天刚遇到这个问题,已经解决。请按照下图红色矩形所圈处的信 ... -
iOS使用NSClassFromString
2014-03-07 11:24 936http://www.cocoachina.com/b/?p ... -
iOS7 开发相关
2013-10-22 10:17 12031.UITableView reloadData 之 ... -
iPad横版开发时,宽高是反的
2013-08-14 18:01 1070最近刚开始做iPad版应用,但发现横版的时候宽高是反的,很别 ... -
UITextView 带有PlaceHolder
2013-07-31 13:23 1454#import <UIKit/UIKit.h> ... -
UITableView 只更新某行
2013-07-22 10:10 1014如果全部更新的话 用reloadData方法 如果 ... -
Xcode 4.4中LLVM compiler 4.0带来的Objective-C新语法特性
2013-07-15 10:56 897http://blog.csdn.net/totogo201 ... -
new 与 alloc/init的区别
2013-07-11 14:47 714http://blog.csdn.net/abby_shee ... -
自定义UITableViewCell上的delete按钮
2013-06-28 10:35 1063//通过UITableViewDelegate方法可以实现删 ... -
判断是否是 emoji表情
2013-06-28 09:42 2321+ (BOOL)stringContainsEmoji:(N ...
相关推荐
NULL 博文链接:https://chenjohney.iteye.com/blog/1303723
我们在开发一款APP的时候,总是会涉及应用程序国际化的事情,用ios里专业术语叫做本地化,其实都是一个意思,简而言之就是不同的系统语言,显示不同的应用名称、字符串名称、图片名称、等等,除了代码,ios几乎可以...
配合博客文章发布的源码,详情请查看http://blog.csdn.net/q199109106q
IOS本地化 博客:http://blog.csdn.net/dingxiaowei2013/article/details/10600763
提供继承HDBaseViewController只需要简单添加Model数据就可以展示相对应的效果!...内部代码解释国际化和本地化问题(英文单复数问题)! GitHub地址:https://github.com/HeDong1117/InternationDemo.git
对应博客总结,http://write.blog.csdn.net/postedit/78285132
iOS国际化 应用内切换语言更新版
iOS 国际化程序内改变语言即可改变语言环境
简单的macOS编辑器应用程序,帮助您管理iOS和macOS应用程序本地化,允许您并排编辑所有翻译.zip
# 国际化(应用名称 文字 图片的国际化适应)附带参考链接在README.md中
iOS应用程序国际化 博客文章:http://blog.csdn.net/z251257144/article/details/8288028
IOS应用源码——本地化与国际化.zip
IOS应用源码——本地化与国际化.rar
iOS国际化 欢迎关注 http://blog.csdn.net/u014220518/article/details/53486699
iOS平台的应用程序调试与分析 本文阐述如何在iOS平台上对应用程序进行调试与分析,旨在指导新手分析iOS程序,高手请无视。内容包括软件硬件的准备、代码的解密、符号信息的获取、用gdb调试等,最后以京东LeBook为...
iOS本地化国际化多语言支持,GDLocalizableController类,用来切换本地语言
简单的macOS编辑器应用程序,通过允许您并排编辑所有翻译,帮助您管理iOS应用程序本地化
ios源码之本地化与国际化.rar
触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙...