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