使用Python生成Xcode的Localizable.strings文件

众所周知,iOS的国际化是需要一个一个字符串写入到Localizable.strings文件中,在一个项目中,肯定会有N多个这样的字符串要去手动添加,这样做真的很操作。于是就用Python写了一点点代码,自动生成strings文件。起因使用方法效果展示代码说明使用方法读取已有内容检查目录文件处理统计信息起因最近项目急于上线,忙的手忙脚乱,两个月时间内,App从一个文件都没有,到现在
摘要由CSDN通过智能技术生成

众所周知,iOS的国际化是需要一个一个字符串写入到Localizable.strings文件中,在一个项目中,肯定会有N多个这样的字符串要去手动添加,这样做真的很操作。于是就用Python写了一点点代码,自动生成strings文件。

起因

最近项目急于上线,忙的手忙脚乱,两个月时间内,App从一个文件都没有,到现在有上百个代码文件,也不容易啊。由于App分成中文和英文版本,之前在搞这个的时候靠的都是自己手动添加,通在在Xcode里搜索国际化前缀,然后一个一个去copy和paste,充分发挥了写代码靠百度的精神。但是东西实在太多,用了一天的时间来搞这个东西,还是没搞完。没办法了,才打算抽点时间写这么个小工具出来。这样比自己傻不愣登一个一个去添加省时省力多了。现在把代码发出来,希望也能对有需要的朋友有所帮助。

使用方法

该脚本也很简单,只要传入一个项目根目录,一个文件类型列表,一个国际化前缀,就会在根目录下生成一个Localizable.strings文件,然后可以将里面的内容Copy到Xcode中,或者直接手动替换文件即可。至于为什么不直接自动替换文件,我的想法是如果直接替换,要是脚本出现了什么问题,搞坏了别人的项目,那我的罪过就大了。打开终端,使用格式如下:

python check.py [ROOTDIR] [EXTENSION,...] [PREFIX]

效果展示

使用过后的效果如下图所示,生成的Localizable.strings文件在根目录下:
效果展示

生成的Localizable.strings文件就位于命令行中提供的根目录下。

代码说明

用python写这种小工具真的是很爽,而且又很简单,再配上VSCode,简直不要太爽。我越来越喜欢VSCode这个编辑器了,上个美图先。
VSCode

使用方法

在使用的时候,可以传入指定的一些参数其中,必传的参数包括项目根目录和国际化前缀。还可以指定文件扩展列表,用于限定只读取指定扩展类型的文件。。于是就有下面一段代码:
程序开始
首先判断,用户输入的参数是否是合乎规则的命令,参数值最小是3个,所以当输入不合法,告知用户使用方法。
用法展示

读取已有内容

首先,定义了三个全局变量,用于存储一些信息,包括原文件中已有的内容,新添加的部分以及检查的文件数目。
全局变量的定义
首先,我们确定两个国际化文件的所在路径(我们将文件建立在项目的根路径下):
文件路径
然后,我们开始读取已有数据,用于与以后新检测到的数据做对比,如下所示:
填充已有数据
我们知道,Localizable.strings文件中的内容,是一种这样的格式:

"文件内容" = "文件内容";

我们当然不至于那么智能,能够把中文输入变成英文或其他语言的输出,在此,建立的文件仅是一个中文的Localizable.strings文件,左边的内容是等于右边的内容的,于是就有了这样一个正则表达式:

'\\"(.+?)\\" = \\".+?
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值