Swift多语言版本的创建

代码

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

可参考 去看看

你可能感兴趣的:(移动开发)