现在我的代码中有字符串,模板(都显示给用户)是波兰语,我在locale的.po文件中有英语翻译(该文件是用标准的Django翻译工具生成的,然后填充)。如何交换这些语言,使英语成为代码?Inverting.po很容易(po2csv,swap columns in Calc,csv2po),唯一的问题是如何将翻译传播到代码以成为主语言。你知道吗
我能看到的解决方案:
sed
我的项目中的每个文件中获取每一对(对于包含变量的blocktrans,它不起作用,需要一些工作)有没有更快的办法?你知道吗
我想一个可能的方法是使用
ast
模块读取Python代码的语法树,检查所有标记为要翻译的字符串,将它们与po文件中相应的字符串匹配,修改相应的ast节点并写回修改后的代码。首先,Eli Bendersky写了一篇关于如何使用ast模块的NodeVisitor类的文章:模块本身的文档非常稀少,但也包含一些有用的信息:
此外,在处理类似问题时,也存在一些有见地的问题:
编写ast解析器是否值得,当然取决于需要替换多少个字符串:假设编写脚本需要4个小时,并且每分钟可以手动替换5个字符串,那么盈亏平衡大约为1200个字符串。你知道吗
相关问题 更多 >
编程相关推荐