不幸的是,您必须单独翻译每个包。
我用整个插值器翻译过程的自动化为自己制作了一个 pri 文件。
详细考虑一下:
安装程序.pri
QT_DIR = $$dirname(QMAKE_QMAKE)
win32:LUPDATE = $$QT_DIR/lupdate.exe
unix:LUPDATE = $$QT_DIR/lupdate
win32:LRELEASE = $$QT_DIR/lrelease.exe
unix:LRELEASE = $$QT_DIR/lrelease
SUPPORT_LANGS = ru
# this file search function with a specific extension
defineReplace(findFiles) {
patern = $$1
path = $$2
all_files = $$files(*$${patern}, true)
win32:all_files ~= s|\\\\|/|g
win32:path ~= s|\\\\|/|g
for(file, all_files) {
result += $$find(file, $$path)
}
return($$result)
}
# here we get a list of our installer's xml files (since each package must contain its own config.xml, I consider each xml file a potential package)
XML_FILES = $$files(*.xml, true)
# and for each language I support
for(LANG, SUPPORT_LANGS) {
# i add run lupdate command for all js and ui files of package
for(XML, XML_FILES) {
FILE_PATH = $$dirname(XML)
JS_FILES = $$findFiles(".js", $$FILE_PATH)
UI_FILES = $$findFiles(".ui", $$FILE_PATH)
commands += "$$LUPDATE $$JS_FILES $$UI_FILES -ts $$FILE_PATH/$${LANG}.ts"
TS_FILES += $$FILE_PATH/$${LANG}.ts
}
# I also add commands to lrelease for each ts file I created
for(TS, TS_FILES) {
commands += "$$LRELEASE $$TS"
}
}
# and execute all the accumulated commands
for(command, commands) {
system($$command)|error("Failed to run: $$command")
}
您只需将此installer.pri 文件放在安装程序的根目录中,然后将其连接到主pro 文件中
主程序
include($$PWD/installer/installer.pri)