iOS语言国际化(切换语言)

基本设置

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

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


点击Localizable.strings文件右侧Localize...


继续在Localization里添加所要支持的语言,将其勾选上。


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


格式

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

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

StoryBoard设置

storyboard同Localizable.strings类似。

第一步:选中storyboard,选择ShowtheFileInspector,在Localization选择所需要支持的语言。

第二步:在Main.strings(Chinese(Simplified))和Main.strings(English)里设置语言。

格式

Main.strings里的格式比较特殊,如下所示:

/* Class = "UILabel"; text = "testName"; ObjectID = "pUp-yc-27W"; */

"pUp-yc-27W.text" = "testName";

需要注意的是,不要直接改变自动生成的ObjectID,也不要复制和粘贴上边的代码行,因为标签的ObjectID可能已经跟上边展示的不一样了。

图片设置

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

Localizable.strings (English)

"imageName" = "pic-en";

Localizable.strings (Chinese(Simplified))

"imageName" = "pic-cn";

货币值设置

货币显示在不同的国家是有区别的,例如: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];

应用名设置

Info.plist有一个特殊的文件(InfoPlist.strings),在里边用字符串覆盖其他语言,如下所示:

InfoPlist.strings (English)

"CFBundleDisplayName" = "EnglishName";

InfoPlist.strings (Chinese(Simplified))

"imageName" = "中文名";

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值