/
mergepo.py
executable file
·29 lines (24 loc) · 1020 Bytes
/
mergepo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python
import polib
import sys
po = polib.pofile(sys.argv[1])
poupdate = polib.pofile(sys.argv[2])
for origentry in po.fuzzy_entries():
for updateentry in poupdate.translated_entries():
if origentry.msgctxt is None and origentry.msgid == updateentry.msgid:
origentry.msgstr = updateentry.msgstr
origentry.flags.remove('fuzzy')
break
if origentry.msgctxt == updateentry.msgctxt and origentry.msgid == updateentry.msgid:
origentry.msgstr = updateentry.msgstr
origentry.flags.remove('fuzzy')
break
for origentry in po.untranslated_entries():
for updateentry in poupdate.translated_entries():
if origentry.msgctxt is None and origentry.msgid == updateentry.msgid:
origentry.msgstr = updateentry.msgstr
break
if origentry.msgctxt == updateentry.msgctxt and origentry.msgid == updateentry.msgid:
origentry.msgstr = updateentry.msgstr
break
po.save()