码迷,mamicode.com
首页 > 移动开发 > 详细

iOS国际化多语言设置

时间:2016-06-12 20:18:20      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:

一、创建工程、添加语言

技术分享

二、将文本从代码中分离:

目前,应用展示的所有文本都是以硬编码字符串存在于Main.storyboard 和 ViewController里。为了本地化这些字符串,你需要把它们放在一个单独的文件中。他将会在包中简单地引用这些字符串,而不是在你的方法中进行硬编码。
Xcode使用带有 .strings 扩展名的文件来存储和检索app中使用的所有字符串,以支持每种语言。根据iOS 设备当前使用的语言,代码中一个简单的方法调用将会查找并返回要求的字符串。

创建一个.strings 扩展名的文件,命名为 Localizable.strings

技术分享

 单击 Localizable.strings文件,在右边的属性栏中设置Localization

技术分享

 

 选择一种语言

技术分享

 在左边属性栏Localization中勾选需要的语言,右边 Localizable.strings路径下对应会创建两个语言文件

技术分享

 

 

打开对应的语言文件添加代码,例如:

English:

MessageText = "Hello World";

或者

"MessageText" = "Hello World";

Chinese:

MessageText = "你好";

或者

"MessageText" = "你好";

 

ViewController.m

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 214, 30)];
4     // 从语言文件中获取key为MessageText的value值
5     label.text = NSLocalizedString(@"MessageText", nil);;
6     [self.view addSubview:label];
7 }

 

 模拟器语言为英文状态下运行:

技术分享

中文状态下运行:

技术分享

三、storyboard(xib同理)

在Main.storyboard中拖一个UILabel,text为BeyBey

技术分享

在对应的Main.strings(Chinese(Simplified))中写代码:

"jC2-j5-VY3.text" = "再见";

jC2-j5-VY3是对应UILabel的ObjectID

技术分享

英文环境下运行结果:

技术分享

中文环境下运行:

技术分享

四、app名称

创建InfoPlist.strings

English:

CFBundleDisplayName = "English";

Chinese:

英文状态下:

技术分享


中文状态下:

技术分享

 五、图片

第一种:

将图片名称存在Localizable.strings对应的文件中,用代码通过NSLocalizedString获取图片名称。

第二种:

选中图片,点击右侧属性的Localization,选中语言文件。

技术分享

 

 

 

技术分享

并且在项目文件夹中会出现en.lproj文件和zh-Hans.lproj文件;

en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

iOS国际化多语言设置

标签:

原文地址:http://www.cnblogs.com/fearlessyyp/p/5577094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!