2011-11-16 36 views
3

我使用gettext的Rails项目,每次启动我的服务器我得到这样我如何删除过时的翻译是Gettext

Warning: obsolete msgid exists. 
    #~ "some tranlation: " 
Warning: obsolete msgid exists. 
    #~ "some tranlation: " 
... 
... 

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

有没有简单的方法来快速摆脱这些翻译?

宝石使用:

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

无关,与你的问题,但fast_gettext检查作为gettext的替代品。 –

+0

你最终为此寻找解决方案吗?我目前想知道同样的事情.. – 2potatocakes

+0

不,我仍然有同样的问题 –

回答

6

了gettext工具包括一个命令做的正是这种

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

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

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

它不是在osx上工作 –

1

我跑进同样的问题,我用PoEdit删除它们。

进入Catalog>Purge deleted translations。然后你可以再次运行rake gettext:pack并且消息应该去。

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