You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止msgmerge在po文件中生成已注释的旧msgid?

解决msgmerge保留废弃msgid注释的问题

msgmerge默认会把pot文件中不存在的msgid标记为废弃(以#~注释形式保留),目的是留存历史翻译内容,方便后续可能复用。如果想要彻底移除这些废弃条目而非注释,有两种可行方法:

1. 直接在msgmerge时删除废弃条目

使用--delete-obsolete(短选项-D)参数,更新po文件时会直接删除所有pot中不存在的msgid及其翻译,不会保留注释。

示例命令:

msgmerge --update --delete-obsolete your.po your.pot

或用短选项简化:

msgmerge -U -D your.po your.pot

注意:该操作会永久删除废弃条目,建议执行前备份po文件,避免误删有用内容。

2. 用msgattrib事后清理废弃条目

如果已经用普通msgmerge更新了po文件,可通过msgattrib工具单独清理废弃注释:

msgattrib --no-obsolete your.po -o cleaned.po

此命令会生成一个移除了所有废弃条目的新文件cleaned.po,原po文件保持不变。

内容的提问来源于stack exchange,提问作者buhtz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:24