1)在项目的“supporting files”目录中右键“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,新建的文件名要写成“Localizable.strings”
2)点击刚才创建的这个文件,选择xcode4的菜单中的“view”-》“utilities”-》“file inspect” 右侧会看到一些属性的信息
3)找到Localization这项,现在应该是空的,点“+”进行国际化的添加。因为我只制作了中文和英文,所以我加了“English”和“Chinese”,这里要注意的是“Chinese”要选择“zh_Hans”,这个是简体中文。
4)添加好后就可以看到你项目目录下会生成对应的目录,zh-Hans.lproj和en.lproj 目录里面就是Localizable.strings的文件
5)在xcode4中可以看到原先创建的Localizable.strings文件的左侧会多出一个三角图标,点击后会扩展出2个文件,一个中文,一个英文的。点击每个文件进行编辑就可以了。
6)文件中的格式是“Key”=“value”; 引号是必须加的,分号也是。
7)在程序中需要使用国际化字符串的时候,调用NSLocalizedString(@"about", nil)就可以进行字符串的显示。其中第一个字符串就是文件中的key,第二个字符串可以使用nil代替也可以写一些注释
范例如下: Localizable.strings (English)
"DemoTitle"="This is English Version";
"String1"="Apple";
"String2"="BAnana";
"String3"="Orange";
"String4"="Watermelon";
"String5"="Strawberry";
Localizable.strings (zh_CN)
"DemoTitle"="這是中文的版本";
"String1"="苹果";
"String2"="香蕉";
"String3"="橘子";
"String4"="西瓜";
"String5"="草莓";
代码:
MultiLanguageDemoViewController.h
#import <UIKit/UIKit.h>
@interface MultiLanguageDemoViewController : UIViewController {
IBOutlet UILabel *lbldemotitle;
IBOutlet UILabel *lblstr1;
IBOutlet UILabel *lblstr2;
IBOutlet UILabel *lblstr3;
IBOutlet UILabel *lblstr4;
IBOutlet UILabel *lblstr5;
}
@property (nonatomic,retain) UILabel *lbldemotitle;
@property (nonatomic,retain) UILabel *lblstr1;
@property (nonatomic,retain) UILabel *lblstr2;
@property (nonatomic,retain) UILabel *lblstr3;
@property (nonatomic,retain) UILabel *lblstr4;
@property (nonatomic,retain) UILabel *lblstr5;
@end
MultiLanguageDemoViewController.m
#import "MultiLanguageDemoViewController.h"
@implementation MultiLanguageDemoViewController
@synthesize lbldemotitle,lblstr1,lblstr2,lblstr3,lblstr4,lblstr5;
- (void)viewDidLoad {
[super viewDidLoad];
//系统设定取得多国语言字符串
lbldemotitle.text=NSLocalizedString(@"DemoTitle",nil);
lblstr1.text= NSLocalizedString(@"String1",nil);
lblstr2.text=NSLocalizedString(@"String2",nil);
lblstr3.text=NSLocalizedString(@"String3",nil);
lblstr4.text=NSLocalizedString(@"String4",nil);
lblstr5.text=NSLocalizedString(@"String5",nil);
}
2. XIB文件国际化
在需要国际化的XIB文件上get info 添加多语言版本,
修改各语言版本相应的界面文字及图片。
模拟器测试记得要在模拟器上恢复原厂设置,Xcode也要clean一下,否则可能出错。
国际码查询:http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm
3. 程序名称国际化
新建一个InfoPlist.strings文件
然后国际化它,get info。。
在下面生成的语言文件里写上CFBundleDisplayName="中文名";
然后编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为选中状态。
在程序中使用字符串的地方可以调用NSLocalizedString来取出对应语言的字符串
如果你的strings文件不是标准的Localizable.strings,假设叫my.strings 则可以用
NSLocalizedStringFromTable (@"button",@"my", nil);来取得字符串
转自:http://hi.baidu.com/yunhuaikong/item/d8e8e2e4be13a8088c3ea829
4.关于图片的国际化
原理与文字的国际化类似,就是 “view”-》“utilities”-》“file inspect”里面添加语言类型就可以了。
必须一个图片一个图片的添加。