static void releaseTsFile( const QString& tsFileName, bool verbose, bool stripped ) { MetaTranslator tor; if ( loadTsFile(tor, tsFileName, verbose) ) { QString qmFileName = tsFileName; qmFileName.replace( QRegExp("\\.ts$"), "" ); qmFileName += ".qm"; releaseMetaTranslator( tor, qmFileName, verbose, stripped ); } }
static bool releaseTsFile(const QString& tsFileName, bool verbose, bool ignoreUnfinished, bool removeIdentical, TranslatorSaveMode mode) { Translator tor; if (!loadTsFile(tor, tsFileName, verbose)) return false; QString qmFileName = tsFileName; foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { if (qmFileName.endsWith(QLatin1Char('.') + fmt.extension)) { qmFileName.chop(fmt.extension.length() + 1); break; } } qmFileName += QLatin1String(".qm"); return releaseTranslator(tor, qmFileName, verbose, ignoreUnfinished, removeIdentical, mode); }
static bool releaseTsFile(const QString& tsFileName, ConversionData &cd, bool removeIdentical) { Translator tor; if (!loadTsFile(tor, tsFileName, cd.isVerbose())) return false; QString qmFileName = tsFileName; foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { if (qmFileName.endsWith(QLatin1Char('.') + fmt.extension)) { qmFileName.chop(fmt.extension.length() + 1); break; } } qmFileName += QLatin1String(".qm"); return releaseTranslator(tor, qmFileName, cd, removeIdentical); }
int main( int argc, char **argv ) { bool verbose = FALSE; bool stripped = TRUE; bool metTranslations = FALSE; MetaTranslator tor; QString outputFile; int numFiles = 0; int i; for ( i = 1; i < argc; i++ ) { if ( qstrcmp(argv[i], "-nocompress") == 0 ) { stripped = FALSE; continue; } else if ( qstrcmp(argv[i], "-verbose") == 0 ) { verbose = TRUE; continue; } else if ( qstrcmp(argv[i], "-version") == 0 ) { fprintf( stderr, "lrelease version %s\n", QT_VERSION_STR ); return 0; } else if ( qstrcmp(argv[i], "-qm") == 0 ) { if ( i == argc - 1 ) { printUsage(); return 1; } else { i++; outputFile = argv[i]; argv[i][0] = '-'; } } else if ( qstrcmp(argv[i], "-help") == 0 ) { printUsage(); return 0; } else if ( argv[i][0] == '-' ) { printUsage(); return 1; } else { numFiles++; } } if ( numFiles == 0 ) { printUsage(); return 1; } for ( i = 1; i < argc; i++ ) { if ( argv[i][0] == '-' ) continue; QFile f( argv[i] ); if ( !f.open(IO_ReadOnly) ) { fprintf( stderr, "lrelease error: Cannot open file '%s': %s\n", argv[i], strerror(errno) ); return 1; } QTextStream t( &f ); QString fullText = t.read(); f.close(); if ( fullText.find(QString("<!DOCTYPE TS>")) >= 0 ) { if ( outputFile.isEmpty() ) { releaseTsFile( argv[i], verbose, stripped ); } else { loadTsFile( tor, argv[i], verbose ); } } else { QString oldDir = QDir::currentDirPath(); QDir::setCurrent( QFileInfo(argv[i]).dirPath() ); QMap<QString, QString> tagMap = proFileTagMap( fullText ); QMap<QString, QString>::Iterator it; for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { QStringList toks = QStringList::split( ' ', it.data() ); QStringList::Iterator t; for ( t = toks.begin(); t != toks.end(); ++t ) { if ( it.key() == QString("TRANSLATIONS") ) { metTranslations = TRUE; releaseTsFile( *t, verbose, stripped ); } } } if ( !metTranslations ) fprintf( stderr, "lrelease warning: Met no 'TRANSLATIONS' entry in" " project file '%s'\n", argv[i] ); QDir::setCurrent( oldDir ); } } if ( !outputFile.isEmpty() ) releaseMetaTranslator( tor, outputFile, verbose, stripped ); return 0; }
int main(int argc, char **argv) { QCoreApplication app(argc, argv); #ifndef Q_OS_WIN32 QTranslator translator; QTranslator qtTranslator; QString sysLocale = QLocale::system().name(); QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir) && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) { app.installTranslator(&translator); app.installTranslator(&qtTranslator); } #endif ConversionData cd; cd.m_verbose = true; // the default is true starting with Qt 4.2 bool removeIdentical = false; Translator tor; QStringList inputFiles; QString outputFile; for (int i = 1; i < argc; ++i) { if (!strcmp(argv[i], "-compress")) { cd.m_saveMode = SaveStripped; continue; } else if (!strcmp(argv[i], "-idbased")) { cd.m_idBased = true; continue; } else if (!strcmp(argv[i], "-nocompress")) { cd.m_saveMode = SaveEverything; continue; } else if (!strcmp(argv[i], "-removeidentical")) { removeIdentical = true; continue; } else if (!strcmp(argv[i], "-nounfinished")) { cd.m_ignoreUnfinished = true; continue; } else if (!strcmp(argv[i], "-markuntranslated")) { if (i == argc - 1) { printUsage(); return 1; } cd.m_unTrPrefix = QString::fromLocal8Bit(argv[++i]); } else if (!strcmp(argv[i], "-silent")) { cd.m_verbose = false; continue; } else if (!strcmp(argv[i], "-verbose")) { cd.m_verbose = true; continue; } else if (!strcmp(argv[i], "-version")) { printOut(LR::tr("lrelease version %1\n").arg(QLatin1String(CS_VERSION_STR))); return 0; } else if (!strcmp(argv[i], "-qm")) { if (i == argc - 1) { printUsage(); return 1; } outputFile = QString::fromLocal8Bit(argv[++i]); } else if (!strcmp(argv[i], "-help")) { printUsage(); return 0; } else if (argv[i][0] == '-') { printUsage(); return 1; } else { inputFiles << QString::fromLocal8Bit(argv[i]); } } if (inputFiles.isEmpty()) { printUsage(); return 1; } foreach (const QString &inputFile, inputFiles) { if (outputFile.isEmpty()) { if (!releaseTsFile(inputFile, cd, removeIdentical)) return 1; } else { if (!loadTsFile(tor, inputFile, cd.isVerbose())) return 1; } } if (!outputFile.isEmpty()) return releaseTranslator(tor, outputFile, cd, removeIdentical) ? 0 : 1; return 0; }