Вы можете удалить нечеткие строки с помощью polib , которая является библиотекой в Python для работы с файлами gettext po:
import os, polib
for dirname, dirnames, filenames in os.walk('/path/to/your/project/'):
for filename in filenames:
try: ext = filename.rsplit('.', 1)[1]
except: ext = ''
if ext == 'po':
po = polib.pofile(os.path.join(dirname, filename))
for entry in po.fuzzy_entries():
entry.msgstr = ''
if entry.msgid_plural: entry.msgstr_plural['0'] = ''
if entry.msgid_plural and '1' in entry.msgstr_plural: entry.msgstr_plural['1'] = ''
if entry.msgid_plural and '2' in entry.msgstr_plural: entry.msgstr_plural['2'] = ''
entry.flags.remove('fuzzy')
po.save()
Этот скрипт удаляет нечеткие строки перевода + нечеткие флаги, но сохраняет непереведенные исходные сообщения нетронутыми. Некоторые языки (ru, cz, ...) имеют более двух множественных форм, поэтому мы проверяем msgstr_plural ['2']. Индекс списка должен быть строкой. Не используйте для этого целые числа.