IOS 国际化自动配置
此处只有生成国际化文件的步骤,Project中需要增加语言的操作,不知道的自行百度;
1、批量替换字符串
使用正则表达式:@"["]*[\u4E00-\u9FA5]+["\n]*?" 批量查找项目中的中文字符;
注意:查找条件设置为:
2、批量替换
使用正则表达式:NSLocalizedString($0, nil) 批量替换项目中的中文;
3、自动生成多语言文件(使用xcode自带命令行)
然后我们遍历所有的子目录文件,去生成Localizable.strings,命令如下:
find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj
(基本都说genstrings -o en.lproj *.m就可以生成Localizable.strings,但是这个命令只能生成当前目录的,并没有遍历子目录,所以基本没用)
这样系统就会把子目录用到NSLocalizedString函数的key值都写到文件里。
需要注意的是,NSLocalizedString(key,comment),用这个函数时,key不能是宏定义或者一些动态字符串,否则用上面的命令会报错。
今天重新回来做国际化,发现上面的命令是只能遍历.m文件的,但实际发现经常有字符串放在了.h文件,所以应该用如下命令去遍历整个.h和.m文件,特意来加上:
find . \( -name '*.m' -o -name '*.h' \) -print0 | xargs -0 genstrings -o en.lproj
4、在项目文件中找到生成的
将en.lproj 和 zh-Hans.lproj 文件夹拖入工程项目中就可以了;
5、最后就是翻译的事;
注:在此期间如果出现Error:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
可以执行:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 来解决
或者重新安装xcode
另外Excel转化:https://github.com/CatchZeng/Localizable.strings2Excel
学习收藏 原:https://www.cnblogs.com/zhanghouqi/p/11098964.html