iOS开发-Xcode6应用程序国际化本地化

[置顶] iOS开发-Xcode6应用程序国际化本地化

分类: iOS开发2014-10-11 19:44 3116人阅读 评论(0) 收藏 举报

ios应用国际化本地化xcodeiOS国际化终极教程

应用程序国际化和本地化

  1. 本文来自:http://blog.csdn.net/yangbingbinga/article/details/39998673转载请注明出处

1.国际化.首先创建一个工程,在  Localizations里面添加你需要支持的语言

2.然后对要国际化的东西  如,故事板 右侧的属性 /inpector  ,选择本地化语言  Localization里面勾选上

那么故事板上的控件都能支持国际化了

                  

3.设置不同的语言环境下的应用显示名称,首先给 infoPlist.strings本地化

                   

  1. 例如,在 infoPlist.strings  (English)中设置  英语环境下显示的名称  :
  2. CFBundleDisplayName = “EnglishAppName”;
  3. 在 infoPlist.strings  (Simplified)中设置 中文环境下显示的名称  :
  4. CFBundleDisplayName = “中文程序名”;
  5. 4. 获取本地设备的语言
  6. NSUserDefaults * def = [NSUserDefaults standardUserDefaults];
  7. NSArray * arr = [def objectForKey:@"AppleLanguages"];
  8. NSString * l = [arr objectAtIndex:0];
  9. NSLog(@"%@",l);
  10. 获取当前使用语言
  11. NSArray *languages = [NSLocale preferredLanguages];
  12. NSString *currentLanguage = [languages objectAtIndex:0];
  13. NSLog ( @"%@" , currentLanguage);

5. 给控件本地化

首先创建  Localizable.strings文件注意名称不要乱改

然后对其属性选择本地化 Localization

  1. 然后给   Localizable.strings
  2. 中的英文和中文的文件分别写上不同的  键值对
  3. 如下:
  4. English -localizable.string写上如下:
  5. /*
  6. Localizable.strings
  7. aa
  8. Created by ibokan on 14-10-11.
  9. Copyright (c) 2014年 xx. All rights reserved.
  10. */
  11. "string"  = “aaa";
  12. "image" = "a.png”;
  13. 中文情况下写一样的键一样的,值不一样的串即可
  14. "string" = "啊啊啊";
  15. "image" = "b.png”;
  16. 读取本地化的字符串:
  17. label.text = NSLocalizedString(@"string", nil);//nil是一个注释,可以不用写
  18. //UIImage * img = [UIImage imageNamed:NSLocalizedString(@"image", nil)];
  19. 注意:如果你的strings文件名字不是Localizable而是自定义的话,如wang.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:
  20. NSLocalizedStringFromTable(@"welcome",@"wang", nil)
  21. 6.直接给 资源文件本地化: 如图片,音频,视频等等
  22. 直接选择一个图片
  23. 这里又分两种方法,第一种和本地化字符串方法类似,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedString)来获取图片名称,如:
  24. Localizable.strings(english)文件中加入:
  25. "BtnCancel"="BtnCancelEn.png";
  26. Localizable.strings(chinese)文件中加入:
  27. "BtnCancel"="BtnCancelCn.png";
  28. 然后在代码中使用NSLocalizedString)来获取图片名称:
  29. UIImage *image=[UIImage imageNamed:NSLocalizedString(@"BtnCancel", nil)]];即可
  30. CCSprite *btnCancel = [CCSprite spriteWithSpriteFrameName:NSLocalizedString(@"BtnCancel", nil)];
  31. btnCancel.position=ccp(s.width/2,s.height/2-40);
  32. [self addChild:btnCancel z:2 tag:104];

第二种就比较正规化了:点中你要本地化的图片,如“icon.png”,然后XCode-> View-> Utilities -> File Inspector(也就是最右边的属性栏),在Localization中点“+”添加chinese (zh-Hans);在图片左边就会出现一个倒三角,点开就会出现(english)和(chinese)的2张图,并且在项目文件夹中会出现en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了,最后使用时直接使用正常名字就行了,如:“icon.png”。

点开工程,可以看到了 3个语言的 工程目录:

然后在  en 和 zh-Hans目录中替换同名的  图片即可,重启应用

7.本地化其他文件

本地化其他文件和本地化图片第二种方法类似,先在Localization中添加语言,然后把对应版本拷贝到en.lproj和zh-Hans.lproj文件夹中,最后引用就行了。

8.其他方法:

使用  Object ID给 他附上字符串,注意,如果在代码中对同一个  Label也设置了 text那么将会覆盖之前设置的文本

复制  Object ID

  1. 在两个 Main.string分别写上:
  2. "Qub-Cw-tR8.text" = “中文 文本显示在 label上”;
  3. "Qub-Cw-tR8.text" = “English  Text”;

然后运行可以看到,label的文本被自动的设置了 文本

原文地址http://blog.csdn.net/yangbingbinga

时间: 2024-02-19 23:27:22

iOS开发-Xcode6应用程序国际化本地化的相关文章

swift语言 编写 ios开发 第一个程序hello world!

老实说:第一个swift语句的ios不是代码敲出来的,我甚至还没来得急看代码,hello world 就出来了..... 本人开发环境:mac osx 10.10 dp1 + xcode6 beta + swift(更低xcode不支持swift语言) 思路与大致过程: 1.建立工程,工程包含界面文件,代码文件等等 2.在工程的界面文件中加入text控件,用于显示hello world 3.输入hello world ,模拟运行 让我们一步一步来: 1.建立工程,工程包含界面文件,代码文件等等

iOS开发UI篇—程序启动原理和UIApplication

iOS开发UI篇-程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对

IOS开发退出应用程序的代码

IOS 开发中,我知道的两个退出程序的方法: 1. exit(0); 2. if([[UIApplication sharedApplication] respondsToSelector:@selector(terminateWithSuccess)]){ [[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)]; }

iOS开发-xCode6(iOS 8)中应用程序图标和启动页面设置

iOS8中设置应用程序图标跟之前没有什么变化,命名规则不变,不过至于设置启动页面,网上给的方式很多都是模棱两可的,东平西凑总算是把启动页面的图片设置成功了,iOS设置启动图片有两种方式一种是Launch Screen.xib,第二种是通过Images.xcassets,关于第一种方式是为了支持iOS8,不支持iOS7,因此本文使用第二种方式设置启动图片,说多了,进入正题吧. 基本概念 应用程序的图标是非常好设置的,按照苹果官方给出的规则,App Icon和Lanuch Image有一些约定俗称的

IOS开发中关于数据的本地化存储

对于IOS开发者而言, 项目中数据的本地化存储,最难的一点,莫过于SQL语句的编写,除此之外, 其实也没什么难度, 当然在创建数据库之前,我们必须要做的是对数据进行分析, 然后对FMDB进行简单的封装: 代码如下: #import "SQLiteManger.h" #import "FMDB.h" @interface SQLiteManger () @end @implementation SQLiteManger /// 创建一个单例单例 +(instancet

[转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication

一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获

学习IOS开发UI篇--程序启动原理

ios程序启动过程 UIApplication: 1.每一个应用都有自己的UIApplication对象,而且是单例的,通过[UIApplication sharedApplication]可以获得这个单例对象. 2.UIApplication的常用属性: @property(nonatomic) NSInteger applicationIconBadgeNumber; @property(nonatomic,getter=isNetworkActivityIndicatorVisible)

【转】iOS开发UI篇—程序启动原理和UIApplication

原文 http://www.cnblogs.com/wendingding/p/3766347.html 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对

2.iOS开发UI篇—程序启动原理和UIApplication

UIApplication委托 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就是UIApplicati