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里面添加你需要支持的语言


iOS开发-Xcode6应用程序国际化本地化_第1张图片

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

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

iOS开发-Xcode6应用程序国际化本地化_第2张图片                  iOS开发-Xcode6应用程序国际化本地化_第3张图片

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


iOS开发-Xcode6应用程序国际化本地化_第4张图片                   iOS开发-Xcode6应用程序国际化本地化_第5张图片

  1. 例如,在 infoPlist.strings  (English)中设置  英语环境下显示的名称  :  

  2.   

  3. CFBundleDisplayName = “EnglishAppName”;  

  4.   

  5. 在 infoPlist.strings  (Simplified)中设置 中文环境下显示的名称  :  

  6.   

  7. CFBundleDisplayName = “中文程序名”;  

  8.   

  9. 4. 获取本地设备的语言  

  10.   

  11.  NSUserDefaults * def = [NSUserDefaults standardUserDefaults];  

  12.     NSArray * arr = [def objectForKey:@"AppleLanguages"];  

  13.     NSString * l = [arr objectAtIndex:0];  

  14.     NSLog(@"%@",l);  

  15. 获取当前使用语言  

  16. NSArray *languages = [NSLocale preferredLanguages];  

  17. NSString *currentLanguage = [languages objectAtIndex:0];  

  18. NSLog ( @"%@" , currentLanguage);  


5. 给控件本地化

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

iOS开发-Xcode6应用程序国际化本地化_第6张图片

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

iOS开发-Xcode6应用程序国际化本地化_第7张图片

  1. 然后给   Localizable.strings  

  2.   

  3. 中的英文和中文的文件分别写上不同的  键值对  

  4.   

  5. 如下:  

  6. English -localizable.string写上如下:  

  7. /*  

  8.   Localizable.strings 

  9.   aa 

  10.  

  11. Created by ibokan on 14-10-11. 

  12.   Copyright (c) 2014年 xx. All rights reserved. 

  13. */  

  14. "string"  = “aaa";  

  15. "image" = "a.png”;  

  16.   

  17. 中文情况下写一样的键一样的,值不一样的串即可  

  18.   

  19. "string" = "啊啊啊";  

  20. "image" = "b.png”;  

  21.   

  22.   

  23. 读取本地化的字符串:  

  24.  label.text = NSLocalizedString(@"string", nil);//nil是一个注释,可以不用写  

  25. //UIImage * img = [UIImage imageNamed:NSLocalizedString(@"image", nil)];  

  26. 注意:如果你的strings文件名字不是Localizable而是自定义的话,如wang.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:  

  27.   

  28. NSLocalizedStringFromTable(@"welcome",@"wang", nil)    

  29.   

  30. 6.直接给 资源文件本地化: 如图片,音频,视频等等    

  31. 直接选择一个图片  

  32. 这里又分两种方法,第一种和本地化字符串方法类似,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedString)来获取图片名称,如:  

  33. Localizable.strings(english)文件中加入:  

  34.   

  35. "BtnCancel"="BtnCancelEn.png";    

  36. Localizable.strings(chinese)文件中加入:  

  37. "BtnCancel"="BtnCancelCn.png";    

  38. 然后在代码中使用NSLocalizedString)来获取图片名称:  

  39. UIImage *image=[UIImage imageNamed:NSLocalizedString(@"BtnCancel", nil)]];即可  

  40.   

  41. CCSprite *btnCancel = [CCSprite spriteWithSpriteFrameName:NSLocalizedString(@"BtnCancel", nil)];    

  42. btnCancel.position=ccp(s.width/2,s.height/2-40);    

  43. [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”。


iOS开发-Xcode6应用程序国际化本地化_第8张图片

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

iOS开发-Xcode6应用程序国际化本地化_第9张图片

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

iOS开发-Xcode6应用程序国际化本地化_第10张图片

7.本地化其他文件


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

8.其他方法:

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

iOS开发-Xcode6应用程序国际化本地化_第11张图片

复制  Object ID 

iOS开发-Xcode6应用程序国际化本地化_第12张图片在 

  1. 在两个 Main.string分别写上:  

  2.   

  3. "Qub-Cw-tR8.text" = “中文 文本显示在 label上”;  

  4.   

  5. "Qub-Cw-tR8.text" = “English  Text”;  


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

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


你可能感兴趣的:(iOS开发-Xcode6应用程序国际化本地化)