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