3

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

我可以看到的解决方案:

  1. 编写一个脚本,它将从 .po 和sed我项目中的每个文件中获取每一对(它不适用于内部变量的块传输,它需要一些工作)
  2. 手动更改这些字符串(大量工作)

有没有更快的方法?

4

1 回答 1

0

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

模块本身的文档很少,但也包含一些有用的信息:

此外,还有一些关于 SO 的有见地的问题,处理类似的问题:

如果值得努力编写 ast 解析器当然取决于您必须替换多少个字符串:假设您需要 4 个小时来编写脚本并且您能够手动替换 5 个字符串/分钟,那么收支平衡大约有 1200 个字符串。

于 2013-08-13T09:29:44.847 回答