@@ -895,6 +895,40 @@ void MainWindow::outputLogFinish()
895895 m_saveLog->setEnabled (true );
896896}
897897
898+ static QString languagesList ()
899+ {
900+ QString languages = QString::fromLatin1 (" en" );
901+
902+ // add additional languages based on embedded info
903+ QDir resourceDir (QString::fromLatin1 (" :/i18n" ));
904+ QFileInfoList fileList = resourceDir.entryInfoList ();
905+ QString prevLangCode;
906+ foreach (QFileInfo fileInfo, fileList)
907+ {
908+ QString filename = fileInfo.fileName ();
909+ const int underscore = filename.indexOf (QChar::fromLatin1 (' _' ));
910+ const int dot = filename.lastIndexOf (QChar::fromLatin1 (' .' ));
911+ if (filename.startsWith (QString::fromLatin1 (" config" )) && underscore!=-1 && dot>underscore)
912+ {
913+ QString langCode = filename.mid (underscore+1 , dot-underscore-1 );
914+ QFile trFile (QString::fromLatin1 (" :/i18n/config_%1.xml" ).arg (langCode));
915+ if (trFile.open (QIODevice::ReadOnly))
916+ {
917+ if (!prevLangCode.isEmpty ())
918+ {
919+ languages += QString::fromLatin1 (" , " ) + prevLangCode;
920+ }
921+ prevLangCode = langCode;
922+ }
923+ }
924+ }
925+ if (!prevLangCode.isEmpty ())
926+ {
927+ languages += QString::fromLatin1 (" and " ) + prevLangCode;
928+ }
929+ return languages;
930+ }
931+
898932#define TXT_ARGS QString::fromLatin1 (argc > 2 ?" Too many arguments specified\n\n " :" " )
899933static void usage(const char *exeName, const QString txt)
900934{
@@ -975,7 +1009,8 @@ int main(int argc,char **argv)
9751009 }
9761010 if (!isLanguageCodeSupported (langSel))
9771011 {
978- usage (argv[0 ],QString::fromLatin1 (" Unknown language selected\n\n " ));
1012+ usage (argv[0 ],QString::fromLatin1 (" Unknown language selected\n available languages: " ) + languagesList () +
1013+ QString::fromLatin1 (" \n\n " ));
9791014 exit (1 );
9801015 }
9811016 }
0 commit comments