iOS国际化多语言设置

一、创建工程、添加语言

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

目前,应用展示的所有文本都是以硬编码字符串存在于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存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了

 

 

 

 

 

 

 

 

 

posted @ 2016-06-13 19:58  唐宋元明清。  阅读(233)  评论(0编辑  收藏  举报