有人知道从PO文件中批量删除所有模糊翻译的方法吗?类似于:
如果#,模糊==为真,则设置msgstr="“并删除#,fuzzy
发布于 2012-03-02 05:25:08
您可以使用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()此脚本删除了模糊转换字符串+模糊标志,但保留了未翻译的原始msgid。一些语言(ru,cz,...)有两个以上的复数形式,因此,我们检查msgstr_复数‘2’。列表索引必须是字符串。不要使用整数。
发布于 2015-02-21 02:10:47
如果安装了gettext,您可以使用msgattrib命令来完成此操作:
模糊msgattrib --clear-
--空-o /path/to/output.po /path/to/input.po
msgattrib的完整文档在这里:
https://www.gnu.org/software/gettext/manual/html_node/msgattrib-Invocation.html
发布于 2011-09-14 06:12:58
如果您安装了GNU gettext,则可以使用此命令删除模糊消息:
输入msgattrib --非模糊文件路径/to/
/ -o /po/file path/to/your/
/po/file
https://stackoverflow.com/questions/7372414
复制相似问题