void loadTranslations( QCoreApplication &app, QTranslator &translator ) { const QString lang = QLocale::system().name(); QString code; int index = lang.indexOf ( '_' ); if ( lang == "C" ) { code = "en"; } else if ( index != -1 ) { code = lang.left ( index ); } else { index = lang.indexOf ( '@' ); if ( index != -1 ) code = lang.left ( index ); else code = lang; } QString const i18nDir = "/usr/share/marble/translations"; QString const relativeDir = app.applicationDirPath() + "/translations"; foreach( const QString &path, QStringList() << i18nDir << relativeDir << QDir::currentPath() ) { foreach( const QString &lang, QStringList() << lang << code ) { QFileInfo translations = QFileInfo( path + "/routing-instructions_" + lang + ".qm" ); if ( translations.exists() && translator.load( translations.absoluteFilePath() ) ) { app.installTranslator( &translator ); return; } } } }
void Robot::logInit() { QCoreApplication *pApp = QCoreApplication::instance(); QsLogging::Logger& logger = QsLogging::Logger::instance(); logger.setLoggingLevel(QsLogging::TraceLevel); //Log to file const QString logPath(QDir(pApp->applicationDirPath()).filePath("Log.txt")); QsLogging::DestinationPtr fileDestination( QsLogging::DestinationFactory::MakeFileDestination(logPath) ); logger.addDestination(fileDestination); //Log to standard output QsLogging::DestinationPtr debugDestination = QsLogging::DestinationFactory::MakeDebugOutputDestination(); logger.addDestination(debugDestination); }
void MyService::start() { try { QCoreApplication *app = application(); qDebug() << "Service started!"; qDebug() << app->applicationDirPath(); //MyClass.dosomething(); } catch(...) { qCritical() << "An unknown error in the start"; } }
void CHoruxService::start() { QCoreApplication *app = application(); app->addLibraryPath ( app->applicationDirPath() + "/plugins" ); if(!ptr_horux) ptr_horux = new CHorux(app); //! start the horux engine if ( !ptr_horux->startEngine() ) { //! the function stopEngine could be called by XMLRPC, we set first the call to be internal called ptr_horux->setInternalCall ( true ); //! an error happens, stop the engine ptr_horux->stopEngine ( "","" ); ptr_horux->setInternalCall ( false ); } }
void setLanguage(QCoreApplication& qapplication, QWidget* parent) { static int cntTranslators=0; if(cntTranslators>0){ qapplication.removeTranslator(&translator); cntTranslators=0; } //translator stuff QDir d("/usr/share/fet/translations"); bool translation_loaded=false; //this is one place (out of 2) in which you need to add a new language if(FET_LANGUAGE=="ar" || FET_LANGUAGE=="ca" || FET_LANGUAGE=="de" || FET_LANGUAGE=="es" || FET_LANGUAGE=="el" || FET_LANGUAGE=="fr" || FET_LANGUAGE=="hu" || FET_LANGUAGE=="mk" || FET_LANGUAGE=="ms" || FET_LANGUAGE=="nl" || FET_LANGUAGE=="pl" || FET_LANGUAGE=="ro" || FET_LANGUAGE=="tr" || FET_LANGUAGE=="id" || FET_LANGUAGE=="it" || FET_LANGUAGE=="lt" || FET_LANGUAGE=="ru" || FET_LANGUAGE=="fa" || FET_LANGUAGE=="uk" || FET_LANGUAGE=="pt_BR" || FET_LANGUAGE=="da" || FET_LANGUAGE=="si" || FET_LANGUAGE=="sk" || FET_LANGUAGE=="he" || FET_LANGUAGE=="sr" || FET_LANGUAGE=="gl" || FET_LANGUAGE=="vi" || FET_LANGUAGE=="uz"){ translation_loaded=translator.load("fet_"+FET_LANGUAGE, qapplication.applicationDirPath()); if(!translation_loaded){ translation_loaded=translator.load("fet_"+FET_LANGUAGE, qapplication.applicationDirPath()+"/translations"); if(!translation_loaded){ if(d.exists()){ translation_loaded=translator.load("fet_"+FET_LANGUAGE, "/usr/share/fet/translations"); } } } } else{ if(FET_LANGUAGE!="en_US"){ /* QMessageBox::warning(parent, QString("FET warning"), QString("Specified language is incorrect - making it en_US (US English)")); FET_LANGUAGE="en_US"; */ } assert(FET_LANGUAGE=="en_US"); translation_loaded=true; } if(!translation_loaded){ /* QMessageBox::warning(parent, QString("FET warning"), QString("Translation for specified language not loaded - maybe the translation file is missing - setting the language to en_US (US English)") +"\n\n"+ QString("FET searched for the translation file %1 in the directory %2, then in the directory %3 and " "then in the directory %4 (under systems that support such a directory), but could not find it.") .arg("fet_"+FET_LANGUAGE+".qm") .arg(QDir::toNativeSeparators(qapplication.applicationDirPath())) .arg(QDir::toNativeSeparators(qapplication.applicationDirPath()+"/translations")) .arg("/usr/share/fet/translations") ); FET_LANGUAGE="en_US"; */ } if(FET_LANGUAGE=="ar" || FET_LANGUAGE=="he" || FET_LANGUAGE=="fa" || FET_LANGUAGE=="ur" /* and others? */){ LANGUAGE_STYLE_RIGHT_TO_LEFT=true; } else{ LANGUAGE_STYLE_RIGHT_TO_LEFT=false; } if(FET_LANGUAGE=="zh_CN"){ LANGUAGE_FOR_HTML="zh-Hans"; } else if(FET_LANGUAGE=="zh_TW"){ LANGUAGE_FOR_HTML="zh-Hant"; } else if(FET_LANGUAGE=="en_US"){ LANGUAGE_FOR_HTML=FET_LANGUAGE.left(2); } else{ LANGUAGE_FOR_HTML=FET_LANGUAGE; LANGUAGE_FOR_HTML.replace(QString("_"), QString("-")); } assert(cntTranslators==0); if(FET_LANGUAGE!="en_US"){ qapplication.installTranslator(&translator); cntTranslators=1; } /* if(LANGUAGE_STYLE_RIGHT_TO_LEFT==true) qapplication.setLayoutDirection(Qt::RightToLeft); */ //retranslate /* QList<QWidget*> tlwl=qapplication.topLevelWidgets(); foreach(QWidget* wi, tlwl) if(wi->isVisible()){ FetMainForm* mainform=qobject_cast<FetMainForm*>(wi); if(mainform!=NULL){ mainform->retranslateUi(mainform); continue; } //help HelpAboutForm* aboutf=qobject_cast<HelpAboutForm*>(wi); if(aboutf!=NULL){ aboutf->retranslateUi(aboutf); continue; } HelpFaqForm* faqf=qobject_cast<HelpFaqForm*>(wi); if(faqf!=NULL){ faqf->retranslateUi(faqf); faqf->setText(); continue; } HelpTipsForm* tipsf=qobject_cast<HelpTipsForm*>(wi); if(tipsf!=NULL){ tipsf->retranslateUi(tipsf); tipsf->setText(); continue; } HelpInstructionsForm* instrf=qobject_cast<HelpInstructionsForm*>(wi); if(instrf!=NULL){ instrf->retranslateUi(instrf); instrf->setText(); continue; } ////// //timetable TimetableViewStudentsForm* vsf=qobject_cast<TimetableViewStudentsForm*>(wi); if(vsf!=NULL){ vsf->retranslateUi(vsf); vsf->updateStudentsTimetableTable(); continue; } TimetableViewTeachersForm* vtchf=qobject_cast<TimetableViewTeachersForm*>(wi); if(vtchf!=NULL){ vtchf->retranslateUi(vtchf); vtchf->updateTeachersTimetableTable(); continue; } TimetableViewRoomsForm* vrf=qobject_cast<TimetableViewRoomsForm*>(wi); if(vrf!=NULL){ vrf->retranslateUi(vrf); vrf->updateRoomsTimetableTable(); continue; } TimetableShowConflictsForm* scf=qobject_cast<TimetableShowConflictsForm*>(wi); if(scf!=NULL){ scf->retranslateUi(scf); continue; } } */ }
int main(int pArgC, char *pArgV[]) { // Initialise Qt's message pattern OpenCOR::initQtMessagePattern(); // Initialise the plugins path OpenCOR::initPluginsPath(pArgV[0]); // Create our application QCoreApplication *cliApp = new QCoreApplication(pArgC, pArgV); // Some general initialisations OpenCOR::initApplication(); // Try to run OpenCOR as a CLI application int res; if (!OpenCOR::cliApplication(&res)) { // OpenCOR isn't meant to be run as a CLI application, so start its GUI // version instead static const QString DotExe = ".exe"; if (cliApp->applicationFilePath().right(DotExe.size()) == DotExe) { // This is a safeguard from accidentally running a non-renamed (to // '.com') CLI version of OpenCOR error("the CLI version of "+qAppName()+" has the wrong extension ('.exe' instead of '.com')."); res = -1; } else { QString guiAppFilePath = cliApp->applicationDirPath()+QDir::separator()+qAppName()+DotExe; if (!QFile::exists(guiAppFilePath)) { // We can't find the GUI version of OpenCOR, so... error("the GUI version of "+qAppName()+" cannot be found."); res = -1; } else { // We found the GUI version of OpenCOR, so run it with our // arguments, minus the first one since it corresponds to the // full path to our executable, which we are not interested in QStringList appArguments = cliApp->arguments(); appArguments.removeFirst(); QProcess().startDetached(guiAppFilePath, appArguments, QProcess().workingDirectory()); res = 0; } } } // Release some memory delete cliApp; // We are done, so... return res; }