您的位置:首页 > 编程语言 > Qt开发

Qt lupdate 和 lrealease 命令行使用方式(多语言)

2016-03-02 17:07 579 查看
一、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);

FROM: http://www.cppblog.com/lauer3912/archive/2011/04/05/143484.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: