标签:
目前,应用展示的所有文本都是以硬编码字符串存在于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 }
模拟器语言为英文状态下运行:
中文状态下运行:
在Main.storyboard中拖一个UILabel,text为BeyBey
在对应的Main.strings(Chinese(Simplified))中写代码:
"jC2-j5-VY3.text" = "再见";
jC2-j5-VY3是对应UILabel的ObjectID
英文环境下运行结果:
中文环境下运行:
创建InfoPlist.strings
English:
CFBundleDisplayName = "English";
Chinese:
英文状态下:
中文状态下:
第一种:
将图片名称存在Localizable.strings对应的文件中,用代码通过NSLocalizedString获取图片名称。
第二种:
选中图片,点击右侧属性的Localization,选中语言文件。
并且在项目文件夹中会出现en.lproj文件和zh-Hans.lproj文件;
en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了
标签:
原文地址:http://www.cnblogs.com/fearlessyyp/p/5577094.html