iOS 国际化(多语言)

1.首先添加需要适配的语言

选择要添加的语言:

选择要国际化的storyboard:



2.xib国际化

如果照上图已勾选需要国际化的storyboard,那么就已经出现简体中文的国际化文件,勾选english就会出现英文的国际化文件,如图





如果添加语言的时候没有勾选storyboard,或者有新添加的storyboard或xib,则需要手动开启国际化,如图

图片、应用名称等需要国际化的都是如此开启;

3.图片

图片开启国际化之后会有两张相同的图片存放在不同的位置,只需要将对应的图片替换掉就可以了。

Assets.xcassets还不支持国际化功能。

4.应用名称

新建文件,文件名必须为 InfoPlist


然后在文件里添加
CFBundleDisplayName = "国际化";
然后开启国际化,修改新生成的对应语言的文件中的应用名称,例如
CFBundleDisplayName = "language";

5.字符串

1.替换代码中的字符串

接下来就该工程中的字符串了,字符串的国际化需要用到
NSLocalizedString(@"", @"")
参数为两个字符串,第一个字符串是查找对应语言的key值,第二个字符串是注释(可有可无),
还有几个其他方法,可用于指定文件


好多应用是即将完工或已经完工之后才进行国际化适配,所以需要从工程中找到自己想要的字符串。
例如中文:
    [button setTitle:@"语言切换" forState:UIControlStateNormal];
需要替换为
    [button setTitle:NSLocalizedString(@"语言切换", nil) forState:UIControlStateNormal];
当然如果项目一开始的时候就考虑到国际化的问题,使用了 NSLocalizedString那就不用了。
这就需要使用正则表达式查找替换了,

选择这个,
中文的正则表达式为:(@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?")
替换时使用$1代替()内正则表达式匹配到的内容,如果有两个()时第二个用$2代替。。。
如图

选择需要替换的内容替换即可。

2.生成字符串的国际化文件

使用genstrings工具生成.string文件
打开终端,进入到工程目录下执行命令:
find ./ -name *.m | xargs genstrings -o en.lproj
*.m就是工程里的所有.m文件,如果.h文件有需要也可以写*.h
en.lproj是生成文件存放的地址,可以自己指定
生成的文件如下:

如果工程一开始就做国际化,代码中还没有 NSLocalizedString,就不能生成此文件,要自行创建此文件名的文件。

将此文件加入到工程内,然后开启国际化,找专业人士翻译即可。

如果没有相应语言的Localizable.string文件,或相对key值的value值,则会显示key值。

未完待续







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值