38 ** $QT_END_LICENSE$ |
38 ** $QT_END_LICENSE$ |
39 ** |
39 ** |
40 ****************************************************************************/ |
40 ****************************************************************************/ |
41 |
41 |
42 #include "translator.h" |
42 #include "translator.h" |
43 #include "proreader.h" |
43 #include "profileevaluator.h" |
44 |
44 |
45 #ifndef QT_BOOTSTRAPPED |
45 #ifndef QT_BOOTSTRAPPED |
46 #include <QtCore/QCoreApplication> |
46 #include <QtCore/QCoreApplication> |
47 #include <QtCore/QTranslator> |
47 #include <QtCore/QTranslator> |
48 #endif |
48 #endif |
244 } |
244 } |
245 |
245 |
246 foreach (const QString &inputFile, inputFiles) { |
246 foreach (const QString &inputFile, inputFiles) { |
247 if (inputFile.endsWith(QLatin1String(".pro"), Qt::CaseInsensitive) |
247 if (inputFile.endsWith(QLatin1String(".pro"), Qt::CaseInsensitive) |
248 || inputFile.endsWith(QLatin1String(".pri"), Qt::CaseInsensitive)) { |
248 || inputFile.endsWith(QLatin1String(".pri"), Qt::CaseInsensitive)) { |
249 QHash<QByteArray, QStringList> varMap; |
249 QFileInfo fi(inputFile); |
250 bool ok = evaluateProFile(inputFile, cd.isVerbose(), &varMap); |
250 ProFile pro(fi.absoluteFilePath()); |
251 if (ok) { |
251 |
252 QStringList translations = varMap.value("TRANSLATIONS"); |
252 ProFileEvaluator visitor; |
253 if (translations.isEmpty()) { |
253 visitor.setVerbose(cd.isVerbose()); |
254 qWarning("lrelease warning: Met no 'TRANSLATIONS' entry in" |
254 |
255 " project file '%s'\n", |
255 if (!visitor.queryProFile(&pro)) { |
256 qPrintable(inputFile)); |
256 qWarning("lrelease error: cannot read project file '%s'.", qPrintable(inputFile)); |
257 } else { |
257 continue; |
258 foreach (const QString &trans, translations) |
258 } |
259 if (!releaseTsFile(trans, cd, removeIdentical)) |
259 if (!visitor.accept(&pro)) { |
260 return 1; |
260 qWarning("lrelease error: cannot process project file '%s'.", qPrintable(inputFile)); |
261 } |
261 continue; |
|
262 } |
|
263 |
|
264 QStringList translations = visitor.values(QLatin1String("TRANSLATIONS")); |
|
265 if (translations.isEmpty()) { |
|
266 qWarning("lrelease warning: Met no 'TRANSLATIONS' entry in" |
|
267 " project file '%s'\n", |
|
268 qPrintable(inputFile)); |
262 } else { |
269 } else { |
263 qWarning("error: lrelease encountered project file functionality that is currently not supported.\n" |
270 QDir proDir(fi.absolutePath()); |
264 "You might want to consider using TS files as input instead of a project file.\n" |
271 foreach (const QString &trans, translations) |
265 "Try the following syntax:\n" |
272 if (!releaseTsFile(QFileInfo(proDir, trans).filePath(), cd, removeIdentical)) |
266 " lrelease [options] ts-files [-qm qm-file]\n"); |
273 return 1; |
267 } |
274 } |
268 } else { |
275 } else { |
269 if (outputFile.isEmpty()) { |
276 if (outputFile.isEmpty()) { |
270 if (!releaseTsFile(inputFile, cd, removeIdentical)) |
277 if (!releaseTsFile(inputFile, cd, removeIdentical)) |
271 return 1; |
278 return 1; |