现在的位置: 首页 > 综合 > 正文

使用xcode4做ios的国际化

2018年04月15日 ⁄ 综合 ⁄ 共 2770字 ⁄ 字号 评论关闭

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”里面添加语言类型就可以了。

必须一个图片一个图片的添加。

抱歉!评论已关闭.