将主代码语言与翻译互换

2024-04-18 14:13:20 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我的代码中有字符串,模板(都显示给用户)是波兰语,我在locale的.po文件中有英语翻译(该文件是用标准的Django翻译工具生成的,然后填充)。如何交换这些语言,使英语成为代码?Inverting.po很容易(po2csv,swap columns in Calc,csv2po),唯一的问题是如何将翻译传播到代码以成为主语言。你知道吗

我能看到的解决方案:

  1. 编写一个脚本,从.po和sed我的项目中的每个文件中获取每一对(对于包含变量的blocktrans,它不起作用,需要一些工作)
  2. 用手换琴弦(工作量很大)

有没有更快的办法?你知道吗


Tags: columns文件工具django字符串代码用户模板
1条回答
网友
1楼 · 发布于 2024-04-18 14:13:20

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

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

此外,在处理类似问题时,也存在一些有见地的问题:

编写ast解析器是否值得,当然取决于需要替换多少个字符串:假设编写脚本需要4个小时,并且每分钟可以手动替换5个字符串,那么盈亏平衡大约为1200个字符串。你知道吗

相关问题 更多 >