qtPrepareTool(LCONVERT, lconvert) qtPrepareTool(LUPDATE, lupdate) LUPDATE += -locations relative -no-ui-lines TS_TARGETS = # meta target name, target name, lupdate base options, files defineTest(addTsTarget) { cv = $${2}.commands $$cv = cd $$QT_SOURCE_TREE/src && $$LUPDATE $$3 -ts $$4 export($$cv) dv = $${1}.depends $$dv += $$2 export($$dv) TS_TARGETS += $$1 $$2 export(TS_TARGETS) } # target basename, lupdate base options defineTest(addTsTargets) { files = $$files($$PWD/$${1}_??.ts) $$files($$PWD/$${1}_??_??.ts) for(file, files) { lang = $$replace(file, .*_((.._)?..)\\.ts$, \\1) addTsTarget(ts-$$lang, ts-$$1-$$lang, $$2, $$file) } addTsTarget(ts-untranslated, ts-$$1-untranslated, $$2, $$PWD/$${1}_untranslated.ts) addTsTarget(ts-all, ts-$$1-all, $$2, $$PWD/$${1}_untranslated.ts $$files) } addTsTargets(qt, -I../include -I../include/Qt \ 3rdparty/phonon \ 3rdparty/webkit \ activeqt \ corelib \ declarative \ gui \ multimedia \ network \ opengl \ plugins \ qt3support \ script \ scripttools \ sql \ svg \ xml \ xmlpatterns \ ) addTsTargets(designer, ../tools/designer/designer.pro) addTsTargets(linguist, ../tools/linguist/linguist.pro) addTsTargets(assistant, ../tools/assistant/tools/tools.pro) addTsTargets(qt_help, ../tools/assistant/lib/lib.pro) addTsTargets(qtconfig, ../tools/qtconfig/qtconfig.pro) addTsTargets(qvfb, ../tools/qvfb/qvfb.pro) check-ts.commands = (cd $$PWD && perl check-ts.pl) check-ts.depends = ts-all isEqual(QMAKE_DIR_SEP, /) { commit-ts.commands = \ cd $$PWD/..; \ for f in `git diff-files --name-only translations/*_??.ts`; do \ $$LCONVERT -locations none -i \$\$f -o \$\$f; \ done; \ git add translations/*_??.ts && git commit } else { wd = $$replace(PWD, /, \\)\\.. commit-ts.commands = \ cd $$wd && \ for /f usebackq %%f in (`git diff-files --name-only translations/*_??.ts`) do \ $$LCONVERT -locations none -i %%f -o %%f $$escape_expand(\\n\\t) \ cd $$wd && git add translations/*_??.ts && git commit } ts.commands = \ @echo \"The \'ts\' target has been removed in favor of more fine-grained targets.\" && \ echo \"Use \'ts--\' or \'ts-\' instead. To add a language,\" && \ echo \"use \'untranslated\' for , rename the files and re-run \'qmake\'.\" QMAKE_EXTRA_TARGETS += $$unique(TS_TARGETS) ts commit-ts check-ts