首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除PO文件的所有模糊条目

问删除PO文件的所有模糊条目
EN

Stack Overflow用户
提问于 2011-09-10 22:36:22
回答 3查看 8.6K关注 0票数 14

有人知道从PO文件中批量删除所有模糊翻译的方法吗?类似于:

如果#,模糊==为真,则设置msgstr="“并删除#,fuzzy

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-02 05:25:08

您可以使用polib删除模糊字符串,这是Python中用于处理gettext po文件的库:

代码语言:javascript
复制
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’。列表索引必须是字符串。不要使用整数。

票数 10
EN

Stack Overflow用户

发布于 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

票数 17
EN

Stack Overflow用户

发布于 2011-09-14 06:12:58

如果您安装了GNU gettext,则可以使用此命令删除模糊消息:

输入msgattrib --非模糊文件路径/to/

/ -o /po/file path/to/your/

/po/file

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7372414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档