iOS国际化(多国语言设置)

1. 基本设置

第一步:先在Project的info里添加所需要支持的语言,这里选择的是Chinese(Simplified)和English-Development Language,点击Finish。

这里写图片描述

这里写图片描述

第二步:创建Localizable.strings文件(注意:文件名最好不要随意更改)作为多语言对应的词典,存储多种语言。

(1)点击Localizable.strings文件右侧Localize…
(2)继续在Localization里添加所要支持的语言,将其勾选上。
这里写图片描述
这里写图片描述

第三步:最后就可以在Localizable.strings里随意设置所需要支持的语言啦。

这里写图片描述
如下图:
这里写图片描述

这里写图片描述

这里写图片描述

第四步:应用

(1)Localizable.strings内设置格式:
    "testName" = "测试名称"

(2)NSLocalizedString代替String:
    NSLocalizedString(@"testName",nil)

如下图:
这里写图片描述

2.StoryBoard设置

storyboard同Localizable.strings类似。

第一步:选中storyboard,选择ShowtheFileInspector,在Localization选择所需要支持的语言。
这里写图片描述
第二步:在Main.strings(Chinese(Simplified))和Main.strings(English)里设置语言。
Main.strings里的格式比较特殊,如下所示:

/* Class = "UILabel"; text = "测试"; ObjectID = "C9P-Sr-3Z4"; */
"C9P-Sr-3Z4.text" = "测试";

获得Object ID 的方法:
这里写图片描述

3.图片设置

图片设置也和Localizable.strings类似,图片资源存放在Images.xcassets里,使用时将不同语言的图片资源在Localizable.strings里一一对应设置;

第一步:添加图片

这里写图片描述

第二步:往Localizable.strings中添加图片名

这里写图片描述

Localizable.strings (English)

"imageName" = "picEnglish";

Localizable.strings (Chinese(Simplified))

"imageName" = "picSimple";

第三步:应用

这里写图片描述

4 应用名设置

第一步:添加InfoPlist.strings

文件名命名为:InfoPlist.strings
这里写图片描述

第二步:添加应用名

InfoPlist.strings (English)

"CFBundleDisplayName" = "EnglishName";

InfoPlist.strings (Chinese(Simplified))

"imageName" = "中文名";

这里写图片描述

5 货币值设置

货币显示在不同的国家是有区别的,例如:10000可以写作”10,000”也能写作”10.000”。针对这种情况可以使用NSNumberFormatter格式化,例如:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];

NSString *numberString = [numberFormatter stringFromNumber:@(10000)];

testLabel.text = [NSString stringWithFormat:NSLocalizedString(@"testNum:%@", nil), numberString];

6 启动页设置

根据内容去判断:

 NSArray * allLanguages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
 NSString * language = [allLanguages objectAtIndex:0];
 if ([language isEqualToString:@"zh-Hans-CN"]) {
            中文启动页
        } 
 else if ([language isEqualToString:@"en-CN"]){
           英文启动页 
        } 

iOS国际化(多国语言设置)

你可能感兴趣的:(上线,ios常识,ios开发)