mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
move qt-specific scripts to qt-specific directory in scripts/
This commit is contained in:
63
scripts/qt/extract_strings_qt.py
Executable file
63
scripts/qt/extract_strings_qt.py
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/python
|
||||
'''
|
||||
Extract _("...") strings for translation and convert to Qt4 stringdefs so that
|
||||
they can be picked up by Qt linguist.
|
||||
'''
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
OUT_CPP="src/qt/bitcoinstrings.cpp"
|
||||
EMPTY=['""']
|
||||
|
||||
def parse_po(text):
|
||||
"""
|
||||
Parse 'po' format produced by xgettext.
|
||||
Return a list of (msgid,msgstr) tuples.
|
||||
"""
|
||||
messages = []
|
||||
msgid = []
|
||||
msgstr = []
|
||||
in_msgid = False
|
||||
in_msgstr = False
|
||||
|
||||
for line in text.split('\n'):
|
||||
line = line.rstrip('\r')
|
||||
if line.startswith('msgid '):
|
||||
if in_msgstr:
|
||||
messages.append((msgid, msgstr))
|
||||
in_msgstr = False
|
||||
# message start
|
||||
in_msgid = True
|
||||
|
||||
msgid = [line[6:]]
|
||||
elif line.startswith('msgstr '):
|
||||
in_msgid = False
|
||||
in_msgstr = True
|
||||
msgstr = [line[7:]]
|
||||
elif line.startswith('"'):
|
||||
if in_msgid:
|
||||
msgid.append(line)
|
||||
if in_msgstr:
|
||||
msgstr.append(line)
|
||||
|
||||
if in_msgstr:
|
||||
messages.append((msgid, msgstr))
|
||||
|
||||
return messages
|
||||
|
||||
files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h']
|
||||
|
||||
# xgettext -n --keyword=_ $FILES
|
||||
child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE)
|
||||
(out, err) = child.communicate()
|
||||
|
||||
messages = parse_po(out)
|
||||
|
||||
f = open(OUT_CPP, 'w')
|
||||
f.write('#include <QtGlobal>\n')
|
||||
f.write('// Automatically generated by extract_strings.py\n')
|
||||
f.write('static const char *bitcoin_strings[] = {')
|
||||
for (msgid, msgstr) in messages:
|
||||
if msgid != EMPTY:
|
||||
f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid)))
|
||||
f.write('};')
|
||||
f.close()
|
||||
Reference in New Issue
Block a user