如何在gettext中删除过时的翻译

3
我在Rails项目中使用gettext,每次启动服务器时都会收到以下类似的消息:
Warning: obsolete msgid exists.
     #~ "some tranlation: "
Warning: obsolete msgid exists.
     #~ "some tranlation: "
...
...

现在我知道这些只是不再使用的翻译。我想删除它们,但是不想修改所有.po文件,而是想用一个命令来完成。
有没有一种简单的方法可以快速摆脱这些翻译?
所使用的宝石:
 gem 'gettext', '>=1.9.3', :require => false
 gem 'gettext_i18n_rails'

1
与您的问题无关,但请尝试使用fast_gettext替代gettext。 - Marnen Laibow-Koser
你最终找到了解决方案吗?我现在也在想同样的问题。 - 2potatocakes
不,我仍然有同样的问题。 - Michael Koper
3个回答

6

gettext 工具包含一个命令来完成此操作

msgattrib --output-file=xxx.po --no-obsolete xxx.po

1

我遇到了相同的问题,我使用 PoEdit 来删除它们。

进入 Catalog>清除删除的翻译。然后再次运行 rake gettext:pack,消息应该就会消失。

注意:默认情况下,poedit 将在 .po 文件旁边创建一个 .mo 文件。您可能想要在设置中关闭此选项或手动删除 .mo 文件。


0

我不知道如何在不删除它们的情况下完成这个任务,不过以下是如何使用 shell 命令自动删除它们:

find -name \*.po | xargs sed -i.bak -e '/^#~/d'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接