Swift多语言版本的创建

来源:互联网 发布:软件授权码商城 编辑:程序博客网 时间:2024/06/01 21:04

代码

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与English4、文件内容基本如下:/* 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与English5、在InfoPlist.string(English)中 :CFBundleDisplayName="英文名";

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

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

1610415-af673e2626489737.jpg

可参考 去看看

原创粉丝点击