Как удалить устаревшие переводы в gettext - PullRequest
3 голосов
/ 16 ноября 2011

Я использую 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 ]

6 голосов
/ 11 ноября 2012

Утилиты gettext включают команду, чтобы сделать именно это

msgattrib --output-file=xxx.po --no-obsolete xxx.po
1 голос
/ 16 января 2012

Я столкнулся с той же проблемой и использовал PoEdit , чтобы удалить их.

Войдите в Catalog>Purge deleted translations. Затем вы можете снова запустить rake gettext:pack, и сообщения должны отправиться.

Примечание. По умолчанию poedit создает файл .mo, расположенный рядом с файлом .po. Вы можете отключить эту опцию в настройках или просто удалить .mo вручную.

0 голосов
/ 16 декабря 2011

Я не знаю, как это сделать без их удаления, но вот как автоматизировать удаление с помощью команды оболочки:

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