2011-11-16 40 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。