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