如何删除gettext中过时的翻译

时间:2011-11-16 09:35:19

标签: ruby-on-rails ruby internationalization gettext

我使用gettext进行rails项目,每次启动服务器时都会收到

之类的消息
Warning: obsolete msgid exists.
     #~ "some tranlation: "
Warning: obsolete msgid exists.
     #~ "some tranlation: "
...
...

现在我知道这些只是不再使用的翻译。我想删除它们,但不是修改所有的.po文件,我想用命令来做。

有没有一种简单的方法可以快速摆脱这些翻译?

使用的宝石:

 gem 'gettext', '>=1.9.3', :require => false
 gem 'gettext_i18n_rails'

3 个答案:

答案 0 :(得分:6)

gettext实用程序包含一个完全执行此操作的命令

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

答案 1 :(得分:1)

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

进入Catalog>Purge deleted translations。然后,您可以再次运行rake gettext:pack,消息就可以了。

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

答案 2 :(得分:0)

我不知道怎么做而不删除它们,但这里是如何使用shell命令自动删除:

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