用翻译交换主代码语言

时间:2013-08-09 09:18:58

标签: python django translation swap invert

现在我的代码和模板中的字符串(全部显示给用户)都是波兰语,我在locale的.po文件中翻译成英文(该文件是使用标准Django翻译工具生成的,然后填写)。 如何交换这些语言,以便英文代码?反转.po很容易(po2csv,在Calc,csv2po交换列),唯一的问题是如何将翻译传播到代码成为主要语言。

我可以看到的解决方案:

  1. 编写一个脚本,从我的项目中的每个文件中获取.po和sed的每一对(它不适用于包含变量的块转换,它需要一些工作)
  2. 手工改变这些字符串(很多工作)
  3. 有没有更快的方法?

1 个答案:

答案 0 :(得分:0)

我想可能是使用ast模块读取Python代码的语法树,检查标记为翻译的所有字符串,将它们与po文件中的相应字符串匹配,修改相应的ast节点并写回修改后的代码。首先,Eli Bendersky撰写了一篇关于如何使用ast模块的NodeVisitor类的好文章:

模块本身的文档非常稀疏,但也包含一些有用的信息:

此外,还有一些有关SO的深刻见解,处理类似的问题:

如果值得编写ast解析器的努力当然取决于你需要替换多少个字符串:假设你需要4个小时来编写脚本并且你能够用手工替换5个字符串/分钟,收支平衡将在1200左右。