5 changed files with 104 additions and 26 deletions
@ -0,0 +1,38 @@ |
|||
#!/usr/bin/env python3 |
|||
# Usage: qsettingstranslator.py <in> <out> |
|||
|
|||
import sys |
|||
import os |
|||
from xml.etree.ElementTree import Element, parse |
|||
|
|||
if len(sys.argv) != 3: |
|||
print("Usage: qsettingstranslator.py <in> <out>", file=sys.stderr) |
|||
exit(1) |
|||
|
|||
infile = sys.argv[1] |
|||
outfile = sys.argv[2] |
|||
|
|||
strings = set() |
|||
tree = parse(infile) |
|||
root = Element("TS") |
|||
for elem in tree.iter(): |
|||
if elem.tag == "SearchKey": |
|||
strings.add(elem.text) |
|||
else: |
|||
if "title" in elem.attrib: |
|||
strings.add(elem.attrib["title"]) |
|||
if "tooltip" in elem.attrib: |
|||
strings.add(elem.attrib["tooltip"]) |
|||
if "ts" in elem.attrib and elem.attrib["ts"].lower() == "true": |
|||
strings.add(elem.text) |
|||
if "tsdefault" in elem.attrib and elem.attrib["tsdefault"].lower() == "true": |
|||
strings.add(elem.attrib["default"]) |
|||
|
|||
with open(outfile, "w") as file: |
|||
file.write("#include <QCoreApplication>\n\n") |
|||
file.write("void dummyfn() {\n") |
|||
for string in strings: |
|||
string = string.replace("\\", "\\\\") |
|||
string = string.replace("\"", "\\\"") |
|||
file.write("\tQCoreApplication::translate(\"{}\", \"{}\");\n".format(os.path.basename(infile), string)) |
|||
file.write("}\n") |
@ -0,0 +1,23 @@ |
|||
isEmpty(QMAKE_QSETTINGSTRANSLATOR): qtPrepareTool(QMAKE_QSETTINGSTRANSLATOR, qsettingstranslator.py) |
|||
isEmpty(QSETTINGSTRANSLATOR_DIR): QSETTINGSTRANSLATOR_DIR = ./.ts-dummy |
|||
|
|||
!ReleaseBuild:!DebugBuild: { |
|||
qsettingstranslator_c.name = QSETTINGSTRANSLATOR of ${QMAKE_FILE_IN} |
|||
qsettingstranslator_c.input = QTMVVM_TS_SETTINGS |
|||
qsettingstranslator_c.variable_out = CPP_DUMMIES |
|||
qsettingstranslator_c.commands = $$QMAKE_QSETTINGSTRANSLATOR ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} |
|||
qsettingstranslator_c.output = $$QSETTINGSTRANSLATOR_DIR/${QMAKE_FILE_BASE}.tsdummy$${first(QMAKE_EXT_CPP)} |
|||
qsettingstranslator_c.CONFIG += no_link |
|||
qsettingstranslator_c.depends += $$QMAKE_QSETTINGSTRANSLATOR |
|||
|
|||
QMAKE_EXTRA_COMPILERS += qsettingstranslator_c |
|||
|
|||
qtmvvm_tsgen_target.target = qtmvvm-tsgen |
|||
qtmvvm_tsgen_target.depends += compiler_qsettingstranslator_c_make_all |
|||
QMAKE_EXTRA_TARGETS += qtmvvm_tsgen_target |
|||
} |
|||
|
|||
QMAKE_DIR_REPLACE += QSETTINGSTRANSLATOR_DIR |
|||
QMAKE_DIR_REPLACE_SANE += QSETTINGSTRANSLATOR_DIR |
|||
|
|||
_never_true_condition: SOURCES += $$files($$TRANSLATIONS_DIR/*.tsdummy$${first(QMAKE_EXT_CPP)}) |
Loading…
Reference in new issue