一、lupdate 的命令行参数说明
1 Usage:
2 lupdate [options] [project-file]
3 lupdate [options] [source-file|path|@lst-file]
-ts ts-files|@lst-file
4
5 lupdate is part of Qt's Linguist tool chain. It extracts translatable
6 messages from Qt UI files, C++, Java and JavaScript/QtScript source code.
7 Extracted messages are stored in textual translation source files (typically
8 Qt TS XML). New and modified messages can be merged into existing TS files.
9
10 Options:
11 -help Display this information and exit.
12 -no-obsolete
13 Drop all obsolete strings.
14 -extensions <ext>[,<ext>]
15 Process files with the given extensions only.
16 The extension list must be separated with commas, not with whitespace
17 .
18 Default: 'java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml'
19 .
20 -pluralonly
21 Only include plural form messages.
22 -silent
23 Do not explain what is being done.
24 -no-sort
25 Do not sort contexts in TS files.
26 -no-recursive
27 Do not recursively scan the following directories.
28 -recursive
29 Recursively scan the following directories (default).
30 -I <includepath> or -I<includepath>
31 Additional location to look for include files.
32 May be specified multiple times.
33 -locations {absolute|relative|none}
34 Specify/override how source code references are saved in TS files.
35 Default is absolute.
36 -no-ui-lines
37 Do not record line numbers in references to UI files.
38 -disable-heuristic {sametext|similartext|number}
39 Disable the named merge heuristic. Can be specified multiple times.
40 -pro <filename>
41 Name of a .pro file. Useful for files with .pro file syntax but
42 different file suffix. Projects are recursed into and merged.
43 -source-language <language>[_<region>]
44 Specify the language of the source strings for new files.
45 Defaults to POSIX if not specified.
46 -target-language <language>[_<region>]
47 Specify the language of the translations for new files.
48 Guessed from the file name if not specified.
49 -ts <ts-file>
50 Specify the output file(s). This will override the TRANSLATIONS
51 and nullify the CODECFORTR from possibly specified project files.
52 -codecfortr <codec>
53 Specify the codec assumed for tr() calls. Effective only with -ts.
54 -version
55 Display the version of lupdate and exit.
56 @lst-file
57 Read additional file names (one per line) from lst-file.
58
二、lrealease的命令行参数说明
1 Usage:
2 lrelease [options] project-file
3 lrelease [options] ts-files [-qm qm-file]
4
5 lrelease is part of Qt's Linguist tool chain. It can be used as a
6 stand-alone tool to convert XML-based translations files in the TS
7 format into the 'compiled' QM format used by QTranslator objects.
8
9 Options:
10 -help Display this information and exit
11 -idbased
12 Use IDs instead of source strings for message keying
13 -compress
14 Compress the QM files
15 -nounfinished
16 Do not include unfinished translations
17 -removeidentical
18 If the translated text is the same as
19 the source text, do not include the message
20 -markuntranslated <prefix>
21 If a message has no real translation, use the source text
22 prefixed with the given string instead
23 -silent
24 Do not explain what is being done
25 -version
26 Display the version of lrelease and exit
27
三、示例说明
1. 提取aboutDialog.cpp欲翻译的内容到ts文件中
lupdate -codecfortr GB2312 aboutdialog.cpp -ts aboutdialog.ts
2.如何在程序中使用ts生成的qm文件,下面用硬代码来解释
1 #include <QtGui>
2 #include "mainwindow.h"
3
4 int main(int argc, char *argv[])
5 {
6 QApplication app(argc, argv);
7
8 QTranslator translator;
9 bool b = false;
10 b = translator.load("aboutdialog.qm");
11 app.installTranslator(&translator);
12
13
14 MainWindow w;
15 w.show();
16
17 return app.exec();
18 }
19
3. 加载多个独立的qm文件。一个QTranslator对象只有最后load的才算数!
QTranslator translator;
bool b = false;
b = translator.load("aboutdialog.qm");
b = translator.load("mainwindow.qm");
app.installTranslator(&translator);
说明:只有"mainwindow.qm" 文件被正常使用。
下面可以通过声明两个Translator对象进行load,然后安装就可以分模块使用了!
1 QTranslator translator1, translator2;
2 bool b = false;
3 b = translator1.load("aboutdialog.qm");
4 b = translator2.load("mainwindow.qm");
5 app.installTranslator(&translator1);
6 app.installTranslator(&translator2);