解决了:
1、APP名称国际化
2、文字图片国际化
3、APP启动页国际化
4、成熟项目国际化
配置
一、APP名称国际化
1、添加string文件
这里需要使用 InfoPlist.string 命名才可以生效。
2、对 InfoPlist.string 添加语言。
3、添加APP名称
在对应的 InfoPlist.strings 中添加中英文APP名称
CFBundleDisplayName = "EN";
CFBundleDisplayName = "中文";
4、运行即可
二、文字国际化
1、根据上述步骤创建 Localizable.string
2、添加中英文对应
UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
button.backgroundColor = [UIColor redColor];
[button setTitle:@"Hello", nil) forState:UIControlStateNormal];
[self.view addSubview:button];
如果要对"Hello"进行国际化变成"你好",需要在中文Localizable.string 中添加
"Hello" = "你好";
然后将@"Hello"变成
NSLocalizedString(@"Hello", nil)
最终代码为
UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
button.backgroundColor = [UIColor redColor];
[button setTitle:NSLocalizedString(@"Hello", nil) forState:UIControlStateNormal];
[self.view addSubview:button];
3、运行即可得到中英文不同的效果
三、图片的国际化
1、第一种方法,和修改文字国际化一样对中英文的图片名一一对应起来。
2、第二种方法
通过以上步骤即可得到图片的中英文国际化,然后将需要的中文/英文图片替换掉即可,这里需要注意两个的名字需要一致。
四、启动页国际化
1、删除原有启动图
2、添加图片并对图片进行国际化处理,处理方式参考上面。
3、info.plist 中添加启动图配置
代码如下:
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>1125-2436</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{375, 812}</string>
</dict>
</array>
这段代码只适配了iPhone X,其他机型可自己添加。
删除APP,重新运行即可。
五、成熟项目国际化
对已经成熟的项目进行国际化需要用正则查找所有中文。
1、全局查找替换
进入全局搜索,修改为 replace,并将 text 替换为 Regular Expression
搜索栏输入 (@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?")
替换栏输入 NSLocalizedString($1, nil)
全局替换即可。
替换完成的效果:
2、添加翻译
在 Localizable.strings 中添加所有搜索出来的中文的翻译,运行即可。