main.cpp

来自「qt-x11-free-3.0.3.tar.gz minigui图形界面工具」· C++ 代码 · 共 111 行

CPP
111
字号
/************************************************************************   Copyright (C) 2000 Trolltech AS.  All rights reserved.****   main.cpp****   This file is part of Qt Linguist.****   See the file LICENSE included in the distribution for the usage**   and distribution terms.****   The file is provided AS IS with NO WARRANTY OF ANY KIND,**   INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR**   A PARTICULAR PURPOSE.************************************************************************/#include <qfile.h>#include <qregexp.h>#include <qstring.h>#include <qstringlist.h>#include <qtextstream.h>#include <errno.h>#include <metatranslator.h>#include <proparser.h>typedef QValueList<MetaTranslatorMessage> TML;static void printUsage(){    qWarning( "Usage: lrelease [options] file.pro...\n"	      "Options:\n"	      "    -help  Display this information and exits\n"	      "    -verbose\n"	      "           Explain what is being done\n"	      "    -version\n"	      "           Display the version of lrelease and exits" );}int main( int argc, char **argv ){    bool verbose = FALSE;    bool metTranslations = FALSE;    int numProFiles = 0;    for ( int i = 1; i < argc; i++ ) {	if ( qstrcmp(argv[i], "-help") == 0 ) {	    printUsage();	    return 0;	} else if ( qstrcmp(argv[i], "-verbose") == 0 ) {	    verbose = TRUE;	    continue;	} else if ( qstrcmp(argv[i], "-version") == 0 ) {	    qWarning( "lrelease version %s", QT_VERSION_STR );	    return 0;	}	numProFiles++;	QFile f( argv[i] );	if ( !f.open(IO_ReadOnly) ) {	    qWarning( "lrelease error: Cannot open project file '%s': %s",		      argv[i], strerror(errno) );	    return 1;	}	QTextStream t( &f );	QString fullText = t.read();	f.close();	QMap<QString, QString> tagMap = proFileTagMap( fullText );	QMap<QString, QString>::Iterator it;	for ( it = tagMap.begin(); it != tagMap.end(); ++it ) {            QStringList toks = QStringList::split( QChar(' '), it.data() );	    QStringList::Iterator t;            for ( t = toks.begin(); t != toks.end(); ++t ) {		if ( it.key() == QString("TRANSLATIONS") ) {		    metTranslations = TRUE;		    MetaTranslator tor;		    QString f = *t;		    QString g = *t;		    g.replace( QRegExp(QString(".ts$")), QString("") );		    g += QString( ".qm" );		    if ( tor.load(f) ) {			if ( verbose )			    qWarning( "Updating '%s'...", g.latin1() );			if ( !tor.release(g, verbose) )			    qWarning( "lrelease warning: For some reason, I"				      " cannot save '%s'", g.latin1() );		    } else {			qWarning( "lrelease warning: For some reason, I"				  " cannot load '%s'", f.latin1() );		    }		}	    }	}	if ( !metTranslations )	    qWarning( "lrelease warning: Met no 'TRANSLATIONS' entry in"		      " project file '%s'", argv[i] );    }    if ( numProFiles == 0 ) {	printUsage();	return 1;    }    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?