Exemplo n.º 1
0
void TranslatorManager::setAppTranslator(const QString& lang)
{
    qDebug() << "I18NDIR: " << I18NDIR;
    cleanAppTranslator();

    ScopedQTranslator appTranslator( new QTranslator() );

    if ( appTranslator->load(QString("lang_") + lang, QString("i18n")) ||
         appTranslator->load(QString("lang_") + lang, I18NDIR) )
    {
        QCoreApplication::installTranslator(appTranslator.data());
        sm_appTranslator.swap( appTranslator );
    }
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
    appName = getFileName(argv[0]);
	qDebug("%s %s\nQt %s\n", APP_NAME, APP_VERSION_STR, qVersion());

	opts_t options=opts_parse(argc,argv);

    ZApplication a(argc, argv/*, QApplication::GuiClient*/);
#if CONFIG_QT4
	QApplication::setApplicationName(APP_NAME);
#if QT_VERSION >= QT_VERSION_CHECK(4, 4, 0)
	QApplication::setApplicationVersion(APP_VERSION_STR);
#endif
	QApplication::setOrganizationName("Wang Bin");

#endif

#if CONFIG_QT4
    QString dirname = QCoreApplication::applicationDirPath();
#else
	QString dirname=QFileInfo(argv[0]).dirPath();
	//QString dirname=getFileDir(argv[0]);//
#endif
	//QDir::setCurrent(dirname); //bad in windows cygwin
	ZDEBUG("dir: %s",qPrintable(dirname));

	QTranslator appTranslator(0);
#if CONFIG_EZX
	QString sysLang=ZLanguage::getSystemLanguageCode();
	appTranslator.load(APP_NAME "_" + sysLang, dirname + "/i18n");
	//QString(dirname)+"/i18n" will load fail, 乱码
#else
	QString sysLang=QLocale::system().name();
	appTranslator.load(APP_NAME "-" + sysLang, dirname + "/i18n");
#endif //CONFIG_EZX
	ZDEBUG("system language: %s",qPrintable(sysLang));
	a.installTranslator(&appTranslator);
	//Need QtTranslator

	//QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

	Qop qop;
#if !CONFIG_QT4
	a.setMainWidget(qop.progress);
#endif //CONFIG_QT4
	ZDEBUG("Steps from options: %d",options->steps);
	qop.setTimeFormat(options->time_format);
	qop.setInterval(options->interval);
	qop.setUpdateAllMessage(options->all_msg);
	if(!options->hide)
		qop.progress->show();
	//order is important
	//qop.parser_type=options->parser_type;
	qop.setArchive(options->x_file);

	//internal method
	if(options->diy || argc<2)  {
		qop.extract(options->x_file,options->out_dir);
		//qDebug("%s", options->x_file);
	}
	else if(!options->cmd==0)
		qop.execute(QString::fromLocal8Bit(options->cmd));
	else {
		qop.parser_type=options->parser_type;
		ZDEBUG("steps %d",options->steps);
		qop.initParser();
		if(options->unit==0) qop.parser->setCountType(QCounterThread::Size);
		else if(options->unit==1) qop.parser->setCountType(QCounterThread::Num);
		if(options->steps>0) {
			qop.parser->setRecount(false);
			qop.parser->setTotalSize(options->steps);
			//qop.progress->setMaximum(options->steps);
		}
		if(qop.steps<=0) { //compress
			if(options->steps>0) qop.parser->setTotalSize(options->steps);
			QStringList files=QStringList();
		//why is optind?
			for(int i=options->optind;i<argc;++i) files<<argv[i];
			qop.parser->setFiles(files);
			qop.parser->setMultiThread(options->multi_thread);
			qop.parser->startCounterThread();
		}
#if NO_SOCKET
		qop.parser->start();
#endif
	}
#if CONFIG_EZX
	a.processEvents();
#endif
	//progress->exec();
	if(options->auto_close) exit(0);

	return a.exec();
}