现在我的代码和模板中的字符串(全部显示给用户)都是波兰语,我在locale的.po文件中翻译成英文(该文件是使用标准Django翻译工具生成的,然后填写)。 如何交换这些语言,以便英文代码?反转.po很容易(po2csv,在Calc,csv2po交换列),唯一的问题是如何将翻译传播到代码成为主要语言。
我可以看到的解决方案:
sed
的每一对(它不适用于包含变量的块转换,它需要一些工作)有没有更快的方法?
答案 0 :(得分:0)
我想可能是使用ast
模块读取Python代码的语法树,检查标记为翻译的所有字符串,将它们与po文件中的相应字符串匹配,修改相应的ast节点并写回修改后的代码。首先,Eli Bendersky撰写了一篇关于如何使用ast模块的NodeVisitor类的好文章:
模块本身的文档非常稀疏,但也包含一些有用的信息:
此外,还有一些有关SO的深刻见解,处理类似的问题:
如果值得编写ast解析器的努力当然取决于你需要替换多少个字符串:假设你需要4个小时来编写脚本并且你能够用手工替换5个字符串/分钟,收支平衡将在1200左右。