Swift多语言版本的创建

2018-02-09 12:48:16来源:https://www.jianshu.com/p/5290005bbe8e作者:z小志人点击

分享


代码
1、创建Localizable.string文件
1、选中文件点击右侧菜单栏
2、点击Localize..
3、选中Base与English



图1



图2



图3
2、填写Localizable.string文件内容

Localizable.strings(Base)内容格式如下:


/*
MDHomeViewController.swift
*/
"今日"="今日";
"明日"="明日";
"本周"="本周";
"本月"="本月";
"本年"="本年";

Localizable.strings(English)内容格式如下:


/*
MDHomeViewController.swift
*/
"今日"="Today";
"明日"="Tomorrow";
"本周"="Weak";
"本月"="Month";
"本年"="Year";

2、查找项目中文内容并替换
 "[^"]*[/u4E00-/u9FA5]+[^"/n]*?"(OC 中为@"[^"]*[/u4E00-/u9FA5]+[^"/n]*?")

调用 NSLocalizedString 方法
比如:NSLocalizedString(str:"今日")
func NSLocalizedString(str:String) -> String{
return NSLocalizedString(str, comment: str)
}
记得以前是可以直接一键替换的 ,现在不知道是Xcode版本的问题还是什么 一直不成功,有知道的可以评论。我会及时更新,谢谢大家!



正则查询
StoryBoard Or Xib
1、选中文件点击右侧菜单栏
2、点击Localize..
3、选中Base与English
4、文件内容基本如下:
/* Class = "UILabel"; text = "微信"; ObjectID = "2c7-OE-g5X"; */
"2c7-OE-g5X.text" = "微信";
在English中把 "2c7-OE-g5X.text" = "微信"; 替换成 "2c7-OE-g5X.text" = "weChat"; 即可



BEC8C7B8-FF73-4A1F-AA3D-9E967E16556F.png
infoPlist
1、创建InfoPlist.string文件
2、选中文件点击右侧菜单栏
3、点击Localize..
4、选中Base与English
5、在InfoPlist.string(English)中 :
CFBundleDisplayName="英文名";

附:快速导出项目中中文字符


我们已经知道如何识别项目中的字符串了,但是如何取出来使用呢? 这就需要遍历项目中所有的指定后缀(e.g: .h、.m等)的文件,然后利用正则表达匹配所有使用到的中文字符串,并写入文件中。为了方便起见,我将此过程写了一个Mac客户端小应用,可直接将选中的项目中所有的中文字符串,导出到指定的路径下;该应用还可以选择对于重复出现的中文字符串进行处理,以及还可以将中文字符串导出为繁体; 小应用更值得关注的是它导出的文件,可以直接拿来当做多语言文件中的key=value 使用,非常简单,喜欢的可以去下载看看, 含有源码的哦;小应用运行图如下:




1610415-af673e2626489737.jpg

可参考 去看看








最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台