diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index 2de78a7f13721f917f866000322bdf794a500850..917642e43c0a9d5f8d4a818301078dc57c7a86a4 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -1079,11 +1079,13 @@ bool PluginManagerPrivate::loadQueue(PluginSpec *spec, QList<PluginSpec *> &queu
     // check for circular dependencies
     if (circularityCheckQueue.contains(spec)) {
         spec->d->hasError = true;
-        spec->d->errorString = PluginManager::tr("Circular dependency detected:\n");
+        spec->d->errorString = PluginManager::tr("Circular dependency detected:");
+        spec->d->errorString += QLatin1Char('\n');
         int index = circularityCheckQueue.indexOf(spec);
         for (int i = index; i < circularityCheckQueue.size(); ++i) {
-            spec->d->errorString.append(PluginManager::tr("%1(%2) depends on\n")
+            spec->d->errorString.append(PluginManager::tr("%1(%2) depends on")
                 .arg(circularityCheckQueue.at(i)->name()).arg(circularityCheckQueue.at(i)->version()));
+            spec->d->errorString += QLatin1Char('\n');
         }
         spec->d->errorString.append(PluginManager::tr("%1(%2)").arg(spec->name()).arg(spec->version()));
         return false;
diff --git a/src/libs/zeroconf/embeddedLib.cpp b/src/libs/zeroconf/embeddedLib.cpp
index b4ae626d4944878434a0bc217b1e51f382a6a526..993944d0b0e13aff8ca55b42758312f97d6e11f7 100644
--- a/src/libs/zeroconf/embeddedLib.cpp
+++ b/src/libs/zeroconf/embeddedLib.cpp
@@ -126,9 +126,8 @@ public:
                 if (logger) {
                     QByteArray logBA = oldLog.readAll();
                     logger->appendError(ErrorMessage::NoteLevel,
-                                        ZConfLib::tr("%1: log of previous daemon run is: '%2'.\n")
-                                        .arg(name())
-                                        .arg(QString::fromLatin1(logBA.constData(), logBA.size())));
+                                        ZConfLib::tr("%1: log of previous daemon run is: '%2'.")
+                                        .arg(name(), QString::fromLatin1(logBA.constData(), logBA.size())) + QLatin1Char('\n'));
                     qDebug()<<logBA.size()<<oldLog.error()<<oldLog.errorString();
                 }
                 oldLog.close();
diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
index 3a017e8c52c43ddf215393ea544600d4deca6568..e5b92af57c760d6f72a3c839ade085e3fa26c93d 100644
--- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
@@ -195,29 +195,33 @@ void ReadOnlyFilesDialog::promptFailWarning(const QStringList &files, ReadOnlyRe
             if (IVersionControl *vc = d->versionControls[file]) {
                 const QString openText = vc->vcsOpenText().remove(QLatin1Char('&'));
                 title = tr("Failed to %1 File").arg(openText);
-                message = tr("%1 file %2 from version control system %3 failed.\n")
+                message = tr("%1 file %2 from version control system %3 failed.")
                         .arg(openText)
                         .arg(QDir::toNativeSeparators(file))
                         .arg(vc->displayName());
+                message += QLatin1Char('\n');
                 message += d->failWarning;
             } else {
                 title = tr("No Version Control System Found");
                 message = tr("Cannot open file %1 from version control system.\n"
-                             "No version control system found.\n")
+                             "No version control system found.")
                         .arg(QDir::toNativeSeparators(file));
+                message += QLatin1Char('\n');
                 message += d->failWarning;
             }
             break;
         }
         case RO_MakeWritable:
             title = tr("Cannot Set Permissions");
-            message = tr("Cannot set permissions for %1 to writable.\n")
+            message = tr("Cannot set permissions for %1 to writable.")
                     .arg(QDir::toNativeSeparators(file));
+            message += QLatin1Char('\n');
             message += d->failWarning;
             break;
         case RO_SaveAs:
             title = tr("Cannot Save File");
-            message = tr("Cannot save file %1\n").arg(QDir::toNativeSeparators(file));
+            message = tr("Cannot save file %1").arg(QDir::toNativeSeparators(file));
+            message += QLatin1Char('\n');
             message += d->failWarning;
             break;
         default:
@@ -240,6 +244,7 @@ void ReadOnlyFilesDialog::promptFailWarning(const QStringList &files, ReadOnlyRe
  * Executes the ReadOnlyFilesDialog dialog.
  * Returns ReadOnlyResult to provide information about the operation that was
  * used to make the files writable.
+ *
  * \internal
  *
  * Also displays an error dialog when some operations cannot be executed and the
diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp
index 971704272e3c9b50fcf276dc10617bda044ee6af..590806ff2535407b9d58231d9cdbee98a109b0ba 100644
--- a/src/plugins/coreplugin/externaltool.cpp
+++ b/src/plugins/coreplugin/externaltool.cpp
@@ -561,9 +561,10 @@ bool ExternalToolRunner::resolve()
         if (m_resolvedExecutable.isEmpty()) {
             m_hasError = true;
             for (int i = 0; i < expandedExecutables.size(); ++i) {
-                m_errorString += tr("Could not find executable for '%1' (expanded '%2')\n")
+                m_errorString += tr("Could not find executable for '%1' (expanded '%2')")
                         .arg(m_tool->executables().at(i))
                         .arg(expandedExecutables.at(i));
+                m_errorString += QLatin1Char('\n');
             }
             if (!m_errorString.isEmpty())
                 m_errorString.chop(1);
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp
index bdd82784b13f4e3d36d4d22178d903719ac46820..8813ea21e9f82f616a3cd22383e1992e82ef6f61 100644
--- a/src/plugins/coreplugin/outputwindow.cpp
+++ b/src/plugins/coreplugin/outputwindow.cpp
@@ -264,7 +264,7 @@ void OutputWindow::appendText(const QString &textIn, const QTextCharFormat &form
     if (m_maxLineCount > 0 && document()->blockCount() >= m_maxLineCount) {
         QTextCharFormat tmp;
         tmp.setFontWeight(QFont::Bold);
-        cursor.insertText(doNewlineEnforcement(tr("Additional output omitted\n")), tmp);
+        cursor.insertText(doNewlineEnforcement(tr("Additional output omitted") + QLatin1Char('\n')), tmp);
     }
 
     cursor.endEditBlock();
diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp
index d58a678d468849bb5c65a1228e4fedebc864646e..4e2636a90889e48f3164ae647ef31880c7e30317 100644
--- a/src/plugins/coreplugin/vcsmanager.cpp
+++ b/src/plugins/coreplugin/vcsmanager.cpp
@@ -404,8 +404,8 @@ QString VcsManager::msgAddToVcsFailedTitle()
 QString VcsManager::msgToAddToVcsFailed(const QStringList &files, const IVersionControl *vc)
 {
     return files.size() == 1
-        ? tr("Could not add the file\n%1\nto version control (%2)\n")
-              .arg(files.front(), vc->displayName())
+        ? tr("Could not add the file\n%1\nto version control (%2)")
+              .arg(files.front(), vc->displayName()) + QLatin1Char('\n')
         : tr("Could not add the following files to version control (%1)\n%2")
               .arg(vc->displayName(), files.join(QString(QLatin1Char('\n'))));
 }
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 30c4cf5a91194c422b0e2bf08265d433bca7a3dc..59058769bf4b2b502427bb51d3dcef1e11d81a4b 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -1810,7 +1810,8 @@ void DebuggerEngine::checkForReleaseBuild(const DebuggerStartParameters &sp)
     }
     showMessageBox(QMessageBox::Information, tr("Warning"),
                    tr("This does not seem to be a \"Debug\" build.\n"
-                      "Setting breakpoints by file name and line number may fail.\n").append(detailedWarning));
+                      "Setting breakpoints by file name and line number may fail.")
+                   + QLatin1Char('\n') + detailedWarning);
 }
 
 } // namespace Debugger
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index a301f443fe7c48cca8754b968cbb84b48a1b9a61..a7d33fdb5ec3173eca4352de7d847807890980c3 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -192,7 +192,7 @@ void DebuggerRunControl::start()
     // User canceled input dialog asking for executable when working on library project.
     if (d->m_engine->startParameters().startMode == StartInternal
         && d->m_engine->startParameters().executable.isEmpty()) {
-        appendMessage(tr("No executable specified.\n"), ErrorMessageFormat);
+        appendMessage(tr("No executable specified.") + QLatin1Char('\n'), ErrorMessageFormat);
         emit started();
         emit finished();
         return;
@@ -232,12 +232,12 @@ void DebuggerRunControl::start()
     d->m_engine->startDebugger(this);
 
     if (d->m_running)
-        appendMessage(tr("Debugging starts\n"), NormalMessageFormat);
+        appendMessage(tr("Debugging starts") + QLatin1Char('\n'), NormalMessageFormat);
 }
 
 void DebuggerRunControl::startFailed()
 {
-    appendMessage(tr("Debugging has failed\n"), NormalMessageFormat);
+    appendMessage(tr("Debugging has failed") + QLatin1Char('\n'), NormalMessageFormat);
     d->m_running = false;
     emit finished();
     d->m_engine->handleStartFailed();
@@ -245,7 +245,7 @@ void DebuggerRunControl::startFailed()
 
 void DebuggerRunControl::handleFinished()
 {
-    appendMessage(tr("Debugging has finished\n"), NormalMessageFormat);
+    appendMessage(tr("Debugging has finished") + QLatin1Char('\n'), NormalMessageFormat);
     if (d->m_engine)
         d->m_engine->handleFinished();
     debuggerCore()->runControlFinished(d->m_engine);
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index ce66963e525d82a5271cc0ff2e17dd1b3de612cd..13f6326a21f11b9dd1c16d52cf13d897139379a6 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -211,8 +211,9 @@ void GdbCoreEngine::handleTargetCore(const GdbResponse &response)
         postCommand("p 5", CB(handleRoundTrip));
         return;
     }
-    QString msg = tr("Attach to core \"%1\" failed:\n")
+    QString msg = tr("Attach to core \"%1\" failed:")
         .arg(startParameters().coreFile)
+        + QLatin1Char('\n')
         + QString::fromLocal8Bit(response.data["msg"].data());
     notifyInferiorSetupFailed(msg);
 }
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index bdd1c40b36a5d83d6e11f8d228a85b3bd9ac4acf..ea2b2381c49d6896f3e1eca0ef35e09f251d9f9f 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1893,7 +1893,7 @@ void GdbEngine::pythonDumpersFailed()
 void GdbEngine::showExecutionError(const QString &message)
 {
     showMessageBox(QMessageBox::Critical, tr("Execution Error"),
-       tr("Cannot continue debugged process:\n") + message);
+       tr("Cannot continue debugged process:") + QLatin1Char('\n') + message);
 }
 
 void GdbEngine::handleExecuteContinue(const GdbResponse &response)
@@ -2296,7 +2296,7 @@ void GdbEngine::handleExecuteNext(const GdbResponse &response)
         notifyInferiorRunFailed();
     } else {
         showMessageBox(QMessageBox::Critical, tr("Execution Error"),
-           tr("Cannot continue debugged process:\n") + QString::fromLocal8Bit(msg));
+           tr("Cannot continue debugged process:") + QLatin1Char('\n') + QString::fromLocal8Bit(msg));
         notifyInferiorIll();
     }
 }
@@ -3848,7 +3848,7 @@ void GdbEngine::handleMakeSnapshot(const GdbResponse &response)
     } else {
         QByteArray msg = response.data["msg"].data();
         showMessageBox(QMessageBox::Critical, tr("Snapshot Creation Error"),
-            tr("Cannot create snapshot:\n") + QString::fromLocal8Bit(msg));
+            tr("Cannot create snapshot:") + QLatin1Char('\n') + QString::fromLocal8Bit(msg));
     }
 }
 
diff --git a/src/plugins/debugger/gdb/gdbplainengine.cpp b/src/plugins/debugger/gdb/gdbplainengine.cpp
index eaa992ec75a779d22a60fc2ebad7828b64f5d4c9..4050e9048e50db3696a63e4b052916f63f7e9cb4 100644
--- a/src/plugins/debugger/gdb/gdbplainengine.cpp
+++ b/src/plugins/debugger/gdb/gdbplainengine.cpp
@@ -78,7 +78,7 @@ void GdbPlainEngine::handleFileExecAndSymbols(const GdbResponse &response)
         QString msg = fromLocalEncoding(ba);
         // Extend the message a bit in unknown cases.
         if (!ba.endsWith("File format not recognized"))
-            msg = tr("Starting executable failed:\n") + msg;
+            msg = tr("Starting executable failed:") + QLatin1Char('\n') + msg;
         notifyInferiorSetupFailed(msg);
     }
 }
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index fe1913d64e6aa286ba5f8e3d91550ab1d4a0c0ee..dfe658711293d994c88b06cf56f446a8a181df15 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -252,7 +252,8 @@ void GdbRemoteServerEngine::handleFileExecAndSymbols(const GdbResponse &response
         callTargetRemote();
     } else {
         QByteArray reason = response.data["msg"].data();
-        QString msg = tr("Reading debug information failed:\n");
+        QString msg = tr("Reading debug information failed:");
+        msg += QLatin1Char('\n');
         msg += QString::fromLocal8Bit(reason);
         if (reason.endsWith("No such file or directory.")) {
             showMessage(_("INFERIOR STARTUP: BINARY NOT FOUND"));
diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp
index ef7a7434d353c209bbfa264c56c4a74948f685c4..16c66285252a7855b6d1e464dbdef408fa5aa15c 100644
--- a/src/plugins/debugger/qml/qmladapter.cpp
+++ b/src/plugins/debugger/qml/qmladapter.cpp
@@ -141,7 +141,7 @@ void QmlAdapter::connectionStateChanged()
     switch (m_conn->state()) {
     case QAbstractSocket::UnconnectedState:
     {
-        showConnectionStatusMessage(tr("Disconnected.\n\n"));
+        showConnectionStatusMessage(tr("Disconnected.") + QLatin1String("\n\n"));
         emit disconnected();
 
         break;
@@ -154,7 +154,7 @@ void QmlAdapter::connectionStateChanged()
         break;
     case QAbstractSocket::ConnectedState:
     {
-        showConnectionStatusMessage(tr("Connected.\n"));
+        showConnectionStatusMessage(tr("Connected.") + QLatin1Char('\n'));
 
         m_connectionTimer.stop();
 
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index f74f4d94f15c9709fafcadcfc135112582089abc..edb9dcd551f0a577bb2032fc033d2da3aebd8842 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -3027,9 +3027,9 @@ bool GitClient::getCommitData(const QString &workingDirectory,
 static inline QString msgCommitted(const QString &amendSHA1, int fileCount)
 {
     if (amendSHA1.isEmpty())
-        return GitClient::tr("Committed %n file(s).\n", 0, fileCount);
+        return GitClient::tr("Committed %n file(s).", 0, fileCount) + QLatin1Char('\n');
     if (fileCount)
-        return GitClient::tr("Amended \"%1\" (%n file(s)).\n", 0, fileCount).arg(amendSHA1);
+        return GitClient::tr("Amended \"%1\" (%n file(s)).", 0, fileCount).arg(amendSHA1) + QLatin1Char('\n');
     return GitClient::tr("Amended \"%1\".").arg(amendSHA1);
 }
 
diff --git a/src/plugins/ios/iosruncontrol.cpp b/src/plugins/ios/iosruncontrol.cpp
index 551ef33f85f59fc72d25d685aaa2afe8e1c7e0af..6db4fa7d44690b5e03e37b1746576bdf72598e82 100644
--- a/src/plugins/ios/iosruncontrol.cpp
+++ b/src/plugins/ios/iosruncontrol.cpp
@@ -64,7 +64,7 @@ void IosRunControl::start()
         SLOT(handleRemoteOutput(QString)));
     connect(m_runner, SIGNAL(finished(bool)),
         SLOT(handleRemoteProcessFinished(bool)));
-    appendMessage(tr("Starting remote process.\n"), Utils::NormalMessageFormat);
+    appendMessage(tr("Starting remote process.") + QLatin1Char('\n'), Utils::NormalMessageFormat);
     m_runner->start();
 }
 
diff --git a/src/plugins/projectexplorer/applicationlauncher.cpp b/src/plugins/projectexplorer/applicationlauncher.cpp
index dbfef44220aed6686b425e57676e42a7cd3bad4c..a3667fbeceb2d9d54fec7f5b77fa5b7bd38af14d 100644
--- a/src/plugins/projectexplorer/applicationlauncher.cpp
+++ b/src/plugins/projectexplorer/applicationlauncher.cpp
@@ -285,7 +285,7 @@ void ApplicationLauncher::bringToForeground()
 
 QString ApplicationLauncher::msgWinCannotRetrieveDebuggingOutput()
 {
-    return tr("Cannot retrieve debugging output.\n");
+    return tr("Cannot retrieve debugging output.") + QLatin1Char('\n');
 }
 
 } // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/localapplicationruncontrol.cpp b/src/plugins/projectexplorer/localapplicationruncontrol.cpp
index ff19195f15c27c21ea7f9b855b7232dd2df47a01..4a680a551dccc82e6080d1a853f04de929961bec 100644
--- a/src/plugins/projectexplorer/localapplicationruncontrol.cpp
+++ b/src/plugins/projectexplorer/localapplicationruncontrol.cpp
@@ -98,15 +98,15 @@ void LocalApplicationRunControl::start()
 {
     emit started();
     if (m_executable.isEmpty()) {
-        appendMessage(tr("No executable specified.\n"), Utils::ErrorMessageFormat);
+        appendMessage(tr("No executable specified.") + QLatin1Char('\n'), Utils::ErrorMessageFormat);
         emit finished();
     }  else if (!QFileInfo(m_executable).exists()){
-        appendMessage(tr("Executable %1 does not exist.\n").arg(m_executable),
+        appendMessage(tr("Executable %1 does not exist.").arg(m_executable) + QLatin1Char('\n'),
                       Utils::ErrorMessageFormat);
         emit finished();
     } else {
         m_running = true;
-        QString msg = tr("Starting %1...\n").arg(QDir::toNativeSeparators(m_executable));
+        QString msg = tr("Starting %1...").arg(QDir::toNativeSeparators(m_executable)) + QLatin1Char('\n');
         appendMessage(msg, Utils::NormalMessageFormat);
         m_applicationLauncher.start(m_runMode, m_executable, m_commandLineArguments);
         setApplicationProcessHandle(ProcessHandle(m_applicationLauncher.applicationPID()));
@@ -147,13 +147,13 @@ void LocalApplicationRunControl::processExited(int exitCode, QProcess::ExitStatu
     setApplicationProcessHandle(ProcessHandle());
     QString msg;
     if (status == QProcess::CrashExit) {
-        msg = tr("%1 crashed\n")
+        msg = tr("%1 crashed")
                 .arg(QDir::toNativeSeparators(m_executable));
     } else {
-        msg = tr("%1 exited with code %2\n")
+        msg = tr("%1 exited with code %2")
                 .arg(QDir::toNativeSeparators(m_executable)).arg(exitCode);
     }
-    appendMessage(msg, Utils::NormalMessageFormat);
+    appendMessage(msg + QLatin1Char('\n'), Utils::NormalMessageFormat);
     emit finished();
 }
 
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 26385f6c12395fbcd33e3364ca4c4fd9e143d5bd..6321d7a0dabdef590b0a146c504d0a26f6b20475 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1985,8 +1985,8 @@ int ProjectExplorerPlugin::queue(QList<Project *> projects, QList<Id> stepIds)
 
     foreach (Project *pro, projects)
         if (pro && pro->needsConfiguration())
-            preambleMessage.append(tr("The project %1 is not configured, skipping it.\n")
-                                   .arg(pro->displayName()));
+            preambleMessage.append(tr("The project %1 is not configured, skipping it.")
+                                   .arg(pro->displayName()) + QLatin1Char('\n'));
     foreach (Id id, stepIds) {
         foreach (Project *pro, projects) {
             if (!pro || !pro->activeTarget())
@@ -2204,9 +2204,10 @@ QPair<bool, QString> ProjectExplorerPlugin::buildSettingsEnabledForSession()
                     && project->activeTarget()->activeBuildConfiguration()
                     && !project->activeTarget()->activeBuildConfiguration()->isEnabled()) {
                 result.first = false;
-                result.second += tr("Building '%1' is disabled: %2\n")
+                result.second += tr("Building '%1' is disabled: %2")
                         .arg(project->displayName(),
                              project->activeTarget()->activeBuildConfiguration()->disabledReason());
+                result.second += QLatin1Char('\n');
             }
         }
     }
@@ -2788,7 +2789,8 @@ void ProjectExplorerPlugin::addExistingFiles(ProjectNode *projectNode, const QSt
     projectNode->addFiles(fileNames, &notAdded);
 
     if (!notAdded.isEmpty()) {
-        QString message = tr("Could not add following files to project %1:\n").arg(projectNode->displayName());
+        QString message = tr("Could not add following files to project %1:").arg(projectNode->displayName());
+        message += QLatin1Char('\n');
         QString files = notAdded.join(QString(QLatin1Char('\n')));
         QMessageBox::warning(ICore::mainWindow(), tr("Adding Files to Project Failed"),
                              message + files);
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp
index f7d3c32db429d4260ca72caeab770451882b6f48..24cba5f192aa341d6d3e1432629be6b631992141 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.cpp
+++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp
@@ -303,7 +303,8 @@ void ProjectFileWizardExtension::firstExtensionPageShown(
         // <Implicitly Add>
         m_context->page->setNoneLabel(tr("<Implicitly Add>"));
 
-        QString text = tr("The files are implicitly added to the projects:\n");
+        QString text = tr("The files are implicitly added to the projects:");
+        text += QLatin1Char('\n');
         foreach (const ProjectEntry &project, deployingProjects) {
             text += project.fileName;
             text += QLatin1Char('\n');
diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp
index d062862a2c66ed9c77a4b4739b65907bf7c49f89..504871cb5b6ee7e729f355c2a0b7987f9447f28d 100644
--- a/src/plugins/projectexplorer/targetsettingspanel.cpp
+++ b/src/plugins/projectexplorer/targetsettingspanel.cpp
@@ -403,13 +403,15 @@ Target *TargetSettingsPanelWidget::cloneTarget(Target *sourceTarget, Kit *k)
 
         QString error;
         if (!buildconfigurationError.isEmpty())
-            error += tr("Build configurations:\n")
+            error += tr("Build configurations:")
+                    + QLatin1Char('\n')
                     + buildconfigurationError.join(QLatin1String("\n"));
 
         if (!deployconfigurationError.isEmpty()) {
             if (!error.isEmpty())
                 error.append(QLatin1Char('\n'));
-            error += tr("Deploy configurations:\n")
+            error += tr("Deploy configurations:")
+                    + QLatin1Char('\n')
                     + deployconfigurationError.join(QLatin1String("\n"));
         }
 
diff --git a/src/plugins/qmljseditor/qmljswrapinloader.cpp b/src/plugins/qmljseditor/qmljswrapinloader.cpp
index d7ee184eb1f7fd558b23b11da49fde691ce66df1..8605db7f22f7176232313b5ab505887c515f423c 100644
--- a/src/plugins/qmljseditor/qmljswrapinloader.cpp
+++ b/src/plugins/qmljseditor/qmljswrapinloader.cpp
@@ -132,10 +132,11 @@ public:
         innerIds.remove(id);
 
         QString comment = tr("// TODO: Move position bindings from the component to the Loader.\n"
-                             "//       Check all uses of 'parent' inside the root element of the component.\n");
+                             "//       Check all uses of 'parent' inside the root element of the component.")
+                          + QLatin1Char('\n');
         if (idBinding) {
-            comment += tr("//       Rename all outer uses of the id '%1' to '%2.item'.\n").arg(
-                        id, loaderId);
+            comment += tr("//       Rename all outer uses of the id '%1' to '%2.item'.").arg(
+                        id, loaderId) + QLatin1Char('\n');
         }
 
         // handle inner ids
diff --git a/src/plugins/qmljstools/qmljsplugindumper.cpp b/src/plugins/qmljstools/qmljsplugindumper.cpp
index 33565307673949172743d7151608d88a135d053c..bb8a4a8835baad0e20ff22907f522bbb562f5f93 100644
--- a/src/plugins/qmljstools/qmljsplugindumper.cpp
+++ b/src/plugins/qmljstools/qmljsplugindumper.cpp
@@ -233,8 +233,8 @@ static QString noTypeinfoError(const QString &libraryPath)
 static QString qmldumpErrorMessage(const QString &libraryPath, const QString &error)
 {
     return noTypeinfoError(libraryPath) + QLatin1String("\n\n") +
-            PluginDumper::tr("Automatic type dump of QML module failed.\nErrors:\n%1\n").
-            arg(error);
+            PluginDumper::tr("Automatic type dump of QML module failed.\nErrors:\n%1").
+            arg(error) + QLatin1Char('\n');
 }
 
 static QString qmldumpFailedMessage(const QString &libraryPath, const QString &error)
diff --git a/src/plugins/qnx/blackberryinstallwizardpages.cpp b/src/plugins/qnx/blackberryinstallwizardpages.cpp
index 790a88cdb96afb38d854f7d19724be40591de36d..19c9055815e8ddc428e00590fb2b3faac7564456 100644
--- a/src/plugins/qnx/blackberryinstallwizardpages.cpp
+++ b/src/plugins/qnx/blackberryinstallwizardpages.cpp
@@ -385,9 +385,9 @@ void BlackBerryInstallWizardProcessPage::initializePage()
             }
         }
 
-        m_ui->label->setText(tr("Uninstalling target:\n") + m_data.target);
+        m_ui->label->setText(tr("Uninstalling target:") + QLatin1Char('\n') + m_data.target);
     } else {
-        m_ui->label->setText(tr("Installing target:\n") + m_data.target);
+        m_ui->label->setText(tr("Installing target:") + QLatin1Char('\n') + m_data.target);
     }
     // m_targetProcess could be running
     if (m_targetProcess->state() == QProcess::Running) {
diff --git a/src/plugins/qnx/cascadesimport/importlogconverter.cpp b/src/plugins/qnx/cascadesimport/importlogconverter.cpp
index 896545aa21fbd303da82ffe0af7b8d35637ed506..bbcb2029d3a44a473532e31ae550b8f10c2f14d6 100644
--- a/src/plugins/qnx/cascadesimport/importlogconverter.cpp
+++ b/src/plugins/qnx/cascadesimport/importlogconverter.cpp
@@ -54,10 +54,10 @@ bool ImportLogConverter::convertFile(Core::GeneratedFile &file, QString &errorMe
     Q_UNUSED(errorMessage);
     QString content;
     content += QLatin1String("========================================================\n");
-    content += tr("Generated by cascades importer ver: %1, %2\n")
+    content += tr("Generated by cascades importer ver: %1, %2")
                     .arg(QLatin1String(Qnx::Constants::QNX_BLACKBERRY_CASCADESIMPORTER_VERSION))
                     .arg(QDateTime::currentDateTime().toString(Qt::ISODate));
-    content += QLatin1String("========================================================\n\n");
+    content += QLatin1String("\n========================================================\n\n");
     content += convertedProjectContext().importLog().toString();
     file.setContents(content);
     file.setAttributes(file.attributes() | Core::GeneratedFile::OpenEditorAttribute);
diff --git a/src/plugins/qnx/qnxanalyzesupport.cpp b/src/plugins/qnx/qnxanalyzesupport.cpp
index fe9caf70bf7d56cab802d982291aafd0e48bbff8..027a4b3b37cf533af9a2d92b168ea0b4c40e7a84 100644
--- a/src/plugins/qnx/qnxanalyzesupport.cpp
+++ b/src/plugins/qnx/qnxanalyzesupport.cpp
@@ -65,7 +65,7 @@ void QnxAnalyzeSupport::handleAdapterSetupRequested()
 {
     QTC_ASSERT(state() == Inactive, return);
 
-    showMessage(tr("Preparing remote side...\n"), Utils::NormalMessageFormat);
+    showMessage(tr("Preparing remote side...") + QLatin1Char('\n'), Utils::NormalMessageFormat);
     QnxAbstractRunSupport::handleAdapterSetupRequested();
 }
 
diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp
index 20c238cfdcce16f8ecbf17e20cf60fc0bf2cdd33..df1a7c16e7856d4c044588291d2b9c58fd618030 100644
--- a/src/plugins/qnx/qnxdebugsupport.cpp
+++ b/src/plugins/qnx/qnxdebugsupport.cpp
@@ -73,7 +73,7 @@ void QnxDebugSupport::handleAdapterSetupRequested()
     QTC_ASSERT(state() == Inactive, return);
 
     if (m_engine)
-        m_engine->showMessage(tr("Preparing remote side...\n"), Debugger::AppStuff);
+        m_engine->showMessage(tr("Preparing remote side...") + QLatin1Char('\n'), Debugger::AppStuff);
     QnxAbstractRunSupport::handleAdapterSetupRequested();
 }
 
diff --git a/src/plugins/qnx/qnxdevicetester.cpp b/src/plugins/qnx/qnxdevicetester.cpp
index 634ab3ce4295cdbd9f679e72a0d13e64ce16e1de..723e8cc3505a603a8eafc0758240dec1cc6a9166 100644
--- a/src/plugins/qnx/qnxdevicetester.cpp
+++ b/src/plugins/qnx/qnxdevicetester.cpp
@@ -117,13 +117,13 @@ void QnxDeviceTester::handleProcessFinished(int exitStatus)
     const QString command = m_commandsToTest[m_currentCommandIndex];
     if (exitStatus == QSsh::SshRemoteProcess::NormalExit) {
         if (m_processRunner->processExitCode() == 0) {
-            emit progressMessage(tr("%1 found.\n").arg(command));
+            emit progressMessage(tr("%1 found.").arg(command) + QLatin1Char('\n'));
         } else {
-            emit errorMessage(tr("%1 not found.\n").arg(command));
+            emit errorMessage(tr("%1 not found.").arg(command) + QLatin1Char('\n'));
             m_result = TestFailure;
         }
     } else {
-        emit errorMessage(tr("An error occurred checking for %1.\n").arg(command));
+        emit errorMessage(tr("An error occurred checking for %1.").arg(command)  + QLatin1Char('\n'));
         m_result = TestFailure;
     }
     testNextCommand();
@@ -134,7 +134,7 @@ void QnxDeviceTester::handleConnectionError()
     QTC_ASSERT(m_state == CommandsTest, return);
 
     m_result = TestFailure;
-    emit errorMessage(tr("SSH connection error: %1\n").arg(m_processRunner->lastConnectionErrorString()));
+    emit errorMessage(tr("SSH connection error: %1").arg(m_processRunner->lastConnectionErrorString()) + QLatin1Char('\n'));
     setFinished();
 }
 
diff --git a/src/plugins/remotelinux/linuxdevicetester.cpp b/src/plugins/remotelinux/linuxdevicetester.cpp
index 7b30be03a97b47880a8d51342b3bea017f5bf94d..4a62f1d60280eaf24981639c3f1dd3824d81b0b4 100644
--- a/src/plugins/remotelinux/linuxdevicetester.cpp
+++ b/src/plugins/remotelinux/linuxdevicetester.cpp
@@ -128,7 +128,7 @@ void GenericLinuxDeviceTester::handleConnectionFailure()
 {
     QTC_ASSERT(d->state != Inactive, return);
 
-    emit errorMessage(tr("SSH connection failure: %1\n").arg(d->connection->errorString()));
+    emit errorMessage(tr("SSH connection failure: %1").arg(d->connection->errorString()) + QLatin1Char('\n'));
     setFinished(TestFailure);
 }
 
@@ -139,9 +139,9 @@ void GenericLinuxDeviceTester::handleProcessFinished(int exitStatus)
     if (exitStatus != SshRemoteProcess::NormalExit || d->process->exitCode() != 0) {
         const QByteArray stderrOutput = d->process->readAllStandardError();
         if (!stderrOutput.isEmpty())
-            emit errorMessage(tr("uname failed: %1\n").arg(QString::fromUtf8(stderrOutput)));
+            emit errorMessage(tr("uname failed: %1").arg(QString::fromUtf8(stderrOutput)) + QLatin1Char('\n'));
         else
-            emit errorMessage(tr("uname failed.\n"));
+            emit errorMessage(tr("uname failed.") + QLatin1Char('\n'));
     } else {
         emit progressMessage(QString::fromUtf8(d->process->readAllStandardOutput()));
     }
@@ -158,7 +158,7 @@ void GenericLinuxDeviceTester::handlePortsGatheringError(const QString &message)
 {
     QTC_ASSERT(d->state == TestingPorts, return);
 
-    emit errorMessage(tr("Error gathering ports: %1\n").arg(message));
+    emit errorMessage(tr("Error gathering ports: %1").arg(message) + QLatin1Char('\n'));
     setFinished(TestFailure);
 }
 
@@ -167,14 +167,14 @@ void GenericLinuxDeviceTester::handlePortListReady()
     QTC_ASSERT(d->state == TestingPorts, return);
 
     if (d->portsGatherer.usedPorts().isEmpty()) {
-        emit progressMessage(tr("All specified ports are available.\n"));
+        emit progressMessage(tr("All specified ports are available.") + QLatin1Char('\n'));
     } else {
         QString portList;
         foreach (const int port, d->portsGatherer.usedPorts())
             portList += QString::number(port) + QLatin1String(", ");
         portList.remove(portList.count() - 2, 2);
-        emit errorMessage(tr("The following specified ports are currently in use: %1\n")
-            .arg(portList));
+        emit errorMessage(tr("The following specified ports are currently in use: %1")
+            .arg(portList) + QLatin1Char('\n'));
     }
     setFinished(TestSuccess);
 }
diff --git a/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp b/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp
index 48680b861fe17372b9674832a5faefd783b2822d..508e9c0c21d8a31886fe32412bda2b6be21ebfbc 100644
--- a/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp
+++ b/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp
@@ -115,7 +115,7 @@ void RemoteLinuxAnalyzeSupport::handleRemoteSetupRequested()
 {
     QTC_ASSERT(state() == Inactive, return);
 
-    showMessage(tr("Checking available ports...\n"), Utils::NormalMessageFormat);
+    showMessage(tr("Checking available ports...") + QLatin1Char('\n'), Utils::NormalMessageFormat);
     AbstractRemoteLinuxRunSupport::handleRemoteSetupRequested();
 }
 
diff --git a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
index 030df3661efadab9dcfe15b75721aef190ebf436..ab1c0d4150af27564cbdd03f371f6a2c5ba585e6 100644
--- a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
+++ b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp
@@ -141,7 +141,7 @@ void LinuxDeviceDebugSupport::handleRemoteSetupRequested()
 {
     QTC_ASSERT(state() == Inactive, return);
 
-    showMessage(tr("Checking available ports...\n"), LogStatus);
+    showMessage(tr("Checking available ports...") + QLatin1Char('\n'), LogStatus);
     AbstractRemoteLinuxRunSupport::handleRemoteSetupRequested();
 }
 
diff --git a/src/plugins/valgrind/callgrindengine.cpp b/src/plugins/valgrind/callgrindengine.cpp
index c8e6099c25cb606896b64e034d538349509cae23..574f286370aa0d596da049ef043fec58d75f9dd9 100644
--- a/src/plugins/valgrind/callgrindengine.cpp
+++ b/src/plugins/valgrind/callgrindengine.cpp
@@ -100,7 +100,7 @@ Valgrind::ValgrindRunner * CallgrindRunControl::runner()
 
 bool CallgrindRunControl::startEngine()
 {
-    appendMessage(tr("Profiling %1\n").arg(executable()), Utils::NormalMessageFormat);
+    appendMessage(tr("Profiling %1").arg(executable()) + QLatin1Char('\n'), Utils::NormalMessageFormat);
     return ValgrindRunControl::startEngine();
 }
 
diff --git a/src/plugins/valgrind/memcheckengine.cpp b/src/plugins/valgrind/memcheckengine.cpp
index 232b01e72fe0ace08f093a71c14740d650c24907..b416dddc0eecc7ed8e7183db96d70234fa55d8da 100644
--- a/src/plugins/valgrind/memcheckengine.cpp
+++ b/src/plugins/valgrind/memcheckengine.cpp
@@ -80,7 +80,7 @@ bool MemcheckRunControl::startEngine()
     // Clear about-to-be-outdated tasks.
     TaskHub::clearTasks(Analyzer::Constants::ANALYZERTASK_ID);
 
-    appendMessage(tr("Analyzing memory of %1\n").arg(executable()),
+    appendMessage(tr("Analyzing memory of %1").arg(executable()) + QLatin1Char('\n'),
                         Utils::NormalMessageFormat);
     return ValgrindRunControl::startEngine();
 }
diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp
index 337fee3a09870ba486cfa5a8b11356f42a9decf1..7f5cb77edf0f0ad10eef3752ebf30a2688fff11d 100644
--- a/src/plugins/valgrind/valgrindengine.cpp
+++ b/src/plugins/valgrind/valgrindengine.cpp
@@ -173,7 +173,7 @@ void ValgrindRunControl::handleProgressFinished()
 
 void ValgrindRunControl::runnerFinished()
 {
-    appendMessage(tr("Analyzing finished.\n"), NormalMessageFormat);
+    appendMessage(tr("Analyzing finished.") + QLatin1Char('\n'), NormalMessageFormat);
     emit finished();
 
     m_progress->reportFinished();
@@ -200,11 +200,11 @@ void ValgrindRunControl::receiveProcessError(const QString &message, QProcess::P
     if (error == QProcess::FailedToStart) {
         const QString valgrind = m_settings->valgrindExecutable();
         if (!valgrind.isEmpty())
-            appendMessage(tr("Error: \"%1\" could not be started: %2\n").arg(valgrind).arg(message), ErrorMessageFormat);
+            appendMessage(tr("Error: \"%1\" could not be started: %2").arg(valgrind, message) + QLatin1Char('\n'), ErrorMessageFormat);
         else
-            appendMessage(tr("Error: no Valgrind executable set.\n"), ErrorMessageFormat);
+            appendMessage(tr("Error: no Valgrind executable set.") + QLatin1Char('\n'), ErrorMessageFormat);
     } else if (m_isStopping && error == QProcess::Crashed) { // process gets killed on stop
-        appendMessage(tr("Process terminated.\n"), ErrorMessageFormat);
+        appendMessage(tr("Process terminated.") + QLatin1Char('\n'), ErrorMessageFormat);
     } else {
         appendMessage(QString::fromLatin1("** %1 **\n").arg(message), ErrorMessageFormat);
     }
diff --git a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp
index 200271a325ca49719c8574e42c17bd6af03277a5..9fbfe75548b43acc92d49265466deb1d61290265 100644
--- a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp
+++ b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp
@@ -429,9 +429,9 @@ QString VcsBaseOutputWindow::msgExecutionLogEntry(const QString &workingDir,
     const QString args = formatArguments(arguments);
     const QString nativeExecutable = QDir::toNativeSeparators(executable);
     if (workingDir.isEmpty())
-        return tr("Executing: %1 %2\n").arg(nativeExecutable, args);
-    return tr("Executing in %1: %2 %3\n").
-            arg(QDir::toNativeSeparators(workingDir), nativeExecutable, args);
+        return tr("Executing: %1 %2").arg(nativeExecutable, args) + QLatin1Char('\n');
+    return tr("Executing in %1: %2 %3").
+            arg(QDir::toNativeSeparators(workingDir), nativeExecutable, args) + QLatin1Char('\n');
 }
 
 void VcsBaseOutputWindow::appendCommand(const QString &text)