From f37d9b55aa5e62933a2a1b0e978055364a8940a4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 14 Feb 2011 16:36:05 +0100 Subject: [PATCH] L10n: First round of tr()-Fixes for 2.2 --- src/plugins/debugger/cdb/cdboptions.cpp | 2 +- src/plugins/debugger/cdb/cdboptionspage.cpp | 2 +- src/plugins/debugger/debuggerplugin.cpp | 2 +- src/plugins/debugger/gdb/gdbengine.cpp | 2 +- src/plugins/debugger/qml/qmlengine.cpp | 5 +- src/plugins/macros/savedialog.ui | 2 +- .../projectexplorersettingspage.ui | 2 +- .../navigator/navigatortreemodel.cpp | 20 +++++--- .../qmlprojectapplicationwizard.cpp | 14 ++---- .../qt-s60/codaruncontrol.cpp | 2 +- .../qt-s60/s60certificatedetailsdialog.ui | 2 +- .../qt-s60/s60createpackagestep.cpp | 47 ++++++++----------- .../qt-s60/s60deployconfigurationwidget.cpp | 4 +- .../qt-s60/s60deploystep.cpp | 15 +++--- .../qt4projectmanager/qt4projectmanager.cpp | 2 +- .../texteditor/behaviorsettingspage.ui | 18 +++---- 16 files changed, 64 insertions(+), 77 deletions(-) diff --git a/src/plugins/debugger/cdb/cdboptions.cpp b/src/plugins/debugger/cdb/cdboptions.cpp index 25865f9f634..2481f629ae6 100644 --- a/src/plugins/debugger/cdb/cdboptions.cpp +++ b/src/plugins/debugger/cdb/cdboptions.cpp @@ -82,7 +82,7 @@ static inline QString msgAutoDetectFail(bool is64Bit, const QString &executable, const QString &extLib) { return QCoreApplication::translate("Debugger::Cdb::CdbOptions", - "Auto-detection of the new CDB debugging engine (%1bit) failed:\n" + "Auto-detection of the CDB debugging engine (%1bit) failed:\n" "Debugger executable: %2\n" "Extension library : %3 not present.\n").arg(is64Bit ? 64 : 32). arg(QDir::toNativeSeparators(executable), QDir::toNativeSeparators(extLib)); diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp index 86436a5ff21..3f66358e94c 100644 --- a/src/plugins/debugger/cdb/cdboptionspage.cpp +++ b/src/plugins/debugger/cdb/cdboptionspage.cpp @@ -353,7 +353,7 @@ bool CdbOptionsPageWidget::checkInstallation(const QString &executable, // 2) Check on extension library const QFileInfo extensionFi(CdbEngine::extensionLibraryName(is64Bit)); if (extensionFi.isFile()) { - message->append(tr("Extension library: %1, built: %3.\n"). + message->append(tr("Extension library: %1, built: %2.\n"). arg(QDir::toNativeSeparators(extensionFi.absoluteFilePath())). arg(extensionFi.lastModified().toString(Qt::SystemLocaleShortDate))); checkedItems++; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 3d627ad608c..e8669203c9c 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1356,7 +1356,7 @@ bool DebuggerPluginPrivate::parseArgument(QStringList::const_iterator &it, sp.executable = it->section('@', 1, 1); if (sp.remoteChannel.isEmpty()) { *errorMessage = DebuggerPlugin::tr("The parameter '%1' of option " - "'%2' does not match the pattern @@.") + "'%2' does not match the pattern @@.") .arg(*it, option); return false; } diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 7ff42ed1aa5..9746f6c7884 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4256,7 +4256,7 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, showStatusMessage(_("%1 cannot find python").arg(nativeGdb)); const QString msg = tr("The gdb installed at %1 cannot " "find a valid python installation in its %2 subdirectory.\n" - "You may set the PYTHONPATH to your installation.") + "You may set the environment variable PYTHONPATH to point to your installation.") .arg(nativeGdb).arg(winPythonVersion); handleAdapterStartFailed(msg, settingsIdHint); return false; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index b69f8df01f1..9dbefbcf08b 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -695,9 +695,8 @@ void QmlEngine::messageReceived(const QByteArray &message) QList locals; stream >> stackFrames >> watches >> locals; - logString += tr(" (%1 stack frames)").arg(stackFrames.size()); - logString += tr(" (%1 watches)").arg(watches.size()); - logString += tr(" (%1 loacals)").arg(locals.size()); + logString += QString::fromLatin1(" (%1 stack frames) (%2 watches) (%3 locals)"). + arg(stackFrames.size()).arg(watches.size()).arg(locals.size()); for (int i = 0; i != stackFrames.size(); ++i) stackFrames[i].level = i + 1; diff --git a/src/plugins/macros/savedialog.ui b/src/plugins/macros/savedialog.ui index 1695cfe097f..4954b1c98ac 100644 --- a/src/plugins/macros/savedialog.ui +++ b/src/plugins/macros/savedialog.ui @@ -11,7 +11,7 @@ - Save macro + Save Macro diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui index 41dac8a3ba8..6bca993cd36 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.ui +++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui @@ -78,7 +78,7 @@ - Show run output on running + Pop up application output pane on running diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 5f1bcac7d29..1e838ab3417 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -180,6 +180,11 @@ bool NavigatorTreeModel::dropMimeData(const QMimeData *data, return false; // don't let the view do drag&drop on its own } +static inline QString msgUnknownItem(const QString &t) +{ + return NavigatorTreeModel::tr("Unknown item: %1").arg(t); +} + NavigatorTreeModel::ItemRow NavigatorTreeModel::createItemRow(const ModelNode &node) { Q_ASSERT(node.isValid()); @@ -193,11 +198,11 @@ NavigatorTreeModel::ItemRow NavigatorTreeModel::createItemRow(const ModelNode &n idItem->setDropEnabled(dropEnabled); idItem->setEditable(true); idItem->setData(hash, NavigatorRole); - if (node.metaInfo().isValid()) + if (node.metaInfo().isValid()) { idItem->setToolTip(node.type()); - else - idItem->setToolTip(tr("unkown item: ") + node.type()); - + } else { + idItem->setToolTip(msgUnknownItem(node.type())); + } # ifdef _LOCK_ITEMS_ QStandardItem *lockItem = new QStandardItem; lockItem->setDragEnabled(true); @@ -241,10 +246,11 @@ void NavigatorTreeModel::updateItemRow(const ModelNode &node, ItemRow items) items.idItem->setText(node.id()); items.visibilityItem->setCheckState(node.auxiliaryData("invisible").toBool() ? Qt::Unchecked : Qt::Checked); - if (node.metaInfo().isValid()) + if (node.metaInfo().isValid()) { items.idItem->setToolTip(node.type()); - else - items.idItem->setToolTip(tr("unkown item: ") + node.type()); + } else { + items.idItem->setToolTip(msgUnknownItem(node.type())); + } blockItemChangedSignal(blockSignal); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp index 20891aea8b5..69cc58442bd 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp @@ -145,19 +145,14 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w { QTextStream out(&projectContents); - out - //: Comment added to generated .qmlproject file - << "/* " - << tr("File generated by QtCreator, version %1", - "qmlproject Template").arg(Core::Constants::IDE_VERSION_LONG) << " */" << endl + out << "/* File generated by Qt Creator, version " << Core::Constants::IDE_VERSION_LONG << " */" << endl << endl << "import QmlProject 1.1" << endl << endl << "Project {" << endl - //: Comment added to generated .qmlproject file - << " mainFile: \"" << QDir(projectPath).relativeFilePath(mainFileName) << "\"" << endl + << " mainFile: \"" << QDir(projectPath).relativeFilePath(mainFileName) << '"' << endl << endl - << " /* " << tr("Include .qml, .js, and image files from current directory and subdirectories", "qmlproject Template") << " */" << endl + << " /* Include .qml, .js, and image files from current directory and subdirectories */" << endl << " QmlFiles {" << endl << " directory: \".\"" << endl << " }" << endl @@ -167,8 +162,7 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w << " ImageFiles {" << endl << " directory: \".\"" << endl << " }" << endl - //: Comment added to generated .qmlproject file - << " /* " << tr("List of plugin directories passed to QML runtime", "qmlproject Template") << " */" << endl + << " /* List of plugin directories passed to QML runtime */" << endl << " // importPaths: [ \"../exampleplugin\" ]" << endl << "}" << endl; } diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp index 469bb90f634..6d88b5bca4d 100644 --- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp @@ -121,7 +121,7 @@ bool CodaRunControl::setupLauncher() bool ok = m_codaDevice && m_codaDevice->device()->isOpen(); if (!ok) { - appendMessage(tr("Couldn't open serial device: %1").arg(m_codaDevice->device()->errorString()), ErrorMessageFormat); + appendMessage(tr("Could not open serial device: %1").arg(m_codaDevice->device()->errorString()), ErrorMessageFormat); return false; } connect(SymbianUtils::SymbianDeviceManager::instance(), SIGNAL(deviceRemoved(const SymbianUtils::SymbianDevice)), diff --git a/src/plugins/qt4projectmanager/qt-s60/s60certificatedetailsdialog.ui b/src/plugins/qt4projectmanager/qt-s60/s60certificatedetailsdialog.ui index fbe2c75958e..7d5c276edc2 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60certificatedetailsdialog.ui +++ b/src/plugins/qt4projectmanager/qt-s60/s60certificatedetailsdialog.ui @@ -11,7 +11,7 @@ - Certificate's details + Details of Certificate diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp index 963946c16b3..445d2c96292 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp @@ -247,29 +247,22 @@ void S60CreatePackageStep::handleWarnAboutPatching() connect(m_patchWarningDialog, SIGNAL(finished(int)), this, SLOT(packageWarningDialogDone())); QString title; - QString text; - const QString &url = QString::fromLatin1("qthelp://com.nokia.qtcreator.%1%2%3/doc/creator-run-settings.html#capabilities-and-signing"). + QString changedText; + const QString url = QString::fromLatin1("qthelp://com.nokia.qtcreator.%1%2%3/doc/creator-run-settings.html#capabilities-and-signing"). arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR).arg(IDE_VERSION_RELEASE); if (m_packageChanges.count() == 1) { - title = tr("A Package was modified"); - text = tr("

Qt modified your package %1.

" - "

These changes were not part of your build system but are required to " - "make sure the self-signed package can be installed successfully on a " - "device.

" - "

Check the Build Issues for more details on the modifications made.

" - "

Please see " - "the documentation for other signing options. These will prevent " - "this patching from happening.

").arg(m_packageChanges.at(0).first, url); + title = tr("Package Modified"); + changedText = tr("

Qt modified your package %1.

").arg(m_packageChanges.at(0).first); } else { - title = tr("Several Packages were modified"); - text = tr("

Qt modified some of your packages.

" - "

These changes were not part of your build system but are required to " - "make sure the self-signed packages can be installed successfully.

" - "

Check the Build Issues for more details on the modifications made.

" - "

Please see " - "the documentation for other signing options. These will prevent " - "this patching from happening.

").arg(url); + title = tr("Packages Modified"); + changedText = tr("

Qt modified some of your packages.

"); } + const QString text = + tr("%1

These changes were not part of your build system but are required to " + "make sure the self-signed package can be installed successfully on a device.

" + "

Check the Build Issues pane for more details on the modifications made.

" + "

Please see the documentation for other signing options which " + "remove the need for this patching.

").arg(changedText, url); m_patchWarningDialog->setWindowTitle(title); m_patchWarningDialog->setText(text); m_patchWarningDialog->setCheckBoxText(tr("Ignore patching for this packaging step.")); @@ -457,18 +450,16 @@ bool S60CreatePackageStep::validateCustomSigningResources(const QStringList &cap QString errorString; if (customSignaturePath().isEmpty()) - errorString = tr("Certificate file has not heen defined. " - "Please define certificate file in the project's options."); + errorString = tr("No certificate file specified. Please specify one in the project settings."); else if (!QFileInfo(customSignaturePath()).exists()) errorString = tr("Certificate file \"%1\" does not exist. " - "Please define certificate file in the project's options.").arg(customSignaturePath()); + "Please specify an existing certificate file in the project settings.").arg(customSignaturePath()); if (customKeyPath().isEmpty()) - errorString = tr("Key file has not heen defined. " - "Please define certificate file in the project's options."); + errorString = tr("No key file specified. Please specify one in the project settings."); else if (!QFileInfo(customKeyPath()).exists()) errorString = tr("Key file \"%1\" does not exist. " - "Please define certificate file in the project's options.").arg(customKeyPath()); + "Please specify an existing key file in the project settings.").arg(customKeyPath()); if (!errorString.isEmpty()) { reportPackageStepIssue(errorString, true); @@ -490,7 +481,7 @@ bool S60CreatePackageStep::validateCustomSigningResources(const QStringList &cap QStringList unsupportedCaps; if (certInfoPtr.data()->compareCapabilities(capabilitiesInPro, unsupportedCaps)) { if (!unsupportedCaps.isEmpty()) { - QString message = tr("The created package will not install on a " + QString message = tr("The package created will not install on a " "device as some of the defined capabilities " "are not supported by the certificate: %1") .arg(unsupportedCaps.join(" ")); @@ -932,11 +923,11 @@ QString S60CreatePackageStepConfigWidget::summaryText() const case S60CreatePackageStep::SignCustom: if (!m_signStep->customSignaturePath().isEmpty() && !m_signStep->customKeyPath().isEmpty()) - text = tr("signed with \"%1\" certificate and \"%2\" key file") + text = tr("signed with the certificate \"%1\" using the key \"%2\"") .arg(QFileInfo(m_signStep->customSignaturePath()).fileName(), QFileInfo(m_signStep->customKeyPath()).fileName()); else - text = tr("signed with a certificate and a key that need to be defined"); + text = tr("signed with a certificate and a key that need to be specified"); break; case S60CreatePackageStep::NotSigned: text = tr("not signed"); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp index 8d597249656..6a6b8293320 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp @@ -156,7 +156,7 @@ void S60DeployConfigurationWidget::init(ProjectExplorer::DeployConfiguration *dc debugClientHBoxLayout->addWidget(createCommunicationChannel()); debugClientHBoxLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); - QGroupBox *debugClientGroupBox = new QGroupBox(tr("Debug Client")); + QGroupBox *debugClientGroupBox = new QGroupBox(tr("Device Agent")); debugClientGroupBox->setLayout(debugClientHBoxLayout); bool usingTrk = m_deployConfiguration->communicationChannel() == S60DeployConfiguration::CommunicationTrkSerialConnection; @@ -467,7 +467,7 @@ void S60DeployConfigurationWidget::updateDeviceInfo() // Wait for either timeout or results m_deviceInfoButton->setEnabled(false); } else - setDeviceInfoLabel(tr("Currently there is no information about device for CODA connection type."), true); + setDeviceInfoLabel(tr("Information about the device is not available when using CODA."), true); } } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp index a0d34534295..a774965522a 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp @@ -390,7 +390,7 @@ void S60DeployStep::startDeployment() QString deviceError = tr("No such port"); if (m_codaDevice) deviceError = m_codaDevice->device()->errorString(); - reportError(tr("Couldn't open serial device: %1").arg(deviceError)); + reportError(tr("Could not open serial device: %1").arg(deviceError)); stop(); return; } @@ -541,20 +541,21 @@ void S60DeployStep::startInstalling() void S60DeployStep::handleFileSystemOpen(const Coda::CodaCommandResult &result) { if (result.type != Coda::CodaCommandResult::SuccessReply) { - reportError(tr("Open remote file failed: %1").arg(result.errorString())); + reportError(tr("Could not open remote file: %1").arg(result.errorString())); return; } if (result.values.size() < 1 || result.values.at(0).data().isEmpty()) { - reportError(tr("Internal error: No filehandle obtained")); + reportError(QLatin1String("Internal error: No filehandle obtained")); return; } m_remoteFileHandle = result.values.at(0).data(); - m_putFile.reset(new QFile(m_signedPackages.at(m_currentFileIndex))); + const QString fileName = m_signedPackages.at(m_currentFileIndex); + m_putFile.reset(new QFile(fileName)); if (!m_putFile->open(QIODevice::ReadOnly)) { // Should not fail, was checked before - reportError(tr("Open local file failed: %1").arg(m_putFile->errorString())); + reportError(tr("Could not open local file %1: %2").arg(fileName, m_putFile->errorString())); return; } putSendNextChunk(); @@ -627,7 +628,7 @@ void S60DeployStep::handleFileSystemClose(const Coda::CodaCommandResult &result) else initFileSending(); } else { - reportError(tr("File close failed: %1").arg(result.toString())); + reportError(tr("Failed to close the remote file: %1").arg(result.toString())); } } @@ -794,7 +795,7 @@ void S60DeployStep::updateProgress(int progress) //appendMessage(tr("Copy percentage: %1%").arg((m_currentFileIndex*100 + progress) /m_signedPackages.count()), false); int copyProgress = ((m_currentFileIndex*100 + progress) /m_signedPackages.count()); int entireProgress = copyProgress * 0.8; //the copy progress is just 80% of the whole deployment progress - m_futureInterface->setProgressValueAndText(entireProgress, tr("Copy percentage: %1%").arg(copyProgress)); + m_futureInterface->setProgressValueAndText(entireProgress, tr("Copy progress: %1%").arg(copyProgress)); } // #pragma mark -- S60DeployStepWidget diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp index b6b7274c5d8..4ad771876b8 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp @@ -200,7 +200,7 @@ static void updateBoilerPlateCodeFiles(const AbstractMobileApp *app, const QStri const QList updates = app->fileUpdates(proFile); if (!updates.empty()) { - const QString title = Qt4Manager::tr("Update of generated files"); + const QString title = Qt4Manager::tr("Update of Generated Files"); QStringList fileNames; foreach (const AbstractGeneratedFileInfo &info, updates) fileNames.append(QDir::toNativeSeparators(info.fileInfo.fileName())); diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui index 102ce080b88..e14f95dfe78 100644 --- a/src/plugins/texteditor/behaviorsettingspage.ui +++ b/src/plugins/texteditor/behaviorsettingspage.ui @@ -494,17 +494,13 @@ Influences the indentation of continuation lines. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">How text editors should deal with UTF-8 Byte Order Marks. The options are:</p> -<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Add If Encoding Is UTF-8:</span> always add a BOM when saving a file in UTF-8 encoding. Note that this will not work if the encoding is <span style=" font-style:italic;">System</span>, as Qt Creator does not know what it actually is.</li> -<li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Keep If Already Present: </span>save the file with a BOM if it already had one when it was loaded.</li> -<li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Always Delete:</span> never write an UTF-8 BOM, possibly deleting a pre-existing one.</li></ul> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note that UTF-8 BOMs are uncommon and treated incorrectly by some editors, so it usually makes little sense to add any.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This setting does <span style=" font-weight:600;">not</span> influence the use of UTF-16 and UTF-32 BOMs.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> + <html><head/><body> +<p>How text editors should deal with UTF-8 Byte Order Marks. The options are:</p> +<ul ><li><i>Add If Encoding Is UTF-8:</i> always add a BOM when saving a file in UTF-8 encoding. Note that this will not work if the encoding is <i>System</i>, as Qt Creator does not know what it actually is.</li> +<li><i>Keep If Already Present: </i>save the file with a BOM if it already had one when it was loaded.</li> +<li><i>Always Delete:</i> never write an UTF-8 BOM, possibly deleting a pre-existing one.</li></ul> +<p>Note that UTF-8 BOMs are uncommon and treated incorrectly by some editors, so it usually makes little sense to add any.</p> +<p>This setting does <b>not</b> influence the use of UTF-16 and UTF-32 BOMs.</p></body></html>