美文网首页
当设计给我们中文命名的UI设计切图时该如何优雅的处理

当设计给我们中文命名的UI设计切图时该如何优雅的处理

作者: 我的发 | 来源:发表于2019-01-28 00:01 被阅读20次
由于是项目开始之后才加入公司的,事前没能和设计沟通UI资源文件需要用英文字母来命名。因为设计把整个项目所有的切图都切好了(每个图标都有1倍图、2倍图、3倍图,加起来估计有几百张),让设计或者开发改都是个不小的工作量。
image.png

作为一个合格的码农,我想应该从技术角度出发解决问题。复杂问题简单化,我们先做个需求分析:

  • 拿到.png文件
  • 把中文前缀转拼音
  • 保持后缀不变,重命名文件

ok,马上打开了Google,找库、找函数、学语法。

  • 如何拿到.png文件? -> 导入import os, sys 两个系统库才能调用系统函数
os.listdir()#  遍历文件 
os.path.splitext(oldFile)[0] # 取得文件前缀
os.path.splitext(oldFile)[-1] # 取得文件后缀 
  • 如何把中文前缀转拼音?->利用别人写好的开源库
from pypinyin import pinyin, lazy_pinyin, Style # github开源的中文转拼音库,感谢该库的贡献者
与大家分享一下这个小脚本,因为第一次写python,肯定很low。希望大家多多赐教。

用法:

  • 先按照依赖包,终端执行 pip3 install pypinyin
  • 把代码复制,生成*.py文件
  • cd到UI资源文件路径下,执行python3 *.py
import os, sys
from pypinyin import pinyin, lazy_pinyin, Style
 
tmp = [] # 用来保存中文转拼音后的数组
print("\n 开始转换 ")
for oldFile in os.listdir(): # os.listdir():得到当前目录下所有的文件. 
   isPNG = ".png" in os.path.splitext(oldFile)[-1] # 判断文件类型
   if(isPNG == False):
        print("这是" + os.path.splitext(oldFile)[-1]+"格式" + ",不是PNG我不转")
        pass
   else:
        tmp = lazy_pinyin(os.path.splitext(oldFile)[0]) # os.path.splitext(oldFile)[0]: 拿到文件前缀;  lazy_pinyin(): 把中文转成拼音是一个第三方库pinyin的函数
        newFile = ""
        for j in tmp:
            newFile += j # 因为上面中文转拼音之后会变成一个list,所有需要拼接起来
        newFile += os.path.splitext(oldFile)[-1] # 新文件名拼接上后缀
        os.rename(oldFile,newFile) # 调用系统函数os.rename(,)开始重命名
        print(oldFile + "  ->  " + newFile)
print("\n finish! ")

ps: 写脚本的过程,被python缩进这种奇葩语法吓尿了。都10086年了,还有这么低级的语法要求。。。

转换结果如下:

如果想要中文转英文的话可以接入有道词典的API接口,不过就算翻译成英文也只是死板的翻译不会那么智能。


image.png

相关文章

网友评论

      本文标题:当设计给我们中文命名的UI设计切图时该如何优雅的处理

      本文链接:https://www.haomeiwen.com/subject/elwvjqtx.html