From b1c48a27c0ca784cbaa9f27c72563d15aaddc0cd Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 1 Nov 2022 16:53:24 +0100 Subject: [PATCH 01/49] QmlDesigner: Move effect wizard to qmldesigner/studio_templates This is the folder QDS looks for the wizards. Change-Id: Id69f50f48eeb4668dff2840a36149408e0709a06 Reviewed-by: Reviewed-by: Thomas Hartmann --- .../studio_templates}/files/effect/file.qep | 0 .../studio_templates}/files/effect/wizard.json | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) rename share/qtcreator/{templates/wizards => qmldesigner/studio_templates}/files/effect/file.qep (100%) rename share/qtcreator/{templates/wizards => qmldesigner/studio_templates}/files/effect/wizard.json (90%) diff --git a/share/qtcreator/templates/wizards/files/effect/file.qep b/share/qtcreator/qmldesigner/studio_templates/files/effect/file.qep similarity index 100% rename from share/qtcreator/templates/wizards/files/effect/file.qep rename to share/qtcreator/qmldesigner/studio_templates/files/effect/file.qep diff --git a/share/qtcreator/templates/wizards/files/effect/wizard.json b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json similarity index 90% rename from share/qtcreator/templates/wizards/files/effect/wizard.json rename to share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json index d966f097eda..82e80e65a90 100644 --- a/share/qtcreator/templates/wizards/files/effect/wizard.json +++ b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json @@ -7,8 +7,9 @@ "trDisplayName": "Effect File (Effect Maker)", "trDisplayCategory": "Effects", "iconText": "qep", - "platformIndependent": true, + "platformIndependent": false, "enabled": true, + "featuresRequired": [ "QmlDesigner.Wizards.Enterprise" ], "options": { "key": "DefaultSuffix", "value": "qep" }, From 73cdb6239dd25305603e2ce4628f354e998398e3 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 Nov 2022 13:39:04 +0100 Subject: [PATCH 02/49] QmlDesigner: Show Effect wizard only in enterprise version Change-Id: If0c99beec083514ed5c531bb7a67cd7a392c3108 Reviewed-by: Tim Jenssen --- .../studio_templates/files/effect/wizard.json | 4 +-- src/plugins/qmldesigner/qmldesignerplugin.cpp | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json index 82e80e65a90..3837321b1ae 100644 --- a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json +++ b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json @@ -7,8 +7,8 @@ "trDisplayName": "Effect File (Effect Maker)", "trDisplayCategory": "Effects", "iconText": "qep", - "platformIndependent": false, - "enabled": true, + "platformIndependent": true, + "enabled": "%{JS: value('Features').indexOf('QmlDesigner.Wizards.Enterprise') >= 0}", "featuresRequired": [ "QmlDesigner.Wizards.Enterprise" ], "options": { "key": "DefaultSuffix", "value": "qep" }, diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index d8c71fcd056..5e10ab394b1 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -24,6 +24,7 @@ ****************************************************************************/ #include "qmldesignerplugin.h" +#include "coreplugin/iwizardfactory.h" #include "designmodecontext.h" #include "designmodewidget.h" #include "dynamiclicensecheck.h" @@ -61,8 +62,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -74,19 +77,19 @@ #include #include +#include #include #include -#include #include -#include +#include #include -#include #include #include #include +#include #include -#include +#include #include "nanotrace/nanotrace.h" #include @@ -99,6 +102,17 @@ namespace QmlDesigner { namespace Internal { +class EnterpriseFeatureProvider : public Core::IFeatureProvider +{ +public: + QSet availableFeatures(Utils::Id id) const override + { + return {"QmlDesigner.Wizards.Enterprise"}; + } + QSet availablePlatforms() const override { return {}; } + QString displayNameForPlatform(Utils::Id id) const override { return {}; } +}; + QString normalizeIdentifier(const QString &string) { if (string.isEmpty()) @@ -283,6 +297,10 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e #endif //TODO Move registering those types out of the property editor, since they are used also in the states editor Quick2PropertyEditorView::registerQmlTypes(); + + if (QmlDesigner::checkLicense() == QmlDesigner::FoundLicense::enterprise) + Core::IWizardFactory::registerFeatureProvider(new EnterpriseFeatureProvider); + return true; } From 7b9303007a9f2aa9f31485f9802dd8a6aa2668ae Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 Nov 2022 23:37:16 +0100 Subject: [PATCH 03/49] QmlDesigner: Avoid error messages when adding effect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Removing the summary page * Adding DoNotOpenFile option By default, the wizard expects to open a file. Setting DoNotOpenFile to true does suppress this. Task-number: QDS-8151 Change-Id: I62264733788dbbe1b017beaa428356548a1a3692 Reviewed-by: Qt CI Bot Reviewed-by: Tomi Korpipää Reviewed-by: Tim Jenssen --- .../studio_templates/files/effect/wizard.json | 10 ++++------ src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json index 3837321b1ae..d922fb94a5d 100644 --- a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json +++ b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json @@ -11,7 +11,10 @@ "enabled": "%{JS: value('Features').indexOf('QmlDesigner.Wizards.Enterprise') >= 0}", "featuresRequired": [ "QmlDesigner.Wizards.Enterprise" ], - "options": { "key": "DefaultSuffix", "value": "qep" }, + "options": [ + { "key": "DefaultSuffix", "value": "qep" }, + { "key": "DoNotOpenFile", "value": "true" } + ], "pages" : [ @@ -19,11 +22,6 @@ "trDisplayName": "Location", "trShortTitle": "Location", "typeId": "File" - }, - { - "trDisplayName": "Project Management", - "trShortTitle": "Summary", - "typeId": "Summary" } ], "generators" : diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp index 49926602131..99d85b904e7 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp @@ -442,7 +442,7 @@ QString JsonWizard::evaluate(const QVariant &v) const void JsonWizard::openFiles(const JsonWizard::GeneratorFiles &files) { QString errorMessage; - bool openedSomething = false; + bool openedSomething = stringValue("DoNotOpenFile") == "true"; for (const JsonWizard::GeneratorFile &f : files) { const Core::GeneratedFile &file = f.file; if (!QFileInfo::exists(file.path())) { From 318a2aff2f21b03ba7564055f168095101269cb8 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 3 Nov 2022 00:23:06 +0100 Subject: [PATCH 04/49] QmlDesigner: Enforce rules for QML component names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since a QML component is generated from the effect, the same rules for names should apply. Task-number: QDS-8152 Change-Id: I607c2771401fec2259b1e1aac9a37707aa1328b7 Reviewed-by: Reviewed-by: Tomi Korpipää Reviewed-by: Tim Jenssen --- .../studio_templates/files/effect/wizard.json | 41 +++++++++++++++---- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json index d922fb94a5d..3dedbb5080d 100644 --- a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json +++ b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json @@ -12,18 +12,43 @@ "featuresRequired": [ "QmlDesigner.Wizards.Enterprise" ], "options": [ - { "key": "DefaultSuffix", "value": "qep" }, + { "key": "EffectFile", "value": "%{Class}.qep" }, { "key": "DoNotOpenFile", "value": "true" } ], "pages" : [ - { - "trDisplayName": "Location", - "trShortTitle": "Location", - "typeId": "File" - } - ], + { + "trDisplayName": "Define Class", + "trShortTitle": "Details", + "typeId": "Fields", + "data" : + [ + { + "name": "Class", + "trDisplayName": "Effect name:", + "mandatory": true, + "type": "LineEdit", + "data": { + "validator": "(?:[A-Z_][a-zA-Z_0-9]*|)", + "fixup": "%{JS: '%{INPUT}'.charAt(0).toUpperCase() + '%{INPUT}'.slice(1) }" + } + }, + { + "name": "TargetPath", + "type": "PathChooser", + "trDisplayName": "Path:", + "mandatory": true, + "data": + { + "kind": "existingDirectory", + "basePath": "%{InitialPath}", + "path": "%{InitialPath}" + } + } + ] + } +], "generators" : [ { @@ -31,7 +56,7 @@ "data": { "source": "file.qep", - "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", + "target": "%{TargetPath}/%{EffectFile}", "openInEditor": false } } From 3726caa5de1d5c250028ef6a3eaf07a5e05cc57c Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 3 Nov 2022 17:19:48 +0100 Subject: [PATCH 05/49] QmlDesigner: Add option for layer.effect when creating effects Task-number: QDS-8162 Change-Id: I9b98d4ae264f4b6a703eb5bfdeb6e1fb546e5a37 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../designercore/model/qmlitemnode.cpp | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index 09a94719f48..e9055c19338 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -39,6 +39,8 @@ #include "modelmerger.h" #include "rewritingexception.h" +#include + #include #include #include @@ -181,12 +183,22 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromFont(AbstractView *view, return newQmlItemNode; } +static bool useLayerEffect() +{ + QSettings *settings = Core::ICore::settings(); + const QString layerEffectEntry = "QML/Designer/UseLayerEffect"; + + return settings->value(layerEffectEntry, true).toBool(); +} + QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view, const QmlItemNode &parentNode, const QString &effectName) { QmlItemNode newQmlItemNode; + const bool layerEffect = useLayerEffect(); + QmlDesigner::Import import = Import::createLibraryImport("Effects." + effectName, "1.0"); try { if (!view->model()->hasImport(import, true, true)) @@ -197,11 +209,17 @@ QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view, TypeName type(effectName.toUtf8()); newQmlItemNode = QmlItemNode(view->createModelNode(type, 1, 0)); - NodeAbstractProperty parentProperty = parentNode.defaultNodeAbstractProperty(); + NodeAbstractProperty parentProperty = layerEffect + ? parentNode.nodeAbstractProperty("layer.effect") + : parentNode.defaultNodeAbstractProperty(); parentProperty.reparentHere(newQmlItemNode); - newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent"); - newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent"); + if (!layerEffect) { + newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent"); + newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent"); + } else { + parentNode.modelNode().variantProperty("layer.enabled").setValue(true); + } QTC_ASSERT(newQmlItemNode.isValid(), return QmlItemNode()); From f4723ae8856cc011d2026032a85ab7e7c0f0fdd2 Mon Sep 17 00:00:00 2001 From: Amr Essam Date: Fri, 4 Nov 2022 11:24:41 +0200 Subject: [PATCH 06/49] QmlDesigner: Show proper warning if .qep file has no component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When dragging an empty effect, a messagebox shows with an option to open QQEM Task-number: QDS-8155 Change-Id: I2afbf7ffb9cb58243f3635fe3a7aee999ab68713 Reviewed-by: Tim Jenssen Reviewed-by: Qt CI Bot Reviewed-by: Tomi Korpipää Reviewed-by: Thomas Hartmann --- .../assetslibrary/assetslibrarymodel.cpp | 7 +++ .../assetslibrary/assetslibrarymodel.h | 2 + .../assetslibrary/assetslibrarywidget.cpp | 43 +-------------- .../assetslibrary/assetslibrarywidget.h | 3 -- .../componentcore/modelnodeoperations.cpp | 52 ++++++++++++++++++- .../componentcore/modelnodeoperations.h | 1 + .../components/formeditor/dragtool.cpp | 29 ++++++++++- 7 files changed, 89 insertions(+), 48 deletions(-) diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.cpp index 3b013cc2d11..c52eaa42a2b 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.cpp @@ -86,6 +86,13 @@ bool AssetsLibraryModel::loadExpandedState(const QString &assetPath) return m_expandedStateHash.value(assetPath, true); } +bool AssetsLibraryModel::isEffectQmlExist(const QString &effectName) +{ + Utils::FilePath effectsResDir = ModelNodeOperations::getEffectsDirectory(); + Utils::FilePath qmlPath = effectsResDir.resolvePath(effectName + "/" + effectName + ".qml"); + return qmlPath.exists(); +} + AssetsLibraryModel::DirExpandState AssetsLibraryModel::getAllExpandedState() const { const auto keys = m_expandedStateHash.keys(); diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.h index 4e846f93af9..794b7fb127d 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarymodel.h @@ -74,6 +74,8 @@ public: static void saveExpandedState(bool expanded, const QString &assetPath); static bool loadExpandedState(const QString &assetPath); + static bool isEffectQmlExist(const QString &effectName); + enum class DirExpandState { SomeExpanded, AllExpanded, diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp index 5d456175229..2d967eeb4c4 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp @@ -45,7 +45,6 @@ #include #include "utils/environment.h" #include "utils/filepath.h" -#include "utils/qtcprocess.h" #include #include @@ -71,9 +70,6 @@ #include #include -#include -#include - namespace QmlDesigner { static QString propertyEditorResourcesPath() @@ -263,44 +259,7 @@ QSet AssetsLibraryWidget::supportedAssetSuffixes(bool complex) void AssetsLibraryWidget::openEffectMaker(const QString &filePath) { - const ProjectExplorer::Target *target = ProjectExplorer::ProjectTree::currentTarget(); - if (!target) { - qWarning() << __FUNCTION__ << "No project open"; - return; - } - - Utils::FilePath projectPath = target->project()->projectDirectory(); - QString effectName = QFileInfo(filePath).baseName(); - QString effectResDir = "asset_imports/Effects/" + effectName; - Utils::FilePath effectResPath = projectPath.resolvePath(effectResDir); - if (!effectResPath.exists()) - QDir(projectPath.toString()).mkpath(effectResDir); - - const QtSupport::QtVersion *baseQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit()); - if (baseQtVersion) { - auto effectMakerPath = baseQtVersion->binPath().pathAppended("QQEffectMaker").withExecutableSuffix(); - if (!effectMakerPath.exists()) { - qWarning() << __FUNCTION__ << "Cannot find EffectMaker app"; - return; - } - - Utils::FilePath effectPath = Utils::FilePath::fromString(filePath); - QString effectContents = QString::fromUtf8(effectPath.fileContents()); - QStringList arguments; - arguments << filePath; - if (effectContents.isEmpty()) - arguments << "--create"; - arguments << "--exportpath" << effectResPath.toString(); - - Utils::Environment env = Utils::Environment::systemEnvironment(); - if (env.osType() == Utils::OsTypeMac) - env.appendOrSet("QSG_RHI_BACKEND", "metal"); - - m_qqemProcess.reset(new Utils::QtcProcess); - m_qqemProcess->setEnvironment(env); - m_qqemProcess->setCommand({ effectMakerPath, arguments }); - m_qqemProcess->start(); - } + ModelNodeOperations::openEffectMaker(filePath); } void AssetsLibraryWidget::setModel(Model *model) diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h index dcec0f9414e..cdc11f43af8 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h @@ -44,7 +44,6 @@ QT_END_NAMESPACE namespace Utils { class FileSystemWatcher; - class QtcProcess; } namespace QmlDesigner { @@ -118,8 +117,6 @@ private: bool m_updateRetry = false; QString m_filterText; QPoint m_dragStartPoint; - - std::unique_ptr m_qqemProcess; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index 0e442918da3..243510a9f3a 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -69,11 +69,15 @@ #include #include #include -#include "projectexplorer/session.h" +#include "projectexplorer/target.h" + +#include +#include #include #include #include +#include "utils/qtcprocess.h" #include #include @@ -1617,6 +1621,52 @@ void updateImported3DAsset(const SelectionContext &selectionContext) } } +void openEffectMaker(const QString &filePath) +{ + const ProjectExplorer::Target *target = ProjectExplorer::ProjectTree::currentTarget(); + if (!target) { + qWarning() << __FUNCTION__ << "No project open"; + return; + } + + Utils::FilePath projectPath = target->project()->projectDirectory(); + QString effectName = QFileInfo(filePath).baseName(); + QString effectResDir = "asset_imports/Effects/" + effectName; + Utils::FilePath effectResPath = projectPath.resolvePath(effectResDir); + if (!effectResPath.exists()) + QDir(projectPath.toString()).mkpath(effectResDir); + + const QtSupport::QtVersion *baseQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit()); + if (baseQtVersion) { + auto effectMakerPath = baseQtVersion->binPath().pathAppended("QQEffectMaker").withExecutableSuffix(); + if (!effectMakerPath.exists()) { + qWarning() << __FUNCTION__ << "Cannot find EffectMaker app"; + return; + } + + Utils::FilePath effectPath = Utils::FilePath::fromString(filePath); + QString effectContents = QString::fromUtf8(effectPath.fileContents()); + QStringList arguments; + arguments << filePath; + if (effectContents.isEmpty()) + arguments << "--create"; + arguments << "--exportpath" << effectResPath.toString(); + + Utils::Environment env = Utils::Environment::systemEnvironment(); + if (env.osType() == Utils::OsTypeMac) + env.appendOrSet("QSG_RHI_BACKEND", "metal"); + + Utils::QtcProcess *qqemProcess = new Utils::QtcProcess(); + qqemProcess->setEnvironment(env); + qqemProcess->setCommand({ effectMakerPath, arguments }); + qqemProcess->start(); + + QObject::connect(qqemProcess, &Utils::QtcProcess::done, [qqemProcess]() { + qqemProcess->deleteLater(); + }); + } +} + Utils::FilePath getEffectsDirectory() { QString defaultDir = "asset_imports/Effects"; diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h index 0b1b298a6f2..7c4aa60d8f2 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h @@ -101,6 +101,7 @@ void openSignalDialog(const SelectionContext &selectionContext); void updateImported3DAsset(const SelectionContext &selectionContext); QMLDESIGNERCORE_EXPORT Utils::FilePath getEffectsDirectory(); +void openEffectMaker(const QString &filePath); // ModelNodePreviewImageOperations QVariant previewImageDataForGenericNode(const ModelNode &modelNode); diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp index 290e9f21939..b40ad0eaaaf 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp @@ -28,7 +28,9 @@ #include "formeditorscene.h" #include "formeditorview.h" #include "assetslibrarywidget.h" +#include "assetslibrarymodel.h" #include +#include #include #include #include "qmldesignerconstants.h" @@ -41,6 +43,7 @@ #include #include #include +#include static Q_LOGGING_CATEGORY(dragToolInfo, "qtc.qmldesigner.formeditor", QtWarningMsg); @@ -264,9 +267,31 @@ void DragTool::dropEvent(const QList &itemList, QGraphicsSceneD if (targetContainerFormEditorItem) { QmlItemNode parentQmlItemNode = targetContainerFormEditorItem->qmlItemNode(); QString effectName = QFileInfo(effectPath).baseName(); - QmlItemNode effectNode = QmlItemNode::createQmlItemNodeForEffect(view(), parentQmlItemNode, effectName); - view()->setSelectedModelNodes({effectNode}); + if (!AssetsLibraryModel::isEffectQmlExist(effectName)) { + QMessageBox msgBox; + msgBox.setText("Effect " + effectName + " is empty"); + msgBox.setInformativeText("Do you want to edit " + effectName + "?"); + msgBox.setStandardButtons(QMessageBox::No |QMessageBox::Yes); + msgBox.setDefaultButton(QMessageBox::Yes); + msgBox.setIcon(QMessageBox::Question); + int ret = msgBox.exec(); + switch (ret) { + case QMessageBox::Yes: + ModelNodeOperations::openEffectMaker(effectPath); + break; + default: + break; + } + + event->ignore(); + return; + } + + QmlItemNode effectNode = QmlItemNode:: + createQmlItemNodeForEffect(view(), parentQmlItemNode, effectName); + + view()->setSelectedModelNodes({parentQmlItemNode}); view()->resetPuppet(); commitTransaction(); From dc9cb0562afce3d794acef07ea35ad87cffa2464 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 7 Nov 2022 12:19:51 +0100 Subject: [PATCH 07/49] Utils::Id: Make access to internal cache thread safe Secure all accesses to internal cache with QReadWriteLock. Move firstUnusedId into secured scope, too. Fixes: QTCREATORBUG-28415 Change-Id: I99d23213ec169b2b74748f54c98b834f88ab6a3d Reviewed-by: Eike Ziller Reviewed-by: hjk --- src/libs/utils/id.cpp | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/id.cpp b/src/libs/utils/id.cpp index 13f868686d8..7f31b8f926f 100644 --- a/src/libs/utils/id.cpp +++ b/src/libs/utils/id.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include namespace Utils { @@ -76,21 +77,31 @@ struct IdCache : public QHash #endif }; - static QHash stringFromId; static IdCache idFromString; +static QReadWriteLock s_cacheMutex; static quintptr theId(const char *str, int n = 0) { - static quintptr firstUnusedId = 10 * 1000 * 1000; QTC_ASSERT(str && *str, return 0); StringHolder sh(str, n); - int res = idFromString.value(sh, 0); + int res = 0; + { + QReadLocker lock(&s_cacheMutex); // Try quick read locker first + res = idFromString.value(sh, 0); + } if (res == 0) { - res = firstUnusedId++; - sh.str = qstrdup(sh.str); - idFromString[sh] = res; - stringFromId[res] = sh; + QWriteLocker lock(&s_cacheMutex); + res = idFromString.value(sh, 0); // Some other thread could have added it to the cache + // in meantime, after read lock was released and before + // write lock was acquired. Re-read it again. + if (res == 0) { + static quintptr firstUnusedId = 10 * 1000 * 1000; + res = firstUnusedId++; + sh.str = qstrdup(sh.str); + idFromString[sh] = res; + stringFromId[res] = sh; + } } return res; } @@ -127,6 +138,7 @@ Id::Id(const char *name) QByteArray Id::name() const { + QReadLocker lock(&s_cacheMutex); return stringFromId.value(m_id).str; } @@ -142,6 +154,7 @@ QByteArray Id::name() const QString Id::toString() const { + QReadLocker lock(&s_cacheMutex); return QString::fromUtf8(stringFromId.value(m_id).str); } @@ -188,6 +201,7 @@ Id Id::fromName(const QByteArray &name) QVariant Id::toSetting() const { + QReadLocker lock(&s_cacheMutex); return QVariant(QString::fromUtf8(stringFromId.value(m_id).str)); } @@ -280,6 +294,7 @@ Id Id::withPrefix(const char *prefix) const bool Id::operator==(const char *name) const { + QReadLocker lock(&s_cacheMutex); const char *string = stringFromId.value(m_id).str; if (string && name) return strcmp(string, name) == 0; @@ -290,6 +305,7 @@ bool Id::operator==(const char *name) const // For debugging purposes QTCREATOR_UTILS_EXPORT const char *nameForId(quintptr id) { + QReadLocker lock(&s_cacheMutex); return stringFromId.value(id).str; } From f792dc0216fc1fdae1e9d4421ccb489cae2aac2f Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 7 Nov 2022 08:18:07 +0100 Subject: [PATCH 08/49] AutoTest: Fix Catch2 output handling Handle warnings or explicit failures instead of ignoring them. Fixes: QTCREATORBUG-28394 Change-Id: I5ccde8e7b9dfa1118f42ea881b9152069616193f Reviewed-by: David Schulz --- .../autotest/catch/catchoutputreader.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/plugins/autotest/catch/catchoutputreader.cpp b/src/plugins/autotest/catch/catchoutputreader.cpp index 9ec3006ab73..3d79f683b73 100644 --- a/src/plugins/autotest/catch/catchoutputreader.cpp +++ b/src/plugins/autotest/catch/catchoutputreader.cpp @@ -18,6 +18,8 @@ namespace CatchXml { const char TestCaseElement[] = "TestCase"; const char SectionElement[] = "Section"; const char ExceptionElement[] = "Exception"; + const char WarningElement[] = "Warning"; + const char FailureElement[] = "Failure"; const char ExpressionElement[] = "Expression"; const char ExpandedElement[] = "Expanded"; const char BenchmarkResults[] = "BenchmarkResults"; @@ -102,6 +104,11 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin m_currentResult = m_shouldFail ? ResultType::UnexpectedPass : ResultType::Pass; else m_currentResult = m_mayFail || m_shouldFail ? ResultType::ExpectedFail : ResultType::Fail; + } else if (m_currentTagName == CatchXml::WarningElement) { + m_currentResult = ResultType::MessageWarn; + } else if (m_currentTagName == CatchXml::FailureElement) { + m_currentResult = ResultType::Fail; + recordTestInformation(m_xmlReader.attributes()); } else if (m_currentTagName == CatchXml::BenchmarkResults) { recordBenchmarkInformation(m_xmlReader.attributes()); m_currentResult = ResultType::Benchmark; @@ -121,7 +128,9 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin const auto text = m_xmlReader.text(); if (m_currentTagName == CatchXml::ExpandedElement) { m_currentExpression.append(text); - } else if (m_currentTagName == CatchXml::ExceptionElement) { + } else if (m_currentTagName == CatchXml::ExceptionElement + || m_currentTagName == CatchXml::WarningElement + || m_currentTagName == CatchXml::FailureElement) { m_currentExpression.append('\n').append(text.trimmed()); } break; @@ -138,10 +147,14 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin } else if (currentTag == QLatin1String(CatchXml::GroupElement)) { testOutputNodeFinished(GroupNode); } else if (currentTag == QLatin1String(CatchXml::ExpressionElement) + || currentTag == QLatin1String(CatchXml::FailureElement) || currentTag == QLatin1String(CatchXml::BenchmarkResults)) { sendResult(m_currentResult); m_currentExpression.clear(); m_testCaseInfo.pop(); + } else if (currentTag == QLatin1String(CatchXml::WarningElement)) { + sendResult(m_currentResult); + m_currentExpression.clear(); } break; } @@ -255,6 +268,8 @@ void CatchOutputReader::sendResult(const ResultType result) .arg(catchResult->description())); } else if (result == ResultType::Benchmark || result == ResultType::MessageFatal) { catchResult->setDescription(m_currentExpression); + } else if (result == ResultType::MessageWarn) { + catchResult->setDescription(m_currentExpression.trimmed()); } reportResult(catchResult); From 9eebcf3ef098f368cb15fa4add2969e26f5ba9ef Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 1 Nov 2022 16:07:00 +0100 Subject: [PATCH 09/49] Restrict Python application wizards to desktop Fixes: QTCREATORBUG-28258 Change-Id: I9814abe093efbff0b7b15711d4773c8cbcdc8e41 Reviewed-by: Cristian Maureira-Fredes Reviewed-by: Reviewed-by: David Schulz --- .../wizards/projects/qtforpythonapplication/empty/wizard.json | 2 +- .../projects/qtforpythonapplication/mainwindow/wizard.json | 2 +- .../qtforpythonapplication/qtquickapplication/wizard.json | 2 +- .../wizards/projects/qtforpythonapplication/widget/wizard.json | 2 +- .../projects/qtforpythonapplication/widget_gen/wizard.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/empty/wizard.json b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/empty/wizard.json index fecabd09428..2d566dc1f66 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/empty/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/empty/wizard.json @@ -8,7 +8,7 @@ "trDisplayCategory": "Application (Qt for Python)", "icon": "icon.png", "iconKind": "Themed", - "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0 && (!value('Platform').length || ['Desktop', 'DockerDeviceType', 'GenericLinuxOsType'].includes(value('Platform')))}", "options": [ diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/mainwindow/wizard.json b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/mainwindow/wizard.json index d9f575ecd9b..58e9f8cd526 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/mainwindow/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/mainwindow/wizard.json @@ -8,7 +8,7 @@ "trDisplayCategory": "Application (Qt for Python)", "icon": "../icons/icon.png", "iconKind": "Themed", - "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0 && (!value('Platform').length || ['Desktop', 'DockerDeviceType', 'GenericLinuxOsType'].includes(value('Platform')))}", "options": [ diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/wizard.json b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/wizard.json index 7ab73b917f4..c04407347c8 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/wizard.json @@ -8,7 +8,7 @@ "trDisplayCategory": "Application (Qt for Python)", "icon": "../icons/icon.png", "iconKind": "Themed", - "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0 && (!value('Platform').length || ['Desktop', 'DockerDeviceType', 'GenericLinuxOsType'].includes(value('Platform')))}", "options": [ diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget/wizard.json b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget/wizard.json index b9c96c97886..1a8e1bd72cb 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget/wizard.json @@ -8,7 +8,7 @@ "trDisplayCategory": "Application (Qt for Python)", "icon": "../icons/icon.png", "iconKind": "Themed", - "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0 && (!value('Platform').length || ['Desktop', 'DockerDeviceType', 'GenericLinuxOsType'].includes(value('Platform')))}", "options": [ diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget_gen/wizard.json b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget_gen/wizard.json index 91572c2bdd2..3bfe3af638b 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget_gen/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/widget_gen/wizard.json @@ -8,7 +8,7 @@ "trDisplayCategory": "Application (Qt for Python)", "icon": "../icons/icon.png", "iconKind": "Themed", - "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0 && (!value('Platform').length || ['Desktop', 'DockerDeviceType', 'GenericLinuxOsType'].includes(value('Platform')))}", "options": [ From 11c9332574c32ce3fa601727533194f401c2cb8c Mon Sep 17 00:00:00 2001 From: Daniele Bortolotti Date: Mon, 7 Nov 2022 09:09:37 +0100 Subject: [PATCH 10/49] McuSupport: Use lower case platform name for CMake configurations QUL_PLATFORM name is converted in CMake to lower case, resulting in misleading warnings about platform name due to case mismatch. Fixes: UL-6641 Change-Id: I25df689c91dca65ef67c80d9527c0afe7952278b Reviewed-by: Yasser Grimes Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/mcusupport/mcukitmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index cdee6cf5817..19917de3bb7 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -287,7 +287,7 @@ public: false); } - configMap.insert("QUL_PLATFORM", mcuTarget->platform().name.toUtf8()); + configMap.insert("QUL_PLATFORM", mcuTarget->platform().name.toLower().toUtf8()); if (mcuTarget->colorDepth() != McuTarget::UnspecifiedColorDepth) configMap.insert("QUL_COLOR_DEPTH", QString::number(mcuTarget->colorDepth()).toLatin1()); From fb5093d1407853b1e06ca132fb4998eb2862bb2a Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 31 Oct 2022 17:21:25 +0100 Subject: [PATCH 11/49] Doc: Update info on Docker devices Task-number: QTCREATORBUG-27876 Change-Id: I837ce8b8aeea5d238e98a70b7b5754be46d2e34a Reviewed-by: hjk --- .../qtcreator-docker-image-selection.png | Bin 23142 -> 0 bytes .../qtcreator-docker-image-selection.webp | Bin 0 -> 5790 bytes .../images/qtcreator-docker-preferences.png | Bin 57498 -> 0 bytes ...tor-preferences-devices-docker-device.webp | Bin 0 -> 31232 bytes .../qtcreator-preferences-devices-docker.webp | Bin 0 -> 8312 bytes doc/qtcreator/src/docker/creator-docker.qdoc | 122 ++++++++++++------ 6 files changed, 81 insertions(+), 41 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-docker-image-selection.png create mode 100644 doc/qtcreator/images/qtcreator-docker-image-selection.webp delete mode 100644 doc/qtcreator/images/qtcreator-docker-preferences.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-devices-docker-device.webp create mode 100644 doc/qtcreator/images/qtcreator-preferences-devices-docker.webp diff --git a/doc/qtcreator/images/qtcreator-docker-image-selection.png b/doc/qtcreator/images/qtcreator-docker-image-selection.png deleted file mode 100644 index 72401c2f32094ae9ee74b45d1387adc75e535a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23142 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ℜ8Yxt@+H<-_{ec8Bp_tAG}l5`|<__r3xyj`|q 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

p>RrKJE`glslMCM9F?WG4(t-j1; zDt~RH&dzUAw0y^&?;+b-o;`W%^WnX2PhS3wBbDzC=}wTY*&#l)pKs!vhJQ6iyz?Xq zt0yZf*f-5g-pl=BE8k7g9W{re`R12(9rZr(WJC5B-3V^^x{d$S&;Ob)I$`(KlBImH z_8BLNKQC>5w&CD&-?yKi1UP?t?tYl<|H?P#&Q{*I)b!wigc*wys2L!z|T9-~U(2-C?n*@{YVDI(zPg+b{1NYWbg*X~B{A@$xov2GQA)I#QON1R1W%A#NE*?yWPIXxkF$4-ar zkfw|jCaDaERp(qD3)%P^oMB*27SyN^VA{to;mH2PbB&G3KhDLLL5*ipj;Tf{n;xv) z8>KAF@l0a6!j9^>dt~`-GJM&XJ}9v8L`ZH?V@|r7)xni@Ylp_ao<^~FJz$3iDGmE@uX zocLG%SfSA{MLZ_Ir<9{oNLz81vgi$;w3w!)jjN8PMO+Nz%t&-rdnP$OA>7m~{k*x2 z{{{ys#hvF?XfTU#4BFGy|m^KyJUs@Q35c-JKKu|MvQPEd5UXvA+;vkAvTl zcrlB2_K*J=zq8LT`rP((W6fS4tM^R@!$Y6W*1l7BYZKe4_8!ua*SmVHR_Cm(n z3YX<-zct+EzWMl!%%bmpx6?j}PMy$y{`i*(wnto6*7n&j9W&Xtb5fb~?RB}6&4g8V zd^4gV!Y3 zb)MXd=@SgLubmw`i}#k#)b1&d+w~Sw|qorZ<@SDec7oq636+H zU-!(^QcPu!boZIsws65thgUP5)s2dZ8xsTEw@)xPe!b;o-#<%*mK~hGeh36I>2Hk+ zkyjF0w&|g+$NI%}*EasF+IdRhYt`@TrE_06JV~xtdv%qKd4}I2P}`?_>Gc~?xmAm+ z`4m@#E~*loWFX4BSVhs%gEL{R(ADnnchahf|DW)B=|_4$*;Ks#Jl~h!3!C=8|1Nv9 z^e0EH(aKAyv(Cvj3-}pbNt$TAfyXCOY}ulPQ`tWkpL#E`t0^?WvNrV8sTpi>lf*W} zF3eGnbUpLh~I3-7p`4fp?6qsAfc zCt$x=p{~j?=k}ZbwOUmfjvCkP6}ciKXC3h}5q+q?Zh~chB7gAHaGuzM8u?jST@UrN ze##t{OvwF_zc}&Wm%W-f(o@tun><`2T`ve4KfGrDAoN$u9)lOboP3c_KPtTPl9lbZAWHbzk*siAYt{s% zV=ND^G@qQdL10tp#1{)$58h6U5Ik|}l1kX2l^n&bJqHC0LhIa42wy(@?3tP~lc?|7 zJH}I(j5uyQSKDV?<;ZB5ocEjinfAO?(W%SpwqMyjt3cwfg~gK_$*+9wiX7m)C}Q_h z&gZFlYoW5{t-UAT{hhIOHW!D97~{=J*N!xq%0+Fc+picExVl4aqmYm54C^I)Cd|P{ z!+CTsO08eN-h?}(pj9W+k1^YKKX2~e?zDvJ?oGWVLMt^^aab){J||-3NhJ=6#E!k+ zmQ8M7BO`9jSucA!X6HGDIg+v*?WkmeYWUJ;npV4aUYK1xMQ&4@ zN9!l1#Nfr-{l%V!+W7naJUHP>S@q_&_TuUHp06+FT-S8Eu`8siW8#;(_iP3~Q!lOA z!1VUffoxALrzFKQcelUl6!6iB;Mv#mP*ic7TCAX->kMrbp00+~&kU^=i~I|o;&_th z(}#MlQ(k(f|F>B0|EB!((1bOzGFl6Cw6%?x zSFD|)bhc~#=?i&ZCuP(fDVRF1KQcq9qRMfh;g8#0`&~U;CP#2CS2`n_#LmbZeSP^1 zfk&&#Zr^4)w=Z?ooqOMWm`y@f-}YVpxOz(7hFKnNVX7Aloh}4$9*cRvdPvRja8^dV zzt!xkXP#dX{qoC|ZRPzN-YH-HOep3(`TsEg>tB3#WG2_o7c(wT?9nNnZQ*&6@SHY{pW_{wInb6iUy! z{QR(I`AN8%(N0L_CiQQhj<#-17)d-&n=f%7GkH%<dZ$Fql$E5N(gQV9zCuM#H07zpTG5`Po literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-docker-preferences.png b/doc/qtcreator/images/qtcreator-docker-preferences.png deleted file mode 100644 index 0b0872017782cfe61ad0b2eadae6fc0e2c4d4b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57498 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 diff --git a/doc/qtcreator/images/qtcreator-preferences-devices-docker-device.webp b/doc/qtcreator/images/qtcreator-preferences-devices-docker-device.webp new file mode 100644 index 0000000000000000000000000000000000000000..413112c939318d25fe3b08b7f190ee4ebacbd6cb GIT binary patch literal 31232 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

&-tvT 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 \uicontrol Preferences > \uicontrol Devices. + command. To check that an image is available locally, run the + \c {docker images} command in a terminal. + + \section1 Enabling Docker Plugin To enable the experimental Docker plugin: @@ -41,33 +41,67 @@ \li Select \uicontrol {Restart Now} to restart \QC and load the plugin. \endlist + \section1 Adding Docker Images as Devices + To add a Docker image as a device: \list 1 \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Devices - > \uicontrol Devices > \uicontrol Add > \uicontrol {Docker Device} - > \uicontrol {Start Wizard} to search for images in your local Docker - installation. - \image qtcreator-docker-image-selection.png "Docker Image Selection dialog" + > \uicontrol Docker and enter the path to the Docker CLI in + the \uicontrol Command field. + \image qtcreator-preferences-devices-docker.webp "Docker tab in Devices preferences" + \li Select \uicontrol Devices > \uicontrol Add > + \uicontrol {Docker Device} > \uicontrol {Start Wizard} + to search for images in your local Docker installation. \li Select the Docker image to use, and then select \uicontrol OK. - \note If the Docker process is not found, make sure that Docker is - running and the Docker CLI executable is set in PATH. \li In \uicontrol Devices, check and modify Docker device preferences. - \image qtcreator-docker-preferences.png "Docker Device preferences" - \li Select \uicontrol {Run as outside user} to use the user ID and - group ID of the user running \QC in the Docker container. - \li In \uicontrol {Paths to mount}, specify host directories to mount - into the container, such as the project directory. - \li Select \uicontrol {Auto-detect Kit Items} to generate an initial - \l{Adding Kits}{build and run kit} for the Docker device. + \image qtcreator-preferences-devices-docker-device.webp "Docker device preferences" + \li Select \uicontrol {Run as outside user} to use the user ID + and group ID of the user running \QC in the Docker container. + \li Select \uicontrol {Do not modify entry point} to stop \QC from + modifying the entry point of the image if the image starts into + a shell. + \li In \uicontrol {Paths to mount}, specify host directories to + mount into the container, such as the project directory. + \li In \uicontrol {Search locations}, select where to search + for kit items. + \li Select \uicontrol {Auto-detect Kit Items} to find kit items and to + create kits for the Docker device. + \li Select \uicontrol Apply to save your changes. \endlist - \section1 Specifying Paths to Mount + The following sections describe the Docker device preferences in more detail. + + \section2 Selecting Docker Images + + The \uicontrol {Docker Image Selection} dialog displays a list of Docker + images in your local Docker installation. You can sort the images according + to the repository name or tag or the image ID or size. + + \image qtcreator-docker-image-selection.webp "Docker Image Selection dialog" + + Select \uicontrol {Show unnamed images} to show images that are not tagged. + + Double-click an image to select it. + + \section2 Modifying Entry Points + + The entry point of a Docker container is specified in the container settings + and started as the main process when starting the container. The entry point + can be a shell, an SSH server, or another process, for example. By default, + \QC modifies the entry point before it starts a container to make sure that + the main process is an \c sh shell. + + To stop \QC from modifying the entry point, select + \uicontrol {Do not modify entry point}. However, if the entry + point you specify is not a shell, \QC cannot start the container. + + \section2 Specifying Paths to Mount You can either copy your project files into the Docker container or specify paths to them in \uicontrol {Paths to mount}. Shared mounts are restricted to locations in the host system that can end up in the same absolute location - in the Docker container. On Windows, mounted drives cannot be used as shared + in the Docker container. On Windows, network mounts cannot be used as shared mounts. The paths in \uicontrol {Paths to mount} are mapped one-to-one to the Docker @@ -75,27 +109,33 @@ \uicontrol {Delete Line} to delete the selected path or \uicontrol Clear to delete all paths. - \section1 Auto-detecting Kit Items + \section2 Auto-detecting Kit Items - Select \uicontrol {Auto-detect Kit Items} to generate an initial - \l{Adding Kits}{build and run kit} for the Docker device. You can - either set the kit items, such \l{Adding Debuggers}{debuggers} and - \l{Adding Qt Versions}{Qt version}, in PATH or install them in the - Docker container. + Select \uicontrol {Auto-detect Kit Items} to find kit items and create kits + for the Docker device. You can search for kit items in the device's PATH or + in the specified directories. - Select \uicontrol {Search in PATH} to detect kit items that are set in PATH. + In \uicontrol {Search locations}, select: - Select \uicontrol {Search in Selected Directories} to detect kit items in - the selected directories. + \list + \li \uicontrol {Search in PATH} to find kit items in PATH. + \li \uicontrol {Search in Selected Directories} to find kit items in + the selected directories. + \li \uicontrol {Search in PATH and Additional Directories} to find kit + items in the PATH and in the selected directories. + \endlist - To view the automatically detected kit items, select + When searching in directories, enter a semicolon-separated list of directory + paths in the Docker image to scan for kit entries. + + To list the automatically detected kit items, select \uicontrol {List Auto-Detected Kit Items}. To remove them, select \uicontrol {Remove Auto-Detected Kit Items}. \section1 Editing Docker Device Kits Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits to check - that the automatically generated kit points to the appropriate kit items. + that the automatically generated kits point to the appropriate kit items. To specify build settings: From a1851c7cf1576a2656c251b193eb692b6caf480d Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 7 Nov 2022 09:24:32 +0100 Subject: [PATCH 12/49] Add -language command line option for overriding UI language I run Qt Creator in german, but for responding to questions and generally looking things up I regularly want to run it temporarily in english. A command line option makes that easier than having to start Qt Creator, navigate to the settings, and restarting it, and doing the same again to revert back to german. Change-Id: I7c0d84375ffc97e5c7607307fd3f785f2c315c3d Reviewed-by: Reviewed-by: Christian Stenger Reviewed-by: Leena Miettinen --- .../src/howto/creator-only/creator-cli.qdoc | 4 +++ src/app/main.cpp | 34 ++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc b/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc index 665e97031bd..4a7d5435781 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc @@ -137,6 +137,10 @@ \li Use clean settings for debug or testing reasons. The settings will be deleted when \QC exits. + \row + \li -language + \li Set the UI language. + \row \li -test [,testfunction[:testdata]] ... \li For \QC plugin developers: run the plugin's tests using a diff --git a/src/app/main.cpp b/src/app/main.cpp index 48cdc283cf2..e197f17393a 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -67,18 +67,20 @@ using namespace ExtensionSystem; enum { OptionIndent = 4, DescriptionIndent = 34 }; const char corePluginNameC[] = "Core"; -const char fixedOptionsC[] = -" [OPTION]... [FILE]...\n" -"Options:\n" -" -help Display this help\n" -" -version Display program version\n" -" -client Attempt to connect to already running first instance\n" -" -settingspath Override the default path where user settings are stored\n" -" -installsettingspath Override the default path from where user-independent settings are read\n" -" -temporarycleansettings, -tcs Use clean settings for debug or testing reasons\n" -" -pid Attempt to connect to instance given by pid\n" -" -block Block until editor is closed\n" -" -pluginpath Add a custom search path for plugins\n"; +const char fixedOptionsC[] + = " [OPTION]... [FILE]...\n" + "Options:\n" + " -help Display this help\n" + " -version Display program version\n" + " -client Attempt to connect to already running first instance\n" + " -settingspath Override the default path where user settings are stored\n" + " -installsettingspath Override the default path from where user-independent " + "settings are read\n" + " -temporarycleansettings, -tcs Use clean settings for debug or testing reasons\n" + " -pid Attempt to connect to instance given by pid\n" + " -block Block until editor is closed\n" + " -pluginpath Add a custom search path for plugins\n" + " -language Set the UI language\n"; const char HELP_OPTION1[] = "-h"; const char HELP_OPTION2[] = "-help"; @@ -95,6 +97,7 @@ const char TEMPORARY_CLEAN_SETTINGS2[] = "-tcs"; const char PID_OPTION[] = "-pid"; const char BLOCK_OPTION[] = "-block"; const char PLUGINPATH_OPTION[] = "-pluginpath"; +const char LANGUAGE_OPTION[] = "-language"; const char USER_LIBRARY_PATH_OPTION[] = "-user-library-path"; // hidden option for qtcreator.sh using PluginSpecSet = QVector; @@ -305,6 +308,7 @@ struct Options QString settingsPath; QString installSettingsPath; QStringList customPluginPaths; + QString uiLanguage; // list of arguments that were handled and not passed to the application or plugin manager QStringList preAppArguments; // list of arguments to be passed to the application or plugin manager @@ -336,6 +340,10 @@ Options parseCommandLine(int argc, char *argv[]) ++it; options.customPluginPaths += QDir::fromNativeSeparators(nextArg); options.preAppArguments << arg << nextArg; + } else if (arg == LANGUAGE_OPTION && hasNext) { + ++it; + options.uiLanguage = nextArg; + options.preAppArguments << arg << nextArg; } else if (arg == USER_LIBRARY_PATH_OPTION && hasNext) { ++it; options.userLibraryPath = nextArg; @@ -597,6 +605,8 @@ int main(int argc, char **argv) QString overrideLanguage = settings->value(QLatin1String("General/OverrideLanguage")).toString(); if (!overrideLanguage.isEmpty()) uiLanguages.prepend(overrideLanguage); + if (!options.uiLanguage.isEmpty()) + uiLanguages.prepend(options.uiLanguage); const QString &creatorTrPath = resourcePath() + "/translations"; for (QString locale : std::as_const(uiLanguages)) { locale = QLocale(locale).name(); From c4ee485bdf98621fe0605b4ebf91008bfaa48c48 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 7 Nov 2022 13:34:45 +0100 Subject: [PATCH 13/49] ClangCodeModel: Fix persistent SwitchDeclDef object If both AST and document symbols are available right away, the ClangdSwitchDeclDef object emits its done() signal before it is connected and stays around, potentially firing off new "follow symbol" requests to the bewilderment of innocent users. Fixes: QTCREATORBUG-28183 Change-Id: I972c8d4d9d7b7435e293d76fe710b19c9c4fb287 Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdswitchdecldef.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/clangcodemodel/clangdswitchdecldef.cpp b/src/plugins/clangcodemodel/clangdswitchdecldef.cpp index 7733516655f..a60395292c1 100644 --- a/src/plugins/clangcodemodel/clangdswitchdecldef.cpp +++ b/src/plugins/clangcodemodel/clangdswitchdecldef.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -68,6 +69,7 @@ ClangdSwitchDeclDef::ClangdSwitchDeclDef(ClangdClient *client, TextDocument *doc [this](const DocumentUri &uri, const DocumentSymbolsResult &symbols) { if (uri != d->uri) return; + d->client->documentSymbolCache()->disconnect(this); d->docSymbols = symbols; if (d->ast) d->handleDeclDefSwitchReplies(); @@ -108,7 +110,7 @@ void ClangdSwitchDeclDef::emitDone() return; d->done = true; - emit done(); + QMetaObject::invokeMethod(this, &ClangdSwitchDeclDef::done, Qt::QueuedConnection); } std::optional ClangdSwitchDeclDef::Private::getFunctionNode() const From 65cfbc1b6e25225934341daaf17c2da78e1d0a31 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 27 Oct 2022 16:21:22 +0200 Subject: [PATCH 14/49] Doc: Use "remote Linux" instead of "generic remote Linux" - Reflect the term changes in the UI. - Move info about SSH port property to the wizard step list. - Make the topic names in "Deploying to Devices" shorter. - Remove some unnecessary "if defined(qtdesignstudio)" conditions from topics that are not used in the QDS Manual. Task-number: QTCREATORBUG-27876 Change-Id: I2282257f245c31af82a41ea0e533407bf1cbd775 Reviewed-by: Christian Kandeler Reviewed-by: Nicholas Bennett Reviewed-by: hjk --- ...or-generic-linux-device-key-deployment.png | Bin 13135 -> 0 bytes .../qtcreator-linux-device-configurations.png | Bin 16928 -> 0 bytes ...ences-devices-remote-linux-connection.webp | Bin 0 -> 6322 bytes ...s-devices-remote-linux-key-deployment.webp | Bin 0 -> 8968 bytes ...ator-preferences-devices-remote-linux.webp | Bin 0 -> 10564 bytes .../qtcreator-screenshot-devconf-linux.png | Bin 8350 -> 0 bytes doc/qtcreator/src/android/androiddev.qdoc | 2 +- .../src/android/deploying-android.qdoc | 2 +- .../src/cmake/creator-projects-cmake.qdoc | 2 +- doc/qtcreator/src/docker/creator-docker.qdoc | 2 +- doc/qtcreator/src/ios/creator-ios-dev.qdoc | 2 +- .../linux-mobile/creator-deployment-b2qt.qdoc | 6 +-- .../creator-deployment-embedded-linux.qdoc | 10 ++-- .../creator-embedded-platforms.qdoc | 18 +++---- ...tor-projects-running-generic-linux.qdocinc | 12 ++--- ...creator-projects-settings-run-b2qt.qdocinc | 2 +- ...reator-projects-settings-run-linux.qdocinc | 2 +- doc/qtcreator/src/linux-mobile/linuxdev.qdoc | 46 +++++++++--------- .../creator-deployment-overview.qdoc | 19 +++----- .../creator-mobile-platforms.qdoc | 2 +- .../creator-only/creator-mobile-targets.qdoc | 22 +++------ .../creator-projects-generic.qdoc | 4 +- .../creator-projects-targets.qdoc | 2 +- .../src/qnx/creator-deployment-qnx.qdoc | 9 ++-- .../src/qnx/creator-developing-qnx.qdoc | 4 +- doc/qtcreator/src/qtcreator-toc.qdoc | 9 ++-- .../src/webassembly/creator-webassembly.qdoc | 2 +- 27 files changed, 81 insertions(+), 98 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-generic-linux-device-key-deployment.png delete mode 100644 doc/qtcreator/images/qtcreator-linux-device-configurations.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-devices-remote-linux-connection.webp create mode 100644 doc/qtcreator/images/qtcreator-preferences-devices-remote-linux-key-deployment.webp create mode 100644 doc/qtcreator/images/qtcreator-preferences-devices-remote-linux.webp delete mode 100644 doc/qtcreator/images/qtcreator-screenshot-devconf-linux.png diff --git a/doc/qtcreator/images/qtcreator-generic-linux-device-key-deployment.png b/doc/qtcreator/images/qtcreator-generic-linux-device-key-deployment.png deleted file mode 100644 index cea3c218d45b9a221ccbeaccb7d1ddbbe77d2a38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13135 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 LtDnm{r-UW|xrUMS diff --git a/doc/qtcreator/images/qtcreator-linux-device-configurations.png b/doc/qtcreator/images/qtcreator-linux-device-configurations.png deleted file mode 100644 index 58d4362da1ec5d974d03ac491db14dd6776a07bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16928 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 diff --git a/doc/qtcreator/images/qtcreator-preferences-devices-remote-linux-connection.webp b/doc/qtcreator/images/qtcreator-preferences-devices-remote-linux-connection.webp new file mode 100644 index 0000000000000000000000000000000000000000..5313f254f6e27fdf7bb769ad2395f6b82ba5800c GIT binary patch literal 6322 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 Ox*N=X-#_3c$^ZZ#wKzTi literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-preferences-devices-remote-linux.webp b/doc/qtcreator/images/qtcreator-preferences-devices-remote-linux.webp new file mode 100644 index 0000000000000000000000000000000000000000..a7fcb124adf0b9fec49ea90151ec913fe8cde113 GIT binary patch literal 10564 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 @@ -15,7 +15,7 @@ \image qtcreator-boot2qt-deployment-steps.png "Boot2Qt deployment steps" The deployment process is described in more detail in - \l{Deploying Applications to Generic Remote Linux Devices}. + \l{Deploying to Remote Linux}. \section1 Launching Applications on Boot diff --git a/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc b/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc index aaab6903664..0944c02a953 100644 --- a/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-deployment-embedded-linux.qdoc @@ -9,20 +9,16 @@ /*! \page creator-deployment-embedded-linux.html - \previouspage creator-deployment-b2qt.html - \if defined(qtdesignstudio) + \previouspage creator-deployment-qnx.html \nextpage creator-connecting-mobile.html - \else - \nextpage creator-deployment-qnx.html - \endif - \title Deploying Applications to Generic Remote Linux Devices + \title Deploying to Remote Linux You can specify settings for deploying applications to generic remote Linux devices in the project configuration file and in the \uicontrol Projects mode, in \uicontrol {Run Settings}. - \image qtcreator-embedded-linux-deployment-details.png "Deploy to embedded Linux" + \image qtcreator-embedded-linux-deployment-details.png "Deploy to remote Linux devices" The files to be installed are listed in the \uicontrol {Deployment} step, the \uicontrol {Files to deploy} field. The \uicontrol {Source File Path} diff --git a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc index 493d70302b4..cbca285cf66 100644 --- a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc @@ -13,7 +13,7 @@ \list \li \l {Bare Metal} \li \l {Boot2Qt} - \li \l {Generic Remote Linux} + \li \l {Remote Linux} \li \l {Microcontroller Units (MCU)} \li \l QNX \endlist @@ -31,7 +31,7 @@ \section1 Bare Metal You can run and debug applications on small devices that are not supported - by the generic remote Linux device plugin by using GDB or a hardware + by the remote Linux device plugin by using GDB or a hardware debugger. For more information about developing applications for Bare Metal devices, @@ -56,24 +56,24 @@ {Boot2Qt: Installation Guides} \li \l{Connecting Boot2Qt Devices} \li \l{Specifying Run Settings for Boot2Qt Devices} - \li \l{Deploying Applications to Boot2Qt Devices} + \li \l{Deploying to Boot2Qt} \li \l{https://doc.qt.io/qtcreator/creator-overview-qtasam.html} {Qt Creator Plugin for Qt Application Manager} \endlist - \section1 Generic Remote Linux + \section1 Remote Linux You must have a tool chain for building applications for embedded Linux devices installed on the development PC. The following topics contain more information about developing applications - for generic remote Linux devices: + for remote Linux devices: \list - \li \l{Connecting Generic Remote Linux Devices} - \li \l{Deploying Applications to Generic Remote Linux Devices} + \li \l{Connecting Remote Linux Devices} + \li \l{Deploying to Remote Linux} \li \l{Specifying Run Settings for Linux-Based Devices} - \li \l{Running on Generic Remote Linux Devices} + \li \l{Running on Remote Linux Devices} \li \l{https://doc.qt.io/qtcreator/creator-overview-qtasam.html} {Qt Creator Plugin for Qt Application Manager} \endlist @@ -105,7 +105,7 @@ \list \li \l{Connecting QNX Devices} - \li \l{Deploying Applications to QNX Neutrino Devices} + \li \l{Deploying to QNX Neutrino} \li \l{Specifying Run Settings for QNX Devices} \li \l{Running on QNX Devices} \li \l{Qt for QNX} diff --git a/doc/qtcreator/src/linux-mobile/creator-projects-running-generic-linux.qdocinc b/doc/qtcreator/src/linux-mobile/creator-projects-running-generic-linux.qdocinc index c4b0a4fb9c8..d2d78806999 100644 --- a/doc/qtcreator/src/linux-mobile/creator-projects-running-generic-linux.qdocinc +++ b/doc/qtcreator/src/linux-mobile/creator-projects-running-generic-linux.qdocinc @@ -4,14 +4,14 @@ /*! //! [running on embedded linux] - \section1 Running on Generic Remote Linux Devices + \section1 Running on Remote Linux Devices To build the application and run it on a device: \list 1 \li Specify a connection to the device. For more information, see - \l{Connecting Generic Remote Linux Devices}. + \l{Connecting Remote Linux Devices}. \li Click the \uicontrol Run button. @@ -25,12 +25,10 @@ displayed on the device. Command-line output is visible in the \QC \uicontrol {Application Output} view. - Choose \uicontrol {Projects > Embedded Linux > Run} to view the settings for deploying - the application to the connected device. - \if defined(qtcreator) - For more information, see + In the \uicontrol {Projects} mode, select the remote Linux kit and then + select \uicontrol {Run} to view the settings for deploying the application + to the connected device. For more information, see \l{Specifying Run Settings for Linux-Based Devices}. - \endif Debugging works transparently if GDB server is installed on the device and it is compatible with the GDB on the host. diff --git a/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-b2qt.qdocinc b/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-b2qt.qdocinc index 40ccae74104..2683006f52c 100644 --- a/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-b2qt.qdocinc +++ b/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-b2qt.qdocinc @@ -17,7 +17,7 @@ host and on the device. For more information on the deployment steps, see - \l{Deploying Applications to Boot2Qt Devices}. + \l{Deploying to Boot2Qt}. //! [run settings boot2qt] */ diff --git a/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-linux.qdocinc b/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-linux.qdocinc index 26b832c45f0..017163c3eeb 100644 --- a/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-linux.qdocinc +++ b/doc/qtcreator/src/linux-mobile/creator-projects-settings-run-linux.qdocinc @@ -11,7 +11,7 @@ host to the device and add the device configurations to \l{glossary-buildandrun-kit}{kits}. Click \uicontrol {Manage Kits} to add devices to kits. For more information, see - \l {Connecting Generic Remote Linux Devices}. + \l {Connecting Remote Linux Devices}. When you run the application, \QC copies the files to the connected device. diff --git a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc index 815aa2260c8..b874866f60c 100644 --- a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc +++ b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc @@ -3,15 +3,10 @@ /*! \page creator-developing-generic-linux.html - \if defined(qtdesignstudio) - \previouspage creator-developing-android.html - \nextpage studio-advanced.html - \else - \previouspage creator-adding-docker-devices.html - \nextpage creator-developing-ios.html - \endif + \previouspage creator-developing-qnx.html + \nextpage creator-setup-webassembly.html - \title Connecting Generic Remote Linux Devices + \title Connecting Remote Linux Devices You can connect generic Linux devices to the development PC to run, debug, and analyze applications built for them from \QC. @@ -19,10 +14,10 @@ If you have a tool chain for building applications for embedded Linux devices installed on the development PC, you can add it to \QC. You can then select a \l{glossary-buildandrun-kit}{kit} - with \uicontrol {Embedded Linux} device type to + with the device type \uicontrol {Remote Linux Device} to build applications for and run them on the devices. - To be able to run and debug applications on generic remote Linux devices, + To be able to run and debug applications on remote Linux devices, you must add devices and select them in the \QC \l{glossary-buildandrun-kit} {kit}. @@ -30,7 +25,7 @@ in \uicontrol Edit > \uicontrol Preferences > \uicontrol Devices > \uicontrol Devices. - \image qtcreator-linux-device-configurations.png "Devices dialog" + \image qtcreator-preferences-devices-remote-linux.webp "Remote Linux Device in the Devices tab" You can protect the connections between \QC and a device by using an \l{https://www.openssh.com/}{OpenSSH} connection. OpenSSH is a @@ -47,7 +42,7 @@ you may need to enter the password on every connection to the device, or, if caching is enabled, at every \QC restart. - To configure connections between \QC and an embedded Linux device and to + To configure connections between \QC and a remote Linux device and to specify build and run settings for the device: \list 1 @@ -69,19 +64,22 @@ \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Devices > \uicontrol Devices > \uicontrol Add > - \uicontrol {Generic Linux Device} + \uicontrol {Remote Linux Device} > \uicontrol {Start Wizard}. - \image qtcreator-screenshot-devconf-linux.png "Connection Data wizard" + \image qtcreator-preferences-devices-remote-linux-connection.webp "Connection Data wizard" - \li In the \uicontrol {The name to identify this configuration} field, + \li In \uicontrol {The name to identify this configuration}, enter a name for the connection. - \li In the \uicontrol {The device's host name or IP address} field, + \li In \uicontrol {The device's host name or IP address}, enter the host name or IP address of the device. This value will be available in the variable \c %{Device:HostAddress}. - \li In the \uicontrol {The username to log into the device} field, + \li In \uicontrol {The device's SSH port number}, enter the port + number to use for SSH connections. This value will be + available in the variable \c %{Device:SshPort}. + \li In \uicontrol {The username to log into the device}, enter the username to log into the device and run the application as. This value will be available in the variable \c %{Device:UserName}. @@ -89,7 +87,7 @@ \li Select \uicontrol {Next} to open the \uicontrol {Key Deployment} dialog. - \image qtcreator-generic-linux-device-key-deployment.png "Key Deployment dialog" + \image qtcreator-preferences-devices-remote-linux-key-deployment.webp "Key Deployment dialog" \li In \uicontrol {Private key file}, select a private key file to use for authentication. This value will be available in @@ -107,14 +105,16 @@ \endlist All of these parameters can be edited later, as well as additional ones that the - wizard does not show because there are sensible default values. One of these is - the SSH port number, which is available in the variable \c %{Device:SshPort}. + wizard does not show because there are sensible default values. \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits > \uicontrol Add to add a kit for building for the device. Select the - Qt version, compiler, and device that you added above, and choose - \uicontrol {Generic Linux Device} for the device type. + Qt version, compiler, and device that you added above, and select + \uicontrol {Remote Linux Device} in \uicontrol {Device type}. + + To build on the remote device, select \uicontrol {Remote Linux Device} + also in \uicontrol {Build device}. \li To specify build settings: @@ -133,7 +133,7 @@ When you run the project, \QC deploys the application as specified by the deploy steps. By default, \QC copies the application files to the device. - For more information, see \l{Deploying Applications to Generic Remote Linux Devices}. + For more information, see \l{Deploying to Remote Linux}. \endlist diff --git a/doc/qtcreator/src/overview/creator-only/creator-deployment-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-deployment-overview.qdoc index 9b6d18ae0f9..000017249ac 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-deployment-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-deployment-overview.qdoc @@ -22,31 +22,28 @@ \list - \li \l{Deploying Applications to Android Devices} + \li \l{Deploying to Android} When you deploy the application to an Android device, \QC copies the application files to the device. In addition, you can determine the Qt libraries to use. - \li \l {Deploying Applications to Boot2Qt Devices} + \li \l {Deploying to Boot2Qt} When you deploy the application to a Boot2Qt device, \QC copies the application files to the connected device. You can then test and debug the application on the device with \QC. - \li \l{Deploying Applications to Generic Remote Linux Devices} - - When you deploy the application to a generic Linux-based device, \QC - copies the application files to the connected device. You can then - test and debug the application on the device with \QC. - - \if defined(qtcreator) - \li \l{Deploying Applications to QNX Neutrino Devices} + \li \l{Deploying to QNX Neutrino} When you deploy the application to a QNX Neutrino device, \QC copies the application files to the connected device. You can then test and debug the application on the device with \QC. - \endif + \li \l{Deploying to Remote Linux} + + When you deploy the application to a generic Linux-based device, \QC + copies the application files to the connected device. You can then + test and debug the application on the device with \QC. \endlist */ diff --git a/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc b/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc index 4cafa2923b4..7af06ba9ff3 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc @@ -36,7 +36,7 @@ \list \li \l{Connecting Android Devices} - \li \l{Deploying Applications to Android Devices} + \li \l{Deploying to Android} \li \l{Running on Multiple Platforms} \li \l{Creating a Mobile Application} \li \l{Debugging on Android Devices} diff --git a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc index 0cf0d35c5dd..cd64ccad70f 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc @@ -9,7 +9,7 @@ /*! \page creator-connecting-mobile.html - \previouspage creator-deployment-qnx.html + \previouspage creator-deployment-embedded-linux.html \nextpage creator-developing-android.html \title Connecting Devices @@ -40,32 +40,21 @@ Qt version targeting Android and the Android SDK and NDK to develop for Android devices. - \if defined(qtcreator) \li \l{Connecting Bare Metal Devices} You can connect bare metal devices to the development PC and use \QC to debug applications on them with GDB or a hardware debugger. - \endif \li \l{Connecting Boot2Qt Devices} You can connect \l{Boot2Qt} devices to the development PC to run, debug, and analyze applications built for them from \QC. - \if defined(qtcreator) \li \l {Adding Docker Devices} You can add Docker images as \e devices to run, debug, and analyze applications built for Docker containers from \QC. - \endif - \li \l{Connecting Generic Remote Linux Devices} - - If you have a tool chain for building applications for embedded - Linux devices installed on the development - PC, you can add it and the device to \QC. - - \if defined(qtcreator) \li \l{Connecting iOS Devices} You use the tools delivered with Xcode to connect devices to \QC. @@ -83,11 +72,15 @@ debug applications on them from within \QC. This is currently only supported for QNX Neutrino devices, and requires the QNX SDK to be installed on the development PC. - \endif + + \li \l{Connecting Remote Linux Devices} + + If you have a tool chain for building applications for embedded + Linux devices installed on the development + PC, you can add it and the device to \QC. \endlist - \if defined(qtcreator) \section1 Related Topics \list @@ -106,5 +99,4 @@ local Linux PC, remote generic SSH Linux targets, or \l{Boot2Qt}{Boot2Qt devices}. \endlist - \endif */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc index c0742a5f16f..8acb985d3c1 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-generic.qdoc @@ -129,11 +129,11 @@ \section1 Providing Deployment Information - If you want to run your application on a generic remote Linux device, + If you want to run your application on a remote Linux device, you first need to deploy your executable and possibly other files. \QC does that for you automatically if you provide the necessary information. This works the same way as explained for CMake in - \l {Deploying Applications to Generic Remote Linux Devices}, + \l {Deploying to Remote Linux}, except that you also need to include your application binary in the list. \section1 Creating a Run Configuration diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc index 03b835a27d0..91ce4b81c34 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-targets.qdoc @@ -30,7 +30,7 @@ \li \l{https://doc.qt.io/Boot2Qt/b2qt-installation-guides.html} {Boot2Qt Device} (commercial only) \li \l{Emulator}{Boot2Qt Emulator Device} (commercial only) - \li \l{Connecting Generic Remote Linux Devices}{Generic Remote Linux Device} + \li \l{Connecting Remote Linux Devices}{Remote Linux Device} \li \l{Connecting iOS Devices}{iOS Device} \li iOS Simulator \li \l{Connecting MCUs}{MCU Device} (commercial only) diff --git a/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc b/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc index 7e7b8e2059d..06fcb20abd5 100644 --- a/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc +++ b/doc/qtcreator/src/qnx/creator-deployment-qnx.qdoc @@ -9,11 +9,10 @@ // ********************************************************************** /*! - \previouspage creator-deployment-embedded-linux.html + \previouspage creator-deployment-b2qt.html \page creator-deployment-qnx.html - \nextpage creator-connecting-mobile.html - - \title Deploying Applications to QNX Neutrino Devices + \nextpage creator-deployment-embedded-linux.html + \title Deploying to QNX Neutrino You can specify settings for deploying applications to QNX Neutrino devices in the project configuration file and in \uicontrol Projects @@ -22,7 +21,7 @@ \image qtcreator-qnx-deployment.png "Deploy to device" The deployment process is described in more detail in - \l{Deploying Applications to Generic Remote Linux Devices}. + \l{Deploying to Remote Linux}. \section1 Finding Configured Devices diff --git a/doc/qtcreator/src/qnx/creator-developing-qnx.qdoc b/doc/qtcreator/src/qnx/creator-developing-qnx.qdoc index 546de76fcb3..d6da86d0eef 100644 --- a/doc/qtcreator/src/qnx/creator-developing-qnx.qdoc +++ b/doc/qtcreator/src/qnx/creator-developing-qnx.qdoc @@ -5,7 +5,7 @@ /*! \previouspage creator-developing-mcu.html \page creator-developing-qnx.html - \nextpage creator-setup-webassembly.html + \nextpage creator-developing-generic-linux.html \title Connecting QNX Devices @@ -19,7 +19,7 @@ \section1 Adding a QNX Neutrino Device in \QC Adding a QNX Neutrino device is very similar to - \l{Connecting Generic Remote Linux Devices}, except that + \l{Connecting Remote Linux Devices}, except that you need to select \uicontrol {QNX Device} in the \uicontrol {Device Configuration} wizard. diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 7a491e0312c..62fbde3516e 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -139,9 +139,10 @@ \li \l{Running on Multiple Platforms} \li \l{Deploying to Devices} \list - \li \l{Deploying Applications to Android Devices} - \li \l{Deploying Applications to Generic Remote Linux Devices} - \li \l{Deploying Applications to QNX Neutrino Devices} + \li \l{Deploying to Android} + \li \l{Deploying to Boot2Qt} + \li \l{Deploying to QNX Neutrino} + \li \l{Deploying to Remote Linux} \endlist \li \l{Connecting Devices} \list @@ -149,10 +150,10 @@ \li \l{Connecting Bare Metal Devices} \li \l{Connecting Boot2Qt Devices} \li \l{Adding Docker Devices} - \li \l{Connecting Generic Remote Linux Devices} \li \l{Connecting iOS Devices} \li \l{Connecting MCUs} \li \l{Connecting QNX Devices} + \li \l{Connecting Remote Linux Devices} \li \l{Building Applications for the Web} \endlist \li \l{Customizing the Build Process} diff --git a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc index 07b38ed7b92..d01c038ce5b 100644 --- a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc +++ b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc @@ -2,7 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! - \previouspage creator-developing-qnx.html + \previouspage creator-developing-generic-linux.html \page creator-setup-webassembly.html \nextpage creator-build-process-customizing.html From f57ec09ee8c5972d5cb04671d4537335f201b1d3 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 25 Oct 2022 16:37:48 +0200 Subject: [PATCH 15/49] Doc: Add debugger troubleshooting information From https://wiki.qt.io/Qt_Creator_Windows_Debugging Task-number: QTCREATORBUG-27876 Change-Id: I36b19311387a93f729aea1bbc28db125e1d1230c Reviewed-by: Cristian Adam Reviewed-by: hjk --- .../qtcreator-options-build-run-debuggers.png | Bin 37211 -> 0 bytes .../qtcreator-preferences-kits-debuggers.webp | Bin 0 -> 10300 bytes .../creator-only/creator-debugger-setup.qdoc | 25 ++++++---- .../creator-only/creator-debugger.qdoc | 45 ++++++++++++++++-- .../creator-projects-debuggers.qdoc | 13 ++++- 5 files changed, 67 insertions(+), 16 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-options-build-run-debuggers.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-kits-debuggers.webp diff --git a/doc/qtcreator/images/qtcreator-options-build-run-debuggers.png b/doc/qtcreator/images/qtcreator-options-build-run-debuggers.png deleted file mode 100644 index d4cac7e190a416fab0c369eb99c77f20a1482083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37211 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 \uicontrol Tools > \uicontrol {\QC}) or by using the stand-alone \QC + installation packages. - \note Visual Studio does not include the Debugging tools needed, - and therefore, you must install them separately. + The 32-bit CDB version can only debug 32-bit executables, whereas the 64-bit + version can debug both 64-bit and 32-bit executables. However, interrupting a + 32-bit executable with a 64-bit debugger can result in a stacktrace of the + WOW64 emulator 32-bit emulation layer being displayed. - In addition, you must select \uicontrol {\QC CDB Debugger Support} - (in \uicontrol Qt > \uicontrol Tools > \uicontrol {\QC}) when you install - Qt or the stand-alone \QC. + \QC extends the command line debugger by loading the + \c qtcreatorcdbext.dll extension library into it. The + library must be available in the \c {libs\qtcreatorcdbext64} + and \c {libs\qtcreatorcdbext32} folder. To install it there, + select \uicontrol {\QC CDB Debugger Support} when you install \QC. When manually building \QC using the Microsoft Visual C++ Compiler, the build process checks for the required files in \c{"%ProgramFiles%\Debugging Tools for Windows"}. + \section3 Symbol Server + It is highly recommended that you add the Symbol Server provided by Microsoft to the symbol search path of the debugger. The Symbol Server provides you with debugging informaton for the diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc index 8f929789059..e6c4ae95fbd 100644 --- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc +++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc @@ -1504,8 +1504,12 @@ \li Make sure you use at least \QC 3.0.1 - \li Make sure the debugger is set up properly. For more information, - see \l{Setting Up Debugger}. + \li Select the \inlineimage icons/run_small.png + (\uicontrol Run) button to verify that the + \l {Running on Multiple Platforms}{build and run kit selector} + picked a runnable target and you can run the application. + + \li Make sure the debugger is \l{Setting Up Debugger}{set up properly}. \li In the \uicontrol Debug mode, select \uicontrol View > \uicontrol Views > \uicontrol {Debugger Log} to open the @@ -1516,6 +1520,8 @@ \l{Pasting and Fetching Code Snippets}{code pasting service} before asking questions in the IRC (on the #qt-creator channel at Libera.Chat). + \note Error 135 usually means that a dependent DLL cannot be found. + \endlist \section1 Pointer Variable Members Are Not Displayed Directly @@ -1526,6 +1532,9 @@ select \uicontrol {Dereference Pointers Automatically} in the context menu in the \uicontrol Locals and \uicontrol Expressions views. + If you cannot view variables at all, check that you selected a \e debug build + configuration. + \section1 Structure Members Are Not Sorted According to Structure Layout By default, structure members are displayed in alphabetic order. To inspect @@ -1536,7 +1545,9 @@ \section1 Built-in Debugger Is Slow During Startup and Runtime Slowness that is related to the loading of debug information is hard to - avoid. + avoid. The following sections describe some possible solutions. + + \section2 Caching GDB Symbol Index When using GDB as backend, you can automatically save a copy of its symbol index in a cache on disk and retrieve it from there @@ -1546,12 +1557,38 @@ \image qtcreator-gdb-options.png "GDB preferences" - Some slowness stems from maintaining breakpoints inside + \section2 Minimizing Number of Breakpoints + + Some debugging slowness stems from maintaining breakpoints inside the debugger (under some circumstances all breakpoints need to be inserted and removed again for each step) and the evaluation of expressions after each step. We recommend that you minimize the number of breakpoints and watched expressions. + \section2 Cleaning Builds + + If out-of-date .pdb files make debugging slower, try a clean build. + + \section2 Disabling Incremental Linking + + Incremental linking can affect debugging. If the debugger log contains + the \e {Unable to verify checksum of module} message, disable incremental + linking. + + When using CMake as the build system, add the following line to the project + CMakeLists.txt file: + + \badcode + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO" ) + \endcode + + When using qmake as the build system, add the following line to the project + .pro file: + + \badcode + QMAKE_LFLAGS_DEBUG += /INCREMENTAL:NO + \endcode + \section1 Debugger Cannot Attach to Running Process on Linux GDB uses \c ptrace to attach to running processes. Some Linux distributions diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc index 878646e0bd2..15ee1ac0770 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc @@ -24,6 +24,10 @@ To override this choice, select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits. + For more information about setting up the debugger, see + \l {Setting Up Debugger}. If you encounter problems, see + \l {Troubleshooting Debugger}. + To add debuggers: \list 1 @@ -31,7 +35,7 @@ \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits > \uicontrol Debuggers > \uicontrol Add. - \image qtcreator-options-build-run-debuggers.png "Adding debuggers" + \image qtcreator-preferences-kits-debuggers.webp "Debuggers tab in Kits preferences" \li In the \uicontrol Name field, give a descriptive name for the debugger. @@ -40,7 +44,12 @@ \list \li For CDB (Windows only), specify the path to the Windows - Console Debugger executable. + Console Debugger executable, \c cdb.exe. + + The 32-bit version can only debug 32-bit executables, whereas + the 64-bit version can debug both 64-bit and 32-bit + executables. For more information, see + \l {Debugging Tools for Windows}. \li For GDB, specify the path to the GDB executable. The executable must be built with Python scripting support From fe376af66bca8d826336a14701b2e427d4bc5a3e Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 4 Nov 2022 16:14:22 +0100 Subject: [PATCH 16/49] Doc: Update File System view screenshot to show the number ...that is referred to in the text. Change-Id: If5f343d2b25ecf5cfc4761f2a1326903f8925f36 Reviewed-by: Reviewed-by: Eike Ziller --- .../images/qtcreator-filesystem-view.png | Bin 11245 -> 0 bytes .../images/qtcreator-filesystem-view.webp | Bin 0 -> 8870 bytes .../creator-file-system-view.qdoc | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 doc/qtcreator/images/qtcreator-filesystem-view.png create mode 100644 doc/qtcreator/images/qtcreator-filesystem-view.webp diff --git a/doc/qtcreator/images/qtcreator-filesystem-view.png b/doc/qtcreator/images/qtcreator-filesystem-view.png deleted file mode 100644 index d5feec005371b40d46515e5fd0938237a011c0c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11245 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 diff --git a/doc/qtcreator/images/qtcreator-filesystem-view.webp b/doc/qtcreator/images/qtcreator-filesystem-view.webp new file mode 100644 index 0000000000000000000000000000000000000000..957a0e4b1b9a8cbac30807f18004a06919d14142 GIT binary patch literal 8870 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 HJR=wYyycfD literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc b/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc index 3de554d9894..5567f14c1c5 100644 --- a/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc +++ b/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc @@ -17,7 +17,7 @@ \image qtcreator-filesystem-view-design.png "File System view in the Design mode" \else - \image qtcreator-filesystem-view.png "File System view in the sidebar" + \image qtcreator-filesystem-view.webp "File System view in the sidebar" \endif To move to the root directory of the file system, select \uicontrol Computer From 129448d61dfe2a283d293272a04e9b2d7542c28a Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 25 Oct 2022 08:57:49 +0200 Subject: [PATCH 17/49] QmlJS: Fix Follow under cursor When trying to jump to a symbol in a qml file the Qml Model may find the location in a generated .qml file in the build folder. QtCreator searches in all generated .qrc files to try and find the source file so it can jump to it instead. Previously not all auto-generated ".rcc" folders would be found as only the folders of targets (executables) were searched. Plugins or Static Libraries were not searched. With this fix, all projects nodes are searched for the ".rcc" folder and therefore also finds them for Dynamic / Static libraries and plugins. Fixes: QTCREATORBUG-27173 Change-Id: Ic51ac8fbc82c15785cbefd76787942a512ecf3db Reviewed-by: Reviewed-by: hjk --- src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 24 +++++++------- src/libs/qmljs/qmljsmodelmanagerinterface.h | 5 +-- .../cmakeprojectmanager/cmakebuildsystem.cpp | 4 +-- src/plugins/projectexplorer/project.cpp | 4 +++ src/plugins/projectexplorer/project.h | 1 + src/plugins/python/pythonproject.cpp | 3 +- src/plugins/qbsprojectmanager/qbsproject.cpp | 7 ++-- .../qmakeprojectmanager/qmakeproject.cpp | 5 +-- src/plugins/qmljstools/qmljsmodelmanager.cpp | 33 +++++++++++++++++-- src/plugins/qmljstools/qmljsmodelmanager.h | 3 +- src/plugins/qmlprojectmanager/qmlproject.cpp | 5 +-- 11 files changed, 67 insertions(+), 27 deletions(-) diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index fc31c30e1b7..9229ad7009d 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -432,15 +432,13 @@ bool pInfoLessThanImports(const ModelManagerInterface::ProjectInfo &p1, } -static QList generatedQrc(QList applicationDirectories) +static QSet generatedQrc( + const QList &projectInfos) { - QList res; - for (const Utils::FilePath &path : applicationDirectories) { - Utils::FilePath generatedQrcDir = path.pathAppended(".rcc"); - if (generatedQrcDir.isReadableDir()) { - for (const Utils::FilePath & qrcPath: generatedQrcDir.dirEntries(FileFilter(QStringList({QStringLiteral(u"*.qrc")}), QDir::Files))) - res.append(qrcPath.canonicalPath()); - } + QSet res; + for (const auto &pInfo : projectInfos) { + for (const auto &generatedQrcFile: pInfo.generatedQrcFiles) + res.insert(generatedQrcFile); } return res; } @@ -467,7 +465,7 @@ void ModelManagerInterface::iterateQrcFiles( qrcFilePaths = pInfo.activeResourceFiles; else qrcFilePaths = pInfo.allResourceFiles; - for (const Utils::FilePath &p : generatedQrc(pInfo.applicationDirectories)) + for (const Utils::FilePath &p : generatedQrc({pInfo})) qrcFilePaths.append(p); for (const Utils::FilePath &qrcFilePath : std::as_const(qrcFilePaths)) { if (pathsChecked.contains(qrcFilePath)) @@ -590,7 +588,7 @@ void ModelManagerInterface::updateProjectInfo(const ProjectInfo &pinfo, ProjectE m_qrcContents = pinfo.resourceFileContents; for (const Utils::FilePath &newQrc : std::as_const(pinfo.allResourceFiles)) m_qrcCache.addPath(newQrc.toString(), m_qrcContents.value(newQrc)); - for (const Utils::FilePath &newQrc : generatedQrc(pinfo.applicationDirectories)) + for (const Utils::FilePath &newQrc : pinfo.generatedQrcFiles) m_qrcCache.addPath(newQrc.toString(), m_qrcContents.value(newQrc)); for (const Utils::FilePath &oldQrc : std::as_const(oldInfo.allResourceFiles)) m_qrcCache.removePath(oldQrc.toString()); @@ -1293,7 +1291,7 @@ void ModelManagerInterface::updateImportPaths() allImportPaths.maybeInsert(path, Dialect::Qml); findNewQmlApplicationInPath(path, snapshot, this, &newLibraries); } - for (const Utils::FilePath &qrcPath : generatedQrc(allApplicationDirectories)) + for (const Utils::FilePath &qrcPath : generatedQrc(m_projects.values())) updateQrcFile(qrcPath); updateSourceFiles(importedFiles, true); @@ -1625,8 +1623,10 @@ ModelManagerInterface::ProjectInfo ModelManagerInterface::defaultProjectInfo() c } ModelManagerInterface::ProjectInfo ModelManagerInterface::defaultProjectInfoForProject( - ProjectExplorer::Project *) const + ProjectExplorer::Project *project, const FilePaths &hiddenRccFolders) const { + Q_UNUSED(project); + Q_UNUSED(hiddenRccFolders); return ModelManagerInterface::ProjectInfo(); } diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h index e5d29a90ff8..041cf9dfedd 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.h +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h @@ -51,6 +51,7 @@ public: PathsAndLanguages importPaths; QList activeResourceFiles; QList allResourceFiles; + QList generatedQrcFiles; QHash resourceFileContents; QList applicationDirectories; QHash moduleMappings; // E.g.: QtQuick.Controls -> MyProject.MyControls @@ -164,8 +165,8 @@ public: void setDefaultVContext(const ViewerContext &vContext); virtual ProjectInfo defaultProjectInfo() const; - virtual ProjectInfo defaultProjectInfoForProject(ProjectExplorer::Project *project) const; - + virtual ProjectInfo defaultProjectInfoForProject(ProjectExplorer::Project *project, + const Utils::FilePaths &hiddenRccFolders) const; // Blocks until all parsing threads are done. Use for testing only! void test_joinAllThreads(); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 0cf89fd241a..8e1f3b6e65e 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -1186,8 +1186,8 @@ void CMakeBuildSystem::updateQmlJSCodeModel(const QStringList &extraHeaderPaths, return; Project *p = project(); - QmlJS::ModelManagerInterface::ProjectInfo projectInfo = modelManager - ->defaultProjectInfoForProject(p); + QmlJS::ModelManagerInterface::ProjectInfo projectInfo + = modelManager->defaultProjectInfoForProject(p, p->files(Project::HiddenRccFolders)); projectInfo.importPaths.clear(); diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index de503fff874..afb7eca08c0 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -109,6 +109,10 @@ const Project::NodeMatcher Project::GeneratedFiles = [](const Node *node) { return isListedFileNode(node) && node->isGenerated(); }; +const Project::NodeMatcher Project::HiddenRccFolders = [](const Node *node) { + return node->isFolderNodeType() && node->filePath().fileName() == ".rcc"; +}; + // -------------------------------------------------------------------- // ProjectDocument: // -------------------------------------------------------------------- diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index 2a966f01bc9..1868ea50256 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -101,6 +101,7 @@ public: static const NodeMatcher AllFiles; static const NodeMatcher SourceFiles; static const NodeMatcher GeneratedFiles; + static const NodeMatcher HiddenRccFolders; Utils::FilePaths files(const NodeMatcher &matcher) const; bool isKnownFile(const Utils::FilePath &filename) const; diff --git a/src/plugins/python/pythonproject.cpp b/src/plugins/python/pythonproject.cpp index a255c5ab5c2..b06b822efa1 100644 --- a/src/plugins/python/pythonproject.cpp +++ b/src/plugins/python/pythonproject.cpp @@ -250,7 +250,8 @@ void PythonBuildSystem::triggerParsing() auto modelManager = QmlJS::ModelManagerInterface::instance(); if (modelManager) { - auto projectInfo = modelManager->defaultProjectInfoForProject(project()); + const auto hiddenRccFolders = project()->files(Project::HiddenRccFolders); + auto projectInfo = modelManager->defaultProjectInfoForProject(project(), hiddenRccFolders); for (const QString &importPath : std::as_const(m_qmlImportPaths)) { const FilePath filePath = FilePath::fromString(importPath); diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 1249025387a..c9e69b5fdcb 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -1052,8 +1052,9 @@ void QbsBuildSystem::updateQmlJsCodeModel() QmlJS::ModelManagerInterface *modelManager = QmlJS::ModelManagerInterface::instance(); if (!modelManager) return; - QmlJS::ModelManagerInterface::ProjectInfo projectInfo = - modelManager->defaultProjectInfoForProject(project()); + QmlJS::ModelManagerInterface::ProjectInfo projectInfo + = modelManager->defaultProjectInfoForProject(project(), + project()->files(Project::HiddenRccFolders)); const QJsonObject projectData = session()->projectData(); if (projectData.isEmpty()) @@ -1068,7 +1069,7 @@ void QbsBuildSystem::updateQmlJsCodeModel() }); project()->setProjectLanguage(ProjectExplorer::Constants::QMLJS_LANGUAGE_ID, - !projectInfo.sourceFiles.isEmpty()); + !projectInfo.sourceFiles.isEmpty()); modelManager->updateProjectInfo(projectInfo, project()); } diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 47adf657e9a..12176bb6194 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -410,8 +410,9 @@ void QmakeBuildSystem::updateQmlJSCodeModel() if (!modelManager) return; - QmlJS::ModelManagerInterface::ProjectInfo projectInfo = - modelManager->defaultProjectInfoForProject(project()); + QmlJS::ModelManagerInterface::ProjectInfo projectInfo + = modelManager->defaultProjectInfoForProject(project(), + project()->files(Project::HiddenRccFolders)); const QList proFiles = rootProFile()->allProFiles(); diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index bbed26eb41a..0aed233426c 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -81,8 +81,36 @@ static void setupProjectInfoQmlBundles(ModelManagerInterface::ProjectInfo &proje } } +static void findAllQrcFiles(const FilePath &filePath, FilePaths &out) +{ + filePath.iterateDirectory( + [&out](const FilePath &path) { + out.append(path.canonicalPath()); + return true; + }, + {{"*.qrc"}, QDir::Files}); +} + +static FilePaths findGeneratedQrcFiles(const ModelManagerInterface::ProjectInfo &pInfo, + const FilePaths &hiddenRccFolders) +{ + FilePaths result; + // Search in Application Directories for directories named ".rcc" + // and add all .qrc files in there to the resource file list. + for (const Utils::FilePath &path : pInfo.applicationDirectories) { + Utils::FilePath generatedQrcDir = path.pathAppended(".rcc"); + findAllQrcFiles(generatedQrcDir, result); + } + + for (const Utils::FilePath &hiddenRccFolder : hiddenRccFolders) { + findAllQrcFiles(hiddenRccFolder, result); + } + + return result; +} + ModelManagerInterface::ProjectInfo ModelManager::defaultProjectInfoForProject( - Project *project) const + Project *project, const FilePaths &hiddenRccFolders) const { ModelManagerInterface::ProjectInfo projectInfo; projectInfo.project = project; @@ -183,6 +211,7 @@ ModelManagerInterface::ProjectInfo ModelManager::defaultProjectInfoForProject( } setupProjectInfoQmlBundles(projectInfo); + projectInfo.generatedQrcFiles = findGeneratedQrcFiles(projectInfo, hiddenRccFolders); return projectInfo; } @@ -294,7 +323,7 @@ void ModelManager::updateDefaultProjectInfo() Project *currentProject = SessionManager::startupProject(); setDefaultProject(containsProject(currentProject) ? projectInfo(currentProject) - : defaultProjectInfoForProject(currentProject), + : defaultProjectInfoForProject(currentProject, {}), currentProject); } diff --git a/src/plugins/qmljstools/qmljsmodelmanager.h b/src/plugins/qmljstools/qmljsmodelmanager.h index c8e9d62058b..085d77b95e5 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.h +++ b/src/plugins/qmljstools/qmljsmodelmanager.h @@ -32,7 +32,8 @@ protected: WorkingCopy workingCopyInternal() const override; void addTaskInternal(const QFuture &result, const QString &msg, const char *taskId) const override; - ProjectInfo defaultProjectInfoForProject(ProjectExplorer::Project *project) const override; + ProjectInfo defaultProjectInfoForProject( + ProjectExplorer::Project *project, const Utils::FilePaths &hiddenRccFolders) const override; private: void updateDefaultProjectInfo(); void loadDefaultQmlTypeDescriptions(); diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index a64a3a888d9..88aea5cab41 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -312,8 +312,9 @@ void QmlBuildSystem::refresh(RefreshOptions options) if (!modelManager) return; - QmlJS::ModelManagerInterface::ProjectInfo projectInfo = - modelManager->defaultProjectInfoForProject(project()); + QmlJS::ModelManagerInterface::ProjectInfo projectInfo + = modelManager->defaultProjectInfoForProject(project(), + project()->files(Project::HiddenRccFolders)); const QStringList searchPaths = makeAbsolute(canonicalProjectDir(), customImportPaths()); for (const QString &searchPath : searchPaths) projectInfo.importPaths.maybeInsert(Utils::FilePath::fromString(searchPath), From 09047d5a99dbc4ca47a001b6976f9d2432135811 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 7 Nov 2022 14:29:01 +0100 Subject: [PATCH 18/49] AutoTest: Log info messages as well Amends f792dc0216fc1fdae1e9d4421ccb489cae2aac2f. Task-number: QTCREATORBUG-28394 Change-Id: I5bf9bb29a56e57ce0440ac1a831d6d552f93d791 Reviewed-by: David Schulz --- src/plugins/autotest/catch/catchoutputreader.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/autotest/catch/catchoutputreader.cpp b/src/plugins/autotest/catch/catchoutputreader.cpp index 3d79f683b73..22918e75cba 100644 --- a/src/plugins/autotest/catch/catchoutputreader.cpp +++ b/src/plugins/autotest/catch/catchoutputreader.cpp @@ -18,6 +18,7 @@ namespace CatchXml { const char TestCaseElement[] = "TestCase"; const char SectionElement[] = "Section"; const char ExceptionElement[] = "Exception"; + const char InfoElement[] = "Info"; const char WarningElement[] = "Warning"; const char FailureElement[] = "Failure"; const char ExpressionElement[] = "Expression"; @@ -106,6 +107,8 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin m_currentResult = m_mayFail || m_shouldFail ? ResultType::ExpectedFail : ResultType::Fail; } else if (m_currentTagName == CatchXml::WarningElement) { m_currentResult = ResultType::MessageWarn; + } else if (m_currentTagName == CatchXml::InfoElement) { + m_currentResult = ResultType::MessageInfo; } else if (m_currentTagName == CatchXml::FailureElement) { m_currentResult = ResultType::Fail; recordTestInformation(m_xmlReader.attributes()); @@ -129,6 +132,7 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin if (m_currentTagName == CatchXml::ExpandedElement) { m_currentExpression.append(text); } else if (m_currentTagName == CatchXml::ExceptionElement + || m_currentTagName == CatchXml::InfoElement || m_currentTagName == CatchXml::WarningElement || m_currentTagName == CatchXml::FailureElement) { m_currentExpression.append('\n').append(text.trimmed()); @@ -152,7 +156,8 @@ void CatchOutputReader::processOutputLine(const QByteArray &outputLineWithNewLin sendResult(m_currentResult); m_currentExpression.clear(); m_testCaseInfo.pop(); - } else if (currentTag == QLatin1String(CatchXml::WarningElement)) { + } else if (currentTag == QLatin1String(CatchXml::WarningElement) + || currentTag == QLatin1String(CatchXml::InfoElement)) { sendResult(m_currentResult); m_currentExpression.clear(); } @@ -268,7 +273,7 @@ void CatchOutputReader::sendResult(const ResultType result) .arg(catchResult->description())); } else if (result == ResultType::Benchmark || result == ResultType::MessageFatal) { catchResult->setDescription(m_currentExpression); - } else if (result == ResultType::MessageWarn) { + } else if (result == ResultType::MessageWarn || result == ResultType::MessageInfo) { catchResult->setDescription(m_currentExpression.trimmed()); } From c392cb8acf89aeca5cba9813e4926829be8b981d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 26 Oct 2022 08:35:00 +0200 Subject: [PATCH 19/49] MesonPM: Only set tools if possible Avoids triggering a soft assert. Change-Id: I86dd6fd3876504abc3ecf5b543e7c86d886bb4c2 Reviewed-by: Reviewed-by: Alexis Jeandet Reviewed-by: hjk --- src/plugins/mesonprojectmanager/toolkitaspectwidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/mesonprojectmanager/toolkitaspectwidget.cpp b/src/plugins/mesonprojectmanager/toolkitaspectwidget.cpp index 95637f15ed0..2c3de58c70e 100644 --- a/src/plugins/mesonprojectmanager/toolkitaspectwidget.cpp +++ b/src/plugins/mesonprojectmanager/toolkitaspectwidget.cpp @@ -61,6 +61,8 @@ void ToolKitAspectWidget::removeTool(const MesonTools::Tool_t &tool) void ToolKitAspectWidget::setCurrentToolIndex(int index) { + if (m_toolsComboBox->count() == 0) + return; const Utils::Id id = Utils::Id::fromSetting(m_toolsComboBox->itemData(index)); if (m_type == ToolType::Meson) MesonToolKitAspect::setMesonTool(m_kit, id); From d881932695756a735d5dd151da3ff03e0bb00d54 Mon Sep 17 00:00:00 2001 From: Kwangsub Kim Date: Thu, 20 Oct 2022 16:55:41 +0200 Subject: [PATCH 20/49] McuSupport: Update library path for Windows platform The Qt shared library for Windows desktop platform has been moved from Qul 2.3.0 to support MinGW toolchain. The updated library path needs to be configured correctly. Task-number: QTCREATORBUG-28303 Change-Id: I7cf8150bfb4a66731904ea49089849496305f22e Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/mcusupport/mcukitmanager.cpp | 28 +++++++++++++++++++----- src/plugins/mcusupport/mcutarget.cpp | 20 +++++++++++++++++ src/plugins/mcusupport/mcutarget.h | 1 + 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index 19917de3bb7..ae5c5f4b153 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -196,12 +196,22 @@ public: EnvironmentItems changes; QStringList pathAdditions; // clazy:exclude=inefficient-qlist-soft - // The Desktop version depends on the Qt shared libs in Qul_DIR/bin. - // If CMake's fileApi is avaialble, we can rely on the "Add library search path to PATH" - // feature of the run configuration. Otherwise, we just prepend the path, here. - if (mcuTarget->toolChainPackage()->isDesktopToolchain() - && !CMakeProjectManager::CMakeToolManager::defaultCMakeTool()->hasFileApi()) - pathAdditions.append((qtForMCUsSdkPackage->path() / "bin").toUserOutput()); + // The Desktop version depends on the Qt shared libs. + // As CMake's fileApi is available, we can rely on the "Add library search path to PATH" + // feature of the run configuration. + // + // Since MinGW support is added from Qul 2.3.0, + // the Qt shared libs for Windows desktop platform have been moved + // from Qul_DIR/bin to Qul_DIR/lib/(msvc|gnu) + // and the QPA plugin has been moved to the same location. + // So Windows host requires to add the path in this case. + if (mcuTarget->toolChainPackage()->isDesktopToolchain() && HostOsInfo::isWindowsHost() + && !McuSupportOptions::isLegacyVersion(mcuTarget->qulVersion())) { + const FilePath libPath = (qtForMCUsSdkPackage->path() / "lib" + / mcuTarget->desktopCompilerId()); + pathAdditions.append(libPath.toUserOutput()); + changes.append({"QT_QPA_PLATFORM_PLUGIN_PATH", libPath.toUserOutput()}); + } auto processPackage = [&pathAdditions](const McuPackagePtr &package) { if (package->isAddToSystemPath()) @@ -261,6 +271,12 @@ public: true); } + if (!McuSupportOptions::isLegacyVersion(mcuTarget->qulVersion()) + && HostOsInfo::isWindowsHost()) { + // From 2.3.0, QUL_COMPILER_NAME needs to be set on Windows + // to select proper cmake files depending on the toolchain for Windows. + configMap.insert("QUL_COMPILER_NAME", mcuTarget->desktopCompilerId().toLatin1()); + } } else { const FilePath cMakeToolchainFile = mcuTarget->toolChainFilePackage()->path(); diff --git a/src/plugins/mcusupport/mcutarget.cpp b/src/plugins/mcusupport/mcutarget.cpp index 4314bdb72ad..2ca6e2596a1 100644 --- a/src/plugins/mcusupport/mcutarget.cpp +++ b/src/plugins/mcusupport/mcutarget.cpp @@ -61,6 +61,26 @@ bool McuTarget::isValid() const }); } +QString McuTarget::desktopCompilerId() const +{ + // MinGW shares CMake configuration with GCC + // and it is distinguished from MSVC by CMake compiler ID. + // This provides the compiler ID to set up a different Qul configuration + // for MSVC and MinGW. + if (m_toolChainPackage) { + switch (m_toolChainPackage->toolchainType()) { + case McuToolChainPackage::ToolChainType::MSVC: + return QLatin1String("msvc"); + case McuToolChainPackage::ToolChainType::GCC: + case McuToolChainPackage::ToolChainType::MinGW: + return QLatin1String("gnu"); + default: + return QLatin1String("unsupported"); + } + } + return QLatin1String("invalid"); +} + void McuTarget::printPackageProblems() const { for (auto package : packages()) { diff --git a/src/plugins/mcusupport/mcutarget.h b/src/plugins/mcusupport/mcutarget.h index d42cf015d73..6dd1cd5fe35 100644 --- a/src/plugins/mcusupport/mcutarget.h +++ b/src/plugins/mcusupport/mcutarget.h @@ -53,6 +53,7 @@ public: OS os() const; int colorDepth() const; bool isValid() const; + QString desktopCompilerId() const; void printPackageProblems() const; private: From 657cc181fefae51e8793c2236f8fe1f07d94f4dc Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 7 Nov 2022 22:25:22 +0100 Subject: [PATCH 21/49] CMakeProjectManager: Deduplicate string "-DQT_QML_DEBUG" Change-Id: Ice9bc9b1ee17d477a484b9f4d630737f6633c06c Reviewed-by: Eike Ziller --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index b6b0947dd59..cfc10a31ac4 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -88,6 +88,7 @@ const char DEVELOPMENT_TEAM_FLAG[] = "Ios:DevelopmentTeam:Flag"; const char PROVISIONING_PROFILE_FLAG[] = "Ios:ProvisioningProfile:Flag"; const char CMAKE_OSX_ARCHITECTURES_FLAG[] = "CMAKE_OSX_ARCHITECTURES:DefaultFlag"; const char QT_QML_DEBUG_FLAG[] = "Qt:QML_DEBUG_FLAG"; +const char QT_QML_DEBUG_PARAM[] = "-DQT_QML_DEBUG"; const char CMAKE_QT6_TOOLCHAIN_FILE_ARG[] = "-DCMAKE_TOOLCHAIN_FILE:FILEPATH=%{Qt:QT_INSTALL_PREFIX}/lib/cmake/Qt6/qt.toolchain.cmake"; const char CMAKE_BUILD_TYPE[] = "CMake.Build.Type"; @@ -876,7 +877,7 @@ CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags() "CMAKE_CXX_FLAGS_RELWITHDEBINFO", "CMAKE_CXX_FLAGS_INIT"}; const QByteArrayList cxxFlags{"CMAKE_CXX_FLAGS_INIT", "CMAKE_CXX_FLAGS"}; - const QByteArray qmlDebug("-DQT_QML_DEBUG"); + const QByteArray qmlDebug(QT_QML_DEBUG_PARAM); CMakeConfig changedConfig; @@ -1446,8 +1447,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id) [this] { if (aspect()->value() == TriState::Enabled) { - return QLatin1String( - "-DQT_QML_DEBUG"); + return QLatin1String(QT_QML_DEBUG_PARAM); } return QLatin1String(); }); @@ -1665,7 +1665,7 @@ bool CMakeBuildConfiguration::hasQmlDebugging(const CMakeConfig &config) // such that in doubt we leave the QML Debugging setting at "Leave at default" const QString cxxFlagsInit = config.stringValueOf("CMAKE_CXX_FLAGS_INIT"); const QString cxxFlags = config.stringValueOf("CMAKE_CXX_FLAGS"); - return cxxFlagsInit.contains("-DQT_QML_DEBUG") && cxxFlags.contains("-DQT_QML_DEBUG"); + return cxxFlagsInit.contains(QT_QML_DEBUG_PARAM) && cxxFlags.contains(QT_QML_DEBUG_PARAM); } void CMakeBuildConfiguration::buildTarget(const QString &buildTarget) From 48c7e78e0156828a092a3cb62593a2beade5934d Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 21 Oct 2022 14:18:36 +0200 Subject: [PATCH 22/49] German translation: TextEditor plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie4dfe8001ecb51e7f012080230da0ca4c0ccd56f Reviewed-by: Reviewed-by: David Schulz Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 170 ++++++++++--------- 1 file changed, 87 insertions(+), 83 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 3233eb33bca..0d315bcb96e 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -12190,15 +12190,15 @@ Rename %2 to %3 anyway? Unset - + Aufheben Unset foreground. - + Zeichenfarbe aufheben. Unset background. - + Hintergrundfarbe aufheben. Font @@ -12259,7 +12259,8 @@ Rename %2 to %3 anyway? A line spacing value other than 100% disables text wrapping. A value less than 100% can result in overlapping and misaligned graphics. - + Wenn Sie den Zeilenabstand auf einen anderen Wert als 100% setzen, wird die Einstellung für Textumbruch deaktiviert. +Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellung zur Folge haben. Copy... @@ -12275,11 +12276,11 @@ A value less than 100% can result in overlapping and misaligned graphics. Import - Import + Importieren Export - Export + Exportieren Zoom: @@ -12287,7 +12288,7 @@ A value less than 100% can result in overlapping and misaligned graphics. Line spacing: - + Zeilenabstand: Color Scheme for Theme "%1" @@ -12315,15 +12316,15 @@ A value less than 100% can result in overlapping and misaligned graphics. Import Color Scheme - + Farbschema importieren Color scheme (*.xml);;All files (*) - + Farbschema (*.xml);;Alle Dateien (*) Export Color Scheme - + Farbschema exportieren Color Scheme Changed @@ -12346,11 +12347,11 @@ A value less than 100% can result in overlapping and misaligned graphics.TextEditor::Internal::LineNumberFilter Jumps to the given line in the current document. - + Springt im aktuellen Dokument zur angegebenen Zeile. <line>:<column> - <Zeilennummer>:<Spaltennummer> + <Zeilennummer>:<Spaltennummer> Line %1, Column %2 @@ -15539,15 +15540,15 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa Display Function Hint - + Funktionsdetails anzeigen Meta+Shift+D - + Meta+Shift+D Ctrl+Shift+D - + Ctrl+Shift+D Trigger Refactoring Action @@ -15592,7 +15593,7 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa Word under the current document's text cursor. - + Wort an der Einfügemarke des aktuellen Dokuments. @@ -16946,7 +16947,7 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden Not a valid trigger. A valid trigger can only contain letters, numbers, or underscores, where the first character is limited to letter or underscore. - + Kein gültiger Auslöser. Ein gültiger Auslöser kann nur Buchstaben, Zahlen oder Unterstriche enthalten. Das erste Zeichen muss ein Buchstabe oder Unterstrich sein. Trigger @@ -21419,23 +21420,23 @@ When disabled, moves targets straight to the current mouse position. TextEditor::CodeStyleSelectorWidget Copy... - Kopieren... + Kopieren... Remove - + Entfernen Export... - Exportieren... + Exportieren... Import... - Importieren... + Importieren... Current settings: - Gegenwärtige Einstellungen: + Aktuelle Einstellungen: Copy Code Style @@ -21576,7 +21577,7 @@ Außer: %3 TextEditor::CodeStyleEditor Edit preview contents to see how the current settings are applied to custom code snippets. Changes in the preview do not affect the current settings. - Ändern Sie den Inhalt der Vorschau, um zu sehen wie sich die gegenwärtigen Einstellungen auf die benutzerdefinierten Snippets auswirken. Änderungen der Vorschau haben keinen Einfluss auf die Einstellungen. + Ändern Sie den Inhalt der Vorschau, um zu sehen wie sich die aktuellen Einstellungen auf die benutzerdefinierten Snippets auswirken. Änderungen der Vorschau haben keinen Einfluss auf die Einstellungen. @@ -22503,7 +22504,7 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di Backspace indentation: - Einrückung bei Rücktaste: + Einrückung bei Rücktaste: <html><head/><body> @@ -22549,7 +22550,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Prefer single line comments - + Einzeilige Kommentare bevorzugen Tab key performs auto-indent: @@ -22645,7 +22646,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Default encoding: - + Zeichenkodierungs-Vorgabe: Show help tooltips using the mouse: @@ -22709,7 +22710,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. List of wildcard-aware file patterns, separated by commas or semicolons. - Eine durch Kommas oder Semikolons getrennte Liste von Dateinamen. (Platzhalter sind möglich) + Eine durch Kommas oder Semikola getrennte Liste von Dateinamen. (Platzhalter sind möglich). Displays context-sensitive help or type information on mouseover. @@ -22800,19 +22801,19 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. <i>Set <a href="font zoom">font line spacing</a> to 100% to enable text wrapping option.</i> - + <i>Setzen Sie den <a href="font zoom">Zeilenabstand</a> des Zeichensatzes auf 100%, um die Einstellung für Textumbruch zu aktivieren.</i> Tint whole margin area - + Rand einfärben Use context-specific margin - + Kontextabhängigen Rand verwenden If available, use a different margin. For example, the ColumnLimit from the ClangFormat plugin. - + Benutzt einen anderen Rand, falls verfügbar. Zum Beispiel das ColumnLimit vom ClangFormat Plugin. Animate navigation within file @@ -22820,11 +22821,11 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Visualize indent - + Einrückung Visualisieren Display file line ending - + Zeilenende-Kodierung anzeigen Next to editor content @@ -22844,11 +22845,11 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Margin - Rand + Rand Wrapping - + Umbruch Between lines @@ -22922,7 +22923,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Group: - Gruppe: + Gruppe: Restore Removed Built-ins @@ -35132,7 +35133,7 @@ konnte dem Projekt "%2" nicht hinzugefügt werden. Snippet Parse Error - + Fehler beim Lesen des Snippets Zoom: %1% @@ -36392,7 +36393,7 @@ Error: Ctrl+Backspace - + Ctrl+Backspace Delete Word up to Cursor @@ -36572,11 +36573,11 @@ Error: Paste Without Formatting - + Ohne Formatierung einfügen Ctrl+Alt+Shift+V - + Ctrl+Alt+Shift+V Auto-&indent Selection @@ -36660,23 +36661,23 @@ Error: Copy With Highlighting - + Mit Syntaxhervorhebung kopieren Create Cursors at Selected Line Ends - + Einfügemarken an ausgewählten Zeilenenden hinzufügen Alt+Shift+I - + Alt+Shift+I Add Next Occurrence to Selection - + Nächstes Vorkommen zur Auswahl hinzufügen Ctrl+D - + Ctrl+D &Duplicate Selection @@ -39162,7 +39163,7 @@ Sie werden erhalten. Character threshold: - + Minimale Zeichenanzahl: Inserts the common prefix of available completion items. @@ -39250,7 +39251,7 @@ Drücken Sie zusätzlich die Umschalttaste, wird ein Escape-Zeichen an der aktue Skip automatically inserted character if re-typed manually after completion or by pressing tab. - + Automatisch eingefügtes Zeichen überspringen, wenn es nach der Vervollständigung erneut eingegeben oder die Tabulatortaste gedrückt wird. Enable Doxygen blocks @@ -41308,30 +41309,33 @@ Wird auf Zeichen angewendet, sofern keine andere Regel zutrifft. Search Result (Alternative 1) - + Suchergebnis (Alternative 1) Highlighted search results inside the editor. Used to mark read accesses to C++ symbols. - + Hervorgehobene Suchergebnisse im Editor. +Wird benutzt, um Lesezugriffe eines C++-Symbols zu markieren. Search Result (Alternative 2) - + Suchergebnis (Alternative 2) Highlighted search results inside the editor. Used to mark write accesses to C++ symbols. - + Hervorgehobene Suchergebnisse im Editor. +Wird benutzt, um Schreibzugriffe eines C++-Symbols zu markieren. Search Result Containing function - + Funktion mit Suchergebnis Highlighted search results inside the editor. Used to mark containing function of the symbol usage. - + Hervorgehobene Suchergebnisse im Editor. +Wird benutzt um die Funktion zu markieren, die ein gesuchtes Symbol benutzt. Search Scope @@ -41441,11 +41445,11 @@ Used to mark containing function of the symbol usage. Namespace - + Namensraum Name of a namespace. - + Name eines Namensraums. Local @@ -41457,11 +41461,11 @@ Used to mark containing function of the symbol usage. Parameter - + Parameter Function or method parameters. - + Funktionen- oder Methodenparameter. Field @@ -41497,11 +41501,11 @@ Used to mark containing function of the symbol usage. Declaration - + Deklaration Style adjustments to declarations. - + Stilanpassungen für Deklarationen. Virtual Function @@ -41635,11 +41639,11 @@ Um den Stil von benutzerdefinierten Operatoren festzulegen, benutzen Sie " Macro - Makro + Makro Macros. - + Makros. Label @@ -41853,71 +41857,71 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. Static Member - + Statische Member Names of static fields or member functions. - + Namen statischer Memberdaten oder Memberfunktionen. Code Coverage Added Code - + Code Coverage hinzugefügter Code New code that was not checked for tests. - + Neuer Code, der nicht auf Tests geprüft wurde. Partially Covered Code - + Teilweise erfasster Code Partial branch/condition coverage. - + Teilweise Erfassung von Verzweigungen/Bedingungen. Uncovered Code - + Nicht erfasster Code Not covered at all. - + Nicht erfasster Code. Fully Covered Code - + Komplett erfasster Code Fully covered code. - + Komplett erfasster Code. Manually Validated Code - + Manuell validierter Code User added validation. - + Vom Benutzer hinzugefügte Validierung. Code Coverage Dead Code - + Code Coverage unerreichbarer Code Unreachable code. - + Unerreichbarer Code. Code Coverage Execution Count Too Low - + Code Coverage Anzahl der Ausführungen zu klein Minimum count not reached. - + Minimale Anzahl wurde nicht erreicht. Implicitly Not Covered Code - + Implizit nicht erfasster Code PLACEHOLDER @@ -41925,11 +41929,11 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. Implicitly Covered Code - + Implizit erfasster Code Implicit Manual Coverage Validation - + Implizit manuell validierter Code Overloaded Operators @@ -44621,7 +44625,7 @@ You might find further explanations in the Application Output view. Highlighter updates: starting - + Aktualisierungen der Syntaxhervorhebung: startet @@ -53101,7 +53105,7 @@ in "%2". TextMark Copy to Clipboard - In die Zwischenablage kopieren + In die Zwischenablage kopieren @@ -57750,7 +57754,7 @@ Failed to open file "%1" TextEditor::TextMark Show Diagnostic Settings - + Diagnosekonfiguration anzeigen From 56bc91d0d8711a1549fcacfddef916f41d3cd539 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 14 Oct 2022 14:49:49 +0200 Subject: [PATCH 23/49] German translation: Welcome plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8d50831e3fc20364c4738c0fe64ca2feacf72c41 Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 0d315bcb96e..1e5128d39a4 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -20070,19 +20070,19 @@ Speichern fehlgeschlagen. Create Project... - + Projekt erstellen... Open Project... - + Projekt öffnen... Get Started - + Schnelleinstieg Get Qt - + Qt Qt Account @@ -20118,7 +20118,7 @@ Speichern fehlgeschlagen. <p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Welcome:</td><td>Open examples, tutorials, and recent sessions and projects.</td></tr><tr><td>Edit:</td><td>Work with code and navigate your project.</td></tr><tr><td>Design:</td><td>Visually edit Widget-based user interfaces, state charts and UML models.</td></tr><tr><td>Debug:</td><td>Analyze your application with a debugger or other analyzers.</td></tr><tr><td>Projects:</td><td>Manage project settings.</td></tr><tr><td>Help:</td><td>Browse the help database.</td></tr></table></p> - + <p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Willkommen:</td><td>Öffnen Sie Beispiele, Anleitungen, sowie kürzlich verwendete Sitzungen und Projekte.</td></tr><tr><td>Editieren:</td><td>Arbeiten Sie am Quelltext und navigieren Sie im Projekt.</td></tr><tr><td>Design:</td><td>Bearbeiten Sie Oberflächendesigns für Qt Widgets, State Charts und UML-Modelle.</td></tr><tr><td>Debug:</td><td>Analysieren Sie Ihre Anwendung mit einem Debugger oder anderen Werkzeugen.</td></tr><tr><td>Projekte:</td><td>Verwalten Sie Projekteinstellungen.</td></tr><tr><td>Hilfe:</td><td>Durchsuchen Sie die Hilfedatenbank.</td></tr></table></p> Kit Selector @@ -20166,11 +20166,11 @@ Speichern fehlgeschlagen. Output - Ausgaben + Ausgaben Pressing the Escape key brings you back to the editor. Press it multiple times to also hide context help and output, giving the editor more space. - + Wenn Sie die "Escape"-Taste betätigen, kommen Sie zurück zum Editor. Betätigen Sie sie mehrmals, um auch Ausgabebereiche sowie Kontexthilfe auszublenden und dem Editor mehr Platz zu geben. Find compile and application output here, as well as a list of configuration and build issues, and the panel for global searches. From bb3e9c44be2bf77ef22da2ba8036dc5244323d06 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 8 Nov 2022 11:38:07 +0100 Subject: [PATCH 24/49] Android: Fix reference to out of scope variable Change-Id: I49ea5c059ed68230e368d8de2aaddca979019bfa Reviewed-by: Alessandro Portale Reviewed-by: --- src/plugins/android/androiddevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index c65db2ec181..0526c8e691f 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -512,7 +512,7 @@ void AndroidDeviceManager::setupWifiForDevice(const IDevice::Ptr &device, QWidge return; } - QTimer::singleShot(2000, parent, [adbSelector, &parent]() { + QTimer::singleShot(2000, parent, [adbSelector, parent]() { // Get device IP address QStringList args = adbSelector; args.append({"shell", "ip", "route"}); From 3c6435387b5219e056592efc21bb5c09eaa432ce Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 7 Nov 2022 12:48:02 +0100 Subject: [PATCH 25/49] QmlJS: Fix cursor position and breakpoints when reformatting Use the intelligent partial text replacement logic that is also used for e.g. the Beautifier formatters. Fixes: QTCREATORBUG-28349 Fixes: QTCREATORBUG-25218 Change-Id: I9ae4052df27c8aa2012106a8ef8f624ba5f3c30b Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/plugins/qmljseditor/qmljseditorplugin.cpp | 33 +++++++------------ src/plugins/texteditor/formattexteditor.cpp | 2 +- src/plugins/texteditor/formattexteditor.h | 1 + 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp index 14560665630..8c77a85431b 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.cpp +++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp @@ -20,22 +20,23 @@ #include #include -#include -#include -#include #include +#include #include +#include #include -#include +#include #include -#include #include +#include +#include +#include #include -#include #include +#include #include -#include #include +#include #include #include @@ -258,24 +259,14 @@ void QmlJSEditorPluginPrivate::reformatFile() tabSettings.m_tabSize, QmlJSTools::QmlJSToolsSettings::globalCodeStyle()->currentCodeStyleSettings().lineLength); - // QTextDocument::setPlainText cannot be used, as it would reset undo/redo history - const auto setNewText = [this, &newText]() { + auto ed = qobject_cast(EditorManager::currentEditor()); + if (ed) { + TextEditor::updateEditorText(ed->editorWidget(), newText); + } else { QTextCursor tc(m_currentDocument->document()); tc.movePosition(QTextCursor::Start); tc.movePosition(QTextCursor::End, QTextCursor::KeepAnchor); tc.insertText(newText); - }; - - IEditor *ed = EditorManager::currentEditor(); - if (ed) { - QByteArray state = ed->saveState(); - int line = ed->currentLine(); - int column = ed->currentColumn(); - setNewText(); - ed->gotoLine(line, column - 1); - ed->restoreState(state); - } else { - setNewText(); } } } diff --git a/src/plugins/texteditor/formattexteditor.cpp b/src/plugins/texteditor/formattexteditor.cpp index d602ff3d652..0753cf6f201 100644 --- a/src/plugins/texteditor/formattexteditor.cpp +++ b/src/plugins/texteditor/formattexteditor.cpp @@ -132,7 +132,7 @@ static FormatTask format(FormatTask task) * actually changed parts are updated while preserving the cursor position, the folded * blocks, and the scroll bar position. */ -static void updateEditorText(QPlainTextEdit *editor, const QString &text) +void updateEditorText(QPlainTextEdit *editor, const QString &text) { const QString editorText = editor->toPlainText(); if (editorText == text) diff --git a/src/plugins/texteditor/formattexteditor.h b/src/plugins/texteditor/formattexteditor.h index fc974ee9dba..5e4a98d6731 100644 --- a/src/plugins/texteditor/formattexteditor.h +++ b/src/plugins/texteditor/formattexteditor.h @@ -44,5 +44,6 @@ TEXTEDITOR_EXPORT void formatEditor(TextEditorWidget *editor, const TextEditor:: int startPos = -1, int endPos = 0); TEXTEDITOR_EXPORT void formatEditorAsync(TextEditorWidget *editor, const TextEditor::Command &command, int startPos = -1, int endPos = 0); +TEXTEDITOR_EXPORT void updateEditorText(QPlainTextEdit *editor, const QString &text); } // namespace TextEditor From 08002c6278383363838d36fba05946f53e5152f7 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 7 Nov 2022 12:02:07 +0100 Subject: [PATCH 26/49] Editor: delete assist interface in lsp/clangd support The complete memory management in the code assistant needs an overhaul. For now just delete or at least track the assist interface with scoped pointers. Fixes: QTCREATORBUG-28408 Change-Id: I0bd4cfaa36a660b6fd5bb467af3b13414ed76e63 Reviewed-by: Jarek Kobus Reviewed-by: Christian Kandeler Reviewed-by: --- src/plugins/clangcodemodel/clangdcompletion.cpp | 1 + src/plugins/clangcodemodel/clangdfollowsymbol.cpp | 4 +++- .../languageclient/languageclientcompletionassist.cpp | 7 ++++--- .../languageclient/languageclientcompletionassist.h | 3 ++- src/plugins/languageclient/languageclientfunctionhint.cpp | 3 +++ src/plugins/texteditor/codeassist/iassistprocessor.h | 2 +- 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdcompletion.cpp b/src/plugins/clangcodemodel/clangdcompletion.cpp index 0263380ab87..921b3aa19e8 100644 --- a/src/plugins/clangcodemodel/clangdcompletion.cpp +++ b/src/plugins/clangcodemodel/clangdcompletion.cpp @@ -417,6 +417,7 @@ IAssistProposal *CustomAssistProcessor::perform(const AssistInterface *interface break; } } + delete interface; GenericProposalModelPtr model(new GenericProposalModel); model->loadContent(completions); const auto proposal = new GenericProposal(m_position, model); diff --git a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp index 8c249d30727..7765dee2336 100644 --- a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp +++ b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -41,8 +42,9 @@ public: void resetData(bool resetFollowSymbolData); private: - IAssistProposal *perform(const AssistInterface *) override + IAssistProposal *perform(const AssistInterface *interface) override { + delete interface; return nullptr; } diff --git a/src/plugins/languageclient/languageclientcompletionassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp index fd8346962a5..2c757d7808f 100644 --- a/src/plugins/languageclient/languageclientcompletionassist.cpp +++ b/src/plugins/languageclient/languageclientcompletionassist.cpp @@ -293,7 +293,8 @@ LanguageClientCompletionAssistProcessor::~LanguageClientCompletionAssistProcesso QTextDocument *LanguageClientCompletionAssistProcessor::document() const { - return m_document; + QTC_ASSERT(m_assistInterface, return nullptr); + return m_assistInterface->textDocument(); } QList LanguageClientCompletionAssistProcessor::generateCompletionItems( @@ -315,6 +316,7 @@ static QString assistReasonString(AssistReason reason) IAssistProposal *LanguageClientCompletionAssistProcessor::perform(const AssistInterface *interface) { + m_assistInterface.reset(interface); QTC_ASSERT(m_client, return nullptr); m_pos = interface->position(); m_basePos = m_pos; @@ -366,7 +368,6 @@ IAssistProposal *LanguageClientCompletionAssistProcessor::perform(const AssistIn m_client->sendMessage(completionRequest); m_client->addAssistProcessor(this); m_currentRequest = completionRequest.id(); - m_document = interface->textDocument(); m_filePath = interface->filePath(); qCDebug(LOGLSPCOMPLETION) << QTime::currentTime() << " : request completions at " << m_pos @@ -425,7 +426,7 @@ void LanguageClientCompletionAssistProcessor::handleCompletionResponse( model->loadContent(proposalItems); LanguageClientCompletionProposal *proposal = new LanguageClientCompletionProposal(m_basePos, model); - proposal->m_document = m_document; + proposal->m_document = m_assistInterface->textDocument(); proposal->m_pos = m_pos; proposal->setSupportsPrefix(false); setAsyncProposalAvailable(proposal); diff --git a/src/plugins/languageclient/languageclientcompletionassist.h b/src/plugins/languageclient/languageclientcompletionassist.h index e78d1b795e9..2e46df1f092 100644 --- a/src/plugins/languageclient/languageclientcompletionassist.h +++ b/src/plugins/languageclient/languageclientcompletionassist.h @@ -11,6 +11,7 @@ #include #include +#include #include #include @@ -74,7 +75,7 @@ protected: private: void handleCompletionResponse(const LanguageServerProtocol::CompletionRequest::Response &response); - QPointer m_document; + QScopedPointer m_assistInterface; Utils::FilePath m_filePath; QPointer m_client; std::optional m_currentRequest; diff --git a/src/plugins/languageclient/languageclientfunctionhint.cpp b/src/plugins/languageclient/languageclientfunctionhint.cpp index 2b5b46cdfac..c6ac1e190af 100644 --- a/src/plugins/languageclient/languageclientfunctionhint.cpp +++ b/src/plugins/languageclient/languageclientfunctionhint.cpp @@ -10,6 +10,8 @@ #include #include +#include + using namespace TextEditor; using namespace LanguageServerProtocol; @@ -66,6 +68,7 @@ FunctionHintProcessor::FunctionHintProcessor(Client *client) IAssistProposal *FunctionHintProcessor::perform(const AssistInterface *interface) { + const QScopedPointer deleter(interface); QTC_ASSERT(m_client, return nullptr); m_pos = interface->position(); QTextCursor cursor(interface->textDocument()); diff --git a/src/plugins/texteditor/codeassist/iassistprocessor.h b/src/plugins/texteditor/codeassist/iassistprocessor.h index 1835b906516..583f3ae973a 100644 --- a/src/plugins/texteditor/codeassist/iassistprocessor.h +++ b/src/plugins/texteditor/codeassist/iassistprocessor.h @@ -19,7 +19,7 @@ public: virtual ~IAssistProcessor(); virtual IAssistProposal *immediateProposal(const AssistInterface *) { return nullptr; } - virtual IAssistProposal *perform(const AssistInterface *interface) = 0; + virtual IAssistProposal *perform(const AssistInterface *interface) = 0; // takes ownership void setAsyncProposalAvailable(IAssistProposal *proposal); From 85fde5932a136164673af2adc6213b8c6232f6a9 Mon Sep 17 00:00:00 2001 From: Mats Honkamaa Date: Tue, 8 Nov 2022 08:52:23 +0200 Subject: [PATCH 27/49] Doc: Add Effect Maker documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QDS-7669 Change-Id: I49f77d61b018516bd3b460fd92c8fa620ec10d81 Reviewed-by: Reviewed-by: Kaj Grönholm Reviewed-by: Leena Miettinen --- .../images/apply-effect-maker-effect.webp | Bin 0 -> 35166 bytes .../images/assets-view-effect.png | Bin 0 -> 4813 bytes .../images/blur-effect-nodes.png | Bin 0 -> 44777 bytes .../images/blur-effect-step-1.webp | Bin 0 -> 4644 bytes .../images/blur-effect-step-2.webp | Bin 0 -> 6674 bytes .../images/blur-effect-step-3.webp | Bin 0 -> 7340 bytes .../images/effect-item-borders-icon.png | Bin 0 -> 440 bytes .../images/effect-item-padding-dialog.png | Bin 0 -> 8742 bytes .../images/effect-maker-export.png | Bin 0 -> 23962 bytes doc/qtdesignstudio/images/new-effect-file.png | Bin 0 -> 9517 bytes .../images/qt-quick-effect-maker.webp | Bin 0 -> 35348 bytes .../src/overviews/qtquick-export.qdoc | 2 +- .../src/overviews/qtquick-motion-design.qdoc | 2 +- .../src/qt-quick-effect-maker.qdoc | 93 +++++++++++++++++ .../qtdesignstudio-effect-maker-files.qdoc | 94 ++++++++++++++++++ .../src/qtdesignstudio-toc.qdoc | 5 + 16 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 doc/qtdesignstudio/images/apply-effect-maker-effect.webp create mode 100644 doc/qtdesignstudio/images/assets-view-effect.png create mode 100644 doc/qtdesignstudio/images/blur-effect-nodes.png create mode 100644 doc/qtdesignstudio/images/blur-effect-step-1.webp create mode 100644 doc/qtdesignstudio/images/blur-effect-step-2.webp create mode 100644 doc/qtdesignstudio/images/blur-effect-step-3.webp create mode 100644 doc/qtdesignstudio/images/effect-item-borders-icon.png create mode 100644 doc/qtdesignstudio/images/effect-item-padding-dialog.png create mode 100644 doc/qtdesignstudio/images/effect-maker-export.png create mode 100644 doc/qtdesignstudio/images/new-effect-file.png create mode 100644 doc/qtdesignstudio/images/qt-quick-effect-maker.webp create mode 100644 doc/qtdesignstudio/src/qt-quick-effect-maker.qdoc create mode 100644 doc/qtdesignstudio/src/qtdesignstudio-effect-maker-files.qdoc diff --git a/doc/qtdesignstudio/images/apply-effect-maker-effect.webp b/doc/qtdesignstudio/images/apply-effect-maker-effect.webp new file mode 100644 index 0000000000000000000000000000000000000000..64c89bf92b45d199e9dbbe0315dfe69c665fdb52 GIT binary patch literal 35166 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 H0EiC&WT8;8 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/assets-view-effect.png b/doc/qtdesignstudio/images/assets-view-effect.png new file mode 100644 index 0000000000000000000000000000000000000000..b229f8ddb65d63f2d88aa0c03a943ca097d78592 GIT binary patch literal 4813 zcmeAS@N?(olHy`uVBq!ia0y~yV9a1(VCdptVqjq4sBz!Vz#ufm)5S5Q;?~=_l_A2< z54FGFe}Depebwi$&-*<0w$`=V*}5}N$}xE=tdW|=6d0&5BT96q=#~)Im=#Xl8L<b+u!KHuGoEik0nznZR`aSn~g|bSs?b<~q`-z;UEe;lym6zWu+?Y`!%u=cDeb zKlL_DihL}R?;p*0@#k9fx!dteEbJ_1{4LLax};@t+S8De^}E^sXln{Ta+vT@x9`W& z|1)0wJs0xK{_*@smfQC$v(H@p|JR%GDc|b1>TJKIZu?%5~=2MEnSgzZYrw zXK7-3a^rWGTT*`)9=ASRR+qKkdEbNo({lgq{;q!bx0C>TQ;&Bc&#y)I6|Q{qdaoEP zm!|LgTU>iD@82nks>yTpW(s`2T)+3f;8*>yP=O~`1=?S7wB9ni_qmPl=z|kSFP+}r z_QlBONaD87mlwEe+?((7@8hEbGgu!vOeoajn;dxT!G+`tn#&IN9-O{KimiOJ#qq?j za+MWRuQv*M-Jfx^WSs~|r6yligrUXy#5t!8_TE05=JPxL(k{tc%QqNU{>+dIv2@z^ZG~H$IFD{&PWpB!XG@aA-3$IrUvl~HSGMe9`?}}Y zhnoS9rQTjhKdivVA{k#Squ>31?(f!{!Ewv}_HCbfT7i$H(c;5)Ee@ta2N?*_v?uQo z1H+yN@mB@d86M0$l6Y2ufgxdvgA4;h2QvdhAp?T~AH#vy+I%{}$|qJ&`l!lhA=>bf z{|F;Pg9QVF06PQ2qXr9x1`7o~1_eI24z6w4C)Rn3_TIV{<{O%J$;kho#Sej*EGJVQ zBrypbf1$9$iLw3Xqa%(M>(6Fr-7}6qwIqJh5{-o7ve>#c&u8RCIhiQe+-`hwIsJ0q z``$1Mn|A(-mR8FRb23pZG}HRlwce0*Frdf9%B!X5eAx_6$WscD^D)pOgk@y
    !1()= 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 P7#KWV{an^LB{Ts5?h8~E literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/blur-effect-nodes.png b/doc/qtdesignstudio/images/blur-effect-nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3d57db0348ff0519b2f94820107f6009bd39dc GIT binary patch literal 44777 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 a{Rc1`tcS%J%;pP7N)2ZeU|?ei0Pz9Iu)=cy literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/blur-effect-step-2.webp b/doc/qtdesignstudio/images/blur-effect-step-2.webp new file mode 100644 index 0000000000000000000000000000000000000000..3073411b0a6bc1569226b572b55172cb12e7374a GIT binary patch literal 6674 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/blur-effect-step-3.webp b/doc/qtdesignstudio/images/blur-effect-step-3.webp new file mode 100644 index 0000000000000000000000000000000000000000..c67de042ff0e266c4fae418204713493848dd5b7 GIT binary patch literal 7340 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 E05jY!TL1t6 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/effect-item-borders-icon.png b/doc/qtdesignstudio/images/effect-item-borders-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2739db806d22fe9c412f5972d8861f5a4db58098 GIT binary patch literal 440 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/effect-maker-export.png b/doc/qtdesignstudio/images/effect-maker-export.png new file mode 100644 index 0000000000000000000000000000000000000000..35d2a6a3c4d3ae27773b0014c82e8e6c715ea060 GIT binary patch literal 23962 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

    K&((JIv$EWvqWq-*36& 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 J);T3K0RY>&|E>T4 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/qt-quick-effect-maker.webp b/doc/qtdesignstudio/images/qt-quick-effect-maker.webp new file mode 100644 index 0000000000000000000000000000000000000000..2e98f7b02eba30d2180a7b148580ad131c681328 GIT binary patch literal 35348 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/src/overviews/qtquick-export.qdoc b/doc/qtdesignstudio/src/overviews/qtquick-export.qdoc index f3042336bb8..361765890d6 100644 --- a/doc/qtdesignstudio/src/overviews/qtquick-export.qdoc +++ b/doc/qtdesignstudio/src/overviews/qtquick-export.qdoc @@ -26,7 +26,7 @@ /*! \page creator-exporting-qml.html \previouspage studio-importing-3d.html - \nextpage qtquick-motion-design.html + \nextpage qt-effect-maker-files.html \title Exporting Components diff --git a/doc/qtdesignstudio/src/overviews/qtquick-motion-design.qdoc b/doc/qtdesignstudio/src/overviews/qtquick-motion-design.qdoc index 91f842e08e0..956ed00d5cb 100644 --- a/doc/qtdesignstudio/src/overviews/qtquick-motion-design.qdoc +++ b/doc/qtdesignstudio/src/overviews/qtquick-motion-design.qdoc @@ -25,7 +25,7 @@ /*! \page qtquick-motion-design.html - \previouspage creator-exporting-qml.html + \previouspage qt-effect-maker.html \nextpage quick-animation-overview.html \title Motion Design diff --git a/doc/qtdesignstudio/src/qt-quick-effect-maker.qdoc b/doc/qtdesignstudio/src/qt-quick-effect-maker.qdoc new file mode 100644 index 00000000000..56dfebfe301 --- /dev/null +++ b/doc/qtdesignstudio/src/qt-quick-effect-maker.qdoc @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Design Studio documentation. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! + + \page qt-effect-maker.html + \previouspage qt-effect-maker-files.html + \nextpage qtquick-motion-design.html + \sa {Creating Qt Quick Effect Maker Files} + + \title Working with Effects in Qt Quick Effect Maker + + The Qt Quick Effect Maker is a tool to create high-performance + shader effects for Qt Quick. + + You can import these effects to \QDS and you can run Qt Quick Effect Maker + from \QDS. + + \section1 Creating Effects + + When you run Qt Quick Effect Maker, it starts with an empty project. To + create your effect, add nodes to the node tree. + + \image qt-quick-effect-maker.webp + + Consider the following things when creating effects: + + \list + \li Some nodes do not function alone, they need a helper node. For + example, the \uicontrol FastBlur node needs a \uicontrol BlurHelper node + and the \uicontrol Noise node needs a \uicontrol NoiseHelper node. If the + node needs another node, it is mentioned in the node description. + \li If your effect appears cropped, you need to go to \uicontrol Edit > + \uicontrol {Project Settings} and increase the item padding. + \endlist + + \section2 Creating a Blur Effect + + To create a blur effect: + + \list 1 + \li Add a \uicontrol FastBlur node to the node tree. + \li Add a \uicontrol BlurHelper node to the node tree. You need the + \uicontrol BlurHelper node for all effects that contains a blur effect. + \endlist + + \image blur-effect-nodes.png + + You can now select the \uicontrol FastBlur node and in the settings, change + the \uicontrol fastBlurAmount value to control the amount of blur. + + \image blur-effect-step-1.webp + + \section3 Adjusting Item Borders + + The effect appears cropped. You need to adjust item borders: + + \list 1 + \li Select \inlineimage effect-item-borders-icon.png + to display item borders. + \image blur-effect-step-2.webp + \li Go to \uicontrol Edit > \uicontrol {Project Settings}. + \li Set the item padding for all sides to 100. + \image effect-item-padding-dialog.png + \endlist + + Now, you can see the complete blur effect. + + \image blur-effect-step-3.webp + +*/ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-effect-maker-files.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-effect-maker-files.qdoc new file mode 100644 index 00000000000..e00bb354863 --- /dev/null +++ b/doc/qtdesignstudio/src/qtdesignstudio-effect-maker-files.qdoc @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Design Studio documentation. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! + + \page qt-effect-maker-files.html + \nextpage qt-effect-maker.html + \previouspage creator-exporting-qml.html + \sa {Working with Effects in Qt Quick Effect Maker} + + \title Creating Qt Quick Effect Maker Files + + \section1 Creating an Effect File + + You can create empty Qt Quick Effect Maker effect (.qep) files in \QDS and + then edit them in Qt Quick Effect Maker. + + To create an effect file: + + \list 1 + \li In \QDS, go to \uicontrol File > \uicontrol {New File}. + \li Go to the \uicontrol Effects tab and select + \uicontrol {Effect file (Effect Maker)}. + \image new-effect-file.png + \li Select \uicontrol Choose and follow the wizard to create the file. + \endlist + + After you have created the effect file, it is available in the + \uicontrol Assets view. + + \image assets-view-effect.png + + \section2 Editing and Re-importing an Effect File + + To edit an effect file in Qt Quick Effect Maker, double-click it in + the \uicontrol Assets view. This opens the effect in Qt Quick Effect + Maker where you can make your changes. + + When you have edited the effect file in Qt Quick Effect Maker, you need + to save and export it: + \list 1 + \li In Qt Quick Effect Maker, go to \uicontrol File > \uicontrol Save. + \li Select \uicontrol File > \uicontrol Export. + \li With the default settings, select \uicontrol Ok. + \image effect-maker-export.png + \endlist + + Now, you can close Qt Quick Effect Maker and return to \QDS and apply the + effect. + + \section1 Applying an Effect + + You can apply effects to components in \QDS. To do so, drag the effect + from the \uicontrol Assets view to the component in the \uicontrol 2D view. + + \image apply-effect-maker-effect.webp + + \section1 Animated Effect + + When you import an animated effect, you need to turn on the animation for it + to see the animation in your \QDS application. + + To turn on animation for an effect, first apply the effect to a component, + and then: + + \list 1 + \li Select the effect in \uicontrol Navigator. + \li In \uicontrol Properties, go to the + \uicontrol {Exposed Custom Properties} section and set + \uicontrol timeRunning to true. + \endlist +*/ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc index edd27446d55..b255a6eeb49 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc @@ -196,6 +196,11 @@ \li \l{Importing 3D Assets} \endlist \li \l{Exporting Components} + \li Qt Quick Effect Maker + \list + \li \l{Creating Qt Quick Effect Maker Files} + \li \l{Working with Effects in Qt Quick Effect Maker} + \endlist \endlist \endlist \li \l{Motion Design} From 9364304f817cd40a4a17e662a9122e9c10148e67 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 8 Nov 2022 13:36:54 +0100 Subject: [PATCH 28/49] Debugger: Remove some debugging code Avoids a possibly large temporary string. Change-Id: Ic20cccedc35df0172c3586054f098e2c0f4b69c2 Reviewed-by: David Schulz --- src/plugins/debugger/debuggerprotocol.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp index 09bd76073c1..0bf60c3a4f5 100644 --- a/src/plugins/debugger/debuggerprotocol.cpp +++ b/src/plugins/debugger/debuggerprotocol.cpp @@ -254,7 +254,6 @@ void GdbMi::parseTuple_helper(DebuggerOutputParser &parser) { parser.skipCommas(); //qDebug() << "parseTuple_helper: " << parser.buffer(); - QString buf = parser.buffer(); m_type = Tuple; while (!parser.isAtEnd()) { if (parser.isCurrent('}')) { From bacb05e28541c224ef94f7f494d703f8304de21d Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 12 Oct 2022 08:09:06 +0200 Subject: [PATCH 29/49] More change log for 9.0.0 Change-Id: Ic902972be6fe5c68e7675a10d5127672612e8f1d Reviewed-by: Orgad Shaneh --- dist/changelog/changes-9.0.0.md | 62 ++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/dist/changelog/changes-9.0.0.md b/dist/changelog/changes-9.0.0.md index f9abdee16a9..ed0fa9289a8 100644 --- a/dist/changelog/changes-9.0.0.md +++ b/dist/changelog/changes-9.0.0.md @@ -19,6 +19,8 @@ General * Locator `t` filter * Added non-menu actions * Added fuzzy matching +* Added `Remove Folder` to `File System` view (QTCREATORBUG-27331) +* Fixed that clipboard was cleared on shutdown (QTCREATORBUG-28317) Help ---- @@ -53,6 +55,7 @@ Editing action (QTCREATORBUG-28099) * Fixed that selection was not considered for refactoring actions (QTCREATORBUG-27886) +* Fixed code style preview editor size (QTCREATORBUG-27267) * Clangd * Added option for using single Clangd instance for the whole session (QTCREATORBUG-26526) @@ -70,6 +73,8 @@ Editing session load (QTCREATORBUG-22584) * ClangFormat * Moved settings back to top level preferences page + * Updated formatting options (QTCREATORBUG-28263) + * Fixed indentation of comments (QTCREATORBUG-25539) ### Language Server Protocol @@ -77,10 +82,18 @@ Editing * Fixed that server was not restarted after 5 times, even if a long time passed after the last time +### QML + +* Fixed that `Follow Symbol` could open file from build directory + (QTCREATORBUG-27173) +* Fixed cursor position and breakpoints after reformatting (QTCREATORBUG-25218, + QTCREATORBUG-28349) + ### Image Viewer * Made `Fit to Screen` sticky and added option for the default (QTCREATORBUG-27816) +* Cleaned up tool bar (QTCREATORBUG-28309) ### Diff Viewer @@ -94,6 +107,8 @@ Projects (QTCREATORBUG-26069) * Fixed that opening terminal from build environment settings did not change directory to build directory +* Fixed that local environment was used when inspecting GCC toolchain on remote +* Fixed stopping terminal process (QTCREATORBUG-28365) ### CMake @@ -101,6 +116,7 @@ Projects * Turned `Package manager auto setup` off by default * Added support for CMake configure and build presets, including conditions and toolchain files (QTCREATORBUG-24555) + ([CMake Documentation](https://cmake.org/cmake/help/v3.21/manual/cmake-presets.7.html)) * Added option for changing environment for configure step * Added option for hiding subfolders in source groups (QTCREATORBUG-27432) * Added support for `Build File` also from header files (QTCREATORBUG-26164) @@ -116,6 +132,11 @@ Projects * Added workaround for `mkspec`s that add compiler flags to `QMAKE_CXX` (QTCREATORBUG-28201) +* Fixed unnecessary updates after project build (QTCREATORBUG-27785) + +### Python + +* Adapted to move of project tool to `PySide6-Essentials` package Debugging --------- @@ -125,6 +146,14 @@ Debugging * Fixed display of strings with characters more than 2 bytes long * Improved type name lookup performance for heavily templated code +Analyzer +-------- + +### Clang + +* Fixed error when analyzing non-desktop targets (QTCREATORBUG-25615) +* Fixed wrong failure count display (QTCREATORBUG-27330) + Version Control Systems ----------------------- @@ -132,8 +161,10 @@ Version Control Systems * Added support for user-configured comment character (QTCREATORBUG-28042) * Improved matching of commit hashes (QTCREATORBUG-24768, QTCREATORBUG-28268) -* Fixed adding or deleting files in nested directories (QTCREATORBUG-27644, QTCREATORBUG-27405) +* Fixed adding or deleting files in nested directories (QTCREATORBUG-27644, + QTCREATORBUG-27405) * Fixed that text encoding in project settings was not respected on diff + (QTCREATORBUG-21794) Test Integration ---------------- @@ -142,6 +173,8 @@ Test Integration ([Documentation](https://doc-snapshots.qt.io/qtcreator-9.0/creator-squish.html)) * Catch 2 * Fixed handling of exceptions (QTCREATORBUG-28131) + * Fixed crash (QTCREATORBUG-28269) + * Fixed handling of `WARN`, `FAIL` and `INFO` (QTCREATORBUG-28394) Platforms --------- @@ -153,12 +186,27 @@ Platforms * Fixed issues when drives are mapped (QTCREATORBUG-27869, QTCREATORBUG-28031) * Fixed that output could be missing for Qt based external tools (QTCREATORBUG-27828) +* Fixed that Clink and other applications could increase startup time for + toolchain detection (QTCREATORBUG-27906) +* Fixed that running Qt Creator from a MSVC environment could interfere with + MSVC auto-detection (QTCREATORBUG-28315) ### macOS * Added auto-detection of `ccache` compilers from Homebrew (QTCREATORBUG-27792) * Fixed that theme partially switched between dark and light when system theme changed during runtime (QTCREATORBUG-28066) +* Fixed wrong target being set for the code model for iOS kits + (QTCREATORBUG-28278) +* Fixed that Touch Bar contained `Edit Bookmark` instead of `Toggle Bookmark` + (QTCREATORBUG-28108) +* Fixed missing `Search` item in `Help` menu (QTCREATORBUG-24751) + +### Android + +* Fixed emulator operations when the deprecated `SDK Tools` is installed in + addition to `SDK Command-line Tools` (QTCREATORBUG-28196) +* Fixed debugging over WiFi (QTCREATORBUG-28342) ### iOS @@ -166,10 +214,15 @@ Platforms ### Remote Linux +* Enable usage as build device * Added option for SSH port to wizard * Added fallback for devices without `base64` * Added experimental support to user remote linux build devices (QTCREATORBUG-28242) +### Boot to Qt + +* Fixed that `rsync` was not available for deployment (QTCREATORBUG-24731) + ### Docker * Added option for `docker` command @@ -181,16 +234,21 @@ Platforms * Added sorting of images * Added option to hide images without tag * Added double-click for selecting image +* Fixed `Browse` button for build directory for remote directories * Fixed interrupting and pausing of GDB * Fixed running `ctest` on device +* Fixed mounting paths with spaces or colons +* Fixed opening remote text files without extension Credits for these changes go to: -------------------------------- Aaron Barany +Adam Sowa Alessandro Portale Alexander Akulich Alexander Drozdov André Pönitz +Ari Parkkila Artem Sokolovskii Assam Boudjelthia Björn Schäpers @@ -205,6 +263,7 @@ Fawzi Mohamed Florian Koch Henning Gruendl Jaroslaw Kobus +Kwangsub Kim Leena Miettinen Lucie Gérard Marc Mutz @@ -213,6 +272,7 @@ Marcus Tillmanns Miikka Heikkinen Orgad Shaneh Piotr Mućko +Rainer Keller Robert Löhning Sergey Levin Sivert Krøvel From bb11788a0ac868d9f89970a202df52b07c32c190 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 8 Nov 2022 12:42:04 +0100 Subject: [PATCH 30/49] Debugger: Avoid quadratic behavior for larger debug output Task-number: QTCREATORBUG-28111 Change-Id: I0567b6af9f74c2d335d19a52765834ef7cee9449 Reviewed-by: hjk Reviewed-by: David Schulz Reviewed-by: --- share/qtcreator/debugger/cdbbridge.py | 10 +- share/qtcreator/debugger/dumper.py | 15 ++- share/qtcreator/debugger/gdbbridge.py | 140 +++++++++++-------------- share/qtcreator/debugger/lldbbridge.py | 10 +- 4 files changed, 82 insertions(+), 93 deletions(-) diff --git a/share/qtcreator/debugger/cdbbridge.py b/share/qtcreator/debugger/cdbbridge.py index 173b5a60111..a4c3ea516f5 100644 --- a/share/qtcreator/debugger/cdbbridge.py +++ b/share/qtcreator/debugger/cdbbridge.py @@ -353,9 +353,6 @@ class Dumper(DumperBase): self.ptrSize = lambda: size return size - def put(self, stuff): - self.output += stuff - def stripQintTypedefs(self, typeName): if typeName.startswith('qint'): prefix = '' @@ -423,7 +420,7 @@ class Dumper(DumperBase): self.setVariableFetchingOptions(args) - self.output = '' + self.output = [] self.currentIName = 'local' self.put('data=[') @@ -445,10 +442,11 @@ class Dumper(DumperBase): self.qtNamespaceToReport = self.qtNamespace() if self.qtNamespaceToReport: - self.output += ',qtnamespace="%s"' % self.qtNamespaceToReport + self.put(',qtnamespace="%s"' % self.qtNamespaceToReport) self.qtNamespaceToReport = None - self.reportResult(self.output, args) + self.reportResult(''.join(self.output), args) + self.output = [] def report(self, stuff): sys.stdout.write(stuff + "\n") diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 22f3f732d87..8beba72113a 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -112,7 +112,7 @@ class Children(): self.d.currentNumChild = self.savedNumChild self.d.currentMaxNumChild = self.savedMaxNumChild if self.d.isCli: - self.d.output += '\n' + ' ' * self.d.indent + self.d.put('\n' + ' ' * self.d.indent) self.d.put(self.d.childrenSuffix) return True @@ -173,7 +173,7 @@ class DumperBase(): self.displayStringLimit = 100 self.useTimeStamps = False - self.output = '' + self.output = [] self.typesReported = {} self.typesToReport = {} self.qtNamespaceToReport = None @@ -309,9 +309,9 @@ class DumperBase(): self.putField('name', item.name) else: self.indent += 1 - self.output += '\n' + ' ' * self.indent + self.put('\n' + ' ' * self.indent) if isinstance(item.name, str): - self.output += item.name + ' = ' + self.put(item.name + ' = ') item.savedIName = self.currentIName item.savedValue = self.currentValue item.savedType = self.currentType @@ -869,7 +869,12 @@ class DumperBase(): self.putPlainChildren(value) def put(self, stuff): - self.output += stuff + self.output.append(stuff) + + def takeOutput(self): + res = '\n'.join(self.output) + self.output = [] + return res def check(self, exp): if not exp: diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index f142a30fb4a..f5e260c54d5 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -175,24 +175,6 @@ def importPlainDumpers(args): registerCommand('importPlainDumpers', importPlainDumpers) -class OutputSaver(): - def __init__(self, d): - self.d = d - - def __enter__(self): - self.savedOutput = self.d.output - self.d.output = '' - - def __exit__(self, exType, exValue, exTraceBack): - if self.d.passExceptions and exType is not None: - self.d.showException('OUTPUTSAVER', exType, exValue, exTraceBack) - self.d.output = self.savedOutput - else: - self.savedOutput += self.d.output - self.d.output = self.savedOutput - return False - - ####################################################################### # # The Dumper Class @@ -214,7 +196,7 @@ class Dumper(DumperBase): self.interpreterBreakpointResolvers = [] def prepare(self, args): - self.output = '' + self.output = [] self.setVariableFetchingOptions(args) def fromFrameValue(self, nativeValue): @@ -690,7 +672,7 @@ class Dumper(DumperBase): safePrint(res) return - self.output += 'data=[' + self.put('data=[') partialVar = args.get('partialvar', '') isPartial = len(partialVar) > 0 @@ -713,27 +695,26 @@ class Dumper(DumperBase): self.handleLocals(variables) self.handleWatches(args) - self.output += '],typeinfo=[' + self.put('],typeinfo=[') for name in self.typesToReport.keys(): typeobj = self.typesToReport[name] # Happens e.g. for '(anonymous namespace)::InsertDefOperation' #if not typeobj is None: - # self.output.append('{name="%s",size="%s"}' - # % (self.hexencode(name), typeobj.sizeof)) - self.output += ']' + # self.put('{name="%s",size="%s"}' % (self.hexencode(name), typeobj.sizeof)) + self.put(']') self.typesToReport = {} if self.forceQtNamespace: self.qtNamespaceToReport = self.qtNamespace() if self.qtNamespaceToReport: - self.output += ',qtnamespace="%s"' % self.qtNamespaceToReport + self.put(',qtnamespace="%s"' % self.qtNamespaceToReport) self.qtNamespaceToReport = None - self.output += ',partial="%d"' % isPartial - self.output += ',counts=%s' % self.counts - self.output += ',timings=%s' % self.timings - self.reportResult(self.output, args) + self.put(',partial="%d"' % isPartial) + self.put(',counts=%s' % self.counts) + self.put(',timings=%s' % self.timings) + self.reportResult(''.join(self.output), args) def parseAndEvaluate(self, exp): val = self.nativeParseAndEvaluate(exp) @@ -1321,7 +1302,7 @@ class Dumper(DumperBase): limit = 10000 self.prepare(args) - self.output = '' + self.output = [] i = 0 if extraQml: @@ -1375,58 +1356,60 @@ class Dumper(DumperBase): frame = gdb.newest_frame() self.currentCallContext = None + self.output = [] + self.put('stack={frames=[') while i < limit and frame: - with OutputSaver(self): - name = frame.name() - functionName = '??' if name is None else name - fileName = '' - objfile = '' - symtab = '' - pc = frame.pc() - sal = frame.find_sal() - line = -1 - if sal: - line = sal.line - symtab = sal.symtab - if symtab is not None: - objfile = fromNativePath(symtab.objfile.filename) - fullname = symtab.fullname() - if fullname is None: - fileName = '' - else: - fileName = fromNativePath(fullname) + name = frame.name() + functionName = '??' if name is None else name + fileName = '' + objfile = '' + symtab = '' + pc = frame.pc() + sal = frame.find_sal() + line = -1 + if sal: + line = sal.line + symtab = sal.symtab + if symtab is not None: + objfile = fromNativePath(symtab.objfile.filename) + fullname = symtab.fullname() + if fullname is None: + fileName = '' + else: + fileName = fromNativePath(fullname) - if self.nativeMixed and functionName == 'qt_qmlDebugMessageAvailable': - interpreterStack = self.extractInterpreterStack() - #print('EXTRACTED INTEPRETER STACK: %s' % interpreterStack) - for interpreterFrame in interpreterStack.get('frames', []): - function = interpreterFrame.get('function', '') - fileName = interpreterFrame.get('file', '') - language = interpreterFrame.get('language', '') - lineNumber = interpreterFrame.get('line', 0) - context = interpreterFrame.get('context', 0) + if self.nativeMixed and functionName == 'qt_qmlDebugMessageAvailable': + interpreterStack = self.extractInterpreterStack() + #print('EXTRACTED INTEPRETER STACK: %s' % interpreterStack) + for interpreterFrame in interpreterStack.get('frames', []): + function = interpreterFrame.get('function', '') + fileName = interpreterFrame.get('file', '') + language = interpreterFrame.get('language', '') + lineNumber = interpreterFrame.get('line', 0) + context = interpreterFrame.get('context', 0) - self.put(('frame={function="%s",file="%s",' - 'line="%s",language="%s",context="%s"}') - % (function, self.hexencode(fileName), lineNumber, language, context)) + self.put(('frame={function="%s",file="%s",' + 'line="%s",language="%s",context="%s"}') + % (function, self.hexencode(fileName), lineNumber, language, context)) - if False and self.isInternalInterpreterFrame(functionName): - frame = frame.older() - self.put(('frame={address="0x%x",function="%s",' - 'file="%s",line="%s",' - 'module="%s",language="c",usable="0"}') % - (pc, functionName, fileName, line, objfile)) - i += 1 - frame = frame.older() - continue + if False and self.isInternalInterpreterFrame(functionName): + frame = frame.older() + self.put(('frame={address="0x%x",function="%s",' + 'file="%s",line="%s",' + 'module="%s",language="c",usable="0"}') % + (pc, functionName, fileName, line, objfile)) + i += 1 + frame = frame.older() + continue - self.put(('frame={level="%s",address="0x%x",function="%s",' - 'file="%s",line="%s",module="%s",language="c"}') % - (i, pc, functionName, fileName, line, objfile)) + self.put(('frame={level="%s",address="0x%x",function="%s",' + 'file="%s",line="%s",module="%s",language="c"}') % + (i, pc, functionName, fileName, line, objfile)) frame = frame.older() i += 1 - self.reportResult('stack={frames=[' + self.output + ']}', args) + self.put(']}') + self.reportResult(self.takeOutput(), args) def createResolvePendingBreakpointsHookBreakpoint(self, args): class Resolver(gdb.Breakpoint): @@ -1512,6 +1495,7 @@ class Dumper(DumperBase): onHit=self.tracepointHit, onExpression=lambda tp, expr, val: self.tracepointExpression(tp, expr, val, args)) self.reportResult("tracepoint=%s" % self.resultToMi(tp.dicts()), args) + class CliDumper(Dumper): def __init__(self): Dumper.__init__(self) @@ -1559,16 +1543,18 @@ class CliDumper(Dumper): self.expandableINames = set() self.prepare(args) - self.output = name + ' = ' + self.output = [] + self.put(name + ' = ') value = self.parseAndEvaluate(name) with TopLevelItem(self, name): self.putItem(value) if not self.expandableINames: - return self.output + '\n\nNo drill down available.\n' + self.put('\n\nNo drill down available.\n') + return self.takeOutput() pattern = ' pp ' + name + ' ' + '%s' - return (self.output + return (self.takeOutput() + '\n\nDrill down:\n ' + '\n '.join(pattern % x for x in self.expandableINames) + '\n') diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 032b2242211..cc60ef16de3 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1270,7 +1270,7 @@ class Dumper(DumperBase): self.reportResult('error="No frame"', args) return - self.output = '' + self.output = [] isPartial = len(self.partialVariable) > 0 self.currentIName = 'local' @@ -1323,7 +1323,7 @@ class Dumper(DumperBase): self.handleWatches(args) self.put('],partial="%d"' % isPartial) - self.reportResult(self.output, args) + self.reportResult(self.takeOutput(), args) def fetchRegisters(self, args=None): @@ -2101,7 +2101,7 @@ class SummaryDumper(Dumper, LogMixin): self.dumpermodules = ['qttypes'] self.loadDumpers({}) - self.output = '' + self.output = [] def report(self, stuff): return # Don't mess up lldb output @@ -2123,12 +2123,12 @@ class SummaryDumper(Dumper, LogMixin): self.expandedINames = [value.name] if expanded else [] savedOutput = self.output - self.output = '' + self.output = [] with TopLevelItem(self, value.name): self.putItem(value) # FIXME: Hook into putField, etc to build up object instead of parsing MI - response = gdbmiparser.parse_response("^ok,summary=%s" % self.output) + response = gdbmiparser.parse_response("^ok,summary=%s" % self.takeOutput())) self.output = savedOutput self.expandedINames = oldExpanded From f93c316b73a6564bc6ccac94d0c89b686d98362a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 21 Jun 2022 17:44:14 +0200 Subject: [PATCH 31/49] ClangCodeModel: Adapt to new upstream feature See https://reviews.llvm.org/D130015. Change-Id: I2c2590265f2d7a2c2b5e966b0dc65ceff6b1b3e6 Reviewed-by: Reviewed-by: David Schulz --- .../clangdsemantichighlighting.cpp | 14 ++++++++++---- src/plugins/clangcodemodel/test/clangdtests.cpp | 16 ---------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp index fbddb0b605a..322a21058ff 100644 --- a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp +++ b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp @@ -164,9 +164,15 @@ void doSemanticHighlighting( const Position endPos = startPos.withOffset(token.length, &doc); return Range(startPos, endPos); }; - const auto isOutputParameter = [&ast, &tokenRange](const ExpandedSemanticToken &token) { + const int clangdMajorVersion = clangdVersion.majorVersion(); + const auto isOutputParameter = [&ast, &tokenRange, clangdMajorVersion] + (const ExpandedSemanticToken &token) { if (token.modifiers.contains(QLatin1String("usedAsMutableReference"))) return true; + if (token.modifiers.contains(QLatin1String("usedAsMutablePointer"))) + return true; + if (clangdMajorVersion >= 16) + return false; if (token.type != "variable" && token.type != "property" && token.type != "parameter") return false; const Range range = tokenRange(token); @@ -260,7 +266,7 @@ void doSemanticHighlighting( }; const std::function toResult - = [&ast, &isOutputParameter, &tokenRange, ver = clangdVersion.majorVersion()] + = [&ast, &isOutputParameter, &tokenRange, clangdMajorVersion] (const ExpandedSemanticToken &token) { TextStyles styles; if (token.type == "variable") { @@ -277,7 +283,7 @@ void doSemanticHighlighting( ? C_VIRTUAL_METHOD : C_FUNCTION; if (token.modifiers.contains("definition")) { styles.mixinStyles.push_back(C_FUNCTION_DEFINITION); - } else if (ver < 16 && ast.isValid()) { + } else if (clangdMajorVersion < 16 && ast.isValid()) { const ClangdAstPath path = getAstPath(ast, tokenRange(token)); if (path.length() > 1) { const ClangdAstNode declNode = path.at(path.length() - 2); @@ -291,7 +297,7 @@ void doSemanticHighlighting( styles.mainStyle = C_TYPE; if (token.modifiers.contains("constructorOrDestructor")) { styles.mainStyle = C_FUNCTION; - } else if (ver < 16 && ast.isValid()) { + } else if (clangdMajorVersion < 16 && ast.isValid()) { const ClangdAstPath path = getAstPath(ast, tokenRange(token)); if (!path.isEmpty()) { if (path.last().kind() == "CXXConstructor") { diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index f00e675651b..96a6383abad 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -1012,12 +1012,6 @@ void ClangdTestHighlighting::test_data() << QList{C_LOCAL} << 0; QTest::newRow("const pointer argument") << 491 << 26 << 491 << 27 << QList{C_LOCAL, C_OUTPUT_ARGUMENT} << 0; - QTest::newRow("non-const reference via member function call as output argument (object)") - << 580 << 29 << 580 << 30 - << QList{C_LOCAL, C_OUTPUT_ARGUMENT} << 0; - QTest::newRow("non-const reference via member function call as output argument (function)") - << 580 << 31 << 580 << 37 - << QList{C_FUNCTION, C_OUTPUT_ARGUMENT} << 0; QTest::newRow("value argument") << 501 << 57 << 501 << 58 << QList{C_LOCAL} << 0; QTest::newRow("non-const ref argument as second arg") << 501 << 61 << 501 << 62 @@ -1026,8 +1020,6 @@ void ClangdTestHighlighting::test_data() << QList{C_PARAMETER, C_OUTPUT_ARGUMENT} << 0; QTest::newRow("non-const pointer argument expression") << 513 << 30 << 513 << 31 << QList{C_LOCAL, C_OUTPUT_ARGUMENT} << 0; - QTest::newRow("non-const ref argument from qualified member (object)") << 525 << 31 << 525 << 39 - << QList{C_LOCAL, C_OUTPUT_ARGUMENT} << 0; QTest::newRow("non-const ref argument from qualified member (member)") << 525 << 40 << 525 << 46 << QList{C_FIELD, C_OUTPUT_ARGUMENT} << 0; QTest::newRow("non-const ref argument to constructor") << 540 << 47 << 540 << 55 @@ -1394,14 +1386,6 @@ void ClangdTestHighlighting::test() actualStyles << s; } - QEXPECT_FAIL("non-const reference via member function call as output argument (object)", - "See below", Continue); - QEXPECT_FAIL("non-const reference via member function call as output argument (function)", - "Without punctuation and comment tokens from clangd, it's not possible " - "to highlight entire expressions. But do we really want this? What about nested " - "calls where the inner arguments are const?", - Continue); - QCOMPARE(actualStyles, expectedStyles); QCOMPARE(result.kind, expectedKind); } From df946c77dc49be5e697f1b47bb9eb658ce847892 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 8 Nov 2022 14:36:04 +0100 Subject: [PATCH 32/49] Chinese translation: Run lupdate for qtcreator_zh_CN.ts in preparation for the translation. Result of `lupdate . -no-obsolete -no-ui-lines -locations none -ts share/qtcreator/translations/qtcreator_zh_CN.ts` Change-Id: I1e7389aae93f1aee8594f35e53531ee53e5f0ed6 Reviewed-by: Reviewed-by: Xu Shitong Reviewed-by: Eike Ziller --- .../qtcreator/translations/qtcreator_zh_CN.ts | 93743 ++++++++-------- 1 file changed, 49163 insertions(+), 44580 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_zh_CN.ts b/share/qtcreator/translations/qtcreator_zh_CN.ts index d78063b5bce..149bf94c2bd 100644 --- a/share/qtcreator/translations/qtcreator_zh_CN.ts +++ b/share/qtcreator/translations/qtcreator_zh_CN.ts @@ -1,29542 +1,4281 @@ - + + + ADS::DockAreaTitleBar + + Detach Area + + + + Close Area + + + + Close Other Areas + + + + + ADS::DockManager + + Cannot Save Workspace + + + + Could not save workspace to file %1 + + + + Delete Workspace + + + + Delete Workspaces + + + + Delete workspace %1? + + + + Delete these workspaces? + %1 + + + + Cannot Restore Workspace + + + + Could not restore workspace %1 + + + + + ADS::DockWidgetTab + + Detach + 分离 + + + Close + 关闭 + + + Close Others + 关闭其他 + + + + ADS::WorkspaceDialog + + Workspace Manager + + + + &New + 新建(&N) + + + &Rename + 重命名(&R) + + + C&lone + 克隆(&L) + + + &Delete + 删除(&D) + + + Reset + 重置 + + + &Switch To + + + + Import + 导入 + + + Export + + + + Restore last workspace on startup + + + + <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-workspaces.html">What is a Workspace?</a> + + + + + ADS::WorkspaceModel + + Workspace + + + + Last Modified + + + + New Workspace Name + + + + &Create + 创建(&C) + + + Create and &Open + + + + &Clone + + + + Clone and &Open + + + + Rename Workspace + + + + &Rename + 重命名(&R) + + + Rename and &Open + + + + + ADS::WorkspaceNameInputDialog + + Enter the name of the workspace: + + + + + ADS::WorkspaceView + + Import Workspace + + + + Export Workspace + + + + + AccountImage + + Account + + + + + AddImageToResources + + File Name + 文件名 + + + Size + + + + Add Resources + + + + &Browse... + 浏览(&B)... + + + Target Directory + + + + + AddImplementationsDialog + + Member Function Implementations + + + + None + + + + Inline + + + + Outside Class + + + + Default implementation location: + + + + + AddSignalHandlerDialog + + Implement Signal Handler + + + + Frequently used signals + + + + Property changes + + + + All signals + + + + Signal: + + + + Choose the signal you want to handle: + + + + The item will be exported automatically. + + + + + AlignCamerasToViewAction + + Align Selected Cameras to View + + + + Align View to Selected Camera + + + + + Analyzer + + Analyzer + 分析器 + + + + Android + + Create new AVD + 创建新AVD + + + Name: + 名称: + + + SD card size: + SD卡容量: + + + MiB + MiB + + + Create a keystore and a certificate + 创建一个密钥存储库和一个证书 + + + Keystore + 密钥存储库 + + + Password: + 密码: + + + Retype password: + 再次输入密码: + + + Show password + 显示密码 + + + Certificate + 证书 + + + Alias name: + 别名: + + + Keysize: + 密钥长度: + + + Validity (days): + 有效期(天数): + + + Certificate Distinguished Names + 证书的特别(distinguished)名称 + + + First and last name: + 全名: + + + Organizational unit (e.g. Necessitas): + Necessitas is the Qt Android porting + 组织和单位(如Necessitas): + + + Organization (e.g. KDE): + 组织(如KDE): + + + City or locality: + 城市或地点: + + + State or province: + 州或省: + + + Two-letter country code for this unit (e.g. RO): + 单位的两字母的国家代码(如RO): + + + Application + 应用程序 + + + Permissions + 权限 + + + Add + 添加 + + + Remove + 删除 + + + Sign package + 包签名 + + + Keystore: + 密钥存储库: + + + Certificate alias: + 证书别名: + + + Android Configuration + Android配置 + + + Android SDK location: + Android SDK的路径: + + + Keystore files (*.keystore *.jks) + 密钥存储库文件 (*.keystore *.jks) + + + Error + 错误 + + + Deploy to Android device + 部署到Android设备 + + + Pulling files necessary for debugging. + 正在读取调试需要的文件。 + + + Android package (*.apk) + Android包 (*.apk) + + + Run on Android + 在Android上运行 + + + Android Device + Android设备 + + + Deploy to device + 部署到设备 + + + Copy application data + 复制应用程序的数据 + + + Android + Qt Version is meant for Android + Android + + + Failed to forward C++ debugging ports. + 转发C++调试端口失败。 + + + Failed to forward QML debugging ports. + 转发QML调试端口失败。 + + + Cannot create AVD. Invalid input. + + + + Could not start process "%1 %2" + 无法启动进程"%1" {1 %2"?} + + + Cannot create AVD. Command timed out. + + + + Emulator Tool Is Missing + + + + Install the missing emulator tool (%1) to the installed Android SDK. + + + + AVD Start Error + + + + Incorrect password. + + + + Android build platform SDK: + + + + Create Templates + + + + Create an Android package for Custom Java code, assets, and Gradle configurations. + + + + Android customization: + + + + Application Signature + + + + Select Keystore File + + + + Create... + + + + Signing a debug package + + + + Advanced Actions + + + + Open package location after build + + + + Add debug server + + + + Packages debug server with the APK to enable debugging. For the signed APK this option is unchecked by default. + + + + Verbose output + + + + Build Android App Bundle (*.aab) + + + + Additional Libraries + + + + List of extra libraries to include in Android package and load on startup. + + + + Add... + 添加... + + + Select library to include in package. + + + + Select additional libraries + + + + Libraries (*.so) + + + + Remove currently selected library from list. + + + + Include prebuilt OpenSSL libraries + + + + This is useful for apps that use SSL operations. The path can be defined in Edit > Preferences > Devices > Android. + + + + Build Android APK + + + + "%1" step failed initialization. + + + + Keystore/Certificate password verification failed. + + + + Warning: Signing a debug or profile package. + + + + The Qt version for kit %1 is invalid. + + + + The installed SDK tools version (%1) does not include Gradle scripts. The minimum Qt version required for Gradle build to work is %2 + + + + The minimum Qt version required for Gradle build to work is %1. It is recommended to install the latest Qt version. + + + + The API level set for the APK is less than the minimum required by the kit. +The minimum API level required by the kit is %1. + + + + No valid input file for "%1". + + + + Android build SDK version is not defined. Check Android settings. + + + + Cannot sign the package. Invalid keystore path (%1). + + + + Cannot sign the package. Certificate alias %1 does not exist. + + + + Android deploy settings file not found, not building an APK. + + + + The Android build folder %1 was not found and could not be created. + + + + Cannot copy the target's lib file %1 to the Android build folder %2. + + + + Cannot copy file "%1" to Android build libs folder "%2". + + + + Cannot open androiddeployqt input file "%1" for writing. + + + + Cannot set up "%1", not building an APK. + + + + Starting: "%1" %2 + 正在启动 "%1" %2 + + + + Failed to run keytool. + + + + Enter keystore password + + + + Enter certificate password + + + + Could not run: %1 + + + + No devices found in output of: %1 + + + + Android Debugger (%1, NDK %2) + + + + Android %1 Clang %2 + + + + Use Keystore password + + + + Keystore password is too short. + + + + Keystore passwords do not match. + + + + Certificate password is too short. + + + + Certificate passwords do not match. + + + + Certificate alias is missing. + + + + Invalid country code. + + + + Keystore Filename + + + + Uninstall the existing app before deployment + + + + No Android architecture (ABI) is set by the project. + + + + Initializing deployment to Android device/simulator + + + + The kit's run configuration is invalid. + + + + The kit's build configuration is invalid. + + + + The kit's build steps list is invalid. + + + + The kit's deploy configuration is invalid. + + + + No valid deployment device is set. + + + + The deployment device "%1" is invalid. + + + + The deployment device "%1" does not support the architectures used by the kit. +The kit supports "%2", but the device uses "%3". + + + + The deployment device "%1" is disconnected. + + + + Android: The main ABI of the deployment device (%1) is not selected. The app execution or debugging might not work properly. Add it from Projects > Build > Build Steps > qmake > ABIs. + + + + Deploying to %1 + + + + The deployment step's project node is invalid. + + + + Cannot find the androiddeployqt input JSON file. + + + + Cannot find the androiddeployqt tool. + + + + Cannot find the package name from the Android Manifest file "%1". + + + + Uninstalling the previous package "%1". + + + + Starting: "%1" + + + + The process "%1" exited normally. + + + + The process "%1" exited with code %2. + 进程"%1"退出,退出代码 %2 。 + + + The process "%1" crashed. + 进程"%1"崩溃。 + + + Installing the app failed even after uninstalling the previous one. + + + + Installing the app failed with an unknown error. + + + + Deployment failed with the following errors: + + + + + + +Uninstalling the installed package may solve the issue. +Do you want to uninstall the existing package? + + + + Install failed + + + + The deployment AVD "%1" cannot be started. + + + + Package deploy: Failed to pull "%1" to "%2". + + + + Package deploy: Running command "%1". + + + + Install an APK File + + + + Qt Android Installer + + + + Device name: + + + + Device type: + 设备类型: + + + Unknown + 未知 + + + Serial number: + + + + CPU architecture: + + + + OS version: + + + + Yes + + + + No + + + + Authorized: + + + + Android target flavor: + + + + Skin type: + + + + OpenGL status: + + + + Android Device Manager + + + + Refresh + + + + Start AVD + + + + Erase AVD + + + + AVD Arguments + + + + Set up Wi-Fi + + + + Emulator for "%1" + + + + Physical device + 物理设备 + + + None + + + + Erase the Android AVD "%1"? +This cannot be undone. + + + + The device has to be connected with ADB debugging enabled to use this feature. + + + + Opening connection port %1 failed. + + + + Retrieving the device IP address failed. + + + + The retrieved IP address is invalid. + + + + Connecting to the device IP "%1" failed. + + + + An error occurred while removing the Android AVD "%1" using avdmanager tool. + + + + Emulator Command-line Startup Options + + + + Emulator command-line startup options (<a href="%1">Help Web Page</a>): + + + + The device info returned from AvdDialog is invalid. + + + + Android: SDK installation error 0x%1 + + + + Android: NDK installation error 0x%1 + + + + Android: Java installation error 0x%1 + + + + Android: ant installation error 0x%1 + + + + Android: adb installation error 0x%1 + + + + Android: Device connection error 0x%1 + + + + Android: Device permission error 0x%1 + + + + Android: Device authorization error 0x%1 + + + + Android: Device API level not supported: error 0x%1 + + + + Android: Unknown error 0x%1 + + + + Unknown Android version. API Level: %1 + + + + Error creating Android templates. + + + + Cannot parse "%1". + + + + Starting Android virtual device failed. + + + + Android package installation failed. +%1 + + + + General + 概要 + + + XML Source + + + + Android Manifest editor + + + + Master icon + + + + Select master icon. + + + + LDPI icon + + + + Select an icon suitable for low-density (ldpi) screens (~120dpi). + + + + MDPI icon + + + + Select an icon for medium-density (mdpi) screens (~160dpi). + + + + HDPI icon + + + + Select an icon for high-density (hdpi) screens (~240dpi). + + + + XHDPI icon + + + + Select an icon for extra-high-density (xhdpi) screens (~320dpi). + + + + XXHDPI icon + + + + Select an icon for extra-extra-high-density (xxhdpi) screens (~480dpi). + + + + XXXHDPI icon + + + + Select an icon for extra-extra-extra-high-density (xxxhdpi) screens (~640dpi). + + + + Icon scaled up. + + + + Click to select... + + + + Images (*.png *.jpg *.jpeg *.webp *.svg) + + + + Include default permissions for Qt modules. + + + + Include default features for Qt modules. + + + + Package + + + + <p align="justify">Please choose a valid package name for your application (for example, "org.example.myapplication").</p><p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p><p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.</p><p align="justify">Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.</p> + + + + Package name: + 包名称: + + + The package name is not valid. + + + + Version code: + + + + Version name: + 版本名称: + + + Sets the minimum required version on which this application can be run. + + + + Not set + + + + Minimum required SDK: + + + + Sets the target SDK. Set this to the highest tested version. This disables compatibility behavior of the system for your application. + + + + Target SDK: + + + + Application name: + + + + Activity name: + + + + Style extraction: + + + + Screen orientation: + + + + Advanced + 高级 + + + Application icon + + + + Android services + + + + Splash screen + + + + Service Definition Invalid + + + + Cannot switch to source when there are invalid services. + + + + Cannot save when there are invalid services. + + + + The structure of the Android manifest file is corrupted. Expected a top level 'manifest' node. + + + + The structure of the Android manifest file is corrupted. Expected an 'application' and 'activity' sub node. + + + + API %1: %2 + + + + Could not parse file: "%1". + + + + %2: Could not parse file: "%1". + + + + Goto error + + + + Services invalid. Manifest cannot be saved. Correct the service definitions before saving. + + + + <b>Make install:</b> Copy App Files to %1 + + + + "%1" step has an invalid C++ toolchain. + + + + Removing directory %1 + + + + Failed to clean "%1" from the previous build, with error: +%2 + + + + Deploy to Android Device + + + + Java Language Server + + + + Would you like to configure Android options? This will ensure Android kits can be usable and all essential packages are installed. To do it later, select Edit > Preferences > Devices > Android. + + + + Configure Android + + + + Configure Android... + + + + %1 needs additional settings to enable Android support. You can configure those settings in the Options dialog. + + + + %1 has been stopped. + + + + Selected device is invalid. + + + + Selected device is disconnected. + + + + Launching AVD. + + + + Could not start AVD. + + + + No valid AVD has been selected. + + + + Checking if %1 app is installed. + + + + ABI of the selected device is unknown. Cannot install APK. + + + + Cannot install %1 app for %2 architecture. The appropriate APK was not found in resources folders. + + + + Installing %1 APK. + + + + Too many .qmlproject files in your project. Open directly the .qmlproject file you want to work with and then run the preview. + + + + No .qmlproject file found among project files. + + + + Could not gather information on project files. + + + + Could not create file for %1 "%2" + + + + A timeout occurred running "%1" + + + + Crash while creating file for %1 "%2" + + + + Creating file for %1 failed. "%2" (exit code %3). + + + + Uploading files. + + + + Starting %1. + 正在启动 %1 %2 + {1.?} + + + %1 is running. + + + + NDK is not configured in Devices > Android. + + + + SDK is not configured in Devices > Android. + + + + Failed to detect the ABIs used by the Qt version. Check the settings in Devices > Android for errors. + + + + Clean Environment + + + + Activity manager start arguments: + + + + Pre-launch on-device shell commands: + + + + Post-quit on-device shell commands: + + + + "%1" terminated. + + + + No free ports available on host for QML debugging. + + + + Failed to find application directory. + + + + Cannot find C++ debug server in NDK installation. + + + + The lldb-server binary has not been found. + + + + Cannot copy C++ debug server. + + + + Failed to start the activity. + + + + Activity Manager threw the error: %1 + + + + Failed to start debugger server. + + + + Failed to forward JDB debugging ports. + + + + Failed to start JDB. + + + + Cannot attach JDB to the running application. + + + + "%1" died. + + + + Encountered SSL errors, download is aborted. + + + + The SDK Tools download URL is empty. + + + + Downloading SDK Tools package... + + + + Cancel + 取消 + + + Download SDK Tools + + + + Could not open %1 for writing: %2. + + + + Downloading Android SDK Tools from URL %1 has failed: %2. + + + + Download from %1 was redirected. + + + + Writing and verifying the integrity of the downloaded file has failed. + + + + The operation requires user interaction. Use the "sdkmanager" command-line tool. + + + + Updating installed packages. + + + + Failed. + 失败. + + + Done + + + + + + Installing + + + + Uninstalling + + + + AndroidSdkManager + Failed + + + + AndroidSdkManager + Done + + + + + + License command failed. + + + + + + Android SDK Manager + + + + Update Installed + + + + Apply + + + + Default + 默认 + + + Stable + + + + Beta + + + + Dev + + + + Canary + + + + Include obsolete + + + + Available + 可用 + + + Installed + 已安装 + + + All + 所有 + + + Advanced Options... + + + + Expand All + 展开全部 + + + Do you want to accept the Android SDK license? + + + + Show Packages + + + + Channel: + + + + Android SDK Changes + + + + %1 cannot find the following essential packages: "%2". +Install them manually after the current operation is done. + + + + + Android SDK installation is missing necessary packages. Do you want to install the missing packages? + + + + Checking pending licenses... + + + + + The installation of Android SDK packages may fail if the respective licenses are not accepted. + + + + + +SDK Manager is busy. + + + + %n Android SDK packages shall be updated. + + + + + + [Packages to be uninstalled:] + + + + + SDK Manager is busy. Operation cancelled. + + + + Installing/Uninstalling selected packages... + + + + + Closing the %1 dialog will cancel the running and scheduled SDK operations. + + + + + preferences + + + + options + + + + Updating installed packages... + + + + + Android SDK operations finished. + + + + Operation cancelled. + + + + + +No pending operations to cancel... + + + + + +Cancelling pending operations... + + + + + SDK Manager Arguments + + + + Cannot load available arguments for "sdkmanager" command. + + + + SDK manager arguments: + + + + Available arguments: + + + + Revision + + + + API + + + + Tools + + + + SDK Platform + + + + The name of the class implementing the service. + + + + Checked if the service is run in an external process. + + + + The name of the external process. +Prefix with : if the process is private, use a lowercase name if the process is global. + + + + Checked if the service is in a separate dynamic library. + + + + The name of the separate dynamic library. + + + + The arguments for telling the app to run the service instead of the main activity. + + + + Service class name. + + + + Run in external process. + + + + Process name. + + + + Run in external library. + + + + Library name. + + + + Service arguments. + + + + The class name must be set. + + + + The process name must be set for a service run in an external process. + + + + The library name must be set for a service run in an external library. + + + + Open Android SDK download URL in the system's browser. + + + + Add the selected custom NDK. The toolchains and debuggers will be created automatically. + + + + Remove the selected NDK if it has been added manually. + + + + Force a specific NDK installation to be used by all Android kits.<br/>Note that the forced NDK might not be compatible with all registered Qt versions. + + + + Open JDK download URL in the system's browser. + + + + Set Up SDK + + + + Automatically download Android SDK Tools to selected location. + +If the selected path contains no valid SDK Tools, the SDK Tools package is downloaded +from %1, +and extracted to the selected path. +After the SDK Tools are properly set up, you are prompted to install any essential +packages required for Qt to build for Android. + + + + SDK Manager + + + + Open Android NDK download URL in the system's browser. + + + + Automatically create kits for Android tool chains + + + + Select the path of the prebuilt OpenSSL binaries. + + + + Download OpenSSL + + + + Automatically download OpenSSL prebuilt libraries. + +These libraries can be shipped with your application if any SSL operations +are performed. Find the checkbox under "Projects > Build > Build Steps > +Build Android APK > Additional Libraries". +If the automatic download fails, Qt Creator proposes to open the download URL +in the system's browser for manual download. + + + + Android SDK path exists and is writable. + + + + JDK path exists and is writable. + + + + SDK tools installed. + + + + SDK manager runs. + + + + Platform tools installed. + + + + All essential packages installed for all installed Qt versions. + + + + Build tools installed. + + + + Platform SDK installed. + + + + Android settings are OK. + + + + Android settings have errors. + + + + OpenSSL path exists. + + + + QMake include project (openssl.pri) exists. + + + + CMake include project (CMakeLists.txt) exists. + + + + OpenSSL Settings are OK. + + + + OpenSSL settings have errors. + + + + Select JDK Path + + + + Select Android SDK Folder + + + + Select OpenSSL Include Project File + + + + Android Settings + + + + JDK location: + + + + Android NDK list: + + + + Android OpenSSL settings (Optional) + + + + OpenSSL binaries location: + + + + Failed to create the SDK Tools path %1. + + + + Select an NDK + + + + Add Custom NDK + + + + The selected path has an invalid NDK. This might mean that the path contains space characters, or that it does not have a "toolchains" sub-directory, or that the NDK version could not be retrieved because of a missing "source.properties" or "RELEASE.TXT" file + + + + OpenSSL Cloning + + + + OpenSSL prebuilt libraries repository is already configured. + + + + The selected download path (%1) for OpenSSL already exists and the directory is not empty. Select a different path or make sure it is an empty directory. + + + + Cloning OpenSSL prebuilt libraries... + + + + OpenSSL prebuilt libraries cloning failed. + + + + Opening OpenSSL URL for manual download. + + + + Open Download URL + + + + The Git tool might not be installed properly on your system. + + + + (SDK Version: %1, NDK Version: %2) + + + + Unset Default + + + + Make Default + 设置为默认 + + + The selected path already has a valid SDK Tools package. + + + + Download and install Android SDK Tools to %1? + + + + Android Clang + + + + Overwrite existing AVD name + + + + Device definition: + + + + Architecture (ABI): + + + + Target API: + + + + Cannot create a new AVD. No suitable Android system image is installed.<br/>Install a system image for the intended Android version from the SDK Manager. + + + + Cannot create an AVD for ABI %1.<br/>Install a system image for it from the SDK Manager tab first. + + + + Allowed characters are: a-z A-Z 0-9 and . _ - + + + + No application .pro file found in this project. + + + + No Application .pro File + + + + Select the .pro file for which you want to create the Android template files. + + + + .pro file: + + + + Select a .pro File + + + + Android package source directory: + + + + The Android package source directory cannot be the same as the project directory. + + + + Copy the Gradle files to Android directory + + + + It is highly recommended if you are planning to extend the Java part of your Qt application. + + + + Select the Android package source directory. + +The files in the Android package source directory are copied to the build directory's Android directory and the default files are overwritten. + + + + The Android template files will be created in the %1 set in the .pro file. + + + + Create Android Template Files Wizard + + + + Project File not Updated + + + + Could not update the project file %1. + + + + Java: + + + + Java Language Server: + + + + Path to equinox launcher jar + + + + Select splash screen image + + + + Portrait splash screen + + + + Select portrait splash screen image + + + + Landscape splash screen + + + + Select landscape splash screen image + + + + Clear All + + + + A non-sticky splash screen is hidden automatically when an activity is drawn. +To hide a sticky splash screen, invoke QtAndroid::hideSplashScreen(). + + + + Sticky splash screen: + + + + Image show mode: + + + + Background color of the splash screen. + + + + Background color: + + + + Select master image to use. + + + + Master image: + + + + Select portrait master image to use. + + + + Portrait master image: + + + + Select landscape master image to use. + + + + Landscape master image: + + + + LDPI + + + + MDPI + + + + HDPI + + + + XHDPI + + + + XXHDPI + + + + XXXHDPI + + + + An image is used for the splashscreen. Qt Creator manages +splashscreen by using a different method which requires changing +the manifest file by overriding your settings. Allow override? + + + + Convert + + + + Select background color + + + + Select master image + + + + Select portrait master image + + + + Select landscape master image + + + + Images + 图片 + + Application Failed to load core: %1 核心载入失败: %1 - - Unable to send command line arguments to the already running instance. It appears to be not responding. Do you want to start a new instance of Creator? - 无法发送命令行参数到已经运行的实例中。看起来没有响应。您想要启动一个新的Creator实例吗? - - - Unable to send command line arguments to the already running instance. It appears to be not responding. - 无法将命令行参数发送到执行中的进程,看起来进程未响应. - Could not send message 无法发送消息 - Could not find 'Core.pluginspec' in %1 - 在%1 中找不到 'Core.pluginspec' + Unable to send command line arguments to the already running instance. It does not appear to be responding. Do you want to start a new instance of %1? + - Qt Creator - Plugin loader messages - Qt Creator - 插件载入信息 - - - - AttachCoreDialog - - Start Debugger - 启动调试器 - - - Executable: - 执行档: - - - Core File: - 核心文件: - - - Core file: - 核心文件: - - - &Executable: - 执行档(&E): - - - &Core file: - 核心文件(&C): - - - &Tool chain: - 工具链(&T): - - - Override &Start script: - 覆盖启动脚本(&S): - - - Sys&root: - 系统根目录(&R): - - - Override &start script: - 覆盖启动脚本(&S): - - - - AttachExternalDialog - - Start Debugger - 启动调试器 - - - Attach to Process ID: - 挂接进程ID: - - - Filter: - 过滤器: - - - Clear - 清空 - - - Attach to process ID: - 关联进程ID: - - - Attach to &process ID: - 挂接到进程ID(&P): - - - &Tool chain: - 工具链(&T): - - - - BINEditor::Internal::BinEditorPlugin - - &Undo - 撤销(&U) - - - &Redo - 恢复(&R) - - - - Bookmarks - - Add Bookmark - 添加书签 - - - Bookmark: - 书签: - - - Add in Folder: - 添加到文件夹: - - - + - + - - - New Folder - 新建文件夹 - - - Bookmarks - 书签 - - - Delete Folder - 删除文件夹 - - - Rename Folder - 重命名文件夹 - - - Add in folder: - 添加到文件夹: - - - Remove - 删除 - - - Deleting a folder also removes its content.<br>Do you want to continue? - 删除文件夹会同时删除文件夹下的文件。<br>您确定继续吗? - - - Show Bookmark - 显示书签 - - - Show Bookmark as New Page - 在新页面显示书签 - - - Delete Bookmark - 删除书签 - - - Rename Bookmark - 重命名书签 - - - Filter: - 过滤器: - - - Add - 添加 - - - Move Up - 向上移动 - - - Move Down - 向下移动 - - - &Remove - 删除(&R) - - - Remove All - 全部删除 - - - &Remove Bookmark - 删除书签(&R) - - - Remove all Bookmarks - 删除所有书签 - - - &Bookmarks - 书签(&B) - - - Toggle Bookmark - 切换书签 - - - Ctrl+M - Ctrl+M - - - Meta+M - Meta+M - - - Previous Bookmark - 上个书签 - - - Ctrl+, - Ctrl+, - - - Meta+, - Meta+, - - - Next Bookmark - 下个书签 - - - Ctrl+. - Ctrl+. - - - Meta+. - Meta+. - - - Previous Bookmark in Document - 文档中的上个书签 - - - Next Bookmark in Document - 文档中的下个书签 - - - Edit Bookmark Note - 编辑书签注释 - - - Previous Bookmark In Document - 上个文档内书签 - - - Next Bookmark In Document - 下个文档内书签 - - - - Debugger - - Function to break on: - 设断点的函数: - - - Set Breakpoint at Function - 在函数处设定断点 - - - - CMakeProjectManager - - Clear system environment - 清除系统环境变量 - - - Create - 创建 - - - Build - 构建 - - - New Configuration - 新配置 - - - New configuration name: - 新配置名称: - - - New configuration - 新配置 - - - New Configuration Name: - 新配置名称: - - - Run cmake - 执行cmake - - - Reconfigure project: - 重新装配项目: - - - &Change - 更改(&C) - - - Build directory: - 构建目录: - - - CMake Wizard - CMake 向导 - - - Arguments: - 参数: - - - Select the working directory - 选择工作文件夹 - - - Select Working Directory - 选择工作目录 - - - Reset to default - 重置为默认 - - - Working Directory: - 工作目录: - - - Working directory: - 工作目录: - - - Run in Terminal - 在终端中运行 - - - Debugger: - 调试器: - - - Run Environment - 运行环境 - - - Base environment for this runconfiguration: - 本次运行配置的基本环境变量: - - - Clean Environment - 清除环境变量 - - - System Environment - 系统环境变量 - - - Build Environment - 构建时的环境变量 - - - Running executable: <b>%1</b> %2 - 运行的执行档: <b>%1</b> %2 - - - Qt Creator has detected an <b>in-source-build in %1</b> which prevents shadow builds. Qt Creator will not allow you to change the build directory. If you want a shadow build, clean your source directory and re-open the project. - Qt Creator在<b>%1</b>检测到一个<b>在源代码中的构建</b>,无法进行shadow build. Qt Creator将不允许您更改编译目录。如果您想要进行shadow build,请清理源码目录再重新打开此项目。 - - - Build Location - 构建路径 - - - Generator: - 创建器: - - - Run CMake - 执行CMake - - - Arguments - 参数 - - - The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running cmake. Some projects require command line arguments to the initial cmake call. - 目录 %1 没有 cbp 文件. Qt Creator 需要运行 cmake以创建此文件. 一些项目需要命令参数初始化cmake调用. - - - Qt Creator needs to run cmake in the new build directory. Some projects require command line arguments to the initial cmake call. - Qt Creator 需要在新的构建目录下运行 cmake . 一些项目需要命令参数初始化cmake调用. - - - Please specify the path to the CMake executable. No CMake executable was found in the path. - 请指定cmake可执行档的路径,在环境变量path中没有找到cmake执行档。 - - - The CMake executable (%1) does not exist. - cmake执行档 (%1) 不存在。 - - - The path %1 is not a valid CMake. - 路径 (%1) 不是有效的cmake。 - - - The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments and rerun CMake. Or simply finish the wizard directly. - 目录中 %1 已经存在足够新的 cbp 文件。您可以传入特殊参数重新运行 CMake,或者直接完成向导。 - - - The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running CMake. Some projects require command line arguments to the initial CMake call. - 目录 %1 没有 cbp 文件。Qt Creator 需要运行 CMake以创建此文件。一些项目需要命令参数初始化 CMake 调用。 - - - The directory %1 contains an outdated .cbp file. Qt Creator needs to update this file by running CMake. If you want to add additional command line arguments, add them below. Note that CMake remembers command line arguments from the previous runs. - 目录 %1 包含了一个过期的 .cbp文件。Qt Creator需要运行 CMake 以更新此文件。如果您想添加额外的命令行参数,那就添加在下面。注意 CMake 会记住上次运行时的命令行参数。 - - - The directory %1 specified in a build-configuration, does not contain a cbp file. Qt Creator needs to recreate this file, by running CMake. Some projects require command line arguments to the initial CMake call. Note that CMake remembers command line arguments from the previous runs. - 目录 %1 指定了一个构建配置却不包含 cbp文件。Qt Creator 需要运行 CMake 以重新创建此文件。一些项目需要命令参数初始化CMake调用。注意 CMake 会记住上次运行时的命令行参数。 - - - Qt Creator needs to run CMake in the new build directory. Some projects require command line arguments to the initial CMake call. - Qt Creator 需要在新的构建目录下运行 CMake。一些项目需要命令参数初始化 CMake 调用。 - - - Refreshing cbp file in %1. - 正在刷新 %1 中的 cbp 文件。 - - - MinGW Generator (%1) - MinGW 创建器 (%1) - - - Unix Generator (%1) - Unix 创建器 (%1) - - - No generator selected. - 没有选择创建器。 - - - CMake exited with errors. Please check CMake output. - CMake 错误退出。请检查 CMake 输出。 - - - CMake exited with errors. Please check cmake output. - CMake 错误退出. 请检查 cmake 输出. - - - NMake Generator - NMake 创建器 - - - NMake Generator (%1) - NMake 创建器(%1) - - - MinGW Generator - MinGW 创建器 - - - No valid CMake executable specified. - 没有指定有效的cmake执行档。 - - - No valid cmake executable specified. - 没有指定有效的cmake执行档。 - - - CMake - CMake - - - Executable: - 执行档: - - - CMake executable - 可执行的cmake - - - Additional arguments: - 额外的参数: - - - Targets: - 目标: - - - Make - CMakeProjectManager::MakeStepConfigWidget display name. - Make - - - <b>No build configuration found on this target.</b> - <b>未找到此目标的构建配置。</b> - - - <b>Unknown tool chain</b> - <b>未知工具链</b> - - - <b>Make:</b> %1 %2 - <b>Make:</b> %1 %2 - - - <b>Unknown Toolchain</b> - <b>未知工具链</b> - - - Please enter the directory in which you want to build your project. - 请进入您想构建项目的目录。 - - - Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings. - 请进入您想构建项目的目录。Qt Creator 建议您不要使用源目录构建。这能确保源目录干净,并且可以针对不同设定多次构建。 - - - - CPlusPlus::OverviewModel - - <Select Symbol> - <选择符号> - - - <No Symbols> - <没有符号> - - - - CdbOptionsPageWidget - - These options take effect at the next start of Qt Creator. - 这些选项将在Qt Creator 下次启动时生效。 - - - Debugger Paths - 调试器路径 - - - Symbol paths: - 符号路径: - - - Source paths: - 源码路径: - - - <html><body><p>Specify the path to the <a href="%1">Debugging Tools for Windows</a> (%2) here.</p><p><b>Note:</b> Restarting Qt Creator is required for these settings to take effect.</p></p></body></html> - Label text for path configuration. %2 is "x-bit version". - <html><body><p>在这里指定到 <a href="%1">windows下的调试工具</a> (%2) 的路径.</p><p><b>注意:</b> 使配置生效需要重启动 Qt Creator 。</p></p></body></html> - - - Other options - 其他选项 - - - Verbose Symbol Loading - 打印标记载入信息 - - - Other Options - 其他选项 - - - Verbose symbol loading - 打印符号载入的详细信息 - - - fast loading of debugging helpers - 快速载入调试助手 - - - Fast loading of debugging helpers - 快速载入调试助手 - - - Break on exception - 在异常处中断 - - - - ChangeSelectionDialog - - Repository Location: - 代码仓库地址: - - - Select - 选择 - - - Change: - 修改: - - - Repository location: - 代码仓库地址: - - - - CodePaster - - &Code Pasting - 粘贴代码(&C) - - - Paste Snippet... - 粘贴代码片段... - - - Alt+C,Alt+P - Alt+C,Alt+P - - - Meta+C,Meta+P - Meta+C,Meta+P - - - Paste Clipboard... - 粘贴剪贴板... - - - Fetch Snippet... - 取得代码片段... - - - Alt+C,Alt+F - Alt+C,Alt+F - - - Meta+C,Meta+F - Meta+C,Meta+F - - - Fetch from URL... - 从URL获取... - - - Fetch from URL - 从URL获取 - - - Enter URL: - 输入URL: - - - Empty snippet received for "%1". - "%1"接收到空的片段。 - - - Refresh - 刷新 - - - Waiting for items - 等待数据项 - - - This protocol does not support listing - 此协议不支持列表 - - - Copy Paste URL to clipboard - 复制URL到剪贴板 - - - Display Output Pane after sending a post - 发送后显示输出对话框 - - - General - 概要 - - - - CompletionSettingsPage - - &Case-sensitive completion - 区分大小写(&C) - - - Automatically insert (, ) and ; when appropriate. - 必要时自动插入符号(,)和(;)。 - - - Insert the common prefix of available completion items. - 为可自动补全的项插入相同的前缀。 - - - &Automatically insert brackets - 自动插入括号(&A) - - - Behavior - 行为 - - - &Case-sensitivity: - 大小写敏感(&C): - - - Full - 全部 - - - None - - - - First letter - 仅首字母 - - - Insert &space after function name - 在函数名后插入空格(&S) - - - First Letter - 仅首字母 - - - Activate completion: - 激活补全: - - - Manually - 手动设置 - - - When Triggered - 当触发时 - - - Always - 总是 - - - Automatically insert brackets and semicolons when appropriate. - 在适当的时候自动添加括号和分号. - - - Automatically insert semicolons and closing brackets, parentheses, curly braces, and quotes when appropriate. - 在适当的时候自动添加括号,分号,大括号和引号. - - - &Automatically insert matching characters - 自动插入括号(&A) - - - Surround &text selections - 环绕文本选择(&T) - - - - ContentWindow - - Open Link - 打开链接 - - - Open Link as New Page - 在新页面打开连接 - - - - Core::BaseFileWizard - - Unable to create the directory %1. - 创建文件夹 %1 失败。 - - - Unable to open %1 for writing: %2 - 写入方式打开文件%1失败: %2 - - - Error while writing to %1: %2 - 写入 %1: %2发生错误 - - - File Generation Failure - 生成文件失败 - - - Existing files - 已存在的文件 - - - Failed to open an editor for '%1'. - 为 '%1'打开编辑器时失败。 - - - [read only] - [只读] - - - [folder] - [文件夹] - - - [directory] - [目录] - - - [symbolic link] - [符号链接] - - - The project directory %1 contains files which cannot be overwritten: -%2. - 项目目录 %1 存在着无法被覆盖的文件: -%2。 - - - The following files already exist in the directory %1: -%2. -Would you like to overwrite them? - 以下文件在目录 %1 中已经存在: -%2. -是否要覆盖? - - - - Core::EditorManager - - Revert to Saved - 恢复到已保存的状态 - - - Close - 关闭 - - - Close All - 关闭所有文件 - - - Close Others - 关闭其他 - - - Open in External Editor - 用外部编辑器打开 - - - Revert File to Saved - 恢复文件到已保存的状态 - - - Ctrl+F4 - Ctrl+F4 - - - Ctrl+W - Ctrl+W - - - Ctrl+Shift+W - Ctrl+Shift+W - - - Alt+Tab - Alt+Tab - - - Ctrl+Tab - Ctrl+Tab - - - Alt+Shift+Tab - Alt+Shift+Tab - - - Ctrl+Shift+Tab - Ctrl+Shift+Tab - - - Ctrl+Alt+Left - Ctrl+Alt+Left - - - Alt+Left - Alt+Left - - - Ctrl+Alt+Right - Ctrl+Alt+Right - - - Alt+Right - Alt+Right - - - Split - 分栏 - - - Meta+E,2 - Meta+E,2 - - - Ctrl+E,2 - Ctrl+E,2 - - - Split Side by Side - 左右分栏 - - - Meta+E,3 - Meta+E,3 - - - Ctrl+E,3 - Ctrl+E,3 - - - Remove Current Split - 删除当前分隔 - - - Meta+E,0 - Meta+E,0 - - - Ctrl+E,0 - Ctrl+E,0 - - - Remove All Splits - 删除所有分隔 - - - Meta+E,1 - Meta+E,1 - - - Ctrl+E,1 - Ctrl+E,1 - - - Meta+E,o - Meta+E,o - - - Ctrl+E,o - Ctrl+E,o - - - Make Writable - 使文件可写 - - - The file <i>%1</i> is read only. - 文件 <i>%1</i> 是只读的。 - - - Save %1 &As... - %1 另存为(&A)... - - - Goto Other Split - 移动到其他分隔 - - - &Advanced - 高级(&A) - - - Alt+V,Alt+I - Alt+V,Alt+I - - - All Files (*) - 所有文件 (*) - - - Opening File - 打开文件 - - - Cannot open file %1! - 打开文件 %1 失败! - - - Open File - 打开文件 - - - File is Read Only - 文件是只读状态 - - - The file %1 is read only. - 文件 %1 是只读的。 - - - Open with VCS (%1) - 使用VCS打开 (%1) - - - Save as ... - 另存为... - - - Failed! - 失败! - - - Could not set permissions to writable. - 无法设置文件的可写权限。 - - - Qt Creator - Qt Creator - - - <b>Warning:</b> This file was not opened in %1 yet. - <b>警告:</b> 此文件还没有在%1中打开。 - - - Open - 打开 - - - <b>Warning:</b> You are changing a read-only file. - <b>警告:</b> 您正在改写一个只读文件。 - - - Make writable - 使文件可写 - - - Next Open Document in History - 历史中下个打开的文件 - - - Previous Open Document in History - 历史中先前打开的文件 - - - Go Back - 返回 - - - Go Forward - 前进 - - - Meta+E - Meta+E - - - Ctrl+E - Ctrl+E - - - %1,2 - %1,2 - - - %1,3 - %1,3 - - - %1,0 - %1,0 - - - %1,1 - %1,1 - - - Go to Next Split - 移动到下一个分栏 - - - %1,o - %1,o - - - Ad&vanced - 高级(&A) - - - Full path of the current document including file name. - 当前文档包含文件名的完整路径。 - - - Full path of the current document excluding file name. - 当前文档不包含文件名的完整路径。 - - - X-coordinate of the current editor's upper left corner, relative to screen. - 当前编辑器的左上角(相对屏幕来说)X坐标轴。 - - - Y-coordinate of the current editor's upper left corner, relative to screen. - 当前编辑器的左上角(相对屏幕来说)Y坐标轴。 - - - Close "%1" - 关闭%1 - - - Close Editor - 关闭编辑器 - - - Close All Except "%1" - 除了%1 以外全部关闭 - - - Close Other Editors - 关闭其他编辑器 - - - File Error - 文件错误 - - - Cannot Open File - 无法打开文件 - - - Cannot open the file for editing with SCC. - 无法使用SCC打开用于编辑的文件。 - - - Cannot Set Permissions - 无法设置权限 - - - Cannot set permissions to writable. - 无法设置可写权限。 - - - Cannot open the file for editing with VCS. - 无法为了编辑VCS而打开文件。 - - - Could not open the file for editing with SCC. - 无法打开文件用于SCC编辑。 - - - Save %1 As... - 另存为%1 ... - - - &Save %1 - 保存%1(&S) - - - Revert %1 to Saved - 恢复%1 到已保存的状态 - - - Close %1 - 关闭%1 - - - Close All Except %1 - 除了%1 以外全部关闭 - - - You will lose your current changes if you proceed reverting %1. - 如果恢复 %1 那么您将会丢失现有的所有修改。 - - - Proceed - 继续 - - - Cancel - 取消 - - - <table border=1 cellspacing=0 cellpadding=3><tr><th>Variable</th><th>Expands to</th></tr><tr><td>%f</td><td>file name</td></tr><tr><td>%l</td><td>current line number</td></tr><tr><td>%c</td><td>current column number</td></tr><tr><td>%x</td><td>editor's x position on screen</td></tr><tr><td>%y</td><td>editor's y position on screen</td></tr><tr><td>%w</td><td>editor's width in pixels</td></tr><tr><td>%h</td><td>editor's height in pixels</td></tr><tr><td>%W</td><td>editor's width in characters</td></tr><tr><td>%H</td><td>editor's height in characters</td></tr><tr><td>%%</td><td>%</td></tr></table> - <table border=1 cellspacing=0 cellpadding=3><tr><th>变量</th><th>展开到</th></tr><tr><td>%f</td><td>文件名</td></tr><tr><td>%l</td><td>当前行号</td></tr><tr><td>%c</td><td>当前列号</td></tr><tr><td>%x</td><td>编辑器的屏幕x坐标</td></tr><tr><td>%y</td><td>编辑器的屏幕y坐标</td></tr><tr><td>%w</td><td>编辑器的宽度(像素数)</td></tr><tr><td>%h</td><td>编辑器的高度(像素数)</td></tr><tr><td>%W</td><td>编辑器的宽度(字符数)</td></tr><tr><td>%H</td><td>编辑器的高度(字符数)</td></tr><tr><td>%%</td><td>%</td></tr></table> - - - - Core::FileManager - - Cannot save file - 保存文件失败 - - - File Error - 文件错误 - - - Overwrite? - 覆盖? - - - An item named '%1' already exists at this location. Do you want to overwrite it? - 名为'%1'的项已经存在,是否想要覆盖它? - - - Save File As - 文件另存为 - - - Open File - 打开文件 - - - File is Read Only - 文件是只读状态 - - - The file <i>%1</i> is read only. - 文件 <i>%1</i> 是只读的。 - - - Open with VCS (%1) - 使用VCS打开 (%1) - - - Make writable - 使文件可写 - - - Save as... - 另存为... - - - Cannot reload %1 - 无法重载%1 - - - Save as ... - 另存为... - - - - Core::Internal::ComboBox - - Activate %1 - 激活%1 - - - - Core::Internal::EditMode - - Edit - 编辑 - - - - Core::Internal::EditorSplitter - - Split Left/Right - 左右分栏 - - - Split Top/Bottom - 上下分栏 - - - Unsplit - 合并分栏 - - - Default Splitter Layout - 默认分栏布局 - - - Save Current as Default - 将当前保存为默认 - - - Restore Default Layout - 重置到默认布局 - - - Previous Document - 上个文档 - - - Alt+Left - Alt+Left - - - Next Document - 下个文档 - - - Alt+Right - Alt+Right - - - Previous Group - 上个组 - - - Next Group - 下个组 - - - - Core::Internal::EditorView - - Go Back - 返回 - - - Go Forward - 前进 - - - Placeholder - 占位符 - - - Close - 关闭 - - - Make writable - 使文件可写 - - - File is writable - 文件可写 - - - - Core::Internal::GeneralSettings - - General - 概要 - - - <System Language> - <系统语言> - - - Restart required - 需要重启 - - - The language change will take effect after a restart of Qt Creator. - 语言变更会在重启 Qt Creator 后生效。 - - - Environment - 环境 - - - Variables - 变量 - - - General settings - 基本设定 - - - User &interface color: - 用户界面颜色(&i): - - - Reset to default - 重置为默认 - - - R - R - - - Terminal: - 终端: - - - External editor: - 外部编辑器: - - - ? - ? - - - When files are externally modified: - 当文件被外部修改时: - - - Always ask - 总是询问 - - - Reload all modified files - 载入所有被修改的文件 - - - Ignore modifications - 忽略修改 - - - User Interface - 用户界面 - - - Color: - 颜色: - - - Language: - 语言: - - - Default File Encoding: - 默认文件编码: - - - System - 系统 - - - External file browser: - 外部文件浏览器: - - - Reload all unchanged editors - 重新载入所有未变更的编辑器 - - - Default file encoding: - 默认文件编码: - - - Always Ask - 总是询问 - - - Reload All Unchanged Editors - 重新载入所有未变更的编辑器 - - - Ignore Modifications - 忽略修改 - - - Reset - 重置 - - - Reset to default. - Color - 重置为默认。 - - - Reset to default. - Terminal - 重置为默认。 - - - Reset to default. - File Browser - 重置为默认。 - - - Automatically create temporary copies of modified files. If Qt Creator is restarted after a crash or power failure, it asks whether to recover the auto-saved content. - 自动为已修改的文件创建临时备份。如果Qt Creator在崩溃或停电后重启,它将会询问是否恢复自动保存的内容。 - - - Auto-save modified files - 自动保存修改的文件 - - - Interval: - 间隔: - - - min - unit for minutes - - - - - Core::Internal::MainWindow - - Qt Creator - Qt Creator - - - Output - 输出 - - - &File - 文件(&F) - - - &Edit - 编辑(&E) - - - &Tools - 工具(&T) - - - &Window - 控件(&W) - - - &Help - 帮助(&H) - - - &New File or Project... - 新建文件或项目(&N)... - - - &Open File or Project... - 打开文件或项目(&O)... - - - &Open File With... - 打开为(&O)... - - - Recent Files - 最近使用的文件 - - - Exit Full Screen - 退出全屏模式 - - - Enter Full Screen - 进入全屏模式 - - - Open File &With... - 不需要快捷键 - 打开文件,用...(&W) - - - Recent &Files - 最近访问的文件(&F) - - - &Save - 保存(&S) - - - Save - 保存 - - - Save &As... - 另存为(&A)... - - - Ctrl+Shift+S - Ctrl+Shift+S - - - Save As... - 另存为... - - - Save A&ll - 保存所有文件(&L) - - - &Print... - 打印(&P)... - - - E&xit - 退出(&X) - - - Ctrl+Q - Ctrl+Q - - - &Undo - 撤销(&U) - - - Undo - 撤销 - - - &Redo - 重做(&R) - - - Redo - 重做 - - - Cu&t - 剪切(&T) - - - &Copy - 复制(&C) - - - &Paste - 粘贴(&P) - - - Select &All - 全选(&A) - - - &Go to Line... - 转到行(&G)... - - - &Select All - 全选(&S) - - - &Go To Line... - 转到行(&G)... - - - Ctrl+L - Ctrl+L - - - &Options... - 选项(&O)... - - - Ctrl+, - Ctrl+, - - - Minimize - 最小化 - - - Ctrl+M - Ctrl+M - - - Zoom - 缩放 - - - Show Sidebar - 显示边栏 - - - Ctrl+0 - Ctrl+0 - - - Alt+0 - Alt+0 - - - Full Screen - 全屏 - - - Ctrl+Meta+F - Ctrl+Meta+F - - - Ctrl+Shift+F11 - Ctrl+Shift+F11 - - - &Views - 视图(&V) - - - About &Qt Creator - 关于 Qt Creator(&Q) - - - About &Qt Creator... - 关于 Qt Creator(&Q)... - - - About &Plugins... - 关于插件(&P)... - - - New - Title of dialog - 新建 - - - Open Project - 打开项目 - - - New... - Title of dialog - 新建... - - - Settings... - 设定... - - - - Core::Internal::MessageOutputWindow - - General - 概要 - - - General Messages - 概要信息 - - - - Core::Internal::NavComboBox - - Activate %1 - 激活 %1 - - - - Core::Internal::NavigationSubWidget - - Split - 分栏 - - - Close - 关闭 - - - - Core::Internal::NavigationWidget - - Hide Sidebar - 隐藏边栏 - - - Show Sidebar - 显示边栏 - - - Activate %1 Pane - 激活%1 窗口 - - - - Core::Internal::NewDialog - - New Project - 新项目 - - - 1 - 1 - - - &Create - 创建(&C) - - - Choose a template: - 选择一个模板: - - - &Choose... - 选择(&C)... - - - Projects - 项目 - - - Files and Classes - 文件和类 - - - All Templates - 所有模板 - - - %1 Templates - %1 模板 - - - Platform independent - 与平台无关 - - - Supported Platforms - 支持的平台 - - - - Core::Internal::OpenEditorsWidget - - Open Documents - 打开文档 - - - Close %1 - 关闭 %1 - - - Close Editor - 关闭编辑器 - - - Close All Except %1 - 关闭所有除了%1 - - - Close "%1" - 关闭%1 - - - Close All Except "%1" - 除了%1 以外全部关闭 - - - Close Other Editors - 关闭其他编辑器 - - - Close All Editors - 关闭所有编辑器 - - - - Core::Internal::OpenEditorsWindow - - * - * - - - - Core::Internal::OpenWithDialog - - Open file '%1' with: - 打开文件 '%1',用: - - - Open File With... - 打开文件,用... - - - Open file extension with: - 使用...打开文件扩展名: - - - - Core::Internal::OutputPaneManager - - Output - 输出 - - - Clear - 清空 - - - Next Item - 下一项 - - - Previous Item - 上一项 - - - Maximize Output Pane - 最大化输出窗口 - - - Shift+F6 - Shift+F6 - - - F6 - F6 - - - Ctrl+9 - Ctrl+9 - - - Alt+9 - Alt+9 - - - Minimize Output Pane - 最小化输出窗口 - - - Minimize/Maximize Output Pane - 最小化/最大化输出窗口 - - - Output &Panes - 输出窗口(&P) - - - - Core::Internal::PluginDialog - - Details - 详情 - - - Error Details - 错误详情 - - - Close - 关闭 - - - Restart required. - 需要重启。 - - - Installed Plugins - 已安装的插件 - - - Plugin Details of %1 - %1 的插件详情 - - - Plugin Errors of %1 - %1 的插件错误 - - - - Core::Internal::ProgressView - - Processes - 进程 - - - - Core::Internal::SaveItemsDialog - - Do not Save - 不要保存 - - - Save All - 保存所有 - - - Save - 保存 - - - Save Selected - 保存选中 - - - Save Changes - 保存修改 - - - The following files have unsaved changes: - 以下文件有未保存的修改: - - - Automatically save all files before building - 构建前自动保存所有文件 - - - - Core::Internal::ShortcutSettings - - Keyboard - 键盘 - - - Environment - 环境 - - - Keyboard Shortcuts - 键盘快捷键 - - - Key sequence: - 键位顺序: - - - Shortcut - 快捷键 - - - Import Keyboard Mapping Scheme - 导入键盘映射方案 - - - Keyboard Mapping Scheme (*.kms) - 键盘映射方案 (*.kms) - - - Export Keyboard Mapping Scheme - 导出键盘映射方案 - - - - Core::Internal::SideBarWidget - - Split - 分栏 - - - Close - 关闭 - - - - Core::Internal::VersionDialog - - About Qt Creator - 关于Qt Creator - - - (%1) - (%1) - - - From revision %1<br/> - This gets conditionally inserted as argument %8 into the description string. - 来自修订版本 %1<br/> - - - <h3>Qt Creator %1 %8</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%9<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - <h3>Qt Creator %1 %8</h3>基于 Qt %2 (%3 bit)<br/><br/>构建于 %5 %4 <br /><br/>%9<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - - - <h3>Qt Creator %1</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%8<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - <h3>Qt Creator %1</h3>基于 Qt %2 (%3 bit)<br/><br/>构建 %4 在 %5<br /><br/>%8<br/>版权 2008-%6 %7. 保留最终解释权.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - - - - Core::ModeManager - - Switch to <b>%1</b> mode - 切换到<b>%1</b> 模式 - - - - Core::ScriptManager - - Exception at line %1: %2 -%3 - 在%1 行发生异常: %2 -%3 - - - Unknown error - 未知错误 - - - - Core::StandardFileWizard - - New %1 - 新建 %1 - - - - Utils::ClassNameValidatingLineEdit - - The class name must not contain namespace delimiters. - 类名不能包含命名空间分隔符。 - - - Please enter a class name. - 请输入类名。 - - - The class name contains invalid characters. - 类名含有无效字符。 - - - - Utils::ConsoleProcess - - Cannot set up communication channel: %1 - 无法建立通信通道: %1 - - - Press <RETURN> to close this window... - 按 <RETURN> 来关闭窗口... - - - Cannot create temporary file: %1 - 无法创建临时文件: %1 - - - Cannot write temporary file. Disk full? - 无法创建临时文件。磁盘已满? - - - Cannot create temporary directory '%1': %2 - 无法创建临时目录 '%1': %2 - - - Unexpected output from helper program (%1). - 意料外的输出,来自帮助程序 (%1)。 - - - Cannot change to working directory '%1': %2 - 无法切换到工作目录 '%1': %2 - - - Cannot execute '%1': %2 - 无法执行 '%1': %2 - - - Unexpected output from helper program. - 来自帮助程序的异常输出. - - - The process '%1' could not be started: %2 - 进程 '%1' 无法被启动: %2 - - - Cannot obtain a handle to the inferior: %1 - 无法获得inferior的句柄: %1 - - - Cannot obtain exit status from inferior: %1 - 无法获得inferior的退出状态: %1 - - - Quoting error in command. - 命令发生引用(quoting) 错误。 - - - Debugging complex shell commands in a terminal is currently not supported. - 目前不支持在终端中调试复杂的命令。 - - - Quoting error in terminal command. - 终端命令发生引用(quoting)错误。 - - - Terminal command may not be a shell command. - 终端命令可能不是一个shell命令。 - - - Cannot start the terminal emulator '%1'. - 无法启动终端模拟器'%1'。 - - - Cannot create socket '%1': %2 - 无法创建套接字 '%1': %2 - - - - Utils::FileNameValidatingLineEdit - - The name must not be empty - 名称不能为空 - - - The name must not contain any of the characters '%1'. - 名称不能包含 '%1' 中的任何一个 - - - The name must not contain '%1'. - 名称不能包含 '%1' - - - The name must not match that of a MS Windows device. (%1). - 名称不能与微软视窗设备名相同. (%1). - - - Name is empty. - 名称为空。 - - - Name contains white space. - 名称包含空白。 - - - Invalid character '%1'. - 无效字符 '%1'。 - - - Invalid characters '%1'. - 无效字符串 '%1'。 - - - Name matches MS Windows device. (%1). - 名称与微软视窗设备匹配 (%1)。 - - - File extension %1 is required: - 需要文件扩展 %1 : - - - File extensions %1 are required: - 需要文件扩展 %1 : - - - - Utils::FileSearch - - %1: canceled. %n occurrences found in %2 files. - - %1: 被取消。在 %2 个文件找到了%n 次。 - - - - %1: %n occurrences found in %2 files. - - %1: 在 %2 个文件找到了%n 次。 - - - - %1: %n occurrences found in %2 of %3 files. - - %1: 在 %3个文件中的 %2个找到了%n 次。 - - - - - Utils::NewClassWidget - - Invalid base class name - 无效基类名 - - - Invalid header file name: '%1' - 无效的头文件名称: '%1' - - - Invalid source file name: '%1' - 无效的源文件名称: '%1' - - - Invalid form file name: '%1' - 无效的界面文件名: '%1' - - - Class name: - 类名: - - - Base class: - 基类: - - - Header file: - 头文件: - - - Source file: - 源文件: - - - Generate form: - 创建界面: - - - Form file: - 界面文件: - - - Path: - 路径: - - - Inherits QObject - 继承自QObject - - - Type information: - 类型信息: - - - None - - - - Inherits QWidget - 继承自QWidget - - - Based on QSharedData - 基于QSharedData - - - &Class name: - 类名(&C): - - - &Base class: - 基类(&B): - - - &Type information: - 类型信息(&T): - - - &Header file: - 头文件(&H): - - - &Source file: - 源文件(&S): - - - &Generate form: - 创建界面(&G): - - - &Form file: - 界面文件(&F): - - - &Path: - 路径(&P): - - - Inherits QDeclarativeItem - 继承自 QDeclarativeItem - - - - Utils::PathChooser - - Choose... - 选择... - - - Browse... - 浏览... - - - Choose a directory - 选择目录 - - - Choose a file - 选择文件 - - - Choose Directory - 选择目录 - - - Choose Executable - 选择执行档 - - - Choose File - 选择文件 - - - <not valid> - Selected path is not valid: - <无效> - - - The path must not be empty. - 路径不能为空。 - - - The path '%1' expanded to an empty string. - 路径'%1' 扩展到一个空的字符串。 - - - The path '%1' does not exist. - 路径 '%1' 不存在。 - - - Cannot execute '%1'. - 无法执行'%1'。 - - - The path <b>%1</b> is not a directory. - 路径 <b>'%1'</b> 不是一个目录。 - - - The path <b>%1</b> is not a file. - 路径 <b>'%1'</b> 不是文件。 - - - The path <b>%1</b> is not a executable file. - 路径 <b>%1</b> 不是可执行程序。 - - - Full path: <b>%1</b> - 完整路径: <b>%1<b> - - - The path '%1' is not a directory. - 路径 '%1' 不是一个目录。 - - - The path '%1' is not a file. - 路径 '%1' 不是文件. - - - Path: - 路径: - - - - Utils::PathListEditor - - Insert... - 插入... - - - Add... - 添加... - - - Delete Line - 删除行 - - - Delete line - 删除行 - - - Clear - 清除 - - - From "%1" - 从"%1" - - - - Utils::ProjectIntroPage - - <Enter_Name> - <输入名称> - - - The project already exists. - 项目已经存在。 - - - A file with that name already exists. - 存在同名文件。 - - - Introduction and project location - 项目介绍和位置 - - - Name: - 名称: - - - Create in: - 创建路径: - - - Use as default project location - 设为默认的项目路径 - - - Introduction and Project Location - 项目介绍和位置 - - - Project: - 项目: - - - - Utils::ProjectNameValidatingLineEdit - - The name must not contain the '.'-character. - 名称不能包含 '.' - - - Invalid character '.'. - 无效字符 '.'。 - - - - Utils::SubmitEditorWidget - - Subversion Submit - Subversion提交 - - - Des&cription - 说明(&C) - - - F&iles - 文件(&i) - - - Commit %1/%n Files - - 提交 %1/%n 文件 - - - - Commit - 提交 - - - %1 %2/%n File(s) - - %1 %2/%n 文件 - - - - &Commit - 提交(&C) - - - Check All - Check all for submit - 选中全部 - - - Uncheck All - Uncheck all for submit - 取消选中 - - - Descriptio&n - 说明(&N) - - - Check &all - 选中全部(&A) - - - Check a&ll - 选中全部(&L) - - - - Utils::WizardPage - - Choose the location - 选择位置 - - - Name: - 名称: - - - Path: - 路径: - - - Choose the Location - 选择位置 - - - - Utils::reloadPrompt - - File Changed - 文件已改变 - - - The unsaved file <i>%1</i> has been changed outside Qt Creator. Do you want to reload it and discard your changes? - 未保存的文件 <i>%1</i> 在 Qt Creator以外被改写,您想要重新载入并且丢弃现有的修改吗? - - - The file <i>%1</i> has changed outside Qt Creator. Do you want to reload it? - 文件 <i>%1</i> 在 Qt Creator以外被改写,您想重新载入么? - - - The unsaved file %1 has been changed outside Qt Creator. Do you want to reload it and discard your changes? - 未保存的文件 %1 在 Qt Creator以外被改写,您想要重新载入并且丢弃现有的修改吗? - - - The file %1 has changed outside Qt Creator. Do you want to reload it? - 文件 %1 在 Qt Creator以外被改写,您想重新载入么? - - - - CppEditor::Internal::CPPEditor - - Sort alphabetically - 按字母排序 - - - Sort Alphabetically - 按字母排序 - - - This change cannot be undone. - 这项改变将无法被撤销。 - - - Yes, I know what I am doing. - 是的,我知道自己在做什么。 - - - Unused variable - 未使用的变量 - - - - CppEditor::Internal::ClassNamePage - - Enter class name - 输入类名 - - - Enter Class Name - 输入类名 - - - The header and source file names will be derived from the class name - 头文件和源文件名字将取自类名 - - - Configure... - 配置... - - - - CppEditor::Internal::CppClassWizard - - Error while generating file contents. - 生成文件内容时发生错误。 - - - - CppEditor::Internal::CppClassWizardDialog - - C++ Class Wizard - C++ 类向导 - - - Details - 详情 - - - - CppEditor::Internal::CppHoverHandler - - Unfiltered - 未过滤 - - - - CppEditor::Internal::CppPlugin - - C++ - C++ - - - C++ Header File - C++ 头文件 - - - Creates a C++ header file. - 创建一个C++ 头文件。 - - - Creates a C++ source file. - 创建一个C++ 源文件。 - - - Creates a C++ header and a source file for a new class that you can add to a C++ project. - 为新类创建可以添加到C++项目中的一组头文件和源文件。 - - - Creates a C++ source file that you can add to a C++ project. - 创建可以添加到C++项目中的C++源文件。 - - - C++ Source File - C++ 源文件 - - - Creates a C++ header file that you can add to a C++ project. - 创建一个可以添加到C++项目中的C++头文件。 - - - Follow Symbol Under Cursor - 跟踪光标位置的符号 - - - Switch Between Method Declaration/Definition - 在方法声明/定义之间切换 - - - Shift+F2 - Shift+F2 - - - Open Type Hierarchy - 打开类型分层 - - - Ctrl+Shift+T - Ctrl+Shift+T - - - Meta+Shift+T - Meta+Shift+T - - - Rename Symbol Under Cursor - 重命名光标所在符号 - - - CTRL+SHIFT+R - CTRL+SHIFT+R - - - Update Code Model - 更新代码模型 - - - C++ Class - C++ 类 - - - Creates a header and a source file for a new class. - 为一个新类创建一个源文件和一个头文件。 - - - Follow Symbol under Cursor - 更随光标所在的符号 - - - Switch between Method Declaration/Definition - 在方法/定义之间切换 - - - Find Usages - 查找何处被使用 - - - Ctrl+Shift+U - Ctrl+Shift+U - - - Rename Symbol under Cursor - 重命名光标所在符号 - - - Update code model - 更新代码模型 - - - - CppFileSettingsPage - - File Naming Conventions - 文件命名规则 - - - Header suffix: - 头文件后缀名: - - - Source suffix: - 源文件后缀名: - - - Lower case file names - 小写文件名 - - - License Template: - 许可模板: - - - License template: - 许可模板: - - - - CppPreprocessor - - %1: No such file or directory - %1: 没有文件或者目录 - - - - CppTools::Internal::CppModelManager - - Scanning - 扫描中 - - - Parsing - 分析中 - - - unnamed - 未命名 - - - Indexing - 索引中 - - - - CppTools - - File Naming Conventions - 文件命名规则 - - - Code Style - 代码风格 - - - File Naming - 文件命名 - - - C++ - C++ - - - - CppTools::Internal::CompletionSettingsPage - - Completion - 补全 - - - Text Editor - 文本编辑器 - - - Behavior - 行为 - - - &Case-sensitivity: - 大小写敏感(&C): - - - Full - 全部 - - - None - - - - First Letter - 仅首字母 - - - Activate completion: - 激活补全: - - - Manually - 手动设置 - - - When Triggered - 当触发时 - - - Always - 总是 - - - Insert the common prefix of available completion items. - 为可自动补全的项插入共同的前缀。 - - - Autocomplete common &prefix - 自动补全共同前缀(&P) - - - Automatically insert semicolons and closing brackets, parentheses, curly braces, and quotes when appropriate. - 在适当的时候自动添加括号、分号、大括号和引号。 - - - &Automatically insert matching characters - 自动插入匹配的字符(&A) - - - When typing a matching character and there is a text selection, instead of removing the selection, surround it with the corresponding characters. - 当输入一个对应的符号时(例如括号)并且有选中的文字时,将选中的文字自动包含到符号内,而不删除选中内容。 - - - Surround &text selections - 环绕文本选择(&T) - - - Insert &space after function name - 在函数名后插入空格(&S) - - - Documentation Comments - 文档注释 - - - Automatically create a Doxygen comment upon pressing enter after a /** or /*! - 在/**或/*!之后按下回车时自动创建Doxygen注释 - - - Enable Doxygen blocks - doxygen comment block - 打开Doxgen注释块功能 - - - Generate a <i>brief</i> command with an initial description for the corresponding declaration - 生成一个包含相应声明的初始描述的<i>简略的</i>命令 - - - Generate brief description - 生成简略描述 - - - Add leading asterisks when continuing comments on new lines - 对连续的注释在新行行首添加星号 - - - Add leading asterisks - 行首添加星号 - - - - CppTools::Internal::CppClassesFilter - - Classes - - - - - CppTools::Internal::CppFunctionsFilter - - Methods - 方法 - - - Methods and functions - 方法和功能 - - - Methods and Functions - 方法和函数 - - - C++ Methods and Functions - C++方法和函数 - - - - CppTools::Internal::CppLocatorFilter - - Classes and Methods - 类和方法 - - - C++ Classes and Methods - C++类和方法 - - - - CppTools::Internal::CppToolsPlugin - - &C++ - C++(&C) - - - Switch Header/Source - 切换头文件/源文件 - - - - CppTools::Internal::FunctionArgumentWidget - - %1 of %2 - %1/%2 - - - - Debugger - - Common - 共同 - - - General - 概要 - - - Locals && Expressions - '&&' will appear as one (one is marking keyboard shortcut) - 局部变量和表达式(&&) - - - Debugger - 调试器 - - - <Encoding error> - <编码错误> - - - Ctrl+Shift+F11 - Ctrl+Shift+F11 - - - - QtDumperHelper - - Found an outdated version of the debugging helper library (%1); version %2 is required. - 系统找到一个过期的调试帮助库(%1); 需要版本 %2。 - - - ptrace: Operation not permitted. - -Could not attach to the process. Make sure no other debugger traces this process. -Check the settings of -/proc/sys/kernel/yama/ptrace_scope -For more details, see /etc/sysctl.d/10-ptrace.conf - - ptrace: 操作不允许。 - -无法attach到进程。请确认其他调试器没有追踪该进程。 -检查/proc/sys/kernel/yama/ptrace_scope -的设置 -详情参考 /etc/sysctl.d/10-ptrace.conf - - - - ptrace: Operation not permitted. - -Could not attach to the process. Make sure no other debugger traces this process. -If your uid matches the uid -of the target process, check the settings of -/proc/sys/kernel/yama/ptrace_scope -For more details, see /etc/sysctl.d/10-ptrace.conf - - ptrace: 操作不允许。 - -无法attach到进程。请确认其他调试器没有追踪该进程。 -如果您的uid和目标进程的uid -相符,检查 -/proc/sys/kernel/yama/ptrace_scope的设置 -详情参考 /etc/sysctl.d/10-ptrace.conf - - - - %n known types, Qt version: %1, Qt namespace: %2 Dumper version: %3 - - %n 个已知类型, Qt 版本: %1, Qt 命名空间: %2 Dumper 版本: %3 - - - - <none> - <无> - - - - Debugger - - Load Core File - 载入核心文件 - - - Browse... - 浏览... - - - Use local core file: - 使用本地核心文件: - - - Select Executable - 选择执行档 - - - Kit: - 构建套件(Kit): - - - &Executable: - 执行档(&E): - - - Core file: - 核心文件: - - - Override &start script: - 覆盖启动脚本(&S): - - - Select Remote Core File - 选择远程核心文件 - - - Select Core File - 选择核心文件 - - - Select Sysroot - 选择Sysroot - - - Select Startup Script - 选择启动脚本 - - - - Debugger - - Select start address - 选择开始地址 - - - Select Start Address - 选择开始地址 - - - Enter an address: - 输入地址: - - - - Debugger - - Marker File: - 标记文件: - - - Marker Line: - 标记行: - - - Breakpoint Number: - 断点编号: - - - Breakpoint Address: - 断点地址: - - - Property - 属性 - - - Breakpoint Type: - 断点类型: - - - Breakpoint - 断点 - - - Watchpoint - 监视点 - - - Unknown breakpoint type - 未知的断点类型 - - - Requested - 请求 - - - Obtained - 获得 - - - Internal Number: - 内部编号: - - - File Name: - 文件名: - - - Function Name: - 函数名: - - - Breakpoint on QML Signal Emit - 在QML信号发出时断点 - - - Data at 0x%1 - 数据在0x%1 - - - Data at %1 - 数据在%1 - - - Enabled - 启用 - - - Disabled - 禁用 - - - , pending - , 准备中 - - - Engine: - 引擎: - - - Extra Information: - 额外信息: - - - Line Number: - 行号: - - - Corrected Line Number: - 修正行号: - - - Module: - 模块: - - - Multiple Addresses: - 多个地址: - - - Message: - 消息: - - - Condition: - 条件: - - - Ignore Count: - 忽略次数: - - - Thread Specification: - 线程信息: - - - Function - 函数 - - - New - 新建 - - - Insertion requested - 请求插入 - - - Insertion proceeding - 执行插入 - - - Change requested - 请求改变 - - - Change proceeding - 执行改变 - - - Breakpoint inserted - 加入断点 - - - Removal requested - 移除请求 - - - Removal proceeding - 移除执行 - - - Dead - 死亡 - - - <invalid state> - Invalid breakpoint state. - <无效状态> - - - Breakpoint at "%1" - 在"%1"处的断点 - - - Breakpoint by File and Line - 文件和行处的断点 - - - Breakpoint by Function - 函数处断点 - - - Breakpoint by Address - 地址处断点 - - - Breakpoint at Function "main()" - 在"main"函数处断点 - - - Watchpoint at Address - 监视点在地址 - - - Watchpoint at Expression - 监视点在表达式 - - - Breakpoint on QML Signal Handler - QML信号处理的断点 - - - Breakpoint at JavaScript throw - JavaScript 异常处的断点 - - - Unknown Breakpoint Type - 未知的断点类型 - - - File - 文件 - - - Line - 行号 - - - Number - 编号 - - - Condition - 条件 - - - Ignore - 忽略 - - - Watchpoint at 0x%1 - 监视点在 0x%1 - - - Breakpoint will only be hit if this condition is met. - 只有当条件满足时才会到达断点。 - - - Breakpoint will only be hit after being ignored so many times. - 断点将会在被忽略足够次数后到达。 - - - (all) - (全部) - - - Breakpoint will only be hit in the specified thread(s). - 断点只会在指定线程中被触发。 - - - - Debugger - - Unable to load the debugger engine library '%1': %2 - 无法载入调试引擎库 '%1': %2 - - - The function "%1()" failed: %2 - Function call failed - 函数 "%1()" 执行失败: %2 - - - Unable to resolve '%1' in the debugger engine library '%2' - 在调试引擎库中 '%2'无法解析符号 '%1' - - - Version: %1 - 版本: %1 - - - The dumper library was not found at %1. - 在%1 未找到dumper库. - - - The console stub process was unable to start '%1'. - 无法启动控制台根进程'%1'. - - - Attaching to core files is not supported! - 不支持关联到核心文件! - - - Debugger running - 调试器执行中 - - - Attaching to a process failed for process id %1: %2 - 关联进程失败,进程ID%1: %2 - - - Unable to set the image path to %1: %2 - 无法设置图像路径到 %1: %2 - - - Unable to create a process '%1': %2 - 无法创建进程 '%1' : %2 - - - The process exited with exit code %1. - 进程退出,退出代码 %1 。 - - - Continuing with '%1'... - 继续'%1'... - - - Unable to continue: %1 - 无法继续执行: %1 - - - Reverse stepping is not implemented. - 逆向单步执行没有实现. - - - Thread %1 cannot be stepped. - 线程 %1 无法单步执行。 - - - Stepping %1 - 单步 %1 - - - Jump to line is not implemented - 跳转到行没有实现 - - - Unable to assign the value '%1' to '%2': %3 - 无法赋值 '%1' 到 '%2': %3 - - - Unable to retrieve %1 bytes of memory at 0x%2: %3 - 无法获取内存地址0x%2 处的 %1 字节: %3 - - - Cannot retrieve symbols while the debuggee is running. - 当被调试程序运行时无法获取符号信息。 - - - Ignoring initial breakpoint... - 忽略初始状态的断点... - - - Interrupted in thread %1, current thread: %2 - 线程 %1 中断,当前线程: %2 - - - Stopped, current thread: %1 - 停止,当前线程: %1 - - - Changing threads: %1 -> %2 - 改变线程: %1 -> %2 - - - Stopped at %1:%2 in thread %3. - 在线程%3中停止在 %1:%2 . - - - Stopped at %1 in thread %2 (missing debug information). - 在线程%2中停止在 %1(缺少调试信息). - - - Stopped at %1 (%2) in thread %3 (missing debug information). - 在线程%3中停止在%1 (%2)(缺少调试信息). - - - Stopped in thread %1 (missing debug information). - 在线程%1中停止(缺少调试信息). - - - Breakpoint: %1 - 断点:%1 - - - Thread %1: Missing debug information for top stack frame (%2). - 线程 %1: 缺失栈顶 (%2).的调试信息。 - - - Thread %1: No debug information available (%2). - 线程 %1: 没有可用的调试信息 (%2). - - - - Debugger - - injection - 注入 - - - debugger call - 调试器调用 - - - Loading the custom dumper library '%1' (%2) ... - 载入自定义dumper库 '%1' (%2) ... - - - Loading of the custom dumper library '%1' (%2) failed: %3 - 载入自定义dumper库 '%1' (%2) 失败: %3 - - - Loaded the custom dumper library '%1' (%2). - 载入了自定义dumper库 '%1' (%2). - - - Stopped / Custom dumper library initialized. - 停止/自定义dumper库已初始化。 - - - Disabling dumpers due to debuggee crash... - 被调试的程序崩溃,禁用dumpers... - - - The debuggee does not appear to be Qt application. - 被调试程序不是Qt程序。 - - - Initializing dumpers... - 正在初始化dumpers... - - - The custom dumper library could not be initialized: %1 - 自定义dumper库无法被初始化: %1 - - - Querying dumpers for '%1'/'%2' (%3) - 为 '%1'/'%2' (%3) 查询 dumpers - - - - Debugger - - <html><body><p>Specify the path to the <a href="%1">Debugging Tools for Windows</a> (%2) here.</p><p><b>Note:</b> Restarting Qt Creator is required for these settings to take effect.</p></p></body></html> - Label text for path configuration. %2 is "x-bit version". - <html><body><p>在这里指定到 <a href="%1">Windows下的调试工具</a> (%2) 的路径.</p><p><b>注意:</b> 使配置生效需要重启动 Qt Creator 。</p></p></body></html> - - - Autodetect - 自动检测 - - - "Debugging Tools for Windows" could not be found. - 找不到"Windows 下的调试工具"。 - - - Checked: -%1 - 已选择:\n%1 - - - Startup - Placeholder - 启动 - - - Additional &arguments: - 额外的参数(&A): - - - Debugger Paths - 调试器路径 - - - &Symbol paths: - 符号路径(&S): - - - S&ource paths: - 源码路径(&O): - - - Break on: - 断点: - - - <html><head/><body><p>Use CDB's native console instead of Qt Creator's console for console applications. The native console does not prompt on application exit. It is suitable for diagnosing cases in which the application does not start up properly in Qt Creator's console and the subsequent attach fails.</p></body></html> - <html><head/><body><p>对于控制台程序使用 CDB的原生控制台来代替Qt Creator的。程序退出时原生控制台不提示,适用于调试程序没有正确启动进而关联(attach)进程失败的情况。</p></body></html> - - - Use CDB &console - 使用 CDB 控制台(&C) - - - Breakpoints - 断点 - - - <html><head/><body><p>Attempt to correct the location of a breakpoint based on file and line number should it be in a comment or in a line for which no code is generated. The correction is based on the code model.</p></body></html> - <html><head/><body><p>尝试修正在注释中和无代码的位置的断点。修正基于代码模型。</p></body></html> - - - Correct breakpoint location - 校准断点位置 - - - Break on functions: - 在函数处断点: - - - This is useful to catch runtime error messages, for example caused by assert(). - 这对于捕捉运行时的错误信息(如assert()造成的)非常有用。 - - - - Debugger - - Symbol Server... - 符号服务器... - - - Adds the Microsoft symbol server providing symbols for operating system libraries.Requires specifying a local cache directory. - 添加提供操作系统库的符号的微软符号服务器。需要指定一个本地缓存目录。 - - - <html><head/><body><p>The debugger is not configured to use the public <a href="%1">Microsoft Symbol Server</a>. This is recommended for retrieval of the symbols of the operating system libraries.</p><p><i>Note:</i> A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.</p><p>Would you like to set it up?</p></body></html> - <html><head/><body><p>调试器没有配置为使用公共<a href="%1">微软符号服务器</a>。这是推荐的为操作系统库获取符号的方式。</p><p><i>注意:</i> 需要快速的网络连接才能平稳工作。另外首次连接时可能会有延时。</p><p>您想要现在设置吗?</p></body></html> - - - <html><head/><body><p>The debugger is not configured to use the public <a href="%1">Microsoft Symbol Server</a>. This is recommended for retrieval of the symbols of the operating system libraries.</p><p><i>Note:</i> A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.</p><p>Would you like to set it up?</p></br></body></html> - <html><head/><body><p> 调试器没有被配置成使用公开的<a href="%1">微软符号服务器</a>. 这事建议取回操作系统库文件中的符号.</p><p><i>注意:</i> 此项工作需要一个高速的英特网链接来保证工作流畅。同时,链接初期可能造成延时.</p><p>您想这样设置吗?</p></br></body></html> - - - Symbol Server - 符号服务器 - - - Do not ask again - 下次不再询问 - - - Pick a local cache directory - 指定本地缓存目录 - - - - Debugger - - This switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. - 切换调试器到"wise operation"模式,该模式下单步调试可以操作单一指令,而且源码位置视图显示汇编指令。 - - - This switches the Locals&Watchers view to automatically derefence pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. - 切换本地变量&监视器视图到“自动去除指针引用”模式。这将减少树形视图中的层次,但同时也减少了数据 - 缺少中间层次。 - - - Remove watch expression "%1" - 删除监视表达式"%1" - - - Watch expression "%1" in separate window - 在独立窗口中监视表达式 "%1" - - - Show std:: namespace for types - 显示类型的std::命名空间 - - - Use precise breakpoints - 使用精确的断点 - - - Debugger Properties... - 调试器属性... - - - Always Adjust Column Widths to Contents - 总是按内容调整列宽 - - - Use Alternating Row Colors - 使用交替行颜色 - - - Debugger Font Size Follows Main Editor - 调试器字号和主编辑器一致 - - - Show a Message Box When Receiving a Signal - 当接收到信号时显示消息窗口 - - - Log Time Stamps - 记录时间戳 - - - Verbose Log - 详细日志 - - - Operate by Instruction - 依照命令操作 - - - Dereference Pointers Automatically - 自动去除对指针的引用 - - - Watch Expression "%1" in Separate Window - 在独立窗口中监视表达式 "%1" - - - Show "std::" Namespace in Types - 在类型中显示“std::”命名空间 - - - Show Qt's Namespace in Types - 在类型中显示Qt的命名空间 - - - Use Debugging Helpers - 使用调试助手 - - - Debug Debugging Helpers - 调试调试助手 - - - Use Code Model - 使用代码模型 - - - Selecting this causes the C++ Code Model being asked for variable scope information. This might result in slightly faster debugger operation but may fail for optimized code. - 选中该项使从C++ 代码模型获取变量作用域信息。这会导致调试操作稍微变快,但可能使代码优化失效。 - - - Recheck Debugging Helper Availability - 重新检查调试助手是否可用 - - - Use Precise Breakpoints - 使用精确的断点 - - - Selecting this causes breakpoint synchronization being done after each step. This results in up-to-date breakpoint information on whether a breakpoint has been resolved after loading shared libraries, but slows down stepping. - 选中该项使断点同步在每步后都执行。这会让断点信息保持最新,无论断点在载入共享库后是否被解析,但会减慢单步调试的速度。 - - - This switches the Locals&&Watchers view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. - 切换“局部变量&&监视器”视图到“自动去除指针引用”模式。这将减少树形视图中的层次,但同时也丢失了中间层次的数据。 - - - Sort Members of Classes and Structs Alphabetically - 按字母顺序排序类和结构体的成员 - - - Adjust Breakpoint Locations - 对准断点位置 - - - Not all source code lines generate executable code. Putting a breakpoint on such a line acts as if the breakpoint was set on the next line that generated code. Selecting 'Adjust Breakpoint Locations' shifts the red breakpoint markers in such cases to the location of the true breakpoint. - 不是所有代码行都会生成可执行代码。在没有生成执行代码的行放置断点相当于断点被设置在下一个生成执行代码的行上。选择 '对准断点位置' 来移动这类红色断点标记到真实断点的位置。 - - - Break on "throw" - 在抛出(throw)处中断 - - - Break on "catch" - 在捕获(catch)处中断 - - - Break on "qWarning" - 遇到"qWarning"时中断 - - - Break on "qFatal" - 遇到"qFatal"时中断 - - - Break on "abort" - 在“abort”时中断 - - - Use Dynamic Object Type for Display - 显示时使用动态对象类型(Dynamic Object Type) - - - Automatically Quit Debugger - 自动退出调试器 - - - Use tooltips in main editor when debugging - 调试时在主编辑器中使用工具提示 - - - Checking this will enable tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default. - 选中此项将在调试过程中用工具提示显示变量的值。可能会减慢调试的速度,同时由于不使用全局信息,无法提供可靠的信息,所以此项默认为关闭。 - - - Use Tooltips in Locals View when Debugging - 调试时在“局部变量”视图中使用工具提示 - - - Use Tooltips in Breakpoints View when Debugging - 调试时在“断点”视图中使用工具提示 - - - Show Address Data in Breakpoints View when Debugging - 调试时在“断点”视图中显示地址信息 - - - Show Address Data in Stack View when Debugging - 调试时在“堆栈”视图中显示地址信息 - - - Show Application On Top - 在顶部显示应用 - - - Apply Changes on Save - 保存时应用修改 - - - Use Tooltips in Locals View When Debugging - 调试时在局部变量视图使用工具提示 - - - Use Tooltips in Breakpoints View When Debugging - 调试时在断点视图中使用工具提示 - - - Show Address Data in Breakpoints View When Debugging - 调试时在断点视图中显示地址信息 - - - Show Address Data in Stack View When Debugging - 调试时在堆栈视图中显示地址信息 - - - List Source Files - 列出源文件 - - - Skip Known Frames - 跳过已知帧 - - - Selecting this results in well-known but usually not interesting frames belonging to reference counting and signal emission being skipped while single-stepping. - 选中该项,在单步调试中,跳过众所周知但是无趣的、属于引用计数和信号发射的帧。 - - - Enable Reverse Debugging - 打开反向调试 - - - Register For Post-Mortem Debugging - 注册崩溃后(post-mortem)调试 - - - Reload Full Stack - 重新载入完整堆栈 - - - Create Full Backtrace - 创建完整回溯(Backtrace) - - - Execute Line - 执行此行 - - - Change debugger language automatically - 自动改变调试器语言 - - - Changes the debugger language according to the currently opened file. - 根据当前打开的文件改变调试器语言。 - - - Use tooltips in locals view when debugging - 调试时在本地视图使用工具提示 - - - Checking this will enable tooltips in the locals view during debugging. - 选中此项将使能调试时局部变量视图的工具提示。 - - - Use tooltips in breakpoints view when debugging - 调试时在断点视图中使用tooltips - - - Checking this will enable tooltips in the breakpoints view during debugging. - 选中此项将使能调试时断点视图的工具提示。 - - - Show address data in breakpoints view when debugging - 当调试时在断点视图中显示地址信息 - - - Checking this will show a column with address information in the breakpoint view during debugging. - 选中此项后调试时将在断点视图显示地址信息列。 - - - Show address data in stack view when debugging - 当调试时在堆栈视图中显示地址信息 - - - Checking this will show a column with address information in the stack view during debugging. - 选中此项后调试时将在堆栈视图显示地址信息列。 - - - - Debugger - - Debugging Helper - 调试助手 - - - Choose DebuggingHelper Location - 选择调试助手位置 - - - Use Debugging Helper - 使用调试助手 - - - <html><head/><body> -<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>调试助手仅是用来在 &quot;局部变量和表达式&quot; 视图中更好地显示诸如QString 或 std::map之类的特定类型。它不是Qt Creator调试所必须的。</p></body></html> - - - Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. - 使用代码模型可以查出一个变量在调试中断时是否已经被赋值。 - - - Use code model - 使用代码模型 - - - Displays names of QThread based threads. - 显示基于QThread 的线程的名称。 - - - Display thread names - 显示线程名称 - - - Show 'std::' prefix for types from the standard library. - 为标准库中的类型显示“std::”前缀。 - - - Show "std::" namespace for types - 为类型显示“std::”命名空间 - - - Show Qt namespace prefix for Qt types. This is only relevant if Qt was configured with '-qtnamespace'. - 为Qt类型显示Qt命名空间前缀。仅在Qt用'-qtnamespace'配置时有用。 - - - Show Qt's namespace for types - 显示类型的Qt命名空间 - - - - Debugger - - The Gdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. - Gdb 进程启动失败. 调用程序 '%1' 缺失, 或者您没有足够的权限调用此程序. - - - The Gdb process crashed some time after starting successfully. - Gdb进程在正常启动后崩溃。 - - - An error occurred when attempting to write to the Gdb process. For example, the process may not be running, or it may have closed its input channel. - 尝试写入 Gdb 进程时发生错误. 例如, 进程可能不在运行或者他关闭了自己的输入通道. - - - An error occurred when attempting to read from the Gdb process. For example, the process may not be running. - 尝试从 Gdb 进程读取时发生错误. 例如, 进程可能不在运行。 - - - An exception was triggered. - 异常被触发。 - - - An exception was triggered: - 异常被触发: - - - Library %1 loaded - 载入了库 %1 - - - Library %1 unloaded - 卸载了库 %1 - - - Thread group %1 created - 创建了线程组 %1 - - - Thread %1 created - 创建了线程 %1 - - - Thread group %1 exited - 线程组 %1 退出了 - - - Thread %1 in group %2 exited - 组别 %2 中的线程 %1 退出了 - - - Thread %1 selected - 选中了线程 %1 - - - Stopping temporarily. - 临时停止。 - - - The gdb process has not responded to a command within %1 seconds. This could mean it is stuck in an endless loop or taking longer than expected to perform the operation. -You can choose between waiting longer or abort debugging. - GDB进程在 %1 秒之内未对命令响应。可能由于进程陷入死循环或执行操作的时间超出预期。 -您可以选择继续等待或终止调试。 - - - Setting breakpoints failed - 设置断点失败 - - - Executable Failed - 执行失败 - - - Jumped. Stopped. - 跳转。停止。 - - - The gdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. -%2 - Gdb 进程启动失败. 调用程序 '%1' 缺失, 或者您没有足够的权限调用程序. -%2 - - - The gdb process crashed some time after starting successfully. - Gdb进程在正常启动后崩溃。 - - - The gdb process was ended forcefully - gdb进程被强制结束 - - - An error occurred when attempting to write to the gdb process. For example, the process may not be running, or it may have closed its input channel. - 尝试写入 Gdb 进程时发生错误。例如进程可能不在运行或者它关闭了自己的输入通道。 - - - An error occurred when attempting to read from the gdb process. For example, the process may not be running. - 尝试从 Gdb 进程读取时发生错误。例如进程可能不在运行。 - - - An unknown error in the gdb process occurred. - Gdb进程发生了未知错误。 - - - The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation. -You can choose between waiting longer or abort debugging. - - GDB进程在 %n 秒之内未对命令响应。可能由于进程陷入死循环或执行操作的时间超出预期。 -您可以选择继续等待或终止调试. - - - - GDB not responding - GDB不响应 - - - Give GDB more time - 继续等待gdb - - - Application exited with exit code %1 - 程序退出,退出代码 %1 - - - Application exited after receiving signal %1 - 程序接收到信号 %1 后退出 - - - Application exited normally - 程序正常退出 - - - Loading %1... - 正在载入 %1... - - - Value changed from %1 to %2. - 值从%1 变到 %2。 - - - Normal - 正常 - - - Displayed - 已显示 - - - There is no gdb binary available for binaries in format '%1' - 没有 GDB 二进制档可用为二进制格式'%1' - - - Cannot Read Symbols - 无法读取符号 - - - Cannot read symbols for module "%1". - 无法为模块"%1"读取符号。 - - - Retrieving data for stack view thread 0x%1... - 为堆栈视图线程0x%1获取数据... - - - Cannot read widget data: %1 - 无法读取控件数据:%1 - - - Could not find a widget. - 无法找到控件。 - - - The GDB installed at %1 cannot find a valid python installation in its subdirectories. -You may set the environment variable PYTHONPATH to point to your installation. - 安装在%1的GDB 无法找到一个有效的 python 安装在子文件夹. -您可以设置环境变量 PYTHONPATH 到您安装的路径. - - - GDB I/O Error - GDB I/O 错误 - - - The gdb process crashed. - gdb 进程崩溃. - - - The gdb process exited unexpectedly (code %1) - Gdb 进程异常终止 (代码%1) - - - Unexpected GDB Exit - Gdb意外退出 - - - Setting up inferior... - 正在设置 inferior... - - - The gdb process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. -%2 - Gdb进程启动失败。可能是调用的程序"%1"不存在或者您没有调用该程序的权限。 -%2 - - - Missing debug information for %1 -Try: %2 - 找不到%1的调试信息 -尝试: %2 - - - The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation. -You can choose between waiting longer or aborting debugging. - - Gdb进程在%n秒内未响应命令。这意味着它可能阻塞在无限循环中或者执行操作用了比预期更长的时间。 -您可以选择继续等待或者中断调试。 - - - - The gdb process terminated. - gdb 进程被中断。 - - - The gdb process terminated unexpectedly (code %1) - Gdb 进程异常中断 (代码%1) - - - Failed to start application: - 程序启动失败: - - - Failed to start application - 程序启动失败 - - - An unknown error in the Gdb process occurred. - Gdb进程发生了未知错误。 - - - Running... - 执行中... - - - Stop requested... - 请求停止... - - - The gdb process has not produced any response to a command within %1 seconds. This may been it is stuck in an endless loop or taking longer than expected to perform the operation it was reqested. -You have a choice of waiting longer or abort debugging. - GDB进程在 %1秒之内未对命令响应。可能由于进程陷入死循环或执行操作的时间超出预期。\n您可以选择继续等待或终止调试。 - - - Gdb not responding - GDB不响应 - - - Give gdb more time - 继续等待gdb - - - Stop debugging - 停止调试 - - - Executable failed - 执行失败 - - - Process failed to start. - 进程启动失败。 - - - Executable failed: %1 - 执行失败: %1 - - - Program exited with exit code %1. - 程序退出,退出代码 %1。 - - - Program exited after receiving signal %1. - 程序接受到信号%1退出。 - - - Program exited normally. - 程序正常退出。 - - - Stopped at breakpoint. - 在断点处停止。 - - - The debugger you are using identifies itself as: - 您正在使用的调试器标识自身为: - - - This version is not officially supported by Qt Creator. -Debugging will most likely not work well. -Using gdb 6.7 or later is strongly recommended. - 此版本不是Qt Creator官方支持的. -调试非常可能无法很好地工作. -强烈建议使用 gdb 6.7 或者更新的版本. - - - Continuing after temporary stop... - 暂停后继续... - - - The Gdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. -%2 - Gdb 进程启动失败. 调用程序 '%1' 缺失, 或者您没有足够的权限调用程序. -%2 - - - Stopping temporarily - 临时停止 - - - Processing queued commands - 正在处理队列中的命令 - - - Process failed to start - 进程启动失败 - - - Watchpoint %1 at %2 triggered: - %2的观察点%1被触发: - - - Stopped at breakpoint %1 in thread %2 - 在线程 %2 的断点 %1 处停止 - - - Raw structure - 原始结构 - - - There is no GDB binary available for binaries in format '%1' - 没有 GDB 二进制档可用于格式为'%1'的二进制文件 - - - Step requested... - 请求单步执行... - - - Step by instruction requested... - 请求单步执行命令... - - - Finish function requested... - 请求完成函数... - - - Step next requested... - 请求执行下一步... - - - Step next instruction requested... - 请求执行下条指令... - - - Run to line %1 requested... - 请求执行到行%1... - - - Run to function %1 requested... - 请求执行到函数: %1 ... - - - Immediate return from function requested... - 请求立即从函数中返回... - - - This does not seem to be a "Debug" build. -Setting breakpoints by file name and line number may fail. - - 该构建似乎不是一个"Debug"构建。 -按文件名和行号设置断点可能会失败。 - - - Found. - 已找到。 - - - Not Found. - 未找到。 - - - -Section %1: %2 - -段 %1: %2 - - - The gdb process could not be stopped: -%1 - Gdb 进程无法停止: -%1 - - - Application process could not be stopped: -%1 - 应用进程无法被停止: -%1 - - - Application started - 应用已启动 - - - Application running - 应用运行中 - - - Attached to stopped application - 关联到已停止的程序 - - - Connecting to remote server failed: -%1 - 连接远程服务器失败: -%1 - - - Jumping out of bogus frame... - 跳出伪造框架... - - - Dumper version %1, %n custom dumpers found. - - Dumper 版本 %1,找到%n 个自定义 dumper。 - - - - The debugging helper library was not found at %1. - 在%1 没有找到调试助手库。 - - - Disassembler failed: %1 - 反汇编失败:%1 - - - Unable to start gdb '%1': %2 - 无法启动gdb'%1' : %2 - - - Gdb I/O Error - Gdb I/O 错误 - - - Unexpected Gdb Exit - Gdb意外退出 - - - The gdb process exited unexpectedly (%1). - Gdb 进程异常终止 (%1)。 - - - Stopped at breakpoint %1 in thread %2. - 在线程 %2 的断点 %1 处停止。 - - - Stopped: %1 by signal %2 - 因信号 %2 停止: %1 - - - This version is not officially supported by Qt Creator. -Debugging will most likely not work well. -Using gdb 7.1 or later is strongly recommended. - 此版本不是 Qt Creator官方支持的。 -调试很可能无法良好工作。 -强烈建议使用 gdb 7.1 或者更新的版本。 - - - Failed to shut down application - 关闭程序失败 - - - There is no gdb binary available for '%1' - 没有为 '%1' 可用的 gdb 二进制档 - - - Snapshot Creation Error - 快照生成错误 - - - Cannot create snapshot file. - 无法创建快照文件。 - - - Cannot create snapshot: - - 无法创建快照: - - - - Snapshot Reloading - 快照重新载入中 - - - Finished retrieving data - 获取数据完成 - - - Setting breakpoints... - 正在设置断点... - - - Starting inferior... - 启动 inferior... - - - Jumped. Stopped - 已跳转。停止 - - - Target line hit. Stopped - 目标行到达。停止 - - - Execution Error - 执行错误 - - - Cannot continue debugged process: - - 无法继续调试进程: - - - - Inferior start failed - Inferior启动失败 - - - Inferior shutdown failed - Inferior关闭失败 - - - Adapter crashed - 适配器崩溃 - - - Library %1 loaded. - 载入了库%1 - - - Library %1 unloaded. - 卸载了库%1 - - - Thread group %1 created. - 创建了线程组 %1 。 - - - Thread %1 created. - 线程 %1 被创建。 - - - Thread group %1 exited. - 线程组 %1 退出了。 - - - Thread %1 in group %2 exited. - 组别%2 中的线程 %1退出了。 - - - Thread %1 selected. - 选中了线程%1 。 - - - Reading %1... - 读取%1中 ... - - - Processing queued commands. - 处理队列中的命令。 - - - The GDB installed at %1 cannot find a valid python installation in its %2 subdirectory. -You may set the environment variable PYTHONPATH to point to your installation. - 安装在%1的GDB 无法找到一个有效的 python 安装在%2 子文件夹. -您可以设置环境变量 PYTHONPATH 到您安装的路径. - - - Cannot find debugger initialization script - 无法找到调试器初始化脚本 - - - The debugger settings point to a script file at '%1' which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. - 调试器设置指向的脚本文件'%1'无法读取,如果脚本文件不是必须的,可以考虑清除设置来避免此项警告。 - - - Unable to run '%1': %2 - '无法执行%1': %2 - - - Retrieving data for stack view... - 为堆栈视图获取数据... - - - Retrieving data for watch view (%n requests pending)... - - 为监视视图获取数据 (%n 个请求未完成)... - - - - <0 items> - <0 项> - - - <%n items> - In string list - - <%n 项> - - - - Debugging helpers: Qt version mismatch - 调试助手:Qt版本不匹配 - - - The Qt version used to build the debugging helpers (%1) does not match the Qt version used to build the debugged application (%2). -This might yield incorrect results. - 用于编译调试助手的Qt版本(%1)与用于编译被调试的程序的Qt版本(%2)不匹配。 -可能导致错误的结果。 - - - Finished retrieving data. - 获取数据完成。 - - - Debugging helpers not found. - 没有找到调试助手。 - - - Custom dumper setup: %1 - 自定义dumper 安装: %1 - - - <shadowed> - Type of local variable or parameter shadowed by another variable of the same name in a nested block. - <shadowed> - - - <n/a> - <N/A> - - - <anonymous union> - <匿名联合体> - - - <no information> - About variable's value - <无信息> - - - - Debugger - - Choose Gdb Location - 选择Gdb 位置 - - - GDB timeout: - Gdb超时时间: - - - The number of seconds Qt Creator will wait before it terminates -a non-responsive GDB process. The default value of 20 seconds should -be sufficient for most applications, but there are situations when -loading big libraries or listing source files takes much longer than -that on slow machines. In this case, the value should be increased. - Qt Creator在终止不响应的GDB进程之前需要等待的秒数。默认值是20秒, -对于大多数程序这个时间足够了。但存在某些情况,如载入大的库或者列出源码文件清单, -在慢机器上可能用很长时间,这样的话必须增加这个值。 - - - sec - - - - Skip known frames when stepping - 当单步调试时跳过已知的帧 - - - <html><head/><body><p>Allows <i>Step Into</i> to compress several steps into one step -for less noisy debugging. For example, the atomic reference -counting code is skipped, and a single <i>Step Into</i> for a signal -emission ends up directly in the slot connected to it. - <html><head/><body><p>允许 <i>‘单步进入’</i>将多个步骤合并为一步 -以减少调试的冗余情况。例如原子级的计数代码,和 -信号发出引起的单个 <i>‘单步进入’</i> 直接进到与信号连接的槽。 - - - Show a message box when receiving a signal - 接到信号时显示消息窗口 - - - Displays a message box as soon as your application -receives a signal like SIGSEGV during debugging. - 当您的应用程序在调试过程中收到系统信号, -比如SIGSEGV时,显示一个消息窗口. - - - Adjust breakpoint locations - 对准断点位置 - - - GDB allows setting breakpoints on source lines for which no code -was generated. In such situations the breakpoint is shifted to the -next source code line for which code was actually generated. -This option reflects such temporary change by moving the breakpoint -markers in the source code editor. - GDB允许在不生成代码的源码行设置断点。 -在这种情况下断点被调整到下一个实际生成代码的源码行。 -这个选项通过在源码编辑器中移动断点标记,来显示这项变动。 - - - Use dynamic object type for display - 显示时使用动态对象类型(dynamic object type) - - - Specifies whether the dynamic or the static type of objects will be displayed. Choosing the dynamic type might be slower. - 选择显示对象的动态的或静态的类型。选择动态类型的话可能会较慢。 - - - Load .gdbinit file on startup - 启动时载入.gdbinit 文件 - - - Allows or inhibits reading the user's default -.gdbinit file on debugger startup. - 允许或禁止调试器启动时读取 -用户的默认.gdbinit文件。 - - - Warn when debugging "Release" builds - 在调试"Release"构建时发出警告 - - - Show a warning when starting the debugger on a binary with insufficient debug information. - 在对包含的调试信息不足的二进制档启动调试时显示警告。 - - - The options below should be used with care. - 以下的选项需要谨慎使用。 - - - <html><head/><body>The options below give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience.</body></html> - <html><head/><body>以下选项提供对GDB的高级或实验性功能的访问。打开这些功能有可能为您的调试带来负面影响。</body></html> - - - Use asynchronous mode to control the inferior - 使用异步模式来控制底层 - - - Use common locations for debug information - 对调试信息使用公共位置 - - - <html><head/><body>Add common paths to locations of debug information such as <i>/usr/src/debug</i> when starting GDB.</body></html> - <html><head/><body>启动GDB时添加公共路径如<i>/usr/src/debug</i> 到调试信息路径。</body></html> - - - Enable reverse debugging - 打开反向调试 - - - <html><head/><body><p>Enable stepping backwards.</p><p><b>Note:</b> This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</p></body></html> - <html><head/><body><p>选中此项启用反向调试。</p><p><b>注意:</b>这项功能在GDB 上非常慢并且不稳定。当反向时遇到系统调用将会变得不可预测甚至彻底摧毁这个调试会话.</p><body></html> - - - Attempt quick start - 尝试快速启动 - - - <html><head/><body>Postpone reading debug information as long as possible. This can result in faster startup times at the price of not being able to set breakpoints by file and number.</body></html> - <html><head/><body>尽可能推迟读取调试信息的时间。这样启动更快,但代价是可能造成无法按照文件和行号设置断点。</body></html> - - - Additional Startup Commands - 额外的启动命令 - - - <html><head/><body><p>GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.</p><p>You can add commands to load further debugging helpers here, or modify existing ones.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p></body></html> - <html><head/><body><p>在此输入的GDB命令将在GDB启动以及调试助手初始化后被执行。</p><p>您可以在这里添加命令加载调试助手,或者修改已有的助手。</p><p>要执行Python脚本,使用 <i>python execfile('/path/to/script.py')</i>。</p></body></html> - - - GDB - GDB - - - Choose Location of Startup Script File - 选择启动脚本文件的位置 - - - - Debugger - - yes - - - - no - - - - Module name - 模块名称 - - - Module path - 模块路径 - - - Symbols read - 符号读取 - - - Symbols type - 符号类型 - - - Start address - 起始地址 - - - End address - 结束地址 - - - unknown - 未知 - - - plain - 无格式 - - - fast - 快速 - - - - Debugger - - Modules - 模块 - - - Cannot create temporary file: %1 - 无法创建临时文件: %1 - - - Cannot create FiFo %1: %2 - 无法创建FIFo %1 : %2 - - - Cannot open FiFo %1: %2 - 无法打开FIFo %1 : %2 - - - - Debugger - - Value (Base %1) - 值 (%1进制) - - - - Debugger - - Error: - 错误: - - - Running requested... - 执行请求... - - - '%1' contains no identifier. - '%1'不包含标识符。 - - - String literal %1. - 字符串 %1。 - - - Cowardly refusing to evaluate expression '%1' with potential side effects. - 表达式 "%1" 有潜在的副作用所以无法计算其值。 - - - Stopped at %1:%2. - 在 %1处停止:%2 。 - - - Stopped. - 已停止。 - - - Source Files - 源文件 - - - ... - ... - - - <More> - <更多> - - - Address: - 地址: - - - Function: - 函数: - - - File: - 文件: - - - Line: - 行号: - - - Note: - 注意: - - - Sources for this frame are available.<br>Double-click on the file name to open an editor. - 可以查看该帧的源代码。<br>在文件名上双击以打开编辑器。 - - - Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. Note that most distributions ship debug information in separate packages. - 无法访问该帧的二进制调试信息。这意味着要么未编入调试信息,要么调试信息不可访问。注意,多数发行版用单独的包发布调试信息。 - - - Binary debug information is accessible for this frame. However, matching sources have not been found. Note that some distributions ship debug sources in separate packages. - 可以访问该帧的二进制调试信息,但找不到匹配的源码文件。注意,有些发行版用单独的包发布调试信息。 - - - Level - 级别 - - - - Debugger - - Thread&nbsp;id: - 线程&nbsp;id: - - - Target&nbsp;id: - 目标&nbsp;id: - - - Name: - 名称: - - - State: - 状态: - - - Core: - 核心: - - - Stopped&nbsp;at: - 停止&nbsp;于: - - - ID - ID - - - Core - 核心 - - - State - 状态 - - - Target ID - 目标 ID - - - Details - 详情 - - - Name - 名称 - - - Thread: %1 - 线程: %1 - - - Thread: %1 at %2 (0x%3) - 线程: %1 在 %2 (0x%3) - - - Thread: %1 at %2, %3:%4 (0x%5) - 线程: %1 在 %2, %3:%4 (0x%5) - - - Thread ID - 线程ID - - - Stack - - - - Executable: - 执行档: - - - Arguments: - 参数: - - - - Debugger - - Select Debugger - 选择调试器 - - - Select GDB Start Script - 选择GDB启动脚本 - - - Select Start Script - 选择启动脚本 - - - - Debugger - - Thread - 线程 - - - Threads - 线程 - - - - Debugger - - <not in scope> - Value of variable in Debugger Locals display for variables out of scope (stopped above initialization). - <超出范围> - - - %1 <shadowed %2> - Display of variables shadowed by variables of the same name in nested scopes: Variable %1 is the variable name, %2 is a simple count. - %1 <隐藏了 %2> - - - Expression - 表达式 - - - Internal Type - 内部类型 - - - Displayed Type - 显示类型 - - - ... <cut off> - ... <省略> - - - Object Address - 对象地址 - - - Referencing Address - 引用地址 - - - Static Object Size - 静态对象大小 - - - %n bytes - - %n 个字节 - - - - Size - 大小 - - - Stored Address - 存储地址 - - - Internal ID - 内部ID - - - Generation - 创建 - - - <empty> - <空> - - - <uninitialized> - <未初始化> - - - <invalid> - <无效> - - - <not accessible> - <无法访问> - - - <more than %n items> - - <多于%n 个项> - - - - %1 Object at %2 - 在 %2 的 %1 对象 - - - %1 Object at Unknown Address - 未知地址处的 %1对象 - - - Bald pointer - plain pointer - 普通指针 - - - <Edit> - <编辑> - - - returned value - 返回值 - - - Raw pointer - 原始指针 - - - Latin1 string - Latin1字符串 - - - UTF8 string - UTF8字符串 - - - Local 8bit string - 本地 8位 字符串 - - - UTF16 string - UTF16字符串 - - - UCS4 string - UCS4字符串 - - - Root - - - - Locals - 局部变量 - - - Inspector - 检查器 - - - Expressions - 表达式 - - - Return Value - 返回值 - - - Tooltip - 工具提示 - - - Locals and Watchers - 局部变量和监视器 - - - Change Format for Type "%1" - 根据类型 "%1" 改变格式 - - - Change Format for Type - 根据类型改变格式 - - - Change Format for Object at %1 - 根据在 %1 的对象改变格式 - - - Change Format for Object - 根据对象改变格式 - - - Insert New Watch Item - 插入新的监视项 - - - Select Widget to Watch - 选择要监视的部件 - - - Add Watchpoint at Object's Address (0x%1) - 添加监视点在对象地址(0x%1) - - - Add Watchpoint at Referenced Address (0x%1) - 添加监视点在引用地址(0x%1) - - - Add Watchpoint - 添加监视 - - - Setting a watchpoint on an address will cause the program to stop when the data at the address it modified. - 设置一个监视点将获导致程序停止. - - - Remove All Watch Items - 删除所有监控项目 - - - Open Memory Editor at %1 - 在 %1 处打开内存编辑器 - - - Refresh Code Model Snapshot - 更新代码模型快照 - - - Change Format for Object Named "%1" - 改变名为"%1"的对象的格式 - - - Break on Changes at Object's Address (0x%1) - 在对象地址(0x%1)发生更改时断点 - - - Break on Changes at Referenced Address (0x%1) - 在参考地址(0x%1)发生更改时断点 - - - Break on Changing Contents - 内容更改时断点 - - - Watch Expression - 监视表达式 - - - Watch Expression "%1" - 监视表达式 "%1" - - - Remove Watch Expression - 删除监视表达式 - - - Remove Watch Expression "%1" - 删除监视表达式"%1" - - - Change Display Format... - 改变显示格式... - - - Locals and Expressions - 局部变量和表达式 - - - Evaluate Expression - 计算表达式 - - - Evaluate Expression "%1" - 计算表达式"%1" - - - Remove Evaluated Expression - 移除计算表达式 - - - Remove Evaluated Expression "%1" - 移除计算表达式"%1" - - - Use Display Format Based on Type - 使用基于类型的显示格式 - - - Insert New Evaluated Expression - 插入新的计算表达式 - - - Remove All Evaluated Expressions - 移除所有计算表达式 - - - Enter watch expression - 输入监控表达式 - - - Locals & Watchers - 局部变量和监视器 - - - Change format for type '%1' - 根据'%1' 型改变格式 - - - Change format for expression '%1' - 根据 '%1'改变格式 - - - Clear - 清空 - - - Change format for type - 根据类型改变格式 - - - Change format for expression - 根据表达式改变格式 - - - Select widget to watch - 选择监视对象 - - - Open memory editor... - 打开内存编辑器... - - - Open memory editor at %1 - 在 %1 打开内存编辑器 - - - Refresh code model snapshot - 更新代码模式快照 - - - Adjust column widths to contents - 按内容调整宽度 - - - Always adjust column widths to contents - 总是按内容调整列宽 - - - Insert new watch item - 插入新的监视项 - - - - Debugger - - Clear contents - 清空内容 - - - Save contents - 保存内容 - - - Clear Contents - 清空内容 - - - Save Contents - 保存内容 - - - - DebuggingHelperOptionPage - - Use debugging helper - 使用调试助手 - - - This will load a dumper library - 这将会载入dumper库 - - - Use debugging helper from custom location - 使用指定路径的调试助手 - - - Location: - 路径: - - - Debug debugging helper - 调试调试助手 - - - Debugging helper - 调试助手 - - - Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. - 使用代码模型可以查出一个变量在调试中断时是否已经被赋值。 - - - Use code model - 使用代码模型 - - - Use Debugging helper - 使用调试助手 - - - <!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:'DejaVu Sans'; font-size:9pt; 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;"><span style=" font-weight:600;">Note:</span> The debugging helper in only used to produce a nice display of objects of certain type like QString or std::map in the &quot;Locals and Watchers&quot; view.</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> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not strictly necessary for debugging with Qt Creator.</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> - <!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:'DejaVu Sans'; font-size:9pt; 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;"><span style=" font-weight:600;">注意:</span> 调试器助手只是用于为一些对象生成更好的输出显示,例如 QString 或 std::map 等,其内容会显示在 &quot;局部变量和监视器&quot; 视图。</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> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">对于 Qt Creator 中调试,这并不是必须的。</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>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Watchers&quot; view.</p> -<p> It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>调试助手仅仅用来在 &quot;局部变量和监视器&quot; 视图中比较完好的显示类型为 QString 或者 std::map 的对象.</p> -<p> 它不是Qt Creator 调试的必需品. </p></body></html> - - - Use Debugging Helper - 使用调试助手 - - - <html><head/><body> -<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Watchers&quot; view. It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>调试助手仅是用来更好的显示类型QString 或 std::map 在 &quot;局部变量和监视器&quot; 视图. 它不是绝对需要Qt Creator调试用的. </p></body></html> - - - Displays names of QThread based threads. - 显示基于QThread 线程的名称. - - - Display thread names - 显示线程名称 - - - <html><head/><body> -<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>调试助手仅是用来更好的显示类型QString 或 std::map 在 &quot;局部变量和监视器&quot; 视图. 它不是绝对需要Qt Creator调试用的. </p></body></html> - - - - DependenciesModel - - Unable to add dependency - 无法添加依赖关系 - - - Unable to Add Dependency - 无法添加依赖关系 - - - This would create a circular dependency. - 这会创建一个循环依赖。 - - - - ProjectExplorer::Internal::DependenciesWidget - - %1 has no dependencies. - %1 没有依赖关系。 - - - %1 depends on %2. - %1 依赖 %2 。 - - - %1 depends on: %2. - %1 依赖: %2. - - - - Designer - - The file name is empty. - 文件名为空。 - - - XML error on line %1, col %2: %3 - XML 错误 在第 %1行, %2列: %3 - - - The <RCC> root element is missing. - <RCC> root元素缺失。 - - - Cannot write file. Disk full? - 无法创建临时文件.磁盘已满? - - - Xml Editor - Xml 编辑器 - - - Designer - 设计师 - - - Class Generation - 生成类 - - - Form Editor - 界面编辑器 - - - The generated header of the form '%1' could not be found. -Rebuilding the project might help. - 找不到界面 "%1"生成的头文件。 -重新构建项目可能有帮助。 - - - The generated header '%1' could not be found in the code model. -Rebuilding the project might help. - 代码模型中找不到生成的头文件"%1"。 -重新构建项目可能有帮助。 - - - Qt Designer Form Class - Qt 设计器界面类 - - - Form Template - 界面模板 - - - Class Details - 类详情 - - - %1 - Error - %1 - 错误 - - - Choose a class name - 选择类名 - - - Class - - - - Configure... - 配置... - - - Choose a Class Name - 选择类名 - - - Qt - Qt - - - Qt Designer Form - Qt 设计师界面 - - - Creates a Qt Designer form that you can add to a Qt Widget Project. This is useful if you already have an existing class for the UI business logic. - 创建一个Qt设计师窗体文件,您可以添加Qt 控件项目中。如果您已经有控制UI逻辑的类,那么这将会很有用。 - - - Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt Widget Project. - 创建一个Qt设计师窗体文件和相应的类(C++头文件和源文件)用于实现,您可以将此窗体文件和类加入到已经存在的Qt 控件项目中。 - - - Creates a Qt Designer form file (.ui). - 创建Qt设计师界面文件(.ui). - - - Creates a Qt Designer form file (.ui) with a matching class. - 创建与类匹配的Qt设计师界面文件(.ui)。 - - - Widget Box - 控件盒子 - - - Object Inspector - 对象查看器 - - - Property Editor - 属性编辑器 - - - Signals & Slots Editor - 信号和槽编辑器 - - - Action Editor - Action编辑器 - - - Edit widgets - 编辑部件 - - - F3 - F3 - - - Edit signals/slots - 编辑信号/槽 - - - F4 - F4 - - - Edit buddies - 编辑伙伴 - - - Edit tab order - 编辑 Tab 顺序 - - - Meta+H - Meta+H - - - Ctrl+H - Ctrl+H - - - Meta+Shift+H - Meta+Shift+H - - - Ctrl+L - Ctrl+L - - - Meta+L - Meta+L - - - Meta+G - Mega+G - - - Ctrl+G - Ctrl+G - - - Meta+Shift+G - Meta+Shift+G - - - Meta+J - Mega+J - - - Ctrl+J - Ctrl+J - - - Alt+Shift+R - Alt+Shift+R - - - Switch Source/Form - 切换源文件/窗体 - - - Shift+F4 - Shift+F4 - - - Views - 视图 - - - Signals && Slots Editor - 信号和槽编辑器 - - - Widget box - 控件盒子 - - - Locked - 锁定 - - - For&m Editor - 界面编辑器(&M) - - - Edit Widgets - 编辑控件 - - - Edit Signals/Slots - 编辑信号/槽 - - - Edit Buddies - 编辑伙伴(Buddy) - - - Edit Tab Order - 编辑 Tab 顺序 - - - Ctrl+Alt+R - Ctrl+Alt+R - - - About Qt Designer plugins.... - 关于 Qt 设计师插件... - - - Preview in - 预览于 - - - The image could not be created: %1 - 无法创建图片: %1 - - - Choose a form template - 选择 界面模板 - - - Choose a Form Template - 选择界面模板 - - - Error saving %1 - 保存 %1出错 - - - Unable to open %1: %2 - 无法打开 %1: %2 - - - Unable to write to %1: %2 - 无法写入 %1: %2 - - - The class definition of '%1' could not be found in %2. - 类 '%1' 的定义 在 %2中找不到. - - - The class containing '%1' could not be found in %2. -Please verify the #include-directives. - 包含'%1'的类在%2里找不到。 -请检查是否有相应的 #include. - - - Error finding/adding a slot. - 查找/添加槽错误。 - - - Internal error: No project could be found for %1. - 内部错误:找不到 %1 的项目。 - - - No documents matching '%1' could be found. -Rebuilding the project might help. - 找不到符合 '%1'的文档。 -重新构建项目可能有帮助。 - - - Unable to add the method definition. - 无法添加方法定义。 - - - - DocSettingsPage - - Registered Documentation - 已注册的文档 - - - Add... - 添加... - - - Remove - 删除 - - - Add and remove compressed help files, .qch. - 添加和删除已压缩的帮助文件,.qch。 - - - Add - 添加 - - - - EmbeddedPropertiesPage - - Skin: - 皮肤: - - - Use Virtual Box -Note: This adds the toolchain to the build environment and runs the program inside a virtual machine. -It also automatically sets the correct Qt version. - 使用虚拟盒子 -注意: 这将添加工具链到构建环境变量并且在虚拟机内运行程序. -他将自动设置正确的 Qt 版本. - - - - ExtensionSystem::Internal::PluginDetailsView - - Name: - 名称: - - - Version: - 版本: - - - Compatibility Version: - 兼容版本: - - - Vendor: - 销售商: - - - Url: - URL: - - - Location: - 位置: - - - Description: - 说明: - - - Copyright: - 版权: - - - License: - 许可: - - - Dependencies: - 依赖关系: - - - Group: - 组: - - - Compatibility version: - 兼容版本: - - - URL: - URL: - - - - ExtensionSystem::Internal::PluginErrorView - - State: - 状态: - - - Error Message: - 错误信息: - - - Error message: - 错误信息: - - - - ExtensionSystem::Internal::PluginSpecPrivate - - File does not exist: %1 - 文件不存在: %1 - - - Could not open file for read: %1 - 无法打开用于读取的文件: %1 - - - Cannot open file %1 for reading: %2 - 无法打开文件%1 来读取: %2 - - - Error parsing file %1: %2, at line %3, column %4 - 分析文件错误 %1: %2, 在行 %3, 列 %4 - - - - ExtensionSystem::Internal::PluginView - - State - 状态 - - - Name - 名称 - - - Version - 版本 - - - Vendor - 销售商 - - - Location - 位置 - - - Load - 载入 - - - - ExtensionSystem::PluginErrorView - - Invalid - 无效 - - - Description file found, but error on read - 找到说明文件,但是读取错误 - - - Read - 读入 - - - Description successfully read - 成功读取说明文档 - - - Resolved - 已解決 - - - Dependencies are successfully resolved - 成功解析依赖关系 - - - Loaded - 已载入 - - - Library is loaded - 库已载入 - - - Initialized - 初始化 - - - Plugin's initialization method succeeded - 初始化插件成功 - - - Running - 执行中 - - - Plugin successfully loaded and running - 插件成功载入和运行 - - - Stopped - 已停止 - - - Plugin was shut down - 插件被关闭 - - - Deleted - 删除 - - - Plugin ended its life cycle and was deleted - 插件结束了自己的生存期并且已删除 - - - - ExtensionSystem::PluginManager - - Circular dependency detected: - - 检测到循环依赖: - - - - %1(%2) depends on - - %1(%2) 依赖于 - - - - %1(%2) - %1(%2) - - - Cannot load plugin because dependencies are not resolved - 由于没有解决依赖所以无法载入插件 - - - Cannot load plugin because dependency failed to load: %1(%2) -Reason: %3 - 因为无法载入依赖关系所以无法载入插件: %1(%2) -原因: %3 - - - - FakeVim::Internal - - Toggle vim-style editing - 开启vim风格的编辑 - - - Use vim-style editing - 使用vim风格编辑 - - - Use Vim-style Editing - 使用vim风格编辑 - - - Read .vimrc - 读取.vimrc - - - FakeVim properties... - FakeVim 属性... - - - - FakeVim::Internal::FakeVimHandler - - Not implemented in FakeVim - 在FakeVim中未实现 - - - E20: Mark '%1' not set - E20:未设置"%1"标记 - - - %1%2% - %1%2% - - - %1All - %1所有 - - - File '%1' exists (add ! to override) - 文件 '%1' 存在 (添加 ! 覆盖) - - - Cannot open file '%1' for writing - 无法打开用于写入的文件 '%1' - - - "%1" %2 %3L, %4C written - "%1" %2 %3L, %4C 写入 - - - Cannot open file '%1' for reading - 无法打开用于读取的文件'%1' - - - "%1" %2L, %3C - "%1" %2L, %3C - - - %n lines filtered - - 过滤%n 行 - - - - %n lines >ed %1 time - not really understand what does >ed mean. - - %n 行 >ed %1 次 - - - - Can't open file %1 - 无法打开文件 %1 - - - E512: Unknown option: - E512: 未知选项: - - - Mark '%1' not set - 未设置"%1"标记 - - - Unknown option: - 未知选项 : - - - File "%1" exists (add ! to override) - 文件 '%1' 存在 (添加 ! 覆盖) - - - Cannot open file "%1" for writing - 无法打开用于写入的文件 "%1" - - - Cannot open file "%1" for reading - 无法打开用于读取的文件"%1" - - - %n lines %1ed %2 time - - %n 行 执行命令%1 %2 次 - - - - Cannot open file %1 - 打开文件 %1 失败 - - - Pattern not found: %1 - 未找到模式:%1 - - - Pattern not found: - 未找到模式: - - - search hit BOTTOM, continuing at TOP - 搜索到末尾,从开头继续搜索 - - - search hit TOP, continuing at BOTTOM - 搜索到开头,从结尾处继续搜索 - - - Invalid regular expression: %1 - 无效的正则表达式: %1 - - - Already at oldest change - 已经处于最旧的改变了 - - - Already at newest change - 已经处于最新的改变了 - - - Unknown option: %1 - 未知选项: %1 - - - Argument must be positive: %1=%2 - 参数必须是正值: %1=%2 - - - - FakeVim::Internal::FakeVimOptionPage - - General - 概要 - - - FakeVim - FakeVim - - - Use FakeVim - 使用FakeVim - - - Read .vimrc - 读取.vimrc - - - Vim Behavior - Vim 行为 - - - Automatic indentation - 自动缩进 - - - Start of line - 移到行首 - - - Smart indentation - 智能缩进 - - - Use search dialog - 使用搜索对话框 - - - Use smartcase - 使用智能大小写 - - - Expand tabulators - 展开制表符 - - - Show position of text marks - 显示文本标签的位置 - - - Smart tabulators - 智能制表符 - - - Pass key sequences like Ctrl-S to Qt Creator core instead of interpreting them in FakeVim. This gives easier access to Qt Creator core functionality at the price of losing some features of FakeVim. - 组合按键比如Ctrl-S 传递给Qt Creator 核心而不在FakeVim中解释。这将更容易使用 Qt Creator 的核心功能,代价是需要牺牲一些FakeVim的功能。 - - - Pass control key - 传递Control按键 - - - Highlight search results - 高亮搜索结果 - - - Incremental search - 递增式搜索 - - - Shift width: - 缩进宽度: - - - Vim tabstop option - Vim 的 "tabstop" 选项 - - - Tabulator size: - 制表符大小: - - - Backspace: - 退格: - - - Keyword characters: - 关键词字符: - - - Copy Text Editor Settings - 复制文本编辑器设置 - - - Set Qt Style - 设置为Qt风格 - - - Set Plain Style - 设置为Plain风格 - - - - FakeVim::Internal::FakeVimPluginPrivate - - Switch to next file - 切换到下一个文件 - - - Switch to previous file - 切换到前一个文件 - - - Quit FakeVim - 退出FakeVim - - - Meta+V,Meta+V - Meta+V,Meta+V - - - Alt+V,Alt+V - Alt+V,Alt+V - - - Execute User Action #%1 - 执行用户操作 #%1 - - - Meta+V,%1 - Meta+V,%1 - - - Alt+V,%1 - Alt+V,%1 - - - File not saved - 文件未保存 - - - Saving succeeded - 成功保存 - - - %n files not saved - - %n 个文件没有被保存 - - - - Not an editor command: %1 - 不是一个编辑器命令: %1 - - - FakeVim Information - FakeVim 信息 - - - - FakeVimOptionPage - - Use FakeVim - 使用FakeVim - - - Vim style settings - Vim 风格设置 - - - vim's "expandtab" option - vim 的 "expandtab" 选项 - - - Expand tabulators: - 展开制表符: - - - Highlight search results: - 高亮搜索结果: - - - Shift width: - 缩进宽度: - - - Smart tabulators: - 智能制表符: - - - Start of line: - 从行开始: - - - vim's "tabstop" option - vim 的 "tabstop" 选项 - - - Tabulator size: - 制表符大小: - - - VIM's "autoindent" option - vim 的 "autoindent" 选项 - - - Automatic indentation: - 自动缩进: - - - Copy text editor settings - 复制文本编辑器设置 - - - Set Qt style - 设置为Qt风格 - - - Set plain style - 设置为无格式风格 - - - Incremental search: - 递增式搜索: - - - Vim Behavior - Vim 行为 - - - Automatic indentation - 自动缩进 - - - Start of line - 移到行首 - - - Smart indentation - 智能缩进 - - - Use search dialog - 使用搜索对话框 - - - Expand tabulators - 展开制表符 - - - Smart tabulators - 智能制表符 - - - Highlight search results - 高亮搜索结果 - - - Incremental search - 递增式搜索 - - - Read .vimrc - 读取vimrc - - - Keyword characters: - 关键词字符: - - - Copy Text Editor Settings - 复制文本编辑器设置 - - - Set Qt Style - 设置为Qt风格 - - - Set Plain Style - 设置为无格式风格 - - - Show position of text marks - 显示文本标签的位置 - - - Checking this box passes key sequences like Ctrl-S to the Creator core instead of interpreting them in FakeVim. This gives easier access to Creator core functionality at the price of losing some features of FakeVim. - 选中此项将传递类似Ctrl-S的按键序列给Creator核心,而不在FakeVim中解释。这样损失一部分FakeVim的功能但更容易访问Creator核心的功能。 - - - Pass control key - 传递Control按键 - - - Vim tabstop option - vim 的 "tabstop" 选项 - - - Pass key sequences like Ctrl-S to Qt Creator core instead of interpreting them in FakeVim. This gives easier access to Qt Creator core functionality at the price of losing some features of FakeVim. - 组合按键比如Ctrl-S 对于Qt Creator 核心来说是在FakeVim截断的. 这将更容易的进入 Qt Creator 核心功能但是需要牺牲一些FakeVim的功能. - - - - FilterNameDialogClass - - Add Filter Name - 增加过滤器名称 - - - Filter Name: - 过滤器名称: - - - - FilterSettingsPage - - Filters - 过滤器 - - - 1 - 1 - - - Add - 添加 - - - Remove - 删除 - - - Attributes - 属性 - - - <html><body> -<p> -Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents. -</p></body></html> - <html><body> -<p> -添加,修改,删除文档过滤器,这决定了要在帮助模式中显示的文档集。属性在文档中定义,选中属性以显示关联文档。请注意某些属性在多个文档中被定义。 -</p></body></html> - - - No user defined filters available or no filter selected. - 无用户定义的过滤器或未选中过滤器。 - - - - Find::Internal::FindDialog - - Search for... - 查找... - - - Sc&ope: - 范围(&O): - - - &Search - 搜索(&S) - - - Search &for: - 查找(&F): - - - Close - 关闭 - - - &Case sensitive - 区分大小写(&C) - - - &Whole words only - 全词匹配(&W) - - - Search && Replace - 查找和替换 - - - Use regular e&xpressions - 使用正则表达式(&X) - - - Cancel - 取消 - - - Sco&pe: - 范围(&P): - - - Sear&ch for: - 查找(&C): - - - Case sensiti&ve - 区分大小写(&V) - - - Whole words o&nly - 全词匹配(&N) - - - Use re&gular expressions - 使用正则表达式(&G) - - - Search && &Replace - 查找和替换(&R) - - - - Find::Internal::FindPlugin - - &Find/Replace - 查找/替换(&F) - - - Advanced Find - 高级查找 - - - Open Advanced Find... - 打开高级查找... - - - Find... - 查找... - - - Ctrl+Shift+F - Ctrl+Shift+F - - - - Find::Internal::FindToolBar - - Current Document - 当前文档 - - - Find/Replace - 查找/替换 - - - Enter Find String - 输入搜索字符串 - - - Ctrl+E - Ctrl+E - - - Find Next - 查找下一个 - - - Find Previous - 查找前一个 - - - Replace && Find Next - 替换并且查找下一个 - - - Shift+Enter - Shift+Enter - - - Shift+Return - Shift+Return - - - Find Next (Selected) - 查找下一个(选中的) - - - Ctrl+F3 - Ctrl+F3 - - - Find Previous (Selected) - 查找前一个(选中的) - - - Ctrl+Shift+F3 - Ctrl+Shift+F3 - - - Replace - 替换 - - - Replace && Find - 查找并替换 - - - Ctrl+= - Ctrl+= - - - Replace && Find Previous - 替换并且查找前一个 - - - Replace All - 替换所有 - - - Case Sensitive - 区分大小写 - - - Whole Words Only - 全词匹配 - - - Use Regular Expressions - 使用正则表达式 - - - - Find::Internal::FindWidget - - Find - 查找 - - - Find: - 查找: - - - Replace with: - 替换为: - - - All - 所有 - - - ... - ... - - - Replace - 替换 - - - Replace && Find - 查找并替换 - - - Replace All - 替换所有 - - - Advanced... - 高级... - - - - Find::SearchResultWindow - - Search Results - 搜索结果 - - - No matches found! - 未找到匹配! - - - New Search - 新搜索 - - - Expand All - 展开全部 - - - %1 %2 - %1 %2 - - - Replace with: - 替换为: - - - Replace all occurrences - 替换所有出现位置 - - - Replace - 替换 - - - This change cannot be undone. - 这项改变将无法被撤销。 - - - Collapse All - 折叠全部 - - - - GdbOptionsPage - - Gdb interaction - Gdb 设定 - - - Gdb location: - Gdb 路径: - - - Environment: - 环境: - - - This is either empty or points to a file containing gdb commands that will be executed immediately after gdb starts up. - 可以为空,或指向包含gdb命令的文件,将在启动gdb之后立即执行。 - - - Gdb startup script: - Gdb启动脚本: - - - Behaviour of breakpoint setting in plugins - 在插件内的断点的行为 - - - This is the slowest but safest option. - 这是最慢但是最安全的选项。 - - - Try to set breakpoints in plugins always automatically. - 总是自动在插件中设置断点。 - - - Try to set breakpoints in selected plugins - 尝试在选中的插件中设置断点 - - - Matching regular expression: - 匹配正则表达式: - - - Never set breakpoints in plugins automatically - 从不自动在插件中设置断点 - - - Gdb timeout: - Gdb超时时间: - - - This is the number of second Qt Creator will wait before -it terminates non-reacting gdb process. The default value of 20 seconds -should be sufficient for most applications, but there are situations when -loading big libraries or listing source files takes much longer than that -on slow machines. In this case the value should be increased. - 这是Qt Creator在终止gdb进程之前将等待的秒数。 -默认时间是20秒,对于多数程序已经足够。 -但有时如载入很大的二进制档或列出源文件清单时, -在比较慢的机器上可能耗费比20秒更长的时间。 -这就需要增加此值。 - - - Gdb - Gdb - - - This is the number of seconds Qt Creator will wait before -it terminates non-responsive gdb process. The default value of 20 seconds -should be sufficient for most applications, but there are situations when -loading big libraries or listing source files takes much longer than that -on slow machines. In this case, the value should be increased. - 这是Qt Creator 在终止不响应的gdb进程之前将等待的秒数。 -默认时间是20秒,对于多数程序已经足够。 -但有时如载入很大的二进制档或列出源文件清单时, -在比较慢的机器上可能耗费比20秒更长的时间。 -这就需要增加此值。 - - - Enable reverse debugging - 打开反向调试 - - - When this option is checked, 'Step Into' compresses several steps into one in certain situations, leading to 'less noisy' debugging. So will, e.g., the atomic - reference counting code be skipped, and a single 'Step Into' for a signal emission will end up directly in the slot connected to it. - 当此项被选中,"Step Into"某些情况下将把几步压缩成为一步,以简化调试。因此像原子操作计数等代码会被跳过,信号发送的"Step Into"会直接调到连接的槽函数。 - - - Skip known frames when stepping - 当stepping时跳过已知的frames - - - Show a message box when receiving a signal - 当接收到一个信号时显示一个消息窗口 - - - Behavior of Breakpoint Setting in Plugins - 在插件内的断点的行为 - - - Adjust Breakpoint Locations - 对准断点位置 - - - Adjust breakpoint locations - 对准断点位置 - - - Load .gdbinit file on startup - 启动时载入.gdbinit 文件 - - - Use asynchronous mode to control the inferior - 使用异步模式来控制 - - - This is either empty or points to a file containing GDB commands that will be executed immediately after GDB starts up. - 这项要么留空,要么指定一个包含GDB 命令的文件,那么当GDB 启动时这写命令会马上执行. - - - GDB startup script: - Gdb启动脚本: - - - GDB timeout: - Gdb超时时间: - - - This will show a message box as soon as your application receives a signal like SIGSEGV during debugging. - 当您的应用程序在调试时收到系统信号比如SIGSEGV,这将显示一个消息窗口提示您. - - - GDB allows setting breakpoints on source lines for which no code was generated. In such situations the breakpoint is shifted to the next source code line for which code was actually generated. This option reflects such temporary change by moving the breakpoint markers in the source code editor. - GDB 在不是生成的代码上允许设置断点. 在这种情况下,断点转移到下一个源代码行的代码实际上是生成出来的. 这个选项反应了如此临时的改变仅仅是移动断点位置而已. - - - This allows or inhibits reading the user's default .gdbinit file on debugger startup. - 这项允许或抑制在调试器启动时读取用户默认的.gdbinit 文件. - - - Enable reverse debugging Selecting this enables reverse debugging. NOTE: This feature is very slow and unstable on the GDB side. It exhibits unpredictable behaviour when going backwards over system calls and is very likely to destroy your debugging session. - 开启反向调试 选择此项. 注意: 这项功能在 GDB 处将会非常缓慢. 在反向运行的时候将会很不稳定,极其容易摧毁当前的调试会话. - - - This is the number of seconds Qt Creator will wait before -it terminates a non-responsive GDB process. The default value of 20 seconds -should be sufficient for most applications, but there are situations when -loading big libraries or listing source files takes much longer than that -on slow machines. In this case, the value should be increased. - 这是 Qt Creator 将会等待的时间在 - 杀掉没响应的 GDB 进程之前. 默认是20秒 -大多数应用都适用这项设置, 但有些情况下 -载入大型库文件或者列出源文件需要更多的时间 -在一些老机器上. 在这种情况下, 应当增加这个数值. - - - Allows 'Step Into' to compress several steps into one step for less noisy debugging. For example, the atomic reference - counting code is skipped, and a single 'Step Into' for a signal emission ends up directly in the slot connected to it. - 允许'单步进入' 将合并多个步骤到一个步骤,这将减小调试时的冗余情况. 比如, 原子参考 -计算代码就被跳过, 一个'单步进入' 使一个信号发射最终直接连接到它的插槽. - - - Try to set breakpoints in plugins always automatically - 在插件种设置断点总是自动的 - - - <html><head/></body><p>GDB allows setting breakpoints on source lines for which no code was generated. In such situations the breakpoint is shifted to the next source code line for which code was actually generated. This option reflects such temporary change by moving the breakpoint markers in the source code editor.</p></body></html> - <html><head/></body><p>GDB 在不是生成的代码上允许设置断点. 在这种情况下,断点转移到下一个源代码行的代码实际上是生成出来的. 这个选项反应了如此临时的改变仅仅是移动断点位置而已.</p></body></html> - - - Stop when a qWarning is issued - 停止当发生 qWarning - - - Always try to set breakpoints in plugins automatically - 在插件种设置断点总是自动的 - - - Stop when a qFatal is issued - 停止当发生 qFatal - - - This adds common paths to locations of debug information at debugger startup. - 在调试器启动时添加调试信息的位置常用路径. - - - Use common locations for debug information automatically - 为调试信息自动使用常用路径 - - - - GenericMakeStep - - Override %1: - 覆盖 %1: - - - Make arguments: - Make 参数: - - - Targets: - 目标: - - - - GenericProject - - <new> - <新建> - - - - GenericProjectManager::Internal::GenericBuildConfigurationFactory - - Create - 新建 - - - Build - 构建 - - - New Configuration - 新建配置 - - - New configuration name: - 新配置名称: - - - New configuration - 新配置 - - - New Configuration Name: - 新配置名称: - - - - GenericProjectManager::Internal::GenericBuildSettingsWidget - - Configuration Name: - 配置名称: - - - Build directory: - 构建目录: - - - Tool chain: - 工具链: - - - <Invalid tool chain> - <无效的工具链> - - - Tool Chain: - 工具链: - - - Generic Manager - 标准管理器 - - - - GenericProjectManager::Internal::GenericMakeStepConfigWidget - - Make - GenericMakestep display name. - Make - - - Override %1: - 覆盖 %1: - - - <b>Make:</b> %1 %2 - <b>Make:</b> %1 %2 - - - - GenericProjectManager::Internal::GenericProjectWizard - - Import of Makefile-based Project - 导入基于Makefile的项目 - - - Import Existing Project - 导入现有项目 - - - Imports existing projects that do not use qmake, CMake or Autotools. This allows you to use Qt Creator as a code editor. - 导入不使用qmake,CMake或Autotool的现存项目,这让您可以将Qt Creator当成代码编辑器使用。 - - - Creates a generic project, supporting any build system. - 创建标准项目,支持所有构建系统。 - - - Projects - 项目 - - - The project %1 could not be opened. - 项目 %1 无法被打开。 - - - - GenericProjectManager::Internal::GenericProjectWizardDialog - - Import of Makefile-based Project - 导入基于Makefile的项目 - - - Generic Project - 标准项目 - - - Import Existing Project - 导入现有项目 - - - Project Name and Location - 项目名称和位置 - - - Project name: - 项目名称: - - - Location: - 位置: - - - File Selection - 文件选择 - - - Location - 位置 - - - Files - 文件 - - - Second Page Title - 第二页题目 - - - - Git - - Checkout - Checkout - - - Checkout branch? - 检出分支吗? - - - Would you like to delete the <b>unmerged</b> branch '%1'? - 您想要删除<b>未合并的(unmerged)</b> 分支 '%1'吗? - - - Delete Branch - 删除分支 - - - Would you like to delete the branch '%1'? - 您想删除分支 '%1' 吗? - - - Failed to delete branch - 删除 分支 失败 - - - Failed to create branch - 创建 分支 失败 - - - Failed to stash - what does stash mean? - Stash 失败 - - - Checkout failed - Checkout 失败 - - - Create branch - 创建 分支 - - - Failed to create a tracking branch - 创建跟踪 分支 失败 - - - Branches - 分支 - - - General information - 概要 - - - Remote branches - 远程 branches - - - Remote Branches - 远程 分支 - - - Re&fresh - 刷新(&F) - - - &Add... - 添加(&A)... - - - &Remove - 删除(&R) - - - &Diff - &Diff - - - &Log - &Log - - - &Checkout - 检出(&C) - - - Select a Git commit - 选择一个 Git commit - - - Select Git repository - 选择 Git 仓库 - - - Select a Git Commit - 选择一个 Git commit - - - Select Git Repository - 选择 Git 仓库 - - - Select Working Directory - 选择工作目录 - - - Error - 错误 - - - Selected directory is not a Git repository - 选择的目录不是 一个Git 仓库 - - - Working directory: - 工作目录: - - - Select - 选择 - - - Change: - 更改: - - - Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work. - 请注意 git 插件无法与服务器交互,所以类似于“手动ssh身份认证”之类将无法工作。 - - - Waiting for data... - 等待数据... - - - Git Diff - Git Diff - - - Git Diff Branch %1 - Git Diff Branch %1 - - - Git Log - Git Log - - - Cannot describe '%1'. - 无法描述 '%1'。 - - - Unable to checkout %1 of %2: %3 - Meaning of the arguments: %1: Branch, %2: Repository, %3: Error message - 无法 checkout %2 中的 %1: %3 - - - Unable to add %n file(s) to %1: %2 - - 无法添加 %n 个文件到 %1: %2 - - - - Unable to remove %n file(s) from %1: %2 - - 无法从 %1 删除 %n 个文件: %2 - - - - Unable to move from %1 to %2: %3 - 无法从 %1移动到 %2: %3 - - - Unable to reset %1: %2 - 无法 重置 %1: %2 - - - Unable to reset %n file(s) in %1: %2 - - 无法 重置 %n 个文件到 %1: %2 - - - - Invalid revision - 无效修订版本 - - - Unable to retrieve branch of %1: %2 - 无法获取 %1 的分支: %2 - - - Stash description - Stash 说明 - - - Description: - 说明: - - - Stash Description - Stash 说明 - - - Unable to resolve stash message '%1' in %2 - Look-up of a stash via its descriptive message failed. - 无法解析 %2 中的 stash 信息 '%1' - - - Unable to run a 'git branch' command in %1: %2 - 无法在 %1 中执行命令 'git branch': %2 - - - Unable to run 'git show' in %1: %2 - 无法在 %1 中执行 'git show': %2 - - - Unable to run 'git clean' in %1: %2 - 无法在 %1 中执行 'git clean': %2 - - - There were warnings while applying %1 to %2: -%3 - 应用 %1 到 %2 时收到警告: -%3 - - - Unable apply patch %1 to %2: %3 - 无法应用补丁 %1 到 %2: %3 - - - Cannot locate %1. - 无法定位 %1. - - - Unable to launch %1. - 无法启动 %1。 - - - Unable to retrieve the last commit data of the repository %1. - 无法获取仓库 %1的最近提交数据。 - - - Amended %1 (%n file(s)). - - - 修订了 %1个(%n个文件). - - - - - Amended %1. - 修订了%1. - - - Unable to restore stash %1: %2 - 无法还原 stash %1: %2 - - - Unable to restore stash %1 to branch %2: %3 - 无法还原 stash %1 到分支 %2: %3 - - - Unable to remove stashes of %1: %2 - 无法删除 %1 中的 stashes: %2 - - - Unable to remove stash %1 of %2: %3 - 无法删除 %2 中的 stash %1: %3 - - - Unable retrieve stash list of %1: %2 - 无法获取 %1 的 stash 列表: %2 - - - Unable to determine git version: %1 - 无法确定 git 版本: %1 - - - Unable to checkout %n file(s) in %1: %2 - - 无法检出%1中的 %n 个文件: %2 - - - - Unable stash in %1: %2 - 无法在%1 执行 stash: %2 - - - Unable to run branch command: %1: %2 - 无法运行 branch 命令: %1: %2 - - - Unable to run show: %1: %2 - 无法运行 show: %1: %2 - - - Changes - 修改 - - - The repository %1 is not initialized yet. - 仓库 %1 还没有被初始化。 - - - Committed %n file(s). - - - Commit 了 %n 个文件. - - - - - Unable to commit %n file(s): %1 - - - 无法 commit %n 个文件: %1 - - - - - Cannot determine the repository for "%1". - 无法确定 "%1"的代码仓库。 - - - Cannot parse the file output. - 无法解析文件输出。 - - - Git Diff "%1" - Git Diff "%1" - - - Git Diff Branch "%1" - Git Diff 分支 "%1" - - - Git Log "%1" - Git Log "%1" - - - Cannot describe "%1". - 无法描述 '%1'。 - - - Git Show "%1" - Git Show - - - Git Blame "%1" - Git Blame - - - Cannot checkout "%1" of "%2": %3 - Meaning of the arguments: %1: Branch, %2: Repository, %3: Error message - 无法检出 "%2" 中的 "%1": %3 - - - Cannot obtain log of "%1": %2 - 无法获取"%1"的日志: %2 - - - Cannot add %n file(s) to "%1": %2 - - 无法添加%n 个文件到"%1": %2 - - - - Cannot remove %n file(s) from "%1": %2 - - 无法从"%1" 删除%n 个文件: %2 - - - - Cannot move from "%1" to "%2": %3 - 无法将文件从 "%1" 移动到 "%2": %3 - - - Cannot reset "%1": %2 - 无法重置"%1": %2 - - - Cannot reset %n file(s) in "%1": %2 - - 无法在"%1"重置%n 个文件: %2 - - - - Cannot checkout "%1" of %2 in "%3": %4 - Meaning of the arguments: %1: revision, %2: files, %3: repository, %4: Error message - 无法检出 "%3"中的 %2 的修订版本 "%1": %4 - - - Cannot find parent revisions of "%1" in "%2": %3 - Failed to find parent revisions of a SHA1 for "annotate previous" - 无法找到在 "%2"的"%1"的上一级修订: %3 - - - Cannot retrieve branch of "%1": %2 - 无法获取"%1"的分支: %2 - - - Cannot retrieve top revision of "%1": %2 - 无法获取"%1"的顶部修订版本: %2 - - - Cannot describe revision "%1" in "%2": %3 - 无法描述"%2"中的修订"%1": %3 - - - Cannot stash in "%1": %2 - 无法在"%1"中stash: %2 - - - Cannot resolve stash message "%1" in "%2". - Look-up of a stash via its descriptive message failed. - 无法处理"%2"中的stash消息"%1"。 - - - Cannot run "git branch" in "%1": %2 - 无法在"%1"中运行"git branch" : %2 - - - Cannot run "git remote" in "%1": %2 - 无法在"%1"中运行"git remote" : %2 - - - Cannot run "git show" in "%1": %2 - 无法在"%1"中运行"git show" : %2 - - - Cannot run "git clean" in "%1": %2 - 无法在"%1"中运行"git clean" : %2 - - - There were warnings while applying "%1" to "%2": -%3 - 应用 %1 到 %2 时收到警告: -%3 - - - Cannot apply patch "%1" to "%2": %3 - 无法应用补丁"%1" 到"%2": %3 - - - Would you like to stash your changes? - 您想要stash您的修改吗? - - - Cannot obtain status: %1 - 无法获得状态: %1 - - - Cannot locate "%1". - 无法定位"%1". - - - Cannot launch "%1". - 无法启动"%1". - - - The repository "%1" is not initialized. - 仓库 %1 未被初始化。 - - - Cannot retrieve last commit data of repository "%1". - 无法获取仓库最近一次提交的数据"%1"。 - - - Amended "%1" (%n file(s)). - - - 增订了 %1(%n个文件). - - - - - Amended "%1". - 增订了"%1"。 - - - Cannot commit %n file(s): %1 - - - 无法commit %n 个文件: %1 - - - - - The file has been changed. Do you want to revert it? - 文件被改变,您想要还原它吗? - - - The file is not modified. - 文件没有被修改。 - - - The command 'git pull --rebase' failed, aborting rebase. - 命令 'git pull --rebase' 失败,终止rebase。 - - - Git SVN Log - Git SVN Log - - - There are no modified files. - 没有被修改的文件。 - - - Cannot restore stash "%1": %2 - 无法恢复stash "%1": %2 - - - Cannot restore stash "%1" to branch "%2": %3 - 无法恢复stash"%1" 到分支"%2": %3 - - - Cannot remove stashes of "%1": %2 - 无法删除"%1"的stash: %2 - - - Cannot remove stash "%1" of "%2": %3 - 无法删除 "%2"中的stash "%1": %3 - - - Cannot retrieve stash list of "%1": %2 - 无法获取 "%1"的stash列表: %2 - - - Cannot determine git version: %1 - 无法确定git 的版本: %1 - - - &Git - &Git - - - Diff Current File - Diff 当前文件 - - - Alt+G,Alt+D - Alt+G,Alt+D - - - File Status - 文件状态 - - - Alt+G,Alt+S - Alt+G,Alt+S - - - Log File - Log 文件 - - - Log of "%1" - "%1" 的 log - - - Alt+G,Alt+L - Alt+G,Alt+L - - - Blame for "%1" - "%1"的 blame - - - Blame Current File - Blame 当前文件 - - - Alt+G,Alt+B - Alt+G,Alt+B - - - Diff - Diff - - - Status - 状态 - - - Undo Uncommited Changes... - 撤销未提交的修改... - - - Clean... - 清除... - - - Launch gitk - 启动gitk - - - Launch repository browser - 启动代码仓库浏览器 - - - Remotes... - 远程... - - - Show... - 显示... - - - Patch - Patch - - - Apply from Editor - 应用自编辑器 - - - Apply from File... - 应用自文件... - - - Take Snapshot... - 抓取快照... - - - Meta+G,Meta+C - Meta+G,Meta+C - - - Amend Last Commit... - 增订最后一个 Commit... - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Undo all pending changes to the repository -%1? - 撤销所有待决修改到仓库 -%1? - - - Undo Changes - 撤销修改 - - - Amend %1 - 增订 %1 - - - Closing Git Editor - 关闭 git 编辑器 - - - Git will not accept this commit. Do you want to continue to edit it? - Git 不接受此次提交. 您想继续编辑吗? - - - Repository Clean - 代码仓库清理 - - - Choose Patch - 选择补丁 - - - Undo Changes for "%1" - 撤销对"%1"的修改 - - - Alt+G,Alt+U - Alt+G,Alt+U - - - Stage File for Commit - Stage文件以备提交 - - - Meta+G,Meta+B - Meta+G,Meta+B - - - Diff of "%1" - "%1"的diff - - - Meta+G,Meta+D - Meta+G,Meta+D - - - Log Current File - Log 当前文件 - - - Meta+G,Meta+L - Meta+G,Meta+L - - - Stage "%1" for Commit - 提交的stage "%1" - - - Alt+G,Alt+A - Alt+G,Alt+A - - - Meta+G,Meta+A - Meta+G,Meta+A - - - Unstage File from Commit - 从提交unstage文件 - - - Unstage "%1" from Commit - 从提交unstage文件 "%1" - - - Undo Unstaged Changes - 撤销unstage的修改 - - - Undo Unstaged Changes for "%1" - 撤销unstage的对 "%1" 的修改 - - - Undo Uncommitted Changes - 撤销未提交的修改 - - - Undo Uncommitted Changes for "%1" - 撤销未提交的对 "%1" 的修改 - - - Meta+G,Meta+U - Meta+G,Meta+U - - - Diff Current Project - Diff 当前项目 - - - Diff Project "%1" - Diff 项目 "%1" - - - Meta+G,Meta+Shift+D - Meta+G,Meta+Shift+D - - - Alt+G,Alt+Shift+D - Alt+G,Alt+Shift+D - - - Meta+G,Meta+K - Meta+G,Meta+K - - - Clean Project... - Clean 项目... - - - Clean Project "%1"... - Clean 项目 "%1"... - - - Diff Repository - Diff 仓库 - - - Repository Status - 代码仓库 Status - - - Log Repository - Log代码仓库 - - - Apply Patch - 应用patch - - - Apply "%1" - 应用 “%1” - - - Apply Patch... - 应用patch... - - - Undo Repository Changes - 撤销对仓库的修改 - - - Create Repository... - 创建仓库... - - - Clean Repository... - Clean 仓库... - - - Stash snapshot... - Stash 快照... - - - Saves the current state of your work and resets the repository. - 保存您的工作的当前状态并重置软件仓库。 - - - Stashes... - Stash列表... - - - Reset... - 重置... - - - Subversion - Subversion - - - Log - Log - - - Fetch - Fetch - - - Unable to retrieve file list - 无法获取文件列表 - - - The repository is clean. - 代码仓库是clean状态。 - - - Patches (*.patch *.diff) - 补丁 (*.patch *.diff) - - - Choose patch - 选择补丁 - - - Patch %1 successfully applied to %2 - 补丁 %1 成功应用于 %2 - - - Project Status - 项目状态 - - - Status Project "%1" - 项目 "%1" 的状态 - - - Log Project - Log 项目 - - - Log Project "%1" - Log 项目 "%1" - - - Alt+G,Alt+K - Alt+G,Alt+K - - - Undo Project Changes - 撤销项目改变 - - - Stash - Stash - - - Saves the current state of your work. - 保存当前状态。 - - - Pull - Pull - - - Stash Pop - Stash Pop - - - Undo Uncommitted Changes... - 撤销未提交的修改... - - - Restores changes saved to the stash list using "Stash". - 使用 "Stash" 还原保存在stash列表中的更改。 - - - Commit... - Commit... - - - Alt+G,Alt+C - Alt+G,Alt+C - - - Push - Push - - - Branches... - 分支列表... - - - List Stashes - 列出临时分支 - - - Show Commit... - 显示提交... - - - Commit - Commit - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Could not find working directory - 找不到工作文件夹 - - - Revert - Revert - - - Another submit is currently being executed. - 另一个提交操作正在执行。 - - - Cannot create temporary file: %1 - 无法创建临时文件: %1 - - - Closing git editor - 关闭 git 编辑器 - - - Do you want to commit the change? - 您想提交此修改吗? - - - The binary '%1' could not be located in the path '%2' - 无法在路径 '%2' 定位二进制档 '%1' - - - Git Commit - Git Commit - - - General Information - 概要信息 - - - Repository: - 代码仓库: - - - repository - 代码仓库 - - - branch - 分支 - - - Commit Information - Commit 信息 - - - Author: - 作者: - - - Email: - Email: - - - By&pass hooks - 跳过hook(&P) - - - <New branch> - <新的分支> - - - Type to create a new branch - 创建新分支 - - - Environment variables - 环境变量 - - - PATH: - 路径: - - - From system - 来自系统 - - - <b>Note:</b> - <b>注意:</b> - - - Git needs to find Perl in the environment as well. - Git 需要在环境变量中找到 Perl. - - - Note that huge amount of commits might take some time. - 注意:大量的提交可能需要花费一段时间。 - - - Log commit display count: - 显示 commit 记录的数量: - - - Git - Git - - - Git Settings - Git设置 - - - Timeout (seconds): - 超时 (秒): - - - Miscellaneous - 其他 - - - Timeout: - 超时时间: - - - s - - - - Prompt on submit - 提交时弹出提示 - - - Ignore whitespace changes in annotation - 忽略注释中的空格变化 - - - Use "patience diff" algorithm - 使用 "patience diff” 算法 - - - Pull with rebase - pull同时rebase - - - Environment Variables - 环境变量 - - - From System - 从系统选择 - - - Set "HOME" environment variable - 设置 "HOME" 环境变量 - - - Ignore whitespace changes in blame and diff - 忽略blame和diff中的空格变化 - - - Gitk - Gitk - - - Arguments: - 参数: - - - Customize Environment: - 自定义环境: - - - Git needs to find Perl in the environment. - Git 需要在环境中找到 Perl. - - - Log count: - 日志数: - - - Configuration - 配置 - - - Prepend to PATH: - 附加在系统PATH之前: - - - Repository browser - 代码仓库浏览器 - - - Command: - 命令: - - - -'%1' failed (exit code %2). - - -'%1' 失败 (退出代码 %2)。 - - - - -'%1' completed (exit code %2). - - -'%1' 完成 (退出代码 %2)。 - - - - - Help - - Add new page - 添加新页 - - - Print Document - 打印文档 - - - unknown - 未知 - - - Add New Page - 添加新页 - - - Close This Page - 关闭本页 - - - Close Other Pages - 关闭其他页 - - - Add Bookmark for this Page... - 为此页添加书签... - - - Documentation - 文档 - - - Add Documentation - 添加文档 - - - Qt Help Files (*.qch) - Qt 帮助文件 (*.qch) - - - Invalid documentation file: - 无效的文档文件: - - - Namespace already registered: - 命名空间已经注册: - - - Registration failed - 注册失败 - - - Unable to register documentation. - 无法注册文档。 - - - The file %1 is not a valid Qt Help file! - 文件 %1 不是一个有效的Qt帮助文件! - - - Cannot unregister documentation file %1! - 无法注销文件 %1 ! - - - Add and remove compressed help files, .qch. - 添加和删除已压缩的帮助文件,.qch。 - - - Registered Documentation - 已注册的文档 - - - Add... - 添加... - - - Remove - 删除 - - - Filters - 过滤器 - - - Unfiltered - 未过滤 - - - No user defined filters available or no filter selected. - 无用户定义的过滤器或未选中过滤器。 - - - The filter "%1" will show every documentation file available, as no attributes are specified. - 由于没有设定属性,过滤器 "%1" 将显示所有可用的文档。 - - - The filter "%1" will only show documentation files that have the attribute %2 specified. - 过滤器 "%1" 只显示包含指定属性 "%2" 的文档。 - - - The filter "%1" will only show documentation files that have the attributes %2 specified. - 过滤器 "%1" 只会显示包含指定属性 "%2" 的文档文件。 - - - <html><body> -<p> -Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents. -</p></body></html> - <html><body> -<p> -添加、修改和删除文档过滤器,文档过滤器决定在"帮助"模式下显示的文档集合。属性在文档中定义,选中属性以显示相关的一组文档。注意:有些属性在多个文件中定义。 -</p></body></html> - - - Attributes - 属性 - - - 1 - 1 - - - Add - 添加 - - - Help index - 帮助索引 - - - Help Index - 帮助索引 - - - Help - 帮助 - - - Contents - 目录 - - - Index - 索引 - - - Search - 查找 - - - Bookmarks - 书签 - - - Home - 主页 - - - Meta+M - Meta+M - - - Ctrl+M - Ctrl+M - - - Report Bug... - 报告bug... - - - Meta+I - Meta+I - - - Ctrl+Shift+I - Ctrl+Shift+I - - - Meta+Shift+C - Meta+Shift+C - - - Ctrl+Shift+C - Ctrl+Shift+C - - - Meta+/ - Meta+/ - - - Ctrl+Shift+/ - Ctrl+Shift+/ - - - Meta+B - Meta+B - - - Ctrl+Shift+B - Ctrl+Shift+B - - - Meta+O - Meta+O - - - Ctrl+Shift+O - Ctrl+Shift+O - - - Show Sidebar - 显示边栏 - - - Previous - 上一个 - - - Next - 下一个 - - - Hide Sidebar - 隐藏边栏 - - - Add Bookmark - 添加书签 - - - Previous Page - 上一页 - - - Next Page - 下一页 - - - Context Help - 上下文相关帮助 - - - Technical Support - 技术支持 - - - Report Bug - 报告错误 - - - Activate Index in Help mode - 帮助模式下激活索引 - - - Activate Contents in Help mode - 帮助模式下激活目录表示 - - - Activate Search in Help mode - 帮助模式下激活搜索 - - - Increase Font Size - 增大字号 - - - Ctrl++ - Ctrl++ - - - Decrease Font Size - 减小字号 - - - Ctrl+- - Ctrl+- - - - Reset Font Size - 重置字号 - - - Ctrl+0 - Ctrl+0 - - - Alt+Tab - Alt+Tab - - - Alt+Shift+Tab - Alt+Shift+Tab - - - Ctrl+Tab - Ctrl+Tab - - - Ctrl+Shift+Tab - Ctrl+Shift+Tab - - - Activate Bookmarks in Help mode - 帮助模式下激活书签 - - - Open Pages - 打开页面 - - - Activate Open Pages in Help mode - 帮助模式下激活打开页面表示 - - - Go to Help Mode - 切换到帮助模式 - - - Close current Page - 关闭当前页 - - - No Documentation - 没有文档 - - - No documentation available. - 没有可用文档。 - - - Close current page - 关闭当前页 - - - Filtered by: - 过滤方式: - - - &Copy - 复制(&C) - - - Copy &Link Location - 复制链接位置(&L) - - - Open Link in New Tab - 在新页面打开链接 - - - Select All - 全选 - - - Indexing - 索引中 - - - Indexing Documentation... - 正在建立文档索引... - - - Open Link - 打开链接 - - - Open Link as New Page - 在新页面打开连接 - - - Copy Link - 复制链接 - - - Copy - 复制 - - - Reload - 重新载入 - - - <title>about:blank</title> - <title>关于:空白页</title> - - - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></body> - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>错误404...</title></head><body><div align="center"><br><br><h1>页面无法被找到</h1><br><h3>'%1'</h3></div></body> - - - <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> - <title>错误 404...</title><div align="center"><br><br><h1>找不到页面</h1><br><h3>'%1'</h3></div> - - - Unable to launch external application. - - 无法执行外部应用。 - - - - OK - OK - - - Open Link in New Tab Ctrl+LMB - 在新页面打开链接 Ctrl+LMB - - - Error 404... - 错误 404... - - - The page could not be found! - 无法找到页面! - - - <li>Check that you have one or more documentation sets installed.</li> - <li>请检查您是否安装了一个或多个文档集。</li> - - - <li>Check that you have installed the appropriate browser plug-in to support the file your loading.</li> - <li>请检查您是否安装了正确的浏览器插件以支持您要载入的文件。</li> - - - <li>If you try to access a public URL, make sure to have a network connection.</li> - <li>如果您要访问一个公开的网络地址,请确认网络连接可用。</li> - - - <li>If your computer or network is protected by a firewall or proxy, make sure the application is permitted to access the network.</li> - <li>如果您的电脑或网络受到防火墙或网络代理的保护,请确认应用程序有访问网络的权限。</li> - - - - IndexWindow - - &Look for: - 查找(&L): - - - Open Link - 打开链接 - - - Open Link as New Page - 在新页面打开连接 - - - Open Link in New Tab - 在新页面打开链接 - - - - InputPane - - Type Ctrl-<Return> to execute a line. - 键入Ctrl-<Return> 执行一行。 - - - - Locator - - Filters - 过滤器 - - - Locator - 定位器 - - - - MainWindow - - Open file - 打开文件 - - - &File - 文件(&F) - - - &New... - 新建(&N)... - - - &Open... - 打开(&O)... - - - Ctrl+O - Ctrl+O - - - Recent Files - 最近使用的文件 - - - &Save - 保存(&S) - - - Save &As... - 另存为(&A)... - - - &Preview - 预览(&P) - - - Ctrl+R - Ctrl+R - - - &Preview with Debug - 带调试的预览(&P) - - - &Quit - 退出(&Q) - - - &Edit - 编辑(&E) - - - &Copy - 复制(&C) - - - &Cut - 剪切(&C) - - - &Paste - 粘贴(&P) - - - &Delete - 删除(&D) - - - &View - 视图(&V) - - - &Help - 帮助(&H) - - - &About... - 关于(&A)... - - - Properties - 属性 - - - Could not open file <%1> - 无法打开文件 <%1> - - - Qml Errors: - QML错误: - - - Quit - 退出 - - - Run to main() - 执行到main() - - - Ctrl+F5 - Ctrl+F5 - - - F5 - F5 - - - Shift+F5 - Shift+F5 - - - F6 - F6 - - - F7 - F7 - - - Shift+F6 - Shift+F6 - - - Shift+F9 - Shift+F9 - - - Shift+F7 - Shift+F7 - - - Shift+F8 - Shift+F8 - - - F8 - F8 - - - ALT+D,ALT+W - ALT+D,ALT+W - - - Files - 文件 - - - File - 文件 - - - Debug - 调试 - - - Not a runnable project - 不是一个可执行的项目 - - - The current startup project can not be run. - 当前启动的项目无法被执行。 - - - Open File - 打开文件 - - - Cannot find special data dumpers - 找不到特殊数据dumpers - - - The debugged binary does not contain information needed for nice display of Qt data types. - -Make sure you use something like - -SOURCES *= .../ide/main/bin/dumper/dumper.cpp - -in your .pro file. - 被调试的程序未包含用于正确显示Qt数据类型的信息。 - -请确保使用添加类似如下信息 - -SOURCES *= .../ide/main/bin/dumper/dumper.cpp - -到您的.pro文件中。 - - - Open Executable File - 打开可执行文件 - - - Ctrl+Q - Ctrl+Q - - - - MakeStep - - Override %1: - 覆盖 %1: - - - Make arguments: - Make 参数: - - - - MyMain - - N/A - N/A - - - - NickNameDialog - - Nick Names - 昵称 - - - Filter: - 过滤器: - - - Clear - 清空 - - - Nicknames - 昵称 - - - - OpenWithDialog - - Open File With... - 用...打开文件 - - - Open file extension with: - 使用..打开文件扩展名: - - - - Perforce::Internal - - No executable specified - 未指定可执行的 - - - Unable to launch "%1": %2 - 无法执行 "%1": %2 - - - "%1" timed out after %2ms. - 在%2毫秒后"%1" 超时. - - - "%1" crashed. - "%1" 崩溃 - - - "%1" terminated with exit code %2: %3 - "%1" 中止,退出代码 %2: %3 - - - The client does not seem to contain any mapped files. - 客户端看上去不存在任何映射文件 - - - - Perforce::Internal::ChangeNumberDialog - - Change Number - Change编号 - - - Change Number: - Change编号: - - - - Perforce::Internal::PendingChangesDialog - - P4 Pending Changes - P4未完成的Change - - - Submit - 提交 - - - Cancel - 取消 - - - Change %1: %2 - Change %1: %2 - - - - Perforce::Internal::PerforcePlugin - - &Perforce - &Perforce - - - Edit - 编辑 - - - Edit "%1" - 编辑"%1" - - - Alt+P,Alt+E - Alt+P,Alt+E - - - Edit File - 编辑文件 - - - Add - 添加 - - - Add "%1" - 添加"%1" - - - Alt+P,Alt+A - Alt+P,Alt+A - - - Add File - 添加文件 - - - Delete - 删除 - - - Delete "%1" - 删除 "%1" - - - Delete File - 删除文件 - - - Revert - 还原 - - - Revert "%1" - 还原"%1" - - - Alt+P,Alt+R - Alt+P,Alt+R - - - Revert File - 还原文件 - - - Diff Current File - Diff 当前文件 - - - Diff "%1" - Diff "%1" - - - Diff Current Project/Session - Diff 当前文件项目/会话 - - - Diff Project "%1" - Diff 项目 "%1" - - - Alt+P,Alt+D - Alt+P,Alt+D - - - Diff Opened Files - Diff 打开的文件 - - - Opened - 已打开 - - - Alt+P,Alt+O - Alt+P,Alt+O - - - Submit Project - 提交项目 - - - Submit Project "%1" - 提交项目 "%1" - - - Alt+P,Alt+S - Alt+P,Alt+S - - - Pending Changes... - 未完成的Change... - - - Update Current Project/Session - 更新当前的项目/会话 - - - Update Project "%1" - 更新项目 "%1" - - - Revert Project - 还原项目 - - - Revert Project "%1" - 还原项目 "%1" - - - Revert Unchanged - 还原未修改的内容 - - - Revert Unchanged Files of Project "%1" - 还原项目 %1 中所有未修改的内容 - - - Describe... - 说明... - - - Annotate Current File - 注释(Annotate) 当前文件 - - - Annotate "%1" - 注释 "%1" - - - Annotate... - 注释... - - - Filelog Current File - Filelog当前文件 - - - Filelog "%1" - Filelog "%1" - - - Alt+P,Alt+F - Alt+P,Alt+F - - - Filelog... - Filelog... - - - Update All - 更新所有 - - - Delete... - 删除... - - - Delete "%1"... - 删除 "%1"... - - - Log Project - Log 项目 - - - Log Project "%1" - Log 项目 "%1" - - - Repository Log - 仓库日志 - - - Submit - 提交 - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - p4 revert - p4 还原(revert) - - - The file has been changed. Do you want to revert it? - 文件被改变,您想还原它么? - - - Do you want to revert all changes to the project "%1"? - 您想还原项目 "%1"的所有修改吗? - - - Another submit is currently executed. - 另一个提交正在被执行。 - - - Cannot create temporary file. - 无法创建临时文件。 - - - Project has no files - 项目中没有文件 - - - p4 annotate - p4 annotate - - - p4 annotate %1 - p4 annotate %1 - - - p4 filelog - p4 filelog - - - p4 filelog %1 - p4 filelog %1 - - - Executing: %1 - - 正在执行: %1 - - - - The process terminated with exit code %1. - 进程异常终止,退出码 %1 . - - - The commit message check failed. Do you want to submit this change list? - 检查提交信息失败,您想要提交这个修改列表吗? - - - p4 submit failed: %1 - p4 submit 失败: %1 - - - Error running "where" on %1: %2 - Failed to run p4 "where" to resolve a Perforce file name to a local file system name. - 在 %1运行 "where" 发生错误: %2 - - - The file is not mapped - File is not managed by Perforce - 文件未映射 - - - Perforce repository: %1 - Perforce 仓库地址: %1 - - - Perforce: Unable to determine the repository: %1 - Perforce: 无法定位仓库地址:'%1' - - - The process terminated abnormally. - 进程异常终止。 - - - Meta+P,Meta+F - Meta+P,Meta+F - - - Meta+P,Meta+E - Meta+P,Meta+E - - - Meta+P,Meta+A - Meta+P,Meta+A - - - Meta+P,Meta+R - Meta+P,Meta+R - - - Meta+P,Meta+D - Meta+P,Meta+D - - - Meta+P,Meta+S - Meta+P,Meta+S - - - Update Current Project - 更新当前项目 - - - Meta+P,Meta+O - Meta+P,Meta+O - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Could not start perforce '%1'. Please check your settings in the preferences. - 无法启动 perforce '%1'. 请检查首选项中的设置. - - - Perforce did not respond within timeout limit (%1 ms). - Perforce 在超时限制(%1 毫秒)内未响应. - - - Unable to write input data to process %1: %2 - 无法向进程%1写入输入数据: %2 - - - Perforce is not correctly configured. - Perforce未正确配置。 - - - p4 diff %1 - p4 diff %1 - - - p4 describe %1 - p4 describe %1 - - - Closing p4 Editor - 正在关闭 p4编辑器 - - - Do you want to submit this change list? - 您想提交这个修改列表吗? - - - The commit message check failed. Do you want to submit this change list - 检查提交信息失败,您想要提交这个修改列表吗? - - - Cannot open temporary file. - 无法打开临时文件。 - - - Pending change - 未完成的修改 - - - Could not submit the change, because your workspace was out of date. Created a pending submit instead. - 无法提交修改,因为您的工作空间已经过时。创建了一个“未完成的提交”。 - - - Invalid configuration: %1 - 无效配置: %1 - - - Timeout waiting for "where" (%1). - 超时等待 "where" (%1). - - - Error running "where" on %1: The file is not mapped - 运行错误 "where" 在 %1: 文件没有被映射 - - - - Perforce::Internal::PerforceSubmitEditor - - Perforce Submit - Perforce提交 - - - - Perforce::Internal::PromptDialog - - Perforce Prompt - Perforce信息提示 - - - OK - OK - - - - Perforce::Internal::SettingsPage - - P4 Command: - P4 命令: - - - Use default P4 environment variables - 使用默认 P4 环境变量 - - - Environment variables - 环境变量 - - - P4 Client: - P4 客户端: - - - P4 User: - P4 用户: - - - P4 Port: - P4 端口: - - - Perforce - Perforce - - - Test - 测试 - - - Configuration - 配置 - - - Miscellaneous - 其他 - - - Prompt on submit - 提交时弹出提示 - - - Timeout: - 超时时间: - - - s - - - - Log count: - 日志数: - - - P4 command: - P4 命令: - - - P4 client: - P4 客户端: - - - P4 user: - P4 用户: - - - P4 port: - P4 端口: - - - Environment Variables - 环境变量 - - - Automatically open files when editing - 编辑时自动打开文件 - - - - Perforce::Internal::SettingsPageWidget - - Testing... - 测试中... - - - Test succeeded (%1). - 测试成功 (%1)。 - - - Test succeeded. - 测试成功。 - - - Perforce Command - Perforce 命令 - - - - Perforce::Internal::SubmitPanel - - Submit - 提交 - - - Change: - 更改: - - - Client: - 客户端: - - - User: - 用户: - - - - PluginDialog - - Details - 详情 - - - Error Details - 错误详情 - - - Installed Plugins - 已安装的插件 - - - Plugin Details of %1 - 插件%1 的详细信息 - - - Plugin Errors of %1 - 插件 %1 的错误信息 - - - - PluginManager - - The plugin '%1' does not exist. - 插件 '%1' 不存在。 - - - Unknown option %1 - 未知选项 %1 - - - The option %1 requires an argument. - 选项 %1 需要参数。 - - - Failed Plugins - 发生错误的插件 - - - - PluginSpec - - '%1' misses attribute '%2' - '%1' 缺少属性 '%2' - - - '%1' has invalid format - '%1' 格式无效 - - - Invalid element '%1' - '%1' 无效元素 - - - Unexpected closing element '%1' - 未预料到的关闭元素 '%1' - - - Unexpected token - 未预料到的符号 - - - Expected element '%1' as top level element - '%1' 应为顶层元素 - - - Resolving dependencies failed because state != Read - 解决依赖关系失败因为 state != Read - - - Could not resolve dependency '%1(%2)' - 无法解决依赖 '%1(%2)' - - - Loading the library failed because state != Resolved - 载入库文件失败因为 state != Resolved - - - Plugin is not valid (does not derive from IPlugin) - 不是有效插件 (未从IPlugin继承) - - - Initializing the plugin failed because state != Loaded - 初始化插件失败因为 state != Loaded - - - Internal error: have no plugin instance to initialize - 内部错误:没有插件实例要初始化 - - - Plugin initialization failed: %1 - 插件初始化失败: %1 - - - Cannot perform extensionsInitialized because state != Initialized - 无法进行扩展初始化因为 state != Initialized - - - Internal error: have no plugin instance to perform extensionsInitialized - 内部错误:没有可进行扩展初始化的插件实例 - - - Internal error: have no plugin instance to perform delayedInitialize - 内部错误: 没有可进行延迟初始化的插件实例 - - - - ProjectExplorer::AbstractProcessStep - - <font color="#0000ff">Starting: %1 %2</font> - - <font color="#0000ff">启动中: %1 %2</font> - - - - <font color="#0000ff">Exited with code %1.</font> - <font color="#0000ff">已退出,退出代码 %1.</font> - - - <font color="#ff0000"><b>Exited with code %1.</b></font> - <font color="#ff0000"><b>已退出,退出代码 %1.</b></font> - - - <font color="#ff0000">Could not start process %1 </b></font> - <font color="#ff0000">无法启动进程 %1 </b></font> - - - <font color="#0000ff">Starting: "%1" %2</font> - - <font color="#0000ff">启动中: %1 %2</font> - - - - <font color="#0000ff">The process "%1" exited normally.</font> - <font color="#ff0000">进程 %1正常退出 </b></font> - - - <font color="#ff0000"><b>The process "%1" exited with code %2.</b></font> - <font color="#ff0000">进程 %1退出,退出代码 %2 </b></font> - - - <font color="#ff0000"><b>The process "%1" crashed.</b></font> - <font color="#ff0000">进程 %1崩溃 </b></font> - - - <font color="#ff0000"><b>Could not start process "%1"</b></font> - <font color="#ff0000">无法启动进程 %1 </b></font> - - - Starting: "%1" %2 - - 正在启动 "%1" %2 - - - - Starting: "%1" %2 - 正在启动 "%1" %2 - - - - The process "%1" exited normally. - 进程"%1"正常退出。 - - - The process "%1" exited with code %2. - 进程"%1"退出,退出代码 %2 。 - - - The process "%1" crashed. - 进程"%1"崩溃。 - - - Could not start process "%1" %2 - 无法启动进程"%1" %2 - - - Could not start process "%1" - 无法启动进程"%1" - - - - ProjectExplorer::BuildManager - - Finished %1 of %n build steps - - 完成 %n 之中的 %1 个构建步骤 - - - - Build System - Category for build system isses listened under 'Build Issues' - 构建系统 - - - Compile - Category for compiler isses listed under 'Issues' - 编译 - - - Build System - Category for build system isses listed under 'Issues' - 构建系统 - - - Build canceled - 构建被取消 - - - Canceled build. - 取消构建. - - - When executing build step '%1' - 当执行构建步骤 '%1'时 - - - Running build steps for project %1... - 为项目%1执行构建步骤 ... - - - <font color="#ff0000">Canceled build.</font> - <font color="#ff0000">取消构建.</font> - - - Build - 构建 - - - <font color="#ff0000">Error while building project %1 (target: %2)</font> - <font color="#ff0000">构建项目%1时发生错误 (目标: %2)</font> - - - Error while building project %1 (target: %2) - 构建项目%1 时发生错误 (目标: %2) - - - Finished %n of %1 build steps - - 完成 %n 之中的 %1 构建步骤 - - - - Compile - Category for compiler isses listened under 'Build Issues' - 编译 - - - Buildsystem - Category for build system isses listened under 'Build Issues' - 构建系统 - - - <font color="#ff0000">Error while building project %1</font> - <font color="#ff0000">构建项目%1时发生错误 %1</font> - - - <font color="#ff0000">When executing build step '%1'</font> - <font color="#ff0000">当执行构建步骤'%1'时 </font> - - - Error while building project %1 - 构建项目%1 时发生错误 - - - <b>Running build steps for project %2...</b> - <b>为项目%2执行构建步骤 ...</b> - - - Finished %1 of %n steps - - 完成了 %n 之中的 %1 个步骤 - - - - Compile - Category for compiler issues listed under 'Issues' - 编译 - - - Build System - Category for build system issues listed under 'Issues' - 构建系统 - - - Build/Deployment canceled - 构建/部署被取消 - - - Canceled build/deployment. - 取消了构建/部署。 - - - Error while building/deploying project %1 (target: %2) - 构建/部署项目%1 时发生错误 (目标: %2) - - - When executing step '%1' - 当执行步骤 '%1'时 - - - Running steps for project %1... - 为项目%1执行步骤 ... - - - Skipping disabled step %1. - 跳过被禁用的步骤 %1。 - - - - ProjectExplorer::CustomExecutableRunConfiguration - - Custom Executable - 自定义执行档 - - - Could not find the executable, please specify one. - 无法找到执行档, 请指定一个. - - - Clean Environment - 清理时的环境变量 - - - System Environment - 系统环境变量 - - - Build Environment - 构建时的环境变量 - - - Run %1 - 运行%1 - - - - ProjectExplorer::CustomExecutableRunConfigurationFactory - - Custom Executable - 自定义执行档 - - - - ProjectExplorer::EnvironmentModel - - <UNSET> - <未设定> - - - Value - - - - Variable - 变量 - - - <VARIABLE> - Name when inserting a new variable - <变量> - - - <VALUE> - Value when inserting a new variable - <值> - - - <VARIABLE> - Name when inserting a new variable - <变量> - - - <VALUE> - Value when inserting a new variable - <值> - - - - ProjectExplorer::EnvironmentWidget - - &Edit - 编辑(&E) - - - &Add - 添加(&A) - - - &Reset - 重置(&R) - - - &Unset - 取消设置(&U) - - - &Batch Edit... - 批量编辑(&B)... - - - Unset <a href="%1"><b>%1</b></a> - 撤回设置 <a href="%1"><b>%1</b></a> - - - Set <a href="%1"><b>%1</b></a> to <b>%2</b> - 设置 <a href="%1"><b>%1</b></a> 到 <b>%2</b> - - - Use <b>%1</b> - %1 is "System Environment" or some such. - 使用 <b>%1</b> - - - Use <b>%1</b> and - Yup, word puzzle. The Set/Unset phrases above are appended to this. %1 is "System Environment" or some such. - 使用 <b>%1</b> 和 - - - Unset <b>%1</b> - 取消设置 <b>%1</b> - - - Set <b>%1</b> to <b>%2</b> - 设置 <b>%1</b> 为<b>%2</b> - - - Using <b>%1</b> - 使用 <b>%1</b> - - - Using <b>%1</b> and - 使用 <b>%1</b> 和 - - - Summary: No changes to Environment - 概要:环境变量没有改变 - - - - ProjectExplorer::Internal::AllProjectsFilter - - Files in any project - 任何项目中的文件 - - - Files in Any Project - 任意项目中的文件 - - - - ProjectExplorer::Internal::AllProjectsFind - - All Projects - 所有项目 - - - All Projects: - 所有项目: - - - Filter: %1 -%2 - 过滤器: '%1' -%2 - - - Fi&le pattern: - 文件模式(&L): - - - File &pattern: - 文件模式(&P): - - - - ProjectExplorer::Internal::BuildSettingsPanel - - Build Settings - 构建设置 - - - - ProjectExplorer::Internal::BuildSettingsWidget - - &Clone Selected - 克隆选中(&C) - - - Build Steps - 构建步骤 - - - Edit Build Configuration: - 编辑构建配置: - - - No Build Settings available - 没有可用的构建设置 - - - No build settings available - 没有可用的构建设置 - - - Edit build configuration: - 编辑构建配置: - - - Add - 添加 - - - Remove - 删除 - - - Rename - 重命名 - - - Remove Build Configuration - 删除构建配置 - - - Do you really want to delete the build configuration <b>%1</b>? - 确定要删除此构建配置<b>%1</b>吗? - - - Rename... - 重命名... - - - New name for build configuration <b>%1</b>: - 构建配置的新名称 <b>%1</b>: - - - Clone Configuration - Title of a the cloned BuildConfiguration window, text of the window - 克隆配置 - - - New configuration name: - 新配置名称: - - - Cancel Build && Remove Build Configuration - 取消构建 && 移除构建配置 - - - Do Not Remove - 不要移除 - - - Remove Build Configuration %1? - 删除构建配置%1? - - - The build configuration <b>%1</b> is currently being built. - 构建配置<b>%1</b> 正在被构建。 - - - Do you want to cancel the build process and remove the Build Configuration anyway? - 您想要取消构建并移除构建配置吗? - - - Remove Build Configuration? - 删除构建配置? - - - Do you really want to delete build configuration <b>%1</b>? - 确定要删除构建配置<b>%1</b>吗? - - - Clean Steps - 清除步骤 - - - <a href="#">Make %1 active.</a> - <a href="#">激活 %1 .</a> - - - New Configuration Name: - 新配置名称: - - - Clone configuration - 克隆配置 - - - - ProjectExplorer::Internal::BuildStepsPage - - Move Up - 向上移动 - - - Move Down - 向下移动 - - - Remove Item - 删除项目 - - - Removing Step failed - 删除步骤失败 - - - Can't remove build step while building - 无法在构建时删除构建步骤 - - - No Build Steps - 没有构建步骤 - - - Add Clean Step - 添加清除步骤 - - - Add Build Step - 添加构建步骤 - - - Add build step - 添加构建步骤 - - - Remove build step - 删除构建步骤 - - - Build Steps - 构建步骤 - - - Clean Steps - 清除步骤 - - - - ProjectExplorer::Internal::CompileOutputWindow - - Compile Output - 编译输出 - - - - ProjectExplorer::Internal::CoreListenerCheckingForRunningBuild - - Cancel Build && Close - 退出构建并关闭 - - - A project is currently being built. - 有个项目现正在构建中。 - - - Close Qt Creator? - 退出Qt Creator ? - - - Do not Close - 不要关闭 - - - - ProjectExplorer::Internal::CurrentProjectFilter - - Files in current project - 当前项目中的文件 - - - Files in Current Project - 当前项目中的文件 - - - - ProjectExplorer::Internal::CurrentProjectFind - - Current Project - 当前项目 - - - Project '%1': - 项目 '%1': - - - File &pattern: - 文件模式(&P): - - - - ProjectExplorer::Internal::CustomExecutableConfigurationWidget - - Name: - 名称: - - - Executable: - 执行档: - - - Arguments: - 参数: - - - Working Directory: - 工作目录: - - - Working directory: - 工作目录: - - - Run in &Terminal - 在终端中运行(&T) - - - Debugger: - 调试器: - - - Run Environment - 运行时的环境变量 - - - Base environment for this runconfiguration: - 运行配置的基本环境: - - - Clean Environment - 清除时的环境变量 - - - System Environment - 系统环境变量 - - - Build Environment - 构建时的环境变量 - - - No Executable specified. - 未指定执行档。 - - - Running executable: <b>%1</b> %2 - 运行的执行档: <b>%1</b> %2 - - - - ProjectExplorer::Internal::DependenciesPanel - - Dependencies - 依赖关系 - - - - ProjectExplorer::Internal::DetailedModel - - Could not rename file - 无法重命名文件 - - - Renaming file %1 to %2 failed. - 重命名 %1 到 %2 失败。 - - - - ProjectExplorer::Internal::EditorSettingsPanel - - Editor Settings - 编辑器设置 - - - - ProjectExplorer::Internal::EditorSettingsPropertiesPage - - Default File Encoding: - 默认文件编码: - - - Default file encoding: - 默认文件编码: - - - Use global settings - 实用全局设置 - - - Restore Global Values - 还原到全局变量 - - - Editor settings: - 编辑器设置: - - - Global - 全局设置 - - - Custom - 自定义设置 - - - Restore Global - 还原全局设置 - - - - Core::FolderNavigationWidgetFactory - - File System - 文件系统 - - - Meta+Y - Meta+Y - - - Alt+Y - Alt+Y - - - Synchronize with Editor - 与编辑器同步 - - - - ProjectExplorer::Internal::NewSessionInputDialog - - New session name - 新会话名称 - - - Enter the name of the new session: - 为新会话输入名称: - - - - ProjectExplorer::Internal::SessionDialog - - Switch to session - 切换到会话 - - - Session Manager - 会话管理器 - - - Create New Session - 创建新会话 - - - Clone Session - 复制会话 - - - Delete Session - 删除会话 - - - <a href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">What is a Session?</a> - <a href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">什么是会话?</a> - - - &New - 新建(&N) - - - &Rename - 重命名(&R) - - - C&lone - 克隆(&L) - - - &Delete - 删除(&D) - - - &Open - 打开(&S) - - - New session name - 新会话名称 - - - Rename session - 重命名会话 - - - <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a> - <a href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">什么是会话?</a> - - - Automatically restore the last session when Qt Creator is started. - Qt Creator启动时自动恢复上一次会话。 - - - Restore last session on startup - 启动时恢复上次会话 - - - - ProjectExplorer::Internal::OutputPane - - Re-run this run-configuration - 重新执行运行配置 - - - Stop - 停止 - - - Application Output Window - 应用程序输出窗口 - - - The application is still running. - 应用程序仍在执行. - - - Force it to quit? - 强行关闭? - - - Force Quit - 强行关闭 - - - Ctrl+Shift+R - Ctrl+Shift+R - - - Application Output - 应用程序输出 - - - The application is still running. Close it first. - 应用程序仍在执行,请先关闭。 - - - Unable to close - 无法关闭 - - - - ProjectExplorer::Internal::OutputWindow - - Application Output Window - 应用程序输出窗口 - - - Additional output omitted - - 省略附加输出 - - - - - ProjectExplorer::Internal::ProcessStep - - Custom Process Step - Default ProcessStep display name - 自定义进程步骤 - - - Custom Process Step - item in combobox - 自定义处理步骤 - - - - ProjectExplorer::Internal::ProcessStepConfigWidget - - <b>%1</b> %2 %3 %4 - <b>%1</b> %2 %3 %4 - - - (disabled) - (禁用) - - - Custom Process Step - 自定义进程步骤 - - - %1 (disabled) - %1 is the custom process step summary - %1 (禁用) - - - - ProjectExplorer::Internal::ProcessStepWidget - - Name: - 名称: - - - Command: - 命令: - - - Working Directory: - 工作目录: - - - Command Arguments: - 命令参数: - - - Enable Custom Process Step - 启用自定义进程步骤 - - - Enable custom process step - 启用自定义处理步骤 - - - Working directory: - 工作目录: - - - Command arguments: - 命令参数: - - - Arguments: - 参数: - - - - ProjectExplorer::Internal::ProjectExplorerSettingsPage - - Build and Run - 构建和运行 - - - General - 概要 - - - Projects - 项目 - - - - ProjectExplorer::Internal::ProjectFileFactory - - Project File Factory - ProjectExplorer::ProjectFileFactory display name. - 项目文件工厂 - - - Failed to open project - 打开项目失败 - - - Could not open the following project: '%1' - 无法打开以下项目: '%1' - - - All Projects - 所有项目 - - - - ProjectExplorer::Internal::ProjectFileWizardExtension - - <Implicitly Add> - <隐式添加> - - - The files are implicitly added to the projects: - - 文件隐式添加到项目中: - - - - <None> - No project selected - <无> - - - Failed to add subproject '%1' -to project '%2'. - 添加子项目'%1' -到项目'%2'失败。 - - - Failed to add one or more files to project -'%1' (%2). - 添加一个或多个文件到项目'%1'失败 - (%2)。 - - - A version control system repository could not be created in '%1'. - 在%1处无法创建版本控制系统代码仓库. - - - Failed to add '%1' to the version control system. - 添加'%1' 到版本控制系统失败。 - - - - ProjectExplorer::Internal::ProjectTreeWidget - - Simplify tree - 简化视图 - - - Hide generated files - 隐藏生成的文件 - - - Simplify Tree - 简化树形视图 - - - Hide Generated Files - 隐藏生成的文件 - - - Synchronize with Editor - 与编辑器同步 - - - - ProjectExplorer::Internal::ProjectTreeWidgetFactory - - Projects - 项目 - - - Meta+X - Meta+X - - - Alt+X - Alt+X - - - Filter Tree - 过滤器树形视图 - - - Filter tree - 过滤视图 - - - - ProjectExplorer::Internal::ProjectWindow - - Active Build and Run Configurations - 激活构建和运行配置 - - - No project loaded. - 没有载入项目。 - - - - ProjectExplorer::Internal::ProjectWizardPage - - Add to &VCS (%1) - 添加到VCS(%1)(&V) - - - Summary - 汇总 - - - Add as a subproject to project: - 作为子项目添加到项目中: - - - Add to &project: - 添加到项目(&P): - - - Files to be added: - 要添加的文件: - - - Files to be added in - 要添加的文件 - - - - ProjectExplorer::Internal::RemoveFileDialog - - Remove File - 删除文件 - - - &Delete file permanently - 彻底删除文件(&D) - - - &Remove from Version Control - 从版本控制系统中删除(&R) - - - File to remove: - 即将被删除的文件: - - - - ProjectExplorer::Internal::RunSettingsPanel - - Run Settings - 运行设置 - - - - ProjectExplorer::Internal::RunSettingsWidget - - Add - 添加 - - - Remove - 删除 - - - <a href="#">Make %1 active.</a> - <a href="#">激活 %1 。</a> - - - Rename - 重命名 - - - Run configuration: - 运行配置: - - - Deployment: - 部署: - - - Run Settings - 运行设置 - - - Deployment - 部署 - - - Method: - 方法: - - - Run - 运行 - - - Remove Run Configuration? - 删除运行配置? - - - Do you really want to delete the run configuration <b>%1</b>? - 确定要删除此运行配置<b>%1</b>吗? - - - Rename... - 重命名... - - - New name for run configuration <b>%1</b>: - 运行配置的新名称 <b>%1</b>: - - - Cancel Build && Remove Deploy Configuration - 取消构建 && 移除部署设置 - - - Do Not Remove - 不要移除 - - - Remove Deploy Configuration %1? - 删除部署(deploy)配置%1? - - - The deploy configuration <b>%1</b> is currently being built. - 部署设置<b>%1</b> 正在被构建。 - - - Do you want to cancel the build process and remove the Deploy Configuration anyway? - 您想要取消构建并移除部署设置吗? - - - Remove Deploy Configuration? - 删除部署(deploy)配置? - - - Do you really want to delete deploy configuration <b>%1</b>? - 确定要删除此部署配置<b>%1</b>吗? - - - New name for deploy configuration <b>%1</b>: - 部署配置的新名称 <b>%1</b>: - - - - ProjectExplorer::Internal::RunSettingsPropertiesPage - - + - + - - - - - - - - - Edit run configuration: - 编辑运行配置: - - - Run configuration: - 运行配置: - - - Deployment: - 部署: - - - Add - 添加 - - - Remove - 删除 - - - Rename - 重命名 - - - Rename ... - 重命名... - - - - ProjectExplorer::Internal::SessionFile - - Session - 会话 - - - Failed to open project - 打开项目失败 - - - Untitled - default file name to display - 未命名 - - - - ProjectExplorer::Internal::TaskDelegate - - File not found: %1 - 未找到文件: %1 - - - - ProjectExplorer::Internal::TaskWindow - - Build Issues - 构建问题 - - - Issues - 问题 - - - Filter by categories - 根据分类过滤 - - - &Copy - 复制(&C) - - - Show Warnings - 显示警告 - - - - ProjectExplorer::Internal::WinGuiProcess - - The process could not be started! - 无法启动进程! - - - Cannot retrieve debugging output! - 无法获取调试输出! - - - The process could not be started: %1 - 无法启动进程: %1 - - - - ProjectExplorer::Internal::WizardPage - - Project management - 项目管理 - - - &Project - 项目(&P) - - - The following files will be added: - - - - - 以下文件将被添加: - - - - - - - Add to &project: - 添加到项目(&P): - - - Add to &version control: - 添加到版本控制系统(&V): - - - Project Management - 项目管理 - - - Manage - 管理 - - - Manage ... - 管理... - - - Manage... - 管理... - - - - ProjectExplorer::ProjectExplorerPlugin - - Projects - 项目 - - - &Build - 构建(&B) - - - &Debug - 调试(&D) - - - &Start Debugging - 开始调试 - - - Open With - 用...打开 - - - Recent Sessions - 当前会话 - - - Session Manager... - 会话管理器... - - - New Project... - 新建项目... - - - Ctrl+Shift+N - Ctrl+Shift+N - - - Load Project... - 载入项目... - - - Ctrl+Shift+O - Ctrl+Shift+O - - - Open File - 打开文件 - - - Show in Explorer... - 在Explorer中显示... - - - Show in Finder... - 在搜索器中显示 ... - - - Show containing folder... - 显示包含的目录... - - - Recent Projects - 最近使用的项目 - - - Recent P&rojects - 最近使用的项目(&R) - - - Close Project - 关闭项目 - - - Close Project "%1" - 关闭项目 "%1" - - - Close All Projects - 关闭所有项目 - - - Session - 会话 - - - Set Build Configuration - 设定构建配置 - - - Build All - 构建所有项目 - - - Ctrl+Shift+B - Ctrl+Shift+B - - - Rebuild All - 重新构建所有项目 - - - Deploy All - 部署所有 - - - Clean All - 清理所有项目 - - - Build Project - 构建项目 - - - Build Project "%1" - 构建项目 "%1" - - - Ctrl+B - Ctrl+B - - - Rebuild Project - 重新构建项目 - - - Rebuild Project "%1" - 重新构建项目 "%1" - - - Deploy Project - 部署项目 - - - Deploy Project "%1" - 部署项目 "%1" - - - Publish Project... - 发布项目... - - - Publish Project "%1"... - 发布项目"%1"... - - - Clean Project - 清理项目 - - - Clean Project "%1" - 清理项目 "%1" - - - Build Without Dependencies - 忽略依赖关系来构建 - - - Rebuild Without Dependencies - 忽略依赖关系重新构建 - - - Deploy Without Dependencies - 忽略依赖关系部署 - - - Clean Without Dependencies - 忽略依赖关系来清除 - - - Run - 运行 - - - Sessions - 会话 - - - Close All Projects and Editors - 关闭所有项目和编辑器 - - - Ctrl+R - Ctrl+R - - - Run Without Deployment - 忽略部署直接运行 - - - Build - 构建 - - - Rebuild - 重新构建 - - - Clean - 清除 - - - Deploy - 部署 - - - Rename... - 重命名... - - - Set as Active Project - 设为活动项目 - - - Set "%1" as Active Project - 将"%1"设置为活动项目 - - - Collapse All - 折叠全部 - - - Open Build and Run Kit Selector... - 打开 构建/运行 构建套件选择器... - - - Quick Switch Target Selector - 快速切换目标选择器 - - - Full build path of the current project's active build configuration. - 当前项目的活动构建配置的绝对构建路径。 - - - Failed to open project - 打开项目失败 - - - Cancel Build && Unload - 取消构建 && 卸载 - - - Do Not Unload - 不要卸载 - - - Unload Project %1? - 卸载项目 %1? - - - The project %1 is currently being built. - 项目 %1 正在被构建。 - - - Do you want to cancel the build process and unload the project anyway? - 您确定要取消构建并卸载项目吗? - - - Project Editing Failed - 编辑项目失败 - - - The file %1 was renamed to %2, but the project file %3 could not be automatically changed. - 文件 %1 更名为 %2,但项目文件 %3 无法自动更改。 - - - The project '%1' has no active target - 项目'%1'没有活动的目标 - - - The target '%1' for project '%2' has no active run configuration - 目标'%1' 为项目'%2' 没有活动的运行配置 - - - Cannot run '%1' in mode '%2'. - 无法运行'%1' 在模式'%2'. - - - A build is still in progress. - 仍有一个构建在进行中。 - - - Set Run Configuration - 设定运行配置 - - - Cancel Build - 取消构建 - - - Start Debugging - 开始调试 - - - F5 - F5 - - - Add New... - 添加新文件... - - - Add Existing Files... - 添加现有文件... - - - New Subproject... - 新子项目... - - - Remove File... - 删除文件... - - - Remove Project... - Remove project from parent profile (Project explorer view); will not physically delete any files. - 删除项目... - - - Delete File... - 删除文件... - - - Rename - 重命名 - - - Set as Startup Project - 设置为启动项目 - - - Open Build/Run Target Selector... - 打开 构建/运行 目标选择器... - - - Ctrl+T - Ctrl+T - - - Full path of the current project's main file, including file name. - 当前项目主文件的完整路径,包含文件名。 - - - Full path of the current project's main file, excluding file name. - 当前项目主文件的完整路径,不包含文件名。 - - - Load Project - 载入项目 - - - New Project - Title of dialog - 新建项目 - - - Always save files before build - 构建之前总是先保存文件 - - - No project loaded - 没有载入的项目 - - - Project has no build settings - 项目没有构建设置 - - - Building '%1' is disabled: %2<br> - 构建'%1' 被禁用: %2<br> - - - Failed to Open Project - 打开项目失败 - - - Unknown error - 未知错误 - - - Could Not Run - 无法运行 - - - Ignore all errors? - 忽略所有错误吗? - - - Found some build errors in current task. -Do you want to ignore them? - 在当前任务中发现一些构建错误。 -您想要忽略这些错误吗? - - - The project %1 is not configured, skipping it. - - 项目 %1 没有被配置,跳过该项目。 - - - No project loaded. - 没有载入项目。 - - - Currently building the active project. - 目前正在构建活动项目。 - - - The project %1 is not configured. - 项目 %1 未配置。 - - - Project has no build settings. - 项目没有构建设置。 - - - A build is in progress - 有一个构建在进行中 - - - Building '%1' is disabled: %2 - - 构建'%1' 被禁用: %2 - - - - Cancel Build && Close - 取消构建并关闭 - - - Do Not Close - 不要关闭 - - - Close Qt Creator? - 关闭 Qt Creator ? - - - A project is currently being built. - 有个项目现正在构建中。 - - - Do you want to cancel the build process and close Qt Creator anyway? - 您无论如何都要取消构建进程并且关闭 Qt Creator 吗? - - - Cannot run without a project. - 无法在一个项目外运行. - - - Cannot debug without a project. - 无法在一个项目外调试. - - - New File - Title of dialog - 新建文件 - - - New Subproject - Title of dialog - 新建子项目 - - - Add Existing Files - 添加现有文件 - - - Could not add following files to project %1: - - 无法添加以下文件到项目 %1 : - - - - Adding Files to Project Failed - 添加文件到项目失败 - - - Adding to Version Control Failed - 添加文件到版本控制系统失败 - - - Removing File Failed - 删除文件失败 - - - Deleting File Failed - 删除文件失败 - - - Delete File - 删除文件 - - - No active project. - 没有活动项目。 - - - The project '%1' has no active target. - 项目'%1'没有活动的目标。 - - - The target '%1' for the project '%2' has no active run configuration. - 项目'%2' 的目标'%1' 没有活动的运行配置。 - - - Cannot run '%1'. - 无法运行: %1。 - - - Run %1 - 运行 %1 - - - Delete %1 from file system? - 从文件系统中删除 %1吗? - - - Add files to project failed - 添加文件到项目失败 - - - Add files to version control failed - 添加文件到版本控制系统失败 - - - Projects (%1) - 项目(%1) - - - All Files (*) - 所有文件 (*) - - - Launching Windows Explorer failed - 启动Windows Explorer 失败 - - - Could not find explorer.exe in path to launch Windows Explorer. - 在环境变量中找不到explorer.exe,无法启动Windows Explorer. - - - Launching a file explorer failed - 启动文件管理器失败 - - - Could not find xdg-open to launch the native file explorer. - 无法找到 xdg-open 来启动本地文件浏览器. - - - Remove file failed - 删除文件失败 - - - Could not remove file %1 from project %2. - 无法从项目 %2.中删除文件 %1 。 - - - Delete file failed - 删除文件失败 - - - Could not delete file %1. - 无法删除文件 %1 。 - - - - ProjectExplorer::Internal::BuildConfigDialog - - Change build configuration && continue - 改变构建配置然后继续 - - - Cancel - 取消 - - - Continue anyway - 无论如何继续 - - - Run configuration does not match build configuration - 运行配置和构建配置不匹配 - - - The active build configuration builds a target that cannot be used by the active run configuration. - 当前活动的构建配置构建的目标无法被运行配置所使用. - - - This can happen if the active build configuration uses the wrong Qt version and/or tool chain for the active run configuration (for example, running in Symbian emulator requires building with the WINSCW tool chain). - 这种情况可能发生在配置使用了错误的Qt版本/工具链 -(比如,要想在Symbian模拟器中运行就需要用WINSCW工具链来进行构建). - - - Active run configuration - 激活运行配置 - - - Choose build configuration: - 选择构建配置: - - - No valid build configuration found. - 没有找到有效的构建。 - - - - ProjectExplorer::SessionManager - - Error while restoring session - 恢复会话时发生错误 - - - Could not restore session %1 - 无法恢复会话 %1 - - - Failed to restore project files - 还原项目文件失败 - - - Could not restore the following project files:<br><b>%1</b> - 无法还原以下项目文件:<br><b>%1</b> - - - Keep projects in Session - 在会话中保留项目 - - - Remove projects from Session - 从会话中移除项目 - - - Failed to open project - 打开项目失败 - - - Session - 会话 - - - Error while saving session - 保存会话时发生错误 - - - Could not save session to file %1 - 无法将会话保存到文件 %1 - - - Qt Creator - Qt Creator - - - Untitled - 未命名 - - - Session ('%1') - 会话 ('%1') - - - - QmakeProjectManager - - QMake Build Configuration: - qmake 构建配置: - - - qmake Build Configuration: - qmake 构建配置: - - - - QObject - - Pass - 通过 - - - Expected Failure - 预料中的失败 - - - Failure - 失败 - - - Expected Pass - 预料中的通过 - - - Warning - 警告 - - - Qt Warning - Qt 警告 - - - Qt Debug - Qt 调试 - - - Critical - 严重错误 - - - Fatal - 致命错误 - - - Skipped - 忽略 - - - Info - 信息 - - - Failed to create item of type %1 - 无法为项 创建类型 %1 - - - The Symbian SDK and the project sources must reside on the same drive. - 塞班SDK和项目源文件必须在同一驱动器上. - - - The Symbian SDK was not found for Qt version %1. - 在Qt版本%1中没有找到塞班SDK. - - - The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1. - 在塞班SDK中没有安装"Open C/C++ 插件"或者塞班SDK的路径被Qt版本%1误设置. - - - The Symbian toolchain does not handle special characters in a project path well. - 塞班的工具链不能在项目路径下处理特殊字符. - - - The Qt version is invalid: %1 - %1: Reason for being invalid - 当前Qt版本无效:%1 - - - The qmake command "%1" was not found or is not executable. - %1: Path to qmake executable. - qmake命令"%1"没有被找到或者它是不可执行的. - - - Ids have to be unique: - 标识符必须唯一: - - - Invalid Id: - 无效标识符: - - - -Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - -只允许数字字母和下划线。 -标识符必须以小写字母开头。 - - - - QTestLib::Internal::QTestOutputPane - - Test Results - 测试结果 - - - Result - 结果 - - - Message - 消息 - - - - QTestLib::Internal::QTestOutputWidget - - All Incidents - 所有事件 - - - Show Only: - 仅显示: - - - - QmlProjectManager::Internal::QmlNewProjectWizard - - QML Application - QML 应用 - - - Creates a QML application. - 创建一个QML 应用。 - - - Projects - 项目 - - - The project %1 could not be opened. - 无法打开项目 %1 。 - - - - QmlProjectManager::Internal::QmlNewProjectWizardDialog - - New QML Project - 新建 QML 项目 - - - This wizard generates a QML application project. - 本向导将创建一个QML 应用项目。 - - - - QmlProjectManager::Internal::QmlProjectWizard - - Import of existing QML directory - 导入现有的 QML文件夹 - - - Creates a QML project from an existing directory of QML files. - 使用现有目录中的 QML 文件创建一个 QML项目。 - - - Projects - 项目 - - - The project %1 could not be opened. - 无法打开项目 %1 。 - - - - QmlProjectManager::Internal::QmlProjectWizardDialog - - Import of QML Project - 导入QML 项目 - - - QML Project - QML项目 - - - Project name: - 项目名称: - - - Location: - 路径: - - - - QmlProjectManager::Internal::QmlRunConfiguration - - QML Viewer - QML 查看器 - - - <Current File> - <当前文件> - - - QML Viewer arguments: - QML 查看器参数: - - - Main QML File: - 主要 QML 文件: - - - Debugging Port: - 调试端口: - - - QML Runtime - QML运行环境 - - - - QrcEditor - - Add - 添加 - - - Remove - 删除 - - - Properties - 属性 - - - Prefix: - 前缀: - - - Language: - 语言: - - - Alias: - 别名: - - - - QmakeProjectManager - - Qt4 Console Application - Qt4 控制台应用 - - - Creates a Qt4 console application. - 创建一个Qt4 控制台应用。 - - - Qt Console Application - Qt 控制台应用 - - - Creates a project containing a single main.cpp file with a stub implementation. - -Preselects a desktop Qt for building the application if available. - 创建一个包含单一main.cpp文件及基本实现的项目。 - -预选一个可用的Qt桌面版本用于编译程序。 - - - Creates a Qt console application. - 创建一个Qt4 控制台应用。 - - - This wizard generates a Qt4 console application project. The application derives from QCoreApplication and does not provide a GUI. - 本向导创建一个Qt4控制台应用项目,该应用继承自QCoreApplication,没有图形界面。 - - - Qt Designer is not responding (%1). - Qt设计师无响应 (%1)。 - - - Unable to create server socket: %1 - 无法创建服务器套接字: %1 - - - Embedded Linux - 嵌入式 Linux - - - Empty Qt4 Project - 空的 Qt4 项目 - - - Empty Qt Project - 空的 Qt 项目 - - - Creates a qmake-based project without any files. This allows you to create an application without any default classes. - 创建一个基于qmake的空白项目,这样您可以创建一个不包含任何类的程序。 - - - Creates an empty Qt project. - 创建一个空的 Qt 项目. - - - This wizard generates an empty Qt4 project. Add files to it later on by using the other wizards. - 本向导将创建一个空的Qt4项目,稍后使用其他向导添加文件. - - - Unable to start "%1" - 无法启动"%1" - - - The application "%1" could not be found. - 找不到应用 "%1"。 - - - Class Information - 类信息 - - - Specify basic information about the classes for which you want to generate skeleton source code files. - 指定您要创建的源码文件的基本类信息。 - - - Qt4 Gui Application - Qt4 GUI 应用 - - - Creates a Qt4 Gui Application with one form. - 创建有一个界面的Qt4 Gui应用 - - - Qt Gui Application - Qt Gui 应用 - - - Creates a Qt application for the desktop. Includes a Qt Designer-based main window. - -Preselects a desktop Qt for building the application if available. - 创建一个桌面Qt应用,包含一个基于Qt设计师的主窗体。 - -预选一个可用的Qt桌面版本用于编译程序。 - - - Creates a Qt Gui Application with one form. - 创建有一个界面的Qt Gui应用. - - - The template file '%1' could not be opened for reading: %2 - 无法打开读取模板文件 '%1': %2 - - - This wizard generates a Qt4 GUI application project. The application derives by default from QApplication and includes an empty widget. - 本向导将创建一个Qt4 GUI应用项目,应用程序默认继承自QApplication并且包含一个空白的窗体。 - - - Details - 详情 - - - C++ Library - C++ 库 - - - Creates a C++ library based on qmake. This can be used to create:<ul><li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li><li>a shared or static C++ library for use with another project at linktime</li></ul> - 创建一个基于qmake的C++库。可以用于创建:<ul><li>用于<tt>QPluginLoader</tt>和运行时(插件)的共享C++库</li><li>在其他项目中链接时使用的共享库或静态C++库</li></ul> - - - Creates a C++ library based on qmake. This can be used to create:<ul><li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li><li>a shared or static C++ library for use with another project at linktime</li></ul>. - 创建一个基于qmake的C++库。可以用于创建:<ul><li>用于<tt>QPluginLoader</tt>和运行时(插件)的共享C++库</li><li>在其他项目中链接时使用的动态或静态C++库</li></ul>. - - - Creates a Qt based C++ Library. - 创建 一个基于Qt的 C++ 库. - - - Creates a C++ Library. - 创建一个C++ 库 - - - Shared library - 共享库 - - - Statically linked library - 静态链接库 - - - Qt 4 plugin - Qt 4 插件 - - - Shared Library - 共享库 - - - Statically Linked Library - 静态链接库 - - - Qt 4 Plugin - Qt 4 插件 - - - Type - 类型 - - - This wizard generates a C++ library project. - 本向导将创建一个C++ 库项目. - - - Symbian Specific - Symbian 特定 - - - Select required modules - 选择需要的模块 - - - Select Required Modules - 选择需要的模块 - - - Select the modules you want to include in your project. The recommended modules for this project are selected by default. - 请选择您的项目需要包含的模块,推荐的模块已经被默认选中。 - - - Remove - 删除 - - - Up - 上移 - - - Down - 下移 - - - Cut - 剪切 - - - Copy - 复制 - - - Paste - 粘贴 - - - Ctrl+X - Ctrl+X - - - Ctrl+C - Ctrl+C - - - Ctrl+V - Ctrl+V - - - Add Variable - 添加参数 - - - Add Scope - 添加范围 - - - Add Block - 添加段落 - - - <Global Scope> - <全局范围> - - - Change Item - 改变项目 - - - Change Variable Assignment - 改变参数的复制 - - - Change Variable Type - 改变参数的类型 - - - Change Scope Condition - 改变范围条件 - - - Change Expression - 改变表达式 - - - Move Item - 向上移动 - - - Remove Item - 删除项目 - - - Insert Item - 插入项目 - - - Import existing build settings - 导入现有的构建设置 - - - Qt Creator has found an already existing build in the source directory.<br><br><b>Qt Version:</b> %1<br><b>Build configuration:</b> %2<br><b>Additional QMake Arguments:</b>%3 - Qt Creator 在源文件夹中找到已经存在的构建.<br><br><b>Qt 版本:</b> %1<br><b>构建配置:</b> %2<br><b>额外 QMake 参数:</b>%3 - - - <b>Note:</b> Importing the settings will automatically add the Qt Version identified by <br><b>%1</b> to the list of Qt versions. - <b>注意:</b> 导入设置将会自动添加 被<br><b>%1</b>识别的Qt版本到 Qt 版本列表中. - - - Import existing build settings. - 导入现有的构建设置 - - - Project setup - 项目设置 - - - Project Setup - 项目设置 - - - Clear system environment - 清除系统环境变量 - - - Cannot open the file for edit with VCS. - 无法使用VCS打开用于编辑的文件. - - - Could not open the file for edit with VCS. - 无法使用VCS打开用于编辑的文件。 - - - Error while reading .pro file %1: %2 - 打开 .pro 文件 %1 出错: %2 - - - Could not open the file for edit with SCC. - 无法使用SCC打开用于编辑的文件. - - - Could not set permissions to writable. - 无法设置可写权限。 - - - Error while reading PRO file %1: %2 - 打开PRO文件%1出错: %2 - - - Error while changing pro file %1. - 修改pro文件 %1 时发生错误 - - - Configuration Name: - 配置名称: - - - Qt Version: - Qt 版本: - - - This Qt-Version is invalid. - 当前Qt版本无效. - - - Build Directory: - 构建目录: - - - <a href="import">Import existing build</a> - <a href="import">导入现有构建</a> - - - Shadow Build Directory - shadow build目录 - - - Default Qt Version (%1) - 默认 Qt 版本 (%1) - - - No Qt Version set - 没有设置Qt 版本 - - - using <font color="#ff0000">invalid</font> Qt Version: <b>%1</b><br>%2 - 使用 <font color="#ff0000">无效</font> Qt 版本: <b>%1</b><br>%2 - - - No Qt Version found. - 没有找到Qt 版本. - - - using Qt version: <b>%1</b><br>with tool chain <b>%2</b><br>building in <b>%3</b> - 使用 Qt 版本: <b>%1</b><br>和工具链 <b>%2</b><br>在目录 <b>%3</b>构建 - - - <Invalid tool chain> - <无效的工具链> - - - General - 概要 - - - Invalid Qt version - 无效的 Qt 版本 - - - A build for a different project exists in %1, which will be overwritten. - %1 build directory - 一个不同项目的构建存在于%1, 这将会被覆盖。 - - - An build for a different project exists in %1, which will be overwritten. - %1 build directory - 在%1 存在这不同项目的构建, 这些将被覆盖. - - - building in <b>%1</b> - 正在<b>%1</b>中进行构建 - - - This target cannot build this project since it does not define a Qt version. - 这个目标无法构建该项目,因为没有定义Qt版本。 - - - The Qt version %1 does not support shadow builds, building might fail. - Qt版本 %1 不支持shadow build,构建可能会失败。 - - - Error: - 错误: - - - Warning: - 警告: - - - <No tool chain selected> - <没有选择工具链> - - - Building in subdirectories of the source directory is not supported by qmake. - qmake不支持在源文件路径的子目录下构建. - - - An incompatible build exists in %1, which will be overwritten. - %1 build directory - 在 %1处有不兼容的构建, 它将被覆盖。 - - - Manage - 管理 - - - Tool Chain: - 工具链: - - - problemLabel - 问题标签 - - - Configuration name: - 配置名称: - - - Qt version: - Qt 版本: - - - This Qt version is invalid. - 当前Qt版本无效. - - - Tool chain: - 工具链: - - - Shadow build: - Shadow build: - - - Build directory: - 构建目录: - - - Run qmake - 执行qmake - - - Build - 构建 - - - Build "%1" - 构建 "%1" - - - Rebuild - 重新构建 - - - Clean - 清除 - - - Build Subproject - 构建子项目 - - - Build Subproject "%1" - 构建子项目 "%1" - - - Rebuild Subproject - 重新构建子项目 - - - Rebuild Subproject "%1" - 重新构建子项目 "%1" - - - Clean Subproject - 清理子项目 - - - Clean Subproject "%1" - 清理子项目 "%1" - - - Build File - 构建文件 - - - Build File "%1" - 构建文件"%1" - - - Ctrl+Alt+B - Ctrl+Alt+B - - - Jump to File Under Cursor - 跳转到光标下的文件 - - - Add Library... - 添加库... - - - Run qmake in %1 - 在%1执行qmake - - - Build in %1 - 在%1构建 - - - Qt4RunConfiguration - Qt4 运行配置 - - - The .pro file '%1' is currently being parsed. - .pro文件 '%1' 正在被解析。 - - - Clean Environment - 清理时的环境变量 - - - System Environment - 系统环境变量 - - - Build Environment - 构建时的环境变量 - - - Qt4 Run Configuration - Qt4 运行配置 - - - Qt4 RunConfiguration - Qt4 运行配置 - - - Running executable: <b>%1</b> %2 (in terminal) - 正在执行程序: <b>%1</b> %2 (在控制台) - - - Running executable: <b>%1</b> %2 - 正在执行程序: <b>%1</b> %2 - - - Arguments: - 参数: - - - Run in Terminal - 在终端中运行 - - - Select Working Directory - 选择工作目录 - - - Working directory: - 工作目录: - - - Run in terminal - 在终端中运行 - - - Base environment for this run configuration: - 运行设置的基础环境: - - - Debugger: - 调试器: - - - Run Environment - 运行时的环境变量 - - - Base environment for this runconfiguration: - 运行配置的基本环境变量: - - - Name: - 名称: - - - Executable: - 执行档: - - - Select the working directory - 选择工作目录 - - - Reset to default - 重置为默认 - - - Working Directory: - 工作目录: - - - Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) - 使用开发框架的调试版 (DYLD_IMAGE_SUFFIX=_debug) - - - <specify a name> - <指定一个名字> - - - <specify a qmake location> - <指定qmake的位置> - - - Select QMake Executable - 选择QMake 的执行档 - - - Select qmake Executable - 选择qmake 的执行档 - - - Select the MinGW Directory - 选择MinGW 的目录 - - - Select Carbide Install Directory - 选择Carbide 的安装目录 - - - Select S60 SDK Root - 选择S60 SDK 的根目录 - - - Select the CSL ARM Toolchain (GCCE) Directory - 选择CSL ARM 工具链 (GCCE) 的目录 - - - Auto-detected - 自动检测 - - - Manual - 手动设置 - - - Debugging Helper Build Log for '%1' - 调试助手为 '%1' 构建日志 - - - Helpers: None available - 助手:没有可用 - - - Helpers: %1. - %1 is list of tool names. - 助手: %1. - - - <i>Not yet built.</i> - <i>还没被构建.</i> - - - <i>Not needed.</i> - <i>不需要.</i> - - - <i>Cannot be compiled.</i> - <i>无法编译.</i> - - - Binary not found - 无法找到二进制文件 - - - <html><body><table><tr><td colspan="2"><b>GDB debugging helpers</b></td></tr><tr><td>File:</td><td><pre>%1</pre></td></tr><tr><td>Last&nbsp;modified:</td><td>%2</td></tr><tr><td>Size:</td><td>%3 Bytes</td></tr><tr><td colspan="2"><b>QML type dumper</b></td></tr><tr><td>File:</td><td><pre>%4</pre></td></tr><tr><td>Last&nbsp;modified:</td><td>%5</td></tr><tr><td>Size:</td><td>%6 Bytes</td></tr><tr><td colspan="2"><b>QML observer</b></td></tr><tr><td>File:</td><td><pre>%7</pre></td></tr><tr><td>Last&nbsp;modified:</td><td>%8</td></tr><tr><td>Size:</td><td>%9 Bytes</td></tr></table></body></html> - Tooltip showing the debugging helper library file. - <html><body><table><tr><td colspan="2"><b>GDB 调试助手</b></td></tr><tr><td>文件:</td><td><pre>%1</pre></td></tr><tr><td>最后&nbsp;修改:</td><td>%2</td></tr><tr><td>大小:</td><td>%3 字节</td></tr><tr><td colspan="2"><b>QML 类型 dumper</b></td></tr><tr><td>文件:</td><td><pre>%4</pre></td></tr><tr><td>最后&nbsp;修改:</td><td>%5</td></tr><tr><td>大小:</td><td>%6 字节</td></tr><tr><td colspan="2"><b>QML 监视器</b></td></tr><tr><td>文件:</td><td><pre>%7</pre></td></tr><tr><td>最后&nbsp;修改:</td><td>%8</td></tr><tr><td>大小:</td><td>%9 字节</td></tr></table></body></html> - - - <html><body><table><tr><td>File:</td><td><pre>%1</pre></td></tr><tr><td>Last&nbsp;modified:</td><td>%2</td></tr><tr><td>Size:</td><td>%3 Bytes</td></tr></table></body></html> - Tooltip showing the debugging helper library file. - <html><body><table><tr><td>文件:</td><td><pre>%1</pre></td></tr><tr><td>上次&nbsp;修改时间:</td><td>%2</td></tr><tr><td>大小:</td><td>%3 字节</td></tr></table></body></html> - - - This Qt Version has a unknown toolchain. - 此Qt 版本具有一个未知的工具链。 - - - Desktop - Qt Version is meant for the desktop - 桌面 - - - Symbian - Qt Version is meant for Symbian - 塞班 - - - Qt Simulator - Qt Version is meant for Qt Simulator - Qt模拟器 - - - unkown - No idea what this Qt Version is meant for! - 未知 - - - Found Qt version %1, using mkspec %2 (%3) - 找到Qt 版本 %1 使用mkspec %2 (%3) - - - The Qt Version identified by %1 is not installed. Run make install - %1识别的Qt版本没有被安装 。请运行 make install - - - %1 does not specify a valid Qt installation - %1 没有指定一个有效的Qt安装 - - - Found Qt version %1, using mkspec %2 - 找到Qt 版本 %1 使用mkspec %2 - - - Qt versions - Qt 版本 - - - Name - 名称 - - - Debugging Helper - 调试助手 - - - + - + - - - - - - - - - Version Name: - 版本名称: - - - MinGW Directory: - MinGW 目录: - - - MSVC Version: - MSVC 版本: - - - <!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:'MS Shell Dlg 2'; font-size:8.25pt; 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;"><span style=" color:#ff0000;">Unable to detect MSVC version.</span></p></body></html> - <!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:'MS Shell Dlg 2'; font-size:8.25pt; 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;"><span style=" color:#ff0000;">检测不到MSVC的版本.</span></p></body></html> - - - Debugging Helper: - 调试助手: - - - Show &Log - 显示日志(&L) - - - &Rebuild - 重新构建(&R) - - - Default Qt Version: - 默认 Qt 版本: - - - QMake Location - QMake 路径 - - - QMake Location: - QMake 路径: - - - S60 SDK: - S60 SDK: - - - Carbide Directory: - Carbide 目录: - - - CSL/GCCE Directory: - CSL/GCCE 目录: - - - qmake Location - qmake 路径 - - - qmake Location: - qmake 路径: - - - Toolchain: - 工具链: - - - Version name: - 版本名称: - - - qmake location: - qmake 路径: - - - MinGW directory: - MinGW 目录: - - - CSL/GCCE directory: - CSL/GCCE 目录: - - - Carbide directory: - Carbide 目录: - - - Debugging helper: - 调试助手: - - - Unable to detect MSVC version. - 无法探测 MSVC 版本。 - - - Debugging helpers: - 调试助手: - - - Add - 添加 - - - The project %1 could not be opened. - 无法打开项目 %1 - - - Edit Variable - 编辑变量 - - - Variable Name: - 变量名称: - - - Assignment Operator: - 赋值运算符: - - - Variable: - 变量: - - - Append (+=) - 添加 (+=) - - - Remove (-=) - 删除(-=) - - - Replace (~=) - 覆盖(~=) - - - Set (=) - 设置(=) - - - Select Item - 选择项目 - - - Edit Item - 编辑项目 - - - Select Items - 选择项目 - - - Edit Items - 编辑项目 - - - Edit Values - 编辑数值 - - - Edit %1 - 编辑%1 - - - Edit Scope - 编辑范围 - - - Edit Advanced Expression - 编辑高级表达式 - - - Make - Qt4 MakeStep display name. - Make - - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Qt Creator 需要设置一个编译器来构建。在构建套件选项里设置一个编译器。 - - - Qt Creator needs a tool chain set up to build. Configure a tool chain in Project mode. - Qt Creator 需要设置一个工具链来构建. 在项目模式里设置一个工具链. - - - Cannot find Makefile. Check your build settings. - 无法找到 Makefile. 检查您的构建设置。 - - - Configuration is faulty. Check the Issues view for details. - 配置错误,请检查"问题"视图获得详细信息。 - - - Configuration is faulty. Check the Build Issues view for details. - 配置错误. 请点击构建视图查看详细信息. - - - Qt Creator needs a tool chain set up to build. Please configure a tool chain in Project mode. - Qt Creator 需要一个工具链来构建. 请在项目模式下设置工具链. - - - Makefile not found. Please check your build settings - 未找到Makefile. 请检查您的构建设置 - - - Configuration is faulty, please check the Build Issues view for details. - 配置有误,请检查“构建问题”视图来获得更多信息. - - - Could not find make command: %1 in the build environment - 无法在环境变量中找到make命令: %1 - - - <font color="#ff0000">Could not find make command: %1 in the build environment</font> - <font color="#ff0000">在构建环境中找不到 make 命令: %1 </font> - - - Override %1: - 覆盖 %1: - - - Make: - Make: - - - <b>Make:</b> %1 - <b>Make:</b> %1 - - - <b>Make:</b> No Qt4 build configuration. - <b>Make:</b> 没有Qt4 的构建配置。 - - - <b>Make:</b> %1 not found in the environment. - <b>Make:</b> 在环境中找不到%1 。 - - - <b>Make Step:</b> %1 not found in the environment. - <b>Make 步骤:</b> %1 无法在环境变量中找到. - - - <b>Make:</b> %1 %2 in %3 - <b>Make:</b> %1 %2 在目录 %3 - - - Make - Make - - - -<font color="#ff0000"><b>No valid Qt version set. Set one in Preferences </b></font> - - <font color="#ff0000"><b>没有设置有效的Qt版本. 请在首选项中设置一个 </b></font> - - - - -<font color="#ff0000"><b>No valid Qt version set. Set one in Tools/Options </b></font> - - <font color="#ff0000"><b>没有设置有效的Qt版本t. 请在工具/选项中设置 </b></font> - - - - <font color="#0000ff">Configuration unchanged, skipping QMake step.</font> - <font color="#0000ff">配置没有改变, 跳过 QMake 步骤.</font> - - - qmake - QMakeStep default display name - qmake - - - Configuration is faulty, please check the Issues view for details. - 配置有误,请检查“问题”视图来获得更多信息。 - - - Configuration unchanged, skipping qmake step. - 配置没有改变, 跳过 qmake 步骤。 - - - No Qt version. - 没有设置Qt 版本。 - - - Invalid Qt version. - 无效的 Qt 版本。 - - - Requires Qt 4.7.1 or newer. - 需要Qt 4.7.1 或更新的版本。 - - - Library not available. <a href='compile'>Compile...</a> - 库不可用. <a href='compile'>编译...</a> - - - <font color="#0000ff">Configuration is faulty, please check the Build Issues view for details.</font> - <font color="#0000ff">配置有缺陷, 请检查构建输出来查看详情.</font> - - - <font color="#ff0000">Qt version <b>%1</b> is invalid. Set a valid Qt Version in Preferences </font> - - <font color="#ff0000">Qt 版本 <b>%1</b> 无效,请在选项中设置一个有效的Qt版本 </font> - - - <font color="#ff0000">Qt version <b>%1</b> is invalid. Set valid Qt Version in Tools/Options </b></font> - - <font color="#ff0000">Qt 版本 <b>%1</b> 无效,请在 工具/选项 中设置一个有效的Qt版本 </font> - - - The Symbian SDK and the project sources must reside on the same drive. - 塞班SDK和项目源文件必须在同一驱动器上 - - - The Symbian SDK was not found for Qt version %1. - 在Qt版本%1中没有找到塞班SDK. - - - The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1. - 在塞班SDK中没有安装"Open C/C++ 插件"或者塞班SDK的路径被Qt版本%1误设置 - - - The Symbian toolchain does not handle special characters in a project path well. - 塞班的工具链不能在项目路径下处理特殊字符 - - - <font color="#0000ff">Configuration unchanged, skipping qmake step.</font> - <font color="#0000ff">配置未改变,跳过 qmake 步骤.</font> - - - <b>QMake:</b> No Qt version set. QMake can not be run. - <b>QMake:</b> 没有设置 Qt 版本. QMake 无法运行. - - - <b>QMake:</b> %1 %2 - <b>QMake:</b> %1 %2 - - - No valid Qt version set. - 没有设置有效的Qt版本 - - - QML Debugging - QML 调试 - - - The option will only take effect if the project is recompiled. Do you want to recompile now? - 需要重新编译项目才能使选项生效。您想现在就重新编译吗? - - - Building helpers - 构建助手 - - - <b>qmake:</b> No Qt version set. Cannot run qmake. - <b>qmake:</b> 没有设置Qt版本,无法运行qmake。 - - - <b>qmake:</b> %1 %2 - <b>qmake:</b> %1 %2 - - - <b>Warning:</b> The tool chain suggested "%1" as mkspec. - <b>警告:</b> 工具链建议"%1" 作为 mkspec. - - - Enable QML debugging: - 打开QML调试: - - - Might make your application vulnerable. Only use in a safe environment. - 可能导致应用程序易受攻击,请仅在安全环境中使用。 - - - <No Qt version> - <没有设置Qt 版本> - - - Might make the application vulnerable. Use only in a safe environment. - 可能导致应用程序不稳定,仅可在安全模式下运行. - - - Loading project %1 ... - 载入项目 %1 ... - - - Full path to the host bin directory of the current project's Qt version. - 当前项目使用的Qt 版本的主机bin目录的完整路径。 - - - Full path to the target bin directory of the current project's Qt version. You probably want %1 instead. - 当前项目使用的Qt 版本的目标bin目录的完整路径。您很可能需要的是 %1。 - - - Update of Generated Files - 更新生成的文件 - - - The following files are either outdated or have been modified:<br><br>%1<br><br>Do you want Qt Creator to update the files? Any changes will be lost. - 以下文件不是过期就是被修改过了:<br><br>%1<br><br>您希望Qt Creator更新这些文件吗?您将丢失所有的修改。 - - - Failed opening project '%1': Project file does not exist - 打开项目 '%1'失败: 项目文件不存在 - - - QMake - QMake - - - Failed opening project - 打开项目失败 - - - Failed opening project '%1': Project already open - 打开项目 '%1'失败: 项目已经被打开 - - - Opening %1 ... - 正在打开%1 ... - - - Done opening project - 完成打开项目 - - - MinGW from %1 - MinGW 从%1 - - - <not found> - <未找到> - - - Qt in PATH - PATH中的 Qt - - - Source: - 源: - - - mkspec: - mkspec: - - - qmake: - qmake: - - - Default: - 默认: - - - Compiler: - 编译器: - - - Version: - 版本: - - - - QApplication - - The Qt Version has no toolchain. - 此Qt 版本没有工具链。 - - - Build Settings - 构建设置 - - - Dependencies - 依赖关系 - - - Editor Settings - 编辑器设置 - - - Run Settings - 运行设置 - - - EditorManager - Next Open Document in History - 编辑管理器 - - - EditorManager - Previous Open Document in History - 编辑管理器 - - - Ninja (%1) - Ninja (%1) - - - NMake Generator (%1) - NMake 创建器(%1) - - - MinGW Generator (%1) - MinGW 创建器 (%1) - - - Unix Generator (%1) - Unix 创建器 (%1) - - - - QtModulesInfo - - QtCore Module - QtCore 模块 - - - Core non-GUI classes used by other modules - 其他模块使用的非图形界面核心类 - - - QtGui Module - QtGui 模块 - - - Graphical user interface components - 图形化用户界面组件 - - - QtNetwork Module - QtNetwork 模块 - - - Classes for network programming - 网络编程类 - - - QtOpenGL Module - QtOpenGL 模块 - - - OpenGL support classes - OpenGL 支持类 - - - QtSql Module - QtSql 模块 - - - Classes for database integration using SQL - 使用SQL的数据库集成类 - - - QtScript Module - QtScript 模块 - - - Classes for evaluating Qt Scripts - Qt Scripts类 - - - QtScriptTools Module - QtScriptTools 模块 - - - Additional Qt Script components - Qt Script额外组件 - - - QtSvg Module - QtSvg 模块 - - - Classes for displaying the contents of SVG files - 显示SVG文件内容的类 - - - QtWebKit Module - QtWebKit 模块 - - - Classes for displaying and editing Web content - 显示和编辑网络内容的类 - - - QtXml Module - QtXml 模块 - - - Classes for handling XML - 处理XML的类 - - - QtXmlPatterns Module - QtXmlPatterns模块 - - - An XQuery/XPath engine for XML and custom data models - XML和自定义数据模型的XQuery/XPath引擎 - - - Phonon Module - Phonon模块 - - - Multimedia framework classes - 多媒体框架类 - - - QtMultimedia Module - QtMultimedia模块 - - - Classes for low-level multimedia functionality - 提供底层多媒体功能的类 - - - Qt3Support Module - Qt3Support模块 - - - Classes that ease porting from Qt 3 to Qt 4 - 帮助Qt 3到Qt 4移植的类 - - - QtTest Module - QtTest模块 - - - Tool classes for unit testing - 用于单元测试的工具类 - - - QtDBus Module - QtDBus模块 - - - Classes for Inter-Process Communication using the D-Bus - 用D-Bus进行进程间通讯的类 - - - - QtScriptEditor::Internal::QtScriptEditorPlugin - - Creates a Qt Script file. - 创建一个Qt Script文件 - - - Qt Script file - Qt Script文件 - - - Qt - Qt - - - - QtScriptEditor::Internal::ScriptEditor - - <Select Symbol> - <选择符号> - - - - Locator::ILocatorFilter - - Filter Configuration - 过滤器配置 - - - Limit to prefix - 前缀名限制 - - - Prefix: - 前缀名: - - - - Locator::Internal::DirectoryFilter - - Generic Directory Filter - 标准目录过滤器 - - - Filter Configuration - 过滤器配置 - - - Select Directory - 选择目录 - - - %1 filter update: %n files - - %1 过滤器更新: %n 个文件 - - - - Choose a directory to add - 选择一个要添加的目录 - - - %1 filter update: 0 files - %1 过滤器更新: 0 个文件 - - - %1 filter update: canceled - %1 过滤器更新: 已取消 - - - - Locator::Internal::DirectoryFilterOptions - - Name: - 名称: - - - File Types: - 文件类型: - - - Specify file name filters, separated by comma. Filters may contain wildcards. - 指定文件名称过滤器, 用逗号分隔。过滤器可以包含通配符。 - - - Prefix: - 前缀: - - - Limit to prefix - 前缀限制 - - - Add... - 添加... - - - Edit... - 编辑... - - - Remove - 删除 - - - Directories: - 目录: - - - Specify a short word/abbreviation that can be used to restrict completions to files from this directory tree. -To do this, you type this shortcut and a space in the Locator entry field, and then the word to search for. - 指定用于限定此目录树的文件的关键词或者缩写。 -您可以在“定位器”的输入位置键入这个缩写和一个空格,然后输入搜索的词。 - - - File types: - 文件类型: - - - Add - 添加 - - - Edit - 编辑 - - - - Locator::Internal::FileSystemFilter - - Files in file system - 在文件系统中的文件 - - - Files in File System - 文件系统中的文件 - - - - Locator::Internal::FileSystemFilterOptions - - Filter configuration - 过滤器设置 - - - Prefix: - 前缀: - - - Limit to prefix - 限制前缀 - - - Include hidden files - 包括隐藏文件 - - - Filter: - 过滤器: - - - Add Filter Configuration - 添加过滤器配置 - - - - Locator::Internal::OpenDocumentsFilter - - Open documents - 打开的文档 - - - Open Documents - 打开文档 - - - - Locator::Internal::LocatorFiltersFilter - - Available filters - 可使用的过滤器 - - - - Locator::Internal::LocatorPlugin - - Ctrl+K - Ctrl+K - - - Type to locate - 输入以定位 - - - Type to locate (%1) - 输入以定位(%1) - - - Indexing - 索引中 - - - - Locator::Internal::LocatorWidget - - Refresh - 刷新 - - - Configure... - 配置... - - - Locate... - 定位... - - - Type to locate - 输入以定位 - - - Options - 选项 - - - <type here> - <在此输入> - - - - Locator::Internal::SettingsPage - - %1 (Prefix: %2) - %1 (前缀: %2) - - - %1 (prefix: %2) - %1 (前缀: %2) - - - - Locator::Internal::SettingsWidget - - Configure Filters - 配置过滤器 - - - Add - 添加 - - - Remove - 删除 - - - Edit - 编辑 - - - Refresh Interval: - 更新间隔: - - - min - - - - Refresh interval: - 更新间隔: - - - - RegExp::Internal::RegExpWindow - - &Pattern: - 模式(&P): - - - &Escaped Pattern: - 转义模式(&E): - - - &Pattern Syntax: - 模式语法(&P): - - - &Text: - 文本(&T): - - - Case &Sensitive - 区分大小写(&S) - - - &Minimal - 最小化(&M) - - - Index of Match: - 匹配项的索引: - - - Matched Length: - 匹配长度: - - - Regular expression v1 - 正则表达式 v1 - - - Regular expression v2 - 正则表达式 v2 - - - Wildcard - 通配符 - - - Fixed string - 固定字符串 - - - &Escaped pattern: - 转义模式(&E): - - - &Pattern syntax: - 模式语法(&P): - - - Case &sensitive - 区分大小写(&S) - - - Index of match: - 匹配项的索引: - - - Matched length: - 匹配长度: - - - Regular Expression v1 - 正则表达式 v1 - - - Regular Expression v2 - 正则表达式 v2 - - - Fixed String - 固定字符串 - - - Capture %1: - Capture %1: - - - Match: - 匹配: - - - Regular Expression - 正则表达式 - - - Enter Pattern from Code... - 从代码中输入模式... - - - Clear Patterns - 清除模式 - - - Clear Text - 清除文字 - - - Enter Pattern from Code - 从代码中输入模式 - - - Enter pattern from code... - 从代码中输入模式... - - - Clear patterns - 清除模式 - - - Clear texts - 清除文字 - - - Enter pattern from code - 从代码中输入模式 - - - Pattern - 模式 - - - - ResourceEditor - - Creates a Qt Resource file (.qrc). - 创建一个Qt 资源文件(.qrc). - - - Qt Resource file - Qt 资源文件 - - - Qt - Qt - - - Creates a Qt Resource file (.qrc) that you can add to a Qt C++ project. - 创建可以添加到Qt C++项目中的Qt资源文件。 - - - Creates a Qt Resource file (.qrc) that you can add to a Qt Widget Project. - 创建一个可以添加到Qt C++项目中的Qt资源文件(.qrc)。 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Recheck existence of referenced files - 再次检查访问的文件是否存在 - - - - ResourceEditor - - Rename File... - 重命名文件... - - - Copy Resource Path to Clipboard - 复制资源路径到剪贴板 - - - untitled - 未命名 - - - - SaveItemsDialog - - Save Changes - 保存修改 - - - The following files have unsaved changes: - 以下文件有未保存的修改: - - - Automatically save all files before building - 构建前自动保存所有文件 - - - - SettingsDialog - - Options - 选项 - - - 0 - 0 - - - - SharedTools::QrcEditor - - Add Files - 添加文件 - - - Add Prefix - 添加前缀 - - - Choose Copy Location - 选择复制位置 - - - Overwriting Failed - 覆盖失败 - - - Copying Failed - 复制失败 - - - Invalid file - 无效文件 - - - Copy - 复制 - - - Skip - 跳过 - - - Abort - 终止 - - - The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file. - 文件 %1 没有在资源文件的子目录中,继续会产生无效的源文件. - - - Invalid file location - 无效的文件路径 - - - The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location. - 文件 %1 没有在资源文件的子目录中,您可以选择复制此文件到一个有效的路径. - - - Choose copy location - 选择复制位置 - - - Overwrite failed - 覆盖失败 - - - Could not overwrite file %1. - 无法覆盖文件 %1 . - - - Copying failed - 复制失败 - - - Could not copy the file to %1. - 无法复制文件到 %1 . - - - - SharedTools::ResourceView - - Add Files... - 添加文件... - - - Change Alias... - 改变别名... - - - Add Prefix... - 添加前缀... - - - Change Prefix... - 改变前缀... - - - Change Language... - 改变语言... - - - Remove Item - 删除项 - - - Open File - 打开文件 - - - Input prefix: - 输入前缀: - - - Open file - 打开文件 - - - All files (*) - 所有文件 (*) - - - Change Prefix - 改变前缀 - - - Input Prefix: - 输入前缀: - - - Change Language - 改变语言 - - - Language: - 语言: - - - Change File Alias - 改变文件别名 - - - Alias: - 别名: - - - - ShortcutSettings - - Keyboard Shortcuts - 快捷键 - - - Filter: - 过滤器: - - - Command - 命令 - - - Label - 标签 - - - Shortcut - 快捷键 - - - Defaults - 默认 - - - Import... - 导入... - - - Export... - 输出... - - - Key Sequence - 按键顺序 - - - Shortcut: - 快捷键: - - - Reset - 重置 - - - Remove - 删除 - - - - ShowBuildLog - - Debugging Helper Build Log - 调试助手构建日志 - - - - Snippets::Internal::SnippetsPlugin - - Snippets - 片段 - - - - Snippets::Internal::SnippetsWindow - - Snippets - 片段 - - - - StartExternalDialog - - Executable: - 执行档: - - - Arguments: - 参数: - - - Start Debugger - 启动调试器 - - - Break at 'main': - 在'main'函数断点: - - - Working directory: - 工作目录: - - - &Executable: - 执行档(&E): - - - &Arguments: - 参数(&A): - - - &Working directory: - 工作目录(&W): - - - Break at '&main': - 在'main'函数断点(&M): - - - &Tool chain: - 工具链(&T): - - - Run in &terminal: - 在终端中运行(&T): - - - - StartRemoteDialog - - Start Debugger - 启动调试器 - - - Host and port: - 主机和端口号: - - - Architecture: - 体系结构: - - - Use server start script: - 使用服务器启动脚本: - - - Server start script: - 服务器启动脚本: - - - Debugger: - 调试器: - - - Local executable: - 本地执行档: - - - Sysroot: - 系统根目录: - - - &Debugger: - 调试器(&D): - - - Local &executable: - 本地执行档(&E): - - - &Host and port: - 主机和端口号(&H): - - - &Architecture: - 体系结构(&A): - - - &GNU target - &GNU 目标 - - - Sys&root: - 系统根目录(&R): - - - &Use server start script: - 使用服务器启动脚本(&U): - - - Server st&art script: - 服务器启动脚本(&A): - - - &GNU target: - &GNU 目标: - - - &Server start script: - 服务器启动脚本(&S): - - - Override s&tart script: - 覆盖启动脚本(&S): - - - Location of debugging information: - 调试信息位置: - - - Override host GDB s&tart script: - 覆盖主机GDB启动脚本(&T): - - - - Subversion::Internal::SettingsPage - - Subversion Command: - Subversion 命令: - - - Authentication - 验证信息 - - - User name: - 用户名: - - - Password: - 密码: - - - Subversion - Subversion - - - Configuration - 配置 - - - Miscellaneous - 其他 - - - Prompt on submit - 提交时弹出提示 - - - Timeout: - 超时时间: - - - s - - - - Ignore whitespace changes in annotation - 忽略注释中的空格变化 - - - Log count: - 日志数: - - - Subversion command: - Subversion 命令: - - - Username: - 用户名: - - - - Subversion::Internal::SettingsPageWidget - - Subversion Command - Subversion 命令 - - - - Subversion::Internal::SubversionPlugin - - &Subversion - &Subversion - - - Add - 添加 - - - Add "%1" - 添加"%1" - - - Alt+S,Alt+A - Alt+S,Alt+A - - - Delete - 删除 - - - Delete "%1" - 删除"%1" - - - Revert - 复原 - - - Revert "%1" - 复原"%1" - - - Diff Project - Diff 项目 - - - Diff Project "%1" - Diff 项目 "%1" - - - Diff Current File - Diff 当前文件 - - - Diff "%1" - Diff "%1" - - - Alt+S,Alt+D - Alt+S,Alt+D - - - Commit All Files - 提交所有文件 - - - Commit Current File - 提交当前文件 - - - Commit "%1" - 提交 "%1" - - - Alt+S,Alt+C - Alt+S,Alt+C - - - Filelog Current File - Filelog当前文件 - - - Filelog "%1" - Filelog "%1" - - - Annotate Current File - Annotate 当前文件 - - - Annotate "%1" - Annotate "%1" - - - Describe... - 说明... - - - Project Status - 项目状态 - - - Meta+S,Meta+D - Meta+S,Meta+D - - - Meta+S,Meta+A - Meta+S,Meta+A - - - Meta+S,Meta+C - Meta+S,Meta+C - - - Delete... - 删除... - - - Delete "%1"... - 删除 "%1"... - - - Revert... - 还原... - - - Revert "%1"... - 还原 "%1"... - - - Status of Project "%1" - 项目 "%1" 的状态 - - - Log Project - Log 项目 - - - Log Project "%1" - Log 项目 "%1" - - - Update Project - 更新项目 - - - Update Project "%1" - 更新项目 "%1" - - - Repository Log - 仓库日志 - - - Revert Repository... - 还原代码仓库... - - - Commit - 提交 - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Closing Subversion Editor - 关闭Subversion 编辑器 - - - Do you want to commit the change? - 您想要提交此修改吗? - - - The commit message check failed. Do you want to commit the change? - 提交信息检查失败,您想要提交修改吗? - - - Revert repository - 还原代码仓库 - - - Revert failed: %1 - 还原失败: %1 - - - The file has been changed. Do you want to revert it? - 文件被改变,您想还原它吗? - - - Executing: %1 %2 - - 执行中: %1 %2 - - - - Another commit is currently being executed. - 另一个提交正在被执行。 - - - Commit Project - 提交项目 - - - Commit Project "%1" - 提交项目 "%1" - - - Diff Repository - Diff 代码仓库 - - - Repository Status - 仓库状态 - - - Log Repository - Log 代码仓库 - - - Update Repository - 更新代码仓库 - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Revert all pending changes to the repository? - 还原所有未完成的更改到仓库? - - - There are no modified files. - 没有被更改的文件。 - - - Cannot create temporary file: %1 - 无法创建临时文件: %1 - - - Describe - 说明 - - - Revision number: - 修订版本编号: - - - Executing in %1: %2 %3 - - 在 %1 中执行 : %2 %3 - - - No subversion executable specified! - 没有指定subversion执行档! - - - The process terminated with exit code %1. - 进程终止,退出代码: %1 . - - - The process terminated abnormally. - 进程异常终止. - - - Could not start subversion '%1'. Please check your settings in the preferences. - 无法启动 subversion '%1'. 请检查首选项中的设置. - - - Subversion did not respond within timeout limit (%1 ms). - Subversion 在超时限制(%1 毫秒)内未响应. - - - - Subversion::Internal::SubversionSubmitEditor - - Subversion Submit - Subversion提交 - - - - TextEditor::BaseFileFind - - Search - 查找 - - - %1 found - 找到 %1 - - - List of comma separated wildcard filters - 以逗号分隔的通配符过滤器列表 - - - Use regular e&xpressions - 使用正则表达式(&X) - - - Use Regular E&xpressions - 使用正则表达式(&X) - - - - TextEditor::BaseTextDocument - - untitled - 未命名 - - - Out of memory - 内存不足 - - - Opening file - 打开文件 - - - <em>Binary data</em> - <em>二进制数据</em> - - - - TextEditor::BaseTextEditor - - Print Document - 打印文档 - - - <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. - <b>错误:</b> 无法用 "%2"-编码解码 "%1" . 无法编辑. - - - Select Encoding - 选择编码 - - - The text is too large to be displayed (%1 MB). - 文本过大,无法显示(%1 MB)。 - - - Line: %1, Col: %2 - 行号: %1, 列号: %2 - - - Line: 9999, Col: 999 - 行号: %1, 列号: 999 - - - - TextEditor::BaseTextEditorEditable - - Line: %1, Col: %2 - 行号: %1, 列号: %2 - - - Line: %1, Col: 999 - 行号: %1, 列号: 999 - - - - TextEditor::BehaviorSettingsPage - - Storage - 保存 - - - Removes trailing whitespace on saving. - 保存时去除尾部空白. - - - &Clean whitespace - 清除空白(&C) - - - Clean whitespace in entire document instead of only for changed parts. - 清除整个文档的空白代,不只清除改变部分的空白. - - - In entire &document - 整个文档适用(&D) - - - Correct leading whitespace according to tab settings. - 根据tab设置正确留白. - - - Clean indentation - 清空缩进 - - - &Ensure newline at end of file - 确保文件结尾有新的一行(&E) - - - Tabs and Indentation - 制表符和缩进 - - - Ta&b size: - 制表符尺寸(&B): - - - &Indent size: - 缩进尺寸(&i): - - - Backspace will go back one indentation level instead of one space. - 退格键将退回一个缩进而不是一个空白. - - - &Backspace follows indentation - 退格键跟随缩进(&B) - - - Insert &spaces instead of tabs - 插入空格代替制表符(&S) - - - Enable automatic &indentation - 开启自动缩进(&i) - - - Never - 从不 - - - Always - 总是 - - - In leading white space - 仅用于行首空白 - - - Mouse - 鼠标 - - - Enable &mouse navigation - 开启鼠标导航(&M) - - - Enable scroll &wheel zooming - 开启鼠标滚轮缩放(&W) - - - Automatically determine based on the nearest indented line (previous line preferred over next line) - 按最近的缩进行自动决定 (前一行优先于后一行) - - - Based on the surrounding lines - 依据周围行的情况 - - - Block indentation style: - 代码块缩进风格: - - - Exclude Braces - 不包括括号 - - - Include Braces - 包括括号 - - - GNU Style - GNU风格 - - - In Leading White Space - 仅用于行首空白 - - - <html><head/><body> -Controls the indentation style of curly brace blocks. - -<ul> -<li>Exclude Braces: The braces are not indented. -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> - -<li>Include Braces: The braces are indented. The contents of the block are on the same level as the braces. -<pre> -void foo() - { - if (a) - { - bar(); - } - } -</pre> -</li> - -<li>GNU Style: Indent the braces for blocks in statements. The contents are indented twice. -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> -</ul></body></html> - <html><head/><body> -控制花括号的缩进风格 - -<ul> -<li>排除花括号: 花括号不缩进。 -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> - -<li>包括花括号: 缩进花括号。代码块的内容与花括号在同一层。 -<pre> -void foo() - { - if (a) - { - bar(); - } - } -</pre> -</li> - -<li>GNU 风格: 缩进声明内部的花括号。其内容缩进两次。 -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> -</ul></body></html> - - - Align continuation lines: - 对齐连续行: - - - <html><head/><body> -Influences the indentation of continuation lines. - -<ul> -<li>Not At All: Do not align at all. Lines will only be indented to the current logical indentation depth. -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>With Spaces: Always use spaces for alignment, regardless of the other indentation settings. -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>With Regular Indent: Use tabs and/or spaces for alignment, as configured above. -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - <html><head/><body> -改变连续行的缩进 - -<ul> -<li>不对齐: 不进行对齐。代码行只根据当前逻辑缩进深度进行缩进。 -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>伴随空格: 允许使用空格进行对齐,忽略其他缩进设置。 -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>伴随规则缩进: 在原设置上使用 tab 或 空格进行对齐。 -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - - - Not At All - 不对齐 - - - With Spaces - 伴随空格 - - - With Regular Indent - 伴随规则缩进 - - - Global - Settings - 全局 - - - - TextEditor::DisplaySettingsPage - - Animate matching parentheses - 动画显示对应的括号 - - - Navigation - 导航 - - - Enable &mouse navigation - 开启鼠标导航(&M) - - - Mark text changes - 标记文本改变 - - - - TextEditor::FontSettingsPage - - Font & Colors - 字体和颜色 - - - Font && Colors - 字体和颜色 - - - Copy Color Scheme - 复制配色方案 - - - Color Scheme name: - 配色方案名称: - - - Color scheme name: - 配色方案名称: - - - %1 (copy) - %1 (复制) - - - Delete Color Scheme - 删除配色方案 - - - Are you sure you want to delete this color scheme permanently? - 您确定想永久删除这项配色方案吗? - - - Delete - 删除 - - - Color Scheme Changed - 配色方案改变 - - - The color scheme "%1" was modified, do you want to save the changes? - 配色方案 "%1" 被改变,您想保存改变么? - - - Discard - 丢弃 - - - - TextEditor::Internal::CodecSelector - - Text Encoding - 文本编码 - - - -The following encodings are likely to fit: - -以下编码可能符合: - - - Select encoding for "%1".%2 - 为"%1"选择编码 。%2 - - - Reload with Encoding - 按编码重新载入 - - - Save with Encoding - 按编码保存 - - - - TextEditor::Internal::FindInCurrentFile - - Current File - 当前文件 - - - File '%1': - 文件'%1': - - - File path: %1 -%2 - 文件路径: '%1' -%2 - - - - TextEditor::Internal::FindInFiles - - Files on Disk - 磁盘上的文件 - - - Files on File System - 在文件系统中的文件 - - - &Directory: - 目录(&D): - - - &Browse - 浏览(&B) - - - File &pattern: - 文件模式(&P): - - - Directory to search - 搜索目录 - - - - TextEditor::FontSettingsPageWidget - - Family: - 字型: - - - Size: - 字号: - - - Font - 字体 - - - Color Scheme - 配色方案 - - - Antialias - 抗锯齿 - - - Copy... - 复制... - - - Delete - 删除 - - - % - % - - - Zoom: - 缩放: - - - - TextEditor::Internal::LineNumberFilter - - Line in current document - 当前文档内的行 - - - Line %1 - 行%1 - - - Line in Current Document - 当前文档内的行 - - - - TextEditor::Internal::TextEditorPlugin - - Creates a text file (.txt). - 创建一个文本文件(.txt). - - - Creates a text file. The default file extension is <tt>.txt</tt>. You can specify a different extension as part of the filename. - 创建一个文本文件。默认的文件扩展名是<tt>.txt</tt>。您可以在指定文件名时指定扩展名。 - - - Text File - 文本文件 - - - General - 概要 - - - Creates a scratch buffer using a temporary file. - 使用临时文件创建一个临时缓冲区。 - - - Scratch Buffer - 临时缓冲区 - - - Triggers a completion in this scope - 在当前范围内触发自动补全 - - - Ctrl+Space - Ctrl+Space - - - Meta+Space - Meta+Space - - - Triggers a quick fix in this scope - 在当前范围内触发快速修正 - - - Alt+Return - Alt+Return - - - Selected text within the current document. - 当前文档中选中的文本。 - - - Line number of the text cursor position in current document (starts with 1). - 当前文档光标所在位置的行号(以1开始). - - - Column number of the text cursor position in current document (starts with 0). - 当前文档光标所在位置的列号(以0开始). - - - Number of lines visible in current document. - 当前文档的可见行数。 - - - Number of columns visible in current document. - 当前文档的可见列数。 - - - Current document's font size in points. - 当前文档的字体大小(以点为单位)。 - - - - TextEditor::TextEditorActionHandler - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Select Encoding... - 选择编码... - - - Auto-&indent Selection - 选中的文字自动缩进(&i) - - - Ctrl+I - Ctrl+I - - - Meta - Meta - - - Ctrl - Ctrl - - - %1+E, R - %1+E, R - - - &Visualize Whitespace - 标示空白(&V) - - - Clean Whitespace - 清除空白 - - - Enable Text &Wrapping - 开启文字折行(&W) - - - (Un)Comment &Selection - (取消)注释或选择(&S) - - - Ctrl+/ - Ctrl+/ - - - Copy &Line - 复制行(&L) - - - Ctrl+Ins - Ctrl+Ins - - - Delete &Line - 删除行(&L) - - - Delete Word From The Cursor On - 从光标处删除文字 - - - Delete Word Camel Case From The Cursor On - 从光标处删除驼峰式文字 - - - Delete Word Up To The Cursor - 从光标上方处删除文字 - - - Delete Word Camel Case Up To The Cursor - 从光标上方处删除驼峰式文字 - - - Fold - 折叠 - - - Unfold - 展开 - - - (Un)&Fold All - 折叠/展开所有(&F) - - - Reset Font Size - 重置字号 - - - Ctrl+0 - Ctrl+0 - - - Go to Block Start - 移到段落开头 - - - Go to Block End - 移到段落结尾 - - - Shift+Del - Shift+Del - - - &Rewrap Paragraph - 段落重新折行(&R) - - - %1+E, %2+V - %1+E, %2+V - - - %1+E, %2+W - %1+E, %2+W - - - Toggle Comment &Selection - 选中区域注释/反注释(&S) - - - Cut &Line - 剪切行(&L) - - - Collapse - 折叠 - - - Ctrl+< - Ctrl+< - - - Expand - 展开 - - - Ctrl+> - Ctrl+> - - - (Un)&Collapse All - (取消)折叠所有代码(&C) - - - Increase Font Size - 增大字号 - - - Ctrl++ - Ctrl++ - - - Decrease Font Size - 减小字号 - - - Ctrl+- - Ctrl+- - - - Ctrl+[ - Ctrl+[ - - - Ctrl+] - Ctrl+] - - - Ctrl+{ - Ctrl+{ - - - Meta+E, R - Meta+E, R - - - Ctrl+E, R - Ctrl+E, R - - - Meta+E, Meta+V - Meta+E, Meta+V - - - Ctrl+E, Ctrl+V - Ctrl+E, Ctrl+V - - - Meta+E, Meta+W - Meta+E, Meta+W - - - Ctrl+E, Ctrl+W - Ctrl+E, Ctrl+W - - - Delete Word from Cursor On - 从光标处删除文字 - - - Delete Word Camel Case from Cursor On - 从光标处删除驼峰式文字 - - - Delete Word up to Cursor - 从光标上方处删除文字 - - - Delete Word Camel Case up to Cursor - 从光标上方处删除驼峰式文字 - - - Toggle &Fold All - 选择 折叠/展开所有(&F) - - - Meta+0 - Meta+0 - - - Go to Block Start with Selection - 选中到段落开头 - - - Go to Block End with Selection - 选中到段落末尾 - - - Ctrl+} - Ctrl+} - - - Select Block Up - 选择段落上移 - - - Ctrl+U - Ctrl+U - - - Select Block Down - 选择的段落下移 - - - Move Line Up - 上移一行 - - - Ctrl+Shift+Up - Ctrl+Shift+Up - - - Move Line Down - 下移一行 - - - Ctrl+Shift+Down - Ctrl+Shift+Down - - - Copy Line Up - 向上复制本行 - - - Ctrl+Alt+Up - Ctrl+Alt+Up - - - Copy Line Down - 向下复制本行 - - - Ctrl+Alt+Down - Ctrl+Alt+Down - - - Join Lines - 合并行 - - - Ctrl+J - Ctrl+J - - - Insert Line Above Current Line - 在当前行之前插入行 - - - Ctrl+Shift+Return - Ctrl+Shift+Return - - - Insert Line Below Current Line - 在当前行之后插入行 - - - Ctrl+Return - Ctrl+Return - - - Uppercase Selection - 大写选择 - - - Alt+Shift+U - Alt+Shift+U - - - Meta+Shift+U - Meta+Shift+U - - - Lowercase Selection - 小写选择 - - - Alt+U - Alt+U - - - Meta+U - Meta+U - - - Paste from Clipboard History - 从剪贴板历史中粘贴 - - - Ctrl+Shift+V - Ctrl+Shift+V - - - Indent - 缩进 - - - Unindent - 不缩进 - - - Follow Symbol Under Cursor - 跟踪光标位置的符号 - - - Jump To File Under Cursor - 跳到光标所在处的文件 - - - Go to Line Start - 移到行首 - - - Go to Line End - 移到行尾 - - - Go to Next Line - 移到下一行 - - - Go to Previous Line - 移到前一行 - - - Go to Previous Character - 移到上一字符 - - - Go to Next Character - 移到下一字符 - - - Go to Previous Word - 移到上一单词 - - - Go to Next Word - 移到下一单词 - - - Go to Previous Word Camel Case - 移到上一个使用骆驼命名法的单词 - - - Go to Next Word Camel Case - 移到下一个使用骆驼命名法的单词 - - - Go to Line Start with Selection - 选中到行首 - - - Go to Line End with Selection - 选中到行尾 - - - Go to Next Line with Selection - 选中到下一行 - - - Go to Previous Line with Selection - 选中到上一行 - - - Go to Previous Character with Selection - 选中到上一字符 - - - Go to Next Character with Selection - 选中到下一字符 - - - Go to Previous Word with Selection - 选中到上一单词 - - - Go to Next Word with Selection - 选中到下一单词 - - - Go to Previous Word Camel Case with Selection - 选中到上一个使用骆驼命名法的单词 - - - Go to Next Word Camel Case with Selection - 选中到下一个使用骆驼命名法的单词 - - - <line number> - <行号> - - - - TextEditor::TextEditorSettings - - Text - 文本 - - - Generic text. -Applied to text, if no other rules matching. - 一般文本 -当没有其他规则时应用于文本。 - - - Link - 链接 - - - Links that follow symbol under cursor. - 跟随光标所在符号的链接。 - - - Selection - 选择 - - - Selected text. - 选中的文本。 - - - Line Number - 行号 - - - Line numbers located on the left side of the editor. - 位于编辑器左侧的行号。 - - - Search Result - 搜索结果 - - - Highlighted search results inside the editor. - 在编辑器中高亮搜索结果。 - - - Search Scope - 搜索范围 - - - Section where the pattern is searched in. - 搜索模式所在的搜索段落范围。 - - - Parentheses - 括号 - - - Displayed when matching parentheses, square brackets or curly brackets are found. - 当匹配到括号、方括号和大括号时显示。 - - - Current Line - 当前行 - - - Line where the cursor is placed in. - 光标所在的行号。 - - - Current Line Number - 当前行号 - - - Line number located on the left side of the editor where the cursor is placed in. - 当前光标所在位置、位于编辑器左侧的行号。 - - - Occurrences - 出现位置 - - - Occurrences of the symbol under the cursor. -(Only the background will be applied.) - 光标处的符号出现的位置。 -(仅应用背景颜色。) - - - Unused Occurrence - 未使用的出现位置 - - - Occurrences of unused variables. - 未用到的变量出现的位置。 - - - Renaming Occurrence - 重命名出现位置 - - - Occurrences of a symbol that will be renamed. - 将要被更名的符号出现的位置。 - - - Number - 数字 - - - Number literal. - 数字。 - - - String - 字符串 - - - Character and string literals. - 字符和字符串。 - - - Type - 类型 - - - Name of a type. - 类型名称。 - - - Local - 局部 - - - Local variables. - 局部变量。 - - - Field - 字段 - - - Class' data members. - 类的数据成员。 - - - Enumeration - 枚举量 - - - Applied to Enumeration Items. - 应用到枚举项。 - - - Function - 函数 - - - Name of a function. - 函数名。 - - - QML item id within a QML file. - QML文件中的QML项的id。 - - - QML root Object Property - QML根对象的属性 - - - QML property of a parent item. - 父项的QML属性。 - - - QML scope Object Property - QML范围内的对象属性 - - - Property of the same QML item. - 同一个QML项的属性。 - - - Location in the files where the difference is (in diff editor). - diff编辑器中显示文件差别所在的位置。 - - - Static - 静态 - - - Virtual Method - 虚方法 - - - Name of method declared as virtual. - 声明为虚函数的方法名。 - - - QML Binding - QML 绑定 - - - QML item property, that allows a binding to another property. - 允许绑定到另一个属性的QML项属性。 - - - QML Local Id - QML 局部 ID - - - QML Root Object Property - QML 根对象属性 - - - QML Scope Object Property - QML 范围对象的属性 - - - QML State Name - QML 状态名 - - - Name of a QML state. - QML状态的名称。 - - - QML Type Name - QML类型名 - - - Name of a QML type. - QML类型名。 - - - QML External Id - QML 外部 ID - - - QML id defined in another QML file. - 在另一个QML文件中定义的QML id。 - - - QML External Object Property - QML 外部对象属性 - - - QML property defined in another QML file. - 在另一个QML文件中定义的QML属性。 - - - JavaScript Scope Var - JavaScript 范围变量 - - - Variables defined inside the JavaScript file. - JavaScript文件内定义的变量。 - - - JavaScript Import - JavaScript 导入 - - - Name of a JavaScript import inside a QML file. - QML文件内的JavaScript导入的名称。 - - - JavaScript Global Variable - JavaScript 全局变量 - - - Variables defined outside the script. - 脚本内定义的变量。 - - - Keyword - 关键字 - - - Reserved keywords of the programming language. - 编程语言的保留关键字。 - - - Operator - 运算符 - - - Operators. (for example operator++ operator-=) - 操作符(如++和-=)。 - - - Preprocessor - 预处理器 - - - Preprocessor directives. - 预处理指令。 - - - Label - 标签 - - - Labels for goto statements. - goto语句的标签。 - - - Comment - 注释 - - - All style of comments except Doxygen comments. - 除Doxygen注释之外的所有风格的注释。 - - - Doxygen Comment - Doxgen注释 - - - Doxygen comments. - Doxgen注释。 - - - Doxygen Tag - Doxgen标签 - - - Doxygen tags - Doxgen标签 - - - Visual Whitespace - 标示空白 - - - Whitespace -Will not be applied to whitespace in comments and strings. - “空格” -注释和字符串中的空格不适用。 - - - Disabled Code - 禁用的代码 - - - Code disabled by preprocessor directives. - 被预处理指令禁用的代码。 - - - Added Line - 添加的行 - - - Applied to added lines in differences (in diff editor). - 应用于(diff编辑器的)差异中增加的行。 - - - Removed Line - 删除的行 - - - Applied to removed lines in differences (in diff editor). - 应用于(diff编辑器的)差异中删除的行。 - - - Diff File - Diff文件 - - - Compared files (in diff editor). - (diff编辑中)比较的文件。 - - - Diff Location - Diff路径 - - - Text Editor - 文本编辑器 - - - Behavior - 行为 - - - Display - 显示 - - - - TopicChooser - - Filter - 过滤器 - - - Choose a topic for <b>%1</b>: - 为<b>%1</b>选择一个标题: - - - Choose Topic - 选择标题 - - - &Topics - 标题(&T) - - - &Display - 显示(&D) - - - &Close - 关闭(&C) - - - - VcsBase - - Version Control - 版本控制 - - - General - 概要 - - - Common - 共同 - - - Project from Version Control - 从版本控制中导出 - - - - VcsBase::Internal::NickNameDialog - - Name - 姓名 - - - E-mail - 电邮 - - - Alias - 别名 - - - Alias e-mail - 别名电邮 - - - Cannot open '%1': %2 - 无法打开'%1' : %2 - - - Nicknames - 昵称 - - - - VcsBase::SubmitFileModel - - State - 状态 - - - File - 文件 - - - - VcsBase::VcsBaseEditor - - Annotate "%1" - Annotate "%1" - - - Copy "%1" - 复制 "%1" - - - Describe change %1 - 描述改变%1 - - - - VcsBase::VcsBaseSubmitEditor - - Check message - 检查消息 - - - Insert name... - 插入名称... - - - Prompt to submit - 提交时弹出提示 - - - Submit Message Check failed - 提交信息检查失败 - - - Check Message - 检查消息 - - - Insert Name... - 插入姓名... - - - Submit Message Check Failed - 提交信息检查失败 - - - Executing %1 - 正在执行 %1 - - - - Executing [%1] %2 - 正在执行 [%1] %2 - - - The check script '%1' crashed. - 检查脚本 '%1' 崩溃. - - - Unable to open '%1': %2 - 无法打开 '%1': %2 - - - The check script '%1' could not be started: %2 - 检查脚本 '%1' 无法被启动: %2 - - - The check script '%1' timed out. - 检查脚本 '%1' 超时. - - - The check script '%1' could not be run: %2 - 检查脚本 '%1' 无法运行: %2 - - - The check script '%1' crashed - 检查脚本 '%1' 崩溃 - - - The check script returned exit code %1. - 检查脚本返回的退出代码%1。 - - - - VcsBaseSettingsPage - - Common - 共同 - - - - VcsManager - - Version Control - 版本控制 - - - - ViewDialog - - &Username: - 用户名(&U): - - - <Username> - <用户名> - - - &Description: - 说明(&D): - - - <Description> - <说明> - - - Patch 1 - Patch 1 - - - Patch 2 - Patch 2 - - - Protocol: - 协议: - - - Parts to send to server - 发送到服务器的部分 - - - Parts to Send to Server - 发送到服务器的部分 - - - - mainClass - - main - 主界面 - - - Text1: - 文本1: - - - N/A - N/A - - - Text2: - 文本2: - - - Text3: - 文本3: - - - - Utils::CheckableMessageBox - - Dialog - 对话框 - - - TextLabel - TextLabel - - - CheckBox - 复选框 - - - Do not ask again - 下次不再询问 - - - - PasteBinComSettingsWidget - - Form - 界面 - - - Server Prefix: - 服务器前缀: - - - Server prefix: - 服务器前缀: - - - <i>Note: The plugin will use this for posting as well as fetching.</i> - <i>注意: 插件将会使用此来获取和发布.</i> - - - - Cvs - - CVS Command: - CVS 命令: - - - CVS Root: - CVS 路径: - - - CVS - CVS - - - Configuration - 配置 - - - Miscellaneous - 其他 - - - Prompt on submit - 提交时弹出提示 - - - Describe all files matching commit id - 描述提交id匹配的所有文件 - - - Timeout: - 超时时间: - - - s - - - - CVS command: - CVS 命令: - - - CVS root: - CVS 路径: - - - Diff options: - Diff选项: - - - When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit ID). Otherwise, only the respective file will be displayed. - 选中此项后,点击注释视图中(通过commit ID获取)的某个修订版本号时,所有该commit涉及的文件都将被显示。否则,仅显示对应的文件。 - - - - Debugger - - Form - 界面 - - - Gdb - Gdb - - - Symbian ARM gdb location: - Symbian ARM 用 Gdb 位置: - - - Communication - 通信 - - - Serial Port - 连续端口 - - - Bluetooth - Bluetooth - - - Port: - 端口: - - - Device: - 设备: - - - - Designer - - Form - 界面 - - - Embedding of the UI Class - UI类嵌入方式 - - - Aggregation as a pointer member - 以指针成员方式集成 - - - Aggregation - 集成 - - - Multiple Inheritance - 多重继承 - - - Code Generation - 生成代码 - - - Support for changing languages at runtime - 对运行时更改语言的支持 - - - Use Qt module name in #include-directive - 在#include指令中使用Qt模块名 - - - Multiple inheritance - 多重继承 - - - Add Qt version #ifdef for module names - 为模块名添加表示Qt版本的#ifdef - - - - Gitorious::Internal::GitoriousHostWidget - - ... - ... - - - <New Host> - <新主机> - - - Host - 主机 - - - Projects - 项目 - - - Description - 说明 - - - - Gitorious::Internal::GitoriousProjectWidget - - WizardPage - 向导页面 - - - Filter: - 过滤器: - - - ... - ... - - - Keep updating - 保持更新 - - - Project - 项目 - - - Description - 说明 - - - - Gitorious::Internal::GitoriousRepositoryWizardPage - - WizardPage - 向导页面 - - - Filter: - 过滤器: - - - ... - ... - - - Name - 名称 - - - Owner - 所有者 - - - Description - 说明 - - - Repository - 代码仓库 - - - Choose a repository of the project '%1'. - 为项目'%1'选择一个代码仓库。 - - - Mainline Repositories - 主线代码仓库 - - - Clones - 克隆 - - - Baseline Repositories - 基线代码仓库 - - - Shared Project Repositories - 共享的项目代码仓库 - - - Personal Repositories - 个人代码仓库 - - - - GeneralSettingsPage - - Form - 界面 - - - Font - 字体 - - - Family: - 字型: - - - Style: - 风格: - - - Size: - 大小: - - - Startup - 启动 - - - On context help: - 上下文相关帮助: - - - Show side-by-side if possible - 如果可能则并排显示 - - - Always show side-by-side - 总是并排显示 - - - On help start: - 帮助开始时: - - - Show my home page - 显示主页 - - - Show a blank page - 显示空白页 - - - Show my tabs from last session - 显示我最后关闭的页面 - - - Home Page: - 主页: - - - Use &Current Page - 使用当前页(&C) - - - Use &Blank Page - 使用空白页(&B) - - - Restore to Default - 重置为默认 - - - Help Bookmarks - 帮助书签 - - - Import... - 导入... - - - Export... - 导出... - - - Home page: - 主页: - - - Show Side-by-Side if Possible - 尽可能并排显示 - - - Always Show Side-by-Side - 总是并排显示 - - - Always Start Full Help - 总是从完整的帮助开始 - - - Show My Home Page - 显示我的主页 - - - Show a Blank Page - 显示空白页 - - - Show My Tabs from Last Session - 显示上一次会话的打开页面 - - - Behaviour - 行为 - - - Switch to editor context after last help page is closed. - 最后一个帮助页面关闭后切换到编辑模式。 - - - Return to editor on closing the last page - 关闭最后一页时返回编辑器 - - - Reset - 重置 - - - - ProjectExplorer::Internal::ProjectExplorerSettingsPageUi - - Build and Run - 构建和运行 - - - Save all files before Build - 在构建前保存所有文件 - - - Always build Project before Running - 在运行前总是构建 - - - Show Compiler Output on building - 构建时显示编译输出 - - - Use jom instead of nmake - 使用jom代替nmake - - - Current directory - 当前目录 - - - directoryButtonGroup - 目录按钮组 - - - Directory - 目录 - - - Projects Directory - 项目目录 - - - Save all files before build - 在构建前保存所有文件 - - - Always build project before running - 在运行前总是先构建 - - - Show compiler output on building - 构建时显示编译输出 - - - Clear old application output on a new run - 在新的应用运行之前清除旧的应用输出 - - - Always build project before deploying it - 在部署项目前总是先构建 - - - Always deploy project before running it - 在运行项目前总是先部署 - - - Word-wrap application output - 对程序的输出进行折行 - - - Open compiler output pane when building - 构建时打开编译输出窗口 - - - Open application output pane when running - 应用运行时打开应用程序输出窗口 - - - Ask before terminating the running application in response to clicking the stop button in Application Output. - 在应用输出界面点击停止按钮时,终止应用程序前先询问。 - - - Always ask before stopping applications - 总是在停止应用前询问 - - - Enabling this option ensures that the order of interleaved messages from stdout and stderr is preserved, at the cost of disabling highlighting of stderr. - 选中此项将保留stdout 和stderr 的交错信息的顺序,代价是禁用stderr的高亮效果。 - - - Merge stderr and stdout - 整合stderr stdout - - - Limit application output to - 限制程序输出到 - - - lines - - - - <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Disable it if you experience problems with your builds. - <i>jom</i>是<i>nmake</i> 的简易替换,用于将编译进程分布到多个CPU核上运行。最新的二进制可以从<a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a> 获得。禁用它可能影响您的构建体验。 - - - Open application output pane when debugging - 调试时打开程序的输入窗口 - - - - ProjectExplorer::Internal::ProjectWelcomePageWidget - - Form - 界面 - - - Manage Sessions... - 管理会话... - - - Create New Project... - 创建新项目... - - - Open Recent Project - 打开最近使用的项目 - - - Recent Projects - 最近使用的项目 - - - Resume Session - 恢复会话 - - - %1 (last session) - %1 (最后的会话) - - - %1 (current session) - %1 (当前会话) - - - New Project - 新建项目 - - - New Project... - 新项目... - - - Create Project... - 创建项目... - - - Recent Sessions - 当前会话 - - - Open Project... - 打开项目... - - - - Welcome - - Form - 界面 - - - - QmakeProjectManager - - Form - 界面 - - - The header file - 头文件 - - - &Sources - 源文件(&S) - - - Widget librar&y: - 控件库(&Y): - - - Widget project &file: - 控件项目文件(&F): - - - Widget h&eader file: - 控件头文件(&E): - - - The header file has to be specified in source code. - 头文件必须在源代码中指定。 - - - Widge&t source file: - 控件源文件(&T): - - - Widget &base class: - 控件的基类(&B): - - - QWidget - QWidget - - - Plugin class &name: - 插件类名(&N): - - - Plugin &header file: - 插件头文件(&H): - - - Plugin sou&rce file: - 插件源文件(&R): - - - Icon file: - 图标文件: - - - &Link library - 链接库(&L) - - - Create s&keleton - 创建代码框架(&K) - - - Include pro&ject - 包含项目(&J) - - - &Description - 说明(&D) - - - G&roup: - 组(&R): - - - &Tooltip: - 工具提示(&T): - - - W&hat's this: - 这是什么(&H): - - - The widget is a &container - 控件是个容器(&C) - - - Property defa&ults - 默认属性(&U) - - - dom&XML: - dom &XML: - - - Select Icon - 选择图标 - - - Icon files (*.png *.ico *.jpg *.xpm *.tif *.svg) - 图标文件 (*.png *.ico *.jpg *.xpm *.tif *.svg) - - - WizardPage - 向导页面 - - - Plugin and Collection Class Information - 插件和集合类的信息 - - - Specify the properties of the plugin library and the collection class. - 指定插件库和集合类的属性。 - - - Collection class: - 集合类: - - - Collection header file: - 集合类头文件: - - - Collection source file: - 集合类源文件: - - - Plugin name: - 插件名称: - - - Resource file: - 资源文件: - - - icons.qrc - icons.qrc - - - Custom Qt Widget Wizard - 自定义 Qt 控件向导 - - - Custom Widget List - 自定义控件列表 - - - Widget &Classes: - 控件类(&C): - - - Specify the list of custom widgets and their properties. - 指定自定义控件列表及其属性. - - - ... - ... - - - - Welcome - - Examples not installed - 例子没有被安装 - - - Open - 打开 - - - Tutorials - 教程 - - - Explore Qt Examples - 浏览Qt例子 - - - <b>Qt Creator - A quick tour</b> - <b>Qt Creator - 快速浏览</b> - - - Creating an address book - 创建一个通讯簿 - - - Understanding widgets - 理解控件 - - - Building with qmake - 使用qmake 构建 - - - The Qt Creator User Interface - Qt Creator 用户界面 - - - Building and Running an Example - 构建运行一个例子 - - - Creating a Qt C++ Application - 创建 一个Qt C++ 应用 - - - Creating a Mobile Application - 创建一个移动应用 - - - Creating a Qt Quick Application - 创建 一个Qt Quick 应用 - - - Choose an example... - 选择一个例子... - - - Choose an Example... - 选择一个例子... - - - &Location: - 路径(&L): - - - &Copy Project and Open - 复制项目并且打开(&C) - - - &Keep Project and Open - 保留项目并且打开(&K) - - - The specified location already exists. Please specify a valid location. - 指定路径已经存在,请指定有效路径。 - - - <a href='%1'>Details...</a> - <a href='%1'>详情...</a> - - - <a href='%1'>Take Tutorial</a> - <a href='%1'>学习教程</a> - - - New Project... - 新建项目... - - - Cmd - Shortcut key - Cmd - - - Alt - Shortcut key - Alt - - - Ctrl - Shortcut key - Ctrl - - - In the editor, <tt>F2</tt> follows symbol definition, <tt>Shift+F2</tt> toggles declaration and definition while <tt>F4</tt> toggles header file and source file. - 编辑器中, <tt>F2</tt> 追踪符号定义, <tt>Shift+F2</tt> 在声明和定义之间切换 <tt>F4</tt> 在头文件和源文件之间切换. - - - Examples not installed... - 例子没有被安装... - - - Create Project... - 创建项目... - - - Explore Qt C++ Examples - 浏览Qt C++例子 - - - Explore Qt Quick Examples - 浏览Qt Quick 例子 - - - Open Project... - 打开项目... - - - Examples - 示例 - - - Explore Qt C++ examples: - 探索Qt C++示例: - - - Examples Not Installed... - 示例未安装... - - - Explore Qt Quick examples: - 探索Qt Quick示例: - - - Explore Qt C++ mobile examples: - 探索Qt C++ 移动示例: - - - Featured - 特色 - - - - RemoteLinux - - Qt Location - Qt 路径 - - - Refresh - 更新 - - - S60 SDKs - S60 的 SDK - - - Error - 错误 - - - Add - 添加 - - - Change Qt version - 改变Qt版本 - - - Remove - 删除 - - - - TextEditor::Internal::ColorSchemeEdit - - Bold - 粗体 - - - Italic - 斜体 - - - Background: - 背景颜色: - - - Foreground: - 前景颜色: - - - Erase background - 清除背景色 - - - x - x - - - Erase foreground - 清除前景色 - - - - VcsBase::BaseCheckoutWizardPage - - WizardPage - 向导页面 - - - Checkout Directory: - 检出目录: - - - Path: - 路径: - - - Repository - 仓库 - - - The remote repository to check out. - 将要检出的远程仓库. - - - Branch: - 分支: - - - The development branch in the remote repository to check out. - 将要检出的远程仓库分支. - - - Retrieve list of branches in repository. - 获取仓库中的分支列表. - - - ... - ... - - - Working Copy - 工作拷贝 - - - The path in which the directory containing the checkout will be created. - 包含检出文件的文件夹将被创建. - - - Checkout Path: - 检出路径: - - - The local directory that will contain the code after the checkout. - 本地文件夹中将会包含检出代码. - - - Checkout path: - 检出路径: - - - Checkout directory: - 检出目录: - - - - Welcome - - <b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font> - <b>诺基亚论坛</b><br /><font color='gray'>移动应用帮助</font> - - - <b>Qt GPL Support</b><br /><font color='gray'>Buy professional Qt support</font> - <b>Qt GPL 帮助</b><br /><font color='gray'>购买专业 Qt 帮助</font> - - - <b>Qt LGPL Support</b><br /><font color='gray'>Buy professional Qt support</font> - <b>Qt GPL 帮助</b><br /><font color='gray'>购买专业 Qt 帮助</font> - - - <b>Qt LGPL Support</b><br /><font color='gray'>Buy commercial Qt support</font> - <b>Qt LGPL 支持</b><br /><font color='gray'>购买商业 Qt 支持</font> - - - <b>Qt Centre</b><br /><font color='gray'>Community based Qt support</font> - <b>Qt Centre</b><br /><font color='gray'>基于Qt社区的帮助 </font> - - - <b>Forum Nokia</b><br /><font color='gray'>Mobile application support</font> - <b>诺基亚论坛</b><br /><font color='gray'>移动应用帮助</font> - - - <b>Qt DevNet</b><br /><font color='gray'>Qt Developer Resources</font> - <b>Qt开发网站</b><br /><font color='gray'>Qt Developer Resources</font> - - - <b>Qt Home</b><br /><font color='gray'>Qt by Nokia on the web</font> - <b>Qt 主页</b><br /><font color='gray'>诺基亚Qt主页</font> - - - <b>Qt Git Hosting</b><br /><font color='gray'>Participate in Qt development</font> - <b>Qt Git 主页</b><br /><font color='gray'>参与Qt开发</font> - - - <b>Qt Apps</b><br /><font color='gray'>Find free Qt-based apps</font> - <b>Qt 应用</b><br /><font color='gray'>寻找基于Qt的免费应用</font> - - - News From the Qt Labs - Qt Labs的新闻 - - - Qt Support Sites - Qt 技术支持站点 - - - Qt Links - Qt 链接 - - - Qt Websites - Qt Web站点 - - - Qt Home - Qt 主页 - - - Qt Labs - Qt 实验室 - - - Qt Git Hosting - Qt Git 主机 - - - Qt Centre - Qt 中心 - - - Qt Apps - Qt Apps - - - Qt for Symbian at Forum Nokia - 诺基亚论坛---Qt for Symbian - - - Help us make Qt Creator even better - 协助我们使Qt Creator 更加完美 - - - Feedback - 反馈 - - - - Utils::DetailsButton - - Show Details - 显示详细信息 - - - Details - 详情 - - - - OpenWith::Editors - - Plain Text Editor - 普通文本编辑器 - - - Binary Editor - 二进制编辑器 - - - C++ Editor - C++ 编辑器 - - - .pro File Editor - .pro 文件编辑器 - - - .files Editor - .files 编辑器 - - - QMLJS Editor - QMLJS 编辑器 - - - .qmlproject Editor - .qmlproject 编辑器 - - - Qt Designer - Qt设计师 - - - Qt Linguist - Qt语言家 - - - Resource Editor - 资源编辑器 - - - GLSL Editor - GLSL 编辑器 - - - - Core::Internal::SettingsDialog - - Preferences - 首选项 - - - Options - 选项 - - - - CodePaster - - No Server defined in the CodePaster preferences. - 在CodePaster首选项中没有定义服务器。 - - - No Server defined in the CodePaster options. - 在CodePaster选项中没有定义服务器。 - - - No such paste - 没有相关粘贴 - - - CodePaster - CodePaster - - - <i>Note: Specify the host name for the CodePaster service without any protocol prepended (e.g. codepaster.mycompany.com).</i> - <i>注意: 为CodePaster服务指定主机名,不包括任何协议前缀。(如 codepaster.mycompany.com).</i> - - - Server: - 服务器: - - - Note: Specify the host name for the CodePaster service without any protocol prepended (e.g. codepaster.mycompany.com). - 注释: 为CodePaster服务指定主机名,不包括任何协议前缀。(如 codepaster.mycompany.com). - - - - PasteBinDotComProtocol - - Error during paste - 粘贴错误 - - - - PasteBinDotComSettings - - Pastebin.com - Pastebin.com - - - Code Pasting - 代码粘贴 - - - - PasteView - - Paste - 粘贴 - - - <Username> - <用户名> - - - <Description> - <说明> - - - - CppTools::Internal::CppCurrentDocumentFilter - - Methods in current Document - 当前文档中的方法 - - - Methods in Current Document - 当前文档中的方法 - - - - CppTools::Internal::CppFileSettingsWidget - - /************************************************************************** -** Qt Creator license header template -** Special keywords: %USER% %DATE% %YEAR% -** Environment variables: %$VARIABLE% -** To protect a percent sign, use '%%'. -**************************************************************************/ - - /************************************************************************** -** Qt Creator license header template -** Special keywords: %USER% %DATE% %YEAR% -** Environment variables: %$VARIABLE% -** To protect a percent sign, use '%%'. -**************************************************************************/ - - - - Edit... - 编辑... - - - Choose Location for New License Template File - 为新的版权许可模板文件选择一个存储位置 - - - Choose a location for the new license template file - 为新的许可模板文件选择一个存储位置 - - - Edit - 编辑 - - - Template write error - 模板写入错误 - - - Cannot write to %1: %2 - 无法写入%1 : %2 - - - - CppTools::Internal::CppFindReferences - - Searching... - 搜索中... - - - C++ Usages: - C++ 使用: - - - Searching - 搜索中 - - - C++ Macro Usages: - C++ 宏的使用: - - - - Cvs - - Checks out a project from a CVS repository. - 从CVS仓库中检出项目。 - - - Checks out a CVS repository and tries to load the contained project. - 检出一个CVS代码仓库并载入其中的项目。 - - - CVS Checkout - CVS Checkout - - - Location - 位置 - - - Specify repository and path. - 指定仓库和路径。 - - - Repository: - 代码仓库: - - - Parsing of the log output failed - 解析日志输出失败 - - - &CVS - CVS(&C) - - - Add - 添加 - - - Add "%1" - 添加"%1" - - - Alt+C,Alt+A - Alt+C,Alt+A - - - Delete - 删除 - - - Delete "%1" - "%1" 删除 - - - Revert - 恢复 - - - Revert "%1" - 恢复"%1" - - - Diff Project - Diff 项目 - - - Diff Project "%1" - Diff 项目 "%1" - - - Diff Current File - Diff 当前文件 - - - Diff "%1" - Diff "%1" - - - Alt+C,Alt+D - Alt+C,Alt+D - - - Commit All Files - 提交所有文件 - - - Commit Current File - 提交当前文件 - - - Commit "%1" - 提交 "%1" - - - Alt+C,Alt+C - Alt+C,Alt+C - - - Filelog Current File - Filelog当前文件 - - - Cannot find repository for '%1' - 无法为'%1'找到仓库 - - - Meta+C,Meta+D - Meta+C,Meta+D - - - Filelog "%1" - Filelog "%1" - - - Annotate Current File - Annotate 当前文件 - - - Annotate "%1" - Annotate "%1" - - - Meta+C,Meta+A - Meta+C,Meta+A - - - Meta+C,Meta+C - Meta+C,Meta+C - - - Delete... - 删除... - - - Delete "%1"... - 删除 "%1"... - - - Revert... - 还原... - - - Revert "%1"... - 还原 "%1"... - - - Edit - 编辑 - - - Edit "%1" - 编辑"%1" - - - Unedit - Unedit - - - Unedit "%1" - Unedit "%1" - - - Unedit Repository - Unedit代码仓库 - - - Project Status - 项目状态 - - - Status of Project "%1" - 项目 "%1" 的状态 - - - Log Project - Log 项目 - - - Log Project "%1" - Log 项目 "%1" - - - Update Project - 更新项目 - - - Update Project "%1" - 更新项目 "%1" - - - Commit Project - Commit 项目 - - - Commit Project "%1" - Commit 项目 "%1" - - - Diff Repository - Diff 仓库 - - - Repository Status - 仓库状态 - - - Repository Log - 仓库日志 - - - Update Repository - Update 仓库 - - - Revert Repository... - 还原仓库... - - - Commit - Commit - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Closing CVS Editor - 关闭CVS编辑器 - - - Do you want to commit the change? - 您确定要提交此更改吗? - - - The commit message check failed. Do you want to commit the change? - Commit 信息检查失败,您想要提交修改吗? - - - The files do not differ. - 文件没有变化。 - - - Revert repository - 还原仓库 - - - Revert all pending changes to the repository? - 还原所有对代码仓库的未完成的修改吗? - - - Would you like to revert all changes to the repository? - 您想要还原对仓库的所有修改吗? - - - Revert failed: %1 - 还原失败: %1 - - - The file '%1' could not be deleted. - 文件 '%1' 无法被删除。 - - - The file has been changed. Do you want to revert it? - 文件被改变,您想要还原吗? - - - Another commit is currently being executed. - 另一个提交正在被执行。 - - - There are no modified files. - 没有被更改的文件。 - - - Cannot create temporary file: %1 - 无法创建临时文件: %1 - - - Would you like to discard your changes to the repository '%1'? - 您想要放弃对仓库 '%1' 的修改吗? - - - Would you like to discard your changes to the file '%1'? - 您想要放弃对文件 '%1' 的修改吗? - - - Project status - 项目状态 - - - Repository status - 仓库状态 - - - The initial revision %1 cannot be described. - 初始修订版本 %1 无法被描述。 - - - Could not find commits of id '%1' on %2. - %2 is a date - 无法找到在 %2 的id为 '%1'的提交。 - - - Executing: %1 %2 - - 执行中: %1 %2 - - - - Executing in %1: %2 %3 - - 正在 %1 中执行: %2 %3 - - - - No cvs executable specified! - 未指定cvs的执行档! - - - The process terminated with exit code %1. - 进程终止,退出代码 %1。 - - - The process terminated abnormally. - 进程异常终止。 - - - Could not start cvs '%1'. Please check your settings in the preferences. - 无法启动 cvs '%1'.请检查首选项中的设置。 - - - CVS did not respond within timeout limit (%1 ms). - CVS 在超时时间 (%1 毫秒)内无响应。 - - - Added - 已添加 - - - Removed - 已删除 - - - Modified - 已更改 - - - CVS Command - CVS 命令 - - - - NameDemanglerPrivate - - Premature end of input - 过早的结束输入 - - - Invalid encoding - 无效编码 - - - Invalid name - 无效名称 - - - Invalid nested-name - 无效嵌套名称 - - - Invalid template args - 无效模板参数 - - - Invalid template-param - 无效模板参数 - - - Invalid qualifiers: unexpected 'volatile' - 无效的限定词:未预期的'volatile' - - - Invalid qualifiers: 'const' appears twice - 无效的限定词:'const'出现了两次 - - - Invalid non-negative number - 无效的非负数 - - - Invalid template-arg - 无效模板参数 - - - Invalid expression - 无效的表达式 - - - Invalid primary expression - 无效的主表达式 - - - Invalid expr-primary - 无效的主表达式 - - - Invalid type - 无效类型 - - - Invalid built-in type - 无效的内置类型 - - - Invalid builtin-type - 无效的内置类型 - - - Invalid function type - 无效的函数类型 - - - Invalid unqualified-name - 无效的未限定的名称 - - - Invalid operator-name '%s' - 无效的运算符名称 '%s' - - - Invalid array-type - 无效的数组类型 - - - Invalid pointer-to-member-type - 无效的指针成员类型 - - - Invalid substitution - 无效置换 - - - Invalid substitution: element %1 was requested, but there are only %2 - 无效置换:需要元素 %1 , 但是只有 %2 - - - Invalid substitution: There are no elements - 无效置换:没有元素 - - - Invalid special-name - 无效特殊名称 - - - Invalid local-name - 无效本地名称 - - - Invalid discriminator - 无效的鉴别器 - - - Invalid ctor-dtor-name - ctor- constructor, dtor- destructor - 无效的构造函数析构函数名 - - - Invalid call-offset - 无效的调用位移 - - - Invalid v-offset - v-> vertical? - 无效的v位移 - - - Invalid digit - 无效数字 - - - At position %1: - 在位置 %1: - - - - Designer - - untitled - 未命名 - - - - Git - - Clones a project from a git repository. - 从 Git 仓库中 clone 一个项目。 - - - Clones a Git repository and tries to load the contained project. - 克隆一个Git仓库并尝试载入其中的项目。 - - - Git Repository Clone - Git仓库的克隆 - - - Location - 位置 - - - Specify repository URL, checkout directory and path. - 指定代码仓库的URL,检出目录和路径。 - - - Clone URL: - 克隆 URL: - - - Delete master branch - 删除master分支 - - - Delete the master branch after checking out the repository. - 检出代码仓库后删除master分支。 - - - - Gitorious::Internal::Gitorious - - Error parsing reply from '%1': %2 - 解析 '%1' 的回应时发生错误: %2 - - - Request failed for '%1': %2 - %1 is a host name - 请求 '%1' 失败: %2 - - - Open source projects that use Git. - 打开使用 Git 的源项目。 - - - - Gitorious::Internal::GitoriousCloneWizard - - Clones a project from a Gitorious repository. - 从 Gitorious 仓库克隆一个项目。 - - - Clones a Gitorious repository and tries to load the contained project. - 克隆一个Git仓库并尝试载入其中的项目。 - - - Gitorious Repository Clone - Git仓库的克隆 - - - - Gitorious::Internal::GitoriousHostWizardPage - - Host - 主机 - - - Select a host. - 选择主机。 - - - - Gitorious::Internal::GitoriousProjectWizardPage - - Project - 项目 - - - Choose a project from '%1' - 从'%1'选择一个项目 - - - - Help - - General settings - 基本设置 - - - General Settings - 基本设定 - - - Open Image - 打开图片 - - - General - 概要 - - - Import Bookmarks - 导入书签 - - - Files (*.xbel) - 文件 (*.xbel) - - - Cannot import bookmarks. - 无法导入书签。 - - - There was an error while importing bookmarks! - 导入书签时发生错误! - - - Save File - 保存文件 - - - Form - 界面 - - - Font - 字体 - - - Family: - 字型: - - - Style: - 风格: - - - Size: - 字号: - - - Note: This setting takes effect only if the HTML file does not use a style sheet. - 注意: 该设定仅在HTML文件不使用样式表时有效。 - - - Startup - 启动 - - - On context help: - 上下文相关帮助: - - - Show Side-by-Side if Possible - 尽可能并排显示 - - - Always Show Side-by-Side - 总是并排显示 - - - Always Start Full Help - 总是打开完整的帮助 - - - Always Show Help in External Window - 总是在外部窗口中显示帮助 - - - On help start: - 帮助开始时: - - - Show My Home Page - 显示我的主页 - - - Show a Blank Page - 显示空白页 - - - Show My Tabs from Last Session - 显示上一次会话的打开页面 - - - Home page: - 主页: - - - Use &Current Page - 使用当前页(&C) - - - Use &Blank Page - 使用空白页(&B) - - - Reset to default - 重置为默认 - - - Reset - 重置 - - - Help Bookmarks - 帮助书签 - - - Import... - 导入... - - - Export... - 导出... - - - Behaviour - 行为 - - - Switch to editor context after last help page is closed. - 最后一个帮助页面关闭后切换到编辑模式。 - - - Return to editor on closing the last page - 关闭最后一页时返回编辑器 - - - The file is not an XBEL version 1.0 file. - 此文件不是XBEL 1.0文件。 - - - Unknown title - 未知标题 - - - - ProjectExplorer::ApplicationLauncher - - Failed to start program. Path or permissions wrong? - 启动程序失败,路径或者权限错误? - - - The program has unexpectedly finished. - 程序异常结束。 - - - Some error has occurred while running the program. - 运行程序期间发生了一些错误。 - - - Cannot retrieve debugging output. - - 无法获取调试输出. - - - - - ProjectExplorer::Internal::LocalApplicationRunControlFactory - - Run - 运行 - - - - ProjectExplorer::Internal::LocalApplicationRunControl - - Starting %1... - %1 启动中... - - - %1 exited with code %2 - %1 退出,代码: %2 - - - No executable specified. - - 未指定执行档。 - - - - Starting %1... - - %1 启动中... - - - - %1 exited with code %2 - - %1 退出,退出代码: %2 - - - - - ProjectExplorer::DebuggingHelperLibrary - - The target directory %1 could not be created. - 目标目录 %1 无法被创建。 - - - The existing file %1 could not be removed. - 现存文件 %1 无法被删除。 - - - The file %1 could not be copied to %2. - 文件 %1 无法被复制到 %2 。 - - - The debugger helpers could not be built in any of the directories: -- %1 - -Reason: %2 - 在以下任何目录下调试器助手都无法被构建: -- %1 - -原因: %2 - - - GDB helper - GDB助手 - - - Building debugging helper library in %1 - - 在 %1构建调试助手库 - - - - Running %1 %2... - - 正在运行 %1 %2... - - - - %1 not found in PATH - - %1 在 PATH中未找到 - - - - Running %1 ... - - 正在运行%1... - - - - - ProjectExplorer::Internal::ProjectWelcomePage - - Develop - 开发 - - - - ProjectExplorer::Internal::ActiveConfigurationWidget - - Active run configuration - 激活运行配置 - - - - ProjectExplorer::Internal::ProjectLabel - - Edit Project Settings for Project <b>%1</b> - 为项目编辑项目设置<b>%1</b> - - - No Project loaded - 没有载入的项目 - - - - ProjectExplorer::Internal::ProjectPushButton - - Select Project - 选择项目 - - - - ToolChain - - GCC - GCC - - - Intel C++ Compiler (Linux) - Intel C++ 编译器 (Linux) - - - Microsoft Visual C++ - Microsoft Visual C++ - - - Windows CE - Windows CE - - - WINSCW - WINSCW - - - GCCE - GCCE - - - RVCT (ARMV5) - RVCT (ARMV5) - - - RVCT (ARMV6) - RVCT (ARMV6) - - - GCC for Maemo - Maemo的GCC - - - Other - 其他 - - - <Invalid> - <无效> - - - <Unknown> - <未知> - - - - QmlEditor::Internal::ScriptEditor - - <Select Symbol> - <选择标记> - - - Rename... - 重命名... - - - New id: - 新ID: - - - Rename id '%1'... - 重命名ID '%1' ... - - - - QmlEditor::Internal::QmlEditorPlugin - - Qt - Qt - - - Creates a Qt QML file. - 创建一个Qt QML 文件。 - - - Qt QML File - Qt QML 文件 - - - - QmlEditor::Internal::QmlModelManager - - Indexing - 索引中 - - - - QmakeProjectManager - - <New class> - <新类> - - - Confirm Delete - 确认删除 - - - Delete class %1 from list? - 从列表中删除类 %1 吗? - - - Qt4 Designer Custom Widget - Qt4 设计师自定义控件 - - - Creates a Qt4 Designer Custom Widget or a Custom Widget Collection. - 创建一个Qt4设计师自定义控件或者一个自定义容器控件 - - - Qt Custom Designer Widget - Qt4 设计师自定义控件 - - - Creates a Qt Custom Designer Widget or a Custom Widget Collection. - 创建一个Qt设计师自定义控件或者一个自定义控件集合。 - - - This wizard generates a Qt4 Designer Custom Widget or a Qt4 Designer Custom Widget Collection project. - 本向导将创建一个Qt4设计师自定义控件或者一个Qt4设计师自定义控件集合项目。 - - - Custom Widgets - 自定义控件 - - - Plugin Details - 插件详细信息 - - - Cannot open icon file %1. - 无法打开图标文件 %1. - - - Creating multiple widget libraries (%1, %2) in one project (%3) is not supported. - 不支持在一个项目中(%3)创建多个控件库 (%1, %2). - - - Cannot open %1: %2 - 无法打开%1 : %2 - - - - Welcome - - Getting Started - 入门 - - - - RemoteLinux - - QtS60DeviceRunConfiguration - Qt S60 设备运行配置 - - - %1 on Symbian Device - S60 device runconfiguration default display name, %1 is base pro-File name - Symbian 设备上的 %1 - - - Run on Symbian device - S60 device runconfiguration default display name (no profile set) - 在Symbian设备上运行 - - - - RemoteLinux - - Device: - 设备: - - - Debugger: - 调试器: - - - Installation file: - 安装文件: - - - Device on serial port: - 在串口上的设备: - - - Install File: - 安装文件: - - - Device on Serial Port: - 在连续端口上的设备: - - - Queries the device for information - 查询设备信息 - - - Choose key file (.key / .pem) - 选择密钥文件(.key / .pem) - - - <No Device> - Summary text of S60 device run configuration - <没有设备> - - - (custom certificate) - (自定义证书) - - - (self-signed certificate) - (自己签名的证书) - - - Summary: Run on '%1' %2 - 概要:在 '%1'执行 %2 - - - Connecting... - 正在连接... - - - - RemoteLinux - - Deploying - 部署中 - - - %1 %2 - %1 %2 - - - An error occurred while creating the package. - 创建包的时候发生错误 - - - Unable to remove existing file '%1': %2 - 现存文件 '%1' 无法被删除: %2 - - - Unable to rename file '%1' to '%2': %3 - 无法重命名文件 '%1' 到 '%2': %3 - - - Renaming new package '%1' to '%2' - 正在重命名新软件包 '%1' 到 '%2‘ - - - Removing old package '%1' - 正在删除旧软件包 '%1' - - - Package file not found - 无法找到软件包文件 - - - Failed to find package '%1': %2 - 找不到软件包 '%1' : %2 - - - Package: %1 -Deploying application to '%2'... - 包: %1 -部署应用到 '%2'... - - - Could not connect to phone on port '%1': %2 -Check if the phone is connected and App TRK is running. - 无法从端口 '%1' 连接到电话: %2 -检查电话是否连接 并且 App TRK 已经运行. - - - Could not create file %1 on device: %2 - 无法在设备上创建文件 %1: %2 - - - Could not write to file %1 on device: %2 - 无法在设备上写入文件 %1: %2 - - - Could not close file %1 on device: %2. It will be closed when App TRK is closed. - 无法在设备上关闭文件 %1 : %2 , 它将随App TRK关闭而关闭. - - - Could not connect to App TRK on device: %1. Restarting App TRK might help. - 无法在设备上连接App TRK: %1. 重新启动App TRK也许会有帮助. - - - Copying installation file... - 复制安装文件... - - - Copying install file... - 复制安装文件... - - - The device '%1' has been disconnected - 设备 '%1' 的连接已经被断开 - - - %1% copied. - %1% 被复制。 - - - Installing application... - 正在安装应用... - - - Could not install from package %1 on device: %2 - 无法从安装包%1 安装到设备: %2 - - - Please start App TRK on %1. - 请在%1上启动 App TRK. - - - %1 has unexpectedly finished. - %1 异常中止 - - - An error has occurred while running %1. - 运行%1 时发生了错误 - - - - RemoteLinux - - There is no device plugged in. - 没有插入设备. - - - Executable file: %1 - 可执行文件:%1 - - - Waiting for App TRK - 等待 App TRK - - - Starting application... - 正在启动应用... - - - Application running with pid %1. - 应用程序运行pid:%1. - - - Could not start application: %1 - 无法启动应用: %1 - - - Warning: Cannot locate the symbol file belonging to %1. - 警告:无法打开属于%1的符号文件. - - - Warning: Cannot locate the symbol file belonging to %1. - - 警告:无法打开属于%1的符号文件. - - - Launching debugger... - - 启动调试器... - - - - Debugging - 调试 - - - Launching debugger... - 启动调试器... - - - Debugging finished. - 调试完成. - - - - RemoteLinux - - No Qt installed - 没有安装Qt - - - Executable: - 执行档: - - - - RemoteLinux - - %1 in Symbian Emulator - S60 emulator run configuration default display name, %1 is base pro-File name ----------- -S60 emulator run configuration default display name, %1 is base pro-File name - %1 在Symbian 模拟器中 - - - Run on Symbian Emulator - S60 emulator run configuration default display name (no pro-file name) - 在Symbian模拟器中运行 - - - Qt Symbian Emulator RunConfiguration - Qt Symbian 模拟器运行配置 - - - - RemoteLinux - - Starting %1... - 启动%1 ... - - - Starting %1... - - %1 启动中... - - - - [Qt Message] - [Qt 消息] - - - %1 exited with code %2 - - %1 退出,退出代码: %2 - {1 ?} - - - %1 exited with code %2 - %1 退出,退出代码: %2 - - - - RemoteLinux - - Run in Emulator - 在模拟器中执行 - - - Run on Device - 在设备上执行 - - - Debug on Device - 在设备上调试 - - - - QmakeProjectManager - - Using Default Qt Version - 使用默认Qt版本 - - - Using Qt Version "%1" - 使用Qt版本 "%1" - - - New configuration - 新建配置 - - - New Configuration Name: - 新配置名称: - - - Qmake based build - 基于Qmake的构建 - - - New Configuration - 新配置 - - - New configuration name: - 新配置名称: - - - %1 Debug - Debug build configuration. We recommend not translating it. - %1 Debug - - - %1 Release - Release build configuration. We recommend not translating it. - %1 Release - - - Debug - Name of a debug build configuration to created by a project wizard. We recommend not translating it. - better to leave it as it is - Debug - - - Release - Name of a release build configuration to be created by a project wizard. We recommend not translating it. - Release - - - - Subversion::Internal::CheckoutWizard - - Checks out a Subversion repository and tries to load the contained project. - 从Subversion仓库中检出项目并尝试载入其中的项目。 - - - Subversion Checkout - Subversion Checkout - - - - Subversion::Internal::CheckoutWizardPage - - Location - 位置 - - - Specify repository URL, checkout directory and path. - 指定代码仓库的URL,检出目录和路径。 - - - Repository: - 代码仓库: - - - - TextEditor::Internal::ColorScheme - - Not a color scheme file. - 不是一个配色方案文件. - - - - TextEditor::Internal::FontSettings - - Customized - 自定义 - - - - VcsBase::BaseCheckoutWizard - - Cannot Open Project - 无法打开项目 - - - Failed to open project in '%1'. - 打开项目'%1' 失败。 - - - Could not find any project files matching (%1) in the directory '%2'. - 在目录 '%2' 中找不到任何项目文件匹配 (%1)。 - - - The Project Explorer is not available. - 项目浏览器不可用。 - - - '%1' does not exist. - '%1'不存在。 - - - Unable to open the project '%1'. - 无法打开项目 '%1'。 - - - - VcsBase::ProcessCheckoutJob - - Unable to start %1: %2 - 无法启动%1 : %2 - - - The process terminated with exit code %1. - 进程终止,退出代码 %1 . - - - The process returned exit code %1. - 进程返回了退出代码 %1 . - - - The process terminated in an abnormal way. - 进程异常终止。 - - - Stopping... - 正在停止... - - - - VcsBase::Internal::CheckoutProgressWizardPage - - Checkout - Checkout - - - No job running, please abort. - 没有运行中的任务,请退出。 - - - Checkout started... - 开始检出代码... - - - Failed. - 失败. - - - Succeeded. - 成功. - - - - VcsBase::VcsBaseOutputWindow - - Open "%1" - 打开 "%1" - - - Clear - 清空 - - - Version Control - 版本控制 - - - Executing: %1 %2 - - 执行:%1 %2 - - - - Executing in %1: %2 %3 - - 正在 %1 中执行: %2 %3 - - - - - Welcome - - Community - 社区 - - - News && Support - 新闻与支持 - - - - MimeType - - unknown - 不明 - - - CMake Project file - CMake 项目文件 - - - C Source file - C 源文件 - - - C Header file - C 头文件 - - - C++ Header file - C++ 头文件 - - - C++ header - C++ 头文件 - - - C++ Source file - C++ 源文件 - - - C++ source code - C++ 源代码 - - - Objective-C source code - Objective-C 源代码 - - - CVS submit template - CVS 提交模板 - - - Qt Designer file - Qt 设计师文件 - - - Generic Qt Creator Project file - 通用 Qt Creator 项目文件 - - - Generic Project Files - 通用项目文件 - - - Generic Project Include Paths - 通用项目包含路径 - - - Generic Project Configuration File - 通用项目配置文件 - - - Perforce submit template - Perforce 提交模板 - - - QML file - QML 文件 - - - Qml Project file - Qml 项目文件 - - - Qt Project file - Qt 项目文件 - - - Qt Project include file - Qt 项目包含文件 - - - message catalog - 消息目录 - - - Qt Script file - Qt 脚本文件 - - - Automake based Makefile - 基于automake的Makefile - - - ClearCase submit template - ClearCase 提交模板 - - - GLSL Shader file - GLSL 着色器文件 - - - GLSL Fragment Shader file - GLSL 片段着色器文件 - - - GLSL/ES Fragment Shader file - GLSL/ES 片段着色器文件 - - - GLSL Vertex Shader file - GLSL 顶点着色器文件 - - - GLSL/ES Vertex Shader file - GLSL/ES 顶点着色器文件 - - - GLSL/ES Geometry Shader file - GLSL/ES 几何着色器文件 - - - BMP image - BMP 图像 - - - GIF image - GIF 图像 - - - ICO image - ICO 图像 - - - JPEG image - JPEG 图像 - - - MNG video - MNG 视频 - - - PBM image - PBM 图像 - - - PGM image - PGM 图像 - - - PNG image - PNG 图像 - - - PPM image - PPM 图像 - - - SVG image - SVG 图像 - - - TIFF image - TIFF 图像 - - - XBM image - XBM 图像 - - - XPM image - XPM 图像 - - - JSON file - JSON文件 - - - QML Project file - QML 项目文件 - - - Qt Project feature file - Qt 项目特征文件 - - - Qt Resource file - Qt 资源文件 - - - Subversion submit template - Subversion 提交模板 - - - Qt Creator task list file - Qt Creator任务列表文件 - - - Plain text document - 普通文本文档 - - - XML document - XML 文档 - - - Assembler - 汇编程序 - - - Qt Creator Generic Assembler - Qt Creator通用汇编程序 - - - Differences between files - 文件之间的差异 - - - - QmlParser - - Illegal character - 非法字符 - - - Unclosed string at end of line - 在行尾有未关闭的字符串 - - - Illegal escape squence - 非法的转义序列 - - - Illegal unicode escape sequence - 非法的unicode转义序列 - - - Illegal escape sequence - 非法的转义序列 - - - Unclosed comment at end of file - 在文件末有未关闭的注释 - - - Illegal syntax for exponential number - 指数语法无效 - - - Identifier cannot start with numeric literal - 标识符不能以数字打头 - - - Unterminated regular expression literal - 正则表达式未结束 - - - Invalid regular expression flag '%0' - 无效的正则表达式标志 '%0' - - - Unterminated regular expression backslash sequence - 正则表达式反斜杠序列未结束 - - - Unterminated regular expression class - 正则表达式类未结束 - - - Unexpected token `%1' - 未预料到的符号 `%1' - - - Expected token `%1' - 预计符号 `%1' - - - Syntax error - 语法错误 - - - - RemoteLinux - - Id: - ID: - - - Name: - 名称: - - - EPOC: - EPOC: - - - Tools: - 工具: - - - Qt: - Qt: - - - - trk::BluetoothListener - - %1: Stopping listener %2... - %1: 停止监听器 %2... - - - %1: Starting Bluetooth listener %2... - %1: 启动蓝牙监听器 %2... - - - Unable to run '%1': %2 - 无法运行 '%1': %2 - - - %1: Bluetooth listener running (%2). - %1: 蓝牙监听器运行中 (%2). - - - %1: Process %2 terminated with exit code %3. - %1: 进程 %2 终止,退出代码 %3. - - - %1: Process %2 crashed. - %1: 进程 %2 崩溃. - - - %1: Process error %2: %3 - %1: 进程错误 %2: %3 - - - - trk::promptStartCommunication - - Connection on %1 canceled. - %1 上的连接被取消. - - - Waiting for App TRK - 等待 App TRK - - - Waiting for App TRK to start on %1... - 等待在 %1 启动 App TRK ... - - - Waiting for Bluetooth Connection - 等待蓝牙连接 - - - Connecting to %1... - 正在连接到%1... - - - - trk::BaseCommunicationStarter - - %1: timed out after %n attempts using an interval of %2ms. - - %1: 在尝试 %n 次,每次间隔%2毫秒之后 超时. - - - - %1: Connection attempt %2 succeeded. - %1: 连接尝试 %2 成功. - - - %1: Connection attempt %2 failed: %3 (retrying)... - %1: 连接尝试 %2 失败: %3 (正在重试)... - - - - trk::Session - - CPU: v%1.%2%3%4 - CPU description of an S60 device %1 major verison, %2 minor version %3 real name of major verison, %4 real name of minor version - CPU: v%1.%2%3%4 - - - App TRK: v%1.%2 TRK protocol: v%3.%4 - App TRK: v%1.%2 TRK 协议: v%3.%4 - - - %1, %2%3%4, %5 - s60description description of an S60 device %1 CPU description, %2 endianness %3 default type size (if any), %4 float size (if any) %5 TRK version - %1, %2%3%4, %5 - - - , type size: %1 - will be inserted into s60description - , 类型尺寸: %1 - - - , float size: %1 - will be inserted into s60description - , 浮点型尺寸: %1 - - - - Mercurial - - General Information - 概要信息 - - - Repository: - 代码仓库: - - - repository - 代码仓库 - - - Branch: - 分支: - - - branch - 分支 - - - Commit Information - 提交信息 - - - Author: - 作者: - - - Email: - 电子邮件: - - - Form - 界面 - - - Configuration - 配置 - - - Command: - 命令: - - - User - 用户 - - - Username to use by default on commit. - 提交时默认使用的用户名。 - - - Default username: - 默认用户名: - - - Email to use by default on commit. - 提交时默认使用的 Email。 - - - Default Email: - 默认 Email: - - - Miscellaneous - 其他 - - - The number of recent commit logs to show, choose 0 to see all enteries - 要显示的最近提交日志的数目,选择 0 查看所有内容 - - - Timeout: - 超时时间: - - - s - - - - Prompt on submit - 提交时弹出提示 - - - Mercurial - Mercurial - - - Log count: - 日志计数: - - - Default email: - 默认电子邮件: - - - The number of recent commit logs to show, choose 0 to see all entries. - 要显示的最近提交的日志数, 选择0 来查看所有项. - - - Revert - 还原 - - - Specify a revision other than the default? - 指定一个修订版本而不用默认版本? - - - Revision: - 修订版本: - - - Dialog - 对话框 - - - Local filesystem: - 本地文件系统: - - - e.g. https://[user[:pass]@]host[:port]/[path] - 例如 https://[用户名[:密码]@]主机名[:端口]/[路径] - - - Specify Url: - 指定 Url: - - - Default Location - 默认位置 - - - Specify URL: - 指定URL: - - - - QmakeProjectManager - - Class name: - 类名: - - - Type: - 类型: - - - Test - 测试 - - - Benchmark - 性能测试 - - - File: - 文件: - - - Generate initialization and cleanup code - 生成初始化和清理代码 - - - Test slot: - 测试槽: - - - Requires QApplication - 需要 QApplication - - - Use a test data set - 使用测试数据集 - - - Specify basic information about the test class for which you want to generate skeleton source code file. - 指定您要为之创建源码文件的测试类的基本信息。 - - - Test Class Information - 测试类信息 - - - - CMakeProjectManager - - Run CMake target - 执行 CMake 目标 - - - The executable is not built by the current build configuration - 这个可执行档不是使用当前的构建配置构建出来的 - - - (disabled) - (禁用) - - - - Core - - Qt Files and Classes - Qt 文件和类 - - - Qt - Qt - - - Environment - 环境 - - - All Files (*) - 所有文件 (*) - - - Clear Menu - 清除菜单 - - - - CodePaster - - Code Pasting - 代码粘贴 - - - - Debugger - - Cdb - Cdb - - - CDB - CDB - - - - Mercurial - - Clone a Mercurial repository - 克隆一个 Mercurial 仓库 - - - Clones a Mercurial repository and tries to load the contained project. - 克隆一个Mercurial仓库并载入其中的项目。 - - - Mercurial Clone - Mercurial 克隆 - - - Location - 位置 - - - Specify repository URL, checkout directory and path. - 指定代码仓库的URL,检出目录和路径。 - - - Clone URL: - 克隆 URL: - - - Commit Editor - Commit编辑器 - - - Unable to find parent revisions of %1 in %2: %3 - 无法在 %2 找到 %1 的父修订版本: %3 - - - Cannot parse output: %1 - 无法解析输出: %1 - - - Hg incoming %1 - no idea what it is - Hg 正在传入 %1 - - - Hg outgoing %1 - Hg 正在传出 %1 - - - Working... - 工作中... - - - Executing: %1 %2 - - 执行中: %1 %2 - - - - Unable to start mercurial process '%1': %2 - 无法启动 mercurial 进程 '%1': %2 - - - Timed out after %1s waiting for mercurial process to finish. - 等待 mercurial 进程结束,等待%1 秒后超时。 - - - Annotate Current File - Annotate 当前文件 - - - Annotate "%1" - Annotate "%1" - - - Diff Current File - Diff 当前文件 - - - Diff "%1" - Diff "%1" - - - Alt+H,Alt+D - Alt+H,Alt+D - - - Meta+H,Meta+D - Meta+H,Meta+D - - - Log Current File - Log 当前文件 - - - Log "%1" - Log "%1" - - - Alt+H,Alt+L - Alt+H,Alt+L - - - Meta+H,Meta+L - Meta+H,Meta+L - - - Status Current File - Status 当前文件 - - - Status "%1" - Status "%1" - - - Alt+H,Alt+S - Alt+H,Alt+S - - - Meta+H,Meta+S - Meta+H,Meta+S - - - Add - 添加 - - - Add "%1" - 添加 "%1" - - - Delete... - 删除... - - - Delete "%1"... - 删除 "%1"... - - - Revert Current File... - 还原当前文件... - - - Revert "%1"... - 还原 "%1"... - - - Diff - Diff - - - Log - Log - - - Revert... - 还原... - - - Status - Status - - - Pull... - Pull... - - - Push... - Push... - - - Update... - 更新... - - - Import... - 导入... - - - Incoming... - 传入... - - - Outgoing... - 传出... - - - Commit... - 提交... - - - Alt+H,Alt+C - Alt+H,Alt+C - - - Meta+H,Meta+C - Meta+H,Meta+C - - - Create Repository... - 创建代码仓库... - - - Pull Source - Pull 源码 - - - Push Destination - Push 目标 - - - Update - 更新 - - - Incoming Source - 传入源 - - - Commit - 提交 - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - There are no changes to commit. - 没有修改可提交。 - - - Unable to generate a temporary file for the commit editor. - 无法为提交编辑器生成临时文件。 - - - Unable to create an editor for the commit. - 无法为提交创建编辑器。 - - - Unable to create a commit editor. - 无法创建提交编辑器。 - - - Commit changes for "%1". - 为 "%1" 提交修改。 - - - Close commit editor - 关闭提交编辑器 - - - Do you want to commit the changes? - 您想提交此修改吗? - - - Close Commit Editor - 关闭Commit编辑器 - - - Message check failed. Do you want to proceed? - 信息检查失败,您想要继续吗? - - - Mercurial Command - Mercurial 命令 - - - - Perforce::Internal::PerforceChecker - - No executable specified - 未指定执行档 - - - "%1" timed out after %2ms. - 在%2毫秒后"%1" 超时。 - - - Unable to launch "%1": %2 - 无法启动 "%1": %2 - - - "%1" crashed. - "%1" 崩溃。 - - - "%1" terminated with exit code %2: %3 - "%1" 中止,退出代码 %2: %3 - - - The client does not seem to contain any mapped files. - 客户端看上去不存在任何映射文件。 - - - Unable to determine the client root. - Unable to determine root of the p4 client installation - 无法决定客户端的根目录。 - - - The repository "%1" does not exist. - 源码仓库 "%1" 不存在。 - - - - ProjectExplorer::BaseProjectWizardDialog - - Location - 位置 - - - untitled - File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. - untitled - - - - ProjectExplorer::Internal::DependenciesModel - - <No other projects in this session> - <会话中没有其他项目> - - - - ProjectExplorer - - Projects - 项目 - - - Build & Run - 构建和运行 - - - Other Project - 其他项目 - - - Applications - 应用程序 - - - Libraries - - - - Non-Qt Project - 非Qt 项目 - - - Import Project - 导入项目 - - - Devices - 设备 - - - Qt Application - Qt应用 - - - - ProjectExplorer::TaskWindow - - Build Issues - 构建问题 - - - &Copy - 复制(&C) - - - &Annotate - 注释(&A) - - - Show Warnings - 显示警告 - - - Filter by categories - 根据分类过滤 - - - - QmlProjectManager::Internal::QmlRunControl - - Starting %1 %2 - 正在启动 %1 %2 - - - %1 exited with code %2 - %1 退出,退出代码: %2 - - - - QmlProjectManager::Internal::QmlRunControlFactory - - Run - 运行 - - - Open Qt4 Options - 打开Qt4选项 - - - Cancel - 取消 - - - QML Observer Missing - QML Observer缺失 - - - QML Observer could not be found. - QML Observer未找到. - - - QML Observer is used to offer debugging features for QML applications, such as interactive debugging and inspection tools. It must be compiled for each used Qt version separately. On the Qt4 options page, select the current Qt installation and click Rebuild. - QML Observer能够能够用来调试QML应用程序,其中包含了调试和检查组件.但该工具必须为每个Qt版本单独编译一份.在Qt4的选项设置页,选择最新的Qt版本然后点击重新构建. - - - - QmakeProjectManager - - %1 on Maemo device - Maemo 设备上的 %1 - - - MaemoRunConfiguration - Maemo 运行配置 - - - New Maemo Run Configuration - 新建Maemo运行配置 - - - '%1' does not contain a valid Maemo simulator image. - '%1' 不存在一个有效的 Maemo 模拟器镜像。 - - - Run on Maemo device - Maemo run configuration default display name - 在Maemo设备上运行 - - - %1 on Maemo Device - Maemo 设备上的 %1 - - - Run on device - 在设备上运行 - - - Could not connect to host - 无法连接主机 - - - Could not start remote shell: %1 - 不能启动远程 shell: %1 - - - Error running command: %1 - 运行命令发生错误: %1 - - - SSH error: %1 - SSH 错误: %1 - - - Error setting up SFTP subsystem: %1 - 设置 SFTP 子系统发生错误: %1 - - - Could not open file '%1' - 无法打开文件 '%1' - - - Could not copy local file '%1' to remote file '%2': %3 - 无法复制本地文件 '%1' 到远程文件 '%2': %3 - - - Qt Versions - Qt 版本 - - - Qt Widget Project - Qt 控件 项目 - - - Qt C++ Project - Qt C++ 项目 - - - Linux Devices - Linux 设备 - - - - TextEditor - - Text Editor - 文本编辑器 - - - Translate this string - 翻译这个字符串 - - - - CommandMappings - - Command Mappings - 命令映射 - - - Command - 命令 - - - Label - 标签 - - - Target - 目标 - - - Defaults - 默认 - - - Import... - 导入... - - - Export... - 导出... - - - Target Identifier - 目标标识符 - - - Target: - 目标: - - - Reset - 重置 - - - Reset all to default - 重置所有为默认 - - - Reset All - 重置所有 - - - Reset to default - 重置为默认 - - - - Git - - Stashes - Stash列表 - - - Name - 名称 - - - Branch - 分支 - - - Message - 消息 - - - Delete all... - 删除所有... - - - Delete... - 删除... - - - Show - Show - - - Restore... - 还原... - - - Restore to branch... - Restore a git stash to new branch to be created - 还原到 分支... - - - Refresh - 刷新 - - - <No repository> - <无 仓库> - - - Repository: %1 - 代码仓库: %1 - - - Delete stashes - 删除 stashes - - - Do you want to delete all stashes? - 您想删除所有 stash 吗? - - - Do you want to delete %n stash(es)? - - 您想删除 %n 个stash 吗? - - - - Repository modified - 仓库已变更 - - - Delete All... - 删除全部... - - - Restore to Branch... - Restore a git stash to new branch to be created - 恢复为分支... - - - Delete Stashes - 删除 stash - - - Repository Modified - 仓库已变更 - - - %1 cannot be restored since the repository is modified. -You can choose between stashing the changes or discarding them. - %1 不能被还原,因为仓库已经变更。 -您可以选择 stash 修改的内容或者丢弃修改。 - - - Discard - 丢弃 - - - Restore Stash to Branch - 还原 stash 到分支 - - - Branch: - Branch: - - - Stash Restore - 还原 stash - - - Would you like to restore %1? - 您想还原 %1吗? - - - Error restoring %1 - 还原 %1 时出错 - - - - ProjectExplorer::Internal::AddTargetDialog - - Add target - 添加目标 - - - Target: - 目标: - - - - ProjectExplorer::Internal::DoubleTabWidget - - DoubleTabWidget - 双标签部件 - - - - ProjectExplorer::Internal::TargetSettingsWidget - - TargetSettingsWidget - no need to translate - TargetSettingsWidget - - - Add Kit - 添加构建套件 - - - Manage Kits... - 管理构建套件... - - - - BehaviorDialog - - Dialog - 对话框 - - - Type: - 类型: - - - Id: - ID: - - - Property Name: - 属性名称: - - - Animation - 动画 - - - SpringFollow - 弹性随动 - - - Settings - 设置 - - - Duration: - 持续时间: - - - Curve: - 曲线: - - - easeNone - 缓慢(easeNone) - - - Source: - 源: - - - Velocity: - 速率: - - - Spring: - 弹性: - - - Damping: - 阻尼: - - - ID: - ID: - - - Property name: - 属性名称: - - - - GradientDialog - - Edit Gradient - 编辑渐进 - - - - GradientEditor - - Form - 界面 - - - Gradient Editor - 渐进编辑器 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - Gradient Stops Editor - 渐进终止编辑器 - - - Zoom - 缩放 - - - Reset Zoom - 重置缩放 - - - Position - 位置 - - - Hue - 色调 - - - Saturation - 饱和度 - - - Sat - 饱和度 - - - Value - - - - Val - - - - Alpha - Alpha通道 - - - Type - 类型 - - - Spread - 展开 - - - Color - 颜色 - - - Current stop's color - 当前终止点颜色 - - - Show HSV specification - 显示 HSV 信息 - - - Show RGB specification - 显示 RGB 信息 - - - Current stop's position - 当前终止点位置 - - - Zoom In - 放大 - - - Zoom Out - 缩小 - - - Toggle details extension - 显示详情 - - - Linear Type - 线性型 - - - ... - ... - - - Radial Type - 放射型 - - - Conical Type - 圆锥型 - - - Pad Spread - 填充展开 - - - Repeat Spread - 重复展开 - - - Reflect Spread - 反射展开 - - - Start X - 起点横坐标(X) - - - Start Y - 起点纵坐标(Y) - - - Final X - 终点横坐标(X) - - - Final Y - 终点纵坐标(Y) - - - Central X - 中心横坐标(X) - - - Central Y - 中心纵坐标(Y) - - - Focal X - 焦点横坐标(X) - - - Focal Y - 焦点纵坐标(Y) - - - Radius - 半径 - - - Angle - 角度 - - - Linear - 线性 - - - Radial - 放射 - - - Conical - 圆锥 - - - Pad - 填充 - - - Repeat - 重复 - - - Reflect - 反射 - - - - QtGradientDialog - - Edit Gradient - 编辑渐进 - - - - QtGradientEditor - - Form - 界面 - - - Gradient Editor - 渐变编辑器 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - Gradient Stops Editor - 渐变终止点编辑器 - - - Zoom - 缩放 - - - Reset Zoom - 重置缩放 - - - Position - 位置 - - - Hue - 色调 - - - Saturation - 饱和度 - - - Sat - 饱和度 - - - Value - - - - Val - - - - Alpha - Alpha通道 - - - Type - 类型 - - - Spread - 展开 - - - Color - 颜色 - - - Current stop's color - 当前终止点颜色 - - - Show HSV specification - 显示 HSV 信息 - - - Show RGB specification - 显示 RGB 信息 - - - Current stop's position - 当前终止点位置 - - - Zoom In - 放大 - - - Zoom Out - 缩小 - - - Toggle details extension - 显示详情 - - - Linear Type - 线性型 - - - ... - ... - - - Radial Type - 放射型 - - - Conical Type - 圆锥型 - - - Pad Spread - 填充展开 - - - Repeat Spread - 重复展开 - - - Reflect Spread - 反射展开 - - - Start X - 起点横坐标(X) - - - Start Y - 起点纵坐标(Y) - - - Final X - 终点横坐标(X) - - - Final Y - 终点纵坐标(Y) - - - Central X - 中心横坐标(X) - - - Central Y - 中心纵坐标(Y) - - - Focal X - 焦点横坐标(X) - - - Focal Y - 焦点纵坐标(Y) - - - Radius - 半径 - - - Angle - 角度 - - - Linear - 线性 - - - Radial - 放射 - - - Conical - 圆锥 - - - Pad - 填充 - - - Repeat - 重复 - - - Reflect - 反射 - - - - QtGradientView - - Gradient View - 渐变视图 - - - New... - 新建... - - - Edit... - 编辑... - - - Rename - 重命名 - - - Remove - 删除 - - - Grad - 渐变 - - - Remove Gradient - 删除渐变 - - - - QtGradientViewDialog - - Select Gradient - 选择渐变 - - - - QmlDesigner::Internal::SettingsPage - - Form - 界面 - - - Files - 文件 - - - Open file in: - 打开文件: - - - Design mode - 设计模式 - - - Edit mode - 编辑模式 - - - Snapping - hard to translate - Snapping - - - Item spacing - 项之间的间隔 - - - Snap margin - 页面快照 - - - Qt Quick Designer - Qt Quick 设计器 - - - Snap margin: - snap边距: - - - Item spacing: - 项之间的间隔: - - - Canvas - 画布 - - - Width - 宽度 - - - Height - 高度 - - - - MaemoConfigTestDialog - - Device Configuration Test - 设备配置测试 - - - - MaemoSettingsWidget - - Maemo Device Configurations - Maemo设备配置 - - - Configuration: - 配置: - - - Add - 添加 - - - Remove - 删除 - - - Test - 测试 - - - Deploy Key ... - 部署密钥... - - - Name - 名称 - - - Device type: - 设备类型: - - - Remote Device - 远程设备 - - - Local Simulator - 本地设备 - - - Authentication type: - 验证类型: - - - Password - 密码 - - - Key - 密钥 - - - Host Name: - 主机名称: - - - IP or host name of the device - 设备的IP或者主机名称 - - - Ports: - 端口: - - - Gdb server: - Gdb 服务器: - - - Connection Timeout: - 连接超时: - - - Timeout value in milliseconds - 超时(毫秒) - - - User Name: - 用户名: - - - Password: - 密码: - - - Private key file: - 私钥文件: - - - s - - - - Generate SSH Key ... - 创建SSH密钥... - - - Remote device - 远程设备 - - - Maemo emulator - Maemo模拟器 - - - Host name: - 主机名称: - - - Connection timeout: - 连接超时: - - - Username: - 用户名: - - - SSH port: - SSH端口: - - - Free ports: - 空闲端口: - - - TextLabel - TextLabel - - - Show password - 显示密码 - - - - MaemoSshConfigDialog - - SSH Key Configuration - SSH密钥配置 - - - Use key from location: - 使用密钥来自: - - - Private key file: - 私钥文件: - - - Generate SSH Key - 创建SSH密钥 - - - Deploy Public Key - 部署公钥 - - - Close - 关闭 - - - Options - 选项 - - - Key size: - 密钥长度: - - - Key algorithm: - 密钥算法: - - - Key - 密钥 - - - Save public Key... - 保存公钥文件... - - - Save private Key... - 保存私钥文件... - - - Save Public Key... - 保存公钥文件... - - - Save Private Key... - 保存私钥文件... - - - Key &size: - 密钥长度(&S): - - - &Generate SSH Key - 生成SSH密钥(&G) - - - Save P&ublic Key... - 保存公钥文件... - - - Save Pr&ivate Key... - 保存私钥文件... - - - &Close - 关闭(&C) - - - - RemoteLinux - - Self-signed certificate - 自签名证书 - - - Custom certificate: - 自定义证书: - - - Choose certificate file (.cer) - 选择证书文件(.cer) - - - Key file: - 密钥文件: - - - Not signed - 未签名 - - - Create Smart Installer package - 创建智能安装包 - - - Resets saved passphrases for all used keys - 重置所有保存的密钥的口令(passphrase) - - - Reset Passphrases - 重置口令 - - - Choose certificate file - 选择证书文件 - - - Certificate's details - 验证详情 - - - - VcsBase::CleanDialog - - Clean repository - 清空库 - - - The directory %1 could not be deleted. - 目录 %1 无法被删除。 - - - The file %1 could not be deleted. - 文件 '%1' 无法被删除。 - - - There were errors when cleaning the repository %1: - 清理代码仓库%1时发生错误: - - - Delete... - 删除... - - - Name - 名称 - - - Repository: %1 - 仓库: %1 - - - %n bytes, last modified %1 - - %n 个字节, 最后修改时间 %1 - - - - %1 bytes, last modified %2 - %1 字节, 最后修改 %2 - - - Delete - 删除 - - - Do you want to delete %n files? - - 您想删除 %n 个文件吗? - - - - Cleaning %1 - 正在清理 %1 - - - Clean Repository - 清空代码库 - - - - CommonSettingsPage - - Wrap submit message at: - 提交信息折行在: - - - characters - 字符 - - - An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. - 一个可执行档,以保存在临时文件中的提交信息为首参数。当提交失败时以非零值退出并在标准错误中输出信息。 - - - Submit message check script: - 提交信息检查脚本: - - - A file listing user names and email addresses in a 4-column mailmap format: -name <email> alias <email> - 一个列出用户名和电子邮件地址的文件,使用四列的邮件映射格式: -名字 <电子邮件> 别名 <email> - - - User/alias configuration file: - 用户/别名配置文件: - - - A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. - 一个包含了如 ”Reviewed-By:" 等字段名的简单文件,其内容会被添加在提交编辑器的下面。 - - - User fields configuration file: - 用户字段配置文件: - - - Specifies a command that is executed to graphically prompt for a password, -should a repository require SSH-authentication (see documentation on SSH and the environment variable SSH_ASKPASS). - 指定一条执行图形化提示密码的命令, -会在代码仓库要求 SSH 身份验证的时候用到。(查看 SSH 和环境变量 SSH_ASKPASS 的相关文档)。 - - - SSH prompt command: - SSH 提示命令: - - - Submit message &check script: - 提交信息检查脚本(&C): - - - User/&alias configuration file: - 用户/别名配置文件(&A): - - - User &fields configuration file: - 用户字段配置文件(&F): - - - &Patch command: - 补丁命令(&P): - - - &SSH prompt command: - SSH 提示命令(&S): - - - - ExtensionSystem::PluginDetailsView - - None - - - - - ExtensionSystem::PluginView - - Load on Startup - 启动时载入 - - - Utilities - 实用工具 - - - - QmlJS::Check - - '%1' is not a valid property name - '%1' 不是一个有效的属性名称 - - - unknown type - 未知类型 - - - unknown value for enum - 未知的枚举值 - - - ids must be lower case or start with underscore - id必须使用小写字母或者开始于下划线 - - - ids must be unique - id 必须独一无二 - - - unknown identifier - 未知的认证 - - - could not resolve - 无法处理 - - - does not have members - 没有成员 - - - unknown member - 未知成员 - - - == and != perform type coercion, use === or !== instead to avoid - == 和 != 类型强制转换, 使用 === 或 !== 来避免 - - - blocks do not introduce a new scope, avoid - 块不引入一个新的范围,阻止 - - - use of the with statement is not recommended, use a var instead - 使用with语句不推荐,使用变量来代替 - - - use of void is usually confusing and not recommended - 使用void通常会造成困扰,不推荐 - - - avoid comma expressions - 避免逗号表达式 - - - expression statements should be assignments, calls or delete expressions only - 表达式语句应分配,只可使用或者删除表达式 - - - '%1' does not have members - '%1' 没有成员 - - - '%1' is not a member of '%2' - '%1' 不是'%2'的成员 - - - easing-curve name is not a string - easing-curve的名称不是一个字符串 - - - unknown easing-curve name - 未知的 easing-curve 名 - - - value might be 'undefined' - 值可能 '未定义' - - - enum value is not a string or number - 枚举形不是一个字符串或者数字 - - - numerical value expected - 期望数值类型的数据 - - - boolean value expected - 期望布尔类型的数据 - - - string value expected - 期望字符串类型的数据 - - - not a valid url - 不是一个有效的连接 - - - file or directory does not exist - 文件或目录不存在 - - - not a valid color - 不是一个有效的颜色 - - - expected anchor line - 期望anchor行 - - - unreachable - 无法到达 - - - declarations should be at the start of a function - 声明必须在函数开头 - - - already a formal parameter - 已经是一个正式的参数 - - - already declared as function - 已经声明过的函数 - - - duplicate declaration - 重复声明 - - - variable is used before being declared - 变量在声明之前使用 - - - already declared as var - 已经定义为变量 - - - function is used before being declared - 函数在声明之前就使用 - - - properties can only be assigned once - 属性只能分配一次 - - - prototype cycle, the last non-repeated object is %1 - 原型周期,最后一个不重复的对象是 %1 - - - expected id - 期望id - - - using string literals for ids is discouraged - 不推荐标识符使用字符串 - - - '%1' is not a valid property type - '%1' 不是一个有效的属性名称 - - - unintentional empty block, use ({}) for empty object literal - 无意的空块, 为空对象使用 ({}) - - - 'new' should only be used with functions that start with an uppercase letter - 'new' 只可以被使用在功能开始于大写字母 - - - calls of functions that start with an uppercase letter should use 'new' - 调用函数开始于大写字母,应当使用'new' - - - avoid assignments in conditions - 避免条件转让 - - - case is not terminated and not empty - 情况是不被终止不为空 - - - case does not end with return, break, continue or throw - case 语句没有在结尾处:return, break, continue 或 throw - - - ids must be lower case - 标识符必须小写 - - - 'int' or 'real' - '整数' 或 '实数' - - - - QmlJS::Interpreter::QmlXmlReader - - The file is not module file. - 此文件不是模块文件. - - - Unexpected element <%1> in <%2> - 未预料到的<%2>中的元素 <%1> - - - invalid value '%1' for attribute %2 in <%3> - 赋给 <%3>的属性 %2 的值 '%1'无效 - - - <%1> has no valid %2 attribute - <%1> 没有有效的%2 属性 - - - - QmlJS::Link - - could not find file or directory - 找不到文件或文件夹 - - - expected two numbers separated by a dot - 两个数字应该由点号分隔 - - - package import requires a version number - 导入包需要版本号 - - - package not found - 无法找到软件包文件 - - - Library contains C++ plugins, type dump is in progress. - 库包含了C++ 插件, 类型清空中. - - - file or directory not found - 文件或路径未找到 - - - QML module not found - -Import paths: -%1 - -For qmake projects, use the QML_IMPORT_PATH variable to add import paths. -For qmlproject projects, use the importPaths property to add import paths. - QML 模块未找到 - -导入路径: -%1 - -对于 qmake 项目, 使用QML_IMPORT_PATH 来添加导入路径。 -对于qmlproject 项目,使用 importPaths 属性来添加导入路径。 - - - QML module contains C++ plugins, currently reading type information... - QML 模块包含C++ 插件,正读取类型信息... - - - - Utils::FileWizardDialog - - Location - 位置 - - - - Utils::FilterLineEdit - - Filter - 过滤器 - - - Clear text - 清除文字 - - - - Utils::fileDeletedPrompt - - File has been removed - 文件已经被删除 - - - The file %1 has been removed outside Qt Creator. Do you want to save it under a different name, or close the editor? - 文件%1已经在Qt Creator外部被删除,您想要另存为其他名称或者关闭编辑器吗? - - - The file %1 was removed. Do you want to save it under a different name, or close the editor? - 文件%1已经被删除。您想将它以另一个名字保存呢,或者关闭编辑器吗? - - - &Close - 关闭(&C) - - - Save &as... - 另存为(&A)... - - - &Save - 保存(&S) - - - Close - 关闭 - - - Save as... - 另存为... - - - Save - 保存 - - - - Utils::UnixTools - - <table border=1 cellspacing=0 cellpadding=3><tr><th>Variable</th><th>Expands to</th></tr><tr><td>%d</td><td>directory of current file</td></tr><tr><td>%f</td><td>file name (with full path)</td></tr><tr><td>%n</td><td>file name (without path)</td></tr><tr><td>%%</td><td>%</td></tr></table> - <table border=1 cellspacing=0 cellpadding=3><tr><th>变量</th><th>扩展为</th></tr><tr><td>%d</td><td>当前文件所在目录</td></tr><tr><td>%f</td><td>文件名 (带完整路径)</td></tr><tr><td>%n</td><td>文件名 (不带路径)</td></tr><tr><td>%%</td><td>%</td></tr></table> - - - - Utils::LinearProgressWidget - - ... - ... - - - - BINEditor::BinEditor - - Decimal unsigned value (little endian): %1 -Decimal unsigned value (big endian): %2 -Decimal signed value (little endian): %3 -Decimal signed value (big endian): %4 - 十进制无符号数值 (little endian): %1 -十进制无符号数值 (big endian): %2 -十进制有符号数值 (little endian): %3 -十进制有符号数值 (big endian): %4 - - - Previous decimal unsigned value (little endian): %1 -Previous decimal unsigned value (big endian): %2 -Previous decimal signed value (little endian): %3 -Previous decimal signed value (big endian): %4 - 上一个无符号十进制值 (小端): %1 -上一个无符号十进制值 (大端): %2 -上一个有符号十进制值 (小端): %3 -上一个有符号十进制值 (大端): %4 - - - Memory at 0x%1 - 0x%1 处的内存 - - - Decimal&nbsp;unsigned&nbsp;value: - 十进制&nbsp;无符号&nbsp;数值: - - - Decimal&nbsp;signed&nbsp;value: - 十进制&nbsp;有符号&nbsp;数值: - - - Previous&nbsp;decimal&nbsp;unsigned&nbsp;value: - 上一个&nbsp;十进制&nbsp;无符号&nbsp;数值: - - - Previous&nbsp;decimal&nbsp;signed&nbsp;value: - 上一个&nbsp;十进制&nbsp;有符号&nbsp;数值: - - - %1-bit&nbsp;Integer&nbsp;Type - %1-bit&nbsp;整数&nbsp;类型 - - - Little Endian - no official chinese word for this - Little Endian - - - Big Endian - Big Endian - - - Binary&nbsp;value: - 二进制&nbsp;数值: - - - Octal&nbsp;value: - 八进制&nbsp;数值: - - - Previous&nbsp;binary&nbsp;value: - 上一个&nbsp;二进制&nbsp;数值: - - - Previous&nbsp;octal&nbsp;value: - 上一个&nbsp;八进制&nbsp;数值: - - - <i>double</i>&nbsp;value: - <i>双精度浮点数</i>&nbsp;数值: - - - Previous <i>double</i>&nbsp;value: - 上一个<i>双精度浮点数</i>&nbsp;数值: - - - <i>float</i>&nbsp;value: - <i>浮点数</i>&nbsp;数值: - - - Previous <i>float</i>&nbsp;value: - 上一个<i>浮点数</i>&nbsp;数值: - - - Copying Failed - 复制失败 - - - You cannot copy more than 4 MB of binary data. - 您不能复制超过 4 MB 的二进制数据。 - - - Copy Selection as ASCII Characters - 复制选中部分作为 ASCII 字符串 - - - Copy Selection as Hex Values - 复制选中部分作为十六进制值 - - - Set Data Breakpoint on Selection - 选中时设置数据断点 - - - Jump to Address in This Window - 在当前窗口中跳转到地址 - - - Jump to Address in New Window - 在新窗口中跳转到地址 - - - Jump to Address 0x%1 in This Window - 在当前窗口中跳转到地址 0x%1 - - - Jump to Address 0x%1 in New Window - 在新窗口中跳转到地址 0x%1 - - - - BINEditor::Internal::ImageViewerFactory - - Image Viewer - 图像查看器 - - - - CMakeProjectManager - - Desktop - CMake Default target display name - 桌面 - - - Make - Display name for CMakeProjectManager::MakeStep id. - Make - - - - Core::CommandMappings - - Command - 命令 - - - Label - 标签 - - - - Core::DesignMode - - Design - 设计 - - - - Core::Internal::SystemEditor - - Could not open url %1. - 无法打开url '%1'。 - - - - Core::EditorToolBar - - Split - 分栏 - - - Copy Full Path to Clipboard - 复制完整路径到剪贴板 - - - Remove Split - 删除分栏 - - - Make Writable - 使文件可写 - - - Make writable - 使文件可写 - - - File is writable - 文件可写 - - - - CodePaster - - Pastebin.com - Pastebin.com - - - <Comment> - <注释> - - - Paste - 粘贴 - - - - CppEditor - - C++ Files and Classes - C++ 文件和类 - - - C++ - C++ - - - - VCS - - CVS Commit Editor - CVS提交编辑器 - - - CVS Command Log Editor - CVS命令行日志编辑器 - - - CVS File Log Editor - CVS文件日志编辑器 - - - CVS Annotation Editor - CVS注释编辑器 - - - CVS Diff Editor - CVS Diff编辑器 - - - Git Command Log Editor - Git命令行日志编辑器 - - - Git File Log Editor - Git文件日志编辑器 - - - Git Annotation Editor - Git注释编辑器 - - - Git Diff Editor - Git Diff编辑器 - - - Git Submit Editor - Git 提交编辑器 - - - Mercurial Command Log Editor - Mercurial 命令行日志编辑器 - - - Mercurial File Log Editor - Mercurial文件日志编辑器 - - - Mercurial Annotation Editor - Mercurial注释编辑器 - - - Mercurial Diff Editor - Mercurial Diff编辑器 - - - Mercurial Commit Log Editor - Mercurial 提交日志编辑器 - - - Perforce.SubmitEditor - Perforce提交编辑器 - - - Perforce CommandLog Editor - Perforce 命令行日志编辑器 - - - Perforce Log Editor - Perforce日志编辑器 - - - Perforce Diff Editor - Perforce Diff 编辑器 - - - Perforce Annotation Editor - Perforce注释编辑器 - - - Subversion Editor - Subversion编辑器 - - - Subversion Commit Editor - Subversion提交编辑器 - - - Subversion Command Log Editor - Subversion命令行日志编辑器 - - - Subversion File Log Editor - Subversion文件日志编辑器 - - - Subversion Annotation Editor - Subversion注释编辑器 - - - Subversion Diff Editor - Subversion Diff 编辑器 - - - Bazaar Command Log Editor - Bazaar 命令行日志编辑器 - - - Bazaar File Log Editor - Bazaar 文件日志编辑器 - - - Bazaar Annotation Editor - Bazaar注释编辑器 - - - Bazaar Diff Editor - Bazaar Diff编辑器 - - - Bazaar Commit Log Editor - Bazaar 提交日志编辑器 - - - ClearCase Check In Editor - ClearCase Check In 编辑器 - - - ClearCase Command Log Editor - ClearCase 命令行日志编辑器 - - - ClearCase File Log Editor - ClearCase 文件日志编辑器 - - - ClearCase Annotation Editor - ClearCase 注释编辑器 - - - ClearCase Diff Editor - ClearCase Diff 编辑器 - - - - Cvs - - Annotate revision "%1" - 注释修订版本 "%1" - - - - Debugger - - Toolchains - 工具链 - - - Duplicate binary - 复制二进制档 - - - The binary '%1' already exists. - 二进制档 '%1' 已经存在。 - - - Select binary and toolchains - 选择二进制和工具链 - - - Gdb binary - Gdb 二进制 - - - Date: - 日期: - - - Date - 日期 - - - Location - 位置 - - - - Designer - - This file can only be edited in Design Mode. - 此文件仅可在设计模式中编辑。 - - - Open Designer - 打开设计师 - - - This file can only be edited in <b>Design</b> mode. - 此文件仅可在<b>设计</b>模式中编辑。 - - - Switch mode - 切换模式 - - - Location - 位置 - - - - FakeVim::Internal::FakeVimExCommandsPage - - Ex Command Mapping - 额外命令映射 - - - FakeVim - FakeVim - - - Ex Trigger Expression - 额外触发表达式 - - - Regular expression: - 正则表达式: - - - Regular Expression: - 正则表达式: - - - Ex Command - 额外命令 - - - - Find::FindPlugin - - &Find/Replace - 查找/替换(&F) - - - Advanced Find - 高级查找 - - - Open Advanced Find... - 打开高级查找... - - - Advanced... - 高级... - - - Ctrl+Shift+F - Ctrl+Shift+F - - - - GenericProjectManager::Internal::GenericMakeStep - - Make - Make - - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Qt Creator 需要设置一个编译器来构建。在构建套件选项里设置一个编译器。 - - - Configuration is faulty. Check the Issues view for details. - 配置错误,请检查"问题"视图获得详细信息。 - - - Override %1: - 覆盖 %1: - - - Make arguments: - Make 参数: - - - Targets: - 目标: - - - - Git - - (no branch) - (没有分支) - - - Unable to determine the repository for %1. - 无法为 %1 决定仓库。 - - - Error: Git timed out after %1s. - 错误: Git 在 %1秒后超时. - - - Blame %1 - Blame %1 - - - Blame parent revision %1 - Blame父修订版本 %1 - - - - Help - - Error loading: %1 - 载入 %1 除错 - - - Unknown or unsupported Content! - 未知的或不支持的内容! - - - (Untitled) - (未命名) - - - Close %1 - 关闭%1 - - - Close All Except %1 - 除了%1 以外全部关闭 - - - - Mercurial - - Annotate %1 - 注释 "%1" - - - Annotate parent revision %1 - 注释父修订版本 %1 - - - - Perforce::Internal::PerforceEditor - - Annotate change list "%1" - 注释变更列表 "%1" - - - - ProjectExplorer::BuildConfiguration - - Build - Display name of the build build step list. Used as part of the labels in the project window. - 构建 - - - Clean - Display name of the clean build step list. Used as part of the labels in the project window. - 清理 - - - System Environment - 系统环境变量 - - - Clean Environment - 清理时的环境变量 - - - - ProjectExplorer::BuildEnvironmentWidget - - Clear system environment - 清除系统环境变量 - - - Build Environment - 构建环境 - - - - BuildSettingsPanelFactory - - Build Settings - 构建设置 - - - - BuildSettingsPanel - - Build Settings - 构建设置 - - - - ProjectExplorer::CustomWizard - - Details - Default short title for custom wizard page to be shown in the progress pane of the wizard. - 详情 - - - Creates a C++ plugin to extend the funtionality of the QML runtime. - Creates a plug-in for the QML runtime. - 为扩展QML运行时的功能创建一个C++插件. - - - QML Runtime Plug-in - QML运行时插件 - - - QML Runtime Plug-in Parameters - QML运行时插件参数 - - - Example Object Class-name: - 举例对象类名: - - - Creates a plain C project using qmake, not using the Qt library. - 创建一个使用QMake的纯C语言项目,不使用Qt 库。 - - - Creates a plain C++ project using qmake, not using the Qt library. - 创建一个使用qmake的纯C++语言项目,不使用Qt 库。 - - - Creates a C++ plugin that makes it possible to offer extensions that can be loaded dynamically into applications using the QDeclarativeEngine class. - 创建一个C++插件,可以提供用QDeclarativeEngine类动态载入的扩展。 - - - Custom QML Extension Plugin - 自定义QML扩展插件 - - - QML Extension Plugin - QML扩展插件 - - - Custom QML Extension Plugin Parameters - 自定义QML扩展插件的参数 - - - Object Class-name: - 对象类名: - - - URI: - URI: - - - The project name and the object class-name cannot be the same. - 项目名和对象类名不能相同。 - - - Creates a custom Qt Creator plugin. - 创建一个自定义Qt Creator插件。 - - - Qt Creator plugin - Qt Creator插件 - - - URL: - URL: - - - Other Project - 其他项目 - - - Creates a plain C project using QMake, not using the Qt library. - 使用QMake创建一个纯C语言的项目, 不使用Qt 的库. - - - Plain C Project - 纯C语言项目 - - - Creates a plain C++ project using QMake, not using the Qt library. - 使用QMake创建一个纯C语言的项目, 不使用Qt 的库. - - - Creates an application descriptor file. - 创建一个应用程序描述符文件。 - - - Application descriptor - 应用程序描述符 - - - BlackBerry - 黑莓 - - - Creates a Qt Gui application for BlackBerry. - 为“黑莓”创建一个Qt图形应用程序。 - - - BlackBerry Qt Gui Application - “黑莓”Qt图形应用程序 - - - Creates an Qt5 application descriptor file. - 创建一个Qt5应用程序的描述符文件。 - - - Qt5 Application descriptor - Qt5应用程序描述符 - - - Creates an experimental Qt5 Gui application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices. - 为“黑莓”10系统创建一个实验性的Qt5图形界面程序。您需要自己构建“黑莓“10系统的Qt5,因为目前“黑莓”10的NDK尚不提供Qt5,而且DevAlpha设备中也没有包括Qt5。 - - - BlackBerry Qt5 Gui Application - “黑莓”上的Qt5图形应用程序 - - - Creates an experimental Qt Quick 2 application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices. - 为“黑莓”10系统创建一个实验性的Qt Quick 2程序。您需要自己构建“黑莓“10系统的Qt5,因为目前“黑莓”10的NDK尚不提供Qt5,而且DevAlpha设备中也没有包括Qt5。 - - - BlackBerry Qt Quick 2 Application - “黑莓”上的Qt Quick 2程序 - - - Creates a Qt Quick application for BlackBerry. - 为“黑莓”创建一个Qt Quick程序。 - - - BlackBerry Qt Quick Application - “黑莓”上的Qt Quick 程序 - - - Type: - 类型: - - - Non-Qt Project - 非Qt 项目 - - - Creates a plain C project using CMake, not using the Qt library. - 创建一个使用CMake的纯C语言项目,不使用Qt 库。 - - - Plain C Project (CMake Build) - 纯C项目(使用CMake构建) - - - Plain C++ Project - 纯C++语言项目 - - - Creates a plain C++ project using CMake, not using the Qt library. - 创建一个使用CMake的纯C语言项目,不使用Qt 库。 - - - Plain C++ Project (CMake Build) - 纯C++项目(使用CMake构建) - - - Libraries - - - - Qt Creator Plugin - Qt Creator插件 - - - Plugin Information - 插件信息 - - - Plugin name: - 插件名称: - - - Vendor name: - 供应商名称: - - - Copyright: - 版权: - - - License: - 许可: - - - Description: - 说明: - - - Url: - Url: - - - Qt Creator sources: - Qt Creator源文件: - - - Qt Creator build: - Qt Creator构建: - - - Deploy into: - 部署到: - - - Qt Creator build - Qt Creator 构建 - - - Local user settings - 本地用户设置 - - - - ProjectExplorer::CustomProjectWizard - - The project %1 could not be opened. - 无法打开项目 %1 。 - - - - ProjectExplorer::Internal::CustomWizardPage - - Path: - 路径: - - - - DependenciesPanel - - Dependencies - 依赖关系 - - - - DependenciesPanelFactory - - Dependencies - 依赖关系 - - - - EditorSettingsPanelFactory - - Editor Settings - 编辑器设置 - - - Editor - 编辑器 - - - - EditorSettingsPanel - - Editor Settings - 编辑器设置 - - - Editor - 编辑器 - - - - Core::FolderNavigationWidget - - Open - 打开 - - - Open parent folder - 打开上级文件夹 - - - Open "%1" - 打开 "%1" - - - Open with - 用...打开 - - - Choose folder... - 选择文件夹... - - - Choose folder - 选择文件夹 - - - Show in Explorer... - 在Explorer中显示... - - - Show in Finder... - 在搜索器中显示 ... - - - Show containing folder... - 显示包含的目录... - - - Open Command Prompt here... - 在此打开命令行控制台... - - - Open Terminal here... - 在此打开终端... - - - Open Parent Folder - 打开上级目录 - - - Choose Folder... - 选择目录... - - - Choose Folder - 选择目录 - - - Find in this directory... - 在这个目录中搜索... - - - Show Containing Folder... - 显示包含的目录... - - - Open Command Prompt Here... - 在此打开命令行控制台... - - - Open Terminal Here... - 在此打开终端... - - - Launching a file browser failed - 启动文件浏览器失败 - - - Unable to start the file manager: - -%1 - - - 无法启动文件管理器: - -%1 - - - - - '%1' returned the following error: - -%2 - '%1' 返回以下错误: - -%2 - - - Settings... - 设定... - - - Launching Windows Explorer Failed - 启动Windows Explorer 失败 - - - Launching Windows Explorer failed - 启动Windows Explorer 失败 - - - Could not find explorer.exe in path to launch Windows Explorer. - 在环境变量中找不到explorer.exe,无法启动Windows Explorer. - - - - ProjectExplorer::Internal::MiniTargetWidget - - Select active build configuration - 选择激活构建配置 - - - Select active run configuration - 选择激活运行配置 - - - Build: - 构建: - - - Run: - 运行: - - - - ProjectExplorer::Internal::MiniProjectTargetSelector - - Project - 项目 - - - Kit - 构建套件(Kit) - - - Build - 构建 - - - Deploy - 部署 - - - Run - 运行 - - - Unconfigured - 未配置 - - - <b>Project:</b> %1 - <b>项目:</b> %1 - - - <b>Target:</b> %1 - <b>目标:</b> %1 - - - <b>Build:</b> %1 - <b>构建:</b> %1 - - - <b>Deploy:</b> %1 - <b>部署:</b> %1 - - - <b>Run:</b> %1 - <b>运行:</b> %1 - - - %1 - %1 - - - <html><nobr>%1</html> - <html><nobr>%1</html> - - - Project: <b>%1</b><br/> - 项目: <b>%1</b><br/> - - - Kit: <b>%1</b><br/> - 构建套件: <b>%1</b><br/> - - - Build: <b>%1</b><br/> - 构建: <b>%1</b><br/> - - - Deploy: <b>%1</b><br/> - 部署: <b>%1</b><br/> - - - Run: <b>%1</b><br/> - 运行: <b>%1</b><br/> - - - <style type=text/css>a:link {color: rgb(128, 128, 255, 240);}</style>The project <b>%1</b> is not yet configured<br/><br/>You can configure it in the <a href="projectmode">Projects mode</a><br/> - <style type=text/css>a:link {color: rgb(128, 128, 255, 240);}</style>项目 <b>%1</b> 尚未配置<br/><br/>您可以在 <a href="projectmode">项目模式</a>中配置它<br/> - - - Build: - 构建: - - - Run: - 运行: - - - <html><nobr><b>Project:</b> %1<br/>%2%3<b>Run:</b> %4%5</html> - <html><nobr><b>项目:</b> %1<br/>%2%3<b>运行:</b> %4%5</html> - - - <b>Target:</b> %1<br/> - <b>目标:</b> %1<br/> - - - <b>Build:</b> %2<br/> - <b>构建:</b> %2<br/> - - - - ProjectExplorer::ProjectConfiguration - - Clone of %1 - %1 的克隆 - - - - TargetSettingsPanelFactory - - Targets - 目标 - - - Build & Run - 构建和运行 - - - - RunSettingsPanelFactory - - Run Settings - 运行设置 - - - - RunSettingsPanel - - Run Settings - 运行设置 - - - - ProjectExplorer::Internal::TargetSettingsPanelWidget - - No target defined. - 没有定义目标. - - - Cancel Build && Remove Target - 退出构建并移除目标 - - - No kit defined in this project. - 项目中未定义构建套件(Kit)。 - - - Cancel Build && Remove Kit - 退出构建并移除构建套件 - - - Do Not Remove - 不要移除 - - - Remove Kit %1? - 移除套件%1吗? - - - The kit <b>%1</b> is currently being built. - 构建套件<b>%1</b>正在被构建。 - - - Do you want to cancel the build process and remove the Kit anyway? - 您无论如何都要取消构建进程并且删除此构建套件吗? - - - Do you really want to remove the -"%1" kit? - 您真的想删除 -构建套件"%1" 吗? - - - Remove Target %1? - 移除目标%1? - - - The target <b>%1</b> is currently being built. - 目标<b>%1</b> 正在被构建. - - - Do you want to cancel the build process and remove the Target anyway? - 您想要取消构建并移除目标? - - - Qt Creator - Qt Creator - - - Do you really want to remove the -"%1" target? - 您真的想删除 -目标"%1" ? - - - - GenericProjectManager::GenericTarget - - Desktop - Generic desktop target display name - 桌面 - - - - QmakeProjectManager - - Desktop - Qt4 Desktop target display name - 桌面 - - - Symbian Emulator - Qt4 Symbian Emulator target display name - 塞班模拟器 - - - Symbian Device - Qt4 Symbian Device target display name - 塞班设备 - - - Maemo Emulator - Qt4 Maemo Emulator target display name - Maemo模拟器 - - - Maemo Device - Qt4 Maemo Device target display name - Maemo设备 - - - Qt Simulator - Qt4 Simulator target display name - Qt模拟器 - - - <b>Device:</b> Not connected - <b>设备:</b> 没有连接 - - - <b>Device:</b> %1 - <b>设备:</b> %1 - - - <b>Device:</b> %1, %2 - <b>设备:</b> %1, %2 - - - - QmlProjectManager::QmlTarget - - QML Runtime - QML Runtime target display name - QML运行环境 - - - QML Viewer - QML Viewer target display name - QML 查看器 - - - - QmlDesigner::ComponentView - - whole document - 整个文档 - - - - QmlDesigner::DesignDocumentController - - -New Form- - -新界面- - - - Cannot save to file "%1": permission denied. - 无法保存到文件 "%1": 没有权限。 - - - Parent folder "%1" for file "%2" does not exist. - 文件 "%2" 的上级目录 "%1" 不存在。 - - - Error - 错误 - - - Cannot write file: "%1". - 无法写入文件" %1". - - - - QmlDesigner::XUIFileDialog - - Open file - 打开文件 - - - Save file - 保存文件 - - - Open File - 打开文件 - - - Save File - 保存文件 - - - Declarative UI files (*.qml) - 声明式的UI文件(*.qml) - - - All files (*) - 所有文件 (*) - - - - QmlDesigner::ItemLibrary - - Library - Title of library view - - - - Items - Title of library items view - - - - Resources - Title of library resources view - 资源 - - - <Filter> - Library search input hint text - <过滤器> - - - - QmlDesigner::NavigatorTreeModel - - Invalid id. -Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - 无效id -仅支持字母数字和下划线 -标识符必须是以小写字母打头. - - - Item id must be unique. - 项id必须唯一. - - - Unknown item: %1 - 未知项 %1 - - - Invalid Id - 无效标识符 - - - %1 is an invalid id - 标识符%1无效 - - - %1 already exists - %1已存在 - - - Warning - 警告 - - - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - 在此重定义父级组件%1 将会导致组件%2被删除。您想要继续吗? - - - - QmlDesigner::NavigatorWidget - - Navigator - Title of navigator view - 导航 - - - Become first sibling of parent (CTRL + Left) - 成为父节点的第一个兄弟点 (CTRL + Left) - - - Become child of first sibling (CTRL + Right) - 成为第一个兄弟节点的子节点 (CTRL + Right) - - - Move down (CTRL + Down) - 下移(CTRL + Down) - - - Move up (CTRL + Up) - 上移(CTRL + Up) - - - - QmlDesigner::PluginManager - - About plugins - 关于插件 - - - About Plugins - 关于插件 - - - - WidgetPluginManager - - Failed to create instance. - 创建实例失败。 - - - Not a QmlDesigner plugin. - 不是一个QmlDesigner的插件。 - - - Failed to create instance of file '%1': %2 - 无法创建文件 '%1'的实例: %2 - - - Failed to create instance of file '%1'. - 无法创建文件 '%1'的实例。 - - - File '%1' is not a QmlDesigner plugin. - 文件 '%1' 不是一个 QmlDesigner 的插件。 - - - - QmlDesigner::AllPropertiesBox - - Properties - Title of properties view. - 属性 - - - - FileWidget - - Open File - 打开文件 - - - - qdesigner_internal::QtGradientStopsController - - Hue - 色调 - - - Sat - 饱和度 - - - Val - - - - Saturation - 饱和度 - - - Value - - - - R - R - - - Red - - - - Green - 绿 - - - Blue - - - - - QtGradientStopsWidget - - New Stop - 新的停止 - - - Delete - 删除 - - - Flip All - 反选全部 - - - Select All - 全选 - - - Zoom In - 放大 - - - Zoom Out - 缩小 - - - Reset Zoom - 重置缩放 - - - - QmlDesigner::Internal::StatesEditorModel - - base state - Implicit default state - 基本状态 - - - Invalid state name - 无效状态名称 - - - The empty string as a name is reserved for the base state. - 空字符串是为基本状态保留的名称. - - - Name already used in another state - 名称已经被其他状态使用 - - - - QmlDesigner::Internal::StatesEditorWidgetPrivate - - base state - 基本状态 - - - State%1 - Default name for newly created states - 状态%1 - - - - QmlDesigner::StatesEditorWidget - - States - Title of Editor widget - 状态 - - - - QmlDesigner::Internal::SubComponentManagerPrivate - - QML Components - QML组件 - - - - QmlDesigner::Internal::ModelPrivate - - invalid type - 无效类型 - - - - QmlDesigner::RewriterView - - Error parsing - 解析错误 - - - Internal error - 内部错误 - - - "%1" - "%1" - - - line %1 - 行 %1 - - - column %1 - 列 %1 - - - - QmlDesigner::Internal::DocumentWarningWidget - - <a href="goToError">Go to error</a> - <a href="goToError">转到错误</a> - - - %3 (%1:%2) - %3 (%1:%2) - - - Internal error (%1) - 内部错误(%1) - - - - QmlDesigner::Internal::DesignModeWidget - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Delete - 删除 - - - Delete "%1" - 删除 "%1" - - - Cu&t - 剪切(&T) - - - Cut "%1" - 剪切 "%1" - - - &Copy - 复制(&C) - - - Copy "%1" - 复制 "%1" - - - &Paste - 粘贴(&P) - - - Paste "%1" - 粘贴 "%1" - - - Select &All - 全选(&A) - - - Select All "%1" - 全选"%1" - - - Toggle Full Screen - 切换到全屏 - - - &Restore Default View - 重置到默认视图(&R) - - - &Go into Component - 进入组件(&G) - - - Toggle &Left Sidebar - 切换左边栏(&L) - - - Toggle &Right Sidebar - 切换右边栏(&R) - - - Projects - 项目 - - - File System - 文件系统 - - - Open Documents - 打开的文档 - - - Qt Quick emulation layer crashed - Qt Quick 模拟层崩溃 - - - - QmlDesigner::Internal::BauhausPlugin - - Switch Text/Design - 切换 文本/设计 - - - Save %1 As... - %1另存为 ... - - - &Save %1 - 保存%1(&S) - - - Revert %1 to Saved - 恢复%1 到已保存的状态 - - - Close %1 - 关闭%1 - - - Close All Except %1 - 除了%1 以外全部关闭 - - - Close Others - 关闭其他 - - - - Qml::Internal::QLineGraph - - Frame rate - 帧率 - - - - Qml::Internal::GraphWindow - - Total time elapsed (ms) - 总消耗时间(毫秒) - - - - Qml::Internal::CanvasFrameRate - - Resolution: - 分辨率: - - - Clear - 清空 - - - New Graph - 新图表 - - - Enabled - 启用 - - - - Qml::Internal::ExpressionQueryWidget - - <Expression> - <表达式> - - - Write and evaluate QtScript expressions. - 编写和求值QtScript表达式. - - - Clear Output - 清空输出 - - - Debug Console - - 调试控制台 - - - - <Type expression to evaluate> - <输入表达式用于求值> - - - Script Console - - 脚本控制台 - - - - Expression queries - 表达式查询 - - - Expression queries (using context for %1) - Selected object - 表达式查询(为%1使用上下文) - - - <%n items> - - <%n 个项> - - - - - Qml::Internal::ObjectPropertiesView - - Name - 名称 - - - Value - - - - Type - 类型 - - - &Watch expression - 监视表达式 (&W) - - - &Remove watch - 删除监视(&R) - - - Show &unwatchable properties - 显示不可监视的属性(&U) - - - &Group by item type - 按项类型分组(&G) - - - <%n items> - - <%n 个项> - - - - Hide unwatchable properties - 隐藏不可监视的属性 - - - Show unwatchable properties - 显示不可监视的属性 - - - - Qml::Internal::ObjectTree - - Add watch... - 添加监视 - - - Add watch expression... - 添加监视表达式 ... - - - Show uninspectable items - 显示无法监视的项 - - - Go to file - 转到文件 - - - Watch expression - 监视表达式 - - - Expression: - 表达式: - - - - Qml::Internal::WatchTableModel - - Name - 名称 - - - Value - - - - - Qml::Internal::WatchTableView - - Stop watching - 停止监视 - - - - Qml::InspectorOutputWidget - - Output - 输出 - - - Clear - 清空 - - - - Qml::Internal::EngineSpinBox - - Engine %1 - engine number - 引擎 %1 - - - - Qml::QmlInspector - - No active project, debugging canceled. - 没有激活的项目,调试取消. - - - Failed to connect to debugger - 连接调试器失败 - - - Could not connect to debugger server. - 无法连接调试服务器. - - - Invalid project, debugging canceled. - 无效的项目,退出调试. - - - Cannot find project run configuration, debugging canceled. - 无法找到运行配置,调试取消. - - - [Inspector] set to connect to debug server %1:%2 - [检查器] 设置为连接到调试服务器 %1:%2 - - - [Inspector] disconnected. - - - [检查器] 断开连接. - - - - - [Inspector] resolving host... - [检查器] 解析主机... - - - [Inspector] connecting to debug server... - [检查器] 连接到调试服务器... - - - [Inspector] connected. - - [检查器] 已连接. - - - [Inspector] closing... - [检查器] 正在关闭... - - - Script console - 脚本控制台 - - - Start Debugging C++ and QML Simultaneously... - 同步启动QML和C++的调试... - - - No project was found. - 没有找到任何项目. - - - No run configurations were found for the project '%1'. - 在项目'%1'中没有找到运行配置. - - - A valid run control was not registered in Qt Creator for this project run configuration. - 在Qt Creator 的项目的运行配置中未注册一个有效的运行控制. - - - Debugging failed: could not start C++ debugger. - 调试失败:无法启动C++调试器. - - - Frame rate - 帧速率 - - - QML engine: - QML 引擎: - - - Object Tree - 对象树 - - - Properties and Watchers - 属性和监视器 - - - Script Console - 脚本控制台 - - - Output of the QML inspector, such as information on connecting to the server. - QML检查器的输出,如连接到服务器时的信息。 - - - - Qml::QmlInspectorPlugin - - Failed to connect to debugger - 连接调试器失败 - - - Could not connect to debugger server. Please check your settings from Projects pane. - 无法链接调试服务器.请检查项目设置. - - - - QmlJSEditor - - Rename... - 重命名... - - - New id: - 新ID: - - - Rename id '%1'... - 重命名ID '%1' ... - - - <Select Symbol> - <选择符号> - - - Enable Qt Quick Designer - 启用Qt Quick 设计器 - - - Qt Creator -> About Plugins... - Qt Creator -> 关于插件... - - - Help -> About Plugins... - 帮助 -> 关于插件... - - - Enable experimental Qt Quick Designer? - 启用尚处在实验阶段的Qt Quick 设计器吗? - - - Cancel - 取消 - - - Please restart Qt Creator - 请重新启动Qt Creator - - - Please restart Qt Creator to make the change effective. - 请重新启动Qt Creator使配置生效. - - - Creates a Qt QML file. - 创建一个Qt QML 文件. - - - Qt QML File - Qt QML 文件 - - - Creates a QML file. - 创建一个QML文件。 - - - QML File - QML文件 - - - Creates a JavaScript file. - 创建一个JavaScript文件。 - - - JS File - JS 文件 - - - Rename Symbol Under Cursor - 重命名光标所在符号 - - - Ctrl+Shift+R - Ctrl+Shift+R - - - Run Checks - 运行检查 - - - Ctrl+Shift+C - Ctrl+Shift+C - - - Reformat File - 重新格式化文件 - - - QML - QML - - - QML Analysis - QML 分析 - - - Follow Symbol Under Cursor - 跟踪光标位置的符号 - - - Find Usages - 搜索被使用的地方 - - - Ctrl+Shift+U - Ctrl+Shift+U - - - Show Qt Quick Toolbar - 显示Qt Quick工具栏 - - - Unfiltered - 未过滤 - - - Library at %1 - %1 is library path - %1中的库 - - - Dumped plugins successfully. - 成功读取插件。 - - - Read typeinfo files successfully. - 读取typeinfo文件成功。 - - - Indexing - 索引中 - - - Type dump of QML plugin in %0 failed. -Errors: -%1 - - 在 %0 丢弃QML插件失败. -错误: -%1 - - - - QmlProjectManager::QmlProject - - Error while loading project file! - 载入项目文件时发生错误! - - - Error while loading project file %1. - 载入项目文件%1时发生错误。 - - - QML project: %1 - QML 项目: %1 - - - Warning while loading project file %1. - 载入项目文件 %1时收到警告信息。 - - - File '%1' does not exist or is not readable. - 文件 '%1'不存在或不可读。 - - - Device type is not desktop. - 设备类型不是桌面。 - - - No Qt version set in kit. - 构建套件中未设置Qt版本。 - - - Error while loading `project file %1. - 载入项目文件时发生错误%1. - - - - QmlProjectManager::Internal::QmlProjectApplicationWizardDialog - - New QML Project - 新建 QML 项目 - - - This wizard generates a QML application project. - 本向导将创建一个QML 应用项目。 - - - New Qt Quick UI Project - 新建Qt Quick UI项目 - - - This wizard generates a Qt Quick UI project. - 此向导将生成一个Qt Quick的UI项目。 - - - - QmlProjectManager::Internal::QmlProjectApplicationWizard - - Qt QML Application - Qt QML 应用 - - - Creates a Qt QML application. - 创建一个Qt QML 应用。 - - - Qt Quick UI - Qt Quick UI - - - Creates a Qt Quick UI project with a single QML file that contains the main view. - -You can review Qt Quick UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. - -Requires <b>Qt 4.7.4</b> or newer. - 创建一个包含主视图的单一QML文件的Qt Quick UI项目。 - -您可以在QML查看器中查看Qt Quick UI项目而不需要构建项目。创建和运行此类项目不需要在您的电脑中安装开发环境。 - -需要<b>Qt 4.7.4</b> 或更新版本。 - - - File generated by QtCreator - qmlproject Template - Comment added to generated .qmlproject file - Qt Creator创建的文件 - - - Include .qml, .js, and image files from current directory and subdirectories - qmlproject Template - Comment added to generated .qmlproject file - 在当前目录和子目录下包含的qml,js和图片文件 - - - List of plugin directories passed to QML runtime - qmlproject Template - Comment added to generated .qmlproject file - 列出QML运行环境下的插件目录 - - - The project %1 could not be opened. - 项目 %1 无法被打开。 - - - - QmlProjectManager - - Qt Quick Project - Qt Quick 项目 - - - - QmlProjectManager::Internal::QmlProjectImportWizardDialog - - Import Existing Qt QML Directory - 导入现有的 QML文件夹 - - - Project Name and Location - 项目名称和路径 - - - Project name: - 项目名称: - - - Location: - 路径: - - - Location - 路径 - - - - QmlProjectManager::Internal::QmlProjectImportWizard - - Import Existing Qt QML Directory - 导入现有的Qt QML文件夹 - - - Creates a QML project from an existing directory of QML files. - 使用现有目录中的 QML 文件创建一个 QML项目。 - - - File generated by QtCreator - qmlproject Template - Comment added to generated .qmlproject file - Qt Creator创建的文件 - - - Include .qml, .js, and image files from current directory and subdirectories - qmlproject Template - Comment added to generated .qmlproject file - 从当前目录和子目录下包含qml, .js和图片文件 - - - List of plugin directories passed to QML runtime - qmlproject Template - Comment added to generated .qmlproject file - 列出QML运行环境下的插件目录 - - - The project %1 could not be opened. - 项目 %1 无法被打开 - - - - QmlProjectManager::Internal::Manager - - Failed opening project '%1': Project already open - 打开项目 '%1'失败:项目已经被打开 - - - Failed opening project '%1': Project file is not a file - 打开项目 '%1'失败: 项目文件不是一个文件 - - - - QmlProjectManager::QmlProjectRunConfiguration - - QML Runtime - QMLRunConfiguration display name. - QML运行环境 - - - QML Runtime - QML运行环境 - - - QML Runtime arguments: - QML 运行参数: - - - No qmlviewer or qmlobserver found. - 没有找到qml查看器或qml观察器. - - - No qmlviewer or qmlscene found. - 没有找到qmlviewer或qmlscene。 - - - QML Scene - QMLRunConfiguration display name. - QML Scene - - - QML Viewer - QMLRunConfiguration display name. - QML 查看器 - - - Manage Qt versions - 管理Qt版本 - - - Qt version: - Qt 版本: - - - Arguments: - 参数: - - - Debugger: - 调试器: - - - Main QML file: - QML主文件: - - - Invalid Qt version - 非法的Qt版本 - - - QML Viewer - QML 查看器 - - - QML Viewer arguments: - QML 查看器参数: - - - Main QML File: - 主 QML 文件: - - - Debugging Address: - 调试地址: - - - Debugging Port: - 调试端口: - - - - QmlManager - - <Current File> - <当前文件> - - - - QmlProjectManager::Internal::QmlProjectRunConfigurationFactory - - Run QML Script - 运行QML脚本 - - - QML Viewer - QML 查看器 - - - QML Scene - QML Scene - - - - QmakeProjectManager - - Testing configuration... - 测试配置... - - - Stop Test - 停止测试 - - - Device configuration test failed: -%1 - 设备配置测试失败: -%1 - - - Testing configuration. This may take a while. - 测试设置.这将需要一点时间. - - - Remote process failed: %1 - 远端进程失败:%1 - - - Qt version mismatch! Expected Qt on device: 4.6.2 or later. - Qt版本不符合!需要Qt4.6.2或者更新的版本. - - - Mad Developer is not installed.<br>You will not be able to deploy to this device. - Mad Developer未安装.<br>您将无法在该设备上部署. - - - %1 is not installed.<br>You will not be able to deploy to this device. - 没有安装 %1 .<br>您将无法部署到此设备. - - - Please switch the device to developer mode via Settings -> Security. - 请通过 设置-> 安全 选项来切换设备到开发模式。 - - - Error retrieving list of used ports: %1 - 无法搜索到已使用的端口: %1 - - - All specified ports are available. - 所有指定的端口都可用。 - - - The following supposedly free ports are being used on the device: - 以下有可能可使用的端口已经被设备使用: - - - Device configuration okay. - 设备配置完毕. - - - Close - 关闭 - - - Device configuration test failed: Unexpected output: -%1 - 设备配置测试失败:意外的输出 -%1 - - - Hardware architecture: %1 - - 硬件架构:%1 - - - - Kernel version: %1 - - 内核版本:%1 - - - - Device configuration successful. - - 设备成功配置. - - - - No Qt packages installed. - 没有安装Qt包. - - - List of installed Qt packages: - 已经安装的Qt包列表: - - - Start Maemo Emulator - 启动Maemo模拟器 - - - Stop Maemo Emulator - 停止Maemo模拟器 - - - Package Creation - 生成包 - - - No Version Available. - 没有可用的版本. - - - Could not read icon - 无法调入图标 - - - Images - 图片 - - - Choose Image - 选择图片 - - - Choose Image (will be scaled to 48x48 pixels if necessary) - 选择图像(会缩放到 48x48 像素, 如果需要) - - - Could Not Set New Icon - 无法设置新图标 - - - Could not set project name. - 无法设置项目名称。 - - - Could not set package name for project manager. - 无法为项目管理器设置包的名称。 - - - Could not set project description. - 无法设置项目描述。 - - - <b>Create Package:</b> - <b>创建 包:</b> - - - (Packaging disabled) - (禁止打包) - - - Could Not Set Version Number - 无法设置版本号 - - - Choose a local file - 选择一个本地文件 - - - File already in package - 文件已经存在于包中 - - - Run configuration name: - 运行配置名称: - - - Fetch Device Environment - 获取设备环境 - - - <a href="%1">Manage device configurations</a> - <a href="%1">管理Maemo设备配置</a> - - - <a href="%1">Set Debugger</a> - <a href="%1">设置调试器</a> - - - Device configuration: - 设备配置: - - - Executable on host: - 主机上的执行档: - - - Executable on device: - 设备上的执行档: - - - C++ only - 只是C++ - - - QML only - 只是QML - - - C++ and QML - C++和QML - - - Debugging type: - 调试类型: - - - Use remote GDB - 使用远程 GDB - - - Use remote GDB server - 使用远程 GDB 服务器 - - - <b>Debugging details:</b> Use GDB - <b>调试详细信息:</b> 使用GDB - - - <b>Debugging details:</b> Use GDB server - <b>调试详细信息:</br>使用gdb 服务器 - - - Use remote gdb - 使用远程gdb - - - Use remote gdbserver - 使用远程gdbserver - - - Choose directory to mount - 选择挂载的目录 - - - <b>Debugging details:</b> Use gdb - <b>调试详细信息:</br>使用gdb - - - <b>Debugging details:</b> Use gdbserver - <b>调试详细信息:</br>使用gdbserver - - - Cancel Fetch Operation - 取消获取操作 - - - Device error - 设备错误 - - - Fetching environment failed: %1 - 获取环境失败:%1 - - - No local directories to be mounted on the device. - 没有本地目录将被挂载到设备. - - - One local directory to be mounted on the device. - 一个本地目录将被挂载到设备. - - - %n local directories to be mounted on the device. - Note: Only mountCount>1 will occur here as 0, 1 are handled above. - - %n个本地目录将被挂载到设备上. - - - - Device Configuration: - 设备配置: - - - Simulator: - 模拟器: - - - New Device Configuration %1 - Standard Configuration name with number - 新设备配置%1 - - - Choose public key file - 选择公钥文件 - - - Public Key Files(*.pub);;All Files (*) - 选择公钥文件(*.pub);;所有文件 (*) - - - Could not read public key file '%1'. - 无法读取公钥文件 '%1'. - - - Key deployment failed: %1. - 部署密钥失败:%1. - - - Stop deploying - 停止部署 - - - Deploy Public Key ... - 部署公钥... - - - Deployment Failed - 部署失败 - - - Choose Public Key File - 选择公钥文件 - - - Stop Deploying - 停止部署 - - - Key deployment failed: %1 - 密钥部署失败:%1 - - - Deployment Succeeded - 部署成功 - - - Key was successfully deployed. - 部署密钥成功. - - - Deploy Key ... - 部署公钥... - - - Deploy Public Key - 展开公钥 - - - Save public key file - 保存公钥文件 - - - Save private key file - 保存私钥文件 - - - Save Public Key File - 保存公钥文件 - - - Save Private Key File - 保存私钥文件 - - - Error writing file - 写文件时发生错误 - - - Could not write file '%1': - %2 - 无法写入文件 '%1': - %2 - - - Error in cryptography backend: %1 - 后台加密发生错误:%1 - - - - RemoteLinux - - Could not find make command '%1' in the build environment - 在构建环境中找不到'%1'命令 - - - Package Modified - 包修改完成 - - - Packages Modified - 包修改完成 - - - Ignore patching for this packaging step. - 忽略打补丁这个打包过程。 - - - No certificate file specified. Please specify one in the project settings. - 没有指定验证文件。请在项目设置中选一个。 - - - Certificate file "%1" does not exist. Please specify an existing certificate file in the project settings. - 验证文件"%1" 不存在.请在项目设置中指定一个存在的验证文件. - - - No key file specified. Please specify one in the project settings. - 没有指定密钥。请在项目设置中设置一个。 - - - Key file "%1" does not exist. Please specify an existing key file in the project settings. - 密钥文件"%1" 不存在.请在项目设置中指定一个存在的密钥文件. - - - The package created will not install on a device as some of the defined capabilities are not supported by the certificate: %1 - 由于一些权限不被验证支持,所以创建的包将不会被安装到设备上: %1 - - - The process "%1" exited normally. - 进程"%1"正常退出. - - - The process "%1" exited with code %2. - 进程"%1"退出,退出代码 %2 。 - - - The process "%1" crashed. - 进程"%1"崩溃。 - - - Could not start process "%1" in %2 - 无法在%2启动进程'%1' - - - Starting: "%1" %2 in %3 - - 正在启动: "%1" %2 在 %3 - - - - RemoteLinux - - self-signed - 自签名 - - - signed with certificate %1 and key file %2 - 签名使用证书 %1 和密钥 %2 - - - Default - 默认 - - - SDK Location - SDK 路径 - - - Choose Qt folder - 选择Qt文件夹 - - - Step 1 of 2: Choose GnuPoc folder - 步骤1/2:选择GnuPoc文件夹 - - - Step 2 of 2: Choose Qt folder - 步骤2/2:选择Qt文件夹 - - - Adding GnuPoc - 添加GnuPoc - - - GnuPoc and Qt folders must not be identical. - GnuPoc 和 Qt folders 不能为相同文件夹. - - - - QmakeProjectManager - - Evaluating - 评估中 - - - No Qt version set in kit. - 构建套件中未设置Qt版本。 - - - The .pro file '%1' does not exist. - .pro文件 '%1'不存在。 - - - The .pro file '%1' is not part of the project. - .pro文件 '%1' 不是项目的一部分。 - - - The .pro file '%1' could not be parsed. - 无法解析.pro文件 '%1'。 - - - - QtSupport - - No qmake path set - 没有设置qmake路径 - - - qmake does not exist or is not executable - qmake不存在或者不可执行 - - - Qt version has no name - 没有设置Qt版本名称 - - - <unknown> - <未知> - - - System - 系统 - - - Qt %1 in PATH (%2) - 在 PATH (%2)中的Qt %1 - - - Qt %1 (%2) - Qt %1 (%2) - - - Qt version is not properly installed, please run make install - Qt没有被正确安装,请运行make install - - - Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong? - 无法确定Qt安装的二进制所在的路径,或许qmake的路径设置出现了错误? - - - The default mkspec symlink is broken. - 默认的mkspec 符号链接错误。 - - - ABI detection failed: Make sure to use a matching compiler when building. - ABI 检测失败: 确保构建时使用一个匹配的编译器。 - - - Non-installed -prefix build - for internal development only. - -prefix构建未安装 - 仅供内部使用。 - - - Failed to detect the ABI(s) used by the Qt version. - 无法检测Qt版本使用的ABI(s). - - - ABI detection failed: Make sure to use a matching tool chain when building. - ABI 检测失败: 构建时确保使用一个匹配的工具链. - - - No qmlscene installed. - qmlscene未安装。 - - - No qmlviewer installed. - 未安装qmlviewer。 - - - The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured - "Open C/C++ plugin" 没有安装到Symbian SDK 或者Symbian SDK路径没有配置对 - - - SBS was not found. - 未找到SBS . - - - Desktop - Qt Version is meant for the desktop - 桌面 - - - Maemo - Qt Version is meant for Maemo5 - Maemo - - - Harmattan - Qt Version is meant for Harmattan - Harmattan - - - Qt Simulator - Qt Version is meant for Qt Simulator - Qt模拟器 - - - unkown - No idea what this Qt Version is meant for! - 未知 - - - Qt version %1, using mkspec %2 (%3) - Qt 版本%1, 使用mkspec %2 (%3) - - - Cannot determine the installation path for Qt version '%1'. - 无法确定Qt版本'%1'的安装路径。 - - - The Qt Version has no tool chain. - 此Qt 版本没有工具链。 - - - Building helper(s) with toolchain '%1' ... - - 使用工具链'%1'构建助手 ... - - - - Building helper(s) with toolchain '%1'... - - 使用工具链 '%1' 构建"助手"... - - - Build failed. - 构建失败. - - - Build succeeded. - 构建成功。 - - - The Qt Version has no toolchain. - 此Qt 版本没有工具链. - - - Qt for WinCE - Qt Version is meant for WinCE - Qt for WinCE - - - Embedded Linux - Qt Version is used for embedded Linux development - 嵌入式 Linux - - - - QmakeProjectManager - - Mobile Qt Application - 移动Qt应用 - - - Creates a Qt application optimized for mobile devices with a Qt Designer-based main window. - -Preselects Qt for Simulator and mobile targets if available - 创建一个基于Qt设计师的主窗体应用,为移动设备优化。 - -预选可用的用于模拟器和移动目标平台的Qt版本 - - - Creates a mobile Qt Gui Application with one form. - 创建有一个界面的移动Qt Gui应用. - - - Modules - 模块 - - - Kits - 构建套件(Kit) - - - Qt Creator can set up the following targets: - Qt Creator可以设置如下目标: - - - Qt Version - Qt版本 - - - Status - 状态 - - - Directory - 目录 - - - Add shadow build location... - 添加 shadow build 路径... - - - Import - Is this an import of an existing build or a new one? - 导入 - - - New - Is this an import of an existing build or a new one? - 新建 - - - Choose a directory to scan for additional shadow builds - 为额外的shadow build选择一个需要扫描的目录 - - - No builds found - 没有找到构建 - - - No builds for project file "%1" were found in the folder "%2". - %1: pro-file, %2: directory that was checked. - 在文件夹 "%2"中没有找到项目文件 "%1"的构建. - - - Check All - 选中全部 - - - Check all Qt versions - 选中全部Qt版本 - - - Check only this version - 只选中该版本 - - - Check all versions - 选中全部版本 - - - Uncheck all versions - 取消选中所有版本 - - - debug and release - We are going to build debug and release - 调试和发布 - - - debug - Debug build - 调试 - - - release - release build - 发布 - - - <br>using %1 (%2) - %1: qmake used (incl. full path), %2: "debug", "release" or "debug and release" - <br>使用%1(%2) - - - New - Is this an import of an existing build or a new one? - 新建 - - - Build Directory - 构建目录 - - - Import existing shadow build... - 导入存在的shadow构建... - - - Import Existing Shadow Build... - 导入存在的shadow build... - - - Uncheck all Qt versions - 反选所有Qt版本 - - - Uncheck All - 取消选中 - - - <b>No valid qt versions found.</b><br> Please add a qt version in Tools/Options or via the maintenance tool of the SDK. - <b>没有找到有效的qt 版本.</b><br> 请在 工具/选项中添加或者使用SDK中的工具. - - - <html><head/><body><p><b>No valid Qt versions found.</b></p><p>Please add a Qt version in <i>Tools/Options</i> or via the maintenance tool of the SDK.</p></body></html> - <html><head/><body><p><b>没有有效的Qt版本.</b></p><p> 请添加Qt 版本在<i>工具/选项</i> 或者使用SDK的管理工具.</p></body></html> - - - Qt Unit Test - Qt单元测试 - - - Creates a QTestLib-based unit test for a feature or a class. Unit tests allow you to verify that the code is fit for use and that there are no regressions. - 为某个类或某功能创建一个基于QTestLib的单元测试。单元测试让您验证代码可用并且没有倒退。 - - - Creates a Qt Unit Test. - 创建一个Qt单元测试. - - - This wizard generates a Qt unit test consisting of a single source file with a test class. - 本向导将创建一个Qt单元测试,其中包括一个含有测试类的源文件。 - - - - Subversion::Internal::SubversionEditor - - Annotate revision "%1" - 注释修订版本 "%1" - - - - TextEditor::TextEditorPlugin - - Creates a text file (.txt). - 创建一个文本文件(.txt). - - - Text File - 文本文件 - - - General - 概要 - - - Ctrl+Space - Ctrl+Space - - - Meta+Space - Meta+Space - - - Triggers a quick fix in this scope - 在当前范围内触发快速修正 - - - Alt+Return - Alt+Return - - - - VcsBase::VcsBasePlugin - - Version Control - 版本控制 - - - The file '%1' could not be deleted. - 文件 '%1' 无法被删除。 - - - Choose repository directory - 选择分支目录 - - - Choose Repository Directory - 选择代码仓库目录 - - - The directory '%1' is already managed by a version control system (%2). Would you like to specify another directory? - 目录 '%1' 已经被一个版本控制系统(%2)管理。您想要指定另一个目录吗? - - - Repository already under version control - 代码仓库已经处于版本控制下 - - - Repository Created - 仓库创建成功 - - - Repository Creation Failed - 仓库创建失败 - - - Error: Executable timed out after %1s. - 错误:可执行档在 %1 秒后超时。 - - - There is no patch-command configured in the common 'Version Control' settings. - 在'版本控制' 设置中没有设定patch-command。 - - - Unable to launch '%1': %2 - 无法启动'%1': %2 - - - A timeout occurred running '%1' - 运行'%1'发生超时 - - - '%1' crashed. - '%1' 崩溃。 - - - '%1' failed (exit code %2). - '%1' 失败 (退出代码 %2)。 - - - Repository created - 代码仓库被创建 - - - A version control repository has been created in %1. - 在%1处创建版本控制仓库。 - - - Repository creation failed - 创建代码仓库失败 - - - A version control repository could not be created in %1. - 在%1处版本控制仓库无法被创建。 - - - - trk::Launcher - - Cannot open remote file '%1': %2 - 无法打开远程文件'%1': %2 - - - Cannot open '%1': %2 - 无法打开'%1' : %2 - - - No device is connected. Please connect a device and try again. - 没有设备连接。请连接设备后再试。 - - - Unable to acquire a device for port '%1'. It appears to be in use. - 无法监听设备端口'%1',看起来此端口正在被使用. - - - - AboutDialog - - About Bauhaus - AboutDialog - 关于Bauhaus - - - - StartExternalQmlDialog - - Start Simultaneous QML and C++ Debugging - 启动QML和C++的同步调试 - - - Debugging address: - 调试地址: - - - Debugging port: - 调试端口: - - - Project: - 项目: - - - <No project> - <没有项目> - - - Viewer path: - 查看器路径: - - - Viewer arguments: - 查看器参数: - - - To switch languages while debugging, go to Debug->Language menu. - 调试中需要切换语言,请进入调试->语言菜单. - - - - RemoteLinux - - Package contents: - 软件包内容: - - - Check this if you want the files below to be deployed directly. - 如果您希望以下文件被直接展开,请选中此项. - - - Skip packaging step - 跳过打包步骤 - - - Version number: - 版本号: - - - Major: - 主版本: - - - Minor: - 副版本: - - - Patch: - 补丁: - - - Add File to Package - 添加文件到包 - - - Remove File from Package - 从包中移除文件 - - - <b>Version number:</b> - <b>版本号</b> - - - <b>Adapt Debian file:</b> - <b>适应 Debian 文件:</b> - - - Edit - 编辑 - - - <b>Package Manager icon:</b> - <b>包管理器图标</b> - - - Package name: - 包名称: - - - Package version: - 包版本: - - - Name to be displayed in Package Manager: - 在包管理器里显示的名称: - - - Icon to be displayed in Package Manager: - 在包管理器里显示的图标: - - - Size is 48x48 pixels - 尺寸是48x48像素 - - - Adapt Debian file: - 插入 Debian 文件: - - - Edit spec file - 编辑spec文件 - - - Edit... - 编辑... - - - - Utils::FancyMainWindow - - Locked - 锁定 - - - Reset to Default Layout - 重置为默认布局 - - - Reset to default layout - 重置为默认布局 - - - - GenericSshConnection - - Could not connect to host. - 无法连接主机. - - - Error in cryptography backend: %1 - 后台加密发生错误:%1 - - - - Core::InteractiveSshConnection - - Error sending input - 发送输入信息错误 - - - - Core::SftpConnection - - Error setting up SFTP subsystem - 设置 SFTP 子系统发生错误 - - - Could not open file '%1' - 无法打开文件 '%1' - - - Could not uplodad file '%1' - 无法上传文件 '%1' - - - Could not copy remote file '%1' to local file '%2' - 无法复制远程文件 '%1' 为本地文件 '%2' - - - Could not create remote directory - 无法创建远程目录 - - - Could not remove remote directory - 无法删除远程目录 - - - Could not get remote directory contents - 无法获得远程目录内容 - - - Could not remove remote file - 无法删除远程文件 - - - Could not change remote working directory - 无法改变远程工作目录 - - - - SshKeyGenerator - - Error creating temporary files. - 创建临时文件失败. - - - Error generating keys: %1 - 生成密钥失败:%1 - - - Error reading temporary files. - 读取临时文件失败. - - - Error generating key: %1 - 生成密钥失败:%1 - - - Password for Private Key - 私钥密码 - - - It is recommended that you secure your private key -with a password, which you can enter below. - 推荐使用密码保护 -您的私钥, 在下面输入。 - - - Encrypt Key File - 加密密钥文件 - - - Do Not Encrypt Key File - 不要加密密钥文件 - - - Encrypt key file - 加密密钥文件 - - - Do not encrypt key file - 不要加密密钥文件 - - - - CodePaster - - Cannot open %1: %2 - 无法打开%1 : %2 - - - %1 does not appear to be a paster file. - %1似乎不是一个粘贴(paster)文件。 - - - Error in %1 at %2: %3 - 文件 %1 在 %2发生错误: %3 - - - Please configure a path. - 请配置一个路径. - - - Unable to open a file for writing in %1: %2 - 写入方式打开文件%1失败: %2 - - - Pasted: %1 - 粘贴了 "%1" - - - Fileshare - 文件共享 - - - %1 - Configuration Error - %1 - 配置错误 - - - Settings... - 设定... - - - - ProjectExplorer::Internal::SessionNameInputDialog - - Enter the name of the session: - 输入会话的名称: - - - Switch to - 切换到 - - - - Qml::Internal::EngineComboBox - - Engine %1 - engine number - 引擎 %1 - - - - Qml::Internal::StartExternalQmlDialog - - <No project> - <没有项目> - - - - QmlJSEditor - - Failed to preview Qt Quick file - 预览Qt Quick文件失败 - - - Could not preview Qt Quick (QML) file. Reason: -%1 - 无法预览Qt Quick (QML) 文件. 原因: -%1 - - - - QmakeProjectManager - - Local File Path - 本地文件路径 - - - Remote File Path - 远程文件路径 - - - Creating package file ... - 创建包文件... - - - Cannot open MADDE config file '%1'. - 无法打开MADDE配置文件'%1'. - - - Packaging Error: Cannot open file '%1'. - 打包错误:无法打开文件'%1'. - - - Packaging Error: Cannot write file '%1'. - 打包错误:无法写入文件'%1'. - - - Packaging Error: Could not create directory '%1'. - 打包错误:无法创建文件夹'%1'. - - - Packaging Error: Could not replace file '%1'. - 打包错误:无法覆盖文件'%1'. - - - Packaging Error: Could not copy '%1' to '%2'. - 打包错误:无法复制文件'%1'到'%2'. - - - Package created. - 打包完成. - - - Package Creation: Running command '%1'. - 生成包:运行命令'%1'. - - - Packaging failed. - 打包失败. - - - Packaging for Maemo - 正在为Maemo打包 - - - Package up to date. - 包已更新. - - - Could not move package files from %1 to %2. - 无法将包文件从%1移动到%2. - - - Could not move package file from %1 to %2. - 无法移动包文件从%1 到%2. - - - Packaging failed: Foreign debian directory detected. - 打包失败:检测到外部debian目录. - - - Could not remove directory '%1'. - 无法删除目录'%1'. - - - Could not create Debian directory '%1'. - 无法创建Debian目录'%1'. - - - Could not copy file '%1' to '%2' - 无法拷贝文件‘%1’到'%2' - - - Error: Could not create create file '%1'. - 错误:无法创建文件'%1'. - - - Packaging error: Could not start command '%1'. Reason: %2 - 打包错误:无法执行命令'%1' 原因'%2' - - - Reason: %1 - 原因 %1 - - - Exit code: %1 - 退出代码: %1 - - - Could not remove directory '%1': %2 - 无法删除目录'%1': %2 - - - Error: Could not create file '%1'. - 错误:无法创建文件'%1'. - - - Packaging Error: Command '%1' timed out. - 打包错误:命令%1'超时. - - - Packaging Error: Command '%1' failed. - 打包错误:命令%1'失败. - - - Output was: - 输出是: - - - - Debugger - - Unable to start pdb '%1': %2 - 无法启动 pdb '%1': %2 - - - Adapter start failed - 适配器启动失败 - - - Python Error - Python错误 - - - '%1' contains no identifier - '%1' 不包含标识符 - - - String literal %1 - 字符串 %1 - - - Cowardly refusing to evaluate expression '%1' with potential side effects - 表达式 '%1' 有潜在的副作用所以无法计算其值 - - - Pdb I/O Error - Pdb I/O 错误 - - - The Pdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. - Pdb 进程启动失败。可能是调用程序 '%1' 缺失,或者您没有足够的权限调用此程序。 - - - The Pdb process crashed some time after starting successfully. - Pdb 进程在正常启动后崩溃。 - - - An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel. - 尝试写入 Pdb 进程时发生错误。例如,进程可能不在运行或者它关闭了自己的输入通道。 - - - An error occurred when attempting to read from the Pdb process. For example, the process may not be running. - 尝试从 Pdb 进程读取时发生错误。例如,进程可能不在运行。 - - - An unknown error in the Pdb process occurred. - Pdb 进程发生了未知错误。 - - - - ProjectExplorer::Internal::TargetSelector - - Run - 运行 - - - Build - 构建 - - - - QmlDesigner::PropertyEditor - - Properties - 属性 - - - Invalid Id - 无效标识符 - - - %1 is an invalid id - ID %1非法 - - - %1 already exists - %1已存在 - - - - RemoteLinux - - The Symbian SDK and the project sources must reside on the same drive. - 塞班SDK和项目源文件必须在同一分区上。 - - - The Symbian SDK was not found for Qt version %1. - Qt版本 %1 没有找到塞班SDK。 - - - The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1. - 在塞班SDK中没有安装"Open C/C++ 插件"或者塞班SDK的路径对Qt版本 %1 设置错误。 - - - The Symbian toolchain does not handle special characters in a project path well. - 塞班的工具链无法处理项目路径中的特殊字符。 - - - The Symbian tool chain does not handle spaces in the project path '%1'. - 塞班工具链不能处理在项目路径中的空间'%1'. - - - The Symbian tool chain does not handle special characters in the project name '%1' well. - 塞班工具链不能很好处理在项目路径中的空间'%1'. - - - - QtSupport - - The Qt version is invalid: %1 - %1: Reason for being invalid - Qt版本无效: %1 - - - The qmake command "%1" was not found or is not executable. - %1: Path to qmake executable - qmake命令 "%1" 没有找到或不可执行。 - - - - QmakeProjectManager - - Qmake does not support build directories below the source directory. - Qmake不支持源文件目录下的构建目录。 - - - The build directory needs to be at the same level as the source directory. - 构建目录必须和源文件目录为同级目录。 - - - Warning: Cannot build QMLObserver; Qt version must be 4.7.1 or higher. - 警告:无法构建QMLObserver;Qt必须为4.7.1或更高版本. - - - Warning: Cannot build qmldump; Qt version must be 4.7.1 or higher. - 警告:无法构建qmldump.Qt必须为4.7.1或更高版本. - - - - CppTools::QuickFix - - Rewrite Using %1 - 使用 %1 重写 - - - Swap Operands - 交换操作数 - - - Rewrite Condition Using || - 使用 || 重写条件 - - - Split Declaration - 分离声明 - - - Add Curly Braces - 添加大括号 - - - Move Declaration out of Condition - 将声明移到条件之外 - - - Split if Statement - 分离if语句 - - - Enclose in %1(...) (Qt %2) - 封装在%1(...) (Qt %2) - - - Enclose in %1(...) - 封装在 %1(...) - - - Convert to String Literal - 转换为文本字符串 - - - Convert to Character Literal and Enclose in QLatin1Char(...) - 转换为字符并用QLatin1Char(...)封装 - - - Convert to Character Literal - 转换为文本字符 - - - Add #include %1 - 添加#include %1 - - - Switch with Previous Parameter - 与上一个参数切换 - - - Switch with Next Parameter - 与下一个参数切换 - - - Enclose in QLatin1Char(...) - 用QLatin1Char(...)封装 - - - Enclose in QLatin1String(...) - 用QLatin1String(...)封装 - - - Mark as Translatable - 标记为可翻译 - - - Convert to Objective-C String Literal - 转换为Objective-C字符串 - - - Convert to Hexadecimal - 转换为16进制 - - - Convert to Octal - 转换为8进制 - - - Convert to Decimal - 转换为10进制 - - - Add Local Declaration - 添加本地声明 - - - Convert to Camel Case - 转换为驼峰命名法 - - - Complete Switch Statement - 完成Switch语句 - - - #include Header File - #include头文件 - - - Add local Declaration - 添加本地声明 - - - Convert to Camel Case ... - 转换为驼峰命名法... - - - Use Fast String Concatenation with % - 用%实现快速字符串连接 - - - - GenericProjectManager::Internal::Manager - - Failed opening project '%1': Project already open - 打开项目 '%1'失败:项目已经被打开 - - - - QmlDesigner::FormEditorWidget - - Snap to guides (E) - 向导快照(E) - - - Show bounding rectangles (A) - 显示外围边框(A) - - - Show bounding rectangles and stripes for empty items (Press Key A) - 显示空项的外围边框(按键 A) - - - Only select items with content (S) - 仅选择有内容的项目 (S) - - - width - 宽度 - - - height - 高度 - - - Reset view (R) - 重置窗口(R) - - - - QmlDesigner::InvalidArgumentException - - Failed to create item of type %1 - 无法创建类型为 %1的项目 - - - - InvalidIdException - - Ids have to be unique: - 标识符必须唯一: - - - Invalid Id: - 无效标识符: - - - -Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - -只允许数字字母和下划线。 -标识符必须以小写字母开头。 - - - Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - 仅允许字母数字和下划线。 -Id必须以小写字母开头。 - - - Ids have to be unique. - Id 必须唯一。 - - - Invalid Id: %1 -%2 - 无效 Id: %1 -%2 - - - - QmlDesigner::QmlModelView - - Invalid Id - 无效标识符 - - - - ContextPaneTextWidget - - Text - 文本 - - - Style - 风格 - - - Normal - 正常 - - - ... - ... - - - - BorderImageSpecifics - - Image - 图像 - - - Source - 来源 - - - Source Size - 源文件尺寸 - - - Source size - 源尺寸 - - - BorderImage - 边界图片 - - - Left - 左端 - - - Right - 右端 - - - - emptyPane - - none or multiple items selected - 没有选中或选中多项 - - - None or multiple items selected. - 没有选中或选中多项. - - - - ExpressionEditor - - Expression - 表达式 - - - - Extended - - Effect - 效果 + Could not find Core plugin in %1 + - Blur Radius: - 模糊半径: - - - Pixel Size: - 像素大小: - - - x Offset: - x 偏移: - - - y Offset: - y 偏移: - - - - ExtendedFunctionButton - - Reset - 重置 - - - Set Expression - 设置表达式 - - - - FontGroupBox - - Font - 字体 - - - Size - 字号 - - - Font style - 字体风格 - - - Font Style - 字体风格 - - - Style - 风格 - - - - Geometry - - Geometry - 位置信息 - - - Position - 位置 - - - Size - 大小 - - - Width - 宽度 - - - Height - 高度 - - - Lock aspect ratio - 锁定外观比率 - - - - ImageSpecifics - - Image - 图像 - - - Source - - - - Fill mode - 填充模式 - - - Source size - 源尺寸 - - - Painted size - 绘制尺寸 - - - Fill Mode - 填充模式 - - - Aliasing - anti-alias - 边缘锯齿 - - - Smooth - 平滑 - - - Source Size - 源文件尺寸 - - - Painted Size - 绘制尺寸 - - - - Layout - - Layout - 页面布局 - - - Anchors - 锚点 - - - Set anchors - 设置锚点 - - - Setting anchors in states is not supported. - 在不支持的状态下设置锚点. - - - Target - 目标 - - - Margin - 页面空白 - - - - Modifiers - - Manipulation - 操作 - - - Rotation - 旋转 - - - - RectangleColorGroupBox - - Colors - 颜色 - - - Stops - 停止点 - - - Gradient stops - 渐变停止点 - - - Gradient Stops - 渐变停止点 - - - Rectangle - 矩形 - - - Border - 边框 - - - - RectangleSpecifics - - Rectangle - 矩形 - - - Border width - 边框宽度 - - - Border has to be solid to change width - 边框必须是实线才能改变宽度 - - - Border - 边框 - - - Radius - 半径 - - - - StandardTextColorGroupBox - - Color - 颜色 - - - Text - 文本 - - - Style - 风格 - - - Selection - 选择 - - - Selected - 选中 - - - - StandardTextGroupBox - - Text - 文本 - - - Wrap mode - 折行模式 - - - Wrap Mode - 折行模式 - - - Alignment - 对齐方式 - - - - - <上下文注释> - - - Aliasing - 别名 - - - Smooth - 平滑 - - - - Switches - - special properties - 特殊属性 - - - layout and geometry - 布局和位置 - - - Geometry - 位置 - - - layout - 布局 - - - Special properties - 特殊属性 - - - Layout - 布局 - - - Advanced properties - 高级属性 - - - advanced properties - 高级属性 - - - Advanced - 高级 - - - - TextEditSpecifics - - Text Edit - 编辑文本 - - - Format - 格式 - - - - TextInputGroupBox - - Text Input - 输入文本 - - - Input mask - 输入掩码 - - - Echo mode - 回显模式 - - - Pass. char - 密码字符 - - - Character displayed when users enter passwords. - 输入密码时显示明文. - - - Read only - 只读 - - - Cursor visible - 光标可见 - - - Active focus on press - 点击后设置焦点 - - - Auto scroll - 自动滚动 - - - Input Mask - 输入掩码 - - - Echo Mode - 回显模式 - - - Pass. Char - 密码字符 - - - Password Character - 密码字符 - - - Flags - 标志 - - - Read Only - 只读 - - - Cursor Visible - 光标可见 - - - Focus On Press - 点击后设置焦点 - - - Auto Scroll - 自动滚动 - - - - Transformation - - Transformation - 变形 - - - Origin - 原始 - - - Top Left - 顶端左侧 - - - Top - 顶端 - - - Top Right - 顶端右侧 - - - Top left - 顶端左侧 - - - Top right - 顶端右侧 - - - Left - 左边 - - - Center - 中心 - - - Right - 右边 - - - Bottom left - 底端左侧 - - - Bottom right - 底端右侧 - - - Bottom Left - 底端左侧 - - - Bottom - 底端 - - - Bottom Right - 底端右侧 - - - Scale - 缩放比例 - - - Rotation - 旋转 - - - - Type - - Type - 类型 - - - - Visibility - - Visibility - 可见性 - - - Is visible - 可见的 - - - Visible - 可见 - - - isVisible - 可见的 - - - Smooth - 平滑 - - - Clip - 剪贴 - - - Opacity - 不透明度 + Core plugin is disabled. + - WebViewSpecifics - - WebView - 网页视图 - + ApplicationWindowSpecifics - Url - Url + Window + Title - 标题 + 标题 - Pref Width - 首选宽度 - - - Preferred Width - 首选宽度 - - - Pref Height - 首选高度 - - - Preferred Height - 首选高度 - - - Scale - 缩放比例 - - - Contents Scale - 内容比例 - - - Page Height - 页面高度 - - - - Core::HelpManager - - Unfiltered - 未过滤 - - - - FakeVim::Internal::FakeVimHandler::Private - - [New] - [新建] - - - Not an editor command: %1 - 不是一个编辑器命令: %1 - - - - QmlDesigner::ContextPaneWidget - - Disable permanently - 永久禁止 - - - - QmakeProjectManager - - Qemu finished with error: Exit code was %1. - Qemu 在有错误的情况下结束: 退出代码 %1. - - - Qemu failed to start: %1 - Qemu 启动失败:%1 - - - Qemu crashed - Qemu崩溃了 - - - Qemu error - Qemu 错误 - - - - ContextPaneWidgetBorderImage - - Form - 界面 - - - Stretch vertically. Scales the image to fit to the available area. - 竖直拉伸,将图片在竖直方向拉伸以填满可用区域。 - - - Repeat vertically. Tiles the image until there is no more space. May crop the last image. - 垂直方向重复显示,平铺图片直到空间填满。可能会截断最后一张图片。 - - - Round. Like Repeat, but scales the images down to ensure that the last image is not cropped. - 环绕。类似重复,但会缩小图像确保最后一块图像不会被裁剪。 - - - Repeat horizontally. Tiles the image until there is no more space. May crop the last image. - 水平方向重复显示,平铺图片直到空间填满。可能会截断最后一张图片。 - - - Stretch horizontally. Scales the image to fit to the available area. - 水平拉伸,将图片水平拉伸以适应可用区域。 - - - 10 x 10 - 10 x 10 - - - - ContextPaneWidgetImage - - Form - 界面 - - - The image is scaled to fit - 图像被缩放到合适大小 - - - The image is stretched horizontally and tiled vertically - 图像被水平拉伸且垂直平铺 - - - The image is stretched vertically and tiled horizontally - 图像被垂直拉伸且水平平铺 - - - The image is duplicated horizontally and vertically - 图像在水平和垂直上被复制 - - - The image is scaled uniformly to fit without cropping - 图像被一致地缩放到合适大小,不裁剪 - - - The image is scaled uniformly to fill, cropping if necessary - 图像被一致地缩放到合适大小,在必要时裁剪 - - - 10 x 10 - 10 x 10 - - - - ContextPaneWidgetRectangle - - Form - 界面 - - - Gradient - 渐变填充 + Size + Color - 颜色 + 颜色 - ... - ... + Visible + 可见 - Border - 边框 + Opacity + 不透明度 - EasingContextPane + Autotest - Dialog - 对话框 + Testing + - Play simulation - 运行模拟器 + &Tests + - Easing - 弹性弯曲 + Run &All Tests + - Type of easing curve - 弹性曲线类型 + Run All Tests + - Subtype - 子类型 + Ctrl+Meta+T, Ctrl+Meta+A + - Acceleration or deceleration of easing curve - 弹性曲线的加速或减速 + Alt+Shift+T,Alt+A + - Duration - 持续时间 + Run All Tests Without Deployment + - Duration of animation - 动画持续时间 + Ctrl+Meta+T, Ctrl+Meta+E + - INVALID - 无效 + Alt+Shift+T,Alt+E + + + + &Run Selected Tests + + + + Run Selected Tests + + + + Ctrl+Meta+T, Ctrl+Meta+R + + + + Alt+Shift+T,Alt+R + + + + &Run Selected Tests Without Deployment + + + + Ctrl+Meta+T, Ctrl+Meta+W + + + + Alt+Shift+T,Alt+W + + + + Run &Failed Tests + + + + Run Failed Tests + + + + Ctrl+Meta+T, Ctrl+Meta+F + + + + Alt+Shift+T,Alt+F + + + + Run Tests for &Current File + + + + Run Tests for Current File + + + + Ctrl+Meta+T, Ctrl+Meta+C + + + + Alt+Shift+T,Alt+C + + + + Re&scan Tests + + + + Ctrl+Meta+T, Ctrl+Meta+S + + + + Alt+Shift+T,Alt+S + + + + &Run Test Under Cursor + + + + Run Test Under Cursor Without Deployment + + + + &Debug Test Under Cursor + + + + Debug Test Under Cursor Without Deployment + + + + Selected test was not found (%1). + + + + Boost Test + + + + Executing test case %1 + + + + Executing test suite %1 + + + + Test execution took %1 + + + + Test suite execution took %1 + + + + Executing test module %1 + + + + Test module execution took %1 + + + + %1 failures detected in %2. + + + + %1 tests passed. + + + + No errors detected. + + + + Running tests exited with %1 + + + + Executable: %1 + + + + Running tests failed. +%1 +Executable: %2 + + + + Running tests without output. + + + + Log format: + + + + Report level: + + + + Seed: + + + + A seed of 0 means no randomization. A value of 1 uses the current time, any other value is used as random seed generator. + + + + Randomize + + + + Randomize execution order. + + + + Catch system errors + + + + Catch or ignore system errors. + + + + Floating point exceptions + + + + Enable floating point exception traps. + + + + Detect memory leaks + + + + Enable memory leak detection. + + + + parameterized + + + + fixture + + + + templated + + + + Catch Test + + + + Exception: + + + + Executing %1 "%2" + + + + %1 "%2" passed + + + + Expression passed + + + + Expression failed: %1 + + + + Finished executing %1 "%2" + + + + Number of resamples for bootstrapping. + ms - 毫秒 + 毫秒 - Amplitude - 振幅 + Abort after + - Amplitude of elastic and bounce easing curves - 弹性曲线振幅 + Aborts after the specified number of failures. + - Period - 周期 + Benchmark samples + - Easing period of an elastic curve - 弹性曲线的弹性周期 + Number of samples to collect while running benchmarks. + - Overshoot - 缓冲 + Benchmark resamples + - Easing overshoot for a back curve - 后弧的弹性缓冲 + Number of resamples used for statistical bootstrapping. + - - - ClassView::Internal::NavigationWidget - Form - 界面 + Confidence interval used for statistical bootstrapping. + - Show Subprojects - 显示子项目 + Benchmark confidence interval + - - - AttachTcfDialog - Start Debugger - 启动调试器 + Benchmark warmup time + - Host and port: - 主机和端口号: + Warmup time for each test. + - Architecture: - 体系结构: + Disable analysis + - Use server start script: - 使用服务器启动脚本: + Disables statistical analysis and bootstrapping. + - Server start script: - 服务器启动脚本: + Show success + - - - BreakpointDialog - Edit Breakpoint Properties - 编辑断点属性 + Show success for tests. + - Breakpoint type: - 断点类型: + Break on failure while debugging + - File name: - 文件名: + Turns failures into debugger breakpoints. + - Line number: - 行号: + Skip throwing assertions + - Use full path: - 使用完整路径: + Skips all assertions that test for thrown exceptions. + - Address: - 地址: + Visualize whitespace + - Function: - 函数: + Makes whitespace visible. + - Condition: - 条件: + Warn on empty tests + - Thread specification: - 线程信息: + Warns if a test section does not check any assertion. + - - - Help - Filter configuration - 过滤器设置 + Running tests for %1 + - Prefix: - 前缀: + Output on failure + - Limit to prefix - 前缀限制 + Output mode + - + - + + Default + 默认 - - - - + Verbose + 详细 - Double click to edit item. - 双击编辑元素. + Very Verbose + - Double-click to edit item. - 双击编辑元素。 + Repetition mode + - Edit Filter Configuration - 编辑过滤器配置 + Until Fail + - - - ImageViewer - Image Viewer - 图像查看器 + Until Pass + - Show background - 显示背景 + After Timeout + - Show outline - 显示大纲 + Count + - Fit image in the screen - 调整图像适应屏幕 + Number of re-runs for the test. + - Original size - 原始大小 + Schedule random + - Show Background - 显示背景 + Stop on failure + - Show Outline - 显示轮廓线 + Run tests in parallel mode using given number of jobs. + - Fit to Screen - 适应屏幕 + Jobs + - - - ComponentNameDialog - Dialog - 对话框 + Test load + - Component name: - 组件名: + Try not to start tests when they may cause CPU load to pass a threshold. + - Path: - 路径: + Threshold + - Choose... - 选择... + CTest + - - - QmlJSEditor - Form - 界面 + Repeat tests + - Qt Quick Toolbars - Qt Quick工具栏 + Run in parallel + - Always show Qt Quick Toolbar - 总是显示Qt Quick工具栏 + Google Test + - If enabled, the toolbar will remain pinned to an absolute position. - 如果启用,工具栏将被钉在固定位置。 + Enable or disable grouping of test cases by folder or GTest filter. +See also Google Test settings. + - Pin Qt Quick Toolbar - 钉住Qt Quick工具栏 + Running tests failed. + %1 +Executable: %2 + - Qt Quick ToolBar - Qt Quick工具栏 + (iteration %1) + - - - QmakeProjectManager - Library: - 库: + Repeating test suite %1 (iteration %2) + - Library file: - 库文件: + Entering test case %1 + - Include path: - 包含路径: + Execution took %1. + - Platform - 平台 + Iterations: + - Linux - Linux + A seed of 0 generates a seed based on the current timestamp. + - Mac - Mac + Run disabled tests + - Windows - Windows + Executes disabled tests when performing a test run. + - Symbian - Symbian + Shuffle tests + - Linkage: - 链接: + Shuffles tests automatically on every iteration by the given seed. + - Dynamic - 动态 + Repeats a test run (you might be required to increase the timeout to avoid canceling the tests). + - Static - 静态 + Throw on failure + - Mac: - Mac: + Turns assertion failures into C++ exceptions. + - Library - + Directory + 目录 - Framework - 框架 + GTest Filter + - Windows: - Windows: + Group mode: + - Library inside "debug" or "release" subfolder - debug或release子目录下的库 + Select on what grouping the tests should be based. + - Add "d" suffix for debug version - 为debug版本添加'd'作为后缀 + Active filter: + - Remove "d" suffix for release version - 移除release版本中的'd'后缀 + Set the GTest filter to be used for grouping. +See Google Test documentation for further information on GTest filters. + - Package: - 包: + <matching> + - - - QtQuickAppWizardSourcesPage - WizardPage - 向导页面 + <not matching> + - Main QML File - QML主文件 + Change GTest filter in use inside the settings. + - Generate a main.qml file - 生成一个main.qml文件 + typed + - Import an existing .qml file - 导入一个已存在的qml文件 + Active frameworks: + - - - HighlighterSettingsPage - Form - 界面 + Automatically run tests after build + - <html><head/><body> -<p>Highlight definitions are provided by the <a href="http://kate-editor.org/">Kate Text Editor</a>.</p></body></html> - <html><head/><body> -<p><a href="http://kate-editor.org/">Kate Text Editor</a>提供高亮定义</p></body></html> - - - Syntax Highlight Definition Files - 语义高亮定义文件 - - - Location: - 位置: - - - Use fallback location - 选择目录 - - - Behavior - 行为 - - - Alert when a highlight definition is not found - 当未找到定义时显示提示 - - - Ignored file patterns: - 被忽略的文件模式: - - - - ManageDefinitionsDialog - - Dialog - 对话框 - - - Definitions - 定义 - - - Select All - 全选 - - - Clear Selection - 清空选择 - - - Invert Selection - 反选 - - - Download Selected Definitions - 下载选中的定义 - - - - QmlEditorWidgets::ContextPaneWidget - - Hides this toolbar. - 隐藏这个工具条. - - - Pin Toolbar - 钉住工具栏 - - - Show Always - 总是显示 - - - Unpins the toolbar and moves it to the default position. - 解除工具栏停靠并移动到默认位置。 - - - Hides this toolbar. This toolbar can be permanently disabled in the options page or in the context menu. - 隐藏这个工具栏。该工具栏可在选项页或上下文菜单中永久禁用。 - - - - QmlEditorWidgets::ContextPaneWidgetImage - - double click for preview - 双击预览 - - - - QmlEditorWidgets::FileWidget - - Open File - 打开文件 - - - - QmlJS::Bind - - expected two numbers separated by a dot - 应为点号分隔的两个数字 - - - package import requires a version number - 导入包需要版本号 - - - file or directory not found - 文件或路径未找到 - - - - ProjectExplorer::BuildableHelperLibrary - - Cannot start process: %1 - 无法启动进程 %1 - - - Timeout after %1s. - 超时共花费%1秒。 - - - The process crashed. - 进程崩溃了。 - - - The process returned exit code %1: -%2 - 进程返回代码%1: -%2 - - - Error running '%1' in %2: %3 - 在 %2运行'%1'时发生错误: %3 - - - Building helper '%1' in %2 - - 在 %2构建助手'%1' - - - - Building helper library '%1' in %2 - - 在%2构建助手库 '%1' - - - - Running %1 %2... - - 正在运行 %1 %2... - - - - Running %1 %2 ... - - 正在运行%1 %2 ... - - - - Running %1 ... - - 正在运行%1... - - - - %1 not found in PATH - - 在 PATH未找到%1 - - - - - Utils::DebuggerLanguageChooser - - C++ - C++ - - - QML - QML - - - Debug port: - 调试端口: - - - <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">What are the prerequisites?</a> - <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">先决条件是什么?</a> - - - - Utils::SynchronousProcess - - The command '%1' finished successfully. - 命令'%1'成功完成。 - - - The command '%1' terminated with exit code %2. - 命令'%1'终止,退出代码%2。 - - - The command '%1' terminated abnormally. - 命令'%1'异常终止。 - - - The command '%1' could not be started. - 命令'%1'无法启动。 - - - The command '%1' did not respond within the timeout limit (%2 ms). - 命令'%1'在指定超时时间(%2毫秒)内未响应。 - - - Process not Responding - 进程无响应 - - - The process is not responding. - 进程未响应。 - - - The process '%1' is not responding. - 进程'%1'未响应。 - - - Would you like to terminate it? - 您想要结束它吗? - - - - ClassView::Internal::NavigationWidgetFactory - - Class View - 类视图 - - - - CMakeProjectManager - - Make - Default display name for the cmake make step. - Make - - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Qt Creator 需要设置一个编译器来构建。请在构建套件选项里设置一个编译器。 - - - Configuration is faulty. Check the Issues view for details. - 配置错误,请检查"问题"视图获得详细信息。 - - - - Core::Internal::CommandComboBox - - Activate %1 Pane - 激活 %1 窗口 - - - - Core::NavigationWidget - - Activate %1 Pane - 激活%1 窗口 - - - Hide Sidebar - 隐藏边栏 - - - Show Sidebar - 显示边栏 - - - - Core::Internal::SftpChannelPrivate - - Server could not start sftp subsystem. - 服务器无法启动 sftp 子系统。 - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Protocol version mismatch: Expected %1, got %2 - 协议版本不匹配:期望 %1,得到 %2 - - - Unknown error. - 未知错误. - - - Created remote directory '%1'. - 创建远程目录 '%1'。 - - - Remote directory '%1' already exists. - 远程目录 '%1'已存在。 - - - Error creating directory '%1': %2 - 创建文件夹时发生错误 '%1':'%2' - - - Could not open local file '%1': %2 - 无法打开本地文件 '%1':%2 - - - Remote directory could not be opened for reading. - 无法打开用于读取的远程目录。 - - - Failed to list remote directory contents. - 列出远程目录的内容失败。 - - - Failed to close remote directory. - 关闭远程目录失败。 - - - Failed to open remote file for reading. - 打开用于读取的远程文件失败。 - - - Failed retrieve information on the remote file ('stat' failed). - 获取远程文件的信息失败('stat' 失败)。 - - - Failed to read remote file. - 读取远程文件失败。 - - - Failed to close remote file. - 关闭远程文件失败。 - - - Failed to open remote file for writing. - 打开用于写入的远程文件失败。 - - - Failed to write remote file. - 写入远程文件失败。 - - - Cannot append to remote file: Server does not support the file size attribute. - 无法附加到远程文件:服务器不支持文件大小属性。 - - - Server could not start session. - 服务器无法启动会话。 - - - Error reading local file: %1 - 读取本地文件时发生错误:%1 - - - - SshConnection - - Server and client capabilities don't match. Client list was: %1. -Server list was %2. - 服务器端和客户端参数不匹配。客户端是%1, -而服务器端是%2。 - - - - Core::Internal::SshChannelManager - - Invalid channel id %1 - 无效的通道 ID %1 - - - - Core::Internal::SshConnectionPrivate - - SSH Protocol error: %1 - SSH协议错误:%1 - - - Botan library exception: %1 - Botan库异常:%1 - - - Invalid protocol version: Expected '2.0', got '%1'. - 无效协议版本.期望版本'2.0',实际版本'%1'. - - - Invalid server id '%1'. - 服务器id'%1'非法. - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Could not read private key file: %1 - 无法读取私钥文件:'%1' - - - Password expired. - 密码过期. - - - Server rejected password. - 密码被服务器退回. - - - Server rejected key. - 密钥被服务器退回. - - - Server closed connection: %1 - 连接已被服务器关闭:%1 - - - Connection closed unexpectedly. - 连接意外关闭. - - - Timeout waiting for reply from server. - 等待Server响应超时. - - - - CodePaster - - Checking connection - 正在检查连接 - - - Connecting to %1... - 正在连接到%1... - - - - CheckUndefinedSymbols - - Expected a namespace-name - 应为命名空间的名称 - - - - CppEditor::InsertDeclOperation - - Add %1 Declaration - 添加%1声明 - - - - CppEditor::InsertDefOperation - - Add Definition in %1 - 在%1添加定义 - - - - CppEditor::Internal::CppTypeHierarchyWidget - - No type hierarchy available - 没有可用的类型层次 - - - Bases - 基类 - - - Derived - 派生类 - - - - CppEditor::Internal::CppTypeHierarchyFactory - - Type Hierarchy - 类型层次 - - - - CppTools::Internal::SymbolsFindFilter - - C++ Symbols - C++符号 - - - Searching - 搜索中 - - - C++ Symbols: - C++符号: - - - Classes - - - - Methods - 方法 - - - Enums - 枚举 - - - Declarations - 声明 - - - Scope: %1 -Types: %2 -Flags: %3 - 范围:%1 -类型:%2 -标志:%3 + None + All - 所有 + 所有 - Projects - 项目 + Selected + 选中 - , - + Qt Test + - - - CppTools::Internal::SymbolsFindFilterConfigWidget - Types: - 类型: + %1 %2 per iteration (total: %3, iterations: %4) + - Classes - + Qt version: %1 + - Methods - 方法 + Qt build: %1 + - Enums - 枚举 + QTest version: %1 + - Declarations - 声明 + XML parsing failed. + - Projects only - 仅显示项目 + Entering test function %1::%2 + - All files - 所有文件 + Executing test function %1 + - - - Debugger - File and Line Number - 文件和行号 + Execution took %1 ms. + - Function Name - 函数名 + Test execution took %1 ms. + - Break when C++ Exception is Thrown - 中断 当C++ Exception 被丢出 + Test function finished. + - Break when C++ Exception is Caught - 中断 当C++ Exception 被抓住 + Test finished. + - Break when Function "main()" Starts - 中断 当"main()"启动时 + Walltime + - Break when a new Process is Forked - 中断 当一个新进程被创建 + Uses walltime metrics for executing benchmarks (default). + - Break when a new Process is Executed - 中断 当一个新进程被执行 + Tick counter + - Break when a System Call is Executed - 中断 当一个系统调用被执行 + Uses tick counter when executing benchmarks. + - Break on Data Access (Watchpoint) - 中断当数据进入(端点) + Event counter + - File name and line number - 文件名称和行号 + Uses event counter when executing benchmarks. + - Function name - 函数名 + Callgrind + - Break on memory address - 在内存地址处中断 + Uses Valgrind Callgrind when executing benchmarks (it must be installed). + - Break when C++ exception is thrown - 当C++ Exception 丢出时中断 + Perf + - Break when C++ exception is caught - 当C++ Exception 被抓住时中断 + Uses Perf when executing benchmarks (it must be installed). + - Break when function "main" starts - 当"main()"启动时中断 + Disable crash handler while debugging + - Break when a new process is forked - 当一个新进程被创建时中断 + Enables interrupting tests on assertions. + - Break when a new process is executed - 当一个新进程被执行时中断 + Use XML output + - Break when a system call is executed - 当一个系统调用被执行时中断 - - - Break on data access at fixed address - 当访问固定的地址数据时中断 - - - Break on data access at address given by expression - 当访问表达式指定的地址的数据时中断 - - - Break on QML signal handler - 在QML信号处理时中断 - - - Break when JavaScript exception is thrown - JavaScrip丢出异常时中断 - - - Specifying the module (base name of the library or executable) -for function or file type breakpoints can significantly speed up -debugger start-up times (CDB, LLDB). - 指定函数或文件类型的断点的模块 -(库或者执行档的名称)可以显着加快 -调试启动时间 (CDB, LLDB)。 - - - <html><head/><body><p>Determines how the path is specified when setting breakpoints:</p><ul><li><i>Use Engine Default</i>: Preferred setting of the debugger engine.</li><li><i>Use Full Path</i>: Pass full path, avoiding ambiguities should files of the same name exist in several modules. This is the engine default for CDB and LLDB.</li><li><i>Use File Name</i>: Pass the file name only. This is useful when using a source tree whose location does not match the one used when building the modules. It is the engine default for GDB as using full paths can be slow with this engine.</li></ul></body></html> - <html><head/><body><p>设置断点时确定如何指定路径:</p><ul><li><i>使用引擎默认值</i>: 使用调试引擎的建议设置.</li><li><i>使用完整路径</i>: 传递完整路径, 在几个模块中应避免含糊不清的同名文件存在。这是CDB 和 LLDB的默认引擎。</li><li><i>使用文件名称</i>: 只传递文件名称。这将在使用源代码树但是位置和构建模块的路径不匹配的时候很有用。这是GDB的默认引擎,如果使用完整路径那么这个引擎可能会比较慢.</li></ul></body></html> - - - Function "main()" - "main()"函数 - - - Basic - 基础 - - - Break on QML signal emit - 在QML信号发出时断点 - - - Breakpoint &type: - 断点类型(&T): - - - &File name: - 文件名(&F): - - - &Line number: - 行号(&L): - - - &Enabled: - 启用(&E): - - - &Address: - 地址(&A): - - - Fun&ction: - 函数(&C): - - - Advanced - 高级 - - - T&racepoint only: - 仅跟踪点(&R): - - - &One shot only: - 仅触发一次(&O): - - - Pat&h: - 路径(&H): - - - &Module: - 模块(&M): - - - &Command: - 命令(&C): - - - Use Engine Default - 使用默认引擎 - - - Use Full Path - 使用完整路径 - - - Use File Name - 使用文件名称 - - - Debugger commands to be executed when the breakpoint is hit. -This feature is only available for GDB. - 断点触发时执行的调试器命令。 -此功能仅对GDB可用。 - - - &Commands: - 命令(&C): - - - C&ondition: - 条件(&O): - - - &Ignore count: - 忽略次数(&i): - - - &Expression: - 表达式(&E): - - - &Message: - 消息(&M): - - - The console process '%1' could not be started. - 终端进程'%1' 无法被启动。 - - - Debugger Error - 调试器错误 - - - There is no CDB executable specified. - 没有指定CDB可执行档。 - - - CDB crashed - CDB 崩溃了 - - - CDB exited (%1) - CDB 退出(%1) - - - Unable to add expression - 无法添加表达式 - - - Interrupting is not possible in remote sessions. - 在远程会话里中断是不可能的。 - - - Trace point %1 (%2) in thread %3 triggered. - 在线程%3 中的跟踪点%1 (%2) 被触发。 - - - Conditional breakpoint %1 (%2) in thread %3 triggered, examining expression '%4'. - 在线程%3中的条件断点%1 (%2) 被触发, 正在检查表达式 '%4'。 - - - Malformed stop response received. - 收到了格式错误的停止响应。 - - - Switching to main thread... - 切换到主线程... - - - Value %1 obtained from evaluating the condition of breakpoint %2, stopping. - 计算断点条件 %2获得了值%1, 停止。 - - - Value 0 obtained from evaluating the condition of breakpoint %1, continuing. - 计算断点条件 %1获得了值0, 继续。 - - - "Select Widget to Watch": Please stop the application first. - "选择监视的控件": 请先停止应用程序。 - - - "Select Widget to Watch": Not supported in state '%1'. - "选择监视的控件":在状态'%1'下不支持。 - - - - Debugger - - Select Local Cache Folder - 选择本地缓存目录 - - - Path: - 路径: - - - Already Exists - 已存在 - - - A file named '%1' already exists. - 文件'%1'已存在。 - - - Cannot Create - 无法创建 - - - The folder '%1' could not be created. - 目录'%1'无法被创建。 - - - Console - 控制台 - - - Remove Breakpoint - 删除断点 - - - Attempting to interrupt. - 正在尝试中断。 - - - Debug Information - 调试信息 - - - Debugger Test - 调试器测试 - - - Launching - 正在启动 - - - %1 (explicitly set in the Debugger Options) - %1 (在调试器选项中设定) - - - This debugger cannot handle user input. - 这个调试器无法处理用户的输入。 - - - Watchpoint %1 (%2) at 0x%3 triggered. - 0x%3 的观察点%1 (%2)被触发. - - - Internal watchpoint %1 at 0x%2 triggered. - 内部观察点%1 在 0x%2 被触发. - - - Watchpoint %1 (%2) at 0x%3 in thread %4 triggered. - 观察点%1 (%2) 在0x%3 在线程%4 被触发. - - - Internal watchpoint %1 at 0x%2 in thread %3 triggered. - 内部观察点%1 在0x%2 在线程%3 被触发. - - - Data breakpoint %1 (%2) at %3 triggered. - 在 %3 中的数据断点%1 (%2) 被触发。 - - - Internal data breakpoint %1 at %2 triggered. - 在%2中的内部数据断点%1 被触发。 - - - Data breakpoint %1 (%2) at %3 in thread %4 triggered. - 线程%4 的%3中的数据断点%1 (%2) 被触发。 - - - Internal data breakpoint %1 at %2 in thread %3 triggered. - 线程%3中%2的内部数据断点%1 被触发。 - - - Data breakpoint %1 (%2) at 0x%3 triggered. - 在 0x%3 处的数据断点%1 (%2) 被触发。 - - - Internal data breakpoint %1 at 0x%2 triggered. - 在0x%2处的内部数据断点%1 被触发。 - - - Data breakpoint %1 (%2) at 0x%3 in thread %4 triggered. - 线程%4 的0x%3处的数据断点%1 (%2) 被触发。 - - - Internal data breakpoint %1 at 0x%2 in thread %3 triggered. - 线程%3中0x%2处的内部数据断点%1 被触发。 - - - Stopped at breakpoint %1 (%2) in thread %3. - 在线程%3的断点%1 (%2) 处停止。 - - - Stopped at internal breakpoint %1 in thread %2. - 在线程%2的内部断点%1处停止。 - - - Setup failed. - 设置失败。 - - - Loading finished. - 载入完成。 - - - Run failed. - 运行失败。 - - - Running. - 正在运行。 - - - Run requested... - 运行已请求... - - - Stopped: "%1" - 已停止: "%1" - - - Stopped: %1 (Signal %2). - 已停止: %1 (信号%2)。 - - - Stopped in thread %1 by: %2. - 在线程%1中停止,因为: %2。 - - - Interrupted. - 已中断。 - - - <Unknown> - name - <未知> - - - <Unknown> - meaning - <未知> - - - <p>The inferior stopped because it received a signal from the Operating System.<p><table><tr><td>Signal name : </td><td>%1</td></tr><tr><td>Signal meaning : </td><td>%2</td></tr></table> - <p>底层由于接收到操作系统的信号而停止 .<p><table><tr><td>信号名称 : </td><td>%1</td></tr><tr><td>信号含义 : </td><td>%2</td></tr></table> - - - Signal received - 接收到信号 - - - <p>The inferior stopped because it triggered an exception.<p>%1 - <p>底层停止了因为它触发了一个异常。<p>%1 - - - Exception Triggered - 异常被触发 - - - Taking notice of pid %1 - 注意pid %1 - - - Run to Address 0x%1 - 运行到地址0x%1 - - - Run to Line %1 - 运行到行%1 - - - Jump to Address 0x%1 - 跳到地址0x%1 - - - Jump to Line %1 - 跳到行%1 - - - - Debugger - - Option '%1' is missing the parameter. - 选项 '%1' 缺少参数。 - - - Only one executable allowed! - 只允许一个执行档! - - - The parameter '%1' of option '%2' does not match the pattern <server:port>@<executable>@<architecture>. - 选项'%2'的参数 '%1' 不符合格式<server:port>@<executable>@<architecture>. - - - The parameter '%1' of option '%2' does not match the pattern <handle>:<pid>. - 选项'%2'的参数 '%1' 不符合格式<handle>:<pid>。 - - - The parameter '%1' of option '%2' is not a number. - 选项 '%2' 的参数 '%1' 不是一个数字. - - - Invalid debugger option: %1 - 无效的调试选项: %1 - - - The application requires the debugger engine '%1', which is disabled. - 程序需要调试器引擎 "%1",而其被禁用。 - - - Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored. - 当前激活的调试器语言无法处理一些断点,这些断点将会被忽略。 - - - The debugger engine '%1' is disabled. - 调试引擎'%1' 被禁用. - - - The debugger engine '%1' required for debugging binaries of the type '%2' is not configured correctly. - 调试二进制类型'%2'需要调试引擎'%1' 但是没配置正确. - - - None of the debugger engines '%1' capable of debugging binaries of the type '%2' is configured correctly. - 可以调试这种二进制类型'%2'的调试引擎'%1' 被设置正确了. - - - The preferred debugger engine for debugging binaries of type '%1' is not available. -The debugger engine '%2' will be used as a fallback. -Details: %3 - 建议使用的调试二进制类型'%1'的调试引擎不可用. -调试引擎'%2' 将会作为备用来使用. -详细: %3 - - - Install &Debug Information - 安装调试信息(&D) - - - Tries to install missing debug information. - 请尝试安装缺失的调试信息。 - - - - Debugger - - Cannot debug '%1' (tool chain: '%2'): %3 - 无法调试 "%1" (工具链: "%2") : %3 - - - Starting debugger '%1' for tool chain '%2'... - 正在为工具链'%2'启动调试器'%1'... - - - Debugging starts - 调试开始 - - - Debugging has failed - 调试失败 - - - Debugging has finished - 调试正常结束 - - - No executable specified. - - 未指定执行档。 - - - - Debugging starts - - 调试开始 - - - - Debugging has failed - - 调试失败 - - - - Debugging has finished - - 调试结束 - - - - A debugging session is still in progress. Terminating the session in the current state can leave the target in an inconsistent state. Would you still like to terminate it? - 一个调试会话正在运行中。强行结束会话可能会导致会话状态异常,即使如此还是要结束它吗? - - - Close Debugging Session - 关闭调试会话 - - - This does not seem to be a "Debug" build. -Setting breakpoints by file name and line number may fail. - 没有选择Debug构建方式.为文件的某行设置断点可能会失败. - - - - Debugger - - Connection could not be established. - 无法建立连接. - - - Connection failure: %1. - 连接失败: %1。 - - - Could not create FIFO. - 无法创建FIFO。 - - - Application output reader unexpectedly finished. - 应用程序输出读取意外结束。 - - - Remote GDB failed to start. - 远程gdb启动失败。 - - - Remote GDB crashed. - 远程gdb崩溃了。 - - - Remote gdb failed to start. - 远程gdb启动失败. - - - Remote gdb crashed. - 远程gdb崩溃了. - - - - Debugger - - Type Ctrl-<Return> to execute a line. - 键入Ctrl-<Return> 执行一行。 - - - - Debugger - - Debugger Log - 调试器日志 - - - Command: - 命令: - - - Log File - 日志文件 - - - Write Failure - 写失败 - - - Unable to write log contents to '%1': %2 - 无法将日志内容写到'%1':%2 - - - - Debugger - - Connecting to debug server on %1 - 连接到调试服务器%1 - - - resolving host... - 正在解析主机... - - - connecting to debug server... - 正在连接到调试服务器... - - - connected. - - 已连接. - - - - closing... - 正在关闭... - - - Status of '%1' changed to 'unavailable'. - '%1'的状态转变为'不可用'. - - - Status of '%1' changed to 'enabled'. - '%1'的状态转变为'可用'. - - - Status of '%1' changed to 'not connected'. - '%1'的状态转变为'无连接'. - - - Debug service '%1' became unavailable. - 调试服务'%1' 变为不可用. - - - Connected to debug service '%1'. - 已连接到调试服务器 '%1'. - - - Not connected to debug service '%1'. - 未连接到调试服务器 '%1'. - - - Failed to connect to debugger - 连接调试器失败 - - - Trying to stop while process is no longer running. - 当进程不再继续运行时尝试终止. - - - <Type expression to evaluate> - <输入表达式用于求值> - - - Write and evaluate QtScript expressions. - 编写和求值QtScript表达式. - - - Script Console - - 脚本控制台 - - - - Internal name - 内部名称 - - - Full name - 全名 - - - Internal Name - 内部名称 - - - Full Name - 全名 - - - - Git - - Set the environment variable HOME to '%1' -(%2). -This causes msysgit to look for the SSH-keys in that location -instead of its installation directory when run outside git bash. - 设置环境变量 HOME 到 '%1' -(%2). -这将使 msysgit 在那个位置查找 SSH-keys -而不是在安装目录中查找。 - - - not currently set - 当前未设置 - - - currently set to '%1' - 设置到'%1' - - - Git Repository Browser Command - Git代码仓库浏览器命令 - - - - Help - - Qt Creator Offline Help - Qt Creator离线帮助 - - - - EditorManager - - Next Open Document in History - 历史中下个打开的文件 - - - Previous Open Document in History - 历史中先前打开的文件 - - - Go Back - 返回 - - - Go Forward - 前进 - - - Split - 分栏 - - - Split Side by Side - 左右分栏 - - - Close Document - 关闭文档 - - - Close - 关闭 - - - - Help - - Copy Full Path to Clipboard - 复制完整路径到剪贴板 - - - Online Documentation - 在线文档 - - - Web Search - 搜索网络 - - - - ImageViewer - - Zoom In - 放大 - - - Ctrl++ - Ctrl++ - - - Zoom Out - 缩小 - - - Ctrl+- - Ctrl+- - - - Original Size - 原始大小 - - - Ctrl+0 - Ctrl+0 - - - Meta+0 - Meta+0 - - - Fit To Screen - 适应屏幕 - - - Ctrl+= - Ctrl+= - - - Switch Background - 切换背景 - - - Switch Outline - 显示轮廓线 - - - Toggle Animation - 切换动画 - - - Switch background - 切换背景 - - - Ctrl+[ - Ctrl+[ - - - Switch outline - 显示大纲 - - - Ctrl+] - Ctrl+] - - - - ProjectExplorer::Internal::BuildStepListWidget - - %1 Steps - %1 is the name returned by BuildStepList::displayName - %1 is a name instead of a number - %1的步骤 - - - No %1 Steps - 没有%1步骤 - - - Add %1 Step - 添加%1步骤 - - - Move Up - 上移 - - - Disable - 禁用 - - - Move Down - 下移 - - - Remove Item - 移除项 - - - Removing Step failed - 删除步骤失败 - - - Cannot remove build step while building - 无法在构建时移除构建步骤 - - - No Build Steps - 没有构建步骤 - - - - ProjectExplorer::Internal::CopyTaskHandler - - error: - Task is of type error - 错误: - - - warning: - Task is of type warning - 警告: - - - error: - Task is of type: error - 错误: - - - warning: - Task is of type: warning - 警告: - - - &Copy - Name of the action triggering the copytaskhandler - 复制(&C) - - - Copy task to clipboard - 复制任务到剪贴板 - - - - ProjectExplorer::DeployConfiguration - - Deploy - Display name of the deploy build step list. Used as part of the labels in the project window. - 部署 - - - Deploy locally - Default DeployConfiguration display name - 在本地部署 - - - No deployment - Default DeployConfiguration display name - 当前无部署 - - - - ProjectExplorer::DeployConfigurationFactory - - Deploy Configuration - Display name of the default deploy configuration - 部署设置 - - - - ProjectExplorer::Internal::EditorSettingsWidget - - Default - 默认 - - - - ProjectExplorer::RunControl - - Application Still Running - 应用仍然在运行 - - - %1 is still running. - %1仍然在运行. - - - Force it to quit? - 强行关闭? - - - PID %1 - PID %1 - - - Invalid - Invalid process handle. - 无效 - - - <html><head/><body><center><i>%1</i> is still running.<center/><center>Force it to quit?</center></body></html> - <html><head/><body><center><i>%1</i> 仍然在运行。<center/><center>强制关闭吗?</center></body></html> - - - Force Quit - 强行退出 - - - Keep Running - 保持运行 - - - Do not ask again - 下次不再询问 - - - - ProjectExplorer::Internal::ShowInEditorTaskHandler - - &Show in editor - 在编辑器中显示(&S) - - - Show task location in an editor - 在编辑器中显示任务位置 - - - &Show in Editor - 在编辑器中显示(&S) - - - Show task location in an editor. - 在编辑器中显示任务位置。 - - - - ProjectExplorer::Internal::ShowOutputTaskHandler - - Show &Output - 显示输出(&O) - - - Show output generating this issue. - 显示产生此问题的输出。 - - - - ProjectExplorer::UserFileAccessor - - Using Old Project Settings File - 使用旧的项目设置文件 - - - <html><head/><body><p>A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p></body></html> - <html><head/><body><p>一个.user 设置的备用文件将会被使用,因为新版 Qt Creator产生了一个没有版本号的文件.</p><p>项目设置改变自从最近一次这个版本的Qt Creator 被用做这个项目, 现在产生的改变 <b>不会</b> 影响到新版本.</p></body></html> - - - Project Settings File from a different Environment? - 来自于不同环境的项目设置文件? - - - - ProjectExplorer::UserFileHandler - - No deployment - 当前无部署 - - - Deploy to Maemo device - 部署到Maemo设备 - - - - ProjectExplorer::Internal::VcsAnnotateTaskHandler - - &Annotate - 注释(&A) - - - Annotate using version control system - 使用版本控制系统注释 - - - - QmlDesigner::TextToModelMerger - - Unsupported import: -import QtQuick 1.0 use import Qt 4.7 instead - 不支持的引入,请用import Qt 4.7来引入QtQuick 1.0库 - - - - QmlJSEditor - - Move Component into separate file - 将组件移到独立文件中 - - - Move Component into '%1.qml' - 将组件移到文件'%1.qml'中 - - - Move Component into Separate File - 将组件移到独立文件中 - - - Choose a path - 选择路径 - - - Invalid component name - 组件名非法 - - - Invalid path - 非法路径 - - - Path: - 路径: - - - Component name: - 组件名: - - - - QmlJsEditor - - QML - QML - - - - QmlJSEditor - - QML/JS Usages: - QML/JS 使用: - - - Searching - 搜索中 - - - Show All Bindings - 显示所有绑定 - - - Split initializer - 分离初始化 - - - Split Initializer - 分离初始化 - - - - QmlJSInspector::Internal::QmlInspectorToolbar - - Apply Changes on Save - 保存时应用修改 - - - Observer Mode - 观察者模式 - - - Play/Pause Animations - 播放/暂停动画 - - - Select - 选择 - - - Zoom - 缩放 - - - Color Picker - 颜色拾取器 - - - Live Preview Changes in QML Viewer - 在QML查看器中即时预览 - - - Animation Speed - 动画速度 - - - 1x - 1x - - - 0.5x - 0.5x - - - 0.25x - 0.25x - - - 0.125x - 0.125x - - - 0.1x - 0.1x - - - Pause - 暂停 - - - - QmlJSInspector::Internal::ContextCrumblePath - - [no context] - [无关连] - - - - QmlJSInspector::Internal::InspectorUi - - Context Path - 上下文路径 - - - QML Inspector - QML 检查器 - - - QML Observer - QML Observer - - - Filter properties - 过滤属性 - - - - QmlJSInspector::Internal::QmlJSLiveTextPreview - - Disable Live Preview - 禁用即时预览 - - - The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. - 第%2行第%3列的%1属性在重新载入QML应用前无法更改. - - - The %1 element at line %2, column %3 cannot be changed without reloading the QML application. - 第%2行第%3列的%1元素在重新载入QML应用前无法更改. - - - Reload - 重新载入 - - - - QmlJSInspector::Internal::QmlJSObjectTree - - Go to file - 转到文件 - - - Url: - Url: - - - - QmlJSInspector::ToolBarColorBox - - Copy Color - 复制颜色 - - - - QmakeProjectManager - - Add Library - 添加库 - - - Summary - 汇总 - - - Library Type - 库类型 - - - Choose the type of the library to link to - 选择链接到的库类型 - - - System library - 系统库 - - - Links to a system library. -Neither the path to the library nor the path to its includes is added to the .pro file. - 链接到系统库。 -无论是库的路径还是库的 includes都没被添加到 .pro 文件中。 - - - System package - 系统包 - - - Links to a system library using pkg-config. - 使用pkg-config.连接到系统库。 - - - External library - 外部库 - - - Links to a library that is not located in your build tree. -Adds the library and include paths to the .pro file. - 链接到不在您的构建树中的库。 -请将库和它的include 路径添加到.pro文件中。 - - - Internal library - 内部库 - - - Links to a library that is located in your build tree. -Adds the library and include paths to the .pro file. - 链接到在您的构建树中的库。 -请将库和它的include 路径添加到.pro文件中。 - - - System Library - 系统库 - - - Specify the library to link to - 指定链接到的库 - - - System Package - 系统包 - - - Specify the package to link to - 指定链接到的包 - - - External Library - 外部库 - - - Specify the library to link to and the includes path - 指定链接库和包含路径 - - - Internal Library - 内部库 - - - Choose the project file of the library to link to - 选择要链接的库的项目文件 - - - The following snippet will be added to the<br><b>%1</b> file: - 下列代码段将被添加到文件<br><b>%1</b> 中: - - - %1 Dynamic - %1 动态 - - - %1 Static - %1 静态 - - - %1 Framework - %1 框架 - - - %1 Library - %1 库 - - - Only available for Qt for Desktop and Qt for Qt Simulator. - 仅限 Qt 桌面版 或者 Qt 模拟器版本。 - - - Not needed. - 不需要。 - - - Private headers are missing for this Qt version. - 这个Qt版本的私有头文件缺失。 - - - qmldump - qmldump - - - - ProjectExplorer::QmlDumpTool - - qmldump could not be built in any of the directories: -- %1 + XML output is recommended, because it avoids parsing issues, while plain text is more human readable. -Reason: %2 - qmldump无法在以下目录中构建: --%1 - -原因:%2 - - - - QmlDumpBuildTask - - Building helper - 构建助手 - - - - QmakeProjectManager - - Only available for Qt for Desktop or Qt for Qt Simulator. - 仅限 Qt 桌面版 或者 Qt 模拟器版本。 +Warning: Plain text misses some information, such as duration. + - QMLObserver - QMLObserver - - - - ProjectExplorer::QmlObserverTool - - The target directory %1 could not be created. - 目标目录 %1 无法被创建。 + Verbose benchmarks + - QMLObserver could not be built in any of the directories: -- %1 - -Reason: %2 - QMLObserver无法在下列任何一个目录中被构建: --%1 - -原因是:%2 - - - - QmakeProjectManager - - SBSv2 build log - SBSv2构建日志 + Log signals and slots + - The file '%1' is not a SBSv2 log file. - 文件'%1'不是一个SBSv2日志文件. + Log every signal emission and resulting slot invocations. + - Running command: %1 - - 执行命令:%1 + Limit warnings + - Recipe %1 failed with exit code %2. - %1 is the SBSv2 build recipe name, %2 the return code of the failed command - SBSv2 build recipe %1错误,错误代码为%2. + Set the maximum number of warnings. 0 means that the number is not limited. + - Could not open desktop file template - 无法打开桌面文件模板 + Unlimited + - Could not open main.cpp template '%1'. - 无法打开main.cpp模板'%1'. + Benchmark Metrics + - Could not open project file template '%1'. - 无法打开项目文件模板'%1'. + <p>Multiple testcases inside a single executable are not officially supported. Depending on the implementation they might get executed or not, but never will be explicitly selectable.</p> + - Could not open template file '%1'. - 无法打开模板文件'%1'。 + inherited + - Application Options - 应用程序选项 - - - - MobileAppWizard - - Mobile Qt Application - 移动Qt应用 + multiple testcases + - Creates a Qt application optimized for mobile devices with a Qt Designer-based main window. - -Preselects Qt for Simulator and mobile targets if available. - 创建一个为移动设备优化的基于Qt Designer的主窗口应用程序。 - -预选一个可用的针对模拟器或者移动目标的Qt版本。 - - - - QmakeProjectManager - - The file is not a valid image. - 不是一个合法的图片文件. + Quick Test + - The icon has an invalid size. - 图标大小不合法. + <unnamed> + - Icon unusable - 图标不可用 + Give all test cases a name to ensure correct behavior when running test cases and to be able to select them + - The QML import path '%1' cannot be found. - QML导入路径'%1'无法找到。 + Scanning for Tests + - The QML module '%1' cannot be found. - QML模块'%1'未找到。 + Tests + - Invalid '%1' entry in '%2' of module '%3'. - 模块'%3'的'%2'中的项'%1'无效。 + No active test frameworks. + - No .pro file for plugin '%1' can be found. - 找不到'%1'插件对应的.pro文件。 + Run This Test + - No .pro file for plugin '%1' cannot be found. - 没有可被插件'%1'使用的.pro文件被找到. + Run Without Deployment + 忽略部署直接运行 - Could not write file '%1'. - 无法写文件'%1'. + Debug This Test + - New Qt Quick Application - 新建Qt Quick程序 - - - This wizard generates a Qt Quick application project. - 此向导将生成一个Qt Quick应用程序项目。 - - - Select existing QML file - 选择现有的QML 文件 - - - Application Type - 应用程序类型 - - - QML Sources - QML源文件 - - - Qt Quick Application - Qt Quick应用程序 - - - Creates a Qt Quick application project that can contain both QML and C++ code and includes a QDeclarativeView. - - - 创建一个Qt Quick应用程序项目,它可以同时包含QML和C++代码,并包括一个QDeclarativeView。 - - - - - Qt Quick 1 Application (Built-in Elements) - Qt Quick 1应用程序(内建元素) - - - The built-in elements in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel. - -Requires <b>Qt 4.7.0</b> or newer. - QtQuick 1命名空间的内建元素允许您编写跨平台的自定义观感的应用程序。 - -要求<b>Qt 4.7.0</b>或更新版本。 - - - Qt Quick 2 Application (Built-in Elements) - Qt Quick 2应用程序(内建元素) - - - Creates a Qt Quick application project that can contain both QML and C++ code and includes a QQuickView. - -The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel. - -Requires <b>Qt 5.0</b> or newer. - 创建一个Qt Quick应用程序项目,它可以同时包含QML和C++代码,并包括一个QQuickView。 - -QtQuick 2命名空间的内建元素允许您编写跨平台的自定义观感的应用程序。 - -要求<b>Qt 5.0</b>或更新版本。 - - - Qt Quick Application for MeeGo Harmattan - MeeGo Harmattan平台的Qt Quick程序 - - - The Qt Quick Components for MeeGo Harmattan are a set of ready-made components that are designed with specific native appearance for the MeeGo Harmattan platform. - -Requires <b>Qt 4.7.4</b> or newer, and the component set installed for your Qt version. - Meego Harmattan 的QT Quick组件是已经定制完成的组件集,设计为原生支持MeeGo Harmattan系统平台。 - -需要Qt 4.7.4 或更新版本,并且也要安装相应的组件。 - - - Qt Quick Application (from Existing QML File) - Qt Quick应用程序(从已经存在的QML文件) - - - Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying. - -Requires <b>Qt 4.7.0</b> or newer. - 从已经存在的QML文件创建一个可部署的Qt Quick应用程序。所有和主qml文件在同一目录下的文件和目录都将被部署。您可以在部署之前的任意时刻修改目录的内容。 - -需要<b>Qt 4.7.0</b> 或更新版本。 - - - - TaskList::Internal::StopMonitoringHandler - - Stop monitoring - 停止监视 - - - Stop Monitoring - 停止监视 - - - Stop monitoring task files. - 停止监视任务文件。 - - - - TaskList::Internal::TaskFileFactory - - Task file reader - 任务文件读取器 - - - File Error - 文件错误 - - - - TaskList::TaskListPlugin - - Cannot open task file %1: %2 - 文法打开任务文件%1:%2 - - - My Tasks - Category under which tasklist tasks are listed in Issues view - 我的任务 - - - - TextEditor::HighlighterSettingsPage - - Generic Highlighter - 通用高亮器 - - - Download Definitions - 下载定义 - - - Download Definitions... - 下载定义... - - - Autodetect - 自动检测 - - - Autodetect Definitions - 自动检测定义 - - - No pre-installed definitions could be found. - 没有找到预装的定义。 - - - Error connecting to server. - 连接服务器失败。 - - - Not possible to retrieve data. - 无法获取数据。 - - - - TextEditor::Internal::ManageDefinitionsDialog - - Name - 名称 - - - Installed - 已安装 - - - Available - 可用 - - - Download Definitions - 下载定义 - - - Download Information - 下载信息 - - - There is already one download in progress. Please wait until it is finished. - 队列中已有一个下载任务,请等待其完成。 - - - Dialog - 对话框 - - - Definitions - 定义 + Debug Without Deployment + Select All - 全选 + 全选 - Clear Selection - 清空选择 + Deselect All + - Invert Selection - 反选 + Filter Test Tree + - Download Selected Definitions - 下载选中的定义 - - - - TextEditor::Internal::Manager - - Registering definitions - 正在注册定义 + Sort Naturally + - Downloading definitions - 正在下载定义 + Expand All + 展开全部 - Error downloading selected definition(s). - 下载选中定义时出错。 + Collapse All + 折叠全部 - Error downloading one or more definitions. - 下载一个或多个定义时出错。 + Sort Alphabetically + 按字母排序 + + + Show Init and Cleanup Functions + + + + Show Data Functions + + + + Test executable crashed. + + + + Stop Test Run + + + + Filter Test Results + + + + Switch Between Visual and Text Display + + + + Test Results + 测试结果 + + + Pass + 通过 + + + Fail + + + + Expected Fail + + + + Unexpected Pass + + + + Skip + 跳过 + + + Benchmarks + + + + Debug Messages + + + + Warning Messages + + + + Internal Messages + + + + Check All Filters + + + + Uncheck All Filters + + + + Test summary + + + + passes + + + + fails + + + + unexpected passes + + + + expected fails + + + + fatals + + + + blacklisted + + + + skipped + + + + disabled + + + + Copy + 复制 + + + Copy All + + + + Save Output to File... + + + + Run This Test Without Deployment + + + + Debug This Test Without Deployment + + + + Save Output To + + + + Error + 错误 + + + Failed to write "%1". + +%2 + + + + AutoTest Debug + + + + Test run canceled by user. + -Please check the directory's access rights. - -请检查目录访问权限。 +Run configuration: deduced from "%1" + - Download Error - 下载错误 + +Run configuration: "%1" + + + + Omitted the following arguments specified on the run configuration page for "%1": + + + + Omitted the following environment variables for "%1": + + + + Executable path is empty. (%1) + + + + Current kit has changed. Canceling test run. + + + + Test case canceled due to timeout. +Maybe raise the timeout? + + + + Failed to start test for project "%1". + + + + Test for project "%1" crashed. + + + + Test for project "%1" did not produce any expected output. + + + + No tests selected. Canceling test run. + + + + Project is null. Canceling test run. +Only desktop kits are supported. Make sure the currently active kit is a desktop kit. + + + + Project is not configured. Canceling test run. + + + + Project is null for "%1". Removing from test run. +Check the test environment. + + + + Project's run configuration was deduced for "%1". +This might cause trouble during execution. +(deduced from "%2") + + + + Startup project has changed. Canceling test run. + + + + No test cases left for execution. Canceling test run. + + + + Running Tests + + + + Failed to get run configuration. + + + + Could not find command "%1". (%2) + + + + Unable to display test results when using CDB. + + + + Build failed. Canceling test run. + + + + Select Run Configuration + + + + Could not determine which run configuration to choose for running tests + + + + Remember choice. Cached choices can be reset by switching projects or using the option to clear the cache. + + + + Run Configuration: + + + + Executable: + 执行档: + + + Arguments: + 参数: + + + Working Directory: + 工作目录: + + + Omit internal messages + + + + Hides internal messages by default. You can still enable them by using the test results filter. + + + + Omit run configuration warnings + + + + Hides warnings related to a deduced run configuration. + + + + Limit result output + + + + Limits result output to 100000 characters. + + + + Limit result description: + + + + Limit number of lines shown in test result tooltip and description. + + + + Open results when tests start + + + + Displays test results automatically when tests are started. + + + + Open results when tests finish + + + + Displays test results automatically when tests are finished. + + + + Only for unsuccessful test runs + + + + Displays test results only if the test run contains failed, fatal or unexpectedly passed tests. + + + + Automatically scroll results + + + + Automatically scrolls down when new items are added and scrollbar is at bottom. + + + + Group results by application + + + + Process arguments + + + + Allow passing arguments specified on the respective run configuration. +Warning: this is an experimental feature and might lead to failing to execute the test executable. + + + + Runs chosen tests automatically if a build succeeded. + + + + Timeout: + 超时时间: + + + Timeout used when executing each test case. + + + + s + + + + Timeout used when executing test cases. This will apply for each test case on its own, not the whole project. + + + + Selects the test frameworks to be handled by the AutoTest plugin. + + + + Framework + 框架 + + + Group + + + + Enables grouping of test cases. + + + + Reset Cached Choices + + + + Clear all cached choices of run configurations for tests where the executable could not be deduced. + + + + General + 概要 + + + Automatically run + + + + Active Test Frameworks + + + + Enable or disable test frameworks to be handled by the AutoTest plugin. + + + + Enable or disable grouping of test cases by folder. + + + + No active test frameworks or tools. + + + + You will not be able to use the AutoTest plugin without having at least one active test framework. + + + + Mixing test frameworks and test tools. + + + + Mixing test frameworks and test tools can lead to duplicating run information when using "Run All Tests", for example. + + + + %1 (none) + - TextEditor::Internal::OutlineWidgetStack + AutotoolsProjectManager - No outline available - 没有可用大纲 + Arguments: + 参数: - Synchronize with Editor - 与编辑器同步 + Configuration unchanged, skipping autogen step. + 配置未改变,跳过autogen步骤。 - Filter tree - 过滤视图 + Autogen + Display name for AutotoolsProjectManager::AutogenStep id. + Autogen + + + Configuration unchanged, skipping autoreconf step. + 配置未改变,跳过autoreconf步骤。 + + + Autoreconf + Display name for AutotoolsProjectManager::AutoreconfStep id. + Autoreconf + + + Autotools Manager + + + + Configuration unchanged, skipping configure step. + 配置未改变,跳过configure步骤。 + + + Configure + Display name for AutotoolsProjectManager::ConfigureStep id. + 配置 + + + Parsing %1 in directory %2 + 正在目录 %2中分析 %1 + + + Parsing directory %1 + 正在分析目录 %1 - TextEditor::Internal::OutlineFactory + BackgroundColorMenuActions - Outline - 大纲 + Background Color Actions + - TextEditor::Internal::PlainTextEditorFactory + BareMetal - A highlight definition was not found for this file. Would you like to try to find one? - 没有为这个文件找到高亮定义,您想要搜索一个吗? + Cannot debug: Kit has no device. + - Show highlighter options... - 显示高亮选项... + No debug server provider found for %1 + - Show highlighter options - 显示高亮选项 + Bare Metal + + + + Bare Metal Device + + + + Debug server provider: + + + + New Bare Metal Device Configuration Setup + + + + Set up Debug Server or Hardware Debugger + + + + Name: + 名称: + + + Deploy to BareMetal Device + + + + Unknown + 未知 + + + Custom Executable + 自定义执行档 + + + The remote executable must be set in order to run a custom remote run configuration. + + + + Manage... + 管理... + + + None + + + + Not recognized + + + + GDB + GDB + + + UVSC + + + + GDB compatible provider engine +(used together with the GDB debuggers). + + + + UVSC compatible provider engine +(used together with the KEIL uVision). + + + + Name + + + + Type + 类型 + + + Engine + + + + Duplicate Providers Detected + + + + The following providers were already configured:<br>&nbsp;%1<br>They were not configured again. + + + + Add + 添加 + + + Clone + 克隆 + + + Remove + 删除 + + + Debug Server Providers + + + + Clone of %1 + %1 的克隆 + + + EBlink + + + + Host: + 主机: + + + Executable file: + + + + Script file: + + + + Specify the verbosity level (0 to 7). + + + + Verbosity level: + + + + Connect under reset (hotplug). + + + + Connect under reset: + + + + Interface type. + + + + Type: + 类型: + + + Specify the speed of the interface (120 to 8000) in kilohertz (kHz). + + + + Speed: + + + + Do not use EBlink flash cache. + + + + Disable cache: + + + + Shut down EBlink server after disconnect. + + + + Auto shutdown: + + + + Init commands: + + + + Reset commands: + + + + SWD + + + + JTAG + + + + Cannot debug: Local executable is not set. + + + + Cannot debug: Could not find executable for "%1". + + + + Choose the desired startup mode of the GDB server provider. + + + + Startup mode: + + + + Peripheral description files (*.svd) + + + + Select Peripheral Description File + + + + Peripheral description file: + + + + Startup in TCP/IP Mode + + + + Startup in Pipe Mode + + + + Enter GDB commands to reset the board and to write the nonvolatile memory. + + + + Enter GDB commands to reset the hardware. The MCU should be halted after these commands. + + + + Generic + + + + Use GDB target extended-remote + + + + Extended mode: + + + + JLink + + + + JLink GDB Server (JLinkGDBServerCL.exe) + + + + JLink GDB Server (JLinkGDBServer) + + + + IP Address + + + + Host interface: + + + + Speed + + + + Target interface: + + + + Device: + 设备: + + + Additional arguments: + 额外的参数: + + + Default + 默认 + + + USB + + + + TCP/IP + + + + Compact JTAG + + + + Renesas RX FINE + + + + ICSP + + + + Auto + + + + Adaptive + + + + %1 kHz + + + + OpenOCD + + + + Root scripts directory: + + + + Configuration file: + + + + ST-LINK Utility + + + + Specify the verbosity level (0..99). + + + + Continue listening for connections after disconnect. + + + + Reset board on connection. + + + + Reset on connection: + + + + Transport layer type. + + + + Version: + 版本: + + + ST-LINK/V1 + + + + ST-LINK/V2 + + + + Keep unspecified + + + + uVision JLink + + + + Unable to create a uVision project options template. + + + + Adapter options: + + + + Port: + 端口: + + + 50MHz + + + + 33MHz + + + + 25MHz + + + + 20MHz + + + + 10MHz + + + + 5MHz + + + + 3MHz + + + + 2MHz + + + + 1MHz + + + + 500kHz + + + + 200kHz + + + + 100kHz + + + + uVision Simulator + + + + Limit speed to real-time. + + + + Limit speed to real-time: + + + + uVision St-Link + + + + 9MHz + + + + 4.5MHz + + + + 2.25MHz + + + + 1.12MHz + + + + 560kHz + + + + 280kHz + + + + 140kHz + + + + 4MHz + + + + 1.8MHz + + + + 950kHz + + + + 480kHz + + + + 240kHz + + + + 125kHz + + + + 50kHz + + + + 25kHz + + + + 15kHz + + + + 5kHz + + + + Unable to create a uVision project template. + + + + Choose Keil Toolset Configuration File + + + + Tools file path: + + + + Target device: + + + + Target driver: + + + + Starting %1 ... + + + + Version + 版本 + + + Vendor + 销售商 + + + ID + ID + + + Start + + + + Size + + + + FLASH Start + + + + FLASH Size + + + + RAM Start + + + + RAM Size + + + + Algorithm path. + + + + FLASH: + + + + Start address. + + + + Size. + + + + RAM: + + + + Vendor: + 销售商: + + + Package: + 包: + + + Description: + 说明: + + + Memory: + + + + Flash algorithm: + + + + Target device not selected. + + + + Available Target Devices + + + + Path + + + + Debugger CPU library (depends on a CPU core). + + + + Debugger driver library. + + + + Driver library: + + + + CPU library: + + + + Target driver not selected. + + + + Available Target Drivers + + + + IAREW %1 (%2, %3) + + + + IAREW + + + + &Compiler path: + 编译器路径(&C): + + + Platform codegen flags: + + + + &ABI: + &ABI: + + + Enter the name of the debugger server provider. + + + + Enter TCP/IP hostname of the debug server, like "localhost" or "192.0.2.1". + + + + Enter TCP/IP port which will be listened by the debug server. + + + + KEIL %1 (%2, %3) + + + + KEIL + + + + SDCC %1 (%2, %3) + + + + SDCC + + + + + BaseFileWizard + + Unable to create the directory %1. + 无法创建目录 %1。 + + + + BaseMessage + + Cannot decode content with "%1". Falling back to "%2". + + + + Expected an integer in "%1", but got "%2". + @@ -29549,12 +4288,6 @@ Please check the directory's access rights. Branch: 分支: - - Perform a local commit in a bound branch. -Local commits are not pushed to the master branch until a normal commit is performed - 本地提交到一个受限的分支. -直到一次正常提交之前,本地提交不会直接合并到master分支 - Local commit 本地提交 @@ -29575,99 +4308,6 @@ Local commits are not pushed to the master branch until a normal commit is perfo Fixed bugs: 修复的bug: - - Perform a local commit in a bound branch. -Local commits are not pushed to the master branch until a normal commit is performed. - 本地提交到一个受限的分支. -直到一次正常提交之前,本地提交不会被推送到master分支。 - - - By default, branch will fail if the target directory exists, but does not already have a control directory. -This flag will allow branch to proceed - 默认情况下, 如果目标文件夹存在则分支将会失败, 但是如果还没有控制目录. -那么分支将被执行 - - - Create a stacked branch referring to the source branch. -The new branch will depend on the availability of the source branch for all operations - 创建一个stacked分支来指向源分支. -新的分支将会自动判断源分支的权限来确定可用性 - - - Stacked - Stacked - - - Do not use a shared repository, even if available - 即使可用,也不要使用共享仓库 - - - Standalone - 独立的 - - - Bind new branch to source location - 绑定新的分支到源路径 - - - Switch the checkout in the current directory to the new branch - 切换当前目录到新的分支 - - - Switch checkout - 切换检出分支 - - - Hard-link working tree files where possible - 如果可能,硬连接工作树下的文件 - - - Hardlink - 硬连接 - - - Create a branch without a working-tree - 创建一个没有工作树的分支 - - - No working-tree - 无工作树 - - - By default, branch will fail if the target directory exists, but does not already have a control directory. -This flag will allow branch to proceed. - 默认情况下,如果目标目录存在但还没有控制目录则branch将会失败。 -该标志允许branch继续执行。 - - - Create a stacked branch referring to the source branch. -The new branch will depend on the availability of the source branch for all operations. - 创建一个stacked分支来指向源分支。 -新的分支的所有操作依赖于源分支的可用性。 - - - Do not use a shared repository, even if available. - 即使可用,也不要使用共享仓库。 - - - Switch the checkout in the current directory to the new branch. - 切换当前目录的检出分支到新的分支。 - - - Hard-link working tree files where possible. - 如果可能,硬连接工作树下的文件。 - - - Create a branch without a working-tree. - 创建一个没有工作树的分支。 - - - - Bazaar - - Form - 界面 - Configuration 配置 @@ -29704,10 +4344,6 @@ The new branch will depend on the availability of the source branch for all oper Log count: 日志数: - - The number of recent commit logs to show, choose 0 to see all enteries - 要显示的最近提交日志的数目,选择 0 查看所有内容 - Timeout: 超时时间: @@ -29716,17 +4352,10 @@ The new branch will depend on the availability of the source branch for all oper s - - Prompt on submit - 提交时弹出提示 - The number of recent commit logs to show. Choose 0 to see all entries. 要显示的最近提交日志的数目,选择 0 查看所有内容。 - - - Bazaar Dialog 对话框 @@ -29743,10 +4372,6 @@ The new branch will depend on the availability of the source branch for all oper Local filesystem: 本地文件系统: - - for example https://[user[:pass]@]host[:port]/[path] - 比如https://[user[:pass]@]host[:port]/[path] - Specify URL: 指定URL: @@ -29759,30 +4384,14 @@ The new branch will depend on the availability of the source branch for all oper Remember specified location as default 记住指定的位置为默认位置 - - Ignore differences between branches and overwrite -unconditionally - 忽略分支和覆盖之间的差异 -无条件 - Overwrite 覆盖 - - By default, push will fail if the target directory exists, but does not already have a control directory. -This flag will allow push to proceed - 默认情况下, 如果目标文件夹存在则push将会失败, 但是如果还没有控制目录. -那么push将被执行 - Use existing directory 使用存在的目录 - - Create the path leading up to the branch if it does not already exist - 如果不存在则创建一个路径到分支 - Create prefix 创建前缀 @@ -29791,12 +4400,6 @@ This flag will allow push to proceed Revision: 修订版本: - - Perform a local pull in a bound branch. -Local pulls are not applied to the master branch - 本地pull到一个受限的分支. -本地 pull 不会合并到master分支 - Local 本地 @@ -29809,35 +4412,12 @@ Local pulls are not applied to the master branch Push Destination Push 目标 - - For example: https://[user[:pass]@]host[:port]/[path] - 例如 https://[用户名[:密码]@]主机名[:端口]/[路径] - - - Ignore differences between branches and overwrite -unconditionally. - the chinese translation is not as long as the original text. - 无条件地忽略分支和覆盖之间的差异。 - By default, push will fail if the target directory exists, but does not already have a control directory. This flag will allow push to proceed. 默认情况下,如果目标目录存在但还没有控制目录则push将会失败。 该标志允许push继续执行。 - - Create the path leading up to the branch if it does not already exist. - 如果不存在则创建分支的前导路径。 - - - Perform a local pull in a bound branch. -Local pulls are not applied to the master branch. - 在一个受限的分支中执行本地pull。 -本地 pull 不会应用到master分支。 - - - - Bazaar Revert 还原 @@ -29846,1709 +4426,10 @@ Local pulls are not applied to the master branch. Specify a revision other than the default? 指定一个修订版本而不使用默认版本? - - - Core::ExternalToolConfig - - Form - 界面 - - - Add tool - 添加工具 - - - Add - 添加 - - - Remove tool - 删除工具 - - - Remove - 删除 - - - Revert tool to default - 还原到默认工具 - - - Reset - 重置 - - - Description: - 说明: - - - Executable: - 执行档: - - - Arguments: - 参数: - - - Working directory: - 工作目录: - - - <html><head/><body> -<p>What to do with the executable's standard output. -<ul><li>Ignore: Do nothing with it</li><li>Show in pane: Show it in the general output pane</li><li>Replace selection: Replace the current selection in the current document with it</li></ul></p></body></html> - - <html><head/><body> -<p>对于执行档的标准输出如何处理。 -<ul><li>忽略: 什么也不做</li><li>显示到窗口: 显示到标准输出窗口中</li><li>覆盖选择: 在当前的文档种覆盖当前的选择</li></ul></p></body></html> - - - - Output: - 输出: - - - Ignore - 忽略 - - - Show in Pane - 显示在窗格中 - - - Replace Selection - 替代选择 - - - <html><head><body> -<p >What to do with the executable's standard error output.</p> -<ul><li>Ignore: Do nothing with it</li> -<li>Show in pane: Show it in the general output pane</li> -<li>Replace selection: Replace the current selection in the current document with it</li> -</ul></body></html> - <html><head/><body> -<p>对于执行档的标准错误输出如何处理.</p> -<ul><li>忽略: 什么也不做</li> -<li>显示到窗口: 显示到标准输出窗口中</li> -<li>覆盖选择: 在当前的文档种覆盖当前的选择</li></ul></p></body></html> -</ul></body></html> - - - Error output: - 错误输出: - - - Text to pass to the executable via standard input. Leave empty if the executable should not receive any input. - 通过标准输入传递给可执行文件的文本,如果可执行档不应收到任何输入则此项留白。 - - - Input: - 输入: - - - If the tool modifies the current document, set this flag to ensure that the document is saved before running the tool and is reloaded after the tool finished. - 如果工具修改了当前的文档,设置这个标志保证文档在工具运行前被保存并且在工具运行后自动重新载入文档。 - - - Modifies current document - 修改当前的文档 - - - Add Tool - 添加工具 - - - Add Category - 添加目录 - - - - MimeTypeMagicDialog - - Dialog - 对话框 - - - Value: - 值: - - - Type - 类型 - - - String - 字符串 - - - Byte - 字节 - - - Use Recommended - 使用建议 - - - Start range: - 开始范围: - - - End range: - 结束范围: - - - Priority: - 优先级: - - - <i>Note: Wide range values might impact on Qt Creator's performance when opening files.</i> - <i>注意: 广域的取值范围可能影响到Qt Creator's 打开文件的性能.</i> - - - <i>Note: Wide range values might impact Qt Creator's performance when opening files.</i> - <i>注意: 广域的取值范围可能影响到Qt Creator's 打开文件的性能.</i> - - - - MimeTypeSettingsPage - - Form - 界面 - - - Registered MIME Types - 注册了的MIME 类型 - - - Reset all to default - 重置所有为默认 - - - Reset All - 重置所有 - - - Details - 详情 - - - Patterns: - 模式: - - - Magic Header - 魔力头文件 - - - Type - 类型 - - - Range - 范围 - - - Priority - 优先级 - - - Add - 添加 - - - Edit - 编辑 - - - Remove - 删除 - - - Reset all to default. - 重置所有为默认. - - - Add... - 添加... - - - Edit... - 编辑... - - - - Core::VariableChooser - - Variables - 变量 - - - Select a variable to insert. - 选择一个变量来插入。 - - - Insert variable - 插入变量 - - - - LldbOptionsPageWidget - - Enable LLDB - 启用LLDB - - - Use Gdb python dumpers - 使用Gdb python dumpers - - - Use GDB python dumpers - 使用GDB python 回收助手 - - - Use GDB Python dumpers - 使用Gdb python dumpers - - - - StartRemoteEngineDialog - - Start Remote Engine - 启动远程引擎 - - - &Host: - 主机(&H): - - - &Username: - 用户名(&U): - - - &Password: - 密码(&P): - - - &Engine path: - 引擎路径(&E): - - - &Inferior path: - &Inferior 路径: - - - - Macros::Internal::MacroOptionsWidget - - Form - 界面 - - - Preferences - 首选项 - - - Name - 名称 - - - Description - 说明 - - - Shortcut - 快捷键 - - - Remove - 删除 - - - Macro - - - - Description: - 说明: - - - - Macros::Internal::SaveDialog - - Save Macro - 保存宏 - - - Name: - 名称: - - - Description: - 说明: - - - - MemcheckConfigWidget - - Backtrace frame count: - 回溯帧数: - - - Add - 添加 - - - Remove - 删除 - - - Track origins of uninitialized memory - 跟踪原始未初始化的内存 - - - - SuppressionDialog - - Dialog - 对话框 - - - Suppression File: - Suppression 文件: - - - - ProjectExplorer::Internal::PublishingWizardSelectionDialog - - Publishing Wizard Selection - 选择发布向导 - - - Available Wizards: - 可用向导: - - - Start Wizard - 开启向导 - - - Publishing is currently not possible for project '%1'. - 项目 '%1' 当前不可发布。 - - - - ToolChainOptionsPage - - Add - 添加 - - - Remove - 删除 - - - Clone - 克隆 - - - - QmakeProjectManager - - Used to extract QML type information from library-based plugins. - 使用基于库的插件来解压QML类型的信息。 - - - QML Dump: - QML 提取: - - - A modified version of qmlviewer with support for QML/JS debugging. - 修改过的qmlviewer版本支持QML/JS 调试. - - - QML Observer: - QML Observer: - - - QML Debugging Library: - QML 调试库: - - - Show compiler output of last build. - 显示最后一次构建的编译输出。 - - - Show Log - 显示日志 - - - Compile debugging helpers that are checked. - 编译选中的调试助手。 - - - Build All - 构建所有项目 - - - Helps showing content of Qt types. Only used in older versions of GDB. - 助手显示内容的Qt 类型。只使用在老版本的GDB上。 - - - GDB Helper: - GDB 助手: - - - - MaemoDeviceConfigurationsSettingsWidget - - Maemo Device Configurations - Maemo设备配置 - - - &Configuration: - 配置(&C): - - - &Name: - 名称(&N): - - - Device type: - 设备类型: - - - Authentication type: - 验证类型: - - - Password - 密码 - - - &Key - 密钥(&K) - - - &Host name: - 主机名称(&H): - - - IP or host name of the device - 设备的IP或者主机名称 - - - &SSH port: - SSH端口(&S): - - - Free ports: - 空闲端口: - - - You can enter lists and ranges like this: 1024,1026-1028,1030 - 您可以输入范围,输入形式如:1024,1026-1028,1030 - - - TextLabel - TextLabel - - - Connection time&out: - 连接超时(&O): - - - s - - - - &Username: - 用户名(&U): - - - &Password: - 密码(&P): - - - Show password - 显示密码 - - - Private key file: - 私钥文件: - - - Set as Default - 设置为默认 - - - OS type: - OS 类型: - - - &Add - 添加(&A) - - - &Remove - 删除(&R) - - - Click here to check whether this device is properly set up to run Maemo projects. - 选中此项来检查设备已经完成设置来运行Maemo项目了. - - - &Test - 测试(&T) - - - Click here if you do not have an SSH key yet. - 如果您还没有SSH密钥请点击这里。 - - - &Generate SSH Key ... - 生成SSH密钥(&G)... - - - &Deploy Public Key ... - 部署公钥(&D)... - - - Click here to see which processes are running on the device. - 点击这里查看设备上正在运行的进程。 - - - Remote Processes ... - 远程进程... - - - Set As Default - 设置为默认 - - - &Generate SSH Key... - 生成SSH密钥(&G)... - - - - MaemoPublishingUploadSettingsPageFremantleFree - - WizardPage - 向导页面 - - - Upload Settings - 上传设置 - - - Garage account name: - 车库账户名称: - - - <a href="https://garage.maemo.org/account/register.php">Get an account</a> - <a href="https://garage.maemo.org/account/register.php">取得帐号</a> - - - <a href="https://garage.maemo.org/extras-assistant/index.php">Request upload rights</a> - <a href="https://garage.maemo.org/extras-assistant/index.php">请求获得上传权限</a> - - - Private key file: - 私钥文件: - - - Server address: - 服务器地址: - - - Target directory on server: - 在服务器上的目标文件夹: - - - - RemoteLinux - - List of Remote Processes - 远程进程列表 - - - &Filter by process name: - 按进程名过滤(&F): - - - &Update List - 更新列表(&U) - - - &Kill Selected Process - 停止选中进程(&K) - - - - QmakeProjectManager - - ARM &version: - ARM版本(&V): - - - Version 5 - 版本5 - - - Version 6 - 版本6 - - - &Compiler path: - 编译器路径(&C): - - - Environment Variables - 环境变量 - - - - RemoteLinux - - Details of Certificate - 验证详情 - - - Choose a build configuration: - 选择一个构建配置: - - - Only Qt versions above 4.6.3 are made available in this wizard. -Previous Qt versions have limitations in building suitable SIS files. - 只有Qt版本高于4.6.3 才能使用本向导. -之前的Qt版本在构建SIS 文件时有限制. - - - Choose a tool chain: - 选择一个工具链: - - - - RemoteLinux - - Global vendor name: - 全局供应商名称: - - - Qt version used in builds: - 在构建种使用的Qt 版本: - - - Current Qt Version - 当前的Qt版本 - - - Application UID: - 应用程序UID: - - - Current UID3 - 当前UID3 - - - Capabilities: - 能力: - - - Current set of capabilities - 当前设置的能力 - - - Current Global Vendor Name - 当前的全局供应商名称 - - - Localised vendor names: - 本地供应商名称: - - - Localised Vendor Names - 本地供应商名称 - - - Display name: - 显示名称: - - - - QmakeProjectManager - - Dialog - 对话框 - - - Compiler path: - 编译器路径: - - - System include path: - 系统包含路径: - - - System library path: - 系统库路径: - - - SBS v2 directory: - SBS v2 目录: - - - - Html5AppWizardSourcesPage - - WizardPage - 向导页面 - - - Main HTML File - 主HTML 文件 - - - Generate an index.html file - 创建一个index.html 文件 - - - Import an existing .html file - 导入一个现有的.html 文件 - - - Load a URL - 载入一个URL - - - Touch optimized navigation - 触摸导航 - - - Enable touch optimized navigation - 开启触摸导航 - - - - MobileAppWizardGenericOptionsPage - - WizardPage - 向导页面 - - - Orientation behavior: - 自适应行为: - - - - MobileAppWizardMaemoOptionsPage - - WizardPage - 向导页面 - - - Application icon (64x64): - 应用程序图标(64x64): - - - Application icon (%%w%%x%%h%%): - 应用程序图标(%%w%%x%%h%%): - - - - MobileAppWizardSymbianOptionsPage - - WizardPage - 向导页面 - - - Application icon (.svg): - 应用程序图标(.svg): - - - Target UID3: - 目标UID3: - - - Enable network access - 允许网络访问 - - - - BehaviorSettingsPage - - Form - 界面 - - - - BehaviorSettingsWidget - - Tabs and Indentation - 制表符和缩进 - - - Insert &spaces instead of tabs - 插入空格代替制表符(&S) - - - Ta&b size: - 制表符尺寸(&B): - - - Automatically determine based on the nearest indented line (previous line preferred over next line) - 按最近的缩进行自动决定 (前一行优先于后一行) - - - Based on the surrounding lines - 依据周围行的情况 - - - &Indent size: - 缩进尺寸(&i): - - - Enable automatic &indentation - 开启自动缩进(&i) - - - Backspace will go back one indentation level instead of one space. - 退格键将退回一个缩进而不是一个空白. - - - &Backspace follows indentation - 退格键跟随缩进(&B) - - - Block indentation style: - 代码块缩进风格: - - - <html><head/><body> -Controls the indentation style of curly brace blocks. - -<ul> -<li>Exclude Braces: The braces are not indented. -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> - -<li>Include Braces: The braces are indented. The contents of the block are on the same level as the braces. -<pre> -void foo() - { - if (a) - { - bar(); - } - } -</pre> -</li> - -<li>GNU Style: Indent the braces for blocks in statements. The contents are indented twice. -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> -</ul></body></html> - <html><head/><body> -控制花括号的缩进风格 - -<ul> -<li>排除花括号: 花括号不缩进。 -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> - -<li>包括花括号: 缩进花括号。代码块的内容与花括号在同一层。 -<pre> -void foo() - { - if (a) - { - bar(); - } - } -</pre> -</li> - -<li>GNU 风格: 缩进声明内部的花括号。其内容缩进两次。 -<pre> -void foo() -{ - if (a) - { - bar(); - } -} -</pre> -</li> -</ul></body></html> - - - Exclude Braces - 不包括括号 - - - Include Braces - 包括括号 - - - GNU Style - GNU风格 - - - Never - 从不 - - - Always - 总是 - - - In Leading White Space - 仅用于行首空白 - - - Align continuation lines: - 对齐连续行: - - - <html><head/><body> -Influences the indentation of continuation lines. - -<ul> -<li>Not At All: Do not align at all. Lines will only be indented to the current logical indentation depth. -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>With Spaces: Always use spaces for alignment, regardless of the other indentation settings. -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>With Regular Indent: Use tabs and/or spaces for alignment, as configured above. -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - <html><head/><body> -改变连续行的缩进 - -<ul> -<li>不对齐: 不进行对齐。代码行只根据当前逻辑缩进深度进行缩进。 -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>伴随空格: 允许使用空格进行对齐,忽略其他缩进设置。 -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>伴随规则缩进: 在原设置上使用 tab 或 空格进行对齐。 -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - - - Not At All - 不对齐 - - - With Spaces - 伴随空格 - - - With Regular Indent - 伴随规则缩进 - - - Cleanup actions which are automatically performed right before the file is saved to disk. - 文件保存到磁盘上去之前清理工作将会自动执行。 - - - Cleanups Upon Saving - 保存时清理 - - - Removes trailing whitespace upon saving. - 保存时去除尾部空白. - - - &Clean whitespace - 清除空白(&C) - - - Clean whitespace in entire document instead of only for changed parts. - 清除整个文档的空白代,不只清除改变部分的空白. - - - In entire &document - 整个文档适用(&D) - - - Correct leading whitespace according to tab settings. - 根据tab设置正确留白. - - - Clean indentation - 清空缩进 - - - &Ensure newline at end of file - 确保文件结尾有新的一行(&E) - - - File Encodings - 文件编码 - - - Default encoding: - 默认编码: - - - <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> - <html><head/><body> -<p>文本编辑器如何处理 UTF-8编码签名 . 选项是:</p> -<ul ><li><i>如果编码是 UTF-8:</i> 当保存为UTF-8 编码时总是添加BOM . 这将不会工作如果编码是<i>System</i>, Qt Creator 不知道它确切编码是什么.</li> -<li><i>如果已经存在则保持: </i>如果已经存在,当他载入时保存文件伴随BOM .</li> -<li><i>总是删除:</i> 从来不写UTF-8 BOM, 还有可能删除已经存在的.</li></ul> -<p>注意UTF-8 BOMs 是不统一的并且一些编辑器处理方式也不同, 所以通常情况下添加的意义不大.</p> -<p>此项设置 <b>不</b> 影响UTF-16 和UTF-32 BOMs的使用.</p></body></html> - - - Add If Encoding Is UTF-8 - 如果编码是UTF-8则添加 - - - Keep If Already Present - 目前存在了则保持 - - - Always Delete - 总是删除 - - - Mouse - 鼠标 - - - Enable &mouse navigation - 开启鼠标导航(&M) - - - Enable scroll &wheel zooming - 开启鼠标滚轮缩放(&W) - - - Typing - 打字 - - - Backspace indentation: - 退格缩进: - - - <html><head/><body> -Specifies how backspace interacts with indentation. - -<ul> -<li>None: No interaction at all. Regular plain backspace behavior. -</li> - -<li>Follows Previous Indents: In leading white space it will take the cursor back to the nearest indentation level used in previous lines. -</li> - -<li>Unindents: If the character behind the cursor is a space it behaves as a backtab. -</li> -</ul></body></html> - - <html><head/><body> -指定退格键如何与缩进互动. - -<ul> -<li>无: 没有任何互动. 正常的退格键行为. -</li> - -<li>跟随上次的缩进: 依据之前行的缩进来进行缩进. -</li> - -<li>没有缩进: 如果鼠标之后的字符是空格他将表现为 backtab. -</li> -</ul></body></html> - - - - None - - - - Follows Previous Indents - 跟随之前的缩进 - - - Unindents - 不缩进 - - - Enable &tooltips only when Shift key is down - 只有当Shift键按下时,才启用 tooltips(&T) - - - Always write a newline character at the end of the file. - 总是在最后一行之后留一行空白行. - - - - SnippetsSettingsPage - - Form - 界面 - - - Group: - 组: - - - Add - 添加 - - - Remove - 删除 - - - Revert Built-in - 还原到内置 - - - Restore Removed Built-ins - 恢复被删除的内置 - - - Reset All - 充值所有 - - - - Valgrind - - Common Valgrind Options - 常用Valgrind 命令 - - - - QmlJS::TypeDescriptionReader - - %1: %2 - %1: %2 - - - Errors while loading qmltypes from %1: -%2 - %1导入qmltypes时发生错误: -%2 - - - Warnings while loading qmltypes from %1: -%2 - %1导入qmltypes时发生警告: -%2 - - - - Utils::AbstractProcess - - Cannot retrieve debugging output. - 无法获取调试输出. - - - - Utils::EnvironmentModel - - <UNSET> - <未设定> - - - Variable - 变量 - - - Value - - - - <VARIABLE> - Name when inserting a new variable - <变量> - - - <VALUE> - Value when inserting a new variable - <值> - - - - Utils::IpAddressLineEdit - - The IP address is not valid. - IP地址无效。 - - - - Utils::QtcProcess - - Error in command line. - 命令行发生错误。 - - - - Utils::Internal::SftpChannelPrivate - - Server could not start sftp subsystem. - 服务器无法启动 sftp 子系统。 - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Protocol version mismatch: Expected %1, got %2 - 协议版本不匹配:期望 %1,得到 %2 - - - Unknown error. - 未知错误. - - - Created remote directory '%1'. - 创建远程目录 '%1'。 - - - Remote directory '%1' already exists. - 远程目录 '%1'已存在。 - - - Error creating directory '%1': %2 - 创建文件夹时发生错误 '%1':'%2' - - - Could not open local file '%1': %2 - 无法打开本地文件 '%1':%2 - - - Remote directory could not be opened for reading. - 无法打开用于读取的远程目录。 - - - Failed to list remote directory contents. - 列出远程目录的内容失败。 - - - Failed to close remote directory. - 关闭远程目录失败。 - - - Failed to open remote file for reading. - 打开用于读取的远程文件失败。 - - - Failed retrieve information on the remote file ('stat' failed). - 获取远程文件的信息失败('stat' 失败)。 - - - Failed to read remote file. - 读取远程文件失败。 - - - Failed to close remote file. - 关闭远程文件失败。 - - - Failed to open remote file for writing. - 打开用于写入的远程文件失败。 - - - Failed to write remote file. - 写入远程文件失败。 - - - Cannot append to remote file: Server does not support the file size attribute. - 无法附加到远程文件:服务器不支持文件大小属性。 - - - Server could not start session. - 服务器无法启动会话。 - - - Error reading local file: %1 - 读取本地文件时发生错误:%1 - - - - Utils::Internal::SshChannelManager - - Invalid channel id %1 - 无效的通道 ID %1 - - - - Utils::Internal::SshConnectionPrivate - - SSH Protocol error: %1 - SSH协议错误:%1 - - - Botan library exception: %1 - Botan库异常:%1 - - - Invalid protocol version: Expected '2.0', got '%1'. - 无效协议版本.期望版本'2.0',实际版本'%1'. - - - Invalid server id '%1'. - 服务器id'%1'非法. - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Could not read private key file: %1 - 无法读取私钥文件:'%1' - - - Private key error: %1 - 私钥错误: %1 - - - Password expired. - 密码过期. - - - Server rejected password. - 密码被服务器退回. - - - Server rejected key. - 密钥被服务器退回. - - - The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED. - 服务器发出一个未知的SSH 类型包SSH_MSG_UNIMPLEMENTED. - - - Server closed connection: %1 - 连接已被服务器关闭:%1 - - - Connection closed unexpectedly. - 连接意外关闭. - - - Timeout waiting for reply from server. - 等待Server响应超时. - - - No private key file given. - 未给出私钥文件。 - - - Private key file error: %1 - 私钥文件错误: %1 - - - - Valgrind - - No errors found - 没有找到错误 - - - What - 什么 - - - Unique - 独一无二 - - - Thread ID - 线程ID - - - Kind - 类型 - - - Leaked Blocks - 泄漏块 - - - Leaked Bytes - 泄露字节 - - - Helgrind Thread ID - Helgrind线程ID - - - - Valgrind - - Function: - 函数: - - - Location: - 位置: - - - Instruction pointer: - 指令指针: - - - Object: - 对象: - - - - Valgrind - - Could not parse hex number from "%1" (%2) - 无法从"%1" (%2) 解析出十六进制数字 - - - trying to read element text although current position is not start of element - 尝试着读取元素的文本尽管当前的位置不是元素的开头 - - - Unexpected child element while reading element text - 读取文本元素时遇到非预期的子元素 - - - Unexpected token type %1 - 非预期的符号类型 %1 - - - Could not parse protocol version from "%1" - 无法从"%1" 解析协议版本 - - - XmlProtocol version %1 not supported (supported version: 4) - XmlProtocol 版本%1 不被支持(支持版本: 4) - - - Valgrind tool "%1" not supported - Valgrind 工具"%1" 不被支持 - - - Unknown memcheck error kind "%1" - 未知的 memcheck 错误"%1" - - - Unknown helgrind error kind "%1" - 未知的helgrind错误类型"%1" - - - Unknown ptrcheck error kind "%1" - 未知的 ptrcheck 错误类型"%1" - - - Could not parse error kind, tool not yet set. - 无法解析错误类型,工具还未被设置。 - - - Unknown state "%1" - 未知状态"%1" - - - Unexpected exception caught during parsing. - 解析时遇到未知异常。 - - - - Valgrind - - Description - 说明 - - - Instruction Pointer - 指令指针 - - - Object - 对象 - - - Directory - 目录 - - - File - 文件 - - - Line - 行号 - - - - Analyzer - - Analyzer - 分析器 - - - - Analyzer::Internal::AnalyzerMode - - Analyze - 分析 - - - - Analyzer::AnalyzerManager - - Tool "%1" finished, %n issues were found. - - 工具'%1' 完成, 找到%n 个问题。 - - - - Tool "%1" finished, no issues were found. - 工具'%1' 完成, 未找到问题。 - - - - Analyzer::Internal::AnalyzerPlugin - - Analyzer - Category under which Analyzer tasks are listed in Issues view - 分析器 - - - - Analyzer::Internal::AnalyzerRunConfigWidget - - Analyzer settings: - 分析器设置: - - - Analyzer Settings - 分析器设置 - - - Available settings: %1 - 可用的设置: %1 - - - - Analyzer::Internal::AnalyzerRunControlFactory - - Analyzer - 分析器 - - - No analyzer tool selected - 没有选中任何分析器工具 - - - - Analyzer::Internal::AnalyzerRunControl - - Build Issues - 构建问题 - - - - Analyzer::AnalyzerProjectSettings - - Analyzer Settings - 分析器设置 - - - - Analyzer::IAnalyzerTool - - Debug - 调试 - - - Release - 发布 - - - (Remote) - (远程) - - - (External) - (外部) - - - - Bazaar Bazaar Bazaar - - - Bazaar - - Annotate %1 - 注释 "%1" - - - Annotate parent revision %1 - 注释父修订版本%1 - - - - Bazaar Annotate Current File Annotate 当前文件 @@ -31677,34 +4558,10 @@ Specifies how backspace interacts with indentation. Update 更新 - - Commit - 提交 - - - Diff &Selected Files - Diff 选中的文件(&S) - - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - There are no changes to commit. 没有修改可提交。 - - Unable to generate a temporary file for the commit editor. - 无法为提交编辑器生成临时文件。 - Unable to create an editor for the commit. 无法为提交创建编辑器。 @@ -31717,9266 +4574,3234 @@ Specifies how backspace interacts with indentation. Commit changes for "%1". 为 "%1" 提交修改。 - - Close Commit Editor - 关闭Commit编辑器 - - - Do you want to commit the changes? - 您想提交修改吗? - - - Message check failed. Do you want to proceed? - 信息检查失败,您想要继续吗? - - - - Bazaar - - Clones a Bazaar branch and tries to load the contained project. - 克隆一个Bazaar 分支并尝试载入其中的项目。 - - - Bazaar Clone (Or Branch) - Bazaar 克隆(或者分支) - - - - Bazaar - - Location - 位置 - - - Specify repository URL, clone directory and path. - 指定仓库URL,克隆目录和路径。 - - - Clone URL: - 克隆 URL: - - - - Bazaar Commit Editor 提交编辑器 - - - Bazaar Bazaar Command Bazaar 命令 - - - Core::Internal::ExternalToolModel - - Uncategorized - 未分类 - - - Tools that will appear directly under the External Tools menu. - 工具会直接显示在“外部工具”菜单中。 - - - New Category - 新类别 - - - New Tool - 新工具 - - - This tool prints a line of useful text - 此工具可以打印一行有用的文本 - - - /c echo Useful text - /c 显示有用的文本 - - - Useful text - Sample external tool text - 有用的文本 - - - - Core::Internal::ExternalTool - - Could not open tool specification %1 for reading: %2 - 无法打开工具定义%1 来读取: %2 - - - Could not write tool specification %1: %2 - 无法读取工具定义%1: %2 - - - Creates qm translation files that can be used by an application from the translator's ts files - 从翻译人员的ts 文件生成 可以用在程序中的qm 翻译文件 - - - Release Translations (lrelease) - 发布翻译(lrelease) - - - Linguist - Qt语言家 - - - Synchronizes translator's ts files with the program code - 与程序代码同步ts文件 - - - Update Translations (lupdate) - 更新翻译(lupdate) - - - Opens the current file in Notepad - 用记事本打开当前文件 - - - Edit with Notepad - 使用记事本编辑 - - - Text - 文本 - - - Runs the current QML file with qmlviewer - 使用 qmlviewer 运行当前 QML文件 - - - Preview (qmlviewer) - 预览 (qmlviewer) - - - Qt Quick - Qt Quick - - - Sorts the selected text - 对选定文本进行排序 - - - Sort Selection - 排序选定 - - - Opens the current file in vi - 在vi中打开当前文件 - - - Edit with vi - 使用vi进行编辑 - - - - Core::Internal::ExternalToolRunner - - Could not find executable for '%1' (expanded '%2') - - 无法为'%1'找到执行文件 (展开了'%2') - - - - Starting external tool '%1' %2 - 启动外部工具'%1' %2 - - - '%1' finished - '%1' 完成 - - - - Core::ExternalToolManager - - Configure... - 配置... - - - External - 外部 - - - &External - 外部(&E) - - - Error while parsing external tool %1: %2 - 解析外部工具%1时发生错误: %2 - - - Error: External tool in %1 has duplicate id - 错误: 在%1的外部工具有重复ID - - - - Core::Internal::MimeTypeMagicDialog - - Magic Header - 魔力头文件 - - - Add Magic Header - 添加Magic Header - - - Error - 错误 - - - Not a valid byte pattern. - 不是一个有效的字节形式。 - - - Dialog - 对话框 - - - Value: - 值: - - - Type - 类型 - - - String - 字符串 - - - Byte - 字节 - - - Use Recommended - 使用建议 - - - Start range: - 开始范围: - - - End range: - 结束范围: - - - Priority: - 优先级: - - - <i>Note: Wide range values might impact Qt Creator's performance when opening files.</i> - <i>注意: 广域的取值范围可能影响到Qt Creator 打开文件的性能。</i> - - - - Core::Internal::MimeTypeSettingsModel - - MIME Type - MIME 类型 - - - Handler - 处理器 - - - Undefined - 未定义 - - - Invalid MIME Type - 无效MIME 类型 - - - Conflicting pattern(s) will be discarded. - 发生冲突的模式将被丢弃。 - - - %n pattern(s) already in use. - - %n 个样式已在使用中。 - - - - - Core::Internal::MimeTypeSettingsPrivate - - Error - 错误 - - - No MIME type selected. - 没有选中任何MIME类型。 - - - No magic header selected. - 没有选中任何magic header文件。 - - - MIME Types - MIME 类型 - - - Changes will take effect in the next time you start Qt Creator. - 这些选项将在Qt Creator 下次启动时生效。 - - - - Core::Internal::MimeTypeSettings - - MIME Types - MIME 类型 - - - - Core::Internal::ToolSettings - - External Tools - 外部工具 - - - - Core::VcsManager - - Version Control - 版本控制 - - - Would you like to remove this file from the version control system (%1)? -Note: This might remove the local file. - 您想从版本控制系统 (%1)中删除此文件么? -注意: 本地文件有可能被删除。 - - - Add to Version Control - 添加到版本控制系统 - - - Add the file -%1 -to version control (%2)? - 添加文件 -%1 -到版本控制 (%2)吗? - - - Add the files -%1 -to version control (%2)? - 添加文件 -%1 -到版本控制 (%2)吗? - - - Adding to Version Control Failed - 添加文件到版本控制系统失败 - - - Could not add the file -%1 -to version control (%2) - - 无法添加文件 -%1 -到版本控制系统 (%2) - - - - Could not add the following files to version control (%1) -%2 - 无法添加以下文件到版本控制系统 (%1) -%2 - - - - CppEditor::Internal::CPPEditorWidget - - Sort Alphabetically - 按字母排序 - - - This change cannot be undone. - 这项改变将无法被撤销。 - - - Yes, I know what I am doing. - 是的,我知道自己在做什么。 - - - &Refactor - 重构(&R) - - - Unused variable - 未使用的变量 - - - - CppEditor::Internal::InsertQtPropertyMembers - - Generate missing Q_PROPERTY members... - 生成丢失Q_PROPERTY成员... - - - Generate Missing Q_PROPERTY Members... - 生成缺失的Q_PROPERTY成员... - - - - CppEditor::Internal::CppOutlineTreeView - - Expand All - 展开全部 - - - Collapse All - 折叠全部 - - - - CppEditor::Internal::CppSnippetProvider - - C++ - C++ - - - - Debugger - - Edit Breakpoint Properties - 编辑断点属性 - - - &Condition: - 条件(&C): - - - &Thread specification: - 线程信息(&T): - - - - Debugger - - <html><body><p>The remote CDB needs to load the matching Qt Creator CDB extension (<code>%1</code> or <code>%2</code>, respectively).</p><p>Copy it onto the remote machine and set the environment variable <code>%3</code> to point to its folder.</p><p>Launch the remote CDB as <code>%4 &lt;executable&gt;</code> to use TCP/IP as communication protocol.</p><p>Enter the connection parameters as:</p><pre>%5</pre></body></html> - <html><body><p>远程CDB 需要载入匹配的Qt Creator CDB 插件(<code>%1</code> or <code>%2</code>, respectively).</p><p>复制到远程机器然后设置环境变量<code>%3</code> 指向这个文件夹.</p><p>启动远程CDB 作为 <code>%4 &lt;执行档&gt;</code> 来使用TCP/IP 作为通信协议.</p><p>输入连接参数如:</p><pre>%5</pre></body></html> - - - <html><body><p>The remote CDB needs to load the matching Qt Creator CDB extension (<code>%1</code> or <code>%2</code>, respectively).</p><p>Copy it onto the remote machine and set the environment variable <code>%3</code> to point to its folder.</p><p>Launch the remote CDB as <code>%4 &lt;executable&gt;</code> to use TCP/IP as communication protocol.</p><p>Enter the connection parameters as:</p><pre>%5</pre></body></html> - <html><body><p>远程CDB需要载入匹配的Qt Creator CDB扩展(<code>%1</code>或 <code>%2</code>,按顺序)。</p><p>请把它复制到远程机器,并设定环境变量 <code>%3</code> 指向它所在的目录。</p><p>以 <code>%4 &lt;可执行档&gt;</code>的方式启动远程CDB以使用TCP/IP作为通讯协议。</p><p>按照</p><pre>%5</pre>的格式输入连接的参数</body></html> - - - Start a CDB Remote Session - 启动一个CDB远程会话 - - - &Connection: - 连接(&C): - - - - Debugger - - Memory... - 内存... - - - Debugger Toolbar - 调试器工具栏 - - - - Debugger - - No function selected. - 没有选择函数。 - - - Running to function "%1". - 运行到函数"%1"。 - - - Process %1 - 进程%1 - - - Attaching to local process %1. - attach到本地进程%1。 - - - Remote: "%1" - 远程:'%1' - - - Attaching to remote server %1. - 关联到远程服务器%1。 - - - Core file "%1" - 核心文件'%1' - - - Attaching to core file %1. - 关联到核心文件 %1。 - - - Crashed process %1 - 崩溃的进程%1 - - - Attaching to crashed process %1 - attach到崩溃的进程%1 - - - 0x%1 hit - Message tracepoint: Address hit. - 命中地址0x%1 - - - %1:%2 %3() hit - Message tracepoint: %1 file, %2 line %3 function hit. - 命中%1:%2 %3() - - - Add Message Tracepoint - 添加消息追踪点 - - - Executable file "%1" - 可执行文件:"%1" - - - Debugging file %1. - 调试文件%1。 - - - Cannot attach to process with PID 0 - 无法attach到PID为0的进程 - - - Debugger attached to %1 - 调试器挂接到%1 - - - Remove Breakpoint %1 - 移除断点%1 - - - Disable Breakpoint %1 - 禁用断点 %1 - - - Enable Breakpoint %1 - 启用断点 %1 - - - Edit Breakpoint %1... - 编辑断点%1... - - - Set Breakpoint at 0x%1 - 在0x%1处设置断点 - - - Set Breakpoint at line %1 - 在第%1行设置断点 - - - Set Message Tracepoint at 0x%1... - 在0x%1处设置消息追踪点... - - - Set Message Tracepoint at line %1... - 在%1行设置消息追踪点... - - - Start '%1' and break at function 'main()' - 启动'%1' 然后在'main()'函数处停止 - - - Save Debugger Log - 保存调试器日志 - - - User commands are not accepted in the current state. - 在当前状态下不能接收用户的命令。 - - - Debugger finished. - 调试器已结束。 - - - QML Script Console - QML脚本命令行 - - - Continue - 继续 - - - Exit Debugger - 退出调试器 - - - Interrupt - 中断 - - - Debugger is Busy - 调试器忙 - - - Abort Debugging - 终止调试 - - - Aborts debugging and resets the debugger to the initial state. - 终止调试并重置调试器到初始状态。 - - - Step Over - 单步跳过 - - - Step Into - 单步进入 - - - Step Out - 单步跳出 - - - Run to Line - 执行到行 - - - Run to Selected Function - 运行到选择的函数 - - - Immediately Return From Inner Function - 从内层函数立即返回 - - - Jump to Line - 跳到指定行 - - - Toggle Breakpoint - 切换断点 - - - Add to Watch Window - 添加到监视窗口 - - - Reverse Direction - 掉转方向 - - - Move to Called Frame - 移动到被调用的帧 - - - Move to Calling Frame - 移动到调用帧 - - - Error evaluating command line arguments: %1 - 命令行参数赋值错误: %1 - - - Start Debugging - 开始调试 - - - Start and Debug External Application... - 启动和调试外部应用程序... - - - Start and Debug External Application with External Engine... - 启动和调试外部应用程序使用外部调试引擎... - - - Start and Debug Remote Application... - 启动并且调试远程应用... - - - Attach to Remote Debug Server... - 关联到远程调试服务器... - - - Attach to QML Port... - 关联到QML端口... - - - This attaches to a running 'Target Communication Framework' agent. - 这将附加到运行中的'目标通信框架'协议. - - - Attach to Remote CDB Session... - 挂接到一个CDB会话... - - - Detach Debugger - 脱离调试器 - - - Interrupt Debugger - 中断调试器 - - - Stop Debugger - 停止调试 - - - Process Already Under Debugger Control - 进程已在调试器控制之下 - - - The process %1 is already under the control of a debugger. -Qt Creator cannot attach to it. - 进程%1 已经运行在调试器之下。 -Qt Creator 无法attach到进程。 - - - Set Breakpoint at Line %1 - 在第%1行设置断点 - - - Set Message Tracepoint at Line %1... - 在%1行设置消息追踪点... - - - Disassemble Function "%1" - 反汇编函数 "%1" - - - Starting debugger "%1" for ABI "%2"... - 为 ABI '%2'启动调试器'%1'... - - - Ctrl+Y - Ctrl+Y - - - F5 - F5 - - - Select - 选择 - - - Zoom - 缩放 - - - Start Debugging Without Deployment - 忽略部署直接开始调试 - - - Load Core File... - 载入核心文件... - - - Start Remote Debug Server Attached to Process... - 启动关联到进程的远程调试服务器... - - - Attach to Running Application... - 关联到运行中的程序... - - - Attach to Running Application - 关联到运行中的程序 - - - Start Gdbserver - 启动 Gdbserver - - - Shift+Ctrl+Y - Shift+Ctrl+Y - - - Shift+F5 - Shift+F5 - - - Reset Debugger - 重置调试器 - - - Ctrl+Shift+O - Ctrl+Shift+O - - - F10 - F10 - - - Ctrl+Shift+I - Ctrl+Shift+I - - - F11 - F11 - - - Ctrl+Shift+T - Ctrl+Shift+T - - - Shift+F11 - Shift+F11 - - - Shift+F8 - Shift+F8 - - - Ctrl+F10 - Ctrl+F10 - - - Ctrl+F6 - Ctrl+F6 - - - F12 - F12 - - - F8 - F8 - - - F9 - F9 - - - Threads: - 线程: - - - Symbol - 符号 - - - Address - 地址 - - - Code - 代码 - - - Section - - - - Symbols in "%1" - "%1" 中的符号 - - - <new source> - <新源> - - - <new target> - <新目标> - - - Source path - 源路径 - - - Target path - 目标路径 - - - Add - 添加 - - - Add Qt sources... - 添加Qt 源码... - - - Remove - 删除 - - - Source Paths Mapping - 源码路径映射 - - - <html><head/><body><p>Mappings of source file folders to be used in the debugger can be entered here.</p><p>This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.</body></html> - <html><head/><body><p>调试器使用的映射源文件夹在这里输入.</p><p>这在使用的源代码树的副本和模块构建的路径不一致时非常有用, 比如, 在远程调试的时候。</body></html> - - - Add a mapping for Qt's source folders when using an unpatched version of Qt. - 添加一个Qt源文件夹的映射使用没打过补丁的Qt版本。 - - - The source path contained in the debug information of the executable as reported by the debugger - 调试器报告的执行档的调试信息中包含的源码路径 - - - The source path contained in the executable's debug information as reported by the debugger - 源路径中的可执行文件的调试信息中所报告的调试器 - - - &Source path: - 源路径(&S): - - - The actual location of the source tree on the local machine - 本机上源码树的实际路径 - - - &Target path: - 目标路径(&T): - - - Qt Sources - Qt 源码 - - - - Debugger - - %1 (%2) - %1 (%2) - - - <html><head/><body><table><tr><td>ABI:</td><td><i>%1</i></td></tr><tr><td>Debugger:</td><td>%2</td></tr> - <html><head/><body><table><tr><td>ABI:</td><td><i>%1</i></td></tr><tr><td>调试器:</td><td>%2</td></tr> - - - Debugging complex command lines is currently not supported under Windows - 调试复杂的命令行目前在windows下尚不支持 - - - Debugging complex command lines is currently not supported on Windows. - 调试复杂的命令行目前在windows下尚不支持。 - - - - Debugger - - Fatal engine shutdown. Incompatible binary or IPC error. - 致命引擎关闭。不匹配的二进制或IPC错误。 - - - Fatal engine shutdown. Incompatible binary or ipc error. - 致命引擎关闭。不匹配的二进制或IPC错误。 - - - - Debugger - - qtcreator-lldb failed to start: %1 - qtcreator-lldb 无法启动: %1 - - - Fatal engine shutdown. Consult debugger log for details. - 致命引擎关闭。查看调试器日志来获取详细信息。 - - - SSH connection error: %1 - SSH连接错误:%1 - - - - Debugger - - LLDB - LLDB - - - - Debugger - - Memory $ - 内存 $ - - - No memory viewer available - 没有可用的内存查看器 - - - Memory at 0x%1 - 在 0x%1地址处的内存 - - - No Memory Viewer Available - 没有可用的内存查看器 - - - The memory contents cannot be shown as no viewer plugin for binary data has been loaded. - 没有载入二进制数据查看器插件,无法显示内存内容。 - - - - Debugger - - The slave debugging engine required for combined QML/C++-Debugging could not be created: %1 - 整合QML/C++-调试需要的从属调试引擎无法被创建: %1 - - - C++ debugger activated - 激活C++ 调试器 - - - QML debugger activated - 激活QML 调试器 - - - %1 debugger activated - 已激活%1调试器 - - - QML/C++ Debugging - QML/C++ 调试 - - - Cannot stop execution before QML engine is started. Skipping breakpoint. -Suggestions: Move the breakpoint after QmlApplicationViewer instantiation or switch to C++ only debugging. - 无在QML 引擎启动之前法停止执行. 跳过断点. -建议: 移动断点到QmlApplicationViewer 之后或者切换到C++ 调试. - - - - Debugger - - QML Debugger connected. - QML调试器已连接. - - - QML Debugger connecting... - 正在连接QML调试器... - - - No application output received in time - 没有及时收到应用程序的输出 - - - Qt Creator - Qt Creator - - - Could not connect to the in-process QML debugger. -Do you want to retry? - 无法连接到进程内(in-process)QML调试器。 -您想要重试吗? - - - Could not connect to the in-process QML debugger. -%1 - 无法连接到进程内(in-process)QML调试器。 -%1 - - - QML Debugger: Remote host closed connection. - QML调试器:连接被远端主机关闭。 - - - QML Debugger: Could not connect to service '%1'. - QML调试器:无法连接到服务 '%1'。 - - - JS Source for %1 - %1的JS源码 - - - Run to line %1 (%2) requested... - 请求执行到行 %1(%2)... - - - Context: - 上下文: - - - The port seems to be in use. - Error message shown after 'Could not connect ... debugger:" - 端口已被使用. - - - The application is not set up for QML/JS debugging. - Error message shown after 'Could not connect ... debugger:" - 应用没有被设置为QML/JS 调试. - - - Could not connect to the in-process QML debugger: -%1 - %1 is detailed error message - 无法连接到QML 调试器: -%1 - - - Starting %1 %2 - 正在启动 %1 %2 - - - Application startup failed: %1 - 应用程序启动失败:%1 - - - QML Debugger disconnected. - QML调试器连接已断开。 - - - From: - 从: - - - To: - 到: - - - - Git - - Use the patience algorithm for calculating the diff - 使用耐心算法来计算差异 - - - Use the patience algorithm for calculating the differences. - 使用耐心算法来计算差异。 - - - Patience - 耐心 - - - Ignore whitespace only changes. - 忽略仅为空白的修改。 - - - Ignore whitespace only changes - 忽略空白仅关注改变 - - - Ignore Whitespace - 忽略空白 - - - Select the pretty printing format - 选择一个漂亮的输出格式 - - - Select the pretty printing format. - 选择一个漂亮的输出格式. - - - oneline - oneline - - - short - short - - - medium - medium - - - full - full - - - fuller - fuller - - - email - 电子邮件 - - - raw - raw - - - Do not show the date a change was made in the output - 输出改变了不要显示日期 - - - Hide the date of a change from the output. - 在输出隐藏更改的日期。 - - - Omit Date - 忽略日期 - - - - GLSLEditor::Internal::FunctionArgumentWidget - - %1 of %2 - %1/%2 - - - - GLSLEditor - - GLSL - GLSL - - - - GLSLEditor::Internal::GLSLEditorPlugin - - GLSL - GLSL sub-menu in the Tools menu - GLSL - - - Creates a fragment shader in the OpenGL/ES 2.0 Shading Language (GLSL/ES). Fragment shaders generate the final pixel colors for triangles, points and lines rendered with OpenGL. - 使用OpenGL/ES 2.0 着色语言 (GLSL/ES)来创建一个片段着色器。片段着色器生成OpenGL渲染的三角形、点以及线的最终像素颜色。 - - - Fragment Shader (OpenGL/ES 2.0) - 片段着色器 (OpenGL/ES 2.0) - - - Creates a vertex shader in the OpenGL/ES 2.0 Shading Language (GLSL/ES). Vertex shaders transform the positions, normals and texture co-ordinates of triangles, points and lines rendered with OpenGL. - 使用OpenGL/ES 2.0 着色语言 (GLSL/ES)来创建一个顶点着色器。顶点着色器对OpenGL渲染的三角形、点和线进行位置和纹理坐标的变形。 - - - Vertex Shader (OpenGL/ES 2.0) - 顶点着色器 (OpenGL/ES 2.0) - - - Creates a fragment shader in the Desktop OpenGL Shading Language (GLSL). Fragment shaders generate the final pixel colors for triangles, points and lines rendered with OpenGL. - 使用桌面OpenGL 着色语言 (GLSL)来创建一个片段着色器。片段着色器生成OpenGL渲染的三角形、点以及线的最终像素颜色。 - - - Fragment Shader (Desktop OpenGL) - 片段着色器 (桌面 OpenGL) - - - Creates a vertex shader in the Desktop OpenGL Shading Language (GLSL). Vertex shaders transform the positions, normals and texture co-ordinates of triangles, points and lines rendered with OpenGL. - 使用桌面OpenGL 着色语言 (GLSL)来创建一个顶点着色器。顶点着色器对OpenGL渲染的三角形、点和线进行位置和纹理坐标的变形。 - - - Vertex Shader (Desktop OpenGL) - 顶点着色器 (桌面 OpenGL) - - - - GLSLEditor::GLSLFileWizard - - New %1 - 新建 %1 - - - - Macros::Internal::MacroLocatorFilter - - Macros - - - - - Macros::MacroManager - - Playing Macro - 播放宏 - - - An error occured while replaying the macro, execution stopped. - 播放macro时发生错误, 执行停止. - - - An error occurred while replaying the macro, execution stopped. - 播放macro时发生错误, 执行停止。 - - - Macro mode. Type "%1" to stop recording and "%2" to play it - 宏模式. 按"%1" 停止录制,按"%2" 播放 - - - Stop Recording Macro - 停止录制宏 - - - - Macros::Internal::MacrosPlugin - - &Macros - 宏(&M) - - - Record Macro - 录制宏 - - - Ctrl+( - Ctrl+( - - - Alt+( - Alt+( - - - Stop Recording Macro - 停止录制宏 - - - Ctrl+) - Ctrl+) - - - Alt+) - Alt+) - - - Play Last Macro - 播放最近的宏 - - - Alt+R - Alt+R - - - Meta+R - Meta+R - - - Save Last Macro - 保存最近的宏 - - - - Analyzer::Internal::MemcheckConfigWidget - - Valgrind Suppression File (*.supp);;All Files (*) - Valgrind 配置文件 (*.supp);;所有文件 (*) - - - - Analyzer::Internal::MemcheckEngine - - Analyzing Memory - 内存分析中 - - - Analyzing memory of %1 - 内存分析中%1 - - - - Analyzer::Internal::MemcheckErrorView - - Copy Selection - 复制选择 - - - Suppress Error - 防止错误 - - - - Analyzer::Internal::AbstractMemcheckSettings - - Memory Analysis - 内存分析 - - - - Analyzer::Internal::MemcheckTool - - External Errors - 外部错误 - - - Definite Memory Leaks - 明显内存溢出 - - - Possible Memory Leaks - 可能内存溢出 - - - Use of Uninitialized Memory - 使用了未初始化的内存 - - - Invalid Frees - 不合法的释放 - - - Show issues originating outside currently opened projects. - 一些情况发生在当前打开项目的外部. - - - These suppression files were used in the last memory analyzer run. - 这些suppression 文件被上一次内存分析所使用. - - - These suppression files where used in the last memory analyzer run. - 这些suppression 文件被使用在最近一次内存分析运行中. - - - Analyze Memory - 分析内存 - - - Error Filter - 错误过滤 - - - Internal Error - 内部错误 - - - Error occurred parsing valgrind output: %1 - 发生错误,分析valgrind输出: %1 - - - - Analyzer::Internal::SuppressionDialog - - Select Suppression File - 选择Suppression 文件 - - - Save Suppression - 保存Suppression - - - - ProjectExplorer::Internal::GccToolChainFactory - - GCC - GCC - - - - ProjectExplorer::Internal::GccToolChainConfigWidget - - &Compiler path: - 编译器路径(&C): - - - &ABI: - &ABI: - - - - ProjectExplorer::Internal::MingwToolChainFactory - - MinGW - MinGW - - - - ProjectExplorer::Internal::LinuxIccToolChainFactory - - Linux ICC - Linux ICC - - - - ProjectExplorer::Internal::MsvcToolChainFactory - - MSVC - MSVC - - - - ProjectExplorer::Internal::MsvcToolChainConfigWidget - - Initialization: - 初始化: - - - No CDB debugger detected (neither 32bit nor 64bit). - 没有检测到CDB调试器 (不管32位还是64位都没有). - - - No 64bit CDB debugger detected. - 没有检测到64位CDB调试器. - - - The CDB debugger could not be found in %1 - CDB 调试器无法在 %1找到 - - - - ProjectExplorer::ProjectsMode - - Projects - 项目 - - - - ProjectExplorer::ToolChain - - Clone of %1 - %1 的克隆 - - - - ProjectExplorer::ToolChainConfigWidget - - &Debugger: - 调试器(&D): - - - Autodetect - 自动检测 - - - Name: - 名称: - - - - ProjectExplorer::Internal::ToolChainModel - - Auto-detected - 自动检测 - - - Manual - 手动设置 - - - <nobr><b>ABI:</b> %1 - <nobr><b>ABI:</b> %1 - - - not up-to-date - 不是最新 - - - Name - 名称 - - - Type - 类型 - - - Duplicate Compilers Detected - 检测到重复的编译器 - - - The following compiler was already configured:<br>&nbsp;%1<br>It was not configured again. - 以下编译器已被设置:<br>&nbsp;%1<br>。没有再次设置。 - - - The following compilers were already configured:<br>&nbsp;%1<br>They were not configured again. - 以下工具链已被设置:<br>&nbsp;%1<br>。没有再次设置。 - - - Duplicate Tool Chain detected - 工具链检测到冲突 - - - The following tool chain was already configured:<br>&nbsp;%1<br>It was not configured again. - 以下工具链已被设置:<br>&nbsp;%1<br>没有再次设置. - - - Duplicate Tool Chains detected - 工具链检测到冲突 - - - The following tool chains were already configured:<br>&nbsp;%1<br>They were not configured again. - 以下工具链已被设置:<br>&nbsp;%1<br>没有再次设置. - - - - ProjectExplorer::Internal::ToolChainOptionsPage - - Tool Chains - 工具链 - - - Clone ... - 克隆 ... - - - Compilers - 编译器 - - - Add - 添加 - - - Clone - 克隆 - - - Remove - 删除 - - - - QmlDesigner::ItemLibraryWidget - - Library - Title of library view - - - - Items - Title of library items view - - - - Resources - Title of library resources view - 资源 - - - <Filter> - Library search input hint text - <过滤器> - - - - QmlDesigner::StatesEditorModel - - base state - Implicit default state - 基线状态 - - - Invalid state name. - 无效状态名称。 - - - The empty string as a name is reserved for the base state. - 空字符串是为基线状态保留的名称。 - - - Name already used in another state. - 名称已经被另一个状态使用。 - - - - QmlDesigner::StatesEditorView - - State%1 - Default name for newly created states - 状态%1 - - - base state - 基线状态 - - - - JsFileOptionsPage - - Options - 选项 - - - Stateless library - 无国籍库 - - - Usually each QML component instance has a unique copy of -imported JavaScript libraries. Indicating that a library is -stateless means that a single instance will be shared among -all components. Stateless libraries will not be able to access -QML component instance objects and properties directly. - 通常每个QML 都有一份独一无二的导入的 JavaScript 库的拷贝。 -注明库为“无国籍”意味着单一的实例在所有组件之间共享。 -“无国籍”的库不能直接访问QML组件的实例对象及其属性。 - - - - QmlJSEditor - - New %1 - 新建 %1 - - - Show Qt Quick ToolBar - 显示Qt Quick工具栏 - - - Unused variable - 未使用的变量 - - - Refactoring - 重构 - - - Expand All - 展开全部 - - - Collapse All - 折叠全部 - - - - QmlJSInspector::Internal::QmlInspectorToolBar - - Apply Changes on Save - 保存时应用修改 - - - Observer Mode - 观察者模式 - - - Play/Pause Animations - 播放/暂停动画 - - - Select - 选择 - - - Zoom - 缩放 - - - Color Picker - 颜色拾取器 - - - 1x - 1x - - - 0.5x - 0.5x - - - 0.25x - 0.25x - - - 0.125x - 0.125x - - - 0.1x - 0.1x - - - - QmlJSInspector::Internal::QmlJSPropertyInspector - - Enter expression - 输入表达式 - - - Choose color - 选择颜色 - - - JavaScript expression for %1 - JavaScript 表达式%1 - - - Color selection for %1 - 为 %1选择颜色 - - - - QmlJSTools - - Functions - 功能 - - - Methods and functions - 方法和功能 - - - Methods and Functions - 方法和函数 - - - Indexing - 索引中 - - - Type dump of QML plugin in %1 failed. -Errors: -%2 - - 在 %1丢弃QML插件失败. -错误: -%2 - - - - Type dump of C++ plugin failed. -First 10 lines or errors: - -%1 -Check 'General Messages' output pane for details. - 丢弃 C++ 插件失败. -最初10行存在错误: - -%1 -检查 '概要信息' 输出来取得详细信息. - - - QML module does not contain information about components contained in plugins - -Module path: %1 -See "Using QML Modules with Plugins" in the documentation. - QML 模块不包含插件中的组件信息 - -模块路径: %1 -参考文档 "Using QML Modules with Plugins"。 - - - Automatic type dump of QML module failed. -Errors: -%1 - - 自动 类型转储 QML 模块失败。 -错误: -%1 - - - - Automatic type dump of QML module failed. -First 10 lines or errors: - -%1 -Check 'General Messages' output pane for details. - 自动类型转储QML模块失败。 -前10行或者错误: - -%1 -详细信息请查看“概要信息”输出窗体。 - - - Warnings while parsing qmltypes information of %1: -%2 - 解析%1的qmltype信息时发生警告: -%2 - - - Errors while reading typeinfo files: - 读取typeinfo文件发生错误: - - - Could not locate the helper application for dumping type information from C++ plugins. -Please build the qmldump application on the Qt version options page. - 无法定位助手应用来从C++插件转储类型信息。 -请在Qt 版本选项页面构建 qmldump应用。 - - - Type dump of C++ plugin failed. Parse error: -'%1' - 丢弃C++ 插件错误. 处理错误: -'%1' - - - Could not open file '%1' for reading. - 无法打开文件'%1' 来读取. - - - Failed to parse '%1'. -Error: %2 - 解析'%1'失败。 -错误: %2 - - - Could not locate the helper application for dumping type information from C++ plugins. -Please build the debugging helpers on the Qt version options page. - 无法定位帮助信息. -请在Qt 版本选择页面编译调试助手. - - - - QmlProjectManager::Internal::QmlProjectRunConfigurationWidget - - Manage Qt versions - 管理Qt版本 - - - Manage Qt versions... - 管理Qt版本... - - - Qt version: - Qt 版本: - - - Arguments: - 参数: - - - Main QML file: - 主QML文件: - - - Debugger: - 调试器: - - - Run Environment - 运行时的环境变量 - - - System Environment - 系统环境变量 - - - Invalid Qt version - 无效的 Qt 版本 - - - - QmakeProjectManager - - Only available for Qt 4.7.1 or newer. - 仅可用于 Qt 4.7.1 或更新版本。 - - - The target directory %1 could not be created. - 目标目录 %1 无法被创建。 - - - QML Debugging library could not be built in any of the directories: -- %1 - -Reason: %2 - QML 调试库无法在以下任何目录下构建: -- %1 - -原因: %2 - - - (default for %1) - (默认 %1) - - - Physical Device - 物理设备 - - - Emulator (Qemu) - 模拟器(Qemu) - - - General Information - 概要 - - - Device Status Check - 检测设备状态 - - - Existing Keys Check - 现有密钥检测 - - - Key Creation - 密钥创建 - - - Cannot Create Keys - 无法创建密钥 - - - Creating keys ... - 创建密钥... - - - Key creation failed: %1 - 密钥创建失败: %1 - - - Could Not Save File - 无法保存文件 - - - Failed to save key file %1: %2 - 保存密钥文件失败%1: %2 - - - Key Deployment - 公钥部署 - - - Deploying... - 部署中... - - - Key Deployment Failure - 密钥部署失败 - - - Key Deployment Success - 密钥部署成功 - - - Done. - 完成。 - - - Setup Finished - 设置完成 - - - The new device configuration will now be created and a test procedure will be run to check whether Qt Creator can connect to the device and to provide some information about its features. - 新设备的设置文件将被生成,然后将会运行一些测试程序来检查 Qt Creator 是否能够连接设备并且提供一些有效信息. - - - The new device configuration will now be created. - 新设备配置将会被创建。 - - - New Device Configuration Setup - 新设备配置设置 - - - -Is the device connected and set up for network access? - -设备已经被设置成能联网的了么? - - - (No device) - (没有设备) - - - SDK Connectivity - SDK 连接性 - - - Mad Developer - 疯狂开发者 - - - Failed to remove directory '%1'. - 移除文件夹'%1'失败. - - - Failed to remove file '%1'. - 移除文件'%1'失败. - - - Failed to create directory '%1'. - 无法创建文件夹'%1'. - - - Could not copy file '%1' to '%2'. - 无法复制文件'%1'到'%2'. - - - - RemoteLinux - - Error while reading .pro file %1: %2 - 打开 .pro 文件 %1 出错: %2 - - - Created %1 - - 创建了%1 - - - - Sis file not created due to previous errors - - Sis 文件由于之前的错误没有被创建 - - - - Done! - - 完成! - - - - Sis file not created due to previous errors - - Sis 文件由于之前的错误没有被创建 - - - - Clean - 清理 - - - qmake - qmake - - - Build - 构建 - - - Freeze - 冻结 - - - "%1" is a default vendor name used for testing and development. <br>The Vendor_Name field cannot contain the name 'Nokia'. <br>You are advised against using the default names 'Vendor' and 'Vendor-EN'. <br>You should also not leave the entry blank. <br>see <a href="http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml">Packaging and Signing</a> for guidelines.<br> - %1 是默认的测试和开发供应商名称. <br>供应商名称不能包含名称'Nokia'. <br>您不被允许使用'Vendor' 和'Vendor-EN'这样的字眼. <br>您也不能留空. <br>浏览 <a href="http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml">打包和签名</a> 为了指引.<br> - - - %1 is a default vendor name used for testing and development. - %1 是默认的测试和开发供应商名称. - - - %1 are default vendor names used for testing and development. - %1 是默认的测试和开发供应商名称. - - - The application UID %1 is only for testing and development.<br>SIS packages built with it cannot be distributed via the Ovi Store.<br> - 应用程序 UID %1 仅供测试和开发.<br>用它构建的SIS 包无法发布到Ovi 商店.<br> - - - The application UID %1 is a symbiansigned.com UID. <br>Applications with this UID will be rejected by Application Signing Services for Ovi Store.<br>If you want to continue with a symbiansigned.com UID, sign your application on symbiansigned.com and upload the signed application to Publish to Ovi.<br> - 应用程序 UID %1 仅供测试和开发.<br>用它构建的SIS 包无法发布到Ovi 商店.<br>如果您想继续,那么前往symbiansigned.com UID, 在symbiansigned.com 为您的应用程序签名然后上传签名过的应用发布到Ovi.<br> - - - The application UID %1 is not an acceptable UID.<br>SIS packages built with it cannot be signed by Application Signing Services for Ovi Store.<br> - 应用程序 UID %1 仅供测试和开发.<br>用它构建的SIS 包无法发布到Ovi 商店.<br> - - - The application UID is a global unique indentifier of the SIS package.<br> - 应用程序的 UID 是一个全球唯一的SIS 包的身份证.<br> - - - To get a unique application UID for your package file,<br>please register at <a href="http://info.publish.ovi.com/">publish.ovi.com</a> - 为了为您的包得到一个唯一的 UID ,<br>请注册<a href="http://info.publish.ovi.com/">publish.ovi.com</a> - - - Some capabilities might require a special kind of signing or approval from the manufacturer.<br> - 一些应用可能需要制造商特殊的签名和许可.<br> - - - Please verify that you have a released version of Qt. <br><a href="http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian">Qt Packages Distributed by Smart Installer</a> has a list of released Qt versions. - 请确认您发布了一个Qt版本. <br><a href="http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian">Qt 包使用的Smart Installer生成的</a> 有一串发布了的Qt 版本. - - - - RemoteLinux - - Publish Qt Symbian Applications to Ovi Store - 发布Qt Symbian 应用到Ovi 商店 - - - - RemoteLinux - - Publishing to Ovi Store - 发布到Ovi 商店 - - - Build Configuration - 构建配置 - - - Project File Checks - 项目文件检查 - - - Creating an Uploadable SIS File - 创建一个可上传的SIS 文件 - - - - RemoteLinux - - Launching - 正在启动 - - - Application Still Running - 应用仍然在运行 - - - Force Quit - 强行关闭 - - - Finished. - 完成. - - - - QmakeProjectManager - - No device is connected. Please connect a device and try again. - 没有设备连接。请连接设备后再试。 - - - Executable file: %1 - 可执行文件:%1 - - - Could not connect to phone on port '%1': %2 -Check if the phone is connected and App TRK is running. - 无法从端口 '%1' 连接到电话: %2 -检查电话是否连接 并且 App TRK 已经运行. - - - Waiting for App TRK - 等待 App TRK - - - Canceled. - 已取消. - - - Starting application... - 正在启动应用... - - - Application running with pid %1. - 应用程序运行pid:%1. - - - Could not start application: %1 - 无法启动应用: %1 - - - WINSCW - WINSCW - - - WINSCW from Qt version - Qt version中的WINSCW - - - - Qt4DefaultTargetSetupWidget - - <b>Error:</b> - Severity is Task::Error - <b>错误:</b> - - - <b>Warning:</b> - Severity is Task::Warning - <b>警告:</b> - - - - QmakeProjectManager - - Add build from: - 从添加构建: - - - Add Build - 添加构建 - - - Create Build Configurations: - 创建构建配置: - - - For Each Qt Version One Debug And One Release - 为每个Qt版本分别建立一个调试版本和一个发布版本 - - - For One Qt Version One Debug And One Release - 为一个Qt版本分别建立一个调试版本和一个发布版本 - - - Manually - 手动设置 - - - None - - - - Use Shadow Building - 使用影子构建 - - - No build found - 没有找到构建 - - - The build found in %1 is incompatible with this target - 在%1找到的构建与目标不是完全匹配 - - - No Build found in %1 matching project %2. - 在%1没有找到构建 符合项目%2. - - - Incompatible build found - 找到了不完全符合的构建 - - - The Build found in %1 is incompatible with this target - 在%1找到的构建与目标不是完全匹配 - - - Import build from %1 - 从%1导入构建 - - - Targets - 目标 - - - Mobile Options - 移动选项 - - - Maemo5 And MeeGo Specific - Maemo5 和Meego 的特定选项 - - - Maemo5 And Meego Specific - 指定Maemo5 和Meego - - - Harmattan Specific - Harmattan 的特定选项 - - - Maemo Specific - Maemo设备配置 - - - New HTML5 Application - 新的HTML5 应用 - - - This wizard generates a HTML5 application project. - 本向导创建一个HTML5 应用项目。 - - - HTML Options - HTML 选项 - - - HTML5 Application - HTML5 应用 - - - Creates an HTML5 application project that can contain both HTML5 and C++ code and includes a WebKit view. - -You can build the application and deploy it on desktop and mobile target platforms. - 创建一个可以同时包含HTML5和C++代码并包括一个WebKit视图的HTML5应用程序项目。 - -您可以构建此程序并将其部署到桌面和移动目标平台上。 - - - Select HTML File - 选择HTML文件 - - - Automatically Rotate Orientation - 自动旋转方向 - - - Lock to Landscape Orientation - 横向锁定(Landscape) - - - Lock to Portrait Orientation - 纵向锁定(Portrait) - - - Orientation behavior: - 方向行为: - - - Could not copy icon file. - 无法复制图标文件。 - - - Application icon (64x64): - 应用程序图标(64x64): - - - Subdirs Project - 子目录项目 - - - Creates a qmake-based subdirs project. This allows you to group your projects in a tree structure. - 创建一个基于qmake 的子目录项目。这可以让您将项目组织成树形结构。 - - - Done && Add Subproject - 完成&& 添加子项目 - - - Finish && Add Subproject - 完成&& 添加子项目 - - - New Subproject - Title of dialog - 新建子项目 - - - This wizard generates a Qt4 subdirs project. Add subprojects to it later on by using the other wizards. - 本向导将创建一个Qt4子目录项目,稍后可以用其他向导添加子项目。 - - - Target Setup - 目标设置 - - - Qt Creator can set up the following targets for project <b>%1</b>: - %1: Project name - Qt Creator 可以为项目<b>%1</b>设置如下目标: - - - <span style=" font-weight:600;">No valid kits found.</span> - <span style=" font-weight:600;">没有找到可用的构建套件。</span> - - - Please add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. - 请在<a href="buildandrun">选项</a>中或者通过SDK的维护工具添加一个构建套件。 - - - Select Kits for Your Project - 为您的项目选择构建套件 - - - Kit Selection - 选择构建套件 - - - %1 - temporary - %1 - 临时 - - - Qt Creator can use the following kits for project <b>%1</b>: - %1: Project name - Qt Creator为项目<b>%1</b>使用下列构建套件: - - - No Build Found - 未找到构建 - - - No build found in %1 matching project %2. - 在%1中没有找到符合项目%2的构建。 - - - - TextEditor::BaseTextEditorWidget - - CTRL+D - CTRL+D - - - Print Document - 打印文档 - - - File Error - 文件错误 - - - <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. - <b>错误:</b> 无法用 "%2"-编码解码 "%1"。无法编辑。 - - - Select Encoding - 选择编码 - - - Delete UTF-8 BOM on Save - 保存时删除UTF-8 BOM - - - Add UTF-8 BOM on Save - 保存时添加UTF-8 BOM - - - The text is too large to be displayed (%1 MB). - 文本过大,无法显示(%1 MB)。 - - - - TextEditor::Internal::PlainTextSnippetProvider - - Text - 文本 - - - - TextEditor::Internal::SnippetsTableModel - - Error - 错误 - - - Not a valid trigger. - 不是一个有效的触发。 - - - Trigger - 触发 - - - Trigger Variant - 触发种类 - - - Error reverting snippet. - 恢复碎片发生错误。 - - - - TextEditor::Internal::SnippetsSettingsPagePrivate - - Snippets - 片段 - - - Error While Saving Snippet Collection - 保存片断集时发生错误 - - - Error - 错误 - - - No snippet selected. - 没有选择的片段。 - - - - Analyzer::Internal::ValgrindConfigWidget - - Valgrind Command - Valgrind 命令 - - - - Analyzer::Internal::ValgrindEngine - - Valgrind options: %1 - Valgrind 选项: %1 - - - Working directory: %1 - 工作目录: %1 - - - Command-line arguments: %1 - 命令参数: %1 - - - ** Error: "%1" could not be started: %2 ** - ** 错误: "%1" 无法被启动: %2 ** - - - ** Error: no valgrind executable set ** - ** 错误: 没有可执行的 valgrind ** - - - ** Process Terminated ** - ** 进程强制关闭** - - - Application Output - 应用程序输出 - - - - Analyzer::Internal::ValgrindSettings - - Generic Settings - 一般设置 - - - - VcsBase::VcsBaseClient - - Unable to start process '%1': %2 - 无法启动进程'%1': %2 - - - Timed out after %1s waiting for the process %2 to finish. - 等待进程%2 完成,等待了%1秒后超时。 - - - Working... - 工作中... - - - - VcsBase::VcsBaseEditorWidget - - Annotate "%1" - Annotate "%1" - - - Copy "%1" - 复制 "%1" - - - Describe change %1 - 描述改变%1 - - - Send to CodePaster... - 发送到CodePaster... - - - Apply Chunk... - 应用块... - - - Revert Chunk... - 恢复块... - - - Unable to Paste - 无法粘贴 - - - Code pasting services are not available. - Code pasting 服务不可用。 - - - Revert Chunk - 恢复块 - - - Apply Chunk - 应用块 - - - Would you like to revert the chunk? - 您想要恢复块吗? - - - Would you like to apply the chunk? - 您想要应用块吗? - - - - VcsBase::VcsJobRunner - - Unable to start process '%1': %2 - 无法启动进程'%1': %2 - - - Timed out after %1s waiting for the process %2 to finish. - 超时%1s 等待进程%2 完成. - - - - SymbianUtils::VirtualSerialDevice - - The port %1 could not be opened: %2 (POSIX error %3) - 端口%1 无法被打开: %2 (POSIX错误%3) - - - Unable to retrieve terminal settings of port %1: %2 (POSIX error %3) - 无法获得终端设置为端口%1: %2 (POSIX 错误%3) - - - Unable to apply terminal settings to port %1: %2 (POSIX error %3) - 无法应用终端设置为端口%1: %2 (POSIX 错误%3) - - - Cannot write to port %1: %2 (POSIX error %3) - 端口%1 无法写入: %2 (POSIX错误%3) - - - Port not found - 未找到端口 - - - Port in use - 端口已用 - - - Timed out - 超时 - - - Port unreachable - 无法到达端口 - - - The port %1 could not be opened: %2 - 端口 %1 无法被打开: %2 - - - An error occurred while waiting for read notifications from %1: %2 - 等待阅读通知时发生错误%1: %2 - - - An error occurred while reading from %1: %2 - 读取%1发生错误: %2 - - - An error occurred while writing to %1: %2 - 写入%1发生错误: %2 - - - An error occurred while syncing on waitForBytesWritten for %1: %2 - 同步waitForBytesWritten%1发生错误: %2 - - - - Macros - - Macros - - - - - AnchorButtons - - Setting anchors in states is not supported. - 在不支持的状态下设置锚点. - - - Set bottom anchor - 设置底部锚点 - - - Set left anchor - 设置左锚点 - - - Set right anchor - 设置右锚点 - - - Fill to parent - 适应父控件 - - - Set vertical anchor - 设置垂直锚点 - - - Set horizontal anchor - 设置横向锚点 - - - - ColorGroupBox - - Color editor - 颜色编辑器 - - - Hue - 色调 - - - Saturation - 饱和度 - - - Brightness - 亮度 - - - Alpha - Alpha通道 - - - - ColorTypeButtons - - Solid color - 纯色 - - - Solid color (only editable in base state) - 纯色(仅在基础状态下可编辑) - - - Gradient - 渐变填充 - - - Gradient (only editable in base state) - 渐变(仅在基础状态下可编辑) - - - Transparent - 透明 - - - Transparent (only editable in base state) - 透明(仅在基础状态下可编辑) - - - - FlickableSpecifics - - Flickable - 可摇动 - - - Content Size - 内容尺寸 - - - Flickable Direction - 摇动方向 - - - Bounds Behavior - 边界行为 - - - Interactive - 互动 - - - Max. Velocity - 最大速度 - - - Maximum Flick Velocity - 最大摇动速度 - - - Deceleration - 减速 - - - Flick Deceleration - 摇动减速 - - - - Analyzer::StartRemoteDialog - - Start Debugger - 启动调试器 - - - Remote - 远程 - - - Host: - 主机: - - - User: - 用户: - - - Password: - 密码: - - - Port: - 端口: - - - Private key: - 私钥: - - - Target - 目标 - - - Kit: - 构建套件(Kit): - - - Executable: - 执行档: - - - Arguments: - 参数: - - - Working directory: - 工作目录: - - - Start Remote Analysis - 开始远程分析 - - - - CppTools::Internal::CppCodeStyleSettingsPage - - Form - 界面 - - - General - 概要 - - - Content - 内容 - - - Indent - 缩进 - - - "public", "protected" and -"private" within class body - 在类中的"public", "protected" -和"private" - - - Declarations relative to "public", -"protected" and "private" - 与"public","protected" -和"private"相关的声明 - - - Statements within method body - 在方法体中的语句 - - - Statements within blocks - 在块中的语句 - - - Declarations within -"namespace" definition - 在"命名空间"定义中的声明 - - - Braces - 括号 - - - Indent Braces - 缩进括号 - - - Class declarations - 类的声明 - - - Namespace declarations - 命名空间的声明 - - - Enum declarations - 枚举类型的声明 - - - Method declarations - 方法声明 - - - Blocks - 代码段 - - - "switch" - "switch" - - - Indent within "switch" - 在"switch"内缩进 - - - "case" or "default" - "case" 或 "default" - - - Statements relative to -"case" or "default" - "case" 或 "default" -的相关语句 - - - Blocks relative to -"case" or "default" - "case" 或 "default" -相关的代码段 - - - "break" statement relative to -"case" or "default" - "case" 或 "default"相关的 -"break"语句 - - - Alignment - 对齐方式 - - - Align - 对齐 - - - <html><head/><body> -Enables alignment to tokens after =, += etc. When the option is disabled, regular continuation line indentation will be used.<br> -<br> -With alignment: -<pre> -a = a + - b -</pre> -Without alignment: -<pre> -a = a + - b -</pre> -</body></html> - <html><head/><body> -对诸如 =, += 等之后出现的符号开启对齐。当该选项被禁用时,将使用普通的续行缩进。<br> -<br> -对齐: -<pre> -a = a + - b -</pre> -无对齐: -<pre> -a = a + - b -</pre> -</body></html> - - - Align after assignments - 赋值语句后对齐 - - - <html><head/><body> -The extra padding usually only affects if statement conditions. Without extra padding: -<pre> -if (a && - b) - c; -</pre> -With extra padding: -<pre> -if (a && - b) - c; -</pre> -</body></html> - <html><head/><body> -额外的空白填充通常只影响条件语句,没有空白填充的时候: -<pre> -if (a && - b) - c; -</pre> -有空白填充的时候: -<pre> -if (a && - b) - c; -</pre> -</body></html> - - - Add extra padding to conditions -if they would align to the next line - 如果条件语句需要与下一行对齐, -则添加额外的空白 - - - <html><head/><body> -Adds an extra level of indentation to multiline conditions in the switch, if, while and foreach statements if they would otherwise have the same or less indentation than a nested statement. - -For four-spaces indentation only if statement conditions are affected. Without extra padding: -<pre> -if (a && - b) - c; -</pre> -With extra padding: -<pre> -if (a && - b) - c; -</pre> -</body></html> - <html><head/><body> -如果switch、if、while和foreach表达式中的多行条件的缩进等于或少于其他嵌套语句,则为其多添加一层缩进。 - -如果是四个空格方式的缩进,则只修改if语句。不添加额外空白: -<pre> -if (a && - b) - c; -</pre> -添加额外空白: -<pre> -if (a && - b) - c; -</pre> -</body></html> - - - - Git - - Dialog - 对话框 - - - Branch Name: - 分支名称: - - - CheckBox - 复选框 - - - Track remote branch '%1' - 跟踪远程分支'%1' - - - Track local branch '%1' - 跟踪本地分支'%1' - - - Add Remote - 添加远程 - - - Name: - 名称: - - - URL: - URL: - - - Remotes - 远程 - - - F&etch - F&etch - - - Delete Remote - 删除远程 - - - Would you like to delete the remote "%1"? - 您想要删除远程"%1"吗? - - - &Push - &Push - - - - ProjectExplorer::CodeStyleSettingsPropertiesPage - - Form - 界面 - - - Language: - 语言: - - - - QmlProfiler - - Dialog - 对话框 - - - Address: - 地址: - - - 127.0.0.1 - 0.1x {127.0.0.1?} - - - Port: - 端口: - - - QML Profiler - QML 分析器(Profiler) - - - &Host: - 主机(&H): - - - localhost - localhost - - - &Port: - 端口(&P): - - - Sys&root: - Sys&root: - - - - QtQuickComponentSetOptionsPage - - Built-in elements only (for all platforms) - 仅限内置元素(全平台) - - - Qt Quick Components for Symbian - Symbian的Qt Quick 组件 - - - Qt Quick Components for Meego/Harmattan - Meego/Harmattan 的Qt Quick 组件 - - - Use an existing .qml file - 使用现有的qml 文件 - - - The Qt Quick Components for Symbian are a set of ready-made components that are designed with specific native appearance for the Symbian platform. - -Requires Qt 4.7.3 or newer, and the component set installed for your Qt version. - Symbian 的QT 组件是已经定制完成的组件,是设计用来原生支持Symbian 系统平台的. - -需要Qt 4.7.3 或更新, 并且也要安装相应的组件. - - - The Qt Quick Components for Meego/Harmattan are a set of ready-made components that are designed with specific native appearance for the Meego/Harmattan platform. - -Requires Qt 4.7.4 or newer, and the component set installed for your Qt version. - Meego/Harmattan 的QT 组件是已经定制完成的组件,是设计用来原生支持Symbian 系统平台的. - -需要Qt 4.7.3 或更新, 并且也要安装相应的组件. - - - Qt Quick Components for MeeGo/Harmattan - Meego/Harmattan 的Qt Quick 组件 - - - The Qt Quick Components for MeeGo/Harmattan are a set of ready-made components that are designed with specific native appearance for the MeeGo/Harmattan platform. - -Requires Qt 4.7.4 or newer, and the component set installed for your Qt version. - Meego/Harmattan 的QT 组件是已经定制完成的组件,是设计用来原生支持Symbian 系统平台的. - -需要Qt 4.7.4 或更新, 并且也要安装相应的组件. - - - The Qt Quick Components for Symbian are a set of ready-made components that are designed with specific native appearance for the Symbian platform. - -Requires Qt 4.7.4 or newer, and the component set installed for your Qt version. - Symbian 的QT 组件是已经定制完成的组件,是设计用来原生支持Symbian 系统平台的. - -需要Qt 4.7.4 或更新, 并且也要安装相应的组件. - - - - QtSupport - - Used to extract QML type information from library-based plugins. - 用于从基于库的插件解析出QML的类型信息。 - - - QML Dump: - QML Dump: - - - A modified version of qmlviewer with support for QML/JS debugging. - 支持QML/JS 调试的、修改过的qmlviewer版本。 - - - QML Observer: - QML Observer: - - - Build - 构建 - - - QML Debugging Library: - QML 调试库: - - - Helps showing content of Qt types. Only used in older versions of GDB. - 协助显示Qt类型的内容。只使用在老版本的GDB上。 - - - GDB Helper: - GDB 助手: - - - Show compiler output of last build. - 显示最后一次构建的编译输出。 - - - Show Log - 显示日志 - - - Compile debugging helpers that are checked. - 编译选中的调试助手。 - - - Build All - 构建所有项目 - - - Tool Chain: - 工具链: - - - Compiler: - 编译器: - - - - QtSupport - - Version name: - 版本名称: - - - qmake location: - qmake 路径: - - - Edit - 编辑 - - - - QtSupport - - Name - 名称 - - - qmake Location - qmake 路径 - - - Add - 添加 - - - Remove - 删除 - - - Clean up - 清理 - - - Add... - 添加... - - - - GenericLinuxDeviceConfigurationWizardSetupPage - - WizardPage - 向导页面 - - - The name to identify this configuration: - 说明配置的名称: - - - The device's host name or IP address: - 设备的域名或者IP地址: - - - The user name to log into the device: - 登录设备的用户名: - - - The authentication type: - 验证类型: - - - Password - 密码 - - - Key - 密钥 - - - The user's password: - 用户密码: - - - The file containing the user's private key: - 文件包含用户私钥: - - - - LinuxDeviceFactorySelectionDialog - - Device Configuration Wizard Selection - 设备设置向导选择 - - - Available device types: - 可用的设备类型: - - - - MaemoDeployConfigurationWidget - - Form - 界面 - - - Device configuration: - 设备配置: - - - <a href="irrelevant">Manage device configurations</a> - <a href="irrelevant">设置设备选项</a> - - - These show the INSTALLS settings from the project file(s). - 显示来自于项目文件的安装(INSTALLS)设置. - - - Files to install for subproject: - 为子项目需要安装的文件: - - - Edit the project file to add or remove entries. - 编辑项目文件添加或删除条目. - - - Add Desktop File - 添加桌面文件 - - - Add Launcher Icon... - 添加一个启动图标 ... - - - - TextEditor::TabPreferencesWidget - - Form - 界面 - - - Tab settings: - 标签设置: - - - - TextEditor::TabSettingsWidget - - Insert &spaces instead of tabs - 插入空格代替制表符(&S) - - - Automatically determine based on the nearest indented line (previous line preferred over next line) - 按最近的缩进行自动决定 (前一行优先于后一行) - - - Based on the surrounding lines - 依据周围行的情况 - - - Enable automatic &indentation - 开启自动缩进(&i) - - - Backspace will go back one indentation level instead of one space. - 退格键将退回一个缩进而不是一个空白. - - - &Backspace follows indentation - 退格键跟随缩进(&B) - - - Never - 从不 - - - Always - 总是 - - - In Leading White Space - 仅用于行首空白 - - - - Valgrind - - Dialog - 对话框 - - - Suppression File: - Suppression 文件: - - - Suppression: - Suppression: - - - Select Suppression File - 选择Suppression 文件 - - - Save Suppression - 保存Suppression - - - - Valgrind - - Valgrind executable: - Valgrind 执行档: - - - Valgrind Command - Valgrind 命令 - - - Valgrind Suppression Files - Valgrind Suppression 文件 - - - Valgrind Suppression File (*.supp);;All Files (*) - Valgrind Suppression文件 (*.supp);;所有文件 (*) - - - Memory Analysis Options - 内存分析选项 - - - Backtrace frame count: - 回溯(backtrace)帧数: - - - Suppression files: - Suppression 文件: - - - Add... - 添加... - - - Remove - 删除 - - - Track origins of uninitialized memory - 跟踪未初始化的内存的出处 - - - Profiling Options - 分析选项 - - - Limits the amount of results the profiler gives you. A lower limit will likely increase performance. - 限制分析器输出结果的数量。较低的限制有可能提高性能。 - - - Result view: Minimum event cost: - 结果视图: 最小事件花费: - - - % - % - - - Show additional information for events in tooltips - 在工具提示中显示事件的额外信息 - - - <html><head/><body> -<p>Does full cache simulation.</p> -<p>By default, only instruction read accesses will be counted ("Ir").</p> -<p> -With cache simulation, further event counters are enabled: -<ul><li>Cache misses on instruction reads ("I1mr"/"I2mr")</li> -<li>Data read accesses ("Dr") and related cache misses ("D1mr"/"D2mr")</li> -<li>Data write accesses ("Dw") and related cache misses ("D1mw"/"D2mw")</li></ul> -</p> - -</body></html> - <html><head/><body> -<p>进行全缓存模拟。</p> -<p>默认情况下, 只有读取访问指令被计算在内 ("Ir")。</p> -<p> -缓存模拟情况下,更多事件计数器被启用: -<ul><li>缓存未命中的读取指令("I1mr"/"I2mr")</li> -<li>数据读取访问("Dr") 和相关的缓存未命中("D1mr"/"D2mr")</li> -<li>数据写入指令 ("Dw") 和相关的缓存未命中 ("D1mw"/"D2mw")</li></ul> -</p> - -</body></html> - - - Enable cache simulation - 开启缓存模拟 - - - <html><head/><body> -<p>Do branch prediction simulation.</p> -<p>Further event counters are enabled: </p> -<ul><li>Number of executed conditional branches and related predictor misses ( -"Bc"/"Bcm")</li> -<li>Executed indirect jumps and related misses of the jump address predictor ( -"Bi"/"Bim")</li></ul></body></html> - <html><head/><body> -<p>进行分支预测模拟。</p> -<p>更多事件计数器将被启用: </p> -<ul><li>多个执行的条件分支和相关的预测未命中( -"Bc"/"Bcm")</li> -<li>执行的间接跳转和相关的跳转地址预测未命中( -"Bi"/"Bim")</li></ul></body></html> - - - Enable branch prediction simulation - 开启分支预测模拟 - - - Collect information for system call times. - 搜集系统调用时间的信息。 - - - Collect system call time - 搜集系统调用时间 - - - Collect the number of global bus events that are executed. The event type "Ge" is used for these events. - 搜集执行的全局总线事件的数量.事件类型"Ge"被用于此类事件。 - - - Collect global bus events - 搜集全局总线事件 - - - Visualisation: Minimum event cost: - 可视化:最小事件花费: - - - Visualization: Minimum event cost: - 可视化: 最小事件花费: - - - - VcsBase::VcsConfigurationPage - - Configure - 配置 - - - Configuration - 配置 - - - Please configure <b>%1</b> now. - 请现在设置<b>%1</b> 。 - - - Configure... - 配置... - - - - Utils::FileUtils - - Refusing to remove root directory. - 拒绝移除根目录(root)。 - - - Refusing to remove your home directory. - 拒绝移除您的家目录(home)。 - - - Failed to remove directory '%1'. - 移除目录'%1'失败。 - - - Failed to remove file '%1'. - 移除文件'%1'失败。 - - - Failed to create directory '%1'. - 无法创建目录'%1'。 - - - Could not copy file '%1' to '%2'. - 无法复制文件'%1'到'%2'。 - - - Cannot open %1 for reading: %2 - 无法打开%1 来读取: %2 - - - Cannot read %1: %2 - 无法读取%1: %2 - - - File Error - 文件错误 - - - Cannot write file %1. Disk full? - 无法写入文件%1。磁盘已满? - - - Cannot overwrite file %1: %2 - 无法覆盖文件 %1 : %2 - - - Cannot create file %1: %2 - 无法创建文件%1: %2 - - - Cannot create temporary file in %1: %2 - 无法在%1创建临时文件 : %2 - - - - Analyzer::AnalyzerManagerPrivate - - &Analyze - 分析(&A) - - - Start - 开始 - - - Stop - 停止 - - - Analyzer Toolbar - 分析器工具栏 - - - <html><head/><body><p>You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used in %3 mode.</p><p>Debug and Release mode run-time characteristics differ significantly, analytical findings for one mode may or may not be relevant for the other.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> - <html><head/><body><p>您正在尝试在%2模式下对应用运行"%1"工具。该工具设计为用于%3模式。</p><p>Debug 和 Release 模式运行时的特征差异非常明显。在一个模式下的分析发现不一定适用于另一模式。</p><p>您想要继续在%2模式下运行该工具吗?</p></body></html> - - - Analyzer Still Running - 分析器仍然在运行 - - - Stop Active Run - 停止运行中的 - - - Keep Running - 保持运行 - - - Debug - Debug - - - Release - Release - - - Run %1 in %2 Mode? - 在%2 模式下运行%1吗? - - - &Do not ask again - 下次不再询问(&D) - - - An analysis is still in progress. - 一个分析流程仍在进行中。 - - - No analyzer tool selected. - 没有选中任何分析器工具。 - - - - Analyzer::AnalyzerRunConfigWidget - - Analyzer Settings - 分析器设置 - - - Available settings: %1 - 可用的设置: %1 - - - - Analyzer::AnalyzerRunControl - - Build Issues - 构建问题 - - - - Bazaar - - Ignore whitespace - 忽略空白 - - - Ignore blank lines - 忽略空白行 - - - - BinEditorFile - - Cannot open %1: %2 - 无法打开%1 : %2 - - - File Error - 文件错误 - - - - CMakeProjectManager - - Changes to cmake files are shown in the project tree after building. - 构建之后在项目树中显示cmake文件的变化。 - - - Build now - 现在构建 - - - - Core::Internal::PromptOverwriteDialog - - Overwrite Existing Files - 覆盖现有文件 - - - The following files already exist in the folder -%1. -Would you like to overwrite them? - 以下文件已经存在于目录 -%1中。 -您想要覆盖吗? - - - - Core::IFile - - File was restored from auto-saved copy. Use <i>Save</i> to confirm, or <i>Revert to Saved</i> to discard changes. - 文件由自动保存的备份恢复. 使用<i>保存</i> 来确认, 或者<i>回滚到保存的</i> 来丢弃修改. - - - - Core::InfoBarDisplay - - Close - 关闭 - - - - Core::OutputWindow - - Additional output omitted - - 省略的附加输出 - - - - - CppTools::Internal::CppCodeStylePreferencesWidget - - Code style settings: - 代码风格设置: - - - - CppTools::CppToolsSettings - - Global C++ - Settings - 全局C++ - - - Global - Settings - 全局 - - - Qt - Qt - - - GNU - GNU - - - Old Creator - 旧的 Creator - - - - Cvs - - Ignore whitespace - 忽略空白 - - - Ignore blank lines - 忽略空白行 - - - - Debugger - - Previous - 上一个 - - - - Debugger - - Memory at Register '%1' (0x%2) - 注册内存'%1' (0x%2) - - - Register '%1' - 注册'%1' - - - - FakeVim::Internal::FakeVimUserCommandsModel - - Action - 动作 - - - Command - 命令 - - - User command #%1 - 用户命令#%1 - - - - FakeVim::Internal::FakeVimUserCommandsPage - - User Command Mapping - 用户命令映射 - - - FakeVim - FakeVim - - - - GenericProjectManager::Internal::FilesSelectionWizardPage - - Hide files matching: - 隐藏符合条件的文件: - - - Apply Filter - 应用过滤器 - - - Generating file list... - -%1 - 生成文件列表... - -%1 - - - - GenericProjectManager::Internal::GenericProjectPlugin - - Edit Files... - 编辑文件... - - - - GenericProjectManager::Internal::SelectableFilesDialog - - Edit Files - 编辑文件 - - - Hide files matching: - 隐藏符合条件的文件: - - - Apply Filter - 应用过滤器 - - - Generating file list... - -%1 - 生成文件列表... - -%1 - - - Not showing %n files that are outside of the base directory. -These files are preserved. - - 未显示基础目录外部的 %n个文件。 -这些文件受到保护。 - - - - - Git - - Local Branches - 本地分支 - - - - ImageViewer - - Cannot open image file %1 - 无法打开图形文件 %1 - - - Cannot open image file %1. - 无法打开图形文件 %1。 - - - Play Animation - 播放动画 - - - Pause Animation - 暂停动画 - - - - Mercurial - - Ignore whitespace - 忽略空白 - - - Ignore blank lines - 忽略空白行 - - - - Perforce::Internal::PerforceDiffParameterWidget - - Ignore whitespace - 忽略空白 - - - - ProjectExplorer::AbiWidget - - <custom> - <自定义> - - - - ProjectExplorer::Internal::AppOutputPane - - Attach debugger to this process - attach调试器到此进程 - - - Attach debugger to %1 - 挂接调试器到%1 - - - Stop - 停止 - - - Close Tab - 关闭标签 - - - Close All Tabs - 关闭所有标签 - - - Close Other Tabs - 关闭其他标签 - - - Re-run this run-configuration - 重新执行此运行配置 - - - Application Output - 应用程序输出 - - - Application Output Window - 应用程序输出窗口 - - - - CodeStyleSettingsPanelFactory - - Code Style Settings - 代码风格设置 - - - Code Style - 代码风格 - - - - CodeStyleSettingsPanel - - Code Style Settings - 代码风格设置 - - - Code Style - 代码风格 - - - - ProjectExplorer::EditorConfiguration - - Project - Settings - 项目 - - - Project %1 - Settings, %1 is a language (C++ or QML) - 项目%1 - - - - ProjectExplorer::Internal::ClangToolChainFactory - - Clang - Clang - - - - Welcome - - %1 (last session) - %1 (最后的会话) - - - %1 (current session) - %1 (当前会话) - - - - QmlDesigner::ComponentAction - - Edit sub components defined in this file - 编辑这个文件中定义的子组件 - - - - QmlDesigner::NodeInstanceServerProxy - - Cannot Start QML Puppet Executable - 无法启动QML替身执行文件 - - - The executable of the QML Puppet process (%1) cannot be started. Please check your installation. QML Puppet is a process which runs in the background to render the items. - QML 替身进程(%1)的可执行档无法启动。请检查您的安装。QML 替身进程是运行在后台用来渲染项的。 - - - Cannot Find QML Puppet Executable - 无法找到QML替身的可执行档 - - - The executable of the QML Puppet process (%1) cannot be found. Please check your installation. QML Puppet is a process which runs in the background to render the items. - QML 替身进程(%1)的可执行档无法启动。请检查您的安装。QML 替身进程是运行在后台用来渲染项的。 - - - - QmlDesigner::ModelNodeContextMenu - - Selection - 选择 - - - Select parent: %1 - 选择父节点: %1 - - - Select: %1 - 选择: %1 - - - Stack (z) - 栈(z) - - - To Front - 转到前面 - - - To Back - 转到后面 - - - Raise - 在堆栈中上升 - - - Lower - 在堆栈中降低 - - - Reset z property - 重置z属性 - - - Edit - 编辑 - - - Reset Position - 重置位置 - - - Reset Size - 重置尺寸 - - - Visibility - 可见性 - - - Anchors - 锚点 - - - Fill - 填充 - - - Reset - 重置 - - - Layout - 布局 - - - Layout in Row - 行布局 - - - Layout in Column - 列布局 - - - Layout in Grid - 网格布局 - - - Layout in Flow - 流程布局 - - - Go into Component - 进入组件 - - - - QmlJSInspector::Internal::QmlJsInspectorToolBar - - Apply Changes on Save - 保存时应用修改 - - - Play/Pause Animations - 播放/暂停动画 - - - Select - 选择 - - - Zoom - 缩放 - - - Color Picker - 颜色拾取器 - - - 1x - 1x - - - 0.5x - 0.5x - - - 0.25x - 0.25x - - - 0.125x - 0.125x - - - 0.1x - 0.1x - - - - QmlJSTools - - Code Style - 代码风格 - - - Qt Quick - Qt Quick - - - &QML/JS - &QML/JS - - - Reset Code Model - 重置代码模型 - - - Global Qt Quick - Settings - 全局Qt Quick - - - Global - Settings - 全局 - - - Qt - Qt - - - Old Creator - 旧的 Creator - - - - QmlProfiler - - Application finished before loading profiled data. - Please use the stop button instead. - 载入分析数据前应用程序完成运行了. - 请使用停止按钮. - - - No executable file to launch. - 没有可执行档来启动。 - - - The port seems to be in use. - Error message shown after 'Could not connect ... debugger:" - 端口已被使用. - - - The application is not set up for QML/JS debugging. - Error message shown after 'Could not connect ... debugger:" - 应用没有被设置为QML/JS 调试. - - - Qt Creator - Qt Creator - - - Could not connect to the in-process QML debugger: -%1 - %1 is detailed error message - 无法连接到进程内(in-process)QML 调试器: -%1 - - - Time per Call - 呼叫时间比 - - - QML Profiler Options - QML 分析器选项 - - - The QML Profiler can be used to find performance bottlenecks in applications using QML. - QML分析器可被用于找到使用QML的应用程序的性能瓶颈。 - - - %1 s - %1秒 - - - Elapsed: %1 - 逝去: %1 - - - QML traces (*%1) - QML 追踪文件(*%1) - - - Application finished before loading profiled data. -Please use the stop button instead. - 应用程序在载入分析数据之前已经结束。 -请使用“停止”按钮。 - - - Attach... - 挂接... - - - Load QML Trace - 载入QML 追踪文件 - - - Save QML Trace - 保存 QML 追踪文件 - - - The QML profiler requires Qt 4.7.4 or newer. -The Qt version configured in your active build configuration is too old. -Do you want to continue? - QML 分析器需要Qt 4.7.4 或更新版本。 -您在构建配置中设置的Qt 版本太旧。 -您想要继续吗? - - - Callees - 被叫 - - - Callers - 主叫 - - - Discard data - 丢弃数据 - - - Elapsed: 0 s - 逝去: 0 s - - - Disable profiling - 禁用分析器 - - - Enable profiling - 启用分析器 - - - Elapsed: %1 s - 逝去: %1 s - - - QML traces (%1) - QML 踪迹(%1) - - - Detach - 分离 - - - Gathering ports failed: %1 - 搜集端口失败:%1 - - - Not enough free ports on device for analyzing. - - 设备上可用于分析的空闲端口不够。 - - - - Starting remote process... - - 启动远端进程... - - - Failure running remote process. - 运行远程程序失败。 - - - Starting remote process ... - - 启动远端进程... - - - - Finished running remote process. Exit code was %1. - - 远程进程运行结束.返回值%1. - - - - Zoom in 10% - 放大 10% - - - Zoom out 10% - 缩小 10% - - - - QmlProjectManager::Internal::QmlProjectRunControl - - Starting %1 %2 - - 正在启动 %1 %2 - - - - %1 exited with code %2 - - %1 退出,退出代码: %2 - - - - - QmlProjectManager::Internal::QmlProjectRunControlFactory - - Run - 运行 - - - Open Qt4 Options - 打开Qt4选项 - - - Cancel - 取消 - - - QML Observer Missing - QML Observer丢失 - - - QML Observer could not be found. - QML Observer未找到. - - - QML Observer is used to offer debugging features for QML applications, such as interactive debugging and inspection tools. It must be compiled for each used Qt version separately. On the Qt4 options page, select the current Qt installation and click Rebuild. - QML Observer能够能够用来调试QML应用程序,其中包含了调试和检查组件.但该工具必须为每个Qt版本单独编译一份.在Qt4的选项设置页,选择最新的Qt版本然后点击重新构建. - - - - QmakeProjectManager - - No device is connected. Please connect a device and try again. - - 没有设备连接。请连接设备后再试。 - - - - Executable file: %1 - - 可执行文件:%1 - - - - Connecting to '%1'... - - 连接到'%1'... - - - - Unable to create CODA connection. Please try again. - - 无法创建CODA 连接. 请再试一次. - - - - Could not open serial device: %1 - - 无法连续打开设备: %1 - - - - Connecting to %1:%2... - - 正在连接到%1:%2... - - - - Error: %1 - - 错误: %1 - - - - Connected. - - 已连接. - - - - Process has finished. - - 进程完成了. - - - - Thread has crashed: %1 - - 线程崩溃了: %1 - - - - The process is already running on the device. Please first close it. - - 进程已经在设备上运行。请先关闭。 - - - - Launching: %1 - - 启动中: %1 - - - - Launched. - - 启动了. - - - - Launch failed: %1 - - 启动失败: %1 - - - - Waiting for CODA - 等待CODA - - - %1 on Symbian Device - Symbian 设备上的 %1 - - - Running %1 - %1 is a name of the Publish Step i.e. Clean Step - 正在运行%1 - - - No valid Qt version has been detected.<br>Define a correct Qt version in "Options > Qt4" - 没有检测到有效的Qt版本.<br>请定义一个有效的Qt 版本在"选项> Qt4" - - - No valid tool chain has been detected.<br>Define a correct tool chain in "Options > Tool Chains" - 没有检测到有效的工具链.<br>请定义一个正确的工具链在"选项> 工具链" - - - Keep Running - 保持运行 - - - Finished. - - 完成. - - - - Parsing the .pro file - 正在解析.pro文件 - - - Error while parsing file %1. Giving up. - 分析文件%1时发生错误,放弃中。 - - - Could not find .pro file for sub dir '%1' in '%2' - 在'%2'的子目录'%1' 中找不到.pro文件 - - - Select QML File - 选择QML文件 - - - Select Existing QML file - 选择现有的QML 文件 - - - Qt Quick Application Type - Qt Quick 应用类型 - - - All files and directories that reside in the same directory as the main QML file are deployed. You can modify the contents of the directory any time before deploying. - 目录内所有文件包括主QML文件已经部署。您可以在部署之前的任何时间修改目录里的内容。 - - - - BaseQtVersion - - The compiler '%1' (%2) cannot produce code for the Qt version '%3' (%4). - 编译器'%1' (%2)无法为Qt版本'%3" (%4)生成代码。 - - - Name: - 名称: - - - Invalid Qt version - 无效的 Qt 版本 - - - ABI: - ABI: - - - Source: - 源: - - - mkspec: - mkspec: - - - qmake: - qmake: - - - Default: - 默认: - - - Version: - 版本: - - - - QtSupport - - Getting Started - 入门 - - - <specify a name> - <指定一个名字> - - - Auto-detected - 自动检测 - - - Manual - 手动设置 - - - Remove invalid Qt Versions - 删除无效的Qt版本 - - - Do you want to remove all invalid Qt Versions?<br><ul><li>%1</li></ul><br>will be removed. - 您想删除所有无效的Qt版本吗?<br><ul><li>%1</li></ul><br>将会被删除。 - - - Qt version %1 for %2 - %2的Qt 版本%1 - - - No tool chain can produce code for this Qt version. Please define one or more tool chains. - 没有这个Qt版本的工具链.请定义一个或更多的工具链. - - - Not all possible target environments can be supported due to missing tool chains. - 因为工具链的丢失,不是所有可能的环境变量可以被支持. - - - The following ABIs are currently not supported:<ul><li>%1</li></ul> - 以下ABI 目前不支持:<ul><li>%1</li></ul> - - - Building helpers - 构建助手 - - - Debugging Helper Build Log for '%1' - '%1' 的调试助手构建日志 - - - Select a qmake executable - 选择一个qmake执行档 - - - Qt versions incompatible - Qt版本不匹配 - - - The qt version selected must be for the same target. - 选中的qt 版本必须是同一个目标. - - - Remove Invalid Qt Versions - 删除无效的Qt版本 - - - No compiler can produce code for this Qt version. Please define one or more compilers. - 没有这个Qt版本的编译器。请定义一个或更多编译器。 - - - Not all possible target environments can be supported due to missing compilers. - 由于编译器不全,不是所有的目标环境都能被支持。 - - - Qt known - 已知的Qt - - - This Qt version was already registered as "%1". - 该Qt版本已经注册为 "%1"。 - - - Incompatible Qt Versions - 不兼容的Qt版本 - - - The Qt version selected must be for the same target. - 选中的Qt版本必须针对同一个目标平台。 - - - Helpers: None available - 助手: 没有可用 - - - Helpers: %1. - %1 is list of tool names. - 助手: %1。 - - - <i>Not yet built.</i> - <i>还没被构建。</i> - - - <i>Not needed.</i> - <i>不需要。</i> - - - <i>Cannot be compiled.</i> - <i>无法编译。</i> - - - S60 SDK: - S60 SDK: - - - SBS v2 directory: - SBS v2 目录: - - - - QtSupport - - MinGW from %1 - MinGW 从%1 - - - - AbstractLinuxDeviceDeployStep - - No valid device set. - 没有设置有效的设备. - - - - RemoteLinux - - <no target path set> - <没有设置目标路径> - - - Local File Path - 本地文件路径 - - - Remote Directory - 远程目录 - - - - RemoteLinux - - Test - 测试 - - - Remote Processes - 远程进程 - - - Deploy Public Key - 部署公钥 - - - - RemoteLinux - - New Generic Linux Device Configuration Setup - 设置新的通用型Linux设备 - - - - RemoteLinux - - Connection Data - 连接数据 - - - - RemoteLinux - - Setup Finished - 设置完成 - - - The new device configuration will now be created. -In addition, device connectivity will be tested. - 新设备的设置将被创建。 -另外,设备的连接性将被测试。 - - - - RemoteLinux - - (default for %1) - (默认 %1) - - - - RemoteLinux - - Start Wizard - 开启向导 - - - - RemoteLinux - - Device with MADDE support (Fremantle, Harmattan, MeeGo) - 设备拥有MADDE支持(例如:Fremantle, Harmattan, MeeGo) - - - Other MeeGo OS - 其他MeeGo 操作系统 - - - - RemoteLinux - - Testing configuration. This may take a while. - 测试设置.这将需要一点时间. - - - Testing configuration... - 测试配置... - - - Stop Test - 停止测试 - - - Qt version mismatch! Expected Qt on device: 4.6.2 or later. - Qt版本不符合!需要Qt4.6.2或者更新的版本. - - - Error retrieving list of used ports: %1 - 无法搜索到已使用的端口: %1 - - - All specified ports are available. - 所有指定的端口都可用。 - - - The following supposedly free ports are being used on the device: - 以下有可能可使用的端口已经被设备使用: - - - Device configuration okay. - 设备配置完毕. - - - Close - 关闭 - - - Device configuration test failed: Unexpected output: -%1 - 设备配置测试失败:意外的输出 -%1 - - - Hardware architecture: %1 - - 硬件架构:%1 - - - - Kernel version: %1 - - 内核版本:%1 - - - - No Qt packages installed. - 没有安装Qt包. - - - List of installed Qt packages: - 已经安装的Qt包列表: - - - - RemoteLinux - - No matching packaging step found. - 没有找到符合条件的打包步骤. - - - Deploy package via UTFS mount - 通过挂在UTFS来部署包 - - - - RemoteLinux - - All files copied. - 所有文件拷贝结束. - - - Deploy files via UTFS mount - 通过挂载UTFS来部署包 - - - - RemoteLinux - - Choose Icon (will be scaled to %1x%1 pixels, if necessary) - 选择图标(如果需要会缩放到%1x%1 像素 ) - - - Invalid Icon - 无效图标 - - - Unable to read image - 无法读取图片 - - - Failed to Save Icon - 无法保存图标 - - - Could not save icon to '%1'. - 无法保存图标到'%1'. - - - - RemoteLinux - - General Information - 概要 - - - - RemoteLinux - - Device Status Check - 检测设备状态 - - - - RemoteLinux - - Existing Keys Check - 现有密钥检测 - - - - RemoteLinux - - Key Creation - 密钥创建 - - - Cannot Create Keys - 无法创建密钥 - - - Creating keys ... - 创建密钥... - - - Key creation failed: %1 - 密钥创建失败: %1 - - - Done. - 完成。 - - - Could Not Save Key File - 无法保存密钥文件 - - - - RemoteLinux - - Key Deployment - 公钥部署 - - - Deploying... - 部署中... - - - Key Deployment Failure - 密钥部署失败 - - - Key Deployment Success - 密钥部署成功 - - - - RemoteLinux - - The new device configuration will now be created. - 新设备配置将会被创建。 - - - - RemoteLinux - - New Device Configuration Setup - 新设备配置设置 - - - - RemoteLinux - - SFTP initialization failed: %1 - SFTP 初始化失败: %1 - - - All files successfully deployed. - 所有文件部署成功. - - - Uploading file '%1'... - 上传文件中%1 ... - - - Failed to upload file '%1'. - 上传文件'%1'失败. - - - Failed to upload file '%1': Could not open for reading. - 无法上传文件'%1': 无法打开并读取. - - - Upload of file '%1' failed: %2 - 上传文件'%1' 失败: %2 - - - Upload files via SFTP - 通过SFTP上传文件 - - - - RemoteLinux - - -Did you start Qemu? - -启动Qemu了吗? - - - (No device) - (没有设备) - - - SDK Connectivity - SDK 连接性 - - - Mad Developer - 疯狂开发者 - - - Unknown OS - 未知系统 - - - - RemoteLinux - - Cannot deploy to sysroot: No packaging step found. - 无法部署到sysroot.没有找到打包的步骤. - - - - RemoteLinux - - Cannot install to sysroot without build configuration. - 在没哟构建配置的状况下,无法安装到sysroot. - - - Cannot install package to sysroot without packaging step. - 在没有打包步骤的情况下,无法安装包到sysroot. - - - Cannot install package to sysroot without a Qt version. - 在没有设置Qt版本的情况下,无法安装包到sysroot. - - - - RemoteLinux - - Install Debian package to sysroot - 安装Debian包到sysroot - - - - RemoteLinux - - Install RPM package to sysroot - 安装RPM包到sysroot - - - - RemoteLinux - - Cannot copy to sysroot without build configuration. - 无法在没有构建配置的情况下复制到sysroot. - - - Cannot copy to sysroot without valid Qt version. - 无法在没有有效的QT版本的情况下复制到sysroot. - - - Copying files to sysroot ... - 正在拷贝文件到sysroot... - - - Sysroot installation failed: %1 - Continuing anyway. - Sysroot 安装失败: %1 - 仍然继续. - - - - RemoteLinux - - Copy files to sysroot - 复制文件到sysroot - - - - RemoteLinux - - Create RPM Package - 创建 RPM 包 - - - Package up to date. - 包已更新. - - - Creating package file ... - 创建包文件... - - - Package created. - 打包完成. - - - Package Creation: Running command '%1'. - 生成包:运行命令'%1'. - - - Packaging error: Could not start command '%1'. Reason: %2 - 打包错误:无法执行命令'%1' 原因'%2' - - - Packaging Error: Command '%1' failed. - 打包错误:命令%1'失败. - - - Reason: %1 - 原因 %1 - - - Exit code: %1 - 退出代码: %1 - - - - RemoteLinux - - Create Debian Package - 创建Deb包 - - - Could not move package files from %1 to %2. - 无法将包文件从%1移动到%2. - - - Packaging failed: Foreign debian directory detected. - 打包失败:检测到外部debian目录. - - - Could not remove directory '%1': %2 - 无法删除目录'%1': %2 - - - Could not create Debian directory '%1'. - 无法创建Debian目录'%1'. - - - Could not copy file '%1' to '%2' - 无法拷贝文件‘%1’到'%2' - - - Error: Could not create file '%1'. - 错误:无法创建文件'%1'. - - - - RemoteLinux - - Could not move package file from %1 to %2. - 无法移动包文件从%1 到%2. - - - - RemoteLinux - - Size should be %1x%2 pixels - 尺寸应当是 %1x%2 像素 - - - No Version Available. - 没有可用的版本. - - - Could not read icon - 无法调入图标 - - - Images - 图片 - - - Choose Image (will be scaled to 48x48 pixels if necessary) - 选择图像(会缩放到 48x48 像素, 如果需要) - - - Could Not Set New Icon - 无法设置新图标 - - - File Error - 文件错误 - - - Could not set project name. - 无法设置项目名称。 - - - Could not set package name for project manager. - 无法为项目管理器设置包的名称。 - - - Could not set project description. - 无法设置项目描述。 - - - <b>Create Package:</b> - <b>创建 包:</b> - - - Could Not Set Version Number - 无法设置版本号 - - - - RemoteLinux - - Connection failure: %1 - 连接失败: %1 - - - Installing package failed. - 安装package失败. - - - - RemoteLinux - - Include in package - 包含到包 - - - Include - 包含 - - - Do not include - 不要包含 - - - - RemoteLinux - - Canceled. - 已取消. - - - Publishing canceled by user. - 发布被用户取消。 - - - The project is missing some information important to publishing: - 项目丢失了一些发布需要的重要信息: - - - Publishing failed: Missing project information. - 发布失败:丢失项目信息。 - - - Removing left-over temporary directory ... - 移除留下的临时文件夹... - - - Error removing temporary directory: %1 - 移除临时文件夹出错: %1 - - - Publishing failed: Could not create source package. - 发布失败:无法生成源文件包。 - - - Setting up temporary directory ... - 设置临时文件夹... - - - Error: Could not create temporary directory. - 错误:无法创建临时文件夹. - - - Error: Could not copy project directory. - 错误:无法复制项目文件夹. - - - Error: Could not fix newlines. - 错误:无法修复新行. - - - Publishing failed: Could not create package. - 发布失败:无法创建包. - - - Cleaning up temporary directory ... - 清理临时文件夹... - - - Failed to create directory '%1'. - 无法创建文件夹'%1'. - - - Could not copy file '%1' to '%2': %3. - 无法复制文件'%1' 到 '%2': %3. - - - Error: Failed to start dpkg-buildpackage. - 错误: 无法开始 dpkg-buildpackage. - - - Error: dpkg-buildpackage did not succeed. - 错误: dpkg-buildpackage 没有成功. - - - Package creation failed. - 包创建失败。 - - - Packaging finished successfully. The following files were created: - - 打包成功完成。如下文件被创建: - - - - No Qt version set. - 没有设置Qt 版本. - - - Building source package... - 构建源程序包... - - - Starting scp ... - 启动scp ... - - - SSH error: %1 - SSH 错误: %1 - - - Upload failed. - 上传失败。 - - - Error uploading file: %1. - 上传文件错误: %1. - - - Error uploading file. - 上传文件错误。 - - - All files uploaded. - 所有文件已上传。 - - - Uploading file %1 ... - 上传文件中%1 ... - - - Cannot open file for reading: %1. - 无法打开并读取文件: %1. - - - Cannot read file: %1 - 无法读取文件: %1 - - - - RemoteLinux - - Publishing to Fremantle's "Extras-devel/free" Repository - 发布到Fremantle's "Extras-devel/free"仓库 - - - Upload options - 上传选项 - - - Choose a private key file - 选择一个私钥文件 - - - - RemoteLinux - - Publish for "Fremantle Extras-devel free" repository - 发布到"Fremantle Extras-devel free" 仓库 - - - - RemoteLinux - - Publishing to Fremantle's "Extras-devel free" Repository - 发布到Fremantle的"Extras-devel free" 仓库 - - - Build Settings - 构建设置 - - - Upload Settings - 上传设置 - - - Result - 结果 - - - - RemoteLinux - - Start Maemo Emulator - 启动Maemo模拟器 - - - Start MeeGo Emulator - 启动Maemo模拟器 - - - Stop MeeGo Emulator - 停止Maemo模拟器 - - - Stop Maemo Emulator - 停止Maemo模拟器 - - - - RemoteLinux - - Error: Copy command failed. - 错误: 复制命令失败. - - - - RemoteLinux - - No directories to mount - 没有目录将被挂载 - - - No directories to unmount - 没有目录将被卸载 - - - Could not execute unmount request. - 无法生成卸载请求. - - - Failure unmounting: %1 - 卸载%1失败 - - - Finished unmounting. - 卸载完成. - - - -stderr was: '%1' - stderr为'%1' - - - Error: Not enough free ports on device to fulfill all mount requests. - 错误: 没有足够的空闲端口来让设备完成所有的接入请求. - - - Starting remote UTFS clients... - 正在启动远程UTFS客户端... - - - Mount operation succeeded. - 挂载操作成功. - - - Failure running UTFS client: %1 - 运行UTFS客户端:%1失败 - - - Starting UTFS servers... - 正在启动UTFS服务器... - - - -stderr was: %1 - stderr为:%1 - - - Error running UTFS server: %1 - 运行UTFS服务器%1时出错 - - - Timeout waiting for UTFS servers to connect. - 等待UTFS服务器连接超时. - - - - RemoteLinux - - Local directory - 本地目录 - - - Remote mount point - 远程挂载点 - - - - RemoteLinux - - Not enough free ports on the device. - 设备上没有足够的开放端口. - - - - RemoteLinux - - Choose directory to mount - 选择挂载的目录 - - - No local directories to be mounted on the device. - 没有本地目录将被挂载到设备. - - - One local directory to be mounted on the device. - 一个本地目录将被挂载到设备. - - - %n local directories to be mounted on the device. - Note: Only mountCount>1 will occur here as 0, 1 are handled above. - - %n个本地目录将被挂载到设备上. - - - - - RemoteLinux - - Run on device - 在设备上运行 - - - - RemoteLinux - - Qemu error - Qemu 错误 - - - Qemu crashed. - Qemu崩溃了。 - - - Click here to change the OpenGL mode. - 点击这里来改变OpenGL 模式. - - - - RemoteLinux - - Device Configurations - 设备配置 - - - - RemoteLinux - - Save Public Key File - 保存公钥文件 - - - Save Private Key File - 保存私钥文件 - - - - RemoteLinux - - Mounting host directories... - 正在挂载主机目录... - - - Potentially unmounting left-over host directory mounts... - 静默卸载剩余挂载的主机目录... - - - Unmounting host directories... - 卸载主机目录... - - - - RemoteLinux - - Waiting for file name... - 等待文件名称... - - - Choose Public Key File - 选择公钥文件 - - - Public Key Files (*.pub);;All Files (*) - 选择公钥文件(*.pub);;所有文件 (*) - - - Deploying... - 部署中... - - - Deployment finished successfully. - 部署成功完成。 - - - - RemoteLinux - - Preparing remote side ... - - 正在准备远端... - - - - Remote application failed with exit code %1. - 远端程序失败,退出代码 %1. - - - The gdbserver process closed unexpectedly. - gdbserver进程异常终止. - - - - RemoteLinux - - The .pro file '%1' is being parsed. - .pro文件'%1'正在被解析。 - - - No active build configuration. - 没有激活的构建设置。 - - - Don't know what to run. - 不知道要运行什么。 - - - %1 (on Remote Device) - %1 is the name of a project which is being run on remote Linux - %1 (在远端设备上) - - - Run on Remote Device - Remote Linux run configuration default display name - 在远端设备上运行 - - - Run on remote device - Remote Linux run configuration default display name - 在远程设备上运行 - - - - RemoteLinux - - (on Remote Generic Linux Host) - (在远程通用Linux主机) - - - - RemoteLinux - - Fetch Device Environment - 获取设备环境 - - - <a href="%1">Manage device configurations</a> - <a href="%1">管理Maemo设备配置</a> - - - <a href="%1">Set Debugger</a> - <a href="%1">设置调试器</a> - - - Device configuration: - 设备配置: - - - Executable on host: - 主机上的执行档: - - - Executable on device: - 设备上的执行档: - - - Use this command instead - 用这个命令代替 - - - Alternate executable on device: - 设备上的备用执行档: - - - Arguments: - 参数: - - - <default> - <默认> - - - Working directory: - 工作目录: - - - C++ only - 只是C++ - - - QML only - 只是QML - - - C++ and QML - C++和QML - - - Debugging type: - 调试类型: - - - Base environment for this run configuration: - 运行设置的基础环境: - - - Clean Environment - 清理时的环境变量 - - - System Environment - 系统环境变量 - - - Cancel Fetch Operation - 取消获取操作 - - - Device Error - 设备错误 - - - Device error - 设备错误 - - - Fetching environment failed: %1 - 获取环境失败:%1 - - - - RemoteLinux - - Starting remote process ... - - 启动远端进程... - - - - Finished running remote process. Exit code was %1. - - 远程进程运行结束.返回值%1. - - - - Remote Execution Failure - 远程执行失败 - - - - RemoteLinux - - Run on remote Linux device - 在远程Linux设备上运行 - - - - Subversion::Internal::SubversionDiffParameterWidget - - Ignore whitespace - 忽略空白 - - - - TextEditor::FunctionHintProposalWidget - - %1 of %2 - %1/%2 - - - - TextEditor::FallbackSelectorWidget - - Settings: - 设置: - - - Custom - 自定义 - - - Restore %1 - %1 is settings name (e.g. Global C++) - 还原 %1 - - - Restore - 还原 - - - - TextEditor::Internal::SnippetsCollection - - Cannot create user snippet directory %1 - 无法创建用户片断目录%1 - - - - Valgrind - - Profiling - 正在分析 - - - Profiling %1 - - 正在分析%1 - - - - - Valgrind - - Valgrind Function Profiler - Valgrind 功能分析器 - - - Valgrind Profile uses the "callgrind" tool to record function calls when a program runs. - Valgrind 分析器使用了"callgrind" 工具来记录程序运行时的函数调用。 - - - Profile Costs of this Function and its Callees - 分析此函数和被调用者的花销 - - - - Valgrind - - Callers - 调用者 - - - Functions - 函数 - - - Callees - 被调用者 - - - Visualization - 可视化 - - - Request the dumping of profile information. This will update the callgrind visualization. - 请求dump分析信息。这将更新callgrind的可视化。 - - - Reset all event counters. - 重置所有的事件计数器。 - - - Pause event logging. No events are counted which will speed up program execution during profiling. - 暂停事件记录日志。不对事件计数,这将加快程序在分析时的执行速度。 - - - Go back one step in history. This will select the previously selected item. - 在历史中返回一步。这将选中之前选过的项。 - - - Go forward one step in history. - 在历史中向前一步。 - - - Selects which events from the profiling data are shown and visualized. - 选择分析数据时显示哪些事件并且图形化。 - - - Absolute Costs - 绝对花费 - - - Show costs as absolute numbers. - 显示花费的确切数字。 - - - Relative Costs - 相对花费 - - - Show costs relative to total inclusive cost. - 显示相对于总花费的花费。 - - - Relative Costs to Parent - 相对于父级的花费 - - - Show costs relative to parent functions inclusive cost. - 显示相对于包括父级函数的花费。 - - - Cost Format - 花费格式 - - - Cycle Detection - 循环检测 - - - Enable cycle detection to properly handle recursive or circular function calls. - 启用循环检测来正确处理递归或循环的函数调用。 - - - This removes template parameter lists when displaying function names. - 该选项在显示函数名时去掉模板参数列表。 - - - Show Project Costs Only - 仅显示项目花费 - - - Show only profiling info that originated from this project source. - 仅显示源于本项目代码的分析信息。 - - - Filter... - 过滤器... - - - Profiling aborted. - 分析中断。 - - - Parsing finished, no data. - 分析完成,无数据。 - - - Parsing finished, total cost of %1 reported. - 分析完成,报告总花费%1 。 - - - Parsing failed. - 分析失败。 - - - Select this Function in the Analyzer Output - 在分析器输出中选择此函数 - - - Populating... - 正在填充... - - - - Valgrind - - All functions with an inclusive cost ratio higher than %1 (%2 are hidden) - 包含成本比%1高的所有函数 (%2 被隐藏) - - - - Valgrind - - Analyzing Memory - 内存分析中 - - - Analyzing memory of %1 - - 正在分析内存%1 - - - - - Valgrind - - %1 in %2 - %1 function, %2 path - 在 %2中的%1 - - - in %1 - 在 %1中 - - - - Valgrind - - Copy Selection - 复制选择 - - - Suppress Error - 防止错误 - - - - Valgrind - - Memory Analysis - 内存分析 - - - - Valgrind - - External Errors - 外部错误 - - - Show issues originating outside currently opened projects. - 显示源于当前打开的项目之外的问题。 - - - Suppressions - Suppressions - - - These suppression files were used in the last memory analyzer run. - 这些suppression 文件被上一次内存分析所使用。 - - - Definite Memory Leaks - 确定的内存泄露 - - - Possible Memory Leaks - 可能的内存泄露 - - - Use of Uninitialized Memory - 使用了未初始化的内存 - - - Invalid Calls to "free()" - 无效调用"free()" - - - Valgrind Memory Analyzer - Valgrind 内存分析器 - - - Valgrind Analyze Memory uses the "memcheck" tool to find memory leaks - Valgrind 分析内存使用"memcheck" 工具来查找内存泄漏 - - - Memory Issues - 内存问题 - - - Go to previous leak. - 移到上一个泄漏。 - - - Go to next leak. - 移到下一个泄漏。 - - - Error Filter - 错误过滤器 - - - Internal Error - 内部错误 - - - Error occurred parsing valgrind output: %1 - 分析valgrind输出时发生了错误: %1 - - - - Valgrind - - Callee - 被调用者 - - - Caller - 调用者 - - - Cost - 花费 - - - Calls - 调用 - - - - Valgrind - - Previous command has not yet finished. - 之前的命令还没有完成。 - - - Dumping profile data... - dump分析数据... - - - Resetting event counters... - 重置事件计数器... - - - Pausing instrumentation... - 暂停分析... - - - Unpausing instrumentation... - 继续仪器... - - - Callgrind dumped profiling info - Callgrind dump分析信息 - - - Callgrind unpaused. - Callgrind 已继续。 - - - Downloading remote profile data... - 正在下载远程分析数据... - - - - Valgrind - - File: - 文件: - - - Called: - 被调用: - - - %n time(s) - - %n 次 - - - - Events - 事件 - - - Self costs - 自身花费 - - - (%) - (%) - - - Incl. costs - 包括杂项的花费 - - - %1 - %1 - - - (%1%) - (%1%) - - - %1 cost spent in a given function excluding costs from called functions. - 给定的函数的花费为 %1,不包括调用其他函数的花费。 - - - %1 cost spent in a given function including costs from called functions. - 给定的函数的花费为 %1,包括调用其他函数的花费。 - - - Function - 函数 - - - Location - 位置 - - - Called - 被调用 - - - Self Cost: %1 - 自身花费: %1 - - - Incl. Cost: %1 - 包括杂项的花费: %1 - - - - Valgrind - - %1:%2 in %3 - %1: 在 %3 中的%2 - - - - Valgrind - - Last-level - 最后一级 - - - Instruction - 指令 - - - Cache - 缓存 - - - Conditional branches - 条件分支 - - - Indirect branches - 间接分支 - - - level %1 - 级别%1 - - - read - 读取 - - - write - 写入 - - - mispredicted - 错误预计 - - - executed - 执行 - - - miss - 未命中 - - - access - 访问 - - - Line: - 行号: - - - Position: - 位置: - - - - Valgrind - - Parsing Profile Data... - 解析分析数据... - - - - Valgrind - - No network interface found for remote analysis. - 没有找到用于远程分析的网络接口. - - - Select Network Interface - 选择网络接口 - - - - Valgrind - - Could not determine remote PID. - 无法确定远程的PID。 - - - - Valgrind - - Valgrind options: %1 - Valgrind 选项: %1 - - - Working directory: %1 - 工作目录: %1 - - - Command-line arguments: %1 - 命令参数: %1 - - - ** Analyzing finished ** - - ** 分析完成** - - - - ** Error: "%1" could not be started: %2 ** - - ** 错误: "%1" 无法被启动: %2 ** - - - - ** Error: no valgrind executable set ** - - ** 错误: 没有设置 valgrind的可执行档 ** - - - - ** Process Terminated ** - - ** 进程已终止** - - - - Application Output - 应用程序输出 - - - - Valgrind - - Analyzer - 分析器 - - - - Valgrind - - Generic Settings - 一般设置 - - - - VcsBase::Internal::CommonSettingsWidget - - Command used for reverting diff chunks - 用于还原差异部分的命令 - - - - Welcome - - Welcome - 欢迎 - - - New Project - 新项目 - - - - Coda::Session - - CPU: v%1.%2%3%4 - CPU description of an S60 device %1 major verison, %2 minor version %3 real name of major verison, %4 real name of minor version - CPU: v%1.%2%3%4 - - - CODA: v%1.%2 CODA protocol: v%3.%4 - CODA: v%1.%2 CODA 协议: v%3.%4 - - - %1, %2%3%4, %5 - s60description description of an S60 device %1 CPU description, %2 endianness %3 default type size (if any), %4 float size (if any) %5 Coda version - %1, %2%3%4, %5 - - - big endian - 大段 - - - little endian - 小段 - - - , type size: %1 - will be inserted into s60description - , 类型尺寸: %1 - - - , float size: %1 - will be inserted into s60description - , 浮点型尺寸: %1 - - - - CodePaster - - <Unknown> - Unknown user of paste. - <未知> - - - - RemoteLinux - - MeeGo Qemu Settings - MeeGo Qemu 设置 - - - - QmlDesigner::TextToModelMerger error message - - No import statements found - 没有找到导入语句 - - - Unsupported QtQuick version - 不支持的QtQuick版本 - - - - QmlProjectManager::QmlProjectPlugin - - Open Qt4 Options - 打开Qt4选项 - - - Cancel - 取消 - - - Open Qt Versions - 打开Qt版本 - - - QML Observer Missing - QML Observer缺失 - - - QML Observer could not be found for this Qt version. - 当前Qt版本找不到对应的QML Observer。 - - - QML Observer is used to offer debugging features for Qt Quick UI projects in the Qt 4.7 series. - -To compile QML Observer, go to the Qt Versions page, select the current Qt version, and click Build in the Helpers section. - QML Observer用于在Qt 4.7系列为Qt Quick UI项目提供调试功能。 - -要想编译QML Observer,请进入“Qt版本”页面,选择当前的Qt版本,然后点击“助手”部分的“构建”按钮。 - - - QML Observer could not be found. - QML Observer未找到. - - - QML Observer is used to offer debugging features for QML applications, such as interactive debugging and inspection tools. It must be compiled for each used Qt version separately. On the Qt4 options page, select the current Qt installation and click Rebuild. - QML Observer能够能够用来调试QML应用程序,其中包含了调试和检查组件.但该工具必须为每个Qt版本单独编译一份.在Qt4的选项设置页,选择最新的Qt版本然后点击重新构建. - - - - Valgrind - - Valgrind - Valgrind - - - - text - - text - 文本 - - - - textedit - - text edit - 编辑文本 - - - - textinput - - text - 文本 - - - - StatusDisplay - - No QML events recorded - 没有QML项目被录制 - - - Profiling application - 分析应用程序 - - - Loading data - 导入数据 - - - - TimeDisplay - - length: %1 - 长度: %1 - - - - FlickableGroupBox - - Flickable - 可摇动 - - - Content size - 内容尺寸 - - - Flick direction - 摇动方向 - - - Flickable direction - 摇动方向 - - - Behavior - 行为 - - - Bounds behavior - 边界行为 - - - Interactive - 互动 - - - Max. velocity - 最大速度 - - - Maximum flick velocity - 最大摇动速度 - - - Deceleration - 减速 - - - Flick deceleration - 摇动减速 - - - - FlowSpecifics - - Flow - 流程 - - - Spacing - 间距 - - - - GridSpecifics - - Grid - 框架 - - - Columns - - - - Rows - - - - Flow - 流程 - - - Spacing - 间距 - - - - GridViewSpecifics - - Grid View - 框架视图 - - - Cache - 缓存 - - - Cache buffer - 缓存存储器 - - - Cell height - 网格高度 - - - Cell width - 网格宽度 - - - Flow - 流程 - - - Resize wraps - 调整框架 - - - Navigation wraps - 导航跃迁 - - - Determines whether the grid wraps key navigation. - 决定框架的按键导航. - - - Snap mode - 页面模式 - - - Determines how the view scrolling will settle following a drag or flick. - 决定视图如何滚动,拖拽或是轻击. - - - Grid View Highlight - 框架视图高度 - - - Range - 范围 - - - Highlight range - 高亮范围 - - - Move duration - 移动持续时间 - - - Move animation duration of the highlight delegate. - 高亮代表移动动画的持续时间. - - - Move speed - 移动速度 - - - Move animation speed of the highlight delegate. - 高亮代表移动动画的速度. - - - Preferred begin - 首选起始 - - - Preferred highlight begin - must be smaller than Preferred end. - 首选高亮起始-必须比首选结束数值要小. - - - Preferred end - 首选结束 - - - Preferred highlight end - must be larger than Preferred begin. - 首选高亮结束-必须比首选起始数值要大. - - - Follows current - 跟随当前 - - - Determines whether the highlight is managed by the view. - 决定高亮是否需要由视图来管理. - - - - LineEdit - - Translate this string - 翻译这个字符串 - - - - ListViewSpecifics - - List View - 列表视图 - - - Cache - 缓存 - - - Cache buffer - 缓存存储器 - - - Navigation wraps - 导航跃迁 - - - Determines whether the grid wraps key navigation. - 决定框架的按键导航. - - - Orientation - 方向 - - - Orientation of the list. - 列表方向. - - - Snap mode - 页面模式 - - - Determines how the view scrolling will settle following a drag or flick. - 决定视图如何滚动,拖拽还是轻点. - - - Spacing - 间距 - - - Spacing between items. - 项之间的间距. - - - List View Highlight - 列表视图高亮 - - - Range - 范围 - - - Highlight range - 高亮范围 - - - Move duration - 移动持续时间 - - - Move animation duration of the highlight delegate. - 高亮代表移动动画的持续时间. - - - Move speed - 移动速度 - - - Move animation speed of the highlight delegate. - 高亮代表移动动画的速度. - - - Resize duration - 调整时间 - - - Resize animation duration of the highlight delegate. - 调整高亮代表的动画移动. - - - Resize speed - 调整速度 - - - Resize animation speed of the highlight delegate. - 调整高亮代表的动画速度. - - - Preferred begin - 首选起始 - - - Preferred highlight begin - must be smaller than Preferred end. - 首选高亮起始-必须比首选结束数值要小. - - - Preferred end - 首选结束 - - - Preferred highlight end - must be larger than Preferred begin. - 首选高亮结束-必须比首选起始数值要大. - - - Follows current - 跟随当前 - - - Determines whether the highlight is managed by the view. - 决定高亮是否需要由视图来管理. - - - - MouseAreaSpecifics - - MouseArea - 鼠标区域 - - - Enabled - 启用 - - - This property holds whether the item accepts mouse events. - 这项属性决定这项是否接受鼠标事件. - - - Hover Enabled - 启用悬停 - - - This property holds whether hover events are handled. - 这项属性决定这项是否处理鼠标悬停事件事件. - - - - PathViewSpecifics - - Path View - 路径查看 - - - Drag margin - 拖拽量 - - - Flick deceleration - 摇动减速 - - - Follows current - 跟随当前 - - - A user cannot drag or flick a PathView that is not interactive. - 用户不可以拖拽或点击一个不是交互式类型的路径视图. - - - Offset - 便宜 - - - Specifies how far along the path the items are from their initial positions. This is a real number that ranges from 0.0 to the count of items in the model. - 指定项最远离初始位置的路径.这是一个浮点数,范围从0.0到模型中项的数量. - - - Item count - 项目计数 - - - pathItemCount: number of items visible on the path at any one time. - pathItemCount: 任何时间内可见项的数量. - - - Path View Highlight - 路径视图高亮 - - - Highlight range - 高亮范围 - - - Move duration - 移动持续时间 - - - Move animation duration of the highlight delegate. - 高亮代表移动动画的持续时间. - - - Preferred begin - 首选起始 - - - Preferred highlight begin - must be smaller than Preferred end. - 首选高亮起始-必须比首选结束数值要小. - - - Preferred end - 首选结束 - - - Preferred highlight end - must be larger than Preferred begin. - 首选高亮结束-必须比首选起始数值要大. - - - Determines whether the highlight is managed by the view. - 决定高亮是否需要由视图来管理. - - - - RowSpecifics - - Row - - - - Spacing - 间距 - - - - ExampleBrowser - - Search in Tutorials - 在教程中搜索 - - - Search in Tutorials, Examples and Demos - 在教程,例子,演示中搜索 - - - Show Examples and Demos - 显示例子和演示 - - - Tag List - 标签列表 - - - - ExampleDelegate - - Tags: - 标签: - - - - FeaturedAndNewsListing - - Featured News - 特色新闻 - - - Latest News - 最新新闻 - - - - Feedback - - Feedback - 反馈 - - - Help us make Qt Creator even better - 协助我们使Qt Creator 更加完美 - - - Search in Tutorials, Examples and Demos - 在教程,例子,演示中搜索 - - - Open Project... - 打开项目... - - - Create Project... - 创建项目... - - - - NewsListing - - Click to read more... - 点击阅读更多... - - - - RecentProjects - - Recently Edited Projects - 最近使用的项目 - - - - RecentSessions - - Recently Used Sessions - 当前使用的会话 - - - %1 (last session) - %1 (最后的会话) - - - %1 (current session) - %1 (当前会话) - - - - TagBrowser - - Please choose a tag to filter for: - 请问过滤器选择一个标签: - - - - RemoteLinux - - Tarball creation not possible. - 不可能创建tarball。 - - - Create tarball: - 创建tarball: - - - - ExtensionSystem::Internal::PluginErrorOverview - - Qt Creator - Plugin loader messages - Qt Creator - 插件载入信息 - - - The following plugins have errors and cannot be loaded: - 以下插件有错误,无法被载入: - - - Details: - 详情: - - - - AttachToQmlPortDialog - - Start Debugger - 启动调试器 - - - Host - 主机 - - - &Host: - 主机(&H): - - - &Port: - 端口(&P): - - - - QmlProfiler - - Painting - 绘制中 - - - Compiling - 编译中 - - - Creating - 创建中 - - - Signal Handler - 信号处理 - - - - Tracing - - Duration - 持续时间 - - - Details - 详情 - - - Location - 位置 - - - Duration: - 持续时间: - - - Details: - 详情: - - - - MobileAppWizardHarmattanOptionsPage - - WizardPage - 向导页面 - - - Application icon (80x80): - 应用程序图标 (80x80): - - - Generate code to speed up the launching on the device. - 生成代码来加速设备上的运行速度. - - - Make application boostable - 使应用程序启动稳定 - - - - NewTestCaseDlg - - ... - ... - - - - RecordDialog - - Abort - 终止 - - - Stop - 停止 - - - - SelectDlg - - Dialog - 对话框 - - - - QtTest::Internal::TestSettingsPropertiesPage - - General - 概要 - - - Add - 添加 - - - Branch - Branch - - - E-mail - 电子邮件 - - - - LinuxDeviceConfigurationsSettingsWidget - - Linux Device Configurations - Linux 设备设置 - - - &Configuration: - 配置(&C): - - - &Name: - 名称(&N): - - - OS type: - OS 类型: - - - Device type: - 设备类型: - - - Authentication type: - 验证类型: - - - Password - 密码 - - - &Key - 密钥(&K) - - - &Host name: - 主机名称(&H): - - - IP or host name of the device - 设备的IP或者主机名称 - - - &SSH port: - SSH端口(&S): - - - Free ports: - 空闲端口: - - - Timeout: - 超时时间: - - - s - - - - &Username: - 用户名(&U): - - - &Password: - 密码(&P): - - - Show password - 显示密码 - - - Private key file: - 私钥文件: - - - Set as Default - 设置为默认 - - - &Add - 添加(&A) - - - &Remove - 删除(&R) - - - Set As Default - 设置为默认 - - - &Generate SSH Key... - 生成SSH密钥(&G)... - - - &Add... - 添加(&A)... - - - - LinuxDeviceTestDialog - - Device Test - 设备测试 - - - - ProFilesUpdateDialog - - Maemo Deployment Issue - Maemo部署事件 - - - &Check all - 选中全部(&C) - - - &Uncheck All - 取消选中(&U) - - - - RemoteLinuxDeployConfigurationWidget - - Form - 界面 - - - Device configuration: - 设备配置: - - - <a href="irrelevant">Manage device configurations</a> - <a href="irrelevant">设置设备选项</a> - - - These show the INSTALLS settings from the project file(s). - 显示来自于项目文件的安装(INSTALLS)设置. - - - Files to install for subproject: - 为子项目需要安装的文件: - - - Edit the project file to add or remove entries. - 编辑项目文件添加或删除条目. - - - - RemoteLinuxProcessesDialog - - List of Remote Processes - 远程进程列表 - - - &Filter by process name: - 按进程名过滤(&F): - - - &Update List - 更新列表(&U) - - - &Kill Selected Process - 停止选中进程(&K) - - - - SshKeyCreationDialog - - SSH Key Configuration - SSH密钥配置 - - - Options - 选项 - - - Key &size: - 密钥长度(&S): - - - Key algorithm: - 密钥算法: - - - Key - 密钥 - - - &Generate SSH Key - 生成SSH密钥(&G) - - - Save P&ublic Key... - 保存公钥文件... - - - Save Pr&ivate Key... - 保存私钥文件... - - - &Close - 关闭 - - - - StartGdbServerDialog - - List of Remote Processes - 远程进程列表 - - - Device: - 设备: - - - &Filter by process name: - 按进程名过滤(&F): - - - &Attach to Selected Process - 挂接到指定进程 - - - &Update List - 更新列表(&U) - - - - ExampleLineEdit - - Show Examples and Demos - 显示例子和演示 - - - Search in Tutorials - 在教程中搜索 - - - Search in Tutorials, Examples and Demos - 在教程,例子,演示中搜索 - - - Tag List - 标签列表 - - - - LinksBar - - Qt Creator - Qt Creator - - - - ExtensionSystem::Internal::PluginErrorOverviewPrivate - - Continue - 继续 - - - - QmlJsDebugClient::QmlProfilerEventList - - Source code not available - 源代码不可用 - - - No data to save - 没有数据需要保存 - - - Could not open %1 for writing - 无法打开%1来写入 - - - Could not open %1 for reading - 无法打开%1来读取 - - - Error while parsing %1 - 解析 %1 发生错误 - - - - Utils::Ssh - - Password Required - 需要密码 - - - - Utils::TextFileFormat - - Out of memory. - 内存不足。 - - - An encoding error was encountered. - 发生了一个编码错误。 - - - - Bazaar Verbose 详细 - - Show files changed in each revision - 显示每个修订版本改变的文件 - Forward 按时间顺序 - - Show from oldest to newest - 显示从最老到最新 - - - Include merges - 包含合并 - - - Show merged revisions - 显示合并了的修订版本 - Detailed 详细 - Moderately short - 略短 + Ignore Whitespace + 忽略空白 - One line - 一行 + Ignore Blank Lines + - GNU ChangeLog - GNU 更新日志 + Show files changed in each revision. + + + + Show from oldest to newest. + + + + Include Merges + + + + Show merged revisions. + + + + Moderately Short + + + + One Line + + + + GNU Change Log + + + + Format + 格式 + + + Performs a local commit in a bound branch. +Local commits are not pushed to the master branch until a normal commit is performed. + + + + &Annotate %1 + + + + Annotate &parent revision %1 + + + + Uncommit + + + + Keep tags that point to removed revisions + + + + Only remove the commits from the local branch when in a checkout + + + + If a revision is specified, uncommits revisions to leave the branch at the specified revision. +For example, "Revision: 15" will leave the branch at revision 15. + + + + Last committed + + + + Dry Run + + + + Test the outcome of removing the last committed revision, without actually removing anything. + + + + Triggers a Bazaar version control operation. + + + + Uncommit... + + + + For example: 'https://[user[:pass]@]host[:port]/[path]'. + + + + Ignores differences between branches and overwrites +unconditionally. + + + + Creates the path leading up to the branch if it does not already exist. + + + + Performs a local pull in a bound branch. +Local pulls are not applied to the master branch. + - Core::Internal + Beautifier - Launching a file browser failed - 启动文件浏览器失败 + Bea&utifier + - Unable to start the file manager: - -%1 - - - 无法启动文件管理器: - -%1 - - - - - '%1' returned the following error: - -%2 - '%1' 返回以下错误: - -%2 - - - Settings... - 设定... - - - Launching Windows Explorer Failed - 启动Windows Explorer 失败 - - - Could not find explorer.exe in path to launch Windows Explorer. - 在搜索路径中找不到explorer.exe,无法启动Windows Explorer。 - - - Show in Explorer - 在Explorer中显示 - - - Show in Finder - 在Finder中显示 - - - Show Containing Folder - 显示包含的目录 - - - Open Command Prompt Here - 在此弹出命令提示 - - - Open Terminal Here - 在此打开终端 - - - Deleting File Failed - 删除文件失败 - - - Could not delete file %1. - 无法删除文件 %1 。 - - - Show in Explorer... - 在Explorer中显示... - - - Show in Finder... - 在搜索器中显示 ... - - - Show Containing Folder... - 显示包含的目录... - - - Open Command Prompt Here... - 在此打开命令行控制台... - - - Open Terminal Here... - 在此打开终端... + Beautifier + - BaseFileWizard + Beautifier::Internal - Unable to create the directory %1. - 无法创建目录 %1。 + Artistic Style + + + + Uncrustify + - FunctionDeclDefLink + Beautifier::Internal::AbstractSettings - Target file was changed, could not apply changes - 目标文件改变, 无法应用设置 + Cannot save styles. %1 does not exist. + - Apply changes to definition - 在定义中应用设置 + Cannot open file "%1": %2. + - Apply changes to declaration - 在声明中定义设置 + Cannot save file "%1": %2. + - Apply function signature changes - 应用功能签名设置 + No documentation file specified. + + + + Cannot open documentation file "%1". + + + + The file "%1" is not a valid documentation file. + + + + Cannot read documentation file "%1": %2. + - Debugger + Beautifier::Internal::ArtisticStyle - C++ exception - C++ 异常 - - - Thread creation - 线程创建 - - - Thread exit - 线程退出 - - - Load module: - 载入模块: - - - Unload module: - 卸载模块: - - - Output: - 输出: - - - - Debugger - - <p>An uncaught exception occurred:</p><p>%1</p> - <p>发生了一个未被捕获的异常:</p><p>%1</p> - - - <p>An uncaught exception occurred in '%1':</p><p>%2</p> - <p>在 '%1'处发生了未被捕捉的异常:</p><p>%2</p> - - - No Local Variables - 没有局部变量 - - - <p>An uncaught exception occurred in <i>%1</i>:</p><p>%2</p> - <p>发生未被捕捉到的异常,位置在<i>%1</i>:</p><p>%2</p> - - - Uncaught Exception - 未被捕捉的异常 - - - - Find::IFindFilter - - Case sensitive - 区分大小写 - - - Whole words - 全词匹配 - - - Regular expressions - 正则表达式 - - - Flags: %1 - 标志: %1 - - - None - - - - , - - - - - Find::Internal::SearchResultWidget - - Search was canceled. - 查找被取消。 - - - Cancel - 取消 - - - Repeat the search with same parameters - 使用相同的参数重复搜索 - - - Search again - 再次搜索 - - - Replace with: - 替换为: - - - Replace all occurrences - 替换所有出现位置 - - - Replace - 替换 - - - This change cannot be undone. - 这项改变将无法被撤销。 - - - Do not warn again - 下次不再警告 - - - The search resulted in more than %n items, do you still want to continue? - - 搜索到了超过%n个项,您仍然想继续吗? - - - - Continue - 继续 - - - No matches found. - 未找到匹配。 - - - %n matches found. - - 找到%n 个匹配。 - - - - - RemoteLinux - - Maemo GCC - Maemo GCC - - - Maemo GCC for %1 - Maemo GCC 为 %1 - - - %1 GCC (%2) - %1 GCC (%2) - - - - RemoteLinux - - <html><head/><body><table><tr><td>Path to MADDE:</td><td>%1</td></tr><tr><td>Path to MADDE target:</td><td>%2</td></tr><tr><td>Debugger:</td/><td>%3</td></tr></body></html> - <html><head/><body><table><tr><td> MADDE路径:</td><td>%1</td></tr><tr><td> MADDE 路径目标:</td><td>%2</td></tr><tr><td>调试器:</td/><td>%3</td></tr></body></html> - - - - RemoteLinux - - Copy Files to Maemo5 Device - 复制文件到Maemo5 设备 - - - Build Debian Package and Install to Maemo5 Device - 构建 Debian 包然后安装到 Maemo5 设备上 - - - Build Debian Package and Install to Harmattan Device - 构建Debian 包然后安装到 Harmattan 设备上 - - - Build RPM Package and Install to MeeGo Device - 构建 RPM 包然后安装到 MeeGo 设备上 - - - - RemoteLinux - - Cannot open file '%1': %2 - 文法打开文件'%1':'%2' - - - Qt Creator - Qt Creator - - - Error creating packaging directory '%1'. - 创建打包目录发生错误'%1'. - - - Error creating MeeGo templates - 创建MeeGo模板出错 - - - - ProjectExplorer::Internal::RunSettingsPanelFactory - - Run Settings - 运行设置 - - - - ProjectExplorer::SettingsAccessor - - Using Old Project Settings File - 使用旧的项目设置文件 - - - <html><head/><body><p>A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p></body></html> - <html><head/><body><p>一个用户设置文件的带版本号的备用将会被使用,因为不带版本号的文件由不兼容的新版 Qt Creator创建。</p><p>在该版本的Qt Creator上次被使用时进行的项目设定更改被忽略,现在进行的修改将<b>不会</b>被传递到新版本。</p></body></html> - - - Project Settings File from a different Environment? - 来自于不同环境的项目设置文件? - - - Qt Creator has found a .user settings file which was created for another development setup, maybe originating from another machine. - -The .user settings files contain environment specific settings. They should not be copied to a different environment. - -Do you still want to load the settings file? - Qt Creator 找到了一个由其他开发环境创建的用户设置文件,或许是来自于其他机器的。 - -用户设置文件包含了特定环境的设定。它不应当被复制到其他应用环境中去。 - -您仍然想载入这个设置文件吗? - - - Unsupported Shared Settings File - 不支持的共享设置文件 - - - The version of your .shared file is not yet supported by this Qt Creator version. Only settings that are still compatible will be taken into account. - -Do you want to continue? - -If you choose not to continue Qt Creator will not try to load the .shared file. - 您的共享的文件的版本号不被这个 Qt Creator 支持。只有仍然兼容的设定会被计入。 - -您想继续吗? - -如果您选择不继续, Qt Creator 不会尝试载入这个共享的文件。 - - - - QmlJSEditor - - Qt Quick - Qt Quick - - - - FindExportedCppTypes - - The type will only be available in Qt Creator's QML editors when the type name is a string literal - 此种类型名称 string literal 仅在 Qt Creator 中的 QML编辑器时可使用 - - - The module URI cannot be determined by static analysis. The type will be available -globally in the QML editor. You can add a "// @uri My.Module.Uri" annotation to let -Qt Creator know about a likely URI. - 模块URI 无法由静态分析来决定. 类型将在QML编辑器中全局可用. -您可以添加 "// @uri My.Module.Uri" 注释来让 -Qt Creator 知道一个相似的URI. - - - must be a string literal to be available in the QML editor - 字符串文字只在 QML 编辑器中可用 - - - - QmakeProjectManager - - Headers - 头文件 - - - Sources - 源文件 - - - Forms - 界面文件 - - - Resources - 资源 - - - QML - QML - - - Other files - 其他文件 - - - Cannot Open File - 无法打开文件 - - - Cannot open the file for editing with VCS. - 无法使用VCS打开用于编辑的文件。 - - - Cannot Set Permissions - 无法设置权限 - - - Cannot set permissions to writable. - 无法设置文件的可写权限。 - - - There are unsaved changes for project file %1. - 项目文件 %1 中有未保存的改变。 - - - Failed! - 失败! - - - Could not write project file %1. - 无法写入项目文件 %1。 - - - File Error - 文件错误 - - - Wrong Icon Size - 错误的图标大小 - - - The icon needs to be %1x%2 pixels big, but is not. Do you want Qt Creator to scale it? - 图标必须要%1x%2像素大, 但现在不是。您希望Qt Creator缩放图标吗? - - - Could not copy icon file: %1 - 无法复制图标文件: %1 - - - - QtTest::Internal::TestNavigationWidgetFactory - - Filter tree - 过滤视图 - - - - QtTest::Internal::QtTestPlugin - - &Test - 测试(&T) - - - Error - 错误 - - - - ResultsView - - Result - 结果 - - - Description - 说明 - - - - TestResultsWindow - - Test Results - 测试结果 - - - - TestExecuter - - Stopping... - 正在停止... - - - - RemoteLinux - - No deployment action necessary. Skipping. - 不必要执行部署,跳过。 - - - No device configuration set. - 没有设备设置。 - - - Connecting to device... - 正在连接设备... - - - Could not connect to host: %1 - 无法连接到主机: %1 - - - -Did the emulator fail to start? - -模拟器启动失败了吗? - - - -Is the device connected and set up for network access? - -设备已经连接并设置为可以访问网络了吗? - - - - RemoteLinux - - Deployment failed: %1 - 部署失败:%1 - - - Cannot deploy: %1 - 无法部署:%1 - - - User requests deployment to stop; cleaning up. - 用户要求停止部署; 清理中。 - - - Deploy step failed. - 部署步骤失败。 - - - Deploy step finished. - 部署步骤完成。 - - - - RemoteLinux - - Successfully uploaded package file. - 上传包文件成功。 - - - Installing package to device... - 正在将包安装到设备... - - - Package installed. - 包已安装。 - - - - RemoteLinux - - Upload of file '%1' failed. The server said: '%2'. - 上传文件'%1'。服务器回应: '%2'。 - - - If '%1' is currently running on the remote host, you might need to stop it first. - 如果 '%1'正在远程主机上运行,您可能需要先停止它。 - - - Failed to set executable flag. - 设置可运行标志失败。 - - - Warning: No remote path set for local file '%1'. Skipping upload. - 警告:没有为本地文件'%1'设置远程路径,跳过上传。 - - - Incremental deployment - 增量部署 - - - Command line: - 命令行: - - - Device test finished successfully. - 设备测试成功完成。 - - - Device test failed. - 设备测试失败。 - - - - RemoteLinux - - Connecting to host... - 连接到主机... - - - SSH connection failure: %1 - - SSH 连接失败 '%1' - - - - uname failed: %1 - - uname失败%1 - - - - uname failed. - - uname失败。 - - - - Checking if specified ports are available... - 检查指定端口是否可用... - - - Error gathering ports: %1 - - 搜集端口错误: %1 - - - - The following specified ports are currently in use: %1 - - 以下指定端口现正被使用: %1 - - - - - RemoteLinux - - Preparing SFTP connection... - 准备SFTP连接... - - - Connection failed: %1 - 连接失败:%1 - - - SFTP error: %1 - SFTP 错误: %1 - - - Package upload failed: Could not open file. - 包上传失败:无法打开文件。 - - - Failed to upload package: %2 - 上传包失败: %2 - - - - RemoteLinux - - Updateable Project Files - 可更新的项目文件 - - - Maemo Deployment Issue - Maemo部署问题 - - - The project files listed below do not contain deployment information, which means the respective targets cannot be deployed to and/or run on a device. Qt Creator will add the missing information to these files if you check the respective rows below. - 以下列出的项目文件不包含部署信息, 意味着对应的目标无法在设备上部署或者运行。如果您在下面检选了对应的行,Qt Creator会添加缺失的信息到这些文件中。 - - - &Check all - 选中全部(&C) - - - &Uncheck All - 全部取消选中(&U) - - - - RemoteLinux - - Cannot run: %1 - 无法运行: %1 - - - Killing remote process(es)... - 正在结束远程进程... - - - - RemoteLinux - - Run custom remote command - 执行自定义的远程命令 - - - - RemoteLinux - - No command line given. - 没有给定命令行。 - - - Starting remote command '%1'... - 启动远端命令'%1'...... - - - Remote process failed to start. - 远端进程启动失败。 - - - Remote process was killed by a signal. - 远端进程收到信号退出。 - - - Remote process finished with exit code %1. - 远端进程完成,退出代码'%1'。 - - - Remote command finished successfully. - 远端命令成功完成。 - - - - RemoteLinux - - Deploy to Remote Linux Host - 部署到远程Linux主机 - - - Linux Devices - Linux 设备 - - - - RemoteLinux - - <b>%1 using device</b>: %2 - <b>%1 使用设备</b>: %2 - - - - RemoteLinux - - Connection error: %1 - 连接错误:%1 - - - Error running remote process: %1 - 运行远程程序发生错误:%1 - - - -Remote stderr was: '%1' - -远程stderr为:'%1' - - - - RemoteLinux - - Start Remote Debug Server... - 启动远程调试服务... - - - Start Gdbserver - 启动 Gdb服务 - - - - RemoteLinux - - Remote Error - 远程错误 - - - - RemoteLinux - - Command Line - 命令行 - - - Error: Remote process failed to start: %1 - 错误:远程进程启动失败: %1 - - - Error: Remote process crashed: %1 - 错误:远程进程崩溃: %1 - - - Remote process failed. - 远端进程失败。 - - - -Remote stderr was: %1 - -远程stderr 是: %1 - - - - RemoteLinux - - Public key error: %1 - 公钥错误: %1 - - - Key deployment failed: %1. - 部署密钥失败:%1。 - - - - RemoteLinux - - Could not retrieve list of free ports: - 无法获取可用端口列表: - - - Starting gdbserver... - 启动 gdb服务... - - - Port %1 is now accessible. - 端口 %1 现可使用. - - - Process gdbserver finished. Status: %1 - gdb服务进程完毕. 状态: %1 - - - - RemoteLinux - - Packaging finished successfully. - 打包顺利完成。 - - - Packaging failed. - 打包失败。 - - - Creating tarball... - 创建tarball... - - - Tarball up to date, skipping packaging. - 归档文件已经是最新, 跳过打包。 - - - Error: tar file %1 cannot be opened (%2). - 错误: tar 文件%1 无法被打开(%2)。 - - - No remote path specified for file '%1', skipping. - 没有为文件 '%1'指定远程路径,跳过步骤。 - - - Error writing tar file '%1': %2. - 写入tar 文件 '%1'发生错误: %2。 - - - Error reading file '%1': %2. - 读取文件'%1'错误: %2。 - - - Adding file '%1' to tarball... - 添加文件'%1' 到tarball... - - - Cannot add file '%1' to tar-archive: path too long. - 无法添加文件'%1' 到压缩包(tar-archive): 路径太长。 - - - Error writing tar file '%1': %2 - 写入tar 文件 '%1'发生错误: %2 - - - Create tarball - 创建tarball - - - - RemoteLinux - - (default) - (默认) - - - %1 (default) - %1 (默认) - - - - RemoteLinux - - No tarball creation step found. - 没有找到生成tarball所需的步骤。 - - - Deploy tarball via SFTP upload - 通过SFTP上传来部署tarball - - - - TextEditor::Internal::CodeStyleDialog - - Edit Code Style - 编辑代码风格 - - - Code style name: - 代码风格名称: - - - You cannot save changes to a built-in code style. Copy it first to create your own version. - 您无法保存修改到内建的代码风格。请先复制它然后创建您自己的版本。 - - - Copy Built-in Code Style - 复制内建代码风格 - - - %1 (Copy) - %1 (复制) - - - - TextEditor::CodeStyleSelectorWidget - - Copy... - 复制... - - - Edit... - 编辑... - - - Remove - 删除 - - - Import... - 导入... - - - Export... - 输出... - - - Current settings: - 当前设置: - - - Copy Code Style - 复制代码风格 - - - Code style name: - 代码风格名称: - - - %1 (Copy) - %1 (复制) - - - Delete Code Style - 删除代码风格 - - - Are you sure you want to delete this code style permanently? - 您确定想永久删除这项代码风格方案吗? - - - Delete - 删除 - - - Import Code Style - 导入代码风格 - - - Code styles (*.xml);;All files (*) - 代码风格(*.xml);;所有文件(*) - - - Cannot import code style from %1 - 无法从%1导入代码风格 - - - Cannot import code style - 无法导入代码风格 - - - Export Code Style - 导出代码风格 - - - %1 [proxy: %2] - %1 [代理: %2] - - - %1 [built-in] - %1 [内置] - - - Form - 界面 - - - - TextEditor::FindInFiles - - Files on File System - 在文件系统中的文件 - - - Directory '%1': - 目录'%1': - - - Path: %1 -Filter: %2 -%3 - %3 is filled by BaseFileFind::runNewSearch - 路径: %1 -过滤器: %2 -%3 - - - Director&y: - 目录(&Y): - - - &Browse... - 浏览(&B)... - - - &Browse - 浏览(&B) - - - Fi&le pattern: - 文件模式(&L): - - - Directory to search - 搜索目录 - - - - UpdateInfo::Internal::UpdateInfoPlugin - - Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually. - 无法确定维护工具所在位置,请检查安装(有可能没有手动开启插件支持)。 - - - Could not find maintenance tool at '%1'. Check your installation. - 无法在'%1'找到维护工具,请检查安装。 - - - Start Updater - 启动更新工具 - - - Update - 更新 - - - - TextEditor::CodeStyleEditor - - Edit preview contents to see how the current settings are applied to custom code snippets. Changes in the preview do not affect the current settings. - 编辑预览内容来查看当前设置如何应用到自定义代码段。在预览中修改并不影响当前设置。 - - - - VcsCommand - - -'%1' failed (exit code %2). - - -'%1' 失败 (退出代码 %2)。 - - - - -'%1' completed (exit code %2). - - -'%1' 完成 (退出代码 %2)。 - - - - - VcsBase::Command - - Error: VCS timed out after %1s. - 错误: VCS 在 %1秒后超时。 - - - Unable to start process, binary is empty - 无法启动进程,二进制为空 - - - - QSsh::SshKeyCreationDialog - - SSH Key Configuration - SSH密钥配置 + &Artistic Style + Options - 选项 + 选项 - Key algorithm: - 密钥算法: + Use file *.astylerc defined in project files + - &RSA - &RSA + Use specific config file: + - &DSA - &DSA + AStyle (*.astylerc) + - Key &size: - 密钥长度(&S): + Use file .astylerc or astylerc in HOME + - Private key file: - 私钥文件: + Use customized style: + - Browse... - 浏览... + Configuration + 配置 - Public key file: - 公钥文件: + Artistic Style command: + - &Generate And Save Key Pair - 创建并保存密钥文件对(&G) + Restrict to MIME types: + - &Cancel - 取消(&C) - - - Key Generation Failed - 密钥创建失败 - - - Choose Private Key File Name - 选择私钥文件名 - - - Cannot Save Key File - 无法保存密钥文件 - - - Failed to create directory: '%1'. - 无法创建目录:'%1'。 - - - Cannot Save Private Key File - 无法保存私钥文件 - - - The private key file could not be saved: %1 - 私钥文件无法保存:%1 - - - Cannot Save Public Key File - 无法保存公钥文件 - - - The public key file could not be saved: %1 - 公钥文件无法保存:%1 + Artistic Style + - Android + Beautifier::Internal::BeautifierPlugin - Create new AVD - 创建新AVD + Error in Beautifier: %1 + - Name: - 名称: + Cannot get configuration file for %1. + - Kit: - 工具套件(Kit): + Format &Current File + Menu entry + - SD card size: - SD卡容量: + Format &Selected Text + Menu entry + - MiB - MiB + &Format at Cursor + Menu entry + - Create a keystore and a certificate - 创建一个密钥存储库和一个证书 + Format &Line(s) + Menu entry + - Keystore - 密钥存储库 + &Disable Formatting for Selected Text + Menu entry + - Password: - 密码: + %1 Command + File dialog title for path chooser when choosing binary + + + + + Beautifier::Internal::ClangFormat + + &ClangFormat + - Retype password: - 再次输入密码: + ClangFormat + - Show password - 显示密码 + Options + 选项 - <span style=" color:#ff0000;">Password is too short</span> - <span style=" color:#ff0000;">密码太短</span> + Use customized style: + - Certificate - 证书 + Use predefined style: + - Alias name: - 别名: + Fallback style: + - Aaaaaaaa; - Aaaaaaaa; + Configuration + 配置 - Keysize: - 密钥长度: + Clang Format command: + - Validity (days): - 有效期(天数): + Restrict to MIME types: + - Certificate Distinguished Names - 证书的特别(distinguished)名称 + Clang Format + - First and last name: - 全名: + Use file uncrustify.cfg defined in project files + - Organizational unit (e.g. Necessitas): - Necessitas is the Qt Android porting - 组织和单位(如Necessitas): + Use file specific uncrustify.cfg + - Organization (e.g. KDE): - 组织(如KDE): + Uncrustify file (*.cfg) + - City or locality: - 城市或地点: + Use file uncrustify.cfg in HOME + - State or province: - 州或省: + Format entire file if no text was selected + - Two-letter country code for this unit (e.g. RO): - 单位的两字母的国家代码(如RO): + For action Format Selected Text + - >AA; - >AA; + Uncrustify command: + - Form - 界面 + Uncrustify + + + + + Beautifier::Internal::ClangFormatSettings + + No description available. + + + + + Beautifier::Internal::ConfigurationDialog + + Name + - Use Qt libraries from device - 使用设备上的Qt库 + Value + - Push local Qt libraries to device. -You must have Qt libraries compiled for that platform - 将本地Qt库推送到设备。 -您必须有为该平台的编译Qt库 + Documentation + 文档 - Deploy local Qt libraries - 部署本地的Qt库 + Documentation for "%1" + + + + Beautifier::Internal::ConfigurationPanel - Check this option to force the application to use local Qt libraries instead of system libraries. - 检选此选项强制程序使用本地的Qt库替代系统库。 - - - Use local Qt libraries - 使用本地Qt库 - - - Edit Rules File - 编辑规则文件 - - - Choose and install Ministro system wide Qt shared libraries. -This option is useful when you want to try your application on devices which don't have Android Market (e.g. Android Emulator). - 选择并安装Ministro系统范围的Qt共享库。 -该选项在您想要在设备上试验您的程序但没有Android Market(如Android模拟器)时很有用。 - - - Install Ministro, system-wide Qt shared libraries installer - 安装Ministro - 系统范围的Qt共享库安装工具 - - - Choose APK - 选择APK - - - Manifest - Manifest - - - <b>Android target SDK:</b> - <b>Android 目标 SDK:</b> - - - <b>Package name:</b> - <b>包名:</b> - - - <p align="justify">Please choose a valid package name for your application (e.g. "org.example.myapplication").</p> -<p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p> -<p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.</p> -<p align="justify">Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.</p> - <p align="justify">请为您的应用程序选择一个有效的包名(如 "org.example.myapplication")。</p> -<p align="justify">包通常用层次性命名规则来定义,层次用英文句点(‘.’,读做"点")来分隔。</p> -<p align="justify">通常情况下,包名由组织的顶层域名打头,接着是组织的域名,然后是反向排列的子域名。之后组织可以为包选择一个特定的名称。包名必须全部为小写字母。</p> -<p align="justify">在网络域名不能直接用作包名时,如何解决包名的二义性和命名包的规则的完整惯例说明可以在“Java语言规范”的Section7.7找到。</p> - - - <b>Version code:</b> - <b>版本号:</b> - - - <b>Version name:</b> - <b>版本名称:</b> - - - 1.0.0 - 1.0.0 - - - Application - 应用程序 - - - <b>Application name:</b> - <b>程序的名称:</b> - - - <b>Run:</b> - <b>运行:</b> - - - <b>Application icon:</b> - <b>程序的图标:</b> - - - Select low dpi icon - 选择低解析度的图标 - - - Select medium dpi icon - 选择中等解析度的图标 - - - Select high dpi icon - 选择高解析度的图标 - - - Permissions - 权限 - - - Add - 添加 + Edit + 编辑 Remove - 删除 + 删除 - Save - 保存 + Add + 添加 - Discard - 丢弃 + Add Configuration + - Libraries - + Edit Configuration + + + + + Beautifier::Internal::GeneralOptionsPageWidget + + Enable auto format on file save + - Automatically check required Qt libraries from compiled application - 从编译好的程序中自动检查需要的Qt库 + Tool: + - Read information from application (must be compiled) - 从应用程序读取信息(必须编译程序) + Restrict to MIME types: + - Required Qt libraries - 需要Qt库 + Restrict to files contained in the current project + - <center>Prebundled libraries</center> -<p align="justify">Please be aware that the order is very important: If library <i>A</i> depends on library <i>B</i>, <i>B</i> <b>must</b> go before <i>A</i>.</p> - <center>预打包的库</center> -<p align="justify">请注意顺序非常重要: 如果库<i>A</i> 依赖于库<i>B</i>,则<i>B</i> <b>必须</b> 出现在 <i>A</i>之前。</p> + Automatic Formatting on File Save + - Up - 上移 + General + 概要 + + + + Beautifier::Internal::Uncrustify + + &Uncrustify + + + + + BinEditor + + Cannot open %1: %2 + 无法打开%1 : %2 - Down - 下移 + File Error + 文件错误 - Sign package - 包签名 + The Binary Editor cannot open empty files. + 二进制编辑无法打开空文件。 - Keystore: - 密钥存储库: + The file is too big for the Binary Editor (max. 32GB). + - Create - 创建 + &Redo + - Browse - 浏览 + Memory at 0x%1 + - Open package location after is complete - 完成后打开包所在的位置 + Decimal&nbsp;unsigned&nbsp;value: + 十进制&nbsp;无符号&nbsp;数值: - Certificate alias: - 证书别名: + Decimal&nbsp;signed&nbsp;value: + 十进制&nbsp;有符号&nbsp;数值: - Android Configuration - Android配置 + Previous&nbsp;decimal&nbsp;unsigned&nbsp;value: + 上一个&nbsp;十进制&nbsp;无符号&nbsp;数值: - Android SDK location: - Android SDK的路径: + Previous&nbsp;decimal&nbsp;signed&nbsp;value: + 上一个&nbsp;十进制&nbsp;有符号&nbsp;数值: - Android NDK location: - Android NDK的路径: + %1-bit&nbsp;Integer&nbsp;Type + %1-bit&nbsp;整数&nbsp;类型 - Android NDK tool chain version: - Android NDK 工具链的版本: + Little Endian + Little Endian - Ant location: - Ant的路径: + Big Endian + Big Endian - ARM GDB location: - ARM GDB的路径: + Binary&nbsp;value: + 二进制&nbsp;数值: - ARM GDB server location: - ARM GDB 服务器的路径: + Octal&nbsp;value: + 八进制&nbsp;数值: - x86 GDB location: - x86 GDB的路径: + Previous&nbsp;binary&nbsp;value: + 上一个&nbsp;二进制&nbsp;数值: - x86 GDB server location: - x86 GDB服务器的路径: + Previous&nbsp;octal&nbsp;value: + 上一个&nbsp;八进制&nbsp;数值: - OpenJDK location: - OpenJDK的路径: + <i>double</i>&nbsp;value: + <i>双精度浮点数</i>&nbsp;数值: - Start - 启动 + Previous <i>double</i>&nbsp;value: + 上一个<i>双精度浮点数</i>&nbsp;数值: - AVD Manager - AVD管理器 + <i>float</i>&nbsp;value: + <i>浮点数</i>&nbsp;数值: - System/data partition size: - 系统/数据分区的大小: + Previous <i>float</i>&nbsp;value: + 上一个<i>浮点数</i>&nbsp;数值: - Mb - Mb + Zoom: %1% + - Start Android AVD Manager - 启动Android AVD管理器 + Copying Failed + 复制失败 + + + You cannot copy more than 4 MB of binary data. + 您不能复制超过 4 MB 的二进制数据。 + + + Copy Selection as ASCII Characters + 复制选中部分作为 ASCII 字符串 + + + Copy Selection as Hex Values + 复制选中部分作为十六进制值 + + + Set Data Breakpoint on Selection + 选中时设置数据断点 + + + Copy 0x%1 + + + + Jump to Address in This Window + 在当前窗口中跳转到地址 + + + Jump to Address in New Window + 在新窗口中跳转到地址 + + + Copy Value + + + + Jump to Address 0x%1 in This Window + 在当前窗口中跳转到地址 0x%1 + + + Jump to Address 0x%1 in New Window + 在新窗口中跳转到地址 0x%1 + + + + BinEditor::Internal::BinEditorPlugin + + &Undo + 撤销(&U) + + + + BookmarkDialog + + Add Bookmark + 添加书签 + + + New Folder + 新建文件夹 + + + Bookmark: + 书签: + + + Add in folder: + 添加到文件夹: + + + Bookmarks + 书签 + + + Delete Folder + 删除文件夹 + + + Rename Folder + 重命名文件夹 + + + + BookmarkManager + + Bookmarks + 书签 + + + Remove + 删除 + + + Deleting a folder also removes its content.<br>Do you want to continue? + 删除文件夹会同时删除文件夹下的文件。<br>您确定继续吗? + + + New Folder + 新建文件夹 + + + + BookmarkWidget + + Delete Folder + 删除文件夹 + + + Rename Folder + 重命名文件夹 + + + Show Bookmark + 显示书签 + + + Show Bookmark as New Page + 在新页面显示书签 + + + Delete Bookmark + 删除书签 + + + Rename Bookmark + 重命名书签 + + + + Bookmarks + + Bookmarks + 书签 + + + Move Up + 向上移动 + + + Move Down + 向下移动 + + + &Remove + 删除(&R) + + + Remove All + 全部删除 + + + &Bookmarks + 书签(&B) + + + Toggle Bookmark + 切换书签 + + + Ctrl+M + Ctrl+M + + + Meta+M + Meta+M + + + Previous Bookmark + 上个书签 + + + Ctrl+, + Ctrl+, + + + Meta+, + Meta+, + + + Next Bookmark + 下个书签 + + + Ctrl+. + Ctrl+. + + + Meta+. + Meta+. + + + Previous Bookmark in Document + 文档中的上个书签 + + + Next Bookmark in Document + 文档中的下个书签 + + + Alt+Meta+M + Alt+Meta+M + + + Alt+M + Alt+M + + + Bookmark + + + + Matches all bookmarks. Filter by file name, by the text on the line of the bookmark, or by the bookmark's note text. + + + + &Edit + 编辑(&E) + + + Remove All Bookmarks + + + + Are you sure you want to remove all bookmarks from all files in the current session? + + + + Edit Bookmark + + + + Note text: + + + + Line number: + 行号: + + + Meta+Shift+M + + + + Ctrl+Shift+M + + + + + Boot2Qt + + Boot2Qt: %1 + + + + + BrowserWindow + + Edit + 编辑 + + + Copy + 复制 + + + URL: + URL: + + + Browse... + 浏览... + + + Open File + 打开文件 + + + Enter location + + + + + BuildConfiguration + + Release + The name of the release build configuration created by default for a qmake project. + + + + Debug + The name of the debug build configuration created by default for a qmake project. + + + + Profile + The name of the profile build configuration created by default for a qmake project. + + + + + BuildSettingsPanel + + Build Settings + 构建设置 + + + + ButtonSpecifics + + Button + + + + Text + 文本 + + + Text displayed on the button. + + + + Checked + + + + State of the button. + + + + Checkable + + + + Determines whether the button is checkable or not. + + + + Enabled + 启用 + + + Determines whether the button is enabled or not. + + + + Default button + + + + Sets the button as the default button in a dialog. + + + + Tool tip + + + + The tool tip shown for the button. + + + + Focus on press + + + + Determines whether the button gets focus if pressed. + + + + Icon source + + + + The URL of an icon resource. + + + + + CMakeProjectManager + + Clear system environment + 清除系统环境变量 + + + Build + 构建 + + + Clean Environment + 清除环境变量 + + + System Environment + 系统环境变量 + + + Generator: + 创建器: + + + Run CMake + 执行CMake + + + CMake + CMake + + + Targets: + 目标: + + + Build CMake target + 构建 CMake 目标 + + + Initial Configuration + + + + Current Configuration + + + + Kit Configuration + + + + Edit the current kit's CMake configuration. + + + + Filter + 过滤器 + + + &Add + 添加(&A) + + + Add a new configuration value. + + + + &Boolean + + + + &String + + + + &Directory + + + + &File + 文件(&F) + + + &Edit + 编辑(&E) + + + Edit the current CMake configuration value. + + + + &Set + + + + Set a value in the CMake configuration. + + + + &Unset + 取消设置(&U) + + + Unset a value in the CMake configuration. + + + + &Reset + 重置(&R) + + + Reset all unapplied changes. + + + + Batch Edit... + + + + Set or reset multiple values in the CMake configuration. + + + + Advanced + 高级 + + + <UNSET> + <未设定> + + + Edit CMake Configuration + + + + Enter one CMake <a href="variable">variable</a> per line.<br/>To set or change a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>To unset a variable, use -U&lt;variable&gt;.<br/> + + + + Re-configure with Initial Parameters + + + + Clear CMake configuration and configure with initial parameters? + + + + Do not ask again + 下次不再询问 + + + Kit CMake Configuration + + + + Configure + 配置 + + + Stop CMake + + + + bool + display string for cmake type BOOLEAN + + + + file + display string for cmake type FILE + + + + directory + display string for cmake type DIRECTORY + + + + string + display string for cmake type STRING + + + + Force to %1 + + + + Help + 帮助 + + + Apply Kit Value + + + + Apply Initial Configuration Value + + + + Copy + 复制 + + + Changing Build Directory + + + + Change the build directory to "%1" and start with a basic CMake configuration? + + + + The CMake flag for the development team + + + + The CMake flag for the provisioning profile + + + + The CMake flag for the architecture on macOS + + + + The CMake flag for QML debugging, if enabled + + + + Minimum Size Release + + + + Release with Debug Information + + + + Profile + + + + Additional CMake <a href="options">options</a>: + + + + Build type: + + + + Current executable + + + + Build the executable used in the active run configuration. Currently: %1 + + + + Target: %1 + + + + CMake arguments: + + + + Tool arguments: + + + + Enable automatic provisioning updates: + + + + Tells xcodebuild to create and download a provisioning profile if a valid one does not exist. + + + + Target + 目标 + + + The build configuration is currently disabled. + + + + A CMake tool must be set up for building. Configure a CMake tool in the kit options. + + + + There is a CMakeCache.txt file in "%1", which suggest an in-source build was done before. You are now building in "%2", and the CMakeCache.txt file might confuse CMake. + + + + Persisting CMake state... + + + + Running CMake in preparation to build... + + + + Project did not parse successfully, cannot build. + + + + Build + ConfigWidget display name. + 构建 + + + CMake Build + Display name for CMakeProjectManager::CMakeBuildStep id. + + + + Copy to Clipboard? + + + + Files are not automatically added to the CMakeLists.txt file of the CMake project. +Copy the path to the source files to the clipboard? + + + + The kit needs to define a CMake tool to parse this project. + + + + Apply configuration changes? + + + + Run CMake with configuration changes? + + + + <b>CMake configuration failed<b><p>The backup of the previous configuration has been restored.</p><p>Issues and "Projects > Build" settings show more information about the failure.</p + + + + <b>Failed to load project<b><p>Issues and "Projects > Build" settings show more information about the failure.</p + + + + Scan "%1" project tree + + + + Failed to create build directory "%1". + + + + No CMake tool set up in kit. + + + + The remote CMake executable cannot write to the local build directory. + + + + Failed to open %1 for reading. + + + + <No CMake Tool available> + + + + CMake Tool + + + + The CMake Tool to use when building a project with CMake.<br>This setting is ignored when using other build systems. + + + + Unconfigured + 未配置 + + + Path to the cmake executable + + + + CMake version %1 is unsupported. Update to version 3.14 (with file-api) or later. + + + + Change... + + + + Platform + 平台 + + + Toolset + + + + CMake Generator + + + + Extra generator: + + + + Platform: + + + + Toolset: + + + + <none> + <无> + + + CMake <a href="generator">generator</a> + + + + CMake generator defines how a project is built when using CMake.<br>This setting is ignored when using other build systems. + + + + CMake Tool is unconfigured, CMake generator will be ignored. + + + + CMake Tool does not support the configured generator. + + + + Platform is not supported by the selected CMake generator. + + + + Toolset is not supported by the selected CMake generator. + + + + The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects. + + + + <Use Default Generator> + + + + Generator: %1<br>Extra generator: %2 + + + + Platform: %1 + + + + Toolset: %1 + + + + Enter one CMake <a href="variable">variable</a> per line.<br/>To set a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING. + + + + CMake Configuration + + + + Default configuration passed to CMake when setting up a project. + + + + CMake configuration has no path to qmake binary set, even though the kit has a valid Qt version. + + + + CMake configuration has a path to a qmake binary set, even though the kit has no valid Qt version. + + + + CMake configuration has a path to a qmake binary set that does not match the qmake binary path configured in the Qt version. + + + + CMake configuration has no CMAKE_PREFIX_PATH set that points to the kit Qt version. + + + + CMake configuration has no path to a C compiler set, even though the kit has a valid tool chain. + + + + CMake configuration has a path to a C compiler set, even though the kit has no valid tool chain. + + + + CMake configuration has a path to a C compiler set that does not match the compiler path configured in the tool chain of the kit. + + + + CMake configuration has no path to a C++ compiler set, even though the kit has a valid tool chain. + + + + CMake configuration has a path to a C++ compiler set, even though the kit has no valid tool chain. + + + + CMake configuration has a path to a C++ compiler set that does not match the compiler path configured in the tool chain of the kit. + + + + Builds a target of any open CMake project. + + + + Open CMake target + + + + Jumps to the definition of a target of any open CMake project. + + + + The source directory %1 is not reachable by the CMake executable %2. + + + + The build directory %1 is not reachable by the CMake executable %2. + + + + The build directory "%1" does not exist + + + + CMake executable "%1" and build directory "%2" must be on the same device. + + + + Running %1 in %2. + + + + Configuring "%1" + + + + CMake process failed to start. + + + + CMake process was canceled by the user. + + + + CMake process crashed. + + + + CMake process exited with exit code %1. + + + + No cmake tool set. + + + + No compilers set in kit. + + + + CMakeUserPresets.json cannot re-define the %1 preset: %2 + + + + Build preset %1 is missing a corresponding configure preset. + + + + Failed to load %1: %2 + + + + Unexpected source directory "%1", expected "%2". This can be correct in some situations, for example when importing a standalone Qt test, but usually this is an error. Import the build anyway? + + + + Clear CMake Configuration + + + + Rescan Project + + + + Build File + 构建文件 + + + Build File "%1" + 构建文件"%1" + + + Ctrl+Alt+B + Ctrl+Alt+B + + + Build File is not supported for generator "%1" + + + + CMake Modules + + + + Target type: + + + + No build artifacts + + + + Build artifacts: + + + + Build "%1" + 构建 "%1" + + + CMake + SnippetProvider + CMake + + + Version: %1 + 版本: %1 + + + Supports fileApi: %1 + + + + yes + + + + no + + + + Detection source: "%1" + + + + (Default) + + + + CMake executable path does not exist. + + + + CMake executable path is not a file. + + + + CMake executable path is not executable. + + + + CMake executable does not provide required IDE integration features. + + + + Name + + + + Path + + + + Manual + 手动设置 + + + CMake .qch File + + + + Autorun CMake + + + + Automatically run CMake after changes to CMake project files. + + + + Name: + 名称: + + + Path: + 路径: + + + Version: + 版本: + + + Help file: + + + + Add + 添加 + + + Clone + 克隆 + + + Remove + 删除 + + + Make Default + 设置为默认 + + + Set as the default CMake Tool to use when creating a new kit or when no value is set. + + + + Clone of %1 + %1 的克隆 + + + New CMake + + + + Ask about copying file paths + + + + Do not copy file paths + + + + Copy file paths + + + + Determines whether file paths are copied to the clipboard for pasting to the CMakeLists.txt file when you add new files to CMake projects. + + + + Package manager auto setup + + + + Add the CMAKE_PROJECT_INCLUDE_BEFORE variable pointing to a CMake script that will install dependencies from the conanfile.txt, conanfile.py, or vcpkg.json file from the project source directory. + + + + Ask before re-configuring with initial parameters + + + + Show subfolders inside source group folders + + + + General + 概要 + + + Adding Files + + + + Version not parseable + + + + Searching CMake binaries... + + + + Found "%1" + + + + Removing CMake entries... + + + + Removed "%1" + + + + CMake: + + + + System CMake at %1 + + + + Key + 密钥 + + + Value + + + + Kit: + + + + Initial Configuration: + + + + Current Configuration: + + + + Not in CMakeCache.txt + + + + Type: + 类型: + + + Select a file for %1 + + + + Select a directory for %1 + + + + <Build Directory> + + + + <Other Locations> + + + + Failed to set up CMake file API support. %1 cannot extract project information. + + + + Invalid reply file created by CMake. + + + + Invalid cache file generated by CMake. + + + + Invalid cmakeFiles file generated by CMake. + + + + Invalid codemodel file generated by CMake: No directories. + + + + Invalid codemodel file generated by CMake: Empty directory object. + + + + Invalid codemodel file generated by CMake: No projects. + + + + Invalid codemodel file generated by CMake: Empty project object. + + + + Invalid codemodel file generated by CMake: Broken project data. + + + + Invalid codemodel file generated by CMake: Empty target object. + + + + Invalid codemodel file generated by CMake: Broken target data. + + + + Invalid codemodel file generated by CMake: No configurations. + + + + Invalid codemodel file generated by CMake: Empty configuration object. + + + + Invalid codemodel file generated by CMake: Broken indexes in directories, projects, or targets. + + + + Invalid codemodel file generated by CMake. + + + + Invalid target file: Information is missing. + + + + Invalid target file generated by CMake: Broken indexes in target details. + + + + CMake parsing was canceled. + + + + No "%1" CMake configuration found. Available configurations: "%2". +Make sure that CMAKE_CONFIGURATION_TYPES variable contains the "Build type" field. + + + + No "%1" CMake configuration found. Available configuration: "%2". +Make sure that CMAKE_BUILD_TYPE variable matches the "Build type" field. + + + + CMake returned error code: %1 + + + + Failed to rename %1 to %2. + + + + Failed to copy %1 to %2. + + + + Failed to read %1 file + + + + Invalid %1 file + + + + Invalid "version" in %1 file + + + + Invalid "configurePresets" section in %1 file + + + + Invalid "buildPresets" section in %1 file + + + + <File System> + + + + + CMakeProjectManager::Tr::Tr + + Tools + + + + + CPlusPlus::CheckSymbols + + Only virtual functions can be marked 'final' + + + + Expected a namespace-name + 应为命名空间的名称 + + + Too many arguments + + + + + CPlusplus::CheckSymbols + + Only virtual functions can be marked 'override' + + + + + CVS + + Annotate revision "%1" + 注释修订版本 "%1" + + + Ignore Whitespace + 忽略空白 + + + Ignore Blank Lines + + + + &Edit + 编辑(&E) + + + CVS Checkout + CVS Checkout + + + Triggers a CVS version control operation. + + + + &CVS + CVS(&C) + + + Diff Current File + Diff 当前文件 + + + Diff "%1" + Diff "%1" + + + Meta+C,Meta+D + Meta+C,Meta+D + + + Alt+C,Alt+D + Alt+C,Alt+D + + + Filelog Current File + Filelog当前文件 + + + Filelog "%1" + + + + Annotate Current File + + + + Annotate "%1" + + + + Add + 添加 + + + Add "%1" + + + + Meta+C,Meta+A + Meta+C,Meta+A + + + Alt+C,Alt+A + Alt+C,Alt+A + + + Commit Current File + 提交当前文件 + + + Commit "%1" + 提交 "%1" + + + Meta+C,Meta+C + Meta+C,Meta+C + + + Alt+C,Alt+C + Alt+C,Alt+C + + + Delete... + 删除... + + + Delete "%1"... + 删除 "%1"... + + + Revert... + 还原... + + + Revert "%1"... + 还原 "%1"... + + + Edit + 编辑 + + + Edit "%1" + 编辑"%1" + + + Unedit + Unedit + + + Unedit "%1" + Unedit "%1" + + + Unedit Repository + Unedit代码仓库 + + + Diff Project + Diff 项目 + + + Diff Project "%1" + Diff 项目 "%1" + + + Project Status + 项目状态 + + + Status of Project "%1" + 项目 "%1" 的状态 + + + Log Project + Log 项目 + + + Log Project "%1" + Log 项目 "%1" + + + Update Project + 更新项目 + + + Update Project "%1" + + + + Commit Project + + + + Commit Project "%1" + + + + Update Directory + + + + Update Directory "%1" + + + + Commit Directory + + + + Commit Directory "%1" + + + + Diff Repository + + + + Repository Status + + + + Repository Log + 仓库日志 + + + Update Repository + + + + Commit All Files + 提交所有文件 + + + Revert Repository... + + + + Revert Repository + + + + Revert all pending changes to the repository? + + + + Revert failed: %1 + 还原失败: %1 + + + The file has been changed. Do you want to revert it? + + + + Another commit is currently being executed. + 另一个提交正在被执行。 + + + There are no modified files. + + + + Would you like to discard your changes to the repository "%1"? + + + + Would you like to discard your changes to the file "%1"? + + + + Project status + 项目状态 + + + Repository status + 仓库状态 + + + Cannot find repository for "%1". + + + + The initial revision %1 cannot be described. + 初始修订版本 %1 无法被描述。 + + + Parsing of the log output failed. + + + + Could not find commits of id "%1" on %2. + + + + No CVS executable specified. + + + + CVS Command + CVS 命令 + + + CVS command: + CVS 命令: + + + CVS root: + CVS 路径: + + + Describe all files matching commit id + 描述提交id匹配的所有文件 + + + When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit ID). Otherwise, only the respective file will be displayed. + 选中此项后,点击注释视图中(通过commit ID获取)的某个修订版本号时,所有该commit涉及的文件都将被显示。否则,仅显示对应的文件。 + + + CVS + CVS + + + Configuration + 配置 + + + Miscellaneous + 其他 + + + Added + 已添加 + + + Removed + 已删除 + + + Modified + 已更改 + + + + CameraToggleAction + + Toggle Perspective/Orthographic Edit Camera + + + + + ChangeStyleWidgetAction + + Change style for Qt Quick Controls 2. + + + + Change style for Qt Quick Controls 2. Configuration file qtquickcontrols2.conf not found. + + + + + CheckBoxSpecifics + + Check Box + + + + Text + 文本 + + + Text shown on the check box. + + + + Checked + + + + State of the check box. + + + + Focus on press + + + + Determines whether the check box gets focus if pressed. + + + + + Clang Tools + + Custom Configuration + + + + + ClangCodeModel + + Component + + + + Total Memory + + + + Update + 更新 + + + + ClangCodeModel::Internal::ClangCodeModelPlugin + + Generating Compilation DB + + + + Clang Code Model + + + + Generate Compilation Database + + + + Generate Compilation Database for "%1" + + + + Clang compilation database generated at "%1". + + + + Generating Clang compilation database failed: %1 + + + + + ClangCodeModel::Internal::ClangModelManagerSupport + + The use of clangd for the C/C++ code model was disabled, because it is likely that its memory requirements would be higher than what your system can handle. + + + + With clangd enabled, Qt Creator fully supports modern C++ when highlighting code, completing symbols and so on.<br>This comes at a higher cost in terms of CPU load and memory usage compared to the built-in code model, which therefore might be the better choice on older machines and/or with legacy code.<br>You can enable/disable and fine-tune clangd <a href="dummy">here</a>. + + + + Enable Anyway + + + + Cannot use clangd: Failed to generate compilation database: +%1 + + + + + ClangCodeModel::Internal::ClangProjectSettingsWidget + + Parse templates in a MSVC-compliant way. This helps to parse headers for example from Active Template Library (ATL) or Windows Runtime Library (WRL). +However, using the relaxed and extended rules means also that no highlighting/completion can be provided within template functions. + + + + Enable MSVC-compliant template parsing + + + + + ClangCodeModel::Internal::ClangdClient + + clangd + + + + Indexing %1 with clangd + + + + Indexing session with clangd + + + + Memory Usage + + + + Location: %1 + Parent folder for proposed #include completion + + + + collecting overrides ... + + + + <base declaration> + + + + + ClangCodeModel::Internal::ClangdFindReferences + + C++ Usages: + C++ 使用: + + + Re&name %n files + + + + + + Files: +%1 + + + + + ClangDiagnosticConfig + + Project: %1 (based on %2) + + + + Changes applied in Projects Mode > Clang Code Model + + + + + ClangDiagnosticConfigsModel + + Default Clang-Tidy and Clazy checks + + + + Checks for questionable constructs + + + + Build-system warnings + + + + + ClangDiagnosticWidget + + [Source: %1] + + + + Clazy Issue + + + + Clang-Tidy Issue + + + + + ClangFormat::ClangFormatConfigWidget + + Clang-Format Style + + + + + ClangFormat::ClangFormatGlobalConfigWidget + + ClangFormat global setting: + + + + Formatting mode: + + + + Format while typing + + + + Format edited code on file save + + + + Override Clang Format configuration file + + + + Indenting only + + + + Full formatting + + + + Disable + 禁用 + + + The current project has its own .clang-format file which can be overridden by the settings below. + + + + Override Clang Format configuration file with the chosen configuration. + + + + + ClangFormat::ClangFormatPlugin + + Open Used .clang-format Configuration File + + + + The ClangFormat plugin has been built against an unmodified Clang. You might experience formatting glitches in certain circumstances. See https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/README.md for more information. + + + + + ClangFormatStyleFactory + + ClangFormat + + + + + ClangTools::Diagnostic + + Category: + + + + Type: + 类型: + + + Description: + 说明: + + + Location: + + + + Fixit status: + + + + Steps: + + + + Documentation: + + + + + ClangTools::ExplainingStep + + Message: + 消息: + + + Location: + + + + + ClangTools::Internal::BaseChecksTreeModel + + Web Page + + + + + ClangTools::Internal::ClangTidyRunner + + Clang-Tidy + + + + + ClangTools::Internal::ClangTool + + Analyze Project... + + + + Analyze Current File + + + + Go to previous diagnostic. + + + + Go to next diagnostic. + + + + Load diagnostics from YAML files exported with "-export-fixes". + + + + Clear + + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + Filter Diagnostics + + + + Apply Fixits + + + + Clang-Tidy and Clazy use a customized Clang executable from the Clang project to search for diagnostics. + + + + Clang-Tidy and Clazy + + + + Clang-Tidy and Clazy... + + + + Release + + + + Run %1 in %2 Mode? + 在%2 模式下运行%1吗? + + + You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used in Debug mode since enabled assertions can reduce the number of false positives. + + + + Do you want to continue and run the tool in %1 mode? + + + + Clang-Tidy and Clazy tool stopped by user. + + + + Cannot analyze current file: No files open. + + + + Cannot analyze current file: "%1" is not a known source file. + + + + Select YAML Files with Diagnostics + + + + YAML Files (*.yml *.yaml);;All Files (*) + + + + Error Loading Diagnostics + + + + Set a valid Clang-Tidy executable. + + + + Set a valid Clazy-Standalone executable. + + + + Project "%1" is not a C/C++ project. + + + + Open a C/C++ project to start analyzing. + + + + Failed to build the project. + + + + Failed to start the analyzer. + + + + All Files + + + + Opened Files + + + + Edited Files + + + + Failed to analyze %n file(s). + + + + + + Analyzing... + + + + Analyzing... %1 of %n file(s) processed. + + + + + + Analysis stopped by user. + + + + Finished processing %n file(s). + + + + + + Diagnostics imported. + + + + %1 diagnostics. %2 fixits, %3 selected. + + + + No diagnostics. + + + + In general, the project should be built before starting the analysis to ensure that the code to analyze is valid.<br/><br/>Building the project might also run code generators that update the source files as necessary. + + + + Info About Build the Project Before Analysis + + + + + ClangTools::Internal::ClangToolRunWorker + + Failed to build the project. + + + + No code model data available for project. + + + + The project configuration changed since the start of the %1. Please re-run with current configuration. + + + + Failed to create temporary directory: %1. + + + + Running %1 on %2 with configuration "%3". + + + + Analyzing + + + + Analyzing "%1" [%2]. + + + + Failed to start runner "%1". + + + + Failed to analyze "%1": %2 + + + + Error: Failed to analyze %n files. + + + + + + Note: You might need to build the project to generate or update source files. To build automatically, enable "Build the project before analysis". + + + + %1 finished: Processed %2 files successfully, %3 failed. + + + + + ClangTools::Internal::ClangToolRunner + + An error occurred with the %1 process. + + + + %1 crashed. + %1 崩溃。 + + + %1 finished with exit code: %2. + + + + Command line: %1 +Process Error: %2 +Output: +%3 + + + + + ClangTools::Internal::ClangToolsOptionsPage + + Clang Tools + + + + + ClangTools::Internal::ClangToolsPlugin + + Clang Tools + + + + Analyze File + + + + + ClangTools::Internal::ClangToolsProjectSettingsWidget + + Restore Global Settings + + + + Go to Analyzer + + + + Remove Selected + + + + Remove All + 全部删除 + + + Suppressed diagnostics + + + + + ClangTools::Internal::ClazyChecks + + See <a href="https://github.com/KDE/clazy">Clazy's homepage</a> for more information. + + + + Filters + 过滤器 + + + Reset Topic Filter + + + + Checks + + + + Enable lower levels automatically + + + + When enabling a level explicitly, also enable lower levels (Clazy semantic). + + + + Could not query the supported checks from the clazy-standalone executable. +Set a valid executable first. + + + + + ClangTools::Internal::ClazyChecksTreeModel + + Manual Level: Very few false positives + + + + Level 0: No false positives + + + + Level 1: Very few false positives + + + + Level 2: More false positives + + + + Level 3: Experimental checks + + + + Level %1 + + + + + ClangTools::Internal::ClazyStandaloneRunner + + Clazy + + + + + ClangTools::Internal::DiagnosticConfigsWidget + + Checks + + + + Clang-Tidy Checks + + + + Clazy Checks + + + + Edit Checks as String... + + + + View Checks as String... + + + + Checks (%n enabled, some are filtered out) + + + + + + Checks (%n enabled) + + + + + + + ClangTools::Internal::DiagnosticMark + + Copy to Clipboard + + + + Disable Diagnostic + + + + + ClangTools::Internal::DiagnosticView + + Filter... + 过滤器... + + + Clear Filter + + + + Filter for This Diagnostic Kind + + + + Filter out This Diagnostic Kind + + + + Web Page + + + + Suppress Selected Diagnostics + + + + Suppress This Diagnostic + + + + Disable These Checks + + + + Disable This Check + + + + + ClangTools::Internal::FilterChecksModel + + Check + + + + + ClangTools::Internal::FilterDialog + + Filter Diagnostics + + + + Select All + 全选 + + + Select All with Fixits + + + + Clear Selection + 清空选择 + + + Select the diagnostics to display. + + + + + ClangTools::Internal::RunSettingsWidget + + Build the project before analysis + + + + Analyze open files + + + + Run Options + + + + Parallel jobs: + + + + + ClangTools::Internal::SelectableFilesDialog + + Files outside of the base directory + + + + Files to Analyze + + + + Analyze + 分析 + + + + ClangTools::Internal::SettingsWidget + + Clang-Tidy Executable + + + + Clazy Executable + + + + Executables + + + + Clang-Tidy: + + + + Clazy-Standalone: + + + + + ClangTools::Internal::SuppressedDiagnosticsModel + + File + 文件 + + + Diagnostic + + + + + ClangTools::Internal::TidyChecks + + Select Checks + + + + Use .clang-tidy config file + + + + Edit Checks as String... + + + + Could not query the supported checks from the clang-tidy executable. +Set a valid executable first. + + + + + ClangTools::Internal::TidyChecksTreeModel + + Options + 选项 + + + + ClangTools::Internal::TidyOptionsDialog + + Options for %1 + + + + Option + + + + Value + + + + Add Option + + + + Remove Option + + + + <new option> + + + + + ClangToolsDiagnosticModel + + No Fixits + + + + Not Scheduled + + + + Invalidated + + + + Scheduled + + + + Failed to Apply + + + + Applied + + + + + ClangUtils + + Could not retrieve build directory. + + + + Could not create "%1": %2 + + + + + ClangdTextMark + + Code Model Error + + + + Code Model Warning + + + + Copy to Clipboard + Clang Code Model Marks + + + + Disable Diagnostic in Current Project + + + + + ClassView::Internal::NavigationWidget + + Show Subprojects + 显示子项目 + + + + ClassView::Internal::NavigationWidgetFactory + + Class View + 类视图 @@ -41003,7 +7828,6 @@ This option is useful when you want to try your application on devices which don Use &Hijacked file - Hijack: Unset read-only flag without check-out. This is used for local changes which the user does not want to commit. 使用&Hijack文件 @@ -41018,10 +7842,6 @@ This option is useful when you want to try your application on devices which don Diff Diff - - &Graphical (Single file only) - &Graphical (仅单个文件) - &External 外部(&E) @@ -41050,10 +7870,6 @@ This option is useful when you want to try your application on devices which don &Automatically check out files on edit 编辑时自动checkout文件(&A) - - Check this if you have a trigger that renames the activity automatically. You will not be prompted for activity name - 如果您需要自动命名activity则检选此项,这样将不会弹出activity名称的提示 - Aut&o assign activity names 自动指定activity的名称(&O) @@ -41068,13 +7884,8 @@ This option is useful when you want to try your application on devices which don &Index only VOBs: - VOB: Versioned Object Base 仅对下列VOB索引(&i): - - VOBs list, separated by comma. Indexer will only traverse the specified VOBs. If left blank, all active VOBs will be indexed - VOB的列表,用逗号分隔。索引器仅遍历指定的VOB。如果为空,则所有活动的VOB都会被索引 - ClearCase ClearCase @@ -41095,2968 +7906,18 @@ This option is useful when you want to try your application on devices which don Confirm Version to Check Out 确定checkout的版本 - - There are multiple versions of '%1' which can be considered for checkout. Please select version to checkout: - 多个版本的'%1'可供检出,请选择一个版本: - - - &Loaded Version - 载入的版本(&L) - Created by: 创建人: Created on: - Date 创建于: Version after &update 更新之后的版本(&U) - - <html><head/><body><p><b>NOTE: You will not be able to check in this file without merging the changes (not supported by the plugin)</b></p></body></html> - <html><head/><body><p><b>注意: 在合并修改之前您将无法checkin此文件(插件不支持)</b></p></body></html> - - - - Core::Internal::CommandMappings - - Command Mappings - 命令映射 - - - Command - 命令 - - - Label - 标签 - - - Target - 目标 - - - Reset all to default - 重置所有为默认 - - - Reset All - 重置所有 - - - Import... - 导入... - - - Export... - 导出... - - - Target Identifier - 目标标识符 - - - Target: - 目标: - - - Reset to default - 重置为默认 - - - Reset - 重置 - - - - Core::Internal::MimeTypeSettingsPage - - Form - 界面 - - - Registered MIME Types - 已注册的MIME 类型 - - - Reset all to default. - 重置所有为默认值。 - - - Reset All - 重置所有 - - - Details - 详情 - - - Patterns: - 模式: - - - Magic Header - Magic Header - - - Type - 类型 - - - Range - 范围 - - - Priority - 优先级 - - - Add... - 添加... - - - Edit... - 编辑... - - - Remove - 删除 - - - - Core::RemoveFileDialog - - Remove File - 删除文件 - - - File to remove: - 要删除的文件: - - - &Delete file permanently - 彻底删除文件(&D) - - - &Remove from Version Control - 从版本控制系统中删除(&R) - - - - Core::Internal::VariableChooser - - Variables - 变量 - - - Select a variable to insert. - 选择一个变量来插入。 - - - - CodePaster - - Form - 界面 - - - The fileshare-based paster protocol allows for sharing code snippets using simple files on a shared network drive. Files are never deleted. - 基于fileshare的剪贴板协议允许在共享的网络驱动器上以文件的方式共享代码片段。文件永远不会被删除。 - - - &Path: - 路径(&P): - - - &Display: - 显示(&D): - - - entries - - - - <a href="http://pastebin.com">pastebin.com</a> allows for sending posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix. - <a href="http://pastebin.com">pastebin.com</a> 允许发送主题到自定义子域名,(比如. creator.pastebin.com),请输入您希望的前缀。 - - - Server prefix: - 服务器前缀: - - - <i>Note: The plugin will use this for posting as well as fetching.</i> - <i>注意: 插件将会使用它来获取和发布。</i> - - - Protocol: - 协议: - - - Paste: - 粘贴: - - - Send to Codepaster - 发送到CodePaster - - - &Username: - 用户名(&U): - - - <Username> - <用户名> - - - &Description: - 说明(&D): - - - <Description> - <说明> - - - <!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:9pt; 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;">&lt;Comment&gt;</p></body></html> - <!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:9pt; 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;">&lt;注释&gt;</p></body></html> - - - Parts to Send to Server - 发送到服务器的部分 - - - Patch 1 - Patch 1 - - - Patch 2 - Patch 2 - - - Display Output pane after sending a post - 发送后显示输出对话框 - - - Copy-paste URL to clipboard - 复制/粘帖URL到剪贴板 - - - Username: - 用户名: - - - Default protocol: - 默认协议: - - - - CppTools::Internal::CppFileSettingsPage - - Header suffix: - 头文件后缀名: - - - Source suffix: - 源文件后缀名: - - - Lower case file names - 小写文件名 - - - License template: - 许可协议模板: - - - - Debugger - - Behavior - 行为 - - - Use alternating row colors in debug views - 在调试视图交替行的颜色 - - - Change the font size in the debugger views when the font size in the main editor changes. - 当主编辑器的字体改变时,调试器视图自动调整字体大小。 - - - Debugger font size follows main editor - 调试器字体和主编辑器一致 - - - Use tooltips in main editor while debugging - 当调试时在主编辑器中启用工具提示 - - - Populate the source file view automatically. This might slow down debugger startup considerably. - 自动填充源文件视图,这将在很大程度上延缓调试器的启动。 - - - Populate source file view automatically - 自动填充源文件视图 - - - Close temporary buffers on debugger exit - 在调试器退出时关闭临时缓冲区 - - - Switch to previous mode on debugger exit - 在调试器退出时切换到上一个模式 - - - Bring Qt Creator to foreground when application interrupts - 应用程序中断时将Qt Creator提到前台 - - - Show QML object tree in Locals & Expressions when connected and not stepping. - 在已连接而非单步调试的情况下,在“局部变量和表达式”中显示QML对象树。 - - - Show QML object tree - 显示QML对象树 - - - Enable a full file path in breakpoints by default also for the GDB - 为GDB同样默认开启断点中的完整路径 - - - Breakpoints full path by default - 默认为断点的完整路径 - - - Register Qt Creator for debugging crashed applications. - 注册 Qt Creator 来调试崩溃的应用。 - - - Use Qt Creator for post-mortem debugging - 使用 Qt Creator 进行崩溃后(post-mortem)调试 - - - Maximum stack depth: - 最大堆栈深度: - - - <unlimited> - <无限制> - - - Stop when %1() is called - 当%1()被调用时停止 - - - Always add a breakpoint on the <i>%1()</i> function. - 总是在函数 <i>%1()</i> 处添加断点。 - - - - Debugger - - Enable LLDB - 启用LLDB - - - Use GDB Python dumpers - 使用Gdb python dumper - - - - RemoteLinux - - Has a passwordless (key-based) login already been set up for this device? - 这个设备已经设置了不需要密码(密钥验证)登录吗? - - - Yes, and the private key is located at - 是的,私钥保存在 - - - No - - - - - RemoteLinux - - Choose build configuration: - 选择构建配置: - - - Only create source package, do not upload - 仅创建源码包,不要上传 - - - - RemoteLinux - - Choose Package Contents - 选择软件包内容 - - - <b>Please select the files you want to be included in the source tarball.</b> - - <b>请选择您想包含到源码包当中去的文件。</b> - - - - Progress - 进度 - - - OpenGL Mode - OpenGL 模式 - - - &Hardware acceleration - 硬件加速(&H) - - - &Software rendering - 软件渲染(&S) - - - &Auto-detect - 自动检测(&A) - - - - ProjectExplorer::Internal::CodeStyleSettingsPropertiesPage - - Form - 界面 - - - Language: - 语言: - - - - ProjectExplorer::Internal::DeviceFactorySelectionDialog - - Device Configuration Wizard Selection - 设备设置向导选择 - - - Available device types: - 可用的设备类型: - - - Start Wizard - 开启向导 - - - - ProjectExplorer::Internal::DeviceSettingsWidget - - Linux Device Configurations - Linux 设备设置 - - - &Device: - 设备(&D): - - - General - 概要 - - - &Name: - 名称(&N): - - - Type: - 类型: - - - Auto-detected: - 自动检测: - - - Current state: - 当前状态: - - - Type Specific - 类型特定 - - - &Add... - 添加(&A)... - - - &Remove - 删除(&R) - - - Set As Default - 设置为默认 - - - Yes (id is "%1") - 是的 (id为 "%1") - - - No - - - - Remote Processes - 远程进程 - - - - QmlDesigner::Internal::BehaviorDialog - - Dialog - 对话框 - - - Type: - 类型: - - - ID: - ID: - - - Property name: - 属性名称: - - - Animation - 动画 - - - SpringFollow - 弹性随动 - - - Settings - 设置 - - - Duration: - 持续时间: - - - Curve: - 曲线: - - - easeNone - easeNone - - - Source: - 源: - - - Velocity: - 速率: - - - Spring: - 弹性: - - - Damping: - 阻尼: - - - - texteditv2 - - text edit - 编辑文本 - - - - textinputv2 - - text - 文本 - - - - textv2 - - text - 文本 - - - - Tracing - - Selection - 选择 - - - Start - 启动 - - - - Qnx - - Icon: - 图标: - - - Splash screens - 闪屏 - - - Landscape: - 横屏(landscape): - - - Portrait: - 竖屏(portrait): - - - Images - 图片 - - - Images (*.jpg *.png) - 图片 (*.jpg *.png) - - - <font color="red">Could not open '%1' for reading.</font> - <font color="red">无法打开并读取 '%1'。</font> - - - <font color="red">Incorrect icon size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">图标大小不正确(%1x%2)。最大尺寸为%3x%4 像素。</font> - - - <font color="red">Incorrect landscape splash screen size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">横屏下闪屏尺寸不正确(%1x%2)。最大尺寸为%3x%4 像素。</font> - - - <font color="red">Incorrect portrait splash screen size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">竖屏下闪屏尺寸不正确(%1x%2)。最大尺寸为%3x%4 像素。</font> - - - - Qnx - - Packages to deploy: - 要部署的包: - - - - Qnx - - &Device name: - 设备名(&D): - - - IP or host name of the device - 设备的IP或者主机名称 - - - Device &password: - 设备的密码(&P): - - - Show password - 显示密码 - - - Debug token: - 调试标记(token): - - - Private key file: - 私钥文件: - - - - Qnx - - WizardPage - 向导页面 - - - The name to identify this configuration: - 标识配置的名称: - - - The device's host name or IP address: - 设备的域名或者IP地址: - - - Device password: - 设备的密码: - - - Device type: - 设备类型: - - - Physical device - 物理设备 - - - Simulator - 模拟器 - - - Connection Details - 连接详情 - - - Public key file: - 公钥文件: - - - Generate - 创建 - - - SSH Key Setup - SSH密钥设置 - - - Please select an existing <b>4096</b>-bit key or click <b>Generate</b> to create a new one. - 请选择一个已经存在的 <b>4096</b>位密钥,或者点击<b>“创建”</b>来创建一个新的密钥。 - - - Key Generation Failed - 密钥创建失败 - - - - Qnx - - Device: - 设备: - - - Package: - 包: - - - - Qnx - - SDK: - SDK: - - - - QmakeProjectManager - - Make arguments: - Make 参数: - - - qmake build configuration: - qmake 构建配置: - - - Additional arguments: - 额外的参数: - - - Link QML debugging library: - 链接QML 调试库: - - - Effective qmake call: - 有效的qmake调用: - - - Main HTML File - 主HTML 文件 - - - Generate an index.html file - 创建一个index.html 文件 - - - Import an existing .html file - 导入一个现有的.html 文件 - - - Load a URL - 载入一个URL - - - http:// - http:// - - - Note: Unless you chose to load a URL, all files and directories that reside in the same directory as the main HTML file are deployed. You can modify the contents of the directory any time before deploying. - 注意:除非您选择载入一个URL,所有在与主HTML文件在同一目录下的文件和目录都将被部署。您可以在部署之前的任何时间修改目录的内容。 - - - Touch optimized navigation - 触摸优化的导航 - - - Enable touch optimized navigation - 开启触摸优化的导航 - - - Touch optimized navigation will make the HTML page flickable and enlarge the area of touch sensitive elements. If you use a JavaScript framework which optimizes the touch interaction, leave the checkbox unchecked. - “触摸优化的导航”使 HTML 页面可以用手指拂动(flickable),或放大触摸敏感的元素的区域。如果您使用一个优化触摸互动的JavaScript 框架,那么不要检选此项。 - - - Application icon (80x80): - 应用程序图标 (80x80): - - - Generate code to speed up the launching on the device. - 生成代码来加速设备上的启动速度。 - - - Make application boostable - 使应用程序加速启动 - - - Plugin's directory name: - 插件的目录名: - - - - QtSupport - - Debugging Helper Build Log - 调试助手构建日志 - - - - RemoteLinux - - Authentication type: - 验证类型: - - - &Key - 密钥(&K) - - - &Host name: - 主机名称(&H): - - - IP or host name of the device - 设备的IP或者主机名称 - - - &SSH port: - SSH端口(&S): - - - Free ports: - 空闲端口: - - - You can enter lists and ranges like this: 1024,1026-1028,1030 - 您可以输入列表或者范围,输入形式如:1024,1026-1028,1030 - - - Timeout: - 超时时间: - - - s - - - - &Username: - 用户名(&U): - - - &Password: - 密码(&P): - - - Show password - 显示密码 - - - Private key file: - 私钥文件: - - - Create New... - 创建新密钥... - - - Machine type: - 机器类型: - - - Physical Device - 物理设备 - - - Emulator - 模拟器 - - - You will need at least one port. - 您需要至少一个端口。 - - - - RemoteLinux - - WizardPage - 向导页面 - - - The name to identify this configuration: - 标识配置的名称: - - - The device's host name or IP address: - 设备的域名或者IP地址: - - - The user name to log into the device: - 登录设备的用户名: - - - The authentication type: - 验证类型: - - - Key - 密钥 - - - The user's password: - 用户密码: - - - The file containing the user's private key: - 包含用户私钥的文件: - - - - RemoteLinux - - Device Test - 设备测试 - - - - RemoteLinuxCheckForFreeDiskSpaceStepWidget - - Form - 界面 - - - Remote path to check for free space: - 检测剩余空间的远程路径: - - - Required disk space: - 需要的磁盘空间: - - - - RemoteLinux - - Form - 界面 - - - Files to deploy: - 部署文件: - - - These show the INSTALLS settings from the project file(s). - 显示来自于项目文件的安装(INSTALLS)设置。 - - - Files to install for subproject: - 为子项目需要安装的文件: - - - - TextEditor::Internal::BehaviorSettingsPage - - Form - 界面 - - - - TextEditor::BehaviorSettingsWidget - - Typing - 打字 - - - Enable automatic &indentation - 开启自动缩进(&) - - - Backspace indentation: - 退格缩进: - - - <html><head/><body> -Specifies how backspace interacts with indentation. - -<ul> -<li>None: No interaction at all. Regular plain backspace behavior. -</li> - -<li>Follows Previous Indents: In leading white space it will take the cursor back to the nearest indentation level used in previous lines. -</li> - -<li>Unindents: If the character behind the cursor is a space it behaves as a backtab. -</li> -</ul></body></html> - - <html><head/><body> -指定退格键如何与缩进互动。 - -<ul> -<li>无: 没有任何互动,正常的退格键行为。 -</li> - -<li>跟随上次的缩进: 在行首的空白处,依据之前行的缩进将光标移回最近一个缩进层次。 -</li> - -<li>反缩进: 如果光标之后的字符是空格,则表现为 backtab。 -</li> -</ul></body></html> - - - - None - - - - Follows Previous Indents - 跟随之前的缩进 - - - Unindents - 反缩进 - - - Tab key performs auto-indent: - 制表符(Tab键)提供自动缩进: - - - Never - 从不 - - - Always - 总是 - - - In Leading White Space - 用于行首空白 - - - Cleanup actions which are automatically performed right before the file is saved to disk. - 文件保存到磁盘上之后会自动执行的清理动作。 - - - Cleanups Upon Saving - 保存时清理 - - - Removes trailing whitespace upon saving. - 保存时去除尾部空白。 - - - &Clean whitespace - 清除空白(&C) - - - Clean whitespace in entire document instead of only for changed parts. - 清除整个文档的空白,而不只是清除改变部分的空白。 - - - In entire &document - 用于整个文档(&D) - - - Correct leading whitespace according to tab settings. - 根据tab设置修正行首的空白。 - - - Clean indentation - 清除缩进 - - - Always write a newline character at the end of the file. - 总是在文件结尾留一行空白行。 - - - &Ensure newline at end of file - 确保文件结尾有新的一行(&E) - - - File Encodings - 文件编码 - - - Default encoding: - 默认编码: - - - <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> - <html><head/><body> -<p>文本编辑器如何处理 UTF-8的字节顺序标记(Byte Order Marks)。选项是:</p> -<ul ><li><i>如果编码是 UTF-8:</i> 当保存为UTF-8 编码时总是添加BOM。如果编码是<i>System</i>这将不会工作,因为 Qt Creator 不知道它的确切编码是什么。</li> -<li><i>如果已经存在则保持: </i>如果文件载入时已经有BOM,则保存文件时仍带BOM。</li> -<li><i>总是删除:</i> 从来不写UTF-8 BOM, 还有可能删除已经存在的。</li></ul> -<p>注意UTF-8 BOM并不常用,某些编辑器可能会处理错误,所以通常情况下添加的意义不大。</p> -<p>此项设置 <b>不</b> 影响UTF-16 和UTF-32 BOM的使用。</p></body></html> - - - Add If Encoding Is UTF-8 - 如果编码是UTF-8则添加 - - - Keep If Already Present - 目前存在了则保留 - - - Always Delete - 总是删除 - - - UTF-8 BOM: - UTF-8 BOM: - - - Mouse and Keyboard - 鼠标和键盘 - - - Enable &mouse navigation - 开启鼠标导航(&M) - - - Enable scroll &wheel zooming - 开启鼠标滚轮缩放(&W) - - - Enable built-in camel case &navigation - 开启内建的驼峰大小写导航(&N) - - - Show help tooltips: - 显示帮助工具提示: - - - On Mouseover - 在鼠标悬停时 - - - On Shift+Mouseover - 在Shift+鼠标悬停时 - - - Press Alt to display context-sensitive help or type information as tooltips. - 在按下Alt键时以工具提示的方式显示上下文相关的帮助或者类型信息。 - - - Using keyboard shortcut (Alt) - 使用键盘快捷键(Alt) - - - - TextEditor::Internal::CodeStyleSelectorWidget - - Form - 界面 - - - Current settings: - 当前设置: - - - Copy... - 复制... - - - Edit... - 编辑... - - - Remove - 删除 - - - Export... - 导出... - - - Import... - 导入... - - - - TextEditor::DisplaySettingsPage - - Text Wrapping - 文字折行 - - - Enable text &wrapping - 开启文字折行(&W) - - - Display right &margin at column: - 显示右边空白(&margin)在列: - - - Display - 显示 - - - Display line &numbers - 显示行号(&N) - - - Highlight current &line - 高亮显示当前行(&L) - - - Display &folding markers - 显示折叠标记(&F) - - - Highlight &blocks - 高亮显示段落(&B) - - - Mark &text changes - 标记文本改变(&T) - - - Show tabs and spaces. - 显示制表符和空白。 - - - &Visualize whitespace - 标示空白(&V) - - - &Animate matching parentheses - 动画显示对应的括号(&A) - - - Center &cursor on scroll - 滚动时居中光标(&C) - - - Auto-fold first &comment - 自动折叠开头的注释(&C) - - - - TextEditor::Internal::HighlighterSettingsPage - - Form - 界面 - - - <html><head/><body> -<p>Highlight definitions are provided by the <a href="http://kate-editor.org/">Kate Text Editor</a>.</p></body></html> - <html><head/><body> -<p><a href="http://kate-editor.org/">Kate文本编辑器</a>提供的高亮定义。</p></body></html> - - - Syntax Highlight Definition Files - 语法高亮定义文件 - - - Location: - 路径: - - - Use fallback location - 使用备用路径 - - - Behavior - 行为 - - - Alert when a highlight definition is not found - 当未找到高亮定义时显示提示 - - - Ignored file patterns: - 被忽略的文件模式: - - - - TextEditor::Internal::SnippetsSettingsPage - - Form - 界面 - - - Group: - 组: - - - Add - 添加 - - - Remove - 删除 - - - Revert Built-in - 还原到内置(Built-in) - - - Restore Removed Built-ins - 恢复被删除的内置 - - - Reset All - 重置所有 - - - - TextEditor::TabSettingsWidget - - Form - 界面 - - - Tabs And Indentation - 制表符和缩进 - - - Tab policy: - 制表符策略: - - - Spaces Only - 仅空格 - - - Tabs Only - 仅制表符 - - - Mixed - 混合 - - - Ta&b size: - 制表符尺寸(&B): - - - &Indent size: - 缩进尺寸(&i): - - - Align continuation lines: - 对齐连续的行: - - - <html><head/><body> -Influences the indentation of continuation lines. - -<ul> -<li>Not At All: Do not align at all. Lines will only be indented to the current logical indentation depth. -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>With Spaces: Always use spaces for alignment, regardless of the other indentation settings. -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>With Regular Indent: Use tabs and/or spaces for alignment, as configured above. -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - <html><head/><body> -改变连续行的缩进 - -<ul> -<li>不对齐: 不进行对齐。代码行只根据当前逻辑缩进深度进行缩进。 -<pre> -(tab)int i = foo(a, b -(tab)c, d); -</pre> -</li> - -<li>用空格对齐: 总是用空格进行对齐,忽略其他缩进设置。 -<pre> -(tab)int i = foo(a, b -(tab) c, d); -</pre> -</li> - -<li>用一般的缩进对齐: 根据上面的设置使用制表符或空格进行对齐。 -<pre> -(tab)int i = foo(a, b -(tab)(tab)(tab) c, d); -</pre> -</li> -</ul></body></html> - - - Not At All - 不对齐 - - - With Spaces - 用空格对齐 - - - With Regular Indent - 用一般的缩进对齐 - - - - Todo - - Keyword - 关键字 - - - Icon - 图标 - - - Color - 颜色 - - - errorLabel - dont need to translate - errorLabel - - - Keyword cannot be empty, contain spaces, colons, slashes or asterisks. - 关键字不能为空,包含空格、冒号、斜杠或者星号。 - - - There is already a keyword with this name. - 已经有一个同名关键字。 - - - - Todo - - Form - 界面 - - - Keywords - 关键字 - - - Add - 添加 - - - Edit - 编辑 - - - Remove - 删除 - - - Reset - 重置 - - - Scanning scope - 扫描范围 - - - Scan in the whole project - 在整个项目中扫描 - - - Scan in the current opened file - 在当前打开的文件中扫描 - - - - VcsBase::Internal::BaseCheckoutWizardPage - - WizardPage - 向导页面 - - - Repository - 代码仓库 - - - The remote repository to check out. - 要检出的远程仓库。 - - - Branch: - 分支: - - - The development branch in the remote repository to check out. - 要检出的远程仓库中的开发分支。 - - - Retrieve list of branches in repository. - 获取仓库中的分支列表。 - - - ... - ... - - - Working Copy - 工作拷贝 - - - The path in which the directory containing the checkout will be created. - 将要创建的包含检出代码的目录的路径。 - - - Checkout path: - 检出路径: - - - The local directory that will contain the code after the checkout. - 检出之后将会包含代码的本地目录。 - - - Checkout directory: - 检出目录: - - - - VcsBase::Internal::CleanDialog - - Clean Repository - 清空代码仓库 - - - - VcsBase::Internal::CommonSettingsPage - - Wrap submit message at: - 提交信息折行在: - - - characters - 字符 - - - An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. - 一个可执行档,以保存在临时文件中的提交信息为首参数进行调用。当提交失败时应以非零值退出并在标准错误中输出信息。 - - - Submit message &check script: - 提交信息检查脚本(&C): - - - A file listing user names and email addresses in a 4-column mailmap format: -name <email> alias <email> - 一个列出用户名和电子邮件地址的文件,使用四列的邮件映射格式: -名字 <电子邮件> 别名 <电子邮件> - - - User/&alias configuration file: - 用户/别名配置文件(&A): - - - A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. - 一个包含了如 ”Reviewed-By:" 等字段名的简单文件,其内容会被添加在提交编辑器的下面。 - - - User &fields configuration file: - 用户字段配置文件(&F): - - - &Patch command: - 补丁命令(&P): - - - Specifies a command that is executed to graphically prompt for a password, -should a repository require SSH-authentication (see documentation on SSH and the environment variable SSH_ASKPASS). - 指定一条执行图形化提示密码的命令, -会在代码仓库要求 SSH 身份验证的时候用到。(查看 SSH 和环境变量 SSH_ASKPASS 的相关文档)。 - - - &SSH prompt command: - SSH 提示命令(&S): - - - - develop - - Develop - 开发 - - - Recent Projects - 最近使用的项目 - - - Open Project - 打开项目 - - - - examples - - Examples - 示例 - - - - gettingstarted - - Getting Started - 入门 - - - User Interface - 用户界面 - - - - tutorials - - Tutorials - 教程 - - - - Delegate - - Tags: - 标签: - - - - SessionItem - - Clone - 克隆 - - - Rename - 重命名 - - - Delete - 删除 - - - - Sessions - - %1 (last session) - %1 (最后的会话) - - - %1 (current session) - %1 (当前会话) - - - - QmlDebug::QmlOutputParser - - The port seems to be in use. - Error message shown after 'Could not connect ... debugger:" - 端口可能被占用。 - - - The application is not set up for QML/JS debugging. - Error message shown after 'Could not connect ... debugger:" - 应用没有被设置为支持QML/JS 调试。 - - - - StaticAnalysisMessages - - do not use '%1' as a constructor - 不要把'%1'当作构造函数使用 - - - invalid value for enum - 无效的枚举值 - - - enum value must be a string or a number - 枚举值必须是一个字符串或者是一个数字 - - - number value expected - 期望数值类型的数据 - - - boolean value expected - 期望布尔类型的数据 - - - string value expected - 期望字符串类型的数据 - - - invalid URL - 无效URL - - - file or directory does not exist - 文件或目录不存在 - - - invalid color - 无效颜色 - - - anchor line expected - 期望锚点(anchor)行 - - - duplicate property binding - 重复的属性绑定 - - - id expected - 期望id - - - invalid id - 无效标识符 - - - duplicate id - 重复的标识符 - - - invalid property name '%1' - 无效的属性名 '%1' - - - '%1' does not have members - '%1' 没有成员 - - - '%1' is not a member of '%2' - '%1' 不是'%2'的成员 - - - assignment in condition - 在条件语句中赋值 - - - unterminated non-empty case block - 未结束的非空case代码块 - - - do not use 'eval' - 不要使用'eval' - - - unreachable - 无法到达 - - - do not use 'with' - 不要使用'with' - - - do not use comma expressions - 不要使用逗号表达式 - - - '%1' is already a formal parameter - '%1'已经是一个正式的参数 - - - unnecessary message suppression - 不必要的消息suppression - - - '%1' is already a function - '%1'已经是一个函数 - - - var '%1' is used before its declaration - 变量'%1'在声明之前使用 - - - '%1' is already a var - '%1'已经是一个变量 - - - '%1' is declared more than once - '%1'声明了不止一次 - - - function '%1' is used before its declaration - 函数'%1'在声明之前使用 - - - the 'function' keyword and the opening parenthesis should be separated by a single space - 'function'关键字和括号之间应该用一个空格分隔 - - - do not use stand-alone blocks - 不要使用独立的块 - - - do not use void expressions - 不要使用空(void)表达式 - - - confusing pluses - 混乱的加号 - - - confusing minuses - 混乱的减号 - - - declare all function vars on a single line - 在一行上声明所有的函数和变量 - - - unnecessary parentheses - 不必要的括号 - - - == and != may perform type coercion, use === or !== to avoid - == 和 != 可能引起强制类型转换,使用 === 或者 !== 避免此问题 - - - expression statements should be assignments, calls or delete expressions only - 表达式语句只能为赋值、调用或者删除表达式 - - - var declarations should be at the start of a function - 变量的声明应该位于函数开头 - - - only use one statement per line - 请在一行仅用一个语句 - - - unknown component - 未知组件 - - - could not resolve the prototype '%1' of '%2' - 无法分析原型%2 的%1 - - - could not resolve the prototype '%1' - 无法分析原型%1 - - - prototype cycle, the last non-repeated component is '%1' - 原型周期,最后一个不重复的组件是 '%1' - - - invalid property type '%1' - 无效的属性类型 '%1' - - - == and != perform type coercion, use === or !== to avoid - == 和 != 执行强制类型转换,使用 === 或者 !== 避免此问题 - - - calls of functions that start with an uppercase letter should use 'new' - 大写字母开头的函数的调用应当使用'new' - - - 'new' should only be used with functions that start with an uppercase letter - 'new' 只能用于大写字母开头的函数 - - - use spaces around binary operators - 请在二进制操作符周围使用空格 - - - unintentional empty block, use ({}) for empty object literal - 无意的空块,对空的对象代码请使用 ({}) - - - use %1 instead of 'var' or 'variant' to improve performance - 使用 %1代替 'var'或'variant'以提高性能 - - - missing property '%1' - 缺失属性 '%1' - - - object value expected - 期望对象的值 - - - array value expected - 期望数组的值 - - - %1 value expected - 期望%1的值 - - - maximum number value is %1 - 最大的数值是%1 - - - minimum number value is %1 - 最小的数值是%1 - - - maximum number value is exclusive - 最大的数值是排他的(exclusive) - - - minimum number value is exclusive - 最小的数值是排他的(exclusive) - - - string value does not match required pattern - 字符串不匹配需要的模式 - - - minimum string value length is %1 - 字符串的最短长度是 %1 - - - maximum string value length is %1 - 字符串的最大长度是 %1 - - - %1 elements expected in array value - 期望在数组值中出现%1个元素 - - - - QSsh::Internal::SftpChannelPrivate - - Server could not start SFTP subsystem. - 服务器无法启动 sftp 子系统。 - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Protocol version mismatch: Expected %1, got %2 - 协议版本不匹配:期望 %1,得到 %2 - - - Unknown error. - 未知错误。 - - - Created remote directory '%1'. - 创建远程目录 '%1'。 - - - Remote directory '%1' already exists. - 远程目录 '%1'已存在。 - - - Error creating directory '%1': %2 - 创建目录 '%1'时发生错误:'%2' - - - Could not open local file '%1': %2 - 无法打开本地文件 '%1':%2 - - - Remote directory could not be opened for reading. - 无法打开用于读取的远程目录。 - - - Failed to list remote directory contents. - 列出远程目录的内容失败。 - - - Failed to close remote directory. - 关闭远程目录失败。 - - - Failed to open remote file for reading. - 打开用于读取的远程文件失败。 - - - Failed to retrieve information on the remote file ('stat' failed). - 获取远程文件的信息失败('stat' 失败)。 - - - Failed to read remote file. - 读取远程文件失败。 - - - Failed to close remote file. - 关闭远程文件失败。 - - - Failed to open remote file for writing. - 打开用于写入的远程文件失败。 - - - Failed to write remote file. - 写入远程文件失败。 - - - Cannot append to remote file: Server does not support the file size attribute. - 无法附加到远程文件:服务器不支持文件大小属性。 - - - SFTP channel closed unexpectedly. - SFTP通道意外关闭。 - - - Server could not start session: %1 - 服务器无法启动会话: %1 - - - Error reading local file: %1 - 读取本地文件时发生错误:%1 - - - - QSsh::SftpFileSystemModel - - File Type - 文件类型 - - - File Name - 文件名 - - - Error getting 'stat' info about '%1': %2 - 获取'%1'的'stat'信息时发生错误: %2 - - - Error listing contents of directory '%1': %2 - 列出目录'%1'的内容时发生错误: %2 - - - - QSsh::Internal::SshChannelManager - - Invalid channel id %1 - 无效的通道 ID %1 - - - - QSsh::Internal::SshConnectionPrivate - - SSH Protocol error: %1 - SSH协议错误:%1 - - - Botan library exception: %1 - Botan库异常:%1 - - - Server identification string is %n characters long, but the maximum allowed length is 255. - - 服务器的标识字符串的长度为 %n个字符,但最大允许长度是255。 - - - - Server identification string contains illegal NUL character. - 服务器的标识字符串包含非法的空(NUL)字符。 - - - Server Identification string '%1' is invalid. - 服务器的标识字符串 '%1'无效。 - - - Server protocol version is '%1', but needs to be 2.0 or 1.99. - 服务器的协议版本为 '%1',但需要的版本是2.0或者1.99。 - - - Server identification string is invalid (missing carriage return). - 服务器的标识字符串无效(缺少回车)。 - - - Server reports protocol version 1.99, but sends data before the identification string, which is not allowed. - 服务器报告的协议版本为1.99,但在发出标识字符串之前发出了数据,这是不允许的。 - - - Unexpected packet of type %1. - 未预料的包,类型 %1。 - - - Password expired. - 密码过期。 - - - Server rejected password. - 密码被服务器拒绝。 - - - Server rejected key. - 密钥被服务器拒绝。 - - - The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED. - 服务器发出了一个未预料的类型为SSH_MSG_UNIMPLEMENTED的SSH包。 - - - Server closed connection: %1 - 连接已被服务器关闭:%1 - - - Connection closed unexpectedly. - 连接意外关闭。 - - - Timeout waiting for reply from server. - 等待Server响应超时。 - - - No private key file given. - 未给出私钥文件。 - - - Private key file error: %1 - 私钥文件错误: %1 - - - - QSsh::Ssh - - Password Required - 需要密码 - - - Please enter the password for your private key. - 请输入您的私钥密码。 - - - - QSsh::Internal::SshRemoteProcessPrivate - - Process killed by signal - 进程收到信号退出 - - - Server sent invalid signal '%1' - 服务器发出了无效的信号 '%1' - - - - Utils::BaseTreeView - - Adjust Column Widths to Contents - 按内容调整列宽 - - - - Utils::ElfReader - - '%1' is an invalid ELF object (%2) - '%1' 不是一个有效的ELF对象(%2) - - - '%1' is not an ELF object (file too small) - '%1' 不是一个有效的ELF对象(文件太小) - - - '%1' is not an ELF object - '%1' 不是一个ELF对象 - - - odd cpu architecture - 异常的cpu体系架构 - - - odd endianess - 异常的字节顺序 - - - unexpected e_shsize - 未预料到的e_shsize - - - unexpected e_shentsize - 未预料到的 e_shentsize - - - announced %n sections, each %1 bytes, exceed file size - - 公布了 %n个部分,每部分%1个字节,超出了文件的大小 - - - - string table seems to be at 0x%1 - 字符串表可能在0x%1 - - - section name %1 of %2 behind end of file - %2的段名 %1在文件末尾之后 - - - - Utils::SettingsSelector - - Add - 添加 - - - Remove - 删除 - - - Rename - 重命名 - - - Do you really want to delete the configuration <b>%1</b>? - 确定要删除此配置<b>%1</b>吗? - - - New name for configuration <b>%1</b>: - 配置的新名称 <b>%1</b>: - - - Rename... - 重命名... - - - - ZeroConf::Internal::ZConfLib - - AvahiZConfLib could not load the native library '%1': %2 - AvahiZConfLib无法载入本地库 '%1': %2 - - - %1 cannot create a client. The daemon is probably not running. - %1无法创建一个客户端。后台服务器可能没有运行。 - - - cAvahiClient, server collision. - cAvahiClient,服务器冲突。 - - - cAvahiClient, an error occurred on the client side. - cAvahiClient,客户端发生错误。 - - - cAvahiClient, still connecting, no server available. - cAvahiClient,仍在连接,没有可用的服务器。 - - - Unexpected state %1 in cAvahiClientReply. - cAvahiClientReply中出现了未预料到的状态 %1。 - - - Unexpected state %1 in cAvahiBrowseReply. - cAvahiBrowseReply中出现了未预料到的状态 %1。 - - - %1 failed to kill other daemons with '%2'. - %1 用 '%2' 杀死其他的服务器进程失败。 - - - %1 detected a file at /tmp/mdnsd, daemon startup will probably fail. - %1检测到在/tmp/mdnsd有一个文件,服务器进程启动可能会失败。 - - - %1: log of previous daemon run is: '%2'. - - %1: 上一次服务器进程运行的日志为: '%2'。 - - - - %1 failed starting embedded daemon at %2. - %1 在 %2启动内嵌的服务器进程失败。 - - - - ZeroConf - - could not load native library - 无法载入本地库 - - - skipping over avahi compatibility lib (or obsolete mdnsd) - 跳过avahi兼容性库(或过时的mdnsd) - - - *WARNING* detected an obsolete version of Apple Bonjour, either disable/uninstall it or upgrade it, otherwise zeroconf will fail - *警告* 检测到过时版本的Apple Bonjour,要么禁用/卸载它,或者将其升级,否则zeroconf将失败 - - - Zeroconf could not load a valid library, failing. - Zeroconf 无法载入有效的库,运行失败。 - - - Zeroconf giving up on non working %1 (%2). - %1不工作,Zeroconf放弃执行,(%2)。 - - - Zeroconf has no valid library, aborting connection. - Zeroconf 没有有效的库,退出连接。 - - - Zeroconf giving up on %1, switching to %2. - Zeroconf放弃载入 %1,转为 %2。 - - - Zeroconf giving up on %1, no fallback provided, aborting connection. - Zeroconf放弃载入 %1,没有提供备用库,退出连接。 - - - Trying %1... - 正在尝试 %1... - - - Zeroconf using %1 failed the initialization of the main library connection with error %2. - 使用 %1的zeroconf初始化主库连接失败,错误为 %2。 - - - Zeroconf using %1 failed because no daemon is running. - 使用 %1的zeroconf失败,因为服务器进程没在运行。 - - - Starting the Zeroconf daemon using %1 seems successful, continuing. - 用 %1启动 zeroconf服务器进程似乎成功了,继续进行。 - - - Zeroconf using %1 failed getProperty call with error %2. - 使用%1的zeroconf的getProperty调用失败,错误为 %2。 - - - Succeeded using %1. - 使用 %1成功。 - - - MainConnection could successfully create a connection using %1. - MainConnection可以使用%1成功创建一个连接。 - - - Zeroconf, unexpected start status, aborting. - zeroconf遇到了未预料到的启动状态,退出。 - - - Zeroconf detected an unexpected return status of handleEvent. - zeroconf检测到一个未预料到的handleEvent返回状态。 - - - Zeroconf for [%1] accumulated %n consecutive errors, aborting. - - [%1]的zeroconf积累了 %n个连续的错误,退出。 - - - - - ZeroConf::ServiceBrowser - - Starting Zeroconf Browsing - 启动zeroconf浏览 - - - - Analyzer::Internal::AnalyzerToolDetailWidget - - <strong>%1</strong> settings - <strong>%1</strong> 设置 - - - - Analyzer::AnalyzerRunConfigurationAspect - - Analyzer Settings - 分析器设置 - - - - Android - - Error Creating AVD - 创建AVD错误 - - - Cannot create a new AVD. No sufficiently recent Android SDK available. -Please install an SDK of at least API version %1. - 无法创建一个新的AVD。没有足够新的Android SDK。 -请安装API版本至少为 %1的 SDK。 - - - <span style=" color:#ff0000;">Passwords don't match</span> - <span style=" color:#ff0000;">密码不匹配</span> - - - <span style=" color:#00ff00;">Password is ok</span> - <span style=" color:#00ff00;">密码可用</span> - - - Keystore file name - 密钥存储库文件名 - - - Keystore files (*.keystore *.jks) - 密钥存储库文件 (*.keystore *.jks) - - - Error - 错误 - - - Deploy on Android - 部署到Android设备 - - - Deploy to Android device - AndroidDeployStep default display name - 部署到Android设备 - - - Please wait, searching for a suitable device for target:%1. - 请稍后,正在为目标搜索合适的设备: %1。 - - - Cannot deploy: no devices or emulators found for your package. - 无法部署: 没有为您的包找到设备或者模拟器。 - - - Package deploy: Running command '%1 %2'. - 包部署: 运行命令 '%1 %2'。 - - - Reason: %1 - 原因: %1 - - - Exit code: %1 - 退出代码: %1 - - - Clean old Qt libraries - 清除旧的Qt库 - - - Deploy Qt libraries. This may take some time, please wait. - 部署Qt库,这可能需要一段时间,请稍后。 - - - Qt Android smart installer installation failed - Qt Android智能安装工具安装失败 - - - Installing package onto %1. - 安装包到 %1。 - - - Package installation failed. - 包安装失败。 - - - Pulling files necessary for debugging. - 正在读取调试需要的文件。 - - - Deploy to Android device or emulator - 部署到Android设备或模拟器 - - - <b>Deploy configurations</b> - <b>Deploy 配置</b> - - - Qt Android Smart Installer - Qt Android智能安装工具 - - - Android package (*.apk) - Android包 (*.apk) - - - Run on Android - 在Android上运行 - - - Android Device - Android设备 - - - Error creating Android directory '%1'. - 创建Android目录 '%1'失败。 - - - No Qt for Android SDKs were found. -Please install at least one SDK. - 没有找到Qt Android平台的SDK。 -请至少安装一个SDK。 - - - Warning - 警告 - - - Android files have been updated automatically - Android文件已经自动更新 - - - Error creating Android templates - 无法创建Android模板 - - - Can't parse '%1' - 无法解析 '%1' - - - Can't open '%1' - 无法打开 '%1' - - - Create Android (.apk) Package - 创建Android (.apk)包 - - - Packaging for Android - 正在为Android打包 - - - Cannot create Android package: current build configuration is not Qt 4. - 无法创建Android包: 当前的构建配置不是Qt 4。 - - - Cannot find ELF information - 找不到ELF信息 - - - Cannot find '%1'. -Please make sure your application is built successfully and is selected in Application tab ('Run option'). - 找不到 '%1'。 -请确保您的程序构建成功,并且在“应用程序”标签("运行选项")中选中。 - - - Failed to run keytool - 运行keytool失败 - - - Invalid password - 非法的密码 - - - Copy Qt app & libs to Android package ... - 将Qt应用和库拷贝到Android包中... - - - Can't copy gdbserver from '%1' to '%2' - 无法将gdbserver从 '%1'复制到 '%2' - - - Creating package file ... - 创建包文件... - - - Signing package ... - 正在为包签名... - - - Failed, try again - 失败,再次尝试 - - - Release signed package created to %1 - 发布创建在 %1的已签名的包 - - - Package created. - 包创建完成。 - - - Packaging failed. - 打包失败。 - - - Packaging error: Could not start command '%1 %2'. Reason: %3 - 打包错误:无法执行命令'%1 %2'。原因: %3 - - - Packaging Error: Command '%1 %2' failed. - 打包错误:命令'%1 %2'失败。 - - - Keystore password: - 密钥存储库的密码: - - - Certificate password (%1): - 证书的密码(%1): - - - Invalid Package Name - 非法的包名 - - - The package name '%1' is not valid. -Please choose a valid package name for your application (e.g. "org.example.myapplication"). - 包名 '%1'不合法。 -请为您的程序选择一个合法的包名 (如 "org.example.myapplication")。 - - - Choose High DPI Icon - 选择高解析度的图标 - - - PNG images (*.png) - PNG 图像 (*.png) - - - Choose Medium DPI Icon - 选择中等解析度的图标 - - - Choose Low DPI Icon - 选择低解析度的图标 - - - < Type or choose a permission > - <键入或者选择一个权限> - - - <b>Package configurations</b> - <b>包配置</b> - - - Select keystore file - 选择密钥存储库文件 - - - Deploy to device - 部署到设备 - - - Copy application data - 复制应用程序的数据 - - - Failed to detect the ABIs used by the Qt version. - 检测Qt版本使用的ABI失败。 - - - Android - Qt Version is meant for Android - Android - - - Run on Android device - 在Android设备上运行 - - - Starting remote process. - 启动远端进程。 - - - Run on Android device or emulator. - 在Android设备或模拟器上运行。 - - - - -'%1' died. - - -'%1' 已死。 - - - Failed to forward C++ debugging ports. Reason: %1. - 转发C++调试端口失败。原因是: %1。 - - - Failed to forward C++ debugging ports. - 转发C++调试端口失败。 - - - Failed to forward QML debugging ports. Reason: %1. - 转发QML调试端口失败。原因是: %1。 - - - Failed to forward QML debugging ports. - 转发QML调试端口失败。 - - - Failed to start the activity. Reason: %1. - 无法开始活动。原因是: %1。 - - - Unable to start '%1'. - 无法启动 '%1'。 - - - Cannot find %1 process. - 找不到 %1进程。 - - - - -'%1' killed. - - -'%1' 被杀死。 - - - Android Configurations - Android配置 - - - AVD Name - AVD - Android Virtual Device - AVD(Android虚拟设备)名称 - - - AVD Target - AVD目标 - - - CPU/ABI - CPU/ABI - - - Android SDK Folder - Android SDK的目录 - - - "%1" does not seem to be an Android SDK top folder. - "%1"看上去不是一个Android SDK的顶层目录。 - - - "%1" does not seem to be an Android NDK top folder. - "%1"看上去不是一个Android NDK的顶层目录。 - - - Select Android SDK folder - 选择Android SDK的目录 - - - Select Android NDK folder - 选择Android NDK的目录 - - - Select ant Script - 选择ant脚本 - - - Select GDB Executable - 选择GDB执行档 - - - Select GDB Server Android Executable - 选择GDB Server的Android执行档 - - - Select OpenJDK Path - 选择OpenJDK的路径 - - - Android GCC - Android GCC - - - Android GCC for %1 - %1的Android GCC - - - Android GCC (%1-%2) - Android GCC (%1-%2) - - - NDK Root: - NDK根目录: - - - Autogen - Display name for AutotoolsProjectManager::AutogenStep id. - Autogen - - - Autogen - Autogen - - - Configuration unchanged, skipping autogen step. - 配置未改变,跳过autogen步骤。 - - - Arguments: - 参数: - - - Autogen - AutotoolsProjectManager::AutogenStepConfigWidget display name. - Autogen - - - Autoreconf - Display name for AutotoolsProjectManager::AutoreconfStep id. - Autoreconf - - - Autoreconf - Autoreconf - - - Configuration unchanged, skipping autoreconf step. - 配置未改变,跳过autoreconf步骤。 - - - Autoreconf - AutotoolsProjectManager::AutoreconfStepConfigWidget display name. - Autoreconf - - - Build - 构建 - - - New Configuration - 新配置 - - - New configuration name: - 新配置名称: - - - Build directory: - 构建目录: - - - Failed opening project '%1': Project file does not exist - 打开项目 '%1'失败: 项目文件不存在 - - - Failed opening project '%1': Project already open - 打开项目 '%1'失败:项目已经被打开 - - - Autotools Wizard - Autotool向导 - - - Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings. - 请进入您想构建项目的目录。Qt Creator 建议不要使用源目录构建。这能确保源目录干净,并且可以针对不同设定多次构建。 - - - Build Location - 构建路径 - - - Configure - Display name for AutotoolsProjectManager::ConfigureStep id. - 配置 - - - Configure - 配置 - - - Configuration unchanged, skipping configure step. - 配置未改变,跳过configure步骤。 - - - Configure - AutotoolsProjectManager::ConfigureStepConfigWidget display name. - 配置 - - - Parsing %1 in directory %2 - 正在目录 %2中分析 %1 - - - Parsing directory %1 - 正在分析目录 %1 - - - Make - Display name for AutotoolsProjectManager::MakeStep id. - Make - - - Make - Make - - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Qt Creator 需要设置一个编译器来构建。在构建套件选项里设置一个编译器。 - - - Configuration is faulty. Check the Issues view for details. - 配置错误,请检查"问题"视图获得详细信息。 - - - Make - AutotoolsProjectManager::MakeStepConfigWidget display name. - Make - - - - BinEditorDocument - - The Binary Editor cannot open empty files. - 二进制编辑无法打开空文件。 - - - File Error - 文件错误 - - - Cannot open %1: %2 - 无法打开%1 : %2 - - - - Bookmarks - - Alt+Meta+M - Alt+Meta+M - - - Alt+M - Alt+M - - - - ClearCase Select &activity: 选择活动(&A): @@ -44069,10 +7930,6 @@ Please choose a valid package name for your application (e.g. "org.example. Keep item activity 保留项的活动 - - &Check Out - &Check Out - &Hijack &Hijack @@ -44257,42 +8114,10 @@ Please choose a valid package name for your application (e.g. "org.example. Check In Check In - - Diff Selected Files - Diff 选中的文件 - - - &Undo - 撤销(&U) - - - &Redo - 重做(&R) - - - Closing ClearCase Editor - 正在关闭ClearCase编辑器 - - - Do you want to check in the files? - 您想要checkin这些文件吗? - - - The comment check failed. Do you want to check in the files? - 注释检查失败。您想要checkin这些文件吗? - - - Do you want to undo the check out of '%1'? - 您想要撤销checkout '%1'吗? - Undo Hijack File 撤销Hijack文件 - - Do you want to undo hijack of '%1'? - 您想要撤销hijack '%1'吗? - External diff is required to compare multiple files. 比较多个文件时需要外部的diff。 @@ -44365,10 +8190,6 @@ Please choose a valid package name for your application (e.g. "org.example. Enter activity headline 输入活动的标题 - - CC Indexing - CC 正在索引 - ClearCase Check In ClearCase Check In @@ -44382,47 +8203,715 @@ Please choose a valid package name for your application (e.g. "org.example. &Check In - ClearCase Command - ClearCase 命令 + Editing Derived Object: %1 + - In order to use External diff, 'diff' command needs to be accessible. - 为了使用外部的diff,'diff'命令必须可访问。 + Triggers a ClearCase version control operation. + - DiffUtils is available for free download <a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">here</a>. Please extract it to a directory in your PATH. - DiffUtils可从<a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">这里</a>免费下载。请将它解压到您的PATH的目录中。 + Do you want to undo the check out of "%1"? + + + + Do you want to undo hijack of "%1"? + + + + Updating ClearCase Index + + + + Check &Out + + + + &Graphical (single file only) + + + + VOBs list, separated by comma. Indexer will only traverse the specified VOBs. If left blank, all active VOBs will be indexed. + + + + Check this if you have a trigger that renames the activity automatically. You will not be prompted for activity name. + + + + Do &not prompt for comment during checkout or check-in + + + + Check out or check in files with no comment (-nc/omment). + + + + In order to use External diff, "diff" command needs to be accessible. + + + + DiffUtils is available for free download at http://gnuwin32.sourceforge.net/packages/diffutils.htm. Extract it to a directory in your PATH. + + + + Multiple versions of "%1" can be checked out. Select the version to check out: + + + + &Loaded version + + + + Note: You will not be able to check in this file without merging the changes (not supported by the plugin) + - CMakeProjectManager + ClearCase::Tr::Tr - Build CMake target - 构建 CMake 目标 + ClearCase Command + ClearCase 命令 + + + + Coco::CocoPlugin + + Select a Squish Coco CoverageBrowser Executable + - Choose Cmake Executable - 选择CMake 的执行档 + CoverageBrowser: + - The cmake executable is valid. - cmake的执行档无效。 + Coco instrumentation files (*.csmes) + - Please specify the path to the cmake executable. No cmake executable was found in the path. - 请指定cmake可执行档的路径,在环境变量path中没有找到cmake执行档。 + Select a Squish Coco Instrumentation File + - The cmake executable (%1) does not exist. - cmake执行档 (%1) 不存在。 + CSMes: + + + + + CodePaster + + &Code Pasting + 粘贴代码(&C) - The path %1 is not a executable. - 路径 %1 不是可执行程序。 + Paste Snippet... + 粘贴代码片段... - The path %1 is not a valid cmake. - 路径 %1 不是有效的cmake。 + Alt+C,Alt+P + Alt+C,Alt+P + + + Meta+C,Meta+P + Meta+C,Meta+P + + + Fetch Snippet... + 取得代码片段... + + + Alt+C,Alt+F + Alt+C,Alt+F + + + Meta+C,Meta+F + Meta+C,Meta+F + + + Fetch from URL... + 从URL获取... + + + Fetch from URL + 从URL获取 + + + Enter URL: + 输入URL: + + + Empty snippet received for "%1". + "%1"接收到空的片段。 + + + Refresh + 刷新 + + + Waiting for items + 等待数据项 + + + This protocol does not support listing + 此协议不支持列表 + + + General + 概要 + + + Code Pasting + 代码粘贴 + + + <Comment> + <注释> + + + Paste + 粘贴 + + + Cannot open %1: %2 + 无法打开%1 : %2 + + + %1 does not appear to be a paster file. + %1似乎不是一个粘贴(paster)文件。 + + + Error in %1 at %2: %3 + 文件 %1 在 %2发生错误: %3 + + + Please configure a path. + 请配置一个路径. + + + Fileshare + 文件共享 + + + %1 - Configuration Error + %1 - 配置错误 + + + Checking connection + 正在检查连接 + + + Connecting to %1... + 正在连接到%1... + + + The fileshare-based paster protocol allows for sharing code snippets using simple files on a shared network drive. Files are never deleted. + 基于fileshare的剪贴板协议允许在共享的网络驱动器上以文件的方式共享代码片段。文件永远不会被删除。 + + + &Path: + 路径(&P): + + + &Display: + 显示(&D): + + + entries + + + + Protocol: + 协议: + + + Paste: + 粘贴: + + + Send to Codepaster + 发送到CodePaster + + + &Username: + 用户名(&U): + + + <Username> + <用户名> + + + &Description: + 说明(&D): + + + <Description> + <说明> + + + Parts to Send to Server + 发送到服务器的部分 + + + Copy-paste URL to clipboard + 复制/粘帖URL到剪贴板 + + + Username: + 用户名: + + + Default protocol: + 默认协议: + + + %1: %2 + %1: %2 + + + Days + + + + &Expires after: + + + + Display General Messages after sending a post + + + + + CodeStyleSettingsPanelFactory + + Code Style + 代码风格 + + + + ColorToolAction + + Edit Color + + + + + ComboBoxSpecifics + + Combo Box + + + + Focus on press + + + + Determines whether the combobox gets focus if pressed. + + + + + CompilationDatabaseProjectManager::Internal::CompilationDatabaseProjectManagerPlugin + + Change Root Directory + + + + + CompilationDatabaseProjectManager::Internal::CompilationDbParser + + Scan "%1" project tree + + + + Parse "%1" project + + + + + Component + + Error exporting node %1. Cannot parse type %2. + + + + + ConanPackageManager::Internal::ConanInstallStep + + Conan install + + + + Conan file: + + + + Enter location of conanfile.txt or conanfile.py. + + + + Additional arguments: + 额外的参数: + + + Run conan install + + + + + ContentWindow + + Open Link + 打开链接 + + + Open Link as New Page + 在新页面打开连接 + + + + ContextPaneTextWidget + + Text + 文本 + + + Style + 风格 + + + ... + ... + + + + ContextPaneWidgetBorderImage + + Stretch vertically. Scales the image to fit to the available area. + 竖直拉伸,将图片在竖直方向拉伸以填满可用区域。 + + + Repeat vertically. Tiles the image until there is no more space. May crop the last image. + 垂直方向重复显示,平铺图片直到空间填满。可能会截断最后一张图片。 + + + Round. Like Repeat, but scales the images down to ensure that the last image is not cropped. + 环绕。类似重复,但会缩小图像确保最后一块图像不会被裁剪。 + + + Repeat horizontally. Tiles the image until there is no more space. May crop the last image. + 水平方向重复显示,平铺图片直到空间填满。可能会截断最后一张图片。 + + + Stretch horizontally. Scales the image to fit to the available area. + 水平拉伸,将图片水平拉伸以适应可用区域。 + + + 10 x 10 + 10 x 10 + + + + ContextPaneWidgetImage + + 10 x 10 + 10 x 10 + + + The image is scaled to fit. + + + + The image is stretched horizontally and tiled vertically. + + + + The image is stretched vertically and tiled horizontally. + + + + The image is duplicated horizontally and vertically. + + + + The image is scaled uniformly to fit without cropping. + + + + The image is scaled uniformly to fill, cropping if necessary. + + + + + ContextPaneWidgetRectangle + + Gradient + 渐变填充 + + + Color + 颜色 + + + ... + ... + + + Border + 边框 + + + + Core + + Qt + Qt + + + Environment + 环境 + + + Clear Menu + 清除菜单 + + + Show Left Sidebar + + + + Hide Left Sidebar + + + + Show Right Sidebar + + + + Hide Right Sidebar + + + + %1 > %2 Preferences... + + + + All Files (*.*) + On Windows + + + + All Files (*) + On Linux/macOS + 所有文件 (*) + + + on + + + + off + + + + Configure... + msgShowOptionsDialog + 配置... + + + Open Preferences dialog. + msgShowOptionsDialogToolTip (mac version) + + + + Open Options dialog. + msgShowOptionsDialogToolTip (non-mac version) + + + + Open From Device... + + + + Apply Chunk + 应用块 + + + Revert Chunk + 恢复块 + + + Would you like to apply the chunk? + 您想要应用块吗? + + + Would you like to revert the chunk? + 您想要恢复块吗? + + + There is no patch-command configured in the general "Environment" settings. + + + + The patch-command configured in the general "Environment" settings does not exist. + + + + Running in %1: %2 %3 + + + + Unable to launch "%1": %2 + + + + A timeout occurred running "%1" + + + + "%1" crashed. + + + + "%1" failed (exit code %2). + + + + + Core::BaseFileWizard + + File Generation Failure + 生成文件失败 + + + Existing files + 已存在的文件 + + + + Core::BaseFileWizardFactory + + Failed to open an editor for "%1". + + + + [read only] + + + + [folder] + + + + [symbolic link] + + + + The project directory %1 contains files which cannot be overwritten: +%2. + 项目目录 %1 存在着无法被覆盖的文件: +%2。 + + + + Core::CodecSelector + + Text Encoding + 文本编码 + + + The following encodings are likely to fit: + + + + Select encoding for "%1".%2 + 为"%1"选择编码 。%2 + + + Reload with Encoding + 按编码重新载入 + + + Save with Encoding + 按编码保存 + + + + Core::CommandMappings + + Command + 命令 + + + Label + 标签 + + + Command Mappings + 命令映射 + + + Target + 目标 + + + Reset All + + + + Reset all to default. + + + + Reset + 重置 + + + Reset to default. + 重置为默认。 + + + Import... + 导入... + + + Export... + + + + + Core::DesignMode + + Design + 设计 + + + + Core::DirectoryFilter + + Generic Directory Filter + 标准目录过滤器 + + + Matches all files from a custom set of directories. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + + + + Select Directory + 选择目录 + + + %1 filter update: 0 files + %1 过滤器更新: 0 个文件 + + + %1 filter update: %n files + + %1 过滤器更新: %n 个文件 + + + + %1 filter update: canceled + %1 过滤器更新: 已取消 @@ -44439,10 +8928,6 @@ Please choose a valid package name for your application (e.g. "org.example. Overwrite? 覆盖? - - An item named '%1' already exists at this location. Do you want to overwrite it? - 名为'%1'的项已经存在,您想要覆盖它吗? - Save File As 文件另存为 @@ -44451,36 +8936,598 @@ Please choose a valid package name for your application (e.g. "org.example. Open File 打开文件 - - File Is Read Only - 文件是只读状态 - - - The file <i>%1</i> is read only. - 文件 <i>%1</i> 是只读的。 - - - Make &Writable - 使文件可写(&W) - - - &Save As... - 另存为(&S)... - Cannot reload %1 无法重新载入%1 - - - Core::Internal::OpenEditorsViewFactory - Meta+O - Meta+O + Could not save the files. + error message + - Alt+O - Alt+O + An item named "%1" already exists at this location. Do you want to overwrite it? + + + + + Core::EditorManager + + Revert to Saved + 恢复到已保存的状态 + + + Close + 关闭 + + + Close All + 关闭所有文件 + + + Close Others + 关闭其他 + + + Split + 分栏 + + + Split Side by Side + 左右分栏 + + + Opening File + 打开文件 + + + Next Open Document in History + 历史中下个打开的文件 + + + Previous Open Document in History + 历史中先前打开的文件 + + + Go Back + 返回 + + + Go Forward + 前进 + + + Close "%1" + 关闭%1 + + + Close Editor + 关闭编辑器 + + + Close All Except "%1" + 除了%1 以外全部关闭 + + + Close Other Editors + 关闭其他编辑器 + + + File Error + 文件错误 + + + Close All Except Visible + + + + Go to Last Edit + + + + Copy Full Path + + + + Copy Path and Line Number + + + + Copy File Name + + + + &Save + 保存(&S) + + + Save &As... + 另存为(&A)... + + + Continue Opening Huge Text File? + + + + The text file "%1" has the size %2MB and might take more memory to open and process than available. + +Continue? + + + + Unpin "%1" + + + + Pin "%1" + + + + Pin Editor + + + + Open With + 用...打开 + + + Open in New Window + + + + Close Document + 关闭文档 + + + + Core::EditorToolBar + + Split + 分栏 + + + Remove Split + 删除分栏 + + + Make Writable + 使文件可写 + + + File is writable + 文件可写 + + + Drag to drag documents between splits + + + + + Core::ExternalTool + + System Environment + 系统环境变量 + + + Error while parsing external tool %1: %2 + 解析外部工具%1时发生错误: %2 + + + + Core::ExternalToolConfig + + Add + 添加 + + + Remove + 删除 + + + Reset + 重置 + + + Description: + 说明: + + + Executable: + 执行档: + + + Arguments: + 参数: + + + Working directory: + 工作目录: + + + Output: + 输出: + + + Ignore + 忽略 + + + Replace Selection + 替代选择 + + + Error output: + 错误输出: + + + Text to pass to the executable via standard input. Leave empty if the executable should not receive any input. + 通过标准输入传递给可执行文件的文本,如果可执行档不应收到任何输入则此项留白。 + + + Input: + 输入: + + + If the tool modifies the current document, set this flag to ensure that the document is saved before running the tool and is reloaded after the tool finished. + 如果工具修改了当前的文档,设置这个标志保证文档在工具运行前被保存并且在工具运行后自动重新载入文档。 + + + Modifies current document + 修改当前的文档 + + + Add Tool + 添加工具 + + + Add Category + 添加目录 + + + Uncategorized + 未分类 + + + Tools that will appear directly under the External Tools menu. + 工具会直接显示在“外部工具”菜单中。 + + + New Category + 新类别 + + + New Tool + 新工具 + + + This tool prints a line of useful text + 此工具可以打印一行有用的文本 + + + Useful text + Sample external tool text + 有用的文本 + + + Add tool. + + + + Remove tool. + + + + Revert tool to default. + + + + <html><head/><body> +<p>What to do with the executable's standard output. +<ul><li>Ignore: Do nothing with it.</li><li>Show in General Messages.</li><li>Replace selection: Replace the current selection in the current document with it.</li></ul></p></body></html> + + + + + Show in General Messages + + + + <html><head><body> +<p >What to do with the executable's standard error output.</p> +<ul><li>Ignore: Do nothing with it.</li> +<li>Show in General Messages.</li> +<li>Replace selection: Replace the current selection in the current document with it.</li> +</ul></body></html> + + + + No changes to apply. + + + + Change... + + + + Base environment: + + + + Environment: + 环境: + + + PATH=C:\dev\bin;${PATH} + + + + PATH=/opt/bin:${PATH} + + + + External Tools + 外部工具 + + + + Core::ExternalToolManager + + &External + 外部(&E) + + + Error: External tool in %1 has duplicate id + 错误: 在%1的外部工具有重复ID + + + + Core::ExternalToolRunner + + Could not find executable for "%1" (expanded "%2") + + + + Starting external tool "%1" + + + + "%1" finished + + + + "%1" finished with error + + + + + Core::FilePropertiesDialog + + Name: + 名称: + + + Path: + 路径: + + + MIME type: + + + + Default editor: + + + + Line endings: + + + + Indentation: + + + + Owner: + + + + Group: + 组: + + + Size: + + + + Last read: + + + + Last modified: + + + + Readable: + + + + Writable: + + + + Executable: + 执行档: + + + Symbolic link: + + + + Unknown + 未知 + + + Windows (CRLF) + + + + Unix (LF) + + + + Mac (CR) + + + + Mixed + 混合 + + + %1 Spaces + + + + Tabs + + + + Undefined + 未定义 + + + + Core::FileUtils + + Failed to rename the include guard in file "%1". + + + + + Core::Find + + &Find/Replace + 查找/替换(&F) + + + Advanced Find + 高级查找 + + + Open Advanced Find... + 打开高级查找... + + + Advanced... + 高级... + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + Core::FolderNavigationWidget + + Open "%1" + 打开 "%1" + + + Show Hidden Files + + + + Show Bread Crumbs + + + + Show Folders on Top + + + + Synchronize with Editor + 与编辑器同步 + + + Synchronize Root Directory with Editor + + + + New File + Title of dialog + 新建文件 + + + New Folder + 新建文件夹 + + + Remove Folder + + + + Collapse All + 折叠全部 + + + Error + 错误 + + + Computer + + + + Home + 主页 + + + Projects + 项目 + + + + Core::FolderNavigationWidgetFactory + + File System + 文件系统 + + + Meta+Y,Meta+F + + + + Alt+Y,Alt+F + + + + Options + 选项 + + + Add New... + 添加新文件... + + + Rename... + 重命名... + + + Remove... + + + + + Core::ICore + + (%1) + + + + %1 %2%3 + %1 %2%3 + + + Based on Qt %1 (%2, %3) + @@ -44490,6 +9537,79 @@ Please choose a valid package name for your application (e.g. "org.example. 文件由自动保存的备份恢复。选择“保存”来确认, 或者“恢复”回滚到已经保存的内容来丢弃修改。 + + Core::IFindFilter + + Case sensitive + 区分大小写 + + + Whole words + 全词匹配 + + + Regular expressions + 正则表达式 + + + Preserve case + + + + Flags: %1 + 标志: %1 + + + None + + + + , + + + + + Core::ILocatorFilter + + Filter Configuration + 过滤器配置 + + + Prefix: + + + + Type the prefix followed by a space and search term to restrict search to the filter. + + + + Include by default + + + + Include the filter when not using a prefix for searches. + + + + + Core::IOutputPane + + Use Regular Expressions + 使用正则表达式 + + + Case Sensitive + 区分大小写 + + + Show Non-matching Lines + + + + Filter output... + + + Core::IVersionControl @@ -44497,6 +9617,3790 @@ Please choose a valid package name for your application (e.g. "org.example. 使用VCS打开 (%1) + + Core::IWizardFactory + + Factory with id="%1" already registered. Deleting. + + + + Reload All Wizards + + + + Inspect Wizard State + + + + + Core::Internal + + Launching a file browser failed + 启动文件浏览器失败 + + + Unable to start the file manager: + +%1 + + + 无法启动文件管理器: + +%1 + + + + + Launching Windows Explorer Failed + 启动Windows Explorer 失败 + + + Could not find explorer.exe in path to launch Windows Explorer. + 在搜索路径中找不到explorer.exe,无法启动Windows Explorer。 + + + Show in Explorer + 在Explorer中显示 + + + Show in Finder + 在Finder中显示 + + + Show Containing Folder + 显示包含的目录 + + + Open Command Prompt Here + 在此弹出命令提示 + + + Open Terminal Here + 在此打开终端 + + + "%1" returned the following error: + +%2 + + + + The command for file browser is not set. + + + + Error while starting file browser. + + + + Find in This Directory... + + + + Show in File System View + + + + Open Command Prompt With + Opens a submenu for choosing an environment, such as "Run Environment" + + + + Open Terminal With + Opens a submenu for choosing an environment, such as "Run Environment" + + + + Failed to remove file "%1". + + + + + Core::Internal::ActionsFilter + + Global Actions & Actions from the Menu + + + + Triggers an action. If it is from the menu it matches any part of a menu hierarchy, separated by ">". For example "sess def" matches "File > Sessions > Default". + + + + + Core::Internal::AddToVcsDialog + + Add the file to version control (%1) + + + + Add the files to version control (%1) + + + + + Core::Internal::CommandComboBox + + Activate %1 View + + + + + Core::Internal::CorePlugin + + No themes found in installation. + + + + The current date (ISO). + + + + The current time (ISO). + + + + The current date (RFC2822). + + + + The current time (RFC2822). + + + + The current date (Locale). + + + + The current time (Locale). + + + + The configured default directory for projects. + + + + The directory last visited in a file dialog. + + + + Is %1 running on Windows? + + + + Is %1 running on OS X? + + + + Is %1 running on Linux? + + + + Is %1 running on any unix-based platform? + + + + The path list separator for the platform. + + + + The platform executable suffix. + + + + The directory where %1 finds its pre-installed resources. + + + + The current date (QDate formatstring). + + + + The current time (QTime formatstring). + + + + Generate a new UUID. + + + + A comment. + + + + Create Folder + + + + Settings File Error + + + + The settings file "%1" is not writable. +You will not be able to store any %2 settings. + + + + The file is not readable. + + + + The file is invalid. + + + + Error reading settings file "%1": %2 +You will likely experience further problems using this instance of %3. + + + + %1 collects crash reports for the sole purpose of fixing bugs. To disable this feature go to %2. + + + + %1 can collect crash reports for the sole purpose of fixing bugs. To enable this feature go to %2. + + + + > Preferences > Environment > System + + + + Edit > Preferences > Environment > System + + + + Configure... + 配置... + + + %1 uses Google Crashpad for collecting crashes and sending them to our backend for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs. + + + + More information: + + + + Crashpad Overview + + + + %1 security policy + + + + + Core::Internal::CurrentDocumentFind + + %n occurrences replaced. + + + + + + + Core::Internal::DirectoryFilterOptions + + Name: + 名称: + + + Specify a short word/abbreviation that can be used to restrict completions to files from this directory tree. +To do this, you type this shortcut and a space in the Locator entry field, and then the word to search for. + 指定用于限定此目录树的文件的关键词或者缩写。 +您可以在“定位器”的输入位置键入这个缩写和一个空格,然后输入搜索的词。 + + + Directories: + 目录: + + + Add... + 添加... + + + Edit... + 编辑... + + + Remove + 删除 + + + + Core::Internal::DocumentManagerPrivate + + Ctrl+Shift+S + Ctrl+Shift+S + + + Save A&ll + 保存所有文件(&L) + + + + Core::Internal::DocumentModelPrivate + + <no document> + + + + No document is selected. + + + + + Core::Internal::EditMode + + Edit + 编辑 + + + + Core::Internal::EditorManagerPrivate + + Properties... + + + + Pin + + + + Revert File to Saved + 恢复文件到已保存的状态 + + + Ctrl+W + Ctrl+W + + + Alternative Close + + + + Ctrl+F4 + Ctrl+F4 + + + Ctrl+Shift+W + Ctrl+Shift+W + + + Alt+Tab + Alt+Tab + + + Ctrl+Tab + Ctrl+Tab + + + Alt+Shift+Tab + Alt+Shift+Tab + + + Ctrl+Shift+Tab + Ctrl+Shift+Tab + + + Ctrl+Alt+Left + Ctrl+Alt+Left + + + Alt+Left + Alt+Left + + + Ctrl+Alt+Right + Ctrl+Alt+Right + + + Alt+Right + Alt+Right + + + Split + 分栏 + + + Meta+E,2 + Meta+E,2 + + + Ctrl+E,2 + Ctrl+E,2 + + + Split Side by Side + 左右分栏 + + + Meta+E,3 + Meta+E,3 + + + Ctrl+E,3 + Ctrl+E,3 + + + Open in New Window + + + + Meta+E,4 + Meta+E,4 + + + Ctrl+E,4 + Ctrl+E,4 + + + Remove Current Split + 删除当前分隔 + + + Meta+E,0 + Meta+E,0 + + + Ctrl+E,0 + Ctrl+E,0 + + + Remove All Splits + 删除所有分隔 + + + Meta+E,1 + Meta+E,1 + + + Ctrl+E,1 + Ctrl+E,1 + + + Go to Previous Split or Window + + + + Meta+E,i + + + + Ctrl+E,i + + + + Go to Next Split or Window + + + + Meta+E,o + Meta+E,o + + + Ctrl+E,o + Ctrl+E,o + + + Ad&vanced + 高级(&A) + + + Current document + + + + X-coordinate of the current editor's upper left corner, relative to screen. + 当前编辑器的左上角(相对屏幕来说)X坐标轴。 + + + Y-coordinate of the current editor's upper left corner, relative to screen. + 当前编辑器的左上角(相对屏幕来说)Y坐标轴。 + + + Could not open "%1": Cannot open files of type "%2". + + + + Could not open "%1" for reading. Either the file does not exist or you do not have the permissions to open it. + + + + Could not open "%1": Unknown error. + + + + <b>Warning:</b> This file was not opened in %1 yet. + <b>警告:</b> 此文件还没有在%1中打开。 + + + Open + 打开 + + + <b>Warning:</b> You are changing a read-only file. + <b>警告:</b> 您正在改写一个只读文件。 + + + Make Writable + 使文件可写 + + + &Save %1 + 保存%1(&S) + + + Save %1 &As... + %1 另存为(&A)... + + + Revert %1 to Saved + 恢复%1 到已保存的状态 + + + Reload %1 + + + + Close %1 + + + + Close All Except %1 + + + + Close Others + 关闭其他 + + + Cannot Open File + 无法打开文件 + + + Cannot open the file for editing with VCS. + + + + File Error + 文件错误 + + + Revert to Saved + 恢复到已保存的状态 + + + You will lose your current changes if you proceed reverting %1. + 如果恢复 %1 那么您将会丢失现有的所有修改。 + + + Proceed + 继续 + + + Cancel + 取消 + + + Cancel && &Diff + + + + + Core::Internal::ExecuteFilter + + Execute Custom Commands + 执行自定义的命令 + + + Runs an arbitrary command with arguments. The command is searched for in the PATH environment variable if needed. Note that the command is run directly, not in a shell. + + + + Previous command is still running ("%1"). +Do you want to kill it? + + + + Kill Previous Process? + 杀死前一个进程吗? + + + Could not find executable for "%1". + + + + Starting command "%1". + + + + + Core::Internal::ExternalToolsFilter + + Run External Tool + + + + Runs an external tool that you have set up in the preferences (Environment > External Tools). + + + + + Core::Internal::FileSystemFilter + + Files in File System + 文件系统中的文件 + + + Opens a file given by a relative path to the current document, or absolute path. "~" refers to your home directory. You have the option to create a file if it does not exist yet. + + + + Create and Open "%1" + + + + Create File + + + + Create "%1"? + + + + Always create + + + + Create + + + + + Core::Internal::FileSystemFilterOptions + + Include hidden files + 包括隐藏文件 + + + Filter: + 过滤器: + + + + Core::Internal::FindDialog + + &Search + 搜索(&S) + + + Search && &Replace + 查找和替换(&R) + + + Search f&or: + + + + &Case sensitive + 区分大小写(&C) + + + Whole words o&nly + 全词匹配(&N) + + + Use re&gular expressions + 使用正则表达式(&G) + + + Sco&pe: + 范围(&P): + + + + Core::Internal::FindToolBar + + Shift+Enter + Shift+Enter + + + Shift+Return + Shift+Return + + + Find/Replace + 查找/替换 + + + Enter Find String + 输入搜索字符串 + + + Ctrl+E + Ctrl+E + + + Find Next + 查找下一个 + + + Find Previous + 查找前一个 + + + Find Next (Selected) + 查找下一个(选中的) + + + Ctrl+F3 + Ctrl+F3 + + + Find Previous (Selected) + 查找前一个(选中的) + + + Ctrl+Shift+F3 + Ctrl+Shift+F3 + + + Select All + 全选 + + + Ctrl+Alt+Return + + + + Replace + 替换 + + + Replace && Find + 查找并替换 + + + Ctrl+= + Ctrl+= + + + Replace && Find Previous + 替换并且查找前一个 + + + Replace All + 替换所有 + + + Case Sensitive + 区分大小写 + + + Whole Words Only + 全词匹配 + + + Use Regular Expressions + 使用正则表达式 + + + Preserve Case when Replacing + + + + Search for... + 查找... + + + Replace with... + + + + + Core::Internal::FindToolWindow + + Empty search term. + + + + + Core::Internal::FindWidget + + Find + 查找 + + + Find: + 查找: + + + Replace with: + 替换为: + + + Replace + 替换 + + + Replace && Find + 查找并替换 + + + Replace All + 替换所有 + + + Advanced... + 高级... + + + + Core::Internal::GeneralSettings + + <System Language> + <系统语言> + + + User Interface + 用户界面 + + + Color: + 颜色: + + + Language: + 语言: + + + Reset + 重置 + + + Reset to default. + Color + 重置为默认。 + + + Reset Warnings + Button text + + + + Re-enable warnings that were suppressed by selecting "Do Not Show Again" (for example, missing highlighter). + + + + Theme: + + + + Enable high DPI scaling + + + + Restart Required + + + + The high DPI settings will take effect after restart. + + + + Text codec for tools: + + + + Show keyboard shortcuts in context menus (default: %1) + + + + The language change will take effect after restart. + + + + Interface + + + + + Core::Internal::JavaScriptFilter + + Evaluate JavaScript + + + + Evaluates arbitrary JavaScript expressions and copies the result. + + + + Reset Engine + + + + Engine aborted after timeout. + + + + Copy to clipboard: %1 + + + + + Core::Internal::Locator + + Locate... + 定位... + + + Ctrl+K + Ctrl+K + + + <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Open a document</div><table><tr><td><hr/><div style="margin-top: 5px">&bull; File > Open File or Project (%1)</div><div style="margin-top: 5px">&bull; File > Recent Files</div><div style="margin-top: 5px">&bull; Tools > Locate (%2) and</div><div style="margin-left: 1em">- type to open file from any open project</div>%4%5<div style="margin-left: 1em">- type <code>%3&lt;space&gt;&lt;filename&gt;</code> to open file from file system</div><div style="margin-left: 1em">- select one of the other filters for jumping to a location</div><div style="margin-top: 5px">&bull; Drag and drop files here</div></td></tr></table></div></body></html> + + + + <div style="margin-left: 1em">- type <code>%1&lt;space&gt;&lt;pattern&gt;</code> to jump to a class definition</div> + + + + <div style="margin-left: 1em">- type <code>%1&lt;space&gt;&lt;pattern&gt;</code> to jump to a function definition</div> + + + + Updating Locator Caches + + + + + Core::Internal::LocatorFiltersFilter + + Available filters + 可使用的过滤器 + + + + Core::Internal::LocatorSettingsWidget + + Add... + 添加... + + + Refresh interval: + 更新间隔: + + + Locator filters that do not update their cached data immediately, such as the custom directory filters, update it after this time interval. + + + + min + + + + Remove + 删除 + + + Edit... + 编辑... + + + Files in Directories + + + + URL Template + + + + Name + + + + Prefix + + + + Default + 默认 + + + Built-in + + + + Custom + + + + + Core::Internal::LocatorWidget + + Open as Centered Popup + + + + Refresh + + + + Options + 选项 + + + Type to locate + 输入以定位 + + + Type to locate (%1) + 输入以定位(%1) + + + + Core::Internal::LoggingCategoryModel + + Category + + + + Type + 类型 + + + Color + 颜色 + + + + Core::Internal::MainWindow + + &File + 文件(&F) + + + &Edit + 编辑(&E) + + + &Tools + 工具(&T) + + + &Window + 控件(&W) + + + &Help + 帮助(&H) + + + &Open File or Project... + 打开文件或项目(&O)... + + + Open File &With... + 不需要快捷键 + 打开文件,用...(&W) + + + Recent &Files + 最近访问的文件(&F) + + + Save + 保存 + + + Ctrl+Shift+S + Ctrl+Shift+S + + + Save As... + 另存为... + + + &Print... + 打印(&P)... + + + E&xit + 退出(&X) + + + Ctrl+Q + Ctrl+Q + + + &Undo + 撤销(&U) + + + Undo + 撤销 + + + &Redo + 重做(&R) + + + Redo + 重做 + + + Cu&t + 剪切(&T) + + + &Copy + 复制(&C) + + + &Paste + 粘贴(&P) + + + Select &All + 全选(&A) + + + &Go to Line... + 转到行(&G)... + + + Ctrl+L + Ctrl+L + + + Minimize + 最小化 + + + Ctrl+M + Ctrl+M + + + Zoom + 缩放 + + + Ctrl+0 + Ctrl+0 + + + Alt+0 + Alt+0 + + + Full Screen + 全屏 + + + Ctrl+Meta+F + Ctrl+Meta+F + + + Ctrl+Shift+F11 + Ctrl+Shift+F11 + + + &Views + 视图(&V) + + + About &Plugins... + 关于插件(&P)... + + + Exit %1? + + + + &View + 视图(&V) + + + Return to Editor + + + + &New Project... + + + + New Project + Title of dialog + + + + New File... + + + + New File + Title of dialog + 新建文件 + + + Zoom In + 放大 + + + Ctrl++ + Ctrl++ + + + Zoom Out + 缩小 + + + Ctrl+- + Ctrl+- + + + Ctrl+Shift+- + + + + Original Size + 原始大小 + + + Meta+0 + Meta+0 + + + Debug %1 + + + + Show Logs... + + + + Pr&eferences... + + + + Close Window + + + + Ctrl+Meta+W + + + + Ctrl+Shift+0 + + + + Alt+Shift+0 + + + + About &%1 + + + + About &%1... + + + + Change Log... + + + + Contact... + + + + Cycle Mode Selector Styles + + + + Mode Selector Style + + + + Icons and Text + + + + Icons Only + + + + Hidden + + + + Version: + 版本: + + + Change Log + + + + Contact + + + + <p>Qt Creator developers can be reached at the Qt Creator mailing list:</p>%1<p>or the #qt-creator channel on Libera.Chat IRC:</p>%2<p>Our bug tracker is located at %3.</p><p>Please use %4 for bigger chunks of text.</p> + + + + + Core::Internal::MessageOutputWindow + + General Messages + 概要信息 + + + + Core::Internal::MimeTypeMagicDialog + + Add Magic Header + 添加Magic Header + + + Error + 错误 + + + Value: + 值: + + + String + 字符串 + + + Byte + 字节 + + + Use Recommended + 使用建议 + + + Priority: + 优先级: + + + <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a>.<hr/></p></body></html> + + + + RegExp + + + + Host16 + + + + Host32 + + + + Big16 + + + + Big32 + + + + Little16 + + + + Little32 + + + + <html><head/><body><p><span style=" font-style:italic;">Note: Wide range values might impact performance when opening files.</span></p></body></html> + + + + Range start: + + + + Range end: + + + + Type: + 类型: + + + Mask: + + + + Internal error: Type is invalid + + + + + Core::Internal::MimeTypeSettings + + MIME Types + MIME 类型 + + + + Core::Internal::MimeTypeSettingsModel + + MIME Type + MIME 类型 + + + Handler + 处理器 + + + + Core::Internal::MimeTypeSettingsPage + + Registered MIME Types + 已注册的MIME 类型 + + + Details + 详情 + + + Patterns: + 模式: + + + Magic Header + Magic Header + + + Type + 类型 + + + Range + 范围 + + + Priority + 优先级 + + + Add... + 添加... + + + Edit... + 编辑... + + + Remove + 删除 + + + Reset all MIME type definitions to their defaults. + + + + Reset MIME Types + + + + Reset the assigned handler for all MIME type definitions to the default. + + + + Reset Handlers + + + + A semicolon-separated list of wildcarded file names. + + + + + Core::Internal::MimeTypeSettingsPrivate + + Reset MIME Types + + + + Changes will take effect after restart. + + + + + Core::Internal::NavigationSubWidget + + Split + 分栏 + + + Close + 关闭 + + + + Core::Internal::NewDialog + + Choose a template: + 选择一个模板: + + + Projects + 项目 + + + Files and Classes + 文件和类 + + + All Templates + 所有模板 + + + %1 Templates + %1 模板 + + + Platform independent + 与平台无关 + + + Supported Platforms + 支持的平台 + + + Choose... + 选择... + + + + Core::Internal::OpenDocumentsFilter + + Open Documents + + + + + Core::Internal::OpenEditorsWindow + + * + * + + + + Core::Internal::OpenWithDialog + + Open File With... + 打开文件,用... + + + Open file "%1" with: + + + + + Core::Internal::OutputPaneManager + + Output + 输出 + + + Clear + 清空 + + + Next Item + 下一项 + + + Previous Item + 上一项 + + + Shift+F6 + Shift+F6 + + + F6 + F6 + + + Minimize + 最小化 + + + Maximize + + + + Out&put + + + + Ctrl+Shift+9 + + + + Alt+Shift+9 + + + + + Core::Internal::PluginDialog + + Details + 详情 + + + Error Details + 错误详情 + + + Installed Plugins + 已安装的插件 + + + Plugin Details of %1 + %1 的插件详情 + + + Plugin Errors of %1 + %1 的插件错误 + + + Install Plugin... + + + + Plugin changes will take effect after restart. + + + + + Core::Internal::PluginInstallWizard + + Source + + + + Choose source location. This can be a plugin library file or a zip file. + + + + File does not exist. + + + + Check Archive + + + + Cancel + 取消 + + + Checking archive... + + + + The file is not an archive. + + + + Canceled. + 已取消. + + + There was an error while unarchiving. + + + + Archive is OK. + + + + Plugin requires an incompatible version of %1 (%2). + + + + Did not find %1 plugin. + + + + Install Location + + + + Choose install location. + + + + User plugins + + + + The plugin will be available to all compatible %1 installations, but only for the current user. + + + + %1 installation + + + + The plugin will be available only to this %1 installation, but for all users that can access it. + + + + Summary + 汇总 + + + "%1" will be installed into "%2". + + + + Overwrite File + + + + The file "%1" exists. Overwrite? + + + + Overwrite + 覆盖 + + + Failed to Write File + + + + Failed to write file "%1". + + + + Install Plugin + + + + Failed to Copy Plugin Files + + + + + Core::Internal::ProgressManagerPrivate + + Toggle Progress Details + + + + + Core::Internal::ProgressView + + Processes + 进程 + + + + Core::Internal::SaveItemsDialog + + Save All + 保存所有 + + + Save + 保存 + + + Save Selected + 保存选中 + + + Save Changes + 保存修改 + + + The following files have unsaved changes: + 以下文件有未保存的修改: + + + Automatically save all files before building + 构建前自动保存所有文件 + + + &Diff + &Diff + + + Do &Not Save + + + + &Save + 保存(&S) + + + &Diff && Cancel + + + + &Save All + + + + &Diff All && Cancel + + + + &Save Selected + + + + &Diff Selected && Cancel + + + + + Core::Internal::SearchResultWidget + + Cancel + 取消 + + + Repeat the search with same parameters. + + + + &Search Again + + + + Repla&ce with: + + + + Preser&ve case + + + + Replace all occurrences. + + + + &Replace + + + + This change cannot be undone. + 这项改变将无法被撤销。 + + + The search resulted in more than %n items, do you still want to continue? + + 搜索到了超过%n个项,您仍然想继续吗? + + + + Continue + 继续 + + + Search was canceled. + 查找被取消。 + + + %n matches found. + + 找到%n 个匹配。 + + + + Searching... + 搜索中... + + + No matches found. + 未找到匹配。 + + + + Core::Internal::SettingsDialog + + Preferences + 首选项 + + + + Core::Internal::ShortcutButton + + Click and type the new key sequence. + + + + Stop Recording + + + + Record + + + + + Core::Internal::ShortcutInput + + Key sequence: + 键位顺序: + + + Use "Cmd", "Opt", "Ctrl", and "Shift" for modifier keys. Use "Escape", "Backspace", "Delete", "Insert", "Home", and so on, for special keys. Combine individual keys with "+", and combine multiple shortcuts to a shortcut sequence with ",". For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter "Ctrl+Shift+Escape,A". + + + + Use "Ctrl", "Alt", "Meta", and "Shift" for modifier keys. Use "Escape", "Backspace", "Delete", "Insert", "Home", and so on, for special keys. Combine individual keys with "+", and combine multiple shortcuts to a shortcut sequence with ",". For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter "Ctrl+Shift+Escape,A". + + + + Enter key sequence as text + + + + + Core::Internal::ShortcutSettings + + Keyboard + 键盘 + + + Keyboard Shortcuts + 键盘快捷键 + + + Shortcut + 快捷键 + + + Import Keyboard Mapping Scheme + 导入键盘映射方案 + + + Keyboard Mapping Scheme (*.kms) + 键盘映射方案 (*.kms) + + + Export Keyboard Mapping Scheme + 导出键盘映射方案 + + + Add + 添加 + + + Invalid key sequence. + + + + Key sequence will not work in editor. + + + + Key sequence has potential conflicts. <a href="#conflicts">Show.</a> + + + + + Core::Internal::SideBarWidget + + Split + 分栏 + + + Close + 关闭 + + + + Core::Internal::SpotlightLocatorFilter + + Locator: Error occurred when running "%1". + + + + Locator query string. + + + + Locator query string with quotes escaped with backslash. + + + + Locator query string with quotes escaped with backslash and spaces replaced with "*" wildcards. + + + + Locator query string as regular expression. + + + + File Name Index + + + + Matches files from a global file system index (Spotlight, Locate, Everything). Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + + + + Executable: + 执行档: + + + Arguments: + 参数: + + + Case sensitive: + + + + + Core::Internal::SystemEditor + + System Editor + + + + Could not open URL %1. + + + + + Core::Internal::SystemSettings + + Auto-suspend unmodified files + + + + Enable crash reporting + + + + Warn before opening text files greater than + + + + Ask for confirmation before exiting + + + + Auto-save modified files + 自动保存修改的文件 + + + Clear Local Crash Reports + + + + Auto-save files after refactoring + + + + Automatically free resources of old documents that are not visible and not modified. They stay visible in the list of open documents. + + + + Allow crashes to be automatically reported. Collected reports are used for the sole purpose of fixing bugs. + + + + MB + MB + + + Command line arguments used for "Run in terminal". + + + + Always Ask + 总是询问 + + + Reload All Unchanged Editors + 重新载入所有未变更的编辑器 + + + Ignore Modifications + 忽略修改 + + + min + + + + Command line arguments used for "%1". + + + + File system case sensitivity: + + + + Influences how file names are matched to decide if they are the same. + + + + Files to keep open: + + + + Minimum number of open documents that should be kept in memory. Increasing this number will lead to greater resource usage when not manually closing documents. + + + + Reset + 重置 + + + Reset to default. + 重置为默认。 + + + ? + ? + + + Reset to default. + Terminal + 重置为默认。 + + + Patch command: + + + + Change... + + + + Environment: + 环境: + + + Terminal: + 终端: + + + External file browser: + 外部文件浏览器: + + + When files are externally modified: + 当文件被外部修改时: + + + Interval: + 间隔: + + + Maximum number of entries in "Recent Files": + + + + System + 系统 + + + Command used for reverting diff chunks. + + + + Automatically creates temporary copies of modified files. If %1 is restarted after a crash or power failure, it asks whether to recover the auto-saved content. + + + + Automatically saves all open files affected by a refactoring operation, +provided they were unmodified before the refactoring. + + + + Crash Reporting + + + + The change will take effect after restart. + + + + Case Sensitive (Default) + + + + Case Sensitive + 区分大小写 + + + Case Insensitive (Default) + + + + Case Insensitive + + + + The file system case sensitivity change will take effect after restart. + + + + No changes to apply. + + + + Variables + 变量 + + + + Core::Internal::ThemeChooser + + Current theme: %1 + + + + The theme change will take effect after restart. + + + + + Core::Internal::UrlFilterOptions + + Name: + 名称: + + + Add "%1" placeholder for the query string. +Double-click to edit item. + + + + Add + 添加 + + + Remove + 删除 + + + Move Up + + + + Move Down + + + + URLs: + + + + + Core::Internal::VersionDialog + + About %1 + + + + <br/>From revision %1<br/> + + + + <br/>Built on %1 %2<br/> + + + + <h3>%1</h3>%2<br/>%3%4%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + + + + The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd. + + + + + Core::Internal::WindowSupport + + Exit Full Screen + 退出全屏模式 + + + Enter Full Screen + 进入全屏模式 + + + + Core::JsExpander + + Error in "%1": %2 + + + + Cannot convert result of "%1" to string. + + + + Evaluate simple JavaScript statements.<br>Literal '}' characters must be escaped as "\}", '\' characters must be escaped as "\\", and "%{" must be escaped as "%\{". + + + + + Core::ListItemDelegate + + Tags: + 标签: + + + + Core::ModeManager + + Switch to <b>%1</b> mode + 切换到<b>%1</b> 模式 + + + + Core::NavigationWidget + + Activate %1 View + + + + + Core::OutputWindow + + Elided %n characters due to Application Output settings + + + + + + [Discarding excessive amount of pending output.] + + + + + + Core::PromptOverwriteDialog + + Overwrite Existing Files + 覆盖现有文件 + + + The following files already exist in the folder +%1. +Would you like to overwrite them? + 以下文件已经存在于目录 +%1中。 +您想要覆盖吗? + + + + Core::ReadOnlyFilesDialog + + Mixed + 混合 + + + Make Writable + 使文件可写 + + + Open with VCS + + + + Save As + + + + Failed to %1 File + + + + %1 file %2 from version control system %3 failed. + + + + No Version Control System Found + + + + Cannot open file %1 from version control system. +No version control system found. + + + + Cannot Set Permissions + 无法设置权限 + + + Cannot set permissions for %1 to writable. + + + + Cannot Save File + + + + Cannot save file %1 + + + + Canceled Changing Permissions + + + + Could Not Change Permissions on Some Files + + + + See details for a complete list of files. + + + + Files Without Write Permissions + + + + The following files have no write permissions. Do you want to change the permissions? + + + + Filename + + + + Path + + + + Change &Permission + + + + Select all, if possible: + + + + The following files are not checked out yet. +Do you want to check them out now? + + + + + Core::RestartDialog + + Restart Required + + + + Later + + + + Restart Now + + + + + Core::SearchResultWindow + + Expand All + 展开全部 + + + Filter Results + + + + New Search + 新搜索 + + + %1 %2 + %1 %2 + + + Collapse All + 折叠全部 + + + History: + + + + Search Results + 搜索结果 + + + + Core::UrlLocatorFilter + + Web Search + 搜索网络 + + + Qt Project Bugs + + + + URL Template + + + + + Core::VcsManager + + Version Control + 版本控制 + + + Add to Version Control + 添加到版本控制系统 + + + Add the file +%1 +to version control (%2)? + 添加文件 +%1 +到版本控制 (%2)吗? + + + Add the files +%1 +to version control (%2)? + 添加文件 +%1 +到版本控制 (%2)吗? + + + Adding to Version Control Failed + 添加文件到版本控制系统失败 + + + Could not add the file +%1 +to version control (%2) + + 无法添加文件 +%1 +到版本控制系统 (%2) + + + + Could not add the following files to version control (%1) +%2 + 无法添加以下文件到版本控制系统 (%1) +%2 + + + %1 repository was detected but %1 is not configured. + + + + Remove the following files from the version control system (%2)? %1Note: This might remove the local file. + + + + + CplusPlus::CheckSymbols + + Too few arguments + + + + + CppCodeModelInspectorDialog + + Compiler Flags + + + + + CppEditor + + C++ + C++ + + + Follow Symbol to Type is only available when using clangd + + + + Quick Fixes + + + + Code Style + 代码风格 + + + File Naming + 文件命名 + + + Diagnostic Configurations + + + + C++ Symbols in Current Document + + + + C++ Classes + + + + C++ Functions + + + + All Included C/C++ Files + + + + C++ Classes, Enums, Functions and Type Aliases + + + + C++ Symbols + C++符号 + + + Cannot show preprocessed file: %1 + + + + %1, falling back to built-in preprocessor. + + + + Failed to open output file "%1". + + + + Failed to write output file "%1". + + + + Could not determine which compiler to invoke. + + + + Could not determine compiler command line. + + + + The project contains C source files, but the currently active kit has no C compiler. The code model will not be fully functional. + + + + The project contains C++ source files, but the currently active kit has no C++ compiler. The code model will not be fully functional. + + + + + CppEditor::AbstractEditorSupport + + The file name. + + + + The class name. + + + + + CppEditor::ClangBaseChecks + + For appropriate options, consult the GCC or Clang manual pages or the <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html">GCC online documentation</a>. + + + + Use diagnostic flags from build system + + + + + CppEditor::ClangDiagnosticConfigsSelectionWidget + + Diagnostic configuration: + + + + + CppEditor::ClangDiagnosticConfigsWidget + + Diagnostic Configurations + + + + Copy... + 复制... + + + Rename... + 重命名... + + + Remove + 删除 + + + Clang Warnings + + + + Copy Diagnostic Configuration + + + + Diagnostic configuration name: + + + + %1 (Copy) + %1 (复制) + + + Rename Diagnostic Configuration + + + + New name: + + + + Option "%1" is invalid. + + + + Copy this configuration to customize it. + + + + Configuration passes sanity checks. + + + + %1 + %1 + + + + CppEditor::ClangdSettings + + Background Priority + + + + Normal Priority + + + + Low Priority + + + + Off + + + + + CppEditor::ConfigsModel + + Built-in + + + + Custom + + + + + CppEditor::CppEditorWidget + + &Refactor + 重构(&R) + + + + CppEditor::CppProjectUpdater + + Preparing C++ Code Model + + + + + CppEditor::CppQuickFixFactory + + Create Implementations for Member Functions + + + + Generate Missing Q_PROPERTY Members + + + + Generate Setter + + + + Generate Getter + + + + Generate Getter and Setter + + + + Generate Constant Q_PROPERTY and Missing Members + + + + Generate Q_PROPERTY and Missing Members with Reset Function + + + + Generate Q_PROPERTY and Missing Members + + + + Create Getter and Setter Member Functions + + + + Convert to Stack Variable + + + + Convert to Pointer + + + + Base Class Constructors + + + + Generate Constructor + + + + + CppEditor::CppToolsSettings + + Global + Settings + + + + Qt + Qt + + + GNU + GNU + + + Old Creator + 旧的 Creator + + + + CppEditor::InsertDeclOperation + + Add %1 Declaration + 添加%1声明 + + + + CppEditor::InsertDefOperation + + Add Definition in %1 + 在%1添加定义 + + + Add Definition Here + + + + Add Definition Inside Class + + + + Add Definition Outside Class + + + + + CppEditor::Internal::BuiltinIndexingSupport + + Parsing C/C++ Files + + + + + CppEditor::Internal::ClangdSettingsWidget + + If background indexing is enabled, global symbol searches will yield +more accurate results, at the cost of additional CPU load when +the project is first opened. +The indexing result is persisted in the project's build directory. + +If you disable background indexing, a faster, but less accurate, +built-in indexer is used instead. + +The thread priority for building the background index can be adjusted since clangd 15. +Background Priority: Minimum priority, runs on idle CPUs. May leave 'performance' cores unused. +Normal Priority: Reduced priority compared to interactive work. +Low Priority: Same priority as other clangd work. + + + + Number of worker threads used by clangd. Background indexing also uses this many worker threads. + + + + Controls whether clangd may insert header files as part of symbol completion. + + + + Defines the amount of time Qt Creator waits before sending document changes to the server. +If the document changes again while waiting, this timeout resets. + + + + Files greater than this will not be opened as documents in clangd. +The built-in code model will handle highlighting, completion and so on. + + + + The maximum number of completion results returned by clangd. + + + + Use clangd + + + + Insert header files on completion + + + + Ignore files greater than + + + + Completion results: + + + + No limit + + + + Path to executable: + + + + Background indexing: + + + + Worker thread count: + + + + Document update threshold: + + + + Sessions with a single clangd instance + + + + By default, Qt Creator runs one clangd process per project. +If you have sessions with tightly coupled projects that should be +managed by the same clangd process, add them here. + + + + Add ... + + + + Remove + 删除 + + + Choose a session: + + + + Additional settings are available via <a href="https://clangd.llvm.org/config"> clangd configuration files</a>.<br>User-specific settings go <a href="%1">here</a>, project-specific settings can be configured by putting a .clangd file into the project source tree. + + + + Failed to retrieve clangd version: Unexpected clangd output. + + + + The clangd version is %1, but %2 or greater is required. + + + + Clangd + + + + + CppEditor::Internal::ConstructorParams + + Initialize in Constructor + + + + Member Name + + + + Parameter Name + + + + Default Value + + + + + CppEditor::Internal::CppCodeModelSettingsWidget + + Interpret ambiguous headers as C headers + + + + Do not index files greater than + + + + MB + MB + + + Ignore precompiled headers + + + + <html><head/><body><p>When precompiled headers are not ignored, the parsing for code completion and semantic highlighting will process the precompiled header before processing any file.</p></body></html> + + + + Use built-in preprocessor to show pre-processed files + + + + Uncheck this to invoke the actual compiler to show a pre-processed source file in the editor. + + + + General + 概要 + + + Code Model + + + + + CppEditor::Internal::CppCodeStyleSettingsPage + + General + 概要 + + + Content + 内容 + + + Indent + 缩进 + + + "public", "protected" and +"private" within class body + 在类中的"public", "protected" +和"private" + + + Declarations relative to "public", +"protected" and "private" + 与"public","protected" +和"private"相关的声明 + + + Statements within function body + + + + Statements within blocks + 在块中的语句 + + + Declarations within +"namespace" definition + 在"命名空间"定义中的声明 + + + Braces + 括号 + + + Indent Braces + 缩进括号 + + + Class declarations + 类的声明 + + + Namespace declarations + 命名空间的声明 + + + Enum declarations + 枚举类型的声明 + + + Function declarations + + + + Blocks + 代码段 + + + "switch" + "switch" + + + Indent within "switch" + 在"switch"内缩进 + + + "case" or "default" + "case" 或 "default" + + + Statements relative to +"case" or "default" + "case" 或 "default" +的相关语句 + + + Blocks relative to +"case" or "default" + "case" 或 "default" +相关的代码段 + + + "break" statement relative to +"case" or "default" + "case" 或 "default"相关的 +"break"语句 + + + Alignment + 对齐方式 + + + Align + 对齐 + + + <html><head/><body> +Enables alignment to tokens after =, += etc. When the option is disabled, regular continuation line indentation will be used.<br> +<br> +With alignment: +<pre> +a = a + + b +</pre> +Without alignment: +<pre> +a = a + + b +</pre> +</body></html> + <html><head/><body> +对诸如 =, += 等之后出现的符号开启对齐。当该选项被禁用时,将使用普通的续行缩进。<br> +<br> +对齐: +<pre> +a = a + + b +</pre> +无对齐: +<pre> +a = a + + b +</pre> +</body></html> + + + Align after assignments + 赋值语句后对齐 + + + <html><head/><body> +Adds an extra level of indentation to multiline conditions in the switch, if, while and foreach statements if they would otherwise have the same or less indentation than a nested statement. + +For four-spaces indentation only if statement conditions are affected. Without extra padding: +<pre> +if (a && + b) + c; +</pre> +With extra padding: +<pre> +if (a && + b) + c; +</pre> +</body></html> + <html><head/><body> +如果switch、if、while和foreach表达式中的多行条件的缩进等于或少于其他嵌套语句,则为其多添加一层缩进。 + +如果是四个空格方式的缩进,则只修改if语句。不添加额外空白: +<pre> +if (a && + b) + c; +</pre> +添加额外空白: +<pre> +if (a && + b) + c; +</pre> +</body></html> + + + Add extra padding to conditions +if they would align to the next line + 如果条件语句需要与下一行对齐, +则添加额外的空白 + + + Pointers and References + + + + Bind '*' and '&&' in types/declarations to + + + + <html><head/><body>This does not apply to the star and reference symbol in pointer/reference to functions and arrays, e.g.: +<pre> int (&rf)() = ...; + int (*pf)() = ...; + + int (&ra)[2] = ...; + int (*pa)[2] = ...; + +</pre></body></html> + + + + Identifier + + + + Type name + + + + Left const/volatile + + + + This does not apply to references. + + + + Right const/volatile + + + + + CppEditor::Internal::CppEditorDocument + + <b>Warning</b>: This file is not part of any project. The code model might have issues parsing this file properly. + + + + Note: Multiple parse contexts are available for this file. Choose the preferred one from the editor toolbar. + + + + + CppEditor::Internal::CppEditorOutline + + Sort Alphabetically + 按字母排序 + + + + CppEditor::Internal::CppEditorPlugin + + &C++ + C++(&C) + + + Switch Header/Source + 切换头文件/源文件 + + + Open Corresponding Header/Source in Next Split + + + + Meta+E, F4 + + + + Ctrl+E, F4 + + + + Show Preprocessed Source + + + + Show Preprocessed Source in Next Split + + + + The license template. + + + + The configured path to the license template + + + + Insert "#pragma once" instead of "#ifndef" include guards into header file + + + + C++ + SnippetProvider + C++ + + + Header/Source + text on macOS touch bar + + + + Follow + text on macOS touch bar + + + + Additional Preprocessor Directives... + + + + Switch Between Function Declaration/Definition + + + + Shift+F2 + Shift+F2 + + + Decl/Def + text on macOS touch bar + + + + Open Function Declaration/Definition in Next Split + + + + Meta+E, Shift+F2 + + + + Ctrl+E, Shift+F2 + + + + Follow Symbol Under Cursor to Type + + + + Ctrl+Shift+F2 + Ctrl+Shift+F2 + + + Follow Symbol to Type in Next Split + + + + Meta+E, Ctrl+Shift+F2 + + + + Ctrl+E, Ctrl+Shift+F2 + + + + Find References With Access Type + + + + Open Type Hierarchy + 打开类型分层 + + + Meta+Shift+T + Meta+Shift+T + + + Ctrl+Shift+T + Ctrl+Shift+T + + + Open Include Hierarchy + + + + Meta+Shift+I + + + + Ctrl+Shift+I + Ctrl+Shift+I + + + Reparse Externally Changed Files + + + + Inspect C++ Code Model... + + + + Meta+Shift+F12 + + + + Ctrl+Shift+F12 + Ctrl+Shift+F12 + + + Clangd + + + + + CppEditor::Internal::CppFileSettingsPage + + Headers + 头文件 + + + &Suffix: + + + + S&earch paths: + + + + Comma-separated list of header paths. + +Paths can be absolute or relative to the directory of the current open document. + +These paths are used in addition to current directory on Switch Header/Source. + + + + &Prefixes: + + + + Comma-separated list of header prefixes. + +These prefixes are used in addition to current file name on Switch Header/Source. + + + + Include guards + + + + Uses "#pragma once" instead of "#ifndef" include guards. + + + + Use "#pragma once" instead of "#ifndef" guards + + + + Sources + 源文件 + + + S&uffix: + + + + Se&arch paths: + + + + Comma-separated list of source paths. + +Paths can be absolute or relative to the directory of the current open document. + +These paths are used in addition to current directory on Switch Header/Source. + + + + P&refixes: + + + + Comma-separated list of source prefixes. + +These prefixes are used in addition to current file name on Switch Header/Source. + + + + &Lower case file names + + + + License &template: + + + + + CppEditor::Internal::CppFileSettingsWidget + + /************************************************************************** +** %1 license header template +** Special keywords: %USER% %DATE% %YEAR% +** Environment variables: %$VARIABLE% +** To protect a percent sign, use '%%'. +**************************************************************************/ + + + + + Edit... + 编辑... + + + Choose Location for New License Template File + 为新的版权许可模板文件选择一个存储位置 + + + + CppEditor::Internal::CppFindReferences + + Reads + + + + Writes + + + + Declarations + 声明 + + + Other + 其他 + + + C++ Usages: + C++ 使用: + + + Searching for Usages + + + + Re&name %n files + + + + + + Files: +%1 + + + + C++ Macro Usages: + C++ 宏的使用: + + + + CppEditor::Internal::CppIncludeHierarchyFactory + + Include Hierarchy + + + + + CppEditor::Internal::CppIncludeHierarchyModel + + (none) + + + + (cyclic) + + + + Includes + + + + Included by + + + + + CppEditor::Internal::CppIncludeHierarchyWidget + + No include hierarchy available + + + + Synchronize with Editor + 与编辑器同步 + + + + CppEditor::Internal::CppIncludesFilter + + Matches all files that are included by all C++ files in all projects. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + + + + + CppEditor::Internal::CppOutlineTreeView + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + + CppEditor::Internal::CppPreProcessorDialog + + Additional C++ Preprocessor Directives + + + + Additional C++ Preprocessor Directives for %1: + + + + + CppEditor::Internal::CppQuickFixProjectSettingsWidget + + Custom settings are saved in a file. If you use the global settings, you can delete that file. + + + + Delete Custom Settings File + + + + Resets all settings to the global settings. + + + + Reset to Global + + + + + CppEditor::Internal::CppQuickFixProjectsSettings + + Quick Fix settings are saved in a file. Existing settings file "%1" found. Should this file be used or a new one be created? + + + + Switch Back to Global Settings + + + + Use Existing + + + + Create New + + + + + CppEditor::Internal::CppTypeHierarchyFactory + + Type Hierarchy + 类型层次 + + + + CppEditor::Internal::CppTypeHierarchyWidget + + No type hierarchy available + 没有可用的类型层次 + + + Bases + 基类 + + + Derived + 派生类 + + + Evaluating Type Hierarchy + + + + Evaluating type hierarchy... + + + CppEditor::Internal::FunctionDeclDefLink @@ -44517,36 +13421,2591 @@ Please choose a valid package name for your application (e.g. "org.example. - QuickFix::ExtractFunction + CppEditor::Internal::InsertVirtualMethodsDialog - Extract Function - 解压缩函数 + Insert Virtual Functions + - Extract Function Refactoring - 解压缩函数的重构 + &Functions to insert: + - Enter function name - 输入函数名 + Filter + 过滤器 - Invalid function name - 无效的函数名 + &Hide reimplemented functions + + + + &Insertion options: + + + + Insert only declarations + + + + Insert definitions inside class + + + + Insert definitions outside class + + + + Insert definitions in implementation file + + + + Add "&virtual" to function declaration + + + + Add "override" equivalent to function declaration: + + + + Clear Added "override" Equivalents + - IndexingSupport + CppEditor::Internal::ParseContextModel - Parsing - 分析中 + <p><b>Active Parse Context</b>:<br/>%1</p><p>Multiple parse contexts (set of defines, include paths, and so on) are available for this file.</p><p>Choose a parse context to set it as the preferred one. Clear the preference from the context menu.</p> + + + + + CppEditor::Internal::ParseContextWidget + + Clear Preferred Parse Context + + + + + CppEditor::Internal::SymbolsFindFilter + + Searching for Symbol + + + + C++ Symbols: + C++符号: + + + Classes + + + + Functions + + + + Enums + 枚举 + + + Declarations + 声明 + + + Scope: %1 +Types: %2 +Flags: %3 + 范围:%1 +类型:%2 +标志:%3 + + + All + 所有 + + + Projects + 项目 + + + + CppEditor::Internal::SymbolsFindFilterConfigWidget + + Types: + 类型: + + + Classes + + + + Functions + + + + Enums + 枚举 + + + Declarations + 声明 + + + Projects only + 仅显示项目 + + + All files + 所有文件 + + + + CppEditor::OverviewModel + + <Select Symbol> + + + + <No Symbols> + <没有符号> + + + + CppEditor::QuickFix + + Insert Virtual Functions of Base Classes + + + + Rewrite Using %1 + 使用 %1 重写 + + + Swap Operands + 交换操作数 + + + Rewrite Condition Using || + 使用 || 重写条件 + + + Split Declaration + 分离声明 + + + Add Curly Braces + 添加大括号 + + + Move Declaration out of Condition + 将声明移到条件之外 + + + Split if Statement + 分离if语句 + + + Enclose in %1(...) + 封装在 %1(...) + + + Convert to String Literal + 转换为文本字符串 + + + Convert to Character Literal and Enclose in QLatin1Char(...) + 转换为字符并用QLatin1Char(...)封装 + + + Convert to Character Literal + 转换为文本字符 + + + Mark as Translatable + 标记为可翻译 + + + Convert to Objective-C String Literal + 转换为Objective-C字符串 + + + Convert to Hexadecimal + 转换为16进制 + + + Convert to Octal + 转换为8进制 + + + Convert to Decimal + 转换为10进制 + + + Convert to Binary + + + + Add Local Declaration + 添加本地声明 + + + Convert to Camel Case + 转换为驼峰命名法 + + + Add #include %1 + 添加#include %1 + + + Add forward declaration for %1 + + + + Switch with Previous Parameter + 与上一个参数切换 + + + Switch with Next Parameter + 与下一个参数切换 + + + Reformat to "%1" + + + + Reformat Pointers or References + + + + Complete Switch Statement + 完成Switch语句 + + + Extract Constant as Function Parameter + + + + Move Definition Outside Class + + + + Move Definition to %1 + + + + Move All Function Definitions Outside Class + + + + Move All Function Definitions to %1 + + + + Move Definition to Class + + + + Assign to Local Variable + + + + Optimize for-Loop + + + + Escape String Literal as UTF-8 + + + + Unescape String Literal as UTF-8 + + + + Convert connect() to Qt 5 Style + + + + Remove All Occurrences of "using namespace %1" in Global Scope and Adjust Type Names Accordingly + + + + Remove "using namespace %1" and Adjust Type Names Accordingly + + + + + CppEditor::Quickfix + + Add Class Member "%1" + + + + Provide the type + + + + Data type: + + + + + CppIndexer + + C++ Indexer: Skipping file "%1" because it is too big. + + + + + CppQuickFixSettingsWidget + + Generated Function Locations + + + + Default + 默认 + + + ≥ + + + + lines + + + + Generate Getters + + + + Generate Setters + + + + In .cpp file: + + + + Outside class: + + + + Inside class: + + + + Getter Setter Generation Properties + + + + Getter name: + + + + For example, new<Name> + + + + Setter name: + + + + Setters should be slots + + + + Generate signals with the new value as parameter + + + + Getter attributes: + + + + Setter parameter name: + + + + Reset name: + + + + Signal name: + + + + See tool tip for more information + + + + Normally reset<Name> + + + + For example, [[nodiscard]] + + + + Normally <name>Changed + + + + Member variable name: + + + + For example, m_<name> + + + + Missing Namespace Handling + + + + Generate missing namespaces + + + + Add "using namespace ..." + + + + Rewrite types to match the existing namespaces + + + + <html><head/><body><p>Uncheck this to make Qt Creator try to derive the type of expression in the &quot;Assign to Local Variable&quot; quickfix.</p><p>Note that this might fail for more complex types.</p></body></html> + + + + Use type "auto" when creating new variables + + + + Custom Getter Setter Templates + + + + Template + + + + Types: + 类型: + + + Separate the types by comma. + + + + Comparison: + + + + Assignment: + + + + Return expression: + + + + Return type: + + + + Use <new> and <cur> to access the parameter and current value. Use <type> to access the type and <T> for the template parameter. + + + + Add + 添加 + + + Remove + 删除 + + + Normally arguments get passed by const reference. If the Type is one of the following ones, the argument gets passed by value. Namespaces and template arguments are removed. The real Type must contain the given Type. For example, "int" matches "int32_t" but not "vector<int>". "vector" matches "std::pmr::vector<int>" but not "std::optional<vector<int>>" + + + + Value types: + + + + Return non-value types by const reference + + + + Use <name> for the variable +Use <camel> for camel case +Use <snake> for snake case +Use <Name>, <Camel> and <Snake> for upper case +e.g. name = "m_test_foo_": +"set_<name> => "set_test_foo" +"set<Name> => "setTest_foo" +"set<Camel> => "setTestFoo" + + + + + CppSourceProcessor + + %1: No such file or directory + %1: 没有文件或者目录 + + + %1: Could not get file contents + + + + + CppTypeHierarchyTreeView + + Open in Editor + + + + Open Type Hierarchy + 打开类型分层 + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + + Cppcheck::Internal::CppcheckOptionsPage + + Cppcheck + + + + + Cppcheck::Internal::CppcheckPlugin + + Cppcheck + + + + Go to previous diagnostic. + + + + Go to next diagnostic. + + + + Clear + + + + Cppcheck... + + + + + Cppcheck::Internal::CppcheckTool + + Cppcheck started: "%1". + + + + Cppcheck finished. + + + + + Cppcheck::Internal::DiagnosticView + + Cppcheck Diagnostics + + + + + Cppcheck::Internal::DiagnosticsModel + + Diagnostic + + + + + Cppcheck::Internal::ManualRunDialog + + Cppcheck Run Configuration + + + + Analyze + 分析 + + + + CppcheckOptionsPage + + Warnings + + + + Style + 风格 + + + Performance + + + + Portability + + + + Information + + + + Unused functions + + + + Missing includes + + + + Inconclusive errors + + + + Check all define combinations + + + + Show raw output + + + + Add include paths + + + + Calculate additional arguments + + + + Disables multithreaded check. + + + + Comma-separated wildcards of full file paths. Files still can be checked if others include them. + + + + Can find missing includes but makes checking slower. Use only when needed. + + + + Like C++ standard and language. + + + + Binary: + + + + Checks: + + + + Custom arguments: + + + + Ignored file patterns: + 被忽略的文件模式: + + + + CrashHandler + + + +Collecting backtrace aborted by user. + + + + + CrashHandlerDialog + + Dialog + 对话框 + + + Icon + 图标 + + + Some useful information here... + + + + &Restart Qt Creator on close + + + + Copy the whole contents to clipboard. + + + + C&opy to clipboard + + + + Open the bug tracker web site. + + + + Report this &bug + + + + Debug the application with a new instance of Qt Creator. During debugging the crash handler will be hidden. + + + + Attach and &Debug + + + + Quit the handler and the crashed application. + + + + &Close + + + + &Restart %1 on close + + + + Run Debugger And Abort Collecting Backtrace? + + + + <html><head/><body><p><b>Run the debugger and abort collecting backtrace?</b></p><p>You have requested to run the debugger while collecting the backtrace was not finished.</p></body></html> + + + + Do not &ask again. + + + + %1 has closed unexpectedly (Signal "%2") + + + + <p><b>%1.</b></p><p>Please file a <a href='%2'>bug report</a> with the debug information provided below.</p> + + + + from revision %1 + + + + %1 %2%3, based on Qt %4 (%5 bit) + + + + + + CtfVisualizer + + Title + 标题 + + + Count + + + + Total Time + 总时间 + + + Percentage + + + + Minimum Time + + + + Average Time + + + + Maximum Time + + + + Stack Level %1 + + + + Value + + + + Min + + + + Max + + + + Start + + + + Wall Duration + + + + Unfinished + + + + true + + + + Thread %1 + + + + Categories + + + + Arguments + 参数 + + + Instant + + + + Scope + + + + global + + + + process + + + + thread + + + + Return Arguments + + + + CTF Visualizer + + + + Cannot read the CTF file. + + + + The trace contains threads with stack depth > 512. +Do you want to display them anyway? + + + + Chrome Trace Format Viewer + + + + Load JSON File + + + + Restrict to Threads + + + + Timeline + 时间轴 + + + Reset Zoom + 重置缩放 + + + Statistics + + + + Load Chrome Trace Format File + + + + JSON File (*.json) + + + + The file does not contain any trace data. + + + + Loading CTF File + + + + Chrome Trace Format Visualizer + + + + + CustomToolChain + + Custom + + + + GCC + GCC + + + Clang + Clang + + + ICC + + + + MSVC + MSVC Debugger - Delete Breakpoint - 删除断点 + General + 概要 + + + Locals && Expressions + '&&' will appear as one (one is marking keyboard shortcut) + 局部变量和表达式(&&) + + + Debugger + Category under which Analyzer tasks are listed in Issues view + 调试器 + + + <Encoding error> + <编码错误> + + + Load Core File + 载入核心文件 + + + Use local core file: + 使用本地核心文件: + + + Select Executable + 选择执行档 + + + Kit: + 构建套件(Kit): + + + Core file: + 核心文件: + + + Override &start script: + 覆盖启动脚本(&S): + + + Select Remote Core File + 选择远程核心文件 + + + Select Core File + 选择核心文件 + + + Select Startup Script + 选择启动脚本 + + + Select Start Address + 选择开始地址 + + + Marker File: + 标记文件: + + + Marker Line: + 标记行: + + + Breakpoint Address: + 断点地址: + + + Property + 属性 + + + Breakpoint Type: + 断点类型: + + + Breakpoint + 断点 + + + Requested + 请求 + + + Obtained + 获得 + + + File Name: + 文件名: + + + Function Name: + 函数名: + + + Breakpoint on QML Signal Emit + 在QML信号发出时断点 + + + Data at 0x%1 + 数据在0x%1 + + + Data at %1 + 数据在%1 + + + Enabled + 启用 + + + Disabled + 禁用 + + + Line Number: + 行号: + + + Module: + 模块: + + + Message: + 消息: + + + Condition: + 条件: + + + Ignore Count: + 忽略次数: + + + Thread Specification: + 线程信息: + + + Function + 函数 + + + New + 新建 + + + Insertion requested + 请求插入 + + + Insertion proceeding + 执行插入 + + + Change requested + 请求改变 + + + Change proceeding + 执行改变 + + + Breakpoint inserted + 加入断点 + + + Removal requested + 移除请求 + + + Removal proceeding + 移除执行 + + + Dead + 死亡 + + + <invalid state> + Invalid breakpoint state. + <无效状态> + + + Breakpoint at "%1" + 在"%1"处的断点 + + + Breakpoint by File and Line + 文件和行处的断点 + + + Breakpoint by Function + 函数处断点 + + + Breakpoint by Address + 地址处断点 + + + Breakpoint at Function "main()" + 在"main"函数处断点 + + + Watchpoint at Address + 监视点在地址 + + + Watchpoint at Expression + 监视点在表达式 + + + Breakpoint at JavaScript throw + JavaScript 异常处的断点 + + + Unknown Breakpoint Type + 未知的断点类型 + + + File + 文件 + + + Line + 行号 + + + Number + 编号 + + + Condition + 条件 + + + Ignore + 忽略 + + + Breakpoint will only be hit if this condition is met. + 只有当条件满足时才会到达断点。 + + + Breakpoint will only be hit after being ignored so many times. + 断点将会在被忽略足够次数后到达。 + + + (all) + (全部) + + + Breakpoint will only be hit in the specified thread(s). + 断点只会在指定线程中被触发。 + + + Startup + 启动 + + + Use CDB &console + 使用 CDB 控制台(&C) + + + Correct breakpoint location + 校准断点位置 + + + Log Time Stamps + 记录时间戳 + + + Operate by Instruction + 依照命令操作 + + + Dereference Pointers Automatically + 自动去除对指针的引用 + + + Show "std::" Namespace in Types + 在类型中显示“std::”命名空间 + + + Show Qt's Namespace in Types + 在类型中显示Qt的命名空间 + + + Use Debugging Helpers + 使用调试助手 + + + Sort Members of Classes and Structs Alphabetically + 按字母顺序排序类和结构体的成员 + + + Adjust Breakpoint Locations + 对准断点位置 + + + Break on "throw" + 在抛出(throw)处中断 + + + Break on "catch" + 在捕获(catch)处中断 + + + Break on "qWarning" + 遇到"qWarning"时中断 + + + Break on "qFatal" + 遇到"qFatal"时中断 + + + Break on "abort" + 在“abort”时中断 + + + Use Dynamic Object Type for Display + 显示时使用动态对象类型(Dynamic Object Type) + + + Automatically Quit Debugger + 自动退出调试器 + + + Use tooltips in main editor when debugging + 调试时在主编辑器中使用工具提示 + + + Use Tooltips in Locals View when Debugging + 调试时在“局部变量”视图中使用工具提示 + + + Use Tooltips in Breakpoints View when Debugging + 调试时在“断点”视图中使用工具提示 + + + Skip Known Frames + 跳过已知帧 + + + Enable Reverse Debugging + 打开反向调试 + + + Reload Full Stack + 重新载入完整堆栈 + + + Create Full Backtrace + 创建完整回溯(Backtrace) + + + Use code model + 使用代码模型 + + + Display thread names + 显示线程名称 + + + An exception was triggered. + 异常被触发。 + + + Stopping temporarily. + 临时停止。 + + + Executable Failed + 执行失败 + + + Jumped. Stopped. + 跳转。停止。 + + + Application exited with exit code %1 + 程序退出,退出代码 %1 + + + Application exited after receiving signal %1 + 程序接收到信号 %1 后退出 + + + Value changed from %1 to %2. + 值从%1 变到 %2。 + + + Normal + 正常 + + + Cannot Read Symbols + 无法读取符号 + + + Cannot read symbols for module "%1". + 无法为模块"%1"读取符号。 + + + Could not find a widget. + 无法找到控件。 + + + GDB I/O Error + GDB I/O 错误 + + + Setting up inferior... + 正在设置 inferior... + + + Stop requested... + 请求停止... + + + Process failed to start. + 进程启动失败。 + + + Executable failed: %1 + 执行失败: %1 + + + Stopping temporarily + 临时停止 + + + Step requested... + 请求单步执行... + + + Finish function requested... + 请求完成函数... + + + Step next requested... + 请求执行下一步... + + + Run to line %1 requested... + 请求执行到行%1... + + + Run to function %1 requested... + 请求执行到函数: %1 ... + + + Immediate return from function requested... + 请求立即从函数中返回... + + + Found. + 已找到。 + + + The gdb process could not be stopped: +%1 + Gdb 进程无法停止: +%1 + + + Application process could not be stopped: +%1 + 应用进程无法被停止: +%1 + + + Connecting to remote server failed: +%1 + 连接远程服务器失败: +%1 + + + Disassembler failed: %1 + 反汇编失败:%1 + + + Stopped at breakpoint %1 in thread %2. + 在线程 %2 的断点 %1 处停止。 + + + Snapshot Creation Error + 快照生成错误 + + + Cannot create snapshot file. + 无法创建快照文件。 + + + Setting breakpoints... + 正在设置断点... + + + Execution Error + 执行错误 + + + Cannot continue debugged process: + + 无法继续调试进程: + + + + Library %1 loaded. + 载入了库%1 + + + Library %1 unloaded. + 卸载了库%1 + + + Thread group %1 created. + 创建了线程组 %1 。 + + + Thread %1 created. + 线程 %1 被创建。 + + + Thread group %1 exited. + 线程组 %1 退出了。 + + + Thread %1 in group %2 exited. + 组别%2 中的线程 %1退出了。 + + + Thread %1 selected. + 选中了线程%1 。 + + + Reading %1... + 读取%1中 ... + + + Retrieving data for stack view... + 为堆栈视图获取数据... + + + <%n items> + + <%n 项> + + + + Finished retrieving data. + 获取数据完成。 + + + GDB timeout: + Gdb超时时间: + + + sec + + + + Skip known frames when stepping + 当单步调试时跳过已知的帧 + + + <html><head/><body><p>Allows <i>Step Into</i> to compress several steps into one step +for less noisy debugging. For example, the atomic reference +counting code is skipped, and a single <i>Step Into</i> for a signal +emission ends up directly in the slot connected to it. + <html><head/><body><p>允许 <i>‘单步进入’</i>将多个步骤合并为一步 +以减少调试的冗余情况。例如原子级的计数代码,和 +信号发出引起的单个 <i>‘单步进入’</i> 直接进到与信号连接的槽。 + + + Show a message box when receiving a signal + 接到信号时显示消息窗口 + + + Displays a message box as soon as your application +receives a signal like SIGSEGV during debugging. + 当您的应用程序在调试过程中收到系统信号, +比如SIGSEGV时,显示一个消息窗口. + + + Adjust breakpoint locations + 对准断点位置 + + + GDB allows setting breakpoints on source lines for which no code +was generated. In such situations the breakpoint is shifted to the +next source code line for which code was actually generated. +This option reflects such temporary change by moving the breakpoint +markers in the source code editor. + GDB允许在不生成代码的源码行设置断点。 +在这种情况下断点被调整到下一个实际生成代码的源码行。 +这个选项通过在源码编辑器中移动断点标记,来显示这项变动。 + + + Use dynamic object type for display + 显示时使用动态对象类型(dynamic object type) + + + Specifies whether the dynamic or the static type of objects will be displayed. Choosing the dynamic type might be slower. + 选择显示对象的动态的或静态的类型。选择动态类型的话可能会较慢。 + + + Load .gdbinit file on startup + 启动时载入.gdbinit 文件 + + + Allows or inhibits reading the user's default +.gdbinit file on debugger startup. + 允许或禁止调试器启动时读取 +用户的默认.gdbinit文件。 + + + Warn when debugging "Release" builds + 在调试"Release"构建时发出警告 + + + Use asynchronous mode to control the inferior + 使用异步模式来控制底层 + + + Use common locations for debug information + 对调试信息使用公共位置 + + + Enable reverse debugging + 打开反向调试 + + + Additional Startup Commands + 额外的启动命令 + + + GDB + GDB + + + Cannot create temporary file: %1 + 无法创建临时文件: %1 + + + Cannot create FiFo %1: %2 + 无法创建FIFo %1 : %2 + + + Cannot open FiFo %1: %2 + 无法打开FIFo %1 : %2 + + + Running requested... + 执行请求... + + + Stopped. + 已停止。 + + + Source Files + 源文件 + + + ... + ... + + + <More> + <更多> + + + Address: + 地址: + + + Function: + 函数: + + + File: + 文件: + + + Line: + 行号: + + + Note: + 注意: + + + Sources for this frame are available.<br>Double-click on the file name to open an editor. + 可以查看该帧的源代码。<br>在文件名上双击以打开编辑器。 + + + Level + 级别 + + + Thread&nbsp;id: + 线程&nbsp;id: + + + Target&nbsp;id: + 目标&nbsp;id: + + + Name: + 名称: + + + State: + 状态: + + + Core: + 核心: + + + Stopped&nbsp;at: + 停止&nbsp;于: + + + ID + ID + + + Core + 核心 + + + State + 状态 + + + Target ID + 目标 ID + + + Details + 详情 + + + Name + 名称 + + + Executable: + 执行档: + + + Arguments: + 参数: + + + Threads + 线程 + + + %1 <shadowed %2> + Display of variables shadowed by variables of the same name in nested scopes: Variable %1 is the variable name, %2 is a simple count. + %1 <隐藏了 %2> + + + Expression + 表达式 + + + Internal Type + 内部类型 + + + Object Address + 对象地址 + + + Static Object Size + 静态对象大小 + + + %n bytes + + %n 个字节 + + + + Internal ID + 内部ID + + + <empty> + <空> + + + <uninitialized> + <未初始化> + + + <invalid> + <无效> + + + <not accessible> + <无法访问> + + + %1 Object at %2 + 在 %2 的 %1 对象 + + + %1 Object at Unknown Address + 未知地址处的 %1对象 + + + returned value + 返回值 + + + Locals + 局部变量 + + + Inspector + 检查器 + + + Expressions + 表达式 + + + Return Value + 返回值 + + + Tooltip + 工具提示 + + + Locals and Expressions + 局部变量和表达式 + + + Use Display Format Based on Type + 使用基于类型的显示格式 + + + Clear Contents + 清空内容 + + + Save Contents + 保存内容 + + + CDB + CDB + + + Adapter start failed + 适配器启动失败 + + + Python Error + Python错误 + + + Pdb I/O Error + Pdb I/O 错误 + + + The Pdb process crashed some time after starting successfully. + Pdb 进程在正常启动后崩溃。 + + + An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel. + 尝试写入 Pdb 进程时发生错误。例如,进程可能不在运行或者它关闭了自己的输入通道。 + + + An error occurred when attempting to read from the Pdb process. For example, the process may not be running. + 尝试从 Pdb 进程读取时发生错误。例如,进程可能不在运行。 + + + Function Name + 函数名 + + + Basic + 基础 + + + Breakpoint &type: + 断点类型(&T): + + + &File name: + 文件名(&F): + + + &Line number: + 行号(&L): + + + &Enabled: + 启用(&E): + + + &Address: + 地址(&A): + + + Fun&ction: + 函数(&C): + + + Advanced + 高级 + + + T&racepoint only: + 仅跟踪点(&R): + + + &One shot only: + 仅触发一次(&O): + + + Pat&h: + 路径(&H): + + + &Module: + 模块(&M): + + + Use Engine Default + 使用默认引擎 + + + Use Full Path + 使用完整路径 + + + Use File Name + 使用文件名称 + + + &Commands: + 命令(&C): + + + C&ondition: + 条件(&O): + + + &Ignore count: + 忽略次数(&i): + + + &Expression: + 表达式(&E): + + + &Message: + 消息(&M): + + + Debugger Error + 调试器错误 + + + There is no CDB executable specified. + 没有指定CDB可执行档。 + + + Malformed stop response received. + 收到了格式错误的停止响应。 + + + Switching to main thread... + 切换到主线程... + + + Value %1 obtained from evaluating the condition of breakpoint %2, stopping. + 计算断点条件 %2获得了值%1, 停止。 + + + Value 0 obtained from evaluating the condition of breakpoint %1, continuing. + 计算断点条件 %1获得了值0, 继续。 + + + Select Local Cache Folder + 选择本地缓存目录 + + + Path: + 路径: + + + Already Exists + 已存在 + + + Cannot Create + 无法创建 + + + Remove Breakpoint + 删除断点 + + + Attempting to interrupt. + 正在尝试中断。 + + + Debug Information + 调试信息 + + + This debugger cannot handle user input. + 这个调试器无法处理用户的输入。 + + + Internal data breakpoint %1 at %2 triggered. + 在%2中的内部数据断点%1 被触发。 + + + Internal data breakpoint %1 at %2 in thread %3 triggered. + 线程%3中%2的内部数据断点%1 被触发。 + + + Internal data breakpoint %1 at 0x%2 triggered. + 在0x%2处的内部数据断点%1 被触发。 + + + Internal data breakpoint %1 at 0x%2 in thread %3 triggered. + 线程%3中0x%2处的内部数据断点%1 被触发。 + + + Loading finished. + 载入完成。 + + + Run failed. + 运行失败。 + + + Running. + 正在运行。 + + + Run requested... + 运行已请求... + + + Stopped: %1 (Signal %2). + 已停止: %1 (信号%2)。 + + + Stopped in thread %1 by: %2. + 在线程%1中停止,因为: %2。 + + + Interrupted. + 已中断。 + + + <p>The inferior stopped because it triggered an exception.<p>%1 + <p>底层停止了因为它触发了一个异常。<p>%1 + + + Exception Triggered + 异常被触发 + + + Taking notice of pid %1 + 注意pid %1 + + + Run to Address 0x%1 + 运行到地址0x%1 + + + Run to Line %1 + 运行到行%1 + + + Jump to Address 0x%1 + 跳到地址0x%1 + + + Jump to Line %1 + 跳到行%1 + + + Invalid debugger option: %1 + 无效的调试选项: %1 + + + A debugging session is still in progress. Terminating the session in the current state can leave the target in an inconsistent state. Would you still like to terminate it? + 一个调试会话正在运行中。强行结束会话可能会导致会话状态异常,即使如此还是要结束它吗? + + + Close Debugging Session + 关闭调试会话 + + + This does not seem to be a "Debug" build. +Setting breakpoints by file name and line number may fail. + 没有选择Debug构建方式.为文件的某行设置断点可能会失败. + + + Type Ctrl-<Return> to execute a line. + 键入Ctrl-<Return> 执行一行。 + + + Command: + 命令: + + + Log File + 日志文件 + + + Internal Name + 内部名称 + + + Full Name + 全名 + + + Edit Breakpoint Properties + 编辑断点属性 + + + &Condition: + 条件(&C): + + + &Thread specification: + 线程信息(&T): + + + Start a CDB Remote Session + 启动一个CDB远程会话 + + + &Connection: + 连接(&C): + + + Memory... + 内存... + + + No function selected. + 没有选择函数。 + + + Running to function "%1". + 运行到函数"%1"。 + + + Process %1 + %1: PID + 进程%1 + + + Attaching to local process %1. + attach到本地进程%1。 + + + Remote: "%1" + 远程:'%1' + + + Attaching to remote server %1. + 关联到远程服务器%1。 + + + Core file "%1" + 核心文件'%1' + + + Attaching to core file %1. + 关联到核心文件 %1。 + + + Crashed process %1 + 崩溃的进程%1 + + + Attaching to crashed process %1 + attach到崩溃的进程%1 + + + 0x%1 hit + Message tracepoint: Address hit. + 命中地址0x%1 + + + %1:%2 %3() hit + Message tracepoint: %1 file, %2 line %3 function hit. + 命中%1:%2 %3() + + + Add Message Tracepoint + 添加消息追踪点 + + + Executable file "%1" + 可执行文件:"%1" + + + Debugging file %1. + 调试文件%1。 + + + Cannot attach to process with PID 0 + 无法attach到PID为0的进程 + + + Set Breakpoint at 0x%1 + 在0x%1处设置断点 + + + Set Message Tracepoint at 0x%1... + 在0x%1处设置消息追踪点... + + + Save Debugger Log + 保存调试器日志 + + + User commands are not accepted in the current state. + 在当前状态下不能接收用户的命令。 + + + Debugger finished. + 调试器已结束。 + + + Continue + 继续 + + + Interrupt + 中断 + + + Abort Debugging + 终止调试 + + + Aborts debugging and resets the debugger to the initial state. + 终止调试并重置调试器到初始状态。 + + + Step Over + 单步跳过 + + + Step Into + 单步进入 + + + Step Out + 单步跳出 + + + Run to Line + 执行到行 + + + Run to Selected Function + 运行到选择的函数 + + + Immediately Return From Inner Function + 从内层函数立即返回 + + + Jump to Line + 跳到指定行 + + + Reverse Direction + 掉转方向 + + + Move to Called Frame + 移动到被调用的帧 + + + Move to Calling Frame + 移动到调用帧 + + + Error evaluating command line arguments: %1 + 命令行参数赋值错误: %1 + + + Start Debugging + 开始调试 + + + Start and Debug External Application... + 启动和调试外部应用程序... + + + Attach to QML Port... + 关联到QML端口... + + + Attach to Remote CDB Session... + 挂接到一个CDB会话... + + + Detach Debugger + 脱离调试器 + + + Interrupt Debugger + 中断调试器 + + + Stop Debugger + 停止调试 + + + Process Already Under Debugger Control + 进程已在调试器控制之下 + + + Set Breakpoint at Line %1 + 在第%1行设置断点 + + + Set Message Tracepoint at Line %1... + 在%1行设置消息追踪点... + + + Disassemble Function "%1" + 反汇编函数 "%1" + + + Starting debugger "%1" for ABI "%2"... + 为 ABI '%2'启动调试器'%1'... + + + Ctrl+Y + Ctrl+Y + + + F5 + F5 + + + Select + 选择 + + + Start Debugging Without Deployment + 忽略部署直接开始调试 + + + Load Core File... + 载入核心文件... + + + Attach to Running Application... + 关联到运行中的程序... + + + Attach to Running Application + 关联到运行中的程序 + + + Shift+Ctrl+Y + Shift+Ctrl+Y + + + Shift+F5 + Shift+F5 + + + Reset Debugger + 重置调试器 + + + Ctrl+Shift+O + Ctrl+Shift+O + + + F10 + F10 + + + Ctrl+Shift+I + Ctrl+Shift+I + + + F11 + F11 + + + Ctrl+Shift+T + Ctrl+Shift+T + + + Shift+F11 + Shift+F11 + + + Shift+F8 + Shift+F8 + + + Ctrl+F10 + Ctrl+F10 + + + Ctrl+F6 + Ctrl+F6 + + + F8 + F8 + + + F9 + F9 + + + Threads: + 线程: + + + Symbol + 符号 + + + Address + 地址 + + + Code + 代码 + + + Section + + + + Symbols in "%1" + "%1" 中的符号 + + + <new source> + <新源> + + + <new target> + <新目标> + + + Source path + 源路径 + + + Target path + 目标路径 + + + Add + 添加 + + + Add Qt sources... + 添加Qt 源码... + + + Remove + 删除 + + + Source Paths Mapping + 源码路径映射 + + + &Source path: + 源路径(&S): + + + &Target path: + 目标路径(&T): + + + Qt Sources + Qt 源码 + + + Debugging complex command lines is currently not supported on Windows. + 调试复杂的命令行目前在windows下尚不支持。 + + + Memory at 0x%1 + 在 0x%1地址处的内存 + + + No Memory Viewer Available + 没有可用的内存查看器 + + + The memory contents cannot be shown as no viewer plugin for binary data has been loaded. + 没有载入二进制数据查看器插件,无法显示内存内容。 + + + No application output received in time + 没有及时收到应用程序的输出 + + + Could not connect to the in-process QML debugger. +Do you want to retry? + 无法连接到进程内(in-process)QML调试器。 +您想要重试吗? + + + JS Source for %1 + %1的JS源码 + + + Run to line %1 (%2) requested... + 请求执行到行 %1(%2)... + + + QML Debugger disconnected. + QML调试器连接已断开。 + + + From: + 从: + + + To: + 到: + + + C++ exception + C++ 异常 + + + Thread creation + 线程创建 + + + Thread exit + 线程退出 + + + Load module: + 载入模块: + + + Unload module: + 卸载模块: + + + Output: + 输出: + + + Use alternating row colors in debug views + 在调试视图交替行的颜色 + + + Debugger font size follows main editor + 调试器字体和主编辑器一致 + + + Switch to previous mode on debugger exit + 在调试器退出时切换到上一个模式 + + + Show QML object tree + 显示QML对象树 + + + Maximum stack depth: + 最大堆栈深度: + + + <unlimited> + <无限制> + + + Stop when %1() is called + 当%1()被调用时停止 Delete All Breakpoints @@ -44560,22 +16019,10 @@ Please choose a valid package name for your application (e.g. "org.example. Delete Breakpoints of File 删除文件的断点 - - Adjust Column Widths to Contents - 按内容调整列宽 - Edit Breakpoint... 编辑断点... - - Associate Breakpoint With All Threads - 关联断点到所有线程 - - - Associate Breakpoint With Thread %1 - 关联断点到线程 %1 - Synchronize Breakpoints 同步断点 @@ -44604,9 +16051,6 @@ Please choose a valid package name for your application (e.g. "org.example. Add Breakpoint 添加断点 - - - Debugger Start Debugger 启动调试器 @@ -44619,18 +16063,6 @@ Please choose a valid package name for your application (e.g. "org.example. Select Working Directory 选择工作目录 - - Select Server Start Script - 选择服务器启动脚本 - - - This option can be used to point to a script that will be used to start a debug server. If the field is empty, Qt Creator's default methods to set up debug servers will be used. - 该选项可以用于指出用于启动调试服务器的脚本。如果该项为空,将使用Qt Creator默认的方法设置调试服务器。 - - - &Server start script: - 服务器启动脚本(&S): - Select Location of Debugging Information 选择调试信息的位置 @@ -44719,44 +16151,10 @@ Please choose a valid package name for your application (e.g. "org.example. Misc Types 其他类型 - - - Debugger - - Manage... - 管理... - The debugger to use for this kit. 当前构建套件使用的调试器。 - - Auto-detect - 自动检测 - - - Edit... - 编辑... - - - Debugger: - 调试器: - - - Debugger for "%1" - "%1"的调试器 - - - - Debugger - - &Engine: - 引擎(&E): - - - &Binary: - 二进制(&B): - 64-bit version 64 位版本 @@ -44765,26 +16163,10 @@ Please choose a valid package name for your application (e.g. "org.example. 32-bit version 32 位版本 - - <html><body><p>Specify the path to the <a href="%1">Windows Console Debugger executable</a> (%2) here.</p></body></html> - Label text for path configuration. %2 is "x-bit version". - <html><body><p>在这里指定到 <a href="%1">Windows 控制台调试器执行档</a>(%2)的路径。</p></body></html> - - - - Debugger No debugger set up. 调试器未设置。 - - Debugger '%1' not found. - 调试器'%1'未找到。 - - - Debugger '%1' not executable. - 调试器 '%1'不可执行。 - The debugger location must be given as an absolute path (%1). 调试器的路径必须给出绝对路径(%1)。 @@ -44797,36 +16179,6 @@ Please choose a valid package name for your application (e.g. "org.example. %1 using "%2" %1使用"%2" - - GDB Engine - GDB 引擎 - - - CDB Engine - CDB 引擎 - - - LLDB Engine - LLDB 引擎 - - - No kit found. - 未找到构建套件。 - - - - DeviceProcessesDialog - - &Attach to Process - &Attach到进程 - - - - Debugger - - Debugger Settings - 调试器的设置 - Enable C++ 启用C++ @@ -44835,10 +16187,6 @@ Please choose a valid package name for your application (e.g. "org.example. Enable QML 启用QML - - Debug port: - 调试端口: - <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">What are the prerequisites?</a> <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">先决条件是什么?</a> @@ -44851,47 +16199,6 @@ Please choose a valid package name for your application (e.g. "org.example. Debug 调试 - - Unable to create a debugger engine of the type '%1' - 无法为类型'%1'创建调试引擎 - - - Starting executable failed: - - 启动执行档失败: - - - - Attached to process %1. - attach到进程%1。 - - - Open Qt Options - 打开Qt选项 - - - Turn off Helper Usage - 关闭助手应用 - - - Continue Anyway - 依然继续 - - - Debugging Helper Missing - 缺失调试助手 - - - The debugger could not load the debugging helper library. - 调试器无法装载调试帮助库。 - - - The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. In the Qt Creator Build and Run preferences page, select a Qt version, expand the Details section and click Build All. - 调试助手用于美化一些Qt和标准库类型数据的显示格式。它必须为每个使用的Qt版本单独编译。在Qt Creator的“构建和运行”首选项页面,选择一个Qt版本,打开 “详情”部分然后点击“构建所有”。 - - - - Debugger Error Loading Core File 载入核心文件出错 @@ -44912,137 +16219,30 @@ Please choose a valid package name for your application (e.g. "org.example. Symbols found. 找到符号。 - - No symbols found in core file <i>%1</i>. - 核心文件中找不到符号 <i>%1</i>。 - This can be caused by a path length limitation in the core file. 此问题可能是由核心文件中的路径长度限制引起。 - - Try to specify the binary using the <i>Debug->Start Debugging->Attach to Core</i> dialog. - 尝试用<i>调试->开始调试->关联到核心</i>对话框指定二进制文件。 - Attached to core. 关联到核心。 - - Attach to core "%1" failed: - - 关联到核心 %1失败: - - - - - Debugger Cannot set up communication with child process: %1 无法设置与子进程的通讯: %1 - - - Debugger - - The upload process failed to start. Shell missing? - 上载进程启动失败,缺少Shell? - - - The upload process crashed some time after starting successfully. - 上载进程成功启动后崩溃。 - The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. 最后一次waitFor...()函数超时。QProcess的状态未改变,您可以尝试再次调用waitFor...()。 - - An error occurred when attempting to write to the upload process. For example, the process may not be running, or it may have closed its input channel. - 尝试写入上载进程时发生了错误。例如进程可能没有在运行,或者可能关闭了输入通道。 - - - An error occurred when attempting to read from the upload process. For example, the process may not be running. - 尝试从上载进程读取时发生错误。例如进程可能没有在运行。 - - - An unknown error in the upload process occurred. This is the default return value of error(). - 上传程序发生了一个未知错误。这是error()的默认返回值。 - No symbol file given. 未给出符号文件。 - - Reading debug information failed: - - 读取调试信息失败: - - - - Interrupting not possible - 不可中断 - - - - Debugger - - Remote Error - 远程错误 - - - Could not retrieve list of free ports: - 无法获取空闲端口的列表: - - - Process aborted - 进程退出 - - - Running command: %1 - 执行命令:%1 - - - Connection error: %1 - 连接错误:%1 - - - Starting gdbserver... - 启动 gdbserver... - - - Port %1 is now accessible. - 端口 %1 现在可以访问。 - - - Server started on %1:%2 - 服务器在 %1启动: %2 - - - Cannot find local executable for remote process "%1". - 找不到远程进程 %1的本地执行档。 - - - Cannot find ABI for remote process "%1". - 找不到远程进程 %1的ABI。 - - - Remote: "%1:%2" - 远程:'%1: %2" - - - Process gdbserver finished. Status: %1 - gdbserver进程完成。状态: %1 - - - - Debugger Download of remote file succeeded. 远程文件下载成功。 - - - Debugger Module Name 模块名称 @@ -45110,12 +16310,6 @@ Use "Examine Symbols" from the context menu to initiate a check. 这个模块既不包含也不引用调试信息。 单步进入模块或按文件和行号设置断点将不起作用。 - - - This module contains debug information. -Stepping into the module or setting breakpoints by file and is expected to work. - 这个模块包含调试信息。 -单步进入模块或按文件设置断点应当正常工作。 This module does not contain debug information itself, but contains a reference to external debug information. @@ -45127,9 +16321,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. End address of loaded module <未知> - - - Debugger Update Module List 更新模块列表 @@ -45178,92 +16369,10 @@ Stepping into the module or setting breakpoints by file and is expected to work. Show Dependencies of "%1" 显示"%1"的依赖 - - - Debugger - - Connecting to debug server %1:%2 - 连接到调试服务器%1:%2 - - - Error: (%1) %2 - %1=error code, %2=error message - 错误:(%1) %2 - - - Disconnected. - - - 连接已断开。 - - - - - Resolving host. - 正在解析主机。 - - - Connecting to debug server. - 正在连接到调试服务器。 - - - Connected. - - 已连接。 - - - - Closing. - 正在关闭。 - - - - Debugger - - Success: - 成功: - Properties 属性 - - - Debugger - - The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. - 要想更改第%2行第%3列的%1属性,必须重新载入QML应用。 - - - The %1 element at line %2, column %3 cannot be changed without reloading the QML application. - 要想更改第%2行第%3列的%1元素,必须重新载入QML应用。 - - - The changes in JavaScript cannot be applied without reloading the QML application. - 要想应用JavaScript中的更改,必须重新载入QML程序。 - - - The changes made cannot be applied without reloading the QML application. - 要想应用更改,必须重新载入QML程序。 - - - You can continue debugging, but behavior can be unexpected. - 您可以继续调试,但是可能得到意外的结果。 - - - Reload QML - 重新载入QML - - - - Debugger - - Anonymous Function - 匿名函数 - - - - Debugger Reload Register Listing 重新载入寄存器列表 @@ -45312,24 +16421,10 @@ Stepping into the module or setting breakpoints by file and is expected to work. Binary 二进制 - - - Debugger - - Snapshots - 快照 - Create Snapshot 创建快照 - - Remove Snapshot - 移除快照 - - - - Debugger Reload Data 重新载入数据 @@ -45338,10 +16433,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Open File 打开文件 - - Open File "%1"' - 打开文件 "%1" - Disassemble Function 反汇编函数 @@ -45366,9 +16457,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Frame #%1 (%2) 帧#%1 (%2) - - - Debugger <i>%1</i> %2 at #%3 HTML tooltip of a variable in the memory editor @@ -45383,14 +16471,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Register <i>%1</i> 寄存器<i>%1</i> - - Memory Referenced by Pointer "%1" (0x%2) - 被指针'%1'引用的内存 (0x%2) - - - Memory at Variable "%1" (0x%2) - 变量'%1'所在的内存 (0x%2) - Cannot Display Stack Layout 无法显示堆栈布局 @@ -45419,10 +16499,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Remove Expression Evaluator for "%1" 删除 "%1"的表达式求值器 - - Change Local Display Format... - 改变局部变量显示的格式... - Treat All Characters as Printable 所有字符都按可打印字符对待 @@ -45447,10 +16523,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Use Format for Type (Currently %1) 对类型(当前为 %1)使用格式 - - Use Display Format Based on Type - 按照类型选择显示的格式 - Change Display for Type "%1": 为类型"%1"改变显示: @@ -45459,30 +16531,14 @@ Stepping into the module or setting breakpoints by file and is expected to work. Automatic 自动 - - Change Display for Type or Item... - 为类型或项改变显示... - - - Add Data Breakpoint... - 添加数据断点... - Add Data Breakpoint at Object's Address (0x%1) 在对象地址(0x%1)添加数据断点 - - Add Data Breakpoint at Referenced Address (0x%1) - 在引用地址(0x%1)添加数据断点 - Add Data Breakpoint 添加数据断点 - - Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified. - 在一个地址处设置数据断点,当这个地址处的数据被修改时将导致程序停止。 - Add Data Breakpoint at Expression 在表达式处添加数据断点 @@ -45491,14 +16547,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Add Data Breakpoint at Expression "%1" 在表达式"%1"处添加数据断点 - - Setting a data breakpoint on an expression will cause the program to stop when the data at the address given by the expression is modified. - 在一个表达式上设置数据断点,当数据在这个表达式处被修改时将导致程序停止。 - - - Insert New Expression Evaluator - 插入新的表达式求值器 - Select Widget to Add into Expression Evaluator 选择要添加到表达式求值器的控件 @@ -45527,22 +16575,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Open Memory View at Object's Address 在对象地址打开内存查看器 - - Open Memory Editor at Referenced Address (0x%1) - 在引用地址(0x%1)处打开内存编辑器 - - - Open Memory View at Referenced Address (0x%1) - 在引用地址(0x%1)处打开内存查看器 - - - Open Memory Editor at Referenced Address - 在引用的地址打开内存编辑器 - - - Open Memory View at Referenced Address - 在引用地址打开内存查看器 - Open Memory Editor Showing Stack Layout 打开内存编辑器显示堆栈布局 @@ -45551,33 +16583,4746 @@ Stepping into the module or setting breakpoints by file and is expected to work. Copy Contents to Clipboard 复制内容到剪贴板 - - Copy Value to Clipboard - 复制数值到剪贴板 - - - Show View Contents in Editor - 在编辑器中显示视图内容 - Close Editor Tooltips 关闭编辑器工具提示 - - Enter Expression for Evaluator - 为求值器输入表达式 - - - Expression: - 表达式: - Locals & Expressions 局部变量和表达式 + + &Copy + 复制(&C) + + + &Show in Editor + 在编辑器中显示(&S) + + + C&lear + hard to tell if it is lowercase L or capital i + 清空(&L) + + + Show debug, log, and info messages. + 显示调试、日志和信息消息。 + + + Warning + 警告 + + + Show warning messages. + 显示警告消息。 + + + Global + + + + Custom + + + + Restore Global + 还原全局设置 + + + Use Customized Settings + + + + Use Global Settings + + + + Copy + 复制 + + + Start Remote Analysis + 开始远程分析 + + + Working directory: + 工作目录: + + + File Name and Line Number + + + + Break on Memory Address + + + + Break When C++ Exception Is Thrown + + + + Break When C++ Exception Is Caught + + + + Break When Function "main" Starts + + + + Break When a New Process Is Forked + + + + Break When a New Process Is Executed + + + + Break When a System Call Is Executed + + + + Break on Data Access at Fixed Address + + + + Break on Data Access at Address Given by Expression + + + + Break on QML Signal Emit + + + + Break When JavaScript Exception Is Thrown + + + + <p>Determines how the path is specified when setting breakpoints:</p><ul><li><i>Use Engine Default</i>: Preferred setting of the debugger engine.</li><li><i>Use Full Path</i>: Pass full path, avoiding ambiguities should files of the same name exist in several modules. This is the engine default for CDB and LLDB.</li><li><i>Use File Name</i>: Pass the file name only. This is useful when using a source tree whose location does not match the one used when building the modules. It is the engine default for GDB as using full paths can be slow with this engine.</li></ul> + + + + Specifying the module (base name of the library or executable) for function or file type breakpoints can significantly speed up debugger startup times (CDB, LLDB). + + + + Debugger commands to be executed when the breakpoint is hit. This feature is only available for GDB. + + + + Propagate Change to Preset Breakpoint + + + + Delete Selected Breakpoints + + + + Edit Selected Breakpoints... + + + + Disable Selected Locations + + + + Enable Selected Locations + + + + Disable Location + + + + Enable Location + + + + Internal ID: + + + + pending + + + + Hit Count: + + + + Display Name: + + + + Unclaimed Breakpoint + + + + Debuggee + + + + Remove All Breakpoints + + + + Are you sure you want to remove all breakpoints from all files in the current session? + + + + Failed to Start the Debugger + + + + Internal error: The extension %1 cannot be found. +If you have updated %2 via Maintenance Tool, you may need to rerun the Tool and select "Add or remove components" and then select the Qt > Tools > Qt Creator CDB Debugger Support component. +If you build %2 from sources and want to use a CDB executable with another bitness than your %2 build, you will need to build a separate CDB extension with the same bitness as the CDB you want to use. + + + + Trace point %1 in thread %2 triggered. + + + + Conditional breakpoint %1 in thread %2 triggered, examining expression "%3". + + + + Debugger encountered an exception: %1 + + + + The installed %1 is missing debug information files. +Locals and Expression might not be able to display all Qt types in a human readable format. + +Install the "Qt Debug Information Files" Package from the Maintenance Tool for this Qt installation to get all relevant symbols for the debugger. + + + + Missing Qt Debug Information + + + + Module loaded: %1 + + + + Various + + + + Break On + + + + Add Exceptions to Issues View + + + + Symbol Paths + + + + Source Paths + + + + CDB Paths + + + + Always adds a breakpoint on the <i>%1()</i> function. + + + + The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals&quot; and &quot;Expressions&quot; views. + + + + Extra Debugging Helper + + + + Debugging Helper Customization + + + + Show error messages. + + + + QML Debugger Console + + + + Can only evaluate during a debug session. + + + + Configure Debugger... + + + + Always Adjust View Column Widths to Contents + + + + Keep editor stationary when stepping + + + + Scrolls the editor only when it is necessary to keep the current line in view, instead of keeping the next statement centered at all times. + + + + Force logging to console + + + + Sets QT_LOGGING_TO_CONSOLE=1 in the environment of the debugged program, preventing storing debug output in system logs. + + + + Changes the font size in the debugger views when the font size in the main editor changes. + + + + <p>This switches the Locals and Expressions views to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. + + + + Additional arguments: + 额外的参数: + + + Catches runtime error messages caused by assert(), for example. + + + + Uses CDB's native console for console applications. This overrides the setting in Environment > System. The native console does not prompt on application exit. It is suitable for diagnosing cases in which the application does not start up properly in the configured console and the subsequent attach fails. + + + + Attempts to correct the location of a breakpoint based on file and line number shouldit be in a comment or in a line for which no code is generated. The correction is based on the code model. + + + + Use Python dumper + + + + First chance exceptions + + + + Second chance exceptions + + + + Ignore first chance access violations + + + + Show "std::" namespace in types + + + + <p>Shows "std::" prefix for types from the standard library. + + + + Show Qt's namespace in types + + + + <p>Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with "-qtnamespace". + + + + Show QObject names if available + + + + <p>Displays the objectName property of QObject based items. Note that this can negatively impact debugger performance even if no QObjects are present. + + + + Sort members of classes and structs alphabetically + + + + <p>Selecting this causes the C++ Code Model being asked for variable scope information. This might result in slightly faster debugger operation but may fail for optimized code. + + + + <p>Displays names of QThread based threads. + + + + <p>Not all source code lines generate executable code. Putting a breakpoint on such a line acts as if the breakpoint was set on the next line that generated code. Selecting 'Adjust Breakpoint Locations' shifts the red breakpoint markers in such cases to the location of the true breakpoint. + + + + Load system GDB pretty printers + + + + Uses the default GDB pretty printers installed in your system or linked to the libraries your application uses. + + + + <html><head/><body>Adds common paths to locations of debug information such as <i>/usr/src/debug</i> when starting GDB.</body></html> + + + + Shows a warning when starting the debugger on a binary with insufficient debug information. + + + + <p>To execute simple Python commands, prefix them with "python".</p><p>To execute sequences of Python commands spanning multiple lines prepend the block with "python" on a separate line, and append "end" on a separate line.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p> + + + + GDB commands entered here will be executed after GDB has been started, but before the debugged program is started or attached, and before the debugging helpers are initialized. + + + + GDB commands entered here will be executed after GDB has successfully attached to remote targets.</p><p>You can add commands to further set up the target here, such as "monitor reset" or "load". + + + + Python commands entered here will be executed after built-in debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here. + + + + Extra Debugging Helpers + + + + Path to a Python file containing additional data dumpers. + + + + Stopping and stepping in the debugger will automatically open views associated with the current location. + + + + Close temporary source views on debugger exit + + + + Closes automatically opened source views when the debugger exits. + + + + Close temporary memory views on debugger exit + + + + Closes automatically opened memory views when the debugger exits. + + + + Enables a full file path in breakpoints by default also for GDB. + + + + Set breakpoints using a full absolute path + + + + Bring %1 to foreground when application interrupts + + + + Debug all child processes + + + + <html><head/><body>Keeps debugging all children after a fork.</body></html> + + + + Use Intel style disassembly + + + + GDB shows by default AT&&T style disassembly. + + + + Use annotations in main editor when debugging + + + + <p>Shows simple variable values as annotations in the main editor during debugging. + + + + Use pseudo message tracepoints + + + + Uses Python to extend the ordinary GDB breakpoint class. + + + + Use automatic symbol cache + + + + It is possible for GDB to automatically save a copy of its symbol index in a cache on disk and retrieve it from there when loading the same binary in the future. + + + + <p>Enables tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default. + + + + <p>Enables tooltips in the locals view during debugging. + + + + <p>Enables tooltips in the breakpoints view during debugging. + + + + Use Tooltips in Stack View when Debugging + + + + <p>Enables tooltips in the stack view during debugging. + + + + <html><head/><body><p>Enables stepping backwards.</p><p><b>Note:</b> This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</p></body></html> + + + + Registers %1 for debugging crashed applications. + + + + Use %1 for post-mortem debugging + + + + Display string length: + + + + <p>The maximum length of string entries in the Locals and Expressions views. Longer than that are cut off and displayed with an ellipsis attached. + + + + Maximum string length: + + + + <p>The maximum length for strings in separated windows. Longer strings are cut off and displayed with an ellipsis attached. + + + + The number of seconds before a non-responsive GDB process is terminated. +The default value of 20 seconds should be sufficient for most +applications, but there are situations when loading big libraries or +listing source files takes much longer than that on slow machines. +In this case, the value should be increased. + + + + Shows QML object tree in Locals and Expressions when connected and not stepping. + + + + Normally, the running server is identified by the IP of the device in the kit and the server port selected above. +You can choose another communication channel here, such as a serial line or custom ip:port. + + + + Override server channel: + + + + For example, %1 + "For example, /dev/ttyS0, COM1, 127.0.0.1:1234" + + + + Select SysRoot Directory + + + + This option can be used to override the kit's SysRoot setting. + + + + Override S&ysRoot: + + + + This option can be used to send the target init commands. + + + + &Init commands: + + + + This option can be used to send the target reset commands. + + + + &Reset commands: + + + + Use target extended-remote to connect: + + + + Attach to %1 + + + + <html><body><p>The remote CDB needs to load the matching %1 CDB extension (<code>%2</code> or <code>%3</code>, respectively).</p><p>Copy it onto the remote machine and set the environment variable <code>%4</code> to point to its folder.</p><p>Launch the remote CDB as <code>%5 &lt;executable&gt;</code> to use TCP/IP as communication protocol.</p><p>Enter the connection parameters as:</p><pre>%6</pre></body></html> + + + + Enter an address: + + + + Continue %1 + + + + Interrupt %1 + + + + Set or Remove Breakpoint + + + + Enable or Disable Breakpoint + + + + Restart Debugging + + + + Record Information to Allow Reversal of Direction + + + + Take Snapshot of Process State + + + + Launching Debugger + + + + Switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. + + + + &Modules + + + + Reg&isters + + + + Peripheral Reg&isters + + + + &Stack + + + + &Threads + + + + &Expressions + + + + &Breakpoints + + + + Restarts the debugging session. + + + + Current debugger location of %1 + + + + Debugging has failed. + + + + Record information to enable stepping backwards. + + + + Note: + + + + This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session. + + + + Operate in Reverse Direction + + + + The %1 process terminated. + + + + The %2 process terminated unexpectedly (exit code %1). + + + + Unexpected %1 Exit + + + + Reverse-execution history exhausted. Going forward again. + + + + Reverse-execution recording failed. + + + + %1 for "%2" + e.g. LLDB for "myproject", shows up i + + + + Stopped: "%1". + + + + <Unknown> + name + <未知> + + + <Unknown> + meaning + <未知> + + + <p>The inferior stopped because it received a signal from the operating system.<p><table><tr><td>Signal name : </td><td>%1</td></tr><tr><td>Signal meaning : </td><td>%2</td></tr></table> + + + + Signal Received + + + + Select a valid expression to evaluate. + + + + From + + + + To + + + + Flags + 标志 + + + Sections in "%1" + + + + The inferior is in the Portable Executable format. +Selecting %1 as debugger would improve the debugging experience for this binary format. + + + + The inferior is in the ELF format. +Selecting GDB or LLDB as debugger would improve the debugging experience for this binary format. + + + + Not found. + + + + Section %1: %2 + + + + The selected debugger may be inappropriate for the inferior. +Examining symbols and setting breakpoints by file name and line number may fail. + + + + + Not recognized + + + + Could not determine debugger type + + + + Type of Debugger Backend + + + + Unknown debugger version + + + + Unknown debugger ABI + + + + Path + + + + Type + 类型 + + + Type: + 类型: + + + ABIs: + + + + Version: + 版本: + + + Specify the path to the <a href="%1">Windows Console Debugger executable</a> (%2) here. + Label text for path configuration. %2 is "x-bit version". + + + + Clone + 克隆 + + + Clone of %1 + %1 的克隆 + + + New Debugger + + + + Restore + 还原 + + + Debuggers + + + + Auto-detected CDB at %1 + + + + Searching debuggers... + + + + System %1 at %2 + %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path + + + + Detected %1 at %2 + + + + Found: "%1" + + + + Auto-detected uVision at %1 + + + + Removing debugger entries... + + + + Removed "%1" + + + + Debuggers: + + + + Debugger "%1" not found. + + + + Debugger "%1" not executable. + + + + The ABI of the selected debugger does not match the toolchain ABI. + + + + Name of Debugger + + + + Unknown debugger + + + + Unknown debugger type + + + + No Debugger + + + + %1 Engine + + + + &Views + 视图(&V) + + + Leave Debug Mode + + + + Toolbar + + + + Editor + 编辑器 + + + Next Item + 下一项 + + + Previous Item + 上一项 + + + Attach to Unstarted Application... + + + + Attach to Running Debug Server... + + + + Start and Break on Main + + + + Reload Debugging Helpers + + + + &Analyze + 分析(&A) + + + Debugger Runtime + + + + Breakpoint Preset + + + + Running Debuggers + + + + Debugger Perspectives + + + + Start Debugging or Continue + + + + Attach to Unstarted Application + + + + Restart the debugging session. + + + + Ctrl+F8 + Ctrl+F8 + + + Ctrl+F9 + Ctrl+F9 + + + Show Application on Top + + + + Option "%1" is missing the parameter. + + + + Only one executable allowed. + + + + The parameter "%1" of option "%2" does not match the pattern <handle>:<pid>. + + + + Start debugging of startup project + + + + Start Debugging of Startup Project + + + + Reload debugging helpers skipped as no engine is running. + + + + The process %1 is already under the control of a debugger. +%2 cannot attach to it. + + + + Not a Desktop Device Type + + + + It is only possible to attach to a locally running process. + + + + Cannot start %1 without a project. Please open the project and try again. + + + + Profile + + + + Release + + + + in Debug mode + + + + in Profile mode + + + + in Release mode + + + + with debug symbols (Debug or Profile mode) + + + + on optimized code (Profile or Release mode) + + + + Run %1 in %2 Mode? + 在%2 模式下运行%1吗? + + + <html><head/><body><p>You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used %3.</p><p>Run-time characteristics differ significantly between optimized and non-optimized binaries. Analytical findings for one mode may or may not be relevant for the other.</p><p>Running tools that need debug symbols on binaries that don't provide any may lead to missing function names or otherwise insufficient output.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> + + + + <at least %n items> + + + + + + <optimized out> + + + + <null reference> + + + + <not callable> + + + + <out of scope> + + + + Debugger settings + 调试器的设置 + + + Additional startup commands: + + + + Unable to create a debugging engine. + + + + The kit does not have a debugger set. + + + + Unpacking core file to %1 + + + + Cannot debug: Local executable is not set. + + + + No executable specified. + + + + %1 is a 64 bit executable which can not be debugged by a 32 bit Debugger. +Please select a 64 bit Debugger in the kit settings for this kit. + + + + Debugged executable + + + + Unsupported CDB host system. + + + + Specify Debugger settings in Projects > Run. + + + + %1 - Snapshot %2 + + + + Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.<p>Affected are breakpoints %1 + + + + QML debugging needs to be enabled both in the Build and the Run settings. + + + + &Show this message again. + + + + Debugging %1 ... + + + + Debugging of %1 has finished with exit code %2. + + + + Debugging of %1 has finished. + + + + Not enough free ports for QML debugging. + + + + <p>Mappings of source file folders to be used in the debugger can be entered here.</p><p>This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.</p><p>If source is specified as a regular expression by starting it with an open parenthesis, the paths in the ELF are matched with the regular expression to automatically determine the source path.</p><p>Example: <b>(/home/.*/Project)/KnownSubDir -> D:\Project</b> will substitute ELF built by any user to your local project directory.</p> + + + + <p>Add a mapping for Qt's source folders when using an unpatched version of Qt. + + + + <p>The source path contained in the debug information of the executable as reported by the debugger + + + + <p>The actual location of the source tree on the local machine + + + + Value + + + + Expression %1 in function %2 from line %3 to %4 + + + + No valid expression + + + + %1 (Previous) + + + + %1 (Restored) + + + + Expression too complex + + + + Perspective + + + + Debugged Application + + + + Debugger Preset + + + + Abort Debugger + + + + The gdb process failed to start. + + + + An exception was triggered: + + + + The gdb process has not responded to a command within %n seconds. This could mean it is stuck in an endless loop or taking longer than expected to perform the operation. +You can choose between waiting longer or aborting debugging. + + + + + + GDB Not Responding + + + + Give GDB More Time + + + + Stop Debugging + + + + Setting Breakpoints Failed + + + + Cannot jump. Stopped. + + + + Target line hit, and therefore stopped. + + + + Application exited normally. + + + + The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for %3. Supported versions are Python 2.7 and 3.x. + + + + Cannot continue debugged process: + + + + Failed to Shut Down Application + + + + There is no GDB binary available for binaries in format "%1". + + + + Retrieving data for stack view thread %1... + + + + Cannot create snapshot: + + + + Cannot Find Debugger Initialization Script + + + + The debugger settings point to a script file at "%1", which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. + + + + The working directory "%1" is not usable. + + + + Adapter Start Failed + + + + Failed to start application: + + + + Failed to Start Application + + + + Application started. + + + + Application running. + + + + Attached to stopped application. + + + + Attaching to process %1. + + + + Attached to running application. + + + + Failed to attach to application: %1 + + + + No symbols found in the core file "%1". + + + + Try to specify the binary in Debug > Start Debugging > Load Core File. + + + + Starting executable failed: + + + + No Remote Executable or Process ID Specified + + + + No remote executable could be determined from your build system files.<p>In case you use qmake, consider adding<p>&nbsp;&nbsp;&nbsp;&nbsp;target.path = /tmp/your_executable # path on device<br>&nbsp;&nbsp;&nbsp;&nbsp;INSTALLS += target</p>to your .pro file. + + + + Continue Debugging + + + + Attach to core "%1" failed: + + + + Continuing nevertheless. + + + + Additional Attach Commands + + + + GDB Extended + + + + The options below give access to advanced or experimental functions of GDB.<br>Enabling them may negatively impact your debugging experience. + + + + Extended + + + + Color at %1,%2: red: %3 green: %4 blue: %5 alpha: %6 + + + + <Click to display color> + + + + Copy Image + + + + Open Image Viewer + + + + Adapter start failed. + + + + Interrupt requested... + + + + Unable to start LLDB "%1": %2 + + + + LLDB I/O Error + + + + The LLDB process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. + + + + The LLDB process crashed some time after starting successfully. + + + + An error occurred when attempting to write to the LLDB process. For example, the process may not be running, or it may have closed its input channel. + + + + An error occurred when attempting to read from the Lldb process. For example, the process may not be running. + + + + An unknown error in the LLDB process occurred. + + + + Download of remote file failed: %1 + + + + Select Executable or Symbol File + + + + Select a file containing debug information corresponding to the core file. Typically, this is the executable or a *.debug file if the debug information is stored separately from the executable. + + + + This option can be used to override the kit's SysRoot setting + + + + &Executable or symbol file: + + + + Debugger &Log + + + + Repeat last command for debug reasons. + + + + Note: This log contains possibly confidential information about your machine, environment variables, in-memory data of the processes you are debugging, and more. It is never transferred over the internet by %1, and only stored to disk if you manually use the respective option from the context menu, or through mechanisms that are not under the control of %1's Debugger plugin, for instance in swap files, or other plugins you might use. +You may be asked to share the contents of this log when reporting bugs related to debugger operation. In this case, make sure your submission does not contain data you do not want to or you are not allowed to share. + + + + + + Global Debugger &Log + + + + Memory at Register "%1" (0x%2) + + + + Register "%1" + + + + This module contains debug information. +Stepping into the module or setting breakpoints by file and line is expected to work. + + + + Show Source Files for Module + + + + Show Sections in File "%1" + + + + Show Sections + + + + The Pdb process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. + + + + An unknown error in the Pdb process occurred. + + + + RO + + + + WO + + + + RW + + + + N/A + N/A + + + [%1..%2] + + + + Access + + + + View Groups + + + + Format + 格式 + + + Could not connect to the in-process QML debugger. %1 + + + + Starting %1 + 正在启动 %1 %2 + {1?} + + + Waiting for JavaScript engine to interrupt on next statement. + + + + Cannot evaluate %1 in current stack frame. + + + + Context: + + + + Global QML Context + + + + QML Debugger: Connection failed. + + + + Success: + + + + <anonymous> + + + + Content as ASCII Characters + + + + Content as %1-bit Signed Decimal Values + + + + Content as %1-bit Unsigned Decimal Values + + + + Content as %1-bit Hexadecimal Values + + + + Content as %1-bit Octal Values + + + + Content as %1-bit Binary Values + + + + Content as %1-bit Floating Point Values + + + + A group of registers. + + + + Edit bits %1...%2 of register %3 + + + + A file named "%1" already exists. + + + + The folder "%1" could not be created. + + + + Insert Symbol Server... + + + + Adds the Microsoft symbol server providing symbols for operating system libraries. Requires specifying a local cache directory. + + + + Insert Symbol Cache... + + + + Uses a directory to cache symbols used by the debugger. + + + + Set up Symbol Paths... + + + + Configure Symbol paths that are used to locate debug symbol files. + + + + Set up Symbol Paths + + + + <html><head/><body><p>The debugger is not configured to use the public Microsoft Symbol Server.<br/>This is recommended for retrieval of the symbols of the operating system libraries.</p><p><span style=" font-style:italic;">Note:</span> It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.<br/>A fast internet connection is required for this to work smoothly,<br/>and a delay might occur when connecting for the first time and caching the symbols.</p><p>What would you like to set up?</p></body></html> + + + + Use Local Symbol Cache + + + + Use Microsoft Symbol Server + + + + Open File "%1" + + + + JS-Function: + + + + Receiver: + + + + Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. + + + + Binary debug information is accessible for this frame. However, matching sources have not been found. + + + + Note that most distributions ship debug information in separate packages. + + + + Cannot open "%1": %2 + + + + Cannot Open Task File + + + + Copy Selection to Clipboard + + + + Save as Task File... + + + + Load QML Stack + + + + Terminal: Cannot open /dev/ptmx: %1 + + + + Terminal: ptsname failed: %1 + + + + Terminal: Error: %1 + + + + Terminal: Slave is no character device. + + + + Terminal: grantpt failed: %1 + + + + Terminal: unlock failed: %1 + + + + Terminal: Read failed: %1 + + + + Group&nbsp;id: + + + + Attach to Process Not Yet Started + + + + Reopen dialog when application finishes + + + + Reopens this dialog when application finishes. + + + + Continue on attach + + + + Debugger does not stop the application after attach. + + + + Start Watching + + + + Kit: + + + + Executable: + + + + Stop Watching + + + + Select valid executable. + + + + Not watching. + + + + Waiting for process to start... + + + + Attach + + + + %1.%2 + %1.%2 + + + Unknown error. + + + + Connection is not open. + + + + Internal error: Invalid TCP/IP port specified %1. + + + + Internal error: No uVision executable specified. + + + + Internal error: The specified uVision executable does not exist. + + + + Internal error: Cannot resolve the library: %1. + + + + UVSC Version: %1, UVSOCK Version: %2. + + + + Internal error: Cannot open the session: %1. + + + + Internal error: Failed to start the debugger: %1 + + + + UVSC: Starting execution failed. + + + + UVSC: Stopping execution failed. + + + + UVSC: Setting local value failed. + + + + UVSC: Setting watcher value failed. + + + + UVSC: Disassembling by address failed. + + + + UVSC: Changing memory at address 0x%1 failed. + + + + UVSC: Fetching memory at address 0x%1 failed. + + + + Internal error: The specified uVision project options file does not exist. + + + + Internal error: The specified uVision project file does not exist. + + + + Internal error: Unable to open the uVision project %1: %2. + + + + Internal error: Unable to set the uVision debug target: %1. + + + + Internal error: The specified output file does not exist. + + + + Internal error: Unable to set the uVision output file %1: %2. + + + + UVSC: Reading registers failed. + + + + UVSC: Fetching peripheral register failed. + + + + UVSC: Locals enumeration failed. + + + + UVSC: Watchers enumeration failed. + + + + UVSC: Inserting breakpoint failed. + + + + UVSC: Removing breakpoint failed. + + + + UVSC: Enabling breakpoint failed. + + + + UVSC: Disabling breakpoint failed. + + + + Failed to initialize the UVSC. + + + + Failed to de-initialize the UVSC. + + + + Failed to run the UVSC. + + + + Cannot stop debugged process: + + + + + ... <cut off> + + + + Pointer Address + + + + Array Index + + + + Creation Time in ms + + + + Source + + + + Debugger - %1 + + + + Time + + + + Press Ctrl to select widget at (%1, %2). Press any other keyboard modifier to stop selection. + + + + Selecting widget at (%1, %2). + + + + Selection aborted. + + + + Memory at Pointer's Address "%1" (0x%2) + + + + Memory at Object's Address "%1" (0x%2) + + + + Enter an expression to evaluate. + + + + Note: Evaluators will be re-evaluated after each step. For details, see the <a href="qthelp://org.qt-project.qtcreator/doc/creator-debug-mode.html#locals-and-expressions">documentation</a>. + + + + New Evaluated Expression + + + + Add New Expression Evaluator... + + + + Expand All Children + + + + Collapse All Children + + + + Copy View Contents to Clipboard + + + + Copy Current Value to Clipboard + + + + Open View Contents in Editor + + + + Stop the program when the data at the address is modified. + + + + Add Data Breakpoint at Pointer's Address (0x%1) + + + + Add Data Breakpoint at Pointer's Address + + + + Stop the program when the data at the address given by the expression is modified. + + + + Open Memory View at Pointer's Address (0x%1) + + + + Open Memory View at Pointer's Address + + + + Open Memory View Showing Stack Layout + + + + Open Memory Editor at Pointer's Address (0x%1) + + + + Open Memory Editor at Pointer's Address + + + + Change Value Display Format + + + + Reset All Individual Formats + + + + Reset All Formats for Types + + + + Change Display Format for Selected Values + + + + Change Display for Objects + + + + Array of %n items + + + + + + Raw Data + + + + Enhanced + + + + Separate Window + + + + Latin1 String + + + + Latin1 String in Separate Window + + + + UTF-8 String + + + + UTF-8 String in Separate Window + + + + Local 8-Bit String + + + + UTF-16 String + + + + UCS-4 String + + + + Plot in Separate Window + + + + Display Keys and Values Side by Side + + + + Force Display as Direct Storage Form + + + + Force Display as Indirect Storage Form + + + + Display Boolean Values as True or False + + + + Display Boolean Values as 1 or 0 + + + + Decimal Integer + + + + Hexadecimal Integer + + + + Binary Integer + + + + Octal Integer + + + + Char Code Integer + + + + Compact Float + + + + Scientific Float + + + + Hexadecimal Float + + + + Normalized, with Power-of-Two Exponent + + + + Size: %1x%2, %3 byte, format: %4, depth: %5 + + + + Are you sure you want to remove all expression evaluators? + + + + + DependenciesModel + + Unable to Add Dependency + 无法添加依赖关系 + + + This would create a circular dependency. + 这会创建一个循环依赖。 + + + + DependenciesPanelFactory + + Dependencies + 依赖关系 + + + + Designer + + Designer + 设计师 + + + Form Editor + 界面编辑器 + + + Qt Designer Form Class + Qt 设计器界面类 + + + Form Template + 界面模板 + + + Class Details + 类详情 + + + %1 - Error + %1 - 错误 + + + Class + + + + Choose a Class Name + 选择类名 + + + Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt Widget Project. + 创建一个Qt设计师窗体文件和相应的类(C++头文件和源文件)用于实现,您可以将此窗体文件和类加入到已经存在的Qt 控件项目中。 + + + Widget Box + 控件盒子 + + + Object Inspector + 对象查看器 + + + Property Editor + 属性编辑器 + + + Action Editor + Action编辑器 + + + F3 + F3 + + + F4 + F4 + + + Ctrl+H + Ctrl+H + + + Meta+Shift+H + Meta+Shift+H + + + Ctrl+L + Ctrl+L + + + Meta+L + Meta+L + + + Ctrl+G + Ctrl+G + + + Meta+Shift+G + Meta+Shift+G + + + Meta+J + Mega+J + + + Ctrl+J + Ctrl+J + + + Alt+Shift+R + Alt+Shift+R + + + Switch Source/Form + 切换源文件/窗体 + + + Shift+F4 + Shift+F4 + + + Signals && Slots Editor + 信号和槽编辑器 + + + Widget box + 控件盒子 + + + For&m Editor + 界面编辑器(&M) + + + Edit Widgets + 编辑控件 + + + Edit Signals/Slots + 编辑信号/槽 + + + Edit Buddies + 编辑伙伴(Buddy) + + + Edit Tab Order + 编辑 Tab 顺序 + + + Preview in + 预览于 + + + The image could not be created: %1 + 无法创建图片: %1 + + + Choose a Form Template + 选择界面模板 + + + Error finding/adding a slot. + 查找/添加槽错误。 + + + Unable to add the method definition. + 无法添加方法定义。 + + + This file can only be edited in <b>Design</b> mode. + 此文件仅可在<b>设计</b>模式中编辑。 + + + The generated header of the form "%1" could not be found. +Rebuilding the project might help. + + + + The generated header "%1" could not be found in the code model. +Rebuilding the project might help. + + + + &Class name: + 类名(&C): + + + &Header file: + 头文件(&H): + + + &Source file: + 源文件(&S): + + + &Form file: + 界面文件(&F): + + + &Path: + 路径(&P): + + + Invalid header file name: "%1" + + + + Invalid source file name: "%1" + + + + Invalid form file name: "%1" + + + + Signals and Slots Editor + + + + About Qt Designer Plugins... + + + + Switch Mode + + + + The class containing "%1" could not be found in %2. +Please verify the #include-directives. + + + + No documents matching "%1" could be found. +Rebuilding the project might help. + + + + + DesignerActionManager + + Document Has Errors + + + + The document which contains the list model contains errors. So we cannot edit it. + + + + Document Cannot Be Written + + + + An error occurred during a write attemp. + + + + + DevelopmentTeam + + %1 - Free Provisioning Team : %2 + + + + Yes + + + + No + + + + + Diff + + Delete + 删除 + + + Insert + + + + Equal + + + + + DiffEditor + + Diff Editor + + + + + DiffEditor::Internal::DiffCurrentFileController + + Saved + + + + Modified + 已更改 + + + + DiffEditor::Internal::DiffEditor + + Context lines: + + + + Ignore Whitespace + 忽略空白 + + + Reload Diff + + + + [%1] vs. [%2] %3 + + + + %1 vs. %2 + + + + [%1] %2 vs. [%3] %4 + + + + Hide Change Description + + + + Show Change Description + + + + + DiffEditor::Internal::DiffEditorDocument + + Could not parse patch file "%1". The content is not of unified diff format. + + + + + DiffEditor::Internal::DiffEditorPlugin + + &Diff + &Diff + + + Diff Current File + Diff 当前文件 + + + Meta+H + Meta+H + + + Ctrl+H + Ctrl+H + + + Diff Open Files + + + + Meta+Shift+H + Meta+Shift+H + + + Ctrl+Shift+H + + + + Diff External Files... + + + + Diff "%1" + Diff "%1" + + + Select First File for Diff + + + + Select Second File for Diff + + + + Diff "%1", "%2" + + + + + DiffEditor::Internal::DiffEditorServiceImpl + + Diff Files + + + + Diff Modified Files + + + + + DiffEditor::Internal::DiffEditorWidgetController + + Send Chunk to CodePaster... + + + + Apply Chunk... + 应用块... + + + Revert Chunk... + 恢复块... + + + <b>Error:</b> Could not decode "%1" with "%2"-encoding. + + + + Select Encoding + 选择编码 + + + + DiffEditor::Internal::DiffFilesController + + Calculating diff + + + + + DiffEditor::Internal::DiffModifiedFilesController + + Saved + + + + Modified + 已更改 + + + + DiffEditor::Internal::DiffOpenFilesController + + Saved + + + + Modified + 已更改 + + + + DiffEditor::Internal::SideBySideDiffEditorWidget + + Skipped %n lines... + + + + + + Binary files differ + + + + Skipped unknown number of lines... + + + + Waiting for data... + 等待数据... + + + No difference. + + + + Retrieving data failed. + + + + Rendering diff + + + + + DiffEditor::Internal::SideBySideView + + Synchronize Horizontal Scroll Bars + + + + Waiting for data... + 等待数据... + + + Retrieving data failed. + + + + + DiffEditor::Internal::SideDiffEditorWidget + + [%1] %2 + + + + + DiffEditor::Internal::UnifiedDiffEditorWidget + + No document + + + + Waiting for data... + 等待数据... + + + No difference. + + + + Retrieving data failed. + + + + Rendering diff + + + + + DiffEditor::Internal::UnifiedView + + Waiting for data... + 等待数据... + + + Retrieving data failed. + + + + + DiffEditor::SideBySideView + + Switch to Side By Side Diff Editor + + + + + DiffEditor::UnifiedView + + Switch to Unified Diff Editor + + + + + Docker + + Checking docker daemon + + + + Path "%1" is not a directory or does not exist. + + + + Docker + + + + Docker Image + + + + Docker Image "%1" (%2) + + + + Error starting remote shell. No container. + + + + Error starting remote shell: %1 + + + + Open Shell in Container + + + + Docker daemon appears to be not running. Verify daemon is up and running and reset the docker daemon on the docker device settings page or restart Qt Creator. + + + + Docker Image Selection + + + + Show Unnamed Images + + + + Loading ... + + + + Running "%1" + + + + + Unexpected result: %1 + + + + Done. + 完成。 + + + Error: %1 + 错误: %1 + {1?} + + + Docker Device + + + + Repository: + 代码仓库: + + + Tag: + + + + Image ID: + + + + Daemon state: + + + + Clears detected daemon state. It will be automatically re-evaluated next time access is needed. + + + + Do not modify entry point + + + + Prevents modifying the entry point of the image. Enable only if the image starts into a shell. + + + + Run as outside user + + + + Uses user ID and group ID of the user running Qt Creator in the docker container. + + + + Paths to mount: + + + + Source directory list should not be empty. + + + + Host directories to mount into the container + + + + Maps paths in this list one-to-one to the docker container. + + + + Auto-detect Kit Items + + + + Remove Auto-Detected Kit Items + + + + List Auto-Detected Kit Items + + + + Search in PATH + + + + Search in Selected Directories + + + + Search in PATH and Additional Directories + + + + Semicolon-separated list of directories + + + + Select the paths in the docker image that should be scanned for kit entries. + + + + Docker daemon appears to be not running. + + + + Docker daemon appears to be running. + + + + Search Locations: + + + + Detection log: + + + + Daemon state not evaluated. + + + + Docker daemon running. + + + + Docker daemon not running. + + + + Docker CLI + + + + Command: + 命令: + + + Configuration + 配置 + + + + DynamicPropertiesProxyModel + + Property Already Exists + + + + Property "%1" already exists. + + + + + EasingContextPane + + Dialog + 对话框 + + + Easing + 弹性弯曲 + + + Subtype + 子类型 + + + Duration + 持续时间 + + + INVALID + 无效 + + + ms + 毫秒 + + + Amplitude + 振幅 + + + Period + 周期 + + + Overshoot + 缓冲 + + + Play simulation. + + + + Type of easing curve. + + + + Acceleration or deceleration of easing curve. + + + + Duration of animation. + + + + Amplitude of elastic and bounce easing curves. + + + + Easing period of an elastic curve. + + + + Easing overshoot for a back curve. + + + + + EditLightToggleAction + + Toggle Edit Light On/Off + + + + + EditorSettingsPanelFactory + + Editor + 编辑器 + + + + EmacsKeys::Internal::EmacsKeysPlugin + + Delete Character + + + + Kill Word + + + + Kill Line + + + + Insert New Line and Indent + + + + Go to File Start + + + + Go to File End + + + + Go to Line Start + 移到行首 + + + Go to Line End + 移到行尾 + + + Go to Next Line + 移到下一行 + + + Go to Previous Line + 移到前一行 + + + Go to Next Character + 移到下一字符 + + + Go to Previous Character + 移到上一字符 + + + Go to Next Word + 移到下一单词 + + + Go to Previous Word + 移到上一单词 + + + Mark + + + + Exchange Cursor and Mark + + + + Copy + 复制 + + + Cut + 剪切 + + + Yank + + + + Scroll Half Screen Down + + + + Scroll Half Screen Up + + + + + EnterTabDesignerAction + + Step into: %1 + + + + + EnvironmentPanelFactory + + Environment + 环境 + + + + EnvironmentWidget + + Add... + 添加... + + + Remove + 删除 + + + Edit... + 编辑... + + + Choose Directory + 选择目录 + + + + ExtensionSystem::Internal::PluginDetailsView + + Name: + 名称: + + + Version: + 版本: + + + Vendor: + 销售商: + + + Location: + 位置: + + + Description: + 说明: + + + Copyright: + 版权: + + + License: + 许可: + + + Dependencies: + 依赖关系: + + + Group: + 组: + + + Compatibility version: + 兼容版本: + + + URL: + URL: + + + Platforms: + + + + + ExtensionSystem::Internal::PluginErrorOverview + + The following plugins have errors and cannot be loaded: + 以下插件有错误,无法被载入: + + + Details: + 详情: + + + Plugin Loader Messages + + + + + ExtensionSystem::Internal::PluginErrorView + + State: + 状态: + + + Error message: + 错误信息: + + + + ExtensionSystem::Internal::PluginManagerPrivate + + %1 > About Plugins + + + + Help > About Plugins + + + + If you temporarily disable %1, the following plugins that depend on it are also disabled: %2. + + + + + + Disable plugins permanently in %1. + + + + The last time you started %1, it seems to have closed because of a problem with the "%2" plugin. Temporarily disable the plugin? + + + + Disable Plugin + + + + Continue + 继续 + + + + ExtensionSystem::Internal::PluginSpecPrivate + + Plugin meta data not found + + + + Invalid platform specification "%1": %2 + + + + Dependency: %1 + + + + Dependency: "%1" must be "%2" or "%3" (is "%4"). + + + + Argument: %1 + + + + Argument: "%1" is empty + + + + + ExtensionSystem::PluginDetailsView + + None + + + + All + 所有 + + + %1 (current: "%2") + + + + + ExtensionSystem::PluginErrorOverview + + Continue + 继续 + + + + ExtensionSystem::PluginErrorView + + Invalid + 无效 + + + Read + 读入 + + + Resolved + 已解決 + + + Loaded + 已载入 + + + Initialized + 初始化 + + + Running + 执行中 + + + Stopped + 已停止 + + + Deleted + 删除 + + + Description file found, but error on read. + + + + Description successfully read. + + + + Dependencies are successfully resolved. + + + + Library is loaded. + + + + Plugin's initialization function succeeded. + + + + Plugin successfully loaded and running. + + + + Plugin was shut down. + + + + Plugin ended its life cycle and was deleted. + + + + + ExtensionSystem::PluginManager + + Cannot load plugin because dependency failed to load: %1(%2) +Reason: %3 + 因为无法载入依赖关系所以无法载入插件: %1(%2) +原因: %3 + + + Circular dependency detected: + + + + %1 (%2) depends on + + + + %1 (%2) + %1 (%2) + + + Cannot load plugin because dependency failed to load: %1 (%2) +Reason: %3 + + + + + ExtensionSystem::PluginView + + Load on Startup + 启动时载入 + + + Utilities + 实用工具 + + + %1 (experimental) + + + + Path: %1 +Plugin is not available on this platform. + + + + Path: %1 +Plugin is enabled as dependency of an enabled plugin. + + + + Path: %1 +Plugin is enabled by command line argument. + + + + Path: %1 +Plugin is disabled by command line argument. + + + + Path: %1 + + + + Plugin is not available on this platform. + + + + Plugin is required. + + + + Load on startup + + + + Name + + + + Load + 载入 + + + Version + 版本 + + + Vendor + 销售商 + + + Enabling Plugins + + + + Enabling +%1 +will also enable the following plugins: + +%2 + + + + Disabling Plugins + + + + Disabling +%1 +will also disable the following plugins: + +%2 + + + + + FakeVim + + Use FakeVim + 使用FakeVim + + + Read .vimrc from location: + + + + Show position of text marks + 显示文本标签的位置 + + + Pass control keys + + + + Pass keys in insert mode + + + + Start of line + 移到行首 + + + Tabulator size: + 制表符大小: + + + Smart tabulators + 智能制表符 + + + Highlight search results + 高亮搜索结果 + + + Shift width: + 缩进宽度: + + + Expand tabulators + 展开制表符 + + + Automatic indentation + 自动缩进 + + + Smart indentation + 智能缩进 + + + Incremental search + 递增式搜索 + + + Use search dialog + 使用搜索对话框 + + + Use smartcase + 使用智能大小写 + + + Use ignorecase + + + + Use wrapscan + + + + Use tildeop + + + + Show partial command + + + + Show line numbers relative to cursor + + + + Blinking cursor + + + + Scroll offset: + + + + Backspace: + 退格: + + + Keyword characters: + 关键词字符: + + + Use Vim-style Editing + 使用vim风格编辑 + + + Displays line numbers relative to the line containing text cursor. + + + + Does not interpret key sequences like Ctrl-S in FakeVim but handles them as regular shortcuts. This gives easier access to core functionality at the price of losing some features of FakeVim. + + + + Does not interpret some key presses in insert mode so that code can be properly completed and expanded. + + + + Vim tabstop option. + + + + Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise. + + + + Default: %1 + + + + Unknown option: %1 + 未知选项: %1 + + + Argument must be positive: %1=%2 + 参数必须是正值: %1=%2 + + + Mark "%1" not set. + + + + Recursive mapping + + + + %1%2% + %1%2% + + + %1All + %1所有 + + + Not implemented in FakeVim. + + + + Type Meta-Shift-Y, Meta-Shift-Y to quit FakeVim mode. + + + + Type Alt-Y, Alt-Y to quit FakeVim mode. + + + + Unknown option: + + + + Invalid argument: + + + + Trailing characters: + + + + Move lines into themselves. + + + + %n lines moved. + + + + + + File "%1" exists (add ! to override) + 文件 '%1' 存在 (添加 ! 覆盖) + + + Cannot open file "%1" for writing + 无法打开用于写入的文件 "%1" + + + "%1" %2 %3L, %4C written. + + + + [New] + [新建] + + + Cannot open file "%1" for reading + 无法打开用于读取的文件"%1" + + + "%1" %2L, %3C + "%1" %2L, %3C + + + %n lines filtered. + + + + + + Cannot open file %1 + 打开文件 %1 失败 + + + Not an editor command: %1 + 不是一个编辑器命令: %1 + + + Invalid regular expression: %1 + 无效的正则表达式: %1 + + + Pattern not found: %1 + 未找到模式:%1 + + + Search hit BOTTOM, continuing at TOP. + + + + Search hit TOP, continuing at BOTTOM. + + + + Search hit BOTTOM without match for: %1 + + + + Search hit TOP without match for: %1 + + + + %n lines indented. + + + + + + %n lines %1ed %2 time. + + + + + + %n lines yanked. + + + + + + Already at oldest change. + + + + Already at newest change. + + + + General + 概要 + + + FakeVim + FakeVim + + + Copy Text Editor Settings + 复制文本编辑器设置 + + + Set Qt Style + 设置为Qt风格 + + + Set Plain Style + + + + Vim Behavior + Vim 行为 + + + Plugin Emulation + + + + Ex Command Mapping + 额外命令映射 + + + Ex Trigger Expression + 额外触发表达式 + + + Ex Command + 额外命令 + + + Reset + 重置 + + + Reset to default. + 重置为默认。 + + + Regular expression: + 正则表达式: + + + Action + 动作 + + + Command + 命令 + + + User Command Mapping + 用户命令映射 + + + User command #%1 + 用户命令#%1 + + + Meta+Shift+Y,Meta+Shift+Y + + + + Alt+Y,Alt+Y + + + + Execute User Action #%1 + 执行用户操作 #%1 + + + Meta+Shift+Y,%1 + + + + Alt+Y,%1 + + + + "%1" %2 %3L, %4C written + "%1" %2 %3L, %4C 写入 + + + File not saved + 文件未保存 + + + Saving succeeded + 成功保存 + + + %n files not saved + + %n 个文件没有被保存 + + + + + FileExtractor + + Choose Directory + 选择目录 + + + + FileResourcesModel + + Open File + 打开文件 + + + + FitToViewAction + + Fit Selected Object to View + + + + + FontSettings_C_OCCURRENCES_UNUSED + + Unused variable + 未使用的变量 + + + + GLSLEditor + + GLSL + GLSL + + + + GenerateConstructorDialog + + Constructor + + + + Parameters without default value must come before parameters with default value. + + + + Initialize all members + + + + Access + + + + Select the members to be initialized in the constructor. +Use drag and drop to change the order of the parameters. + + + + + GenerateGettersSettersDialog + + Getters and Setters + + + + Member + + + + Getter + + + + Setter + + + + Signal + 信号 + + + Reset + 重置 + + + QProperty + + + + Constant QProperty + + + + Create getters for all members + + + + Create setters for all members + + + + Create signals for all members + + + + Create Q_PROPERTY for all members + + + + Select the getters and setters to be created. + + + + + GenericProjectManager::Internal::FilesSelectionWizardPage + + Files + 文件 + + + + GenericProjectManager::Internal::GenericBuildConfiguration + + Generic Manager + 标准管理器 + + + + GenericProjectManager::Internal::GenericProject + + Project files list update failed. + + + + Build %1 + + + + + GenericProjectManager::Internal::GenericProjectPlugin + + Edit Files... + 编辑文件... + + + Remove Directory + + + + + GenericProjectManager::Internal::GenericProjectWizard + + Import Existing Project + 导入现有项目 + + + Imports existing projects that do not use qmake, CMake, Qbs, Meson, or Autotools. This allows you to use %1 as a code editor. + + + + + GenericProjectManager::Internal::GenericProjectWizardDialog + + Import Existing Project + 导入现有项目 + + + Project Name and Location + 项目名称和位置 + + + Project name: + 项目名称: + + + Location: + 位置: + + + File Selection + 文件选择 + + + + Gerrit::Internal::GerritDialog + + Certificate Error + + + + Server certificate for %1 cannot be authenticated. +Do you want to disable SSL verification for this server? +Note: This can expose you to man-in-the-middle attack. + + + + + Gerrit::Internal::GerritPushDialog + + Push to Gerrit + + + + &Reviewers: + + + + Checked - Mark change as private. +Unchecked - Remove mark. +Partially checked - Do not change current state. + + + + &Draft/private + + + + &Work-in-progress + + + + Pushes the selected commit and all dependent commits. + + + + &Topic: + + + + Push: + + + + Commits: + + + + Local repository + + + + To: + 到: + + + Number of commits + + + + Comma-separated list of reviewers. + +Reviewers can be specified by nickname or email address. Spaces not allowed. + +Partial names can be used if they are unambiguous. + + Git + + Delete Branch + 删除分支 + + + Remote Branches + 远程 分支 + + + Re&fresh + 刷新(&F) + + + &Add... + 添加(&A)... + + + &Remove + 删除(&R) + + + &Diff + &Diff + + + &Log + &Log + + + &Checkout + 检出(&C) + + + Select a Git Commit + 选择一个 Git commit + + + Error + 错误 + + + Working directory: + 工作目录: + + + Change: + 更改: + + + Invalid revision + 无效修订版本 + + + Description: + 说明: + + + Stash Description + Stash 说明 + + + Changes + 修改 + + + Cannot determine the repository for "%1". + 无法确定 "%1"的代码仓库。 + + + Cannot parse the file output. + 无法解析文件输出。 + + + Git Diff "%1" + Git Diff "%1" + + + Git Diff Branch "%1" + Git Diff 分支 "%1" + + + Git Log "%1" + Git Log "%1" + + + Cannot describe "%1". + 无法描述 '%1'。 + + + Git Show "%1" + Git Show + + + Git Blame "%1" + Git Blame + + + Cannot obtain log of "%1": %2 + 无法获取"%1"的日志: %2 + + + Cannot checkout "%1" of %2 in "%3": %4 + Meaning of the arguments: %1: revision, %2: files, %3: repository, %4: Error message + 无法检出 "%3"中的 %2 的修订版本 "%1": %4 + + + Cannot find parent revisions of "%1" in "%2": %3 + Failed to find parent revisions of a SHA1 for "annotate previous" + 无法找到在 "%2"的"%1"的上一级修订: %3 + + + Cannot describe revision "%1" in "%2": %3 + 无法描述"%2"中的修订"%1": %3 + + + Cannot resolve stash message "%1" in "%2". + Look-up of a stash via its descriptive message failed. + 无法处理"%2"中的stash消息"%1"。 + + + There were warnings while applying "%1" to "%2": +%3 + 应用 %1 到 %2 时收到警告: +%3 + + + Cannot apply patch "%1" to "%2": %3 + 无法应用补丁"%1" 到"%2": %3 + + + Cannot obtain status: %1 + 无法获得状态: %1 + + + Cannot launch "%1". + 无法启动"%1". + + + The repository "%1" is not initialized. + 仓库 %1 未被初始化。 + + + Cannot retrieve last commit data of repository "%1". + 无法获取仓库最近一次提交的数据"%1"。 + + + Amended "%1". + 增订了"%1"。 + + + The file has been changed. Do you want to revert it? + 文件被改变,您想要还原它吗? + + + The file is not modified. + 文件没有被修改。 + + + Git SVN Log + Git SVN Log + + + There are no modified files. + 没有被修改的文件。 + + + &Git + &Git + + + Alt+G,Alt+D + Alt+G,Alt+D + + + Alt+G,Alt+L + Alt+G,Alt+L + + + Alt+G,Alt+B + Alt+G,Alt+B + + + Diff + Diff + + + Status + 状态 + + + Apply from Editor + 应用自编辑器 + + + Apply from File... + 应用自文件... + + + Take Snapshot... + 抓取快照... + + + Meta+G,Meta+C + Meta+G,Meta+C + + + Amend %1 + 增订 %1 + + + Repository Clean + 代码仓库清理 + + + Choose Patch + 选择补丁 + + + Alt+G,Alt+U + Alt+G,Alt+U + + + Stage File for Commit + Stage文件以备提交 + + + Meta+G,Meta+B + Meta+G,Meta+B + + + Meta+G,Meta+D + Meta+G,Meta+D + + + Meta+G,Meta+L + Meta+G,Meta+L + + + Stage "%1" for Commit + 提交的stage "%1" + + + Alt+G,Alt+A + Alt+G,Alt+A + + + Meta+G,Meta+A + Meta+G,Meta+A + + + Unstage File from Commit + 从提交unstage文件 + + + Unstage "%1" from Commit + 从提交unstage文件 "%1" + + + Undo Unstaged Changes + 撤销unstage的修改 + + + Undo Unstaged Changes for "%1" + 撤销unstage的对 "%1" 的修改 + + + Undo Uncommitted Changes + 撤销未提交的修改 + + + Undo Uncommitted Changes for "%1" + 撤销未提交的对 "%1" 的修改 + + + Meta+G,Meta+U + Meta+G,Meta+U + + + Meta+G,Meta+Shift+D + Meta+G,Meta+Shift+D + + + Alt+G,Alt+Shift+D + Alt+G,Alt+Shift+D + + + Meta+G,Meta+K + Meta+G,Meta+K + + + Apply "%1" + 应用 “%1” + + + Create Repository... + 创建仓库... + + + Saves the current state of your work and resets the repository. + 保存您的工作的当前状态并重置软件仓库。 + + + The repository is clean. + 代码仓库是clean状态。 + + + Patches (*.patch *.diff) + 补丁 (*.patch *.diff) + + + Patch %1 successfully applied to %2 + 补丁 %1 成功应用于 %2 + + + Alt+G,Alt+K + Alt+G,Alt+K + + + Stash + Stash + + + Saves the current state of your work. + 保存当前状态。 + + + Restores changes saved to the stash list using "Stash". + 使用 "Stash" 还原保存在stash列表中的更改。 + + + Alt+G,Alt+C + Alt+G,Alt+C + + + Branches... + 分支列表... + + + Commit + Commit + + + Revert + Revert + + + Another submit is currently being executed. + 另一个提交操作正在执行。 + + + Git Commit + Git Commit + + + General Information + 概要信息 + + + Repository: + 代码仓库: + + + repository + 代码仓库 + + + branch + 分支 + + + Commit Information + Commit 信息 + + + Author: + 作者: + + + Email: + Email: + + + By&pass hooks + 跳过hook(&P) + + + Note that huge amount of commits might take some time. + 注意:大量的提交可能需要花费一段时间。 + + + Git + Git + + + Git Settings + Git设置 + + + Miscellaneous + 其他 + + + Pull with rebase + pull同时rebase + + + Set "HOME" environment variable + 设置 "HOME" 环境变量 + + + Gitk + Gitk + + + Arguments: + 参数: + + + Configuration + 配置 + + + Prepend to PATH: + 附加在系统PATH之前: + + + Command: + 命令: + + + Stashes + Stash列表 + + + Name + 名称 + + + Branch + 分支 + + + Message + 消息 + + + Refresh + 刷新 + + + <No repository> + <无 仓库> + + + Repository: %1 + 代码仓库: %1 + + + Do you want to delete all stashes? + 您想删除所有 stash 吗? + + + Do you want to delete %n stash(es)? + + 您想删除 %n 个stash 吗? + + + + Delete Stashes + 删除 stash + + + Repository Modified + 仓库已变更 + + + %1 cannot be restored since the repository is modified. +You can choose between stashing the changes or discarding them. + %1 不能被还原,因为仓库已经变更。 +您可以选择 stash 修改的内容或者丢弃修改。 + + + Discard + 丢弃 + + + Restore Stash to Branch + 还原 stash 到分支 + + + Branch: + Branch: + + + Stash Restore + 还原 stash + + + Would you like to restore %1? + 您想还原 %1吗? + + + Error restoring %1 + 还原 %1 时出错 + + + not currently set + 当前未设置 + + + Git Repository Browser Command + Git代码仓库浏览器命令 + + + Use the patience algorithm for calculating the differences. + 使用耐心算法来计算差异。 + + + Patience + 耐心 + + + Ignore whitespace only changes. + 忽略仅为空白的修改。 + + + Ignore Whitespace + 忽略空白 + + + Hide the date of a change from the output. + 在输出隐藏更改的日期。 + + + Omit Date + 忽略日期 + + + Branch Name: + 分支名称: + + + Name: + 名称: + + + URL: + URL: + + + Remotes + 远程 + + + F&etch + F&etch + + + Delete Remote + 删除远程 + + + Would you like to delete the remote "%1"? + 您想要删除远程"%1"吗? + + + &Push + &Push + + + Local Branches + 本地分支 + untracked untracked @@ -45606,14 +21351,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. copied 已复制 - - updated - 已更新 - - - Gerrit %1@%2 - Gerrit %1@%2 - &Query: 查询(&Query): @@ -45626,22 +21363,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Details 详情 - - Diff... - Diff... - - - Apply... - Apply... - - - Checkout... - Checkout... - - - <html><head/><body><table><tr><td>Subject</td><td>%1</td></tr><tr><td>Number</td><td><a href="%11">%2</a></td></tr><tr><td>Owner</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Project</td><td>%5 (%6)</td></tr><tr><td>Status</td><td>%7, %8</td></tr><tr><td>Patch set</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html> - <html><head/><body><table><tr><td>标题</td><td>%1</td></tr><tr><td>数字</td><td><a href="%11">%2</a></td></tr><tr><td>所有者</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>项目</td><td>%5 (%6)</td></tr><tr><td>状态</td><td>%7, %8</td></tr><tr><td>补丁集</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html> - Subject 标题 @@ -45662,18 +21383,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Approvals 审批 - - Parse error: '%1' -> %2 - 解析错误: '%1' -> %2 - - - Parse error: '%1' - 解析错误: '%1' - - - Parse error in line '%1' - 在行 '%1'发生解析错误 - Gerrit Gerrit @@ -45706,10 +21415,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. &ssh: &ssh: - - &Port: - 端口(&P): - P&rotocol: 协议(&R): @@ -45721,22 +21426,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. 当文件"gerrit.config"没有配置"canonicalWebUrl"时 从URL推测使用的协议。 - - Gerrit Fetch - Gerrit Fetch - - - Error writing to temporary file. - 写入临时文件发生错误。 - - - Writing %1... - 正在写入 %1... - - - Cherry-picking %1... - 正在cherry-pick %1... - Gerrit... Gerrit... @@ -45745,14 +21434,6 @@ Stepping into the module or setting breakpoints by file and is expected to work. Git is not available. Git不可用。 - - Enter Local Repository for '%1' (%2) - 输入 '%1' (%2) 的本地代码仓库 - - - Show Diff - 显示Diff - Show difference. 显示差异。 @@ -45773,217 +21454,7508 @@ Stepping into the module or setting breakpoints by file and is expected to work. Undo Changes to %1 撤销对%1的修改 - - - Locator::Internal::ExecuteFilter - Previous command is still running ('%1'). -Do you want to kill it? - 前一个命令仍在运行('%1')。 -您想要杀死它吗? + Checkout new branch + - Kill Previous Process? - 杀死前一个进程吗? + Add Branch + - finished - 已完成 + Rename Branch + - failed - 失败 + Add Tag + - Could not find executable for '%1' - 找不到 '%1'的执行档 + Tag name: + - Starting command '%1' - 正在启动命令'%1' + Rename Tag + - Execute Custom Commands - 执行自定义的命令 + Track remote branch "%1" + + + + Track local branch "%1" + + + + Checkout branch "%1" + + + + Local Changes Found. Choose Action: + + + + Move Local Changes to "%1" + + + + Discard Local Changes + + + + Pop Stash of "%1" + + + + Create Branch Stash for "%1" + + + + Create Branch Stash for Current Branch + + + + Tags + + + + Include Old Entries + + + + Include Tags + + + + Include branches and tags that have not been active for %n days. + + + + + + Create Git Repository... + + + + Add Branch... + + + + Filter + 过滤器 + + + &Fetch + + + + Remove &Stale Branches + + + + Manage &Remotes... + + + + Rem&ove... + + + + Re&name... + + + + Reflo&g + + + + Re&set + + + + &Hard + + + + &Mixed + + + + &Soft + + + + &Merge "%1" into "%2" (Fast-Forward) + + + + Merge "%1" into "%2" (No &Fast-Forward) + + + + &Merge "%1" into "%2" + + + + &Rebase "%1" on "%2" + + + + Cherry &Pick + + + + &Track + + + + Would you like to delete the tag "%1"? + + + + Would you like to delete the branch "%1"? + + + + Would you like to delete the <b>unmerged</b> branch "%1"? + + + + Delete Tag + + + + Git Reset + + + + Reset branch "%1" to "%2"? + + + + Git Branches + + + + HEAD + + + + Browse &History... + + + + &Close + + + + &Archive... + + + + Check&out + + + + &Revert + + + + &Show + + + + Select Git Directory + + + + Select Commit + + + + Error: Could not start Git. + + + + Error: Unknown reference + + + + Error: Bad working directory. + + + + Fetching commit data... + + + + typechange + + + + by both + + + + by us + + + + by them + + + + Authentication + 验证信息 + + + <html><head/><body><p>Gerrit server with HTTP was detected, but you need to set up credentials for it.</p><p>To get your password, <a href="LINK_PLACEHOLDER"><span style=" text-decoration: underline; color:#007af4;">click here</span></a> (sign in if needed). Click Generate Password if the password is blank, and copy the user name and password to this form.</p><p>Choose Anonymous if you do not want authentication for this server. In this case, changes that require authentication (like draft changes or private projects) will not be displayed.</p></body></html> + + + + Server: + 服务器: + + + &Password: + 密码(&P): + + + Anonymous + + + + C&heckout + + + + &Refresh + + + + Remote: + + + + Fetching "%1"... + + + + (Draft) + + + + Querying Gerrit + + + + Timeout + + + + The gerrit process has not responded within %1 s. +Most likely this is caused by problems with SSH authentication. +Would you like to terminate it? + + + + Terminate + + + + Keep Running + 保持运行 + + + Number + + + + Patch set + + + + URL + + + + Depends on + + + + Needed by + + + + Parse error: "%1" -> %2 + + + + Parse error: "%1" + + + + cur&l: + + + + SSH &Port: + + + + Fetching from Gerrit + + + + Push to Gerrit... + + + + Initialization Failed + + + + Invalid Gerrit configuration. Host, user and ssh binary are mandatory. + + + + Remote Not Verified + + + + Change host %1 +and project %2 + +were not verified among remotes in %3. Select different folder? + + + + Enter Local Repository for "%1" (%2) + + + + Cannot find a Gerrit remote. Add one and try again. + + + + Number of commits between %1 and %2: %3 + + + + Are you sure you selected the right target branch? + + + + Checked - Mark change as WIP. +Unchecked - Mark change as ready for review. +Partially checked - Do not change current state. + + + + Checked - Mark change as private. +Unchecked - Remove mark. +Partially checked - Do not change current state. + + + + Supported on Gerrit 2.15 and later. + + + + Checked - The change is a draft. +Unchecked - The change is not a draft. + + + + No remote branches found. This is probably the initial commit. + + + + Branch name + + + + ... Include older branches ... + + + + Refresh Remote Servers + + + + Fallback + + + + and %n more + Displayed after the untranslated message "Branches: branch1, branch2 'and %n more'" + + + + + + <None> + <无> + + + <resolving> + + + + No Move Detection + + + + Detect Moves Within File + + + + Detect Moves Between Files + + + + Detect Moves and Copies Between Files + + + + Move detection + + + + Filter commits by message or content. + + + + First Parent + + + + Follow only the first parent on merge commits. + + + + Graph + + + + Show textual graph log. + + + + Color + 颜色 + + + Use colors in log. + + + + Follow + + + + Show log also for previous names of the file. + + + + Show Date + + + + Show date instead of sequence. + + + + Cannot run "%1" in "%2": %3 + + + + Stage Chunk + + + + Stage Selection (%n Lines) + + + + + + Unstage Chunk + + + + Unstage Selection (%n Lines) + + + + + + Chunk successfully unstaged + + + + Chunk successfully staged + + + + Git Diff Files + + + + Git Diff Project + + + + Git Diff Repository + + + + Git Reflog "%1" + + + + Generate %1 archive + + + + Overwrite? + 覆盖? + + + An item named "%1" already exists at this location. Do you want to overwrite it? + + + + Create Local Branch + + + + Would you like to create a local branch? + + + + Reset + 重置 + + + All changes in working directory will be discarded. Are you sure? + + + + Nothing to recover + + + + Files recovered + + + + Cannot reset %n files in "%1": %2 + + + + + + Cannot retrieve submodule status of "%1": %2 + + + + Submodules Found + + + + Would you like to update submodules? + + + + REBASING + + + + REVERTING + + + + CHERRY-PICKING + + + + MERGING + + + + Continue Rebase + + + + Rebase is in progress. What do you want to do? + + + + Continue + 继续 + + + Continue Merge + + + + You need to commit changes to finish merge. +Commit now? + + + + Continue Revert + + + + You need to commit changes to finish revert. +Commit now? + + + + Continue Cherry-Picking + + + + You need to commit changes to finish cherry-picking. +Commit now? + + + + No changes found. + + + + Skip + 跳过 + + + <Detached HEAD> + + + + Committed %n files. + + + + + + Amended "%1" (%n files). + + + + + + Cannot commit %n files + + + + + + + Conflicts detected with commit %1. + + + + Conflicts detected with files: +%1 + + + + Conflicts detected. + + + + Conflicts Detected + + + + Run &Merge Tool + + + + Only graphical merge tools are supported. Please configure merge.tool. + + + + &Skip + + + + Force Push + + + + Push failed. Would you like to force-push <span style="color:#%1">(rewrites remote history)</span>? + + + + No Upstream Branch + + + + Push failed because the local branch "%1" does not have an upstream branch on the remote. + +Would you like to create the branch "%1" on the remote and set it as upstream? + + + + Rebase, merge or am is in progress. Finish or abort it and then try again. + + + + No commits were found + + + + No local commits were found + + + + Uncommitted Changes Found + + + + What would you like to do with local changes in: + + + + Stash && &Pop + + + + Stash local changes and pop when %1 finishes. + + + + &Stash + + + + Stash local changes and execute %1. + + + + &Discard + + + + Discard (reset) local changes and execute %1. + + + + Execute %1 with local changes in working directory. + + + + Cancel %1. + + + + Cherr&y-Pick %1 + + + + Re&vert %1 + + + + C&heckout %1 + + + + &Interactive Rebase from %1... + + + + &Log for %1 + + + + Sh&ow file "%1" on revision %2 + + + + Add &Tag for %1... + + + + &Reset to Change %1 + + + + Di&ff %1 + + + + Di&ff Against %1 + + + + Diff &Against Saved %1 + + + + &Save for Diff + + + + Git Show %1:%2 + + + + Filter by message + + + + Filter log entries by text in the commit message. + + + + Filter by content + + + + Filter log entries by added or removed string. + + + + Filter by author + + + + Filter log entries by author. + + + + Filter: + 过滤器: + + + Case Sensitive + 区分大小写 + + + &Blame %1 + + + + Blame &Parent Revision %1 + + + + Stage Chunk... + + + + Unstage Chunk... + + + + Tree (optional) + + + + Can be HEAD, tag, local or remote branch, or a commit hash. +Leave empty to search through the file system. + + + + Recurse submodules + + + + Git Grep + + + + Ref: %1 +%2 + + + + &Copy "%1" + + + + &Describe Change %1 + + + + Triggers a Git version control operation. + + + + Current &File + + + + Diff Current File + Avoid translating "Diff" + Diff 当前文件 + + + Diff of "%1" + Avoid translating "Diff" + "%1"的diff + + + Log Current File + Avoid translating "Log" + Log 当前文件 + + + Log of "%1" + Avoid translating "Log" + "%1" 的 log + + + Blame Current File + Avoid translating "Blame" + Blame 当前文件 + + + Blame for "%1" + Avoid translating "Blame" + "%1"的 blame + + + Current &Project + + + + Diff Current Project + Avoid translating "Diff" + Diff 当前项目 + + + Diff Project "%1" + Avoid translating "Diff" + Diff 项目 "%1" + + + Log Project + Avoid translating "Log" + Log 项目 + + + Log Project "%1" + Avoid translating "Log" + Log 项目 "%1" + + + Clean Project... + Avoid translating "Clean" + Clean 项目... + + + Clean Project "%1"... + Avoid translating "Clean" + Clean 项目 "%1"... + + + &Local Repository + + + + Amend Last Commit... + Avoid translating "Commit" + 增订最后一个 Commit... + + + Fixup Previous Commit... + Avoid translating "Commit" + + + + Recover Deleted Files + + + + Interactive Rebase... + Avoid translating "Rebase" + + + + Update Submodules + + + + Abort Merge + Avoid translating "Merge" + + + + Abort Rebase + Avoid translating "Rebase" + + + + Skip Rebase + + + + Abort Cherry Pick + Avoid translating "Cherry Pick" + + + + Continue Cherry Pick + + + + Abort Revert + Avoid translating "Revert" + + + + &Patch + + + + Stash Unstaged Files + Avoid translating "Stash" + + + + Saves the current state of your unstaged files and resets the repository to its staged state. + + + + Stash Pop + Avoid translating "Stash" + Stash Pop + + + &Remote Repository + + + + &Subversion + &Subversion + + + DCommit + + + + Manage Remotes... + + + + Archive... + + + + Git &Tools + + + + Gitk Current File + + + + Gitk of "%1" + + + + Gitk for folder of Current File + + + + Gitk for folder of "%1" + + + + Git Gui + + + + Repository Browser + + + + Merge Tool + + + + Git Bash + + + + Actions on Commits... + + + + Interactive Rebase + + + + Unsupported version of Git found. Git %1 or later required. + + + + Git Fixup Commit + + + + Unable to Retrieve File List + + + + Set the environment variable HOME to "%1" +(%2). +This causes Git to look for the SSH-keys in that location +instead of its installation directory when run outside git bash. + + + + currently set to "%1" + + + + The binary "%1" could not be located in the path "%2" + + + + Refreshing Commit Data + + + + <a href="head">Show HEAD</a> + + + + Sign off + + + + Provide a valid email to commit. + + + + Select Change + + + + &Commit only + + + + Commit and &Push + + + + Commit and Push to &Gerrit + + + + Invalid author + + + + Invalid email + + + + Unresolved merge conflicts + + + + &Commit and Push + + + + &Commit and Push to Gerrit + + + + &Commit + 提交(&C) + + + Select change: + + + + Reset type: + + + + Hard + + + + Mixed + 混合 + + + Soft + + + + Normal + 正常 + + + Submodule + + + + Deleted + 删除 + + + Symbolic link + + + + Modified + 已更改 + + + Created + + + + Submodule commit %1 + + + + Symbolic link -> %1 + + + + Merge Conflict + + + + %1 merge conflict for "%2" +Local: %3 +Remote: %4 + + + + &Local + + + + &Remote + + + + &Created + + + + &Modified + + + + &Deleted + + + + Unchanged File + + + + Was the merge successful? + + + + Continue Merging + + + + Continue merging other unresolved paths? + + + + Merge tool is not configured. + + + + Run git config --global merge.tool &lt;tool&gt; to configure it, then try again. + + + + A remote with the name "%1" already exists. + + + + The URL may not be valid. + + + + Delete &All... + + + + &Delete... + + + + R&estore... + + + + Restore to &Branch... + Restore a git stash to new branch to be created + - RemoteLinux + GitLab::GitLabCloneDialog - Error Creating Debian Project Templates - 创建Debian项目模板出错 + Clone Repository + - Failed to open debian changelog "%1" file for reading. - 打开并读取debian changelog "%1"文件失败。 + Specify repository URL, checkout path and directory. + - Debian changelog file '%1' has unexpected format. - Debian修改日志文件'%1'格式异常。 + Repository + - Refusing to update changelog file: Already contains version '%1'. - 拒绝更新changelog文件。已经存在版本'%1'。 + Path + - Cannot update changelog: Invalid format (no maintainer entry found). - 无法更新changelog文件。无效格式(没有找到维护者的条目)。 + Path "%1" already exists. + - Invalid icon data in Debian control file. - Debian 控制文件中的图标数据无效。 + Directory + 目录 - Could not read image file '%1'. - 无法读取镜像(image)文件'%1'。 + Recursive + - Could not export image file '%1'. - 无法导出镜像文件'%1'。 + Clone + 克隆 - Failed to create directory "%1". - 创建目录失败:'%1'。 + User canceled process. + - Unable to create Debian templates: No Qt version set. - 无法创建Debian模板:没有设置Qt版本。 + Cloning succeeded. + - Unable to create Debian templates: dh_make failed (%1). - 无法创建Debian模板:dh_make失败(%1)。 + Warning + 警告 - Unable to create debian templates: dh_make failed (%1). - 无法创建debian模板:dh_make失败(%1)。 + Cloned project does not have a project file that can be opened. Try importing the project as a generic project. + - Unable to move new debian directory to '%1'. - 无法将新Debian目录移动到'%1'。 + Open Project + 打开项目 + + + Choose the project file to be opened. + + + + Cloning failed. + - RemoteLinux + GitLab::GitLabDialog - Deploy Public Key... - 部署公钥... + GitLab + - Maemo5/Fremantle - Maemo5/Fremantle + Search + 查找 - MeeGo 1.2 Harmattan - MeeGo 1.2 Harmattan + ... + ... + + + 0 + 0 + + + Clone... + + + + Remote: + + + + Not logged in. + + + + Insufficient access token. + + + + Permission scope read_api or api needed. + + + + Check settings for misconfiguration. + + + + Projects (%1) + 项目(%1) + + + Using project access token. + + + + Logged in as %1 + + + + Id: %1 (%2) + + + + Certificate Error + + + + Server certificate for %1 cannot be authenticated. +Do you want to disable SSL verification for this server? +Note: This can expose you to man-in-the-middle attack. + - RemoteLinux + GitLab::GitLabOptionsPage - Checking whether to start Qemu... - 检查是否需要启动Qemu... + Host: + 主机: - Target device is not an emulator. Nothing to do. - 目标设备不是一个模拟器,没什么要做的。 + Description: + 说明: - Qemu is already running. Nothing to do. - Qemu已经在运行。没什么要做的。 + Access token: + - Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then. - 无法部署:Qemu不在运行。现在正在为您启动,但是完成启动需要花点时间。请稍后再试。 + Port: + 端口: - Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version. - 无法部署:您希望部署到Qemu,但是本版本Qt没有启用Qemu支持。 + HTTPS: + + + + GitLab + - RemoteLinux + GitLab::GitLabOptionsWidget - Start Qemu, if necessary - 必要时启动Qemu + Default: + 默认: + + + curl: + + + + Edit... + 编辑... + + + Edit current selected GitLab server configuration. + + + + Remove + 删除 + + + Remove current selected GitLab server configuration. + + + + Add... + 添加... + + + Add new GitLab server configuration. + + + + Edit Server... + + + + Modify + + + + Add Server... + + + + Add + 添加 - RemoteLinux + GitLab::GitLabPlugin - Add Packaging Files to Project - 添加包文件到项目中 + GitLab + - <html>Qt Creator has set up the following files to enable packaging: - %1 -Do you want to add them to the project?</html> - <html>Qt Creator 将以下文件设置为支持打包功能: - %1 -您想添加它们到项目中吗?</html> + GitLab... + + + + Error + 错误 + + + Invalid GitLab configuration. For a fully functional configuration, you need to set up host name or address and an access token. Providing the path to curl is mandatory. + - Perforce::Internal::PerforceVersionControl + GitLab::GitLabProjectSettingsWidget - &Edit (%1) - 编辑(%1)(&E) + Host: + 主机: + + + Linked GitLab Configuration: + + + + Link with GitLab + + + + Unlink from GitLab + + + + Test Connection + + + + Projects linked with GitLab receive event notifications in the Version Control output pane. + + + + Remote host does not match chosen GitLab configuration. + + + + Check settings for misconfiguration. + + + + Accessible (%1). + + + + Read only access. + + + + Not a git repository. + + + + Local git repository without remotes. + + + + + GlslEditor::Internal::GlslEditorPlugin + + GLSL + GLSL sub-menu in the Tools menu + GLSL + + + + HelloWorld::Internal::HelloMode + + Hello World PushButton! + + + + Hello world! + + + + + HelloWorld::Internal::HelloWorldPlugin + + Say "&Hello World!" + + + + &Hello World + + + + Hello World! + + + + Hello World! Beautiful day today, isn't it? + + + + + HelloWorld::Internal::HelloWorldWindow + + Focus me to activate my context! + + + + Hello, world! + + + + + Help + + Documentation + 文档 + + + Add Documentation + 添加文档 + + + Qt Help Files (*.qch) + Qt 帮助文件 (*.qch) + + + Invalid documentation file: + 无效的文档文件: + + + Namespace already registered: + 命名空间已经注册: + + + Unable to register documentation. + 无法注册文档。 + + + Add and remove compressed help files, .qch. + 添加和删除已压缩的帮助文件,.qch。 + + + Registered Documentation + 已注册的文档 + + + Add... + 添加... + + + Remove + 删除 + + + Filters + 过滤器 + + + Unfiltered + 未过滤 + + + Help Index + 帮助索引 + + + Help + 帮助 + + + Contents + 目录 + + + Index + 索引 + + + Search + 查找 + + + Bookmarks + 书签 + + + Home + 主页 + + + Meta+M + Meta+M + + + Ctrl+M + Ctrl+M + + + Report Bug... + 报告bug... + + + Meta+I + Meta+I + + + Ctrl+Shift+I + Ctrl+Shift+I + + + Meta+Shift+C + Meta+Shift+C + + + Ctrl+Shift+C + Ctrl+Shift+C + + + Meta+/ + Meta+/ + + + Ctrl+Shift+/ + Ctrl+Shift+/ + + + Ctrl+Shift+B + Ctrl+Shift+B + + + Meta+O + Meta+O + + + Ctrl+Shift+O + Ctrl+Shift+O + + + Add Bookmark + 添加书签 + + + Context Help + 上下文相关帮助 + + + Increase Font Size + 增大字号 + + + Decrease Font Size + 减小字号 + + + Reset Font Size + 重置字号 + + + Open Pages + 打开页面 + + + No Documentation + 没有文档 + + + No documentation available. + 没有可用文档。 + + + Open Link + 打开链接 + + + Open Link as New Page + 在新页面打开连接 + + + Copy Link + 复制链接 + + + Copy + 复制 + + + Reload + 重新载入 + + + General + 概要 + + + Import Bookmarks + 导入书签 + + + Files (*.xbel) + 文件 (*.xbel) + + + Cannot import bookmarks. + 无法导入书签。 + + + Save File + 保存文件 + + + Font + 字体 + + + Family: + 字型: + + + Style: + 风格: + + + Size: + 字号: + + + Startup + 启动 + + + On context help: + 上下文相关帮助: + + + Show Side-by-Side if Possible + 尽可能并排显示 + + + Always Show Side-by-Side + 总是并排显示 + + + On help start: + 帮助开始时: + + + Show My Home Page + 显示我的主页 + + + Show a Blank Page + 显示空白页 + + + Show My Tabs from Last Session + 显示上一次会话的打开页面 + + + Home page: + 主页: + + + Use &Current Page + 使用当前页(&C) + + + Use &Blank Page + 使用空白页(&B) + + + Reset + 重置 + + + Behaviour + 行为 + + + Return to editor on closing the last page + 关闭最后一页时返回编辑器 + + + The file is not an XBEL version 1.0 file. + 此文件不是XBEL 1.0文件。 + + + Unknown title + 未知标题 + + + Error loading: %1 + 载入 %1 除错 + + + (Untitled) + (未命名) + + + Close %1 + 关闭%1 + + + Close All Except %1 + 除了%1 以外全部关闭 + + + Copy Full Path to Clipboard + 复制完整路径到剪贴板 + + + %1 (auto-detected) + + + + Registration Failed + + + + Note: The above setting takes effect only if the HTML file does not use a style sheet. + + + + Zoom: + 缩放: + + + % + % + + + Always Show in Help Mode + + + + Always Show in External Window + + + + Reset to default. + 重置为默认。 + + + Enable scroll wheel zooming + + + + Switches to editor context after last help page is closed. + + + + Viewer backend: + + + + Change takes effect after reloading help pages. + + + + Import Bookmarks... + + + + Export Bookmarks... + + + + Default (%1) + Default viewer backend + + + + Open Link in Window + + + + Update Documentation + + + + Technical Support... + + + + System Information... + + + + System Information + + + + Use the following to provide more detailed information about your system to bug reports: + + + + Copy to Clipboard + + + + Zoom: %1% + + + + Show Context Help Side-by-Side if Possible + + + + Always Show Context Help Side-by-Side + + + + Always Show Context Help in Help Mode + + + + Always Show Context Help in External Window + + + + Open in Help Mode + + + + Back + + + + Forward + 按时间顺序 + + + Open Online Documentation... + + + + Open in Edit Mode + + + + Open in New Page + + + + Open in Window + + + + Activate Help Bookmarks View + + + + Alt+Meta+M + Alt+Meta+M + + + Activate Help Search View + + + + Activate Open Help Pages View + + + + Help - %1 + + + + Print Documentation + + + + litehtml + + + + QtWebEngine + + + + QTextBrowser + + + + WebKit + + + + Error loading page + + + + <p>Check that you have the corresponding documentation set installed.</p> + + + + The page could not be found + + + + Get Help Online + + + + Indexing Documentation + + + + Regenerate Index + + + + &Look for: + 查找(&L): + + + + HeobData + + Process %1 + 进程%1 + + + Process finished with exit code %1 (0x%2). + + + + Unknown argument: -%1 + + + + Cannot create target process. + + + + Wrong bitness. + + + + Process killed. + + + + Only works with dynamically linked CRT. + + + + Process stopped with unhandled exception code 0x%1. + + + + Not enough memory to keep track of allocations. + + + + Application stopped unexpectedly. + + + + Extra console. + + + + Unknown exit reason. + + + + Heob stopped unexpectedly. + + + + Heob: %1 + + + + Heob: Failure in process attach handshake (%1). + + + + + HeobDialog + + New + 新建 + + + Delete + 删除 + + + XML output file: + + + + Handle exceptions: + + + + Off + + + + On + + + + Only + + + + Page protection: + + + + After + + + + Before + + + + Freed memory protection + + + + Raise breakpoint exception on error + + + + Leak details: + + + + None + + + + Simple + + + + Detect Leak Types + + + + Detect Leak Types (Show Reachable) + + + + Fuzzy Detect Leak Types + + + + Fuzzy Detect Leak Types (Show Reachable) + + + + Minimum leak size: + + + + Control leak recording: + + + + On (Start Disabled) + + + + On (Start Enabled) + + + + Run with debugger + + + + Extra arguments: + + + + Heob path: + + + + The location of heob32.exe and heob64.exe. + + + + Save current settings as default. + + + + OK + OK + + + Default + 默认 + + + Heob + + + + New Heob Profile + + + + Heob profile name: + + + + %1 (copy) + %1 (复制) + + + Delete Heob Profile + + + + Are you sure you want to delete this profile permanently? + + + + + ImageViewer + + Image Viewer + 图像查看器 + + + Fit to Screen + 适应屏幕 + + + Ctrl+= + Ctrl+= + + + Switch Background + 切换背景 + + + Switch Outline + 显示轮廓线 + + + Toggle Animation + 切换动画 + + + Ctrl+[ + Ctrl+[ + + + Ctrl+] + Ctrl+] + + + Play Animation + 播放动画 + + + Pause Animation + 暂停动画 + + + File: + 文件: + + + x + Multiplication, as in 32x32 + x + + + Size: + + + + %1 already exists. +Would you like to overwrite it? + + + + Exported "%1", %2x%3, %4 bytes + + + + Could not write file "%1". + + + + Export Image + + + + Export %1 + + + + Export a Series of Images from %1 (%2x%3) + + + + Export + + + + Set as Default + 设置为默认 + + + on + + + + off + + + + Use the current settings for background, outline, and fitting to screen as the default for new image viewers. Current default: + + + + Background: %1 + + + + Outline: %1 + + + + Fit to Screen: %1 + + + + Image format not supported. + + + + Failed to read SVG image. + + + + Failed to read image. + + + + Export Multiple Images + + + + Copy as Data URL + + + + Enter a file name containing place holders %1 which will be replaced by the width and height of the image, respectively. + + + + Clear + + + + Set Standard Icon Sizes + + + + Generate Sizes + + + + A comma-separated list of size specifications of the form "<width>x<height>". + + + + Sizes: + + + + Please specify some sizes. + + + + Invalid size specification: %1 + + + + The file name must contain one of the placeholders %1, %2. + + + + The file %1 already exists. +Would you like to overwrite it? + + + + The files %1 already exist. +Would you like to overwrite them? + + + + + IncrediBuild::Internal::BuildConsoleBuildStep + + IncrediBuild for Windows + + + + Target and Configuration + + + + Enter the appropriate arguments to your build command. + + + + Make sure the build command's multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools) + + + + Keep original jobs number: + + + + Forces IncrediBuild to not override the -j command line switch, that controls the number of parallel spawned tasks. The default IncrediBuild behavior is to set it to 200. + + + + IncrediBuild Distribution Control + + + + Profile.xml: + + + + Defines how Automatic Interception Interface should handle the various processes involved in a distributed job. It is not necessary for "Visual Studio" or "Make and Build tools" builds, but can be used to provide configuration options if those builds use additional processes that are not included in those packages. It is required to configure distributable processes in "Dev Tools" builds. + + + + Avoid local task execution: + + + + Overrides the Agent Settings dialog Avoid task execution on local machine when possible option. This allows to free more resources on the initiator machine and could be beneficial to distribution in scenarios where the initiating machine is bottlenecking the build with High CPU usage. + + + + Determines the maximum number of CPU cores that can be used in a build, regardless of the number of available Agents. It takes into account both local and remote cores, even if the Avoid Task Execution on Local Machine option is selected. + + + + Maximum CPUs to utilize in the build: + + + + Newest allowed helper machine OS: + + + + Specifies the newest operating system installed on a helper machine to be allowed to participate as helper in the build. + + + + Oldest allowed helper machine OS: + + + + Specifies the oldest operating system installed on a helper machine to be allowed to participate as helper in the build. + + + + Output and Logging + + + + Build title: + + + + Specifies a custom header line which will be displayed in the beginning of the build output text. This title will also be used for the Build History and Build Monitor displays. + + + + Save IncrediBuild monitor file: + + + + Writes a copy of the build progress file (.ib_mon) to the specified location. If only a folder name is given, a generated GUID will serve as the file name. The full path of the saved Build Monitor will be written to the end of the build output. + + + + Suppress STDOUT: + + + + Does not write anything to the standard output. + + + + Output Log file: + + + + Writes build output to a file. + + + + Show Commands in output: + + + + Shows, for each file built, the command-line used by IncrediBuild to build the file. + + + + Show Agents in output: + + + + Shows the Agent used to build each file. + + + + Show Time in output: + + + + Shows the Start and Finish time for each file built. + + + + Hide IncrediBuild Header in output: + + + + Suppresses IncrediBuild's header in the build output + + + + Internal IncrediBuild logging level: + + + + Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support + + + + Miscellaneous + 其他 + + + Set an Environment Variable: + + + + Sets or overrides environment variables for the context of the build. + + + + Stop on errors: + + + + When specified, the execution will stop as soon as an error is encountered. This is the default behavior in "Visual Studio" builds, but not the default for "Make and Build tools" or "Dev Tools" builds + + + + Additional Arguments: + + + + Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line + + + + Open Build Monitor: + + + + Opens Build Monitor once the build starts. + + + + + IncrediBuild::Internal::CMakeCommandBuilder + + CMake + CMake + + + + IncrediBuild::Internal::CommandBuilder + + Custom Command + + + + + IncrediBuild::Internal::CommandBuilderAspect + + Command Helper: + + + + Select a helper to establish the build command. + + + + Make command: + + + + Make arguments: + Make 参数: + + + + IncrediBuild::Internal::IBConsoleBuildStep + + IncrediBuild for Linux + + + + Target and Configuration + + + + Enter the appropriate arguments to your build command. + + + + Make sure the build command's multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools) + + + + Keep original jobs number: + + + + Forces IncrediBuild to not override the -j command line switch, that controls the number of parallel spawned tasks. The default IncrediBuild behavior is to set it to 200. + + + + IncrediBuild Distribution Control + + + + Specify nice value. Nice Value should be numeric and between -20 and 19 + + + + Nice value: + + + + Force remote: + + + + Alternate tasks preference: + + + + + IncrediBuild::Internal::MakeCommandBuilder + + Make + Make + + + + InvalidIdException + + Only alphanumeric characters and underscore allowed. +Ids must begin with a lowercase letter. + 仅允许字母数字和下划线。 +Id必须以小写字母开头。 + + + Ids have to be unique. + Id 必须唯一。 + + + Invalid Id: %1 +%2 + 无效 Id: %1 +%2 + + + + Ios::Internal + + Deploy on iOS + + + + + Ios::Internal::CreateSimulatorDialog + + Create Simulator + + + + Simulator name: + + + + Device type: + 设备类型: + + + OS version: + + + + None + + + + + Ios::Internal::IosBuildStep + + Base arguments: + + + + Reset Defaults + + + + Extra arguments: + + + + iOS build + iOS BuildStep display name. + + + + xcodebuild + + + + + Ios::Internal::IosConfigurations + + %1 Simulator + + + + + Ios::Internal::IosDebugSupport + + Application not running. + + + + Could not find device specific debug symbols at %1. Debugging initialization will be slow until you open the Organizer window of Xcode with the device connected to have the symbols generated. + + + + The dSYM %1 seems to be outdated, it might confuse the debugger. + + + + + Ios::Internal::IosDeployStep + + Deploy to %1 + + + + Error: no device available, deploy failed. + + + + Deployment failed. No iOS device found. + + + + Transferring application + + + + Deployment failed. The settings in the Devices window of Xcode might be incorrect. + + + + Deployment failed. + + + + The Info.plist might be incorrect. + + + + The provisioning profile "%1" (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail. + + + + Deploy to iOS device + + + + + Ios::Internal::IosDevice + + iOS + + + + iOS Device + + + + Device name: + + + + Identifier: + + + + OS Version: + + + + CPU Architecture: + + + + + Ios::Internal::IosDeviceManager + + Device name + + + + Developer status + Whether the device is in developer mode. + + + + Connected + + + + yes + + + + no + + + + unknown + + + + OS version + + + + An iOS device in user mode has been detected. + + + + Do you want to see how to set it up for development? + + + + + Ios::Internal::IosDsymBuildStep + + Command: + 命令: + + + Arguments: + 参数: + + + Reset to Default + + + + + Ios::Internal::IosQmakeBuildConfiguration + + iOS Settings + + + + Reset + 重置 + + + Automatically manage signing + + + + Development team: + + + + Provisioning profile: + + + + Default + 默认 + + + None + + + + Development team is not selected. + + + + Provisioning profile is not selected. + + + + Using default development team and provisioning profile. + + + + Development team: %1 (%2) + + + + Settings defined here override the QMake environment. + + + + %1 not configured. Use Xcode and Apple developer account to configure the provisioning profiles and teams. + + + + Development teams + + + + Provisioning profiles + + + + No provisioning profile found for the selected team. + + + + Provisioning profile expired. Expiration date: %1 + + + + + Ios::Internal::IosQmlProfilerSupport + + Could not get necessary ports for the profiler connection. + + + + + Ios::Internal::IosQtVersion + + Failed to detect the ABIs used by the Qt version. + 检测Qt版本使用的ABI失败。 + + + iOS + Qt Version is meant for Ios + + + + + Ios::Internal::IosRunConfiguration + + Run on %1 + + + + Run %1 on %2 + + + + Kit has incorrect device type for running on iOS devices. + + + + No device chosen. Select %1. + + + + No device chosen. Enable developer mode on a device. + + + + No device available. + + + + To use this device you need to enable developer mode on it. + + + + %1 is not connected. Select %2? + + + + %1 is not connected. Enable developer mode on a device? + + + + %1 is not connected. + + + + Device type: + 设备类型: + + + + Ios::Internal::IosRunSupport + + Starting remote process. + 启动远端进程。 + + + + Ios::Internal::IosRunner + + Could not find %1. + + + + Could not get necessary ports for the debugger connection. + + + + Could not get inferior PID. + + + + Run failed. The settings in the Organizer window of Xcode might be incorrect. + + + + The device is locked, please unlock. + + + + Run ended. + + + + Run ended with error. + + + + + Ios::Internal::IosSettingsWidget + + iOS + + + + iOS Configuration + + + + Ask about devices not in developer mode + + + + Rename + 重命名 + + + Rename a simulator device. + + + + Delete + 删除 + + + Delete simulator devices. + + + + Reset + 重置 + + + Reset contents and settings of simulator devices. + + + + Create + + + + Create a new simulator device. + + + + Start + + + + Start simulator devices. + + + + Screenshot + + + + Devices + 设备 + + + Simulator + 模拟器 + + + Screenshot directory: + + + + You are trying to launch %n simulators simultaneously. This will take significant system resources. Do you really want to continue? + + + + + + Simulator Start + + + + Starting %n simulator device(s)... + + + + + + Cannot start simulator (%1, %2) in current state: %3 + + + + simulator start + + + + Creating simulator device... + + + + Simulator device (%1) created. +UDID: %2 + + + + Simulator device (%1) creation failed. +Error: %2 + + + + Do you really want to reset the contents and settings of the %n selected device(s)? + + + + + + Resetting contents and settings... + + + + simulator reset + + + + Rename %1 + + + + Enter new name: + + + + Renaming simulator device... + + + + simulator rename + + + + Delete Device + + + + Do you really want to delete the %n selected device(s)? + + + + + + Deleting %n simulator device(s)... + + + + + + simulator delete + + + + Capturing screenshots from %n device(s)... + + + + + + simulator screenshot + + + + + Ios::Internal::IosSimulator + + iOS Simulator + + + + + Ios::Internal::SimulatorInfoModel + + UDID: %1 + + + + Simulator Name + + + + Runtime + + + + Current State + + + + + Ios::Internal::SimulatorOperationDialog + + Simulator Operation Status + + + + %1, %2 +Operation %3 completed successfully. + + + + %1, %2 +Operation %3 failed. +UDID: %4 +Error: %5 + + + + Unknown + 未知 + + + Done. + 完成。 + + + + Ios::IosToolHandler + + iOS tool error %1 + + + + Application install on simulator failed. Simulator not running. + + + + Application launch on simulator failed. Invalid bundle path %1 + + + + Application launch on simulator failed. Simulator not running. + + + + Application install on simulator failed. %1 + + + + Cannot capture console output from %1. Error redirecting output to %2.* + + + + Cannot capture console output from %1. Install Xcode 8 or later. + + + + Application launch on simulator failed. %1 + + + + Invalid simulator response. Device Id mismatch. Device Id = %1 Response Id = %2 + + + + + Ios::Relayer + + iOS Debugging connection to creator failed with error %1 + + + + + JsonRpcMessage + + Could not parse JSON message "%1". + + + + Expected a JSON object, but got a JSON "%1" value. + + + + + JsonTreeModelItem + + Null + + + + Bool + + + + Double + + + + String + 字符串 + + + Array + + + + Object + 对象 + + + Undefined + 未定义 + + + %n Items + + + + + + + Language + + None + + + + + LanguageClient + + Language Client + + + + Symbols in Current Document + + + + Symbols in Workspace + + + + Classes and Structs in Workspace + + + + Functions and Methods in Workspace + + + + + LanguageClient::BaseClientInterface + + Cannot handle MIME type of message %1 + + + + + LanguageClient::BaseSettings + + Always On + + + + Requires an Open File + + + + Start Server per Project + + + + + LanguageClient::BaseSettingsWidget + + Name: + 名称: + + + Language: + 语言: + + + Set MIME Types... + + + + File pattern + + + + Startup behavior: + + + + Initialization options: + + + + Failed to parse JSON at %1: %2 + + + + Language server-specific JSON to pass via "initializationOptions" field of "initialize" request. + + + + + LanguageClient::Client + + %1 for %2 + + + + uninitialized + + + + initialize requested + + + + initialized + + + + shutdown requested + + + + shutdown + + + + error + + + + + LanguageClient::ClientPrivate + + Invalid parameter in "%1": +%2 + + + + Language Server "%1" Initialize Error + + + + Initialize error: + + + + Initialize result is invalid. + + + + Server Info is invalid. + + + + No initialize result. + + + + + LanguageClient::DiagnosticManager + + Copy to Clipboard + + + + + LanguageClient::DocumentLocatorFilter + + Matches all symbols from the current document, based on a language server. + + + + + LanguageClient::LanguageClientManager + + Unexpectedly finished. Restarting in %1 seconds. + + + + Unexpectedly finished. + + + + Show available quick fixes + + + + + LanguageClient::LanguageClientPlugin + + Generic StdIO Language Server + + + + Inspect Language Clients... + + + + + LanguageClient::LspInspector + + Expand All + 展开全部 + + + Client Message + + + + Messages + + + + Server Message + + + + Log File + + + + + LanguageClient::ReplaceWidget + + Search Again to update results and re-enable Replace + + + + Re&name %n files + + + + + + Files: +%1 + + + + + LanguageClient::ResponseError + + Error %1 + + + + + LanguageClient::StdIOClientInterface + + Cannot send data to unstarted server %1 + + + + + LanguageClient::StdIOSettingsWidget + + Executable: + 执行档: + + + Arguments: + 参数: + + + + LanguageClientSettingsPage + + &Add + 添加(&A) + + + &Delete + 删除(&D) + + + General + 概要 + + + + LanguageServerProtocol::Notification + + No parameters in "%1". + + + + + LanguageServerProtocol::Request + + No ID set in "%1". + + + + + Locator + + Locator + 定位器 + + + + LogFileReader + + File "%1" does not exist or is not readable. + + + + Error: Failed to parse YAML file "%1": %2. + + + + + LoggingViewManagerWidget + + Logging Category Viewer + + + + Save Log + + + + Clear + + + + Stop Logging + + + + Toggle Qt Internal Logging + + + + Auto Scroll + 自动滚动 + + + Timestamps + + + + Message Types + + + + Timestamp + + + + Category + + + + Type + 类型 + + + Message + 消息 + + + Start Logging + + + + Copy Selected Logs + + + + Copy All + + + + Save Enabled as Preset... + + + + Update from Preset... + + + + Uncheck All + 取消选中 + + + Save Logs As + + + + Error + 错误 + + + Failed to write logs to "%1". + + + + Failed to open file "%1" for writing logs. + + + + Save Enabled Categories As + + + + Failed to write preset file "%1". + + + + Load Enabled Categories From + + + + Failed to open preset file "%1" for reading + + + + Failed to read preset file "%1": %2 + + + + Unexpected preset file format. + + + + + LspCapabilitiesWidget + + Capabilities: + 能力: + + + Dynamic Capabilities: + + + + Method: + 方法: + + + Options: + + + + Server Capabilities + + + + + LspInspectorWidget + + Language Client Inspector + + + + Log + + + + Capabilities + + + + Clear + + + + + Macros + + Macros + + + + + Macros::Internal::MacroLocatorFilter + + Text Editing Macros + + + + Runs a text editing macro that was recorded with Tools > Text Editing Macros > Record Macro. + + + + + Macros::Internal::MacroManager + + Playing Macro + 播放宏 + + + An error occurred while replaying the macro, execution stopped. + 播放macro时发生错误, 执行停止。 + + + Macro mode. Type "%1" to stop recording and "%2" to play the macro. + + + + Stop Recording Macro + 停止录制宏 + + + + Macros::Internal::MacroOptionsWidget + + Preferences + 首选项 + + + Name + 名称 + + + Shortcut + 快捷键 + + + Remove + 删除 + + + Macro + + + + Description: + 说明: + + + Macros + + + + Description) + + + + + Macros::Internal::MacrosPlugin + + Record Macro + 录制宏 + + + Stop Recording Macro + 停止录制宏 + + + Play Last Macro + 播放最近的宏 + + + Alt+R + Alt+R + + + Meta+R + Meta+R + + + Save Last Macro + 保存最近的宏 + + + Text Editing &Macros + + + + Ctrl+[ + Ctrl+[ + + + Alt+[ + + + + Ctrl+] + Ctrl+] + + + Alt+] + + + + + Macros::Internal::SaveDialog + + Save Macro + 保存宏 + + + Name: + 名称: + + + Description: + 说明: + + + + MainWidget + + Crash Handler + + + + Qt Creator has crashed + + + + You can send us a crash report in order to help us diagnose and fix the problem. + + + + Email: + + + + Enter here your email (optional) + + + + Tell The Qt Company about this crash so they can fix it + + + + Details + 详情 + + + Please describe what you did before it crashed (comments are publicly visible) + + + + Your crash report will be submitted before you quit or restart. + + + + %v/%m Bytes + + + + Restart + + + + Quit + 退出 + + + %1 has crashed + + + + We specifically send the following information: + + + + + + Email: %1 + + + + + Comments: %1 + + + + + In addition, we send a Microsoft Minidump file, which contains information about this computer, such as the operating system and CPU, and most importantly, it contains the stacktrace, which is an internal structure that shows where the program crashed. This information will help us to identify the cause of the crash and to fix it. + + + + + MainWindow + + MainWindow + + + + + Marketplace::Internal::QtMarketplaceWelcomePage + + Marketplace + + + + Search in Marketplace... + + + + <p>Could not fetch data from Qt Marketplace.</p><p>Try with your browser instead: <a href='https://marketplace.qt.io'>https://marketplace.qt.io</a></p><br/><p><small><i>Error: %1</i></small></p> + + + + + McuSupport::Internal::FlashAndRunConfiguration + + Flash and run CMake parameters: + + + + + McuSupport::Internal::McuDependenciesKitAspect + + MCU Dependencies + + + + Paths to 3rd party dependencies + + + + The MCU dependencies setting value is invalid. + + + + CMake variable %1 not defined. + + + + CMake variable %1: path %2 does not exist. + + + + + McuSupport::Internal::McuPackage + + Path %1 exists, but does not contain %2. + + + + Path %1 does not exist. Add the path in Edit > Preferences > Devices > MCU. + + + + Missing %1. Add the path in Edit > Preferences > Devices > MCU. + + + + No CMake tool was detected. Add a CMake tool in Edit > Preferences > Kits > CMake. + + + + Path %1 exists. + + + + Path %1 exists. Version %2 was found. + + + + Path %1 is valid, %2 was found. + + + + but only version %1 is supported + + + + but only versions %1 are supported + + + + Path %1 is valid, %2 was found, %3. + + + + Path %1 does not exist. + + + + Path is empty. + + + + Path is empty, %1 not found. + + + + Download from "%1" + + + + Arm GDB at %1 + + + + MSVC Binary directory + + + + GCC Toolchain + + + + GNU Arm Embedded Toolchain + + + + STM32CubeProgrammer + + + + + McuSupport::Internal::McuSupportDevice + + MCU Device + + + + + McuSupport::Internal::McuSupportOptions + + Qt for MCUs Demos + + + + Qt for MCUs Examples + + + + Replace Existing Kits + + + + Create New Kits + + + + Qt for MCUs + + + + New version of Qt for MCUs detected. Upgrade existing kits? + + + + + McuSupport::Internal::McuSupportOptionsWidget + + Qt for MCUs SDK + + + + Targets supported by the %1 + + + + Requirements + + + + Automatically create kits for all available targets on start + + + + Create a Kit + + + + Create Kit + + + + Update Kit + + + + No valid kit descriptions found at %1. + + + + A kit for the selected target and SDK version already exists. + + + + Kits for a different SDK version exist. + + + + A kit for the selected target can be created. + + + + MCU + + + + + McuSupport::Internal::McuSupportPlugin + + Create Kits for Qt for MCUs? To do it later, select Edit > Preferences > Devices > MCU. + + + + Create Kits for Qt for MCUs + + + + New version of Qt for MCUs detected. Upgrade existing Kits? + + + + Create new kits + + + + Replace existing kits + + + + Proceed + 继续 + + + + McuSupport::Internal::McuTarget + + Warning for target %1: missing CMake toolchain file expected at %2. + + + + Warning for target %1: missing QulGenerators expected at %2. + + + + Qt for MCUs SDK version %1 detected, only supported by Qt Creator version %2. This version of Qt Creator requires Qt for MCUs %3 or greater. + + + + Skipped %1. Unsupported version "%2". + + + + Detected version "%1", only supported by Qt Creator %2. + + + + Unsupported version "%1". + + + + Skipped %1. %2 Qt for MCUs version >= %3 required. + + + + No valid kit descriptions found at %1. + + + + Kit for %1 created. + + + + Error creating kit for target %1, package %2: %3 + + + + Warning creating kit for target %1, package %2: %3 + + + + + Mercurial + + General Information + 概要信息 + + + Repository: + 代码仓库: + + + Branch: + 分支: + + + Commit Information + 提交信息 + + + Author: + 作者: + + + Email: + 电子邮件: + + + Configuration + 配置 + + + Command: + 命令: + + + User + 用户 + + + Username to use by default on commit. + 提交时默认使用的用户名。 + + + Default username: + 默认用户名: + + + Email to use by default on commit. + 提交时默认使用的 Email。 + + + Miscellaneous + 其他 + + + Mercurial + Mercurial + + + Default email: + 默认电子邮件: + + + Revert + 还原 + + + Specify a revision other than the default? + 指定一个修订版本而不用默认版本? + + + Revision: + 修订版本: + + + Local filesystem: + 本地文件系统: + + + Default Location + 默认位置 + + + Specify URL: + 指定URL: + + + Commit Editor + Commit编辑器 + + + Unable to find parent revisions of %1 in %2: %3 + 无法在 %2 找到 %1 的父修订版本: %3 + + + Cannot parse output: %1 + 无法解析输出: %1 + + + Hg incoming %1 + no idea what it is + Hg 正在传入 %1 + + + Hg outgoing %1 + Hg 正在传出 %1 + + + Annotate Current File + Annotate 当前文件 + + + Annotate "%1" + Annotate "%1" + + + Diff Current File + Diff 当前文件 + + + Diff "%1" + Diff "%1" + + + Meta+H,Meta+D + Meta+H,Meta+D + + + Log Current File + Log 当前文件 + + + Log "%1" + Log "%1" + + + Meta+H,Meta+L + Meta+H,Meta+L + + + Status Current File + Status 当前文件 + + + Status "%1" + Status "%1" + + + Meta+H,Meta+S + Meta+H,Meta+S + + + Add + 添加 + + + Add "%1" + 添加 "%1" + + + Delete... + 删除... + + + Delete "%1"... + 删除 "%1"... + + + Revert Current File... + 还原当前文件... + + + Revert "%1"... + 还原 "%1"... + + + Diff + Diff + + + Log + Log + + + Revert... + 还原... + + + Status + Status + + + Pull... + Pull... + + + Push... + Push... + + + Update... + 更新... + + + Import... + 导入... + + + Incoming... + 传入... + + + Outgoing... + 传出... + + + Commit... + 提交... + + + Meta+H,Meta+C + Meta+H,Meta+C + + + Create Repository... + 创建代码仓库... + + + Pull Source + Pull 源码 + + + Push Destination + Push 目标 + + + Update + 更新 + + + Incoming Source + 传入源 + + + There are no changes to commit. + 没有修改可提交。 + + + Unable to create an editor for the commit. + 无法为提交创建编辑器。 + + + Commit changes for "%1". + 为 "%1" 提交修改。 + + + Mercurial Command + Mercurial 命令 + + + Username: + 用户名: + + + Password: + 密码: + + + Mercurial Diff + + + + Mercurial Diff "%1" + + + + &Annotate %1 + + + + Annotate &parent revision %1 + + + + Triggers a Mercurial version control operation. + + + + Me&rcurial + + + + Alt+G,Alt+D + Alt+G,Alt+D + + + Alt+G,Alt+L + Alt+G,Alt+L + + + Alt+G,Alt+S + Alt+G,Alt+S + + + Alt+G,Alt+C + Alt+G,Alt+C + + + For example: 'https://[user[:pass]@]host[:port]/[path]'. + + + + Prompt for credentials + + + + + MesonProjectManager + + Key + 密钥 + + + Value + + + + Configure + 配置 + + + Build + 构建 + + + Build "%1" + 构建 "%1" + + + Meson + + + + Apply Configuration Changes + + + + Wipe Project + + + + Wipes build directory and reconfigures using previous command line options. +Useful if build directory is corrupted or when rebuilding with a newer version of Meson. + + + + Parameters + + + + Meson build: Parsing failed + + + + Configuring "%1". + + + + Running %1 in %2. + + + + Executable does not exist: %1 + + + + Command is not executable: %1 + + + + No Meson tool set. + + + + No Ninja tool set. + + + + No compilers set in kit. + + + + Meson Tool + + + + The Meson tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. + + + + Cannot validate this meson executable. + + + + Unconfigured + 未配置 + + + Build + MesonProjectManager::MesonBuildStepConfigWidget display name. + 构建 + + + Tool arguments: + + + + Targets: + 目标: + + + Meson Build + + + + Ninja Tool + + + + The Ninja tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. + + + + Cannot validate this Ninja executable. + + + + Ninja + + + + Autorun Meson + + + + Automatically run Meson when needed. + + + + Ninja verbose mode + + + + Enables verbose mode by default when invoking Ninja. + + + + General + 概要 + + + Name: + 名称: + + + Path: + 路径: + + + Name + + + + Location + + + + New Meson or Ninja tool + + + + Tools + + + + Add + 添加 + + + Clone + 克隆 + + + Remove + 删除 + + + Make Default + 设置为默认 + + + Set as the default Meson executable to use when creating a new kit or when no value is set. + + + + Version: %1 + 版本: %1 + + + Clone of %1 + %1 的克隆 + + + Meson executable path does not exist. + + + + Meson executable path is not a file. + + + + Meson executable path is not executable. + + + + Cannot get tool version. + + + + + MimeTypeDialog + + Select MIME Types + + + + Filter + 过滤器 + + + + ModelEditor + + Zoom: %1% + + + + + ModelEditor::Internal::ActionHandler + + &Remove + 删除(&R) + + + &Delete + 删除(&D) + + + Export Diagram... + + + + Export Selected Elements... + + + + Open Parent Diagram + + + + Add Package + + + + Add Component + + + + Add Class + + + + Add Canvas Diagram + + + + Synchronize Browser and Diagram + + + + Press && Hold for Options + + + + Edit Element Properties + + + + Shift+Return + Shift+Return + + + Edit Item on Diagram + + + + Return + + + + + ModelEditor::Internal::ElementTasks + + Update Include Dependencies + + + + + ModelEditor::Internal::ExtPropertiesMView + + Select Custom Configuration Folder + + + + Config path: + + + + <font color=red>Model file must be reloaded.</font> + + + + + ModelEditor::Internal::ModelDocument + + No model loaded. Cannot save. + + + + Could not open "%1" for reading: %2. + + + + + ModelEditor::Internal::ModelEditor + + <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Open a diagram</div><table><tr><td><hr/><div style="margin-top: 5px">&bull; Double-click on diagram in model tree</div><div style="margin-top: 5px">&bull; Select "Open Diagram" from package's context menu in model tree</div></td></tr></table></div></body></html> + + + + Synchronize Structure with Diagram + + + + Synchronize Diagram with Structure + + + + Keep Synchronized + + + + Images (*.png *.jpeg *.jpg *.tif *.tiff);;PDF (*.pdf) + + + + ;;SVG (*.svg) + + + + Export Selected Elements + + + + Export Diagram + + + + Exporting Selected Elements Failed + + + + Exporting the selected elements of the current diagram into file<br>"%1"<br>failed. + + + + Exporting Diagram Failed + + + + Exporting the diagram into file<br>"%1"<br>failed. + + + + New %1 + + + + Package + + + + New Package + + + + Component + + + + New Component + + + + Class + + + + New Class + + + + Item + + + + New Item + + + + Annotation + + + + Boundary + + + + Swimlane + + + + + ModelEditor::Internal::ModelsManager + + Open Diagram + + + + + ModelEditor::Internal::PxNodeController + + Add Component %1 + + + + Add Class %1 + + + + Add Package %1 + + + + Add Package and Diagram %1 + + + + Add Component Model + + + + Create Component Model + + + + Drop Node + + + + + ModelNodeOperations + + Go to Implementation + + + + Invalid component. + + + + Cannot find an implementation. + + + + Cannot Set Property %1 + + + + The property %1 is bound to an expression. + + + + Overwrite Existing File? + + + + File already exists. Overwrite? +"%1" + + + + Asset import data file "%1" is invalid. + + + + Unable to locate source scene "%1". + + + + Opening asset import data file "%1" failed. + + + + Unable to resolve asset import path. + + + + Import Update Failed + + + + Failed to update import. +Error: +%1 + + + + + Modeling + + Modeling + + + + + MoveToolAction + + Activate Move Tool + + + + + NavigatorTreeModel + + Warning + 警告 + + + Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? + 在此重定义父级组件%1 将会导致组件%2被删除。您想要继续吗? + + + + Nim + + Nim + + + + Nim + SnippetProvider + + + + General + 概要 + + + Debug + + + + Release + + + + Nimble Build + + + + Nimble Test + + + + Nimble Task + + + + Task arguments: + + + + Tasks: + + + + Nimble task %1 not found. + + + + Nim build step + + + + None + + + + Target: + 目标: + + + Default arguments: + + + + Extra arguments: + + + + Command: + 命令: + + + Nim Compiler Build Step + + + + Working directory: + 工作目录: + + + Build directory "%1" does not exist. + + + + Failed to delete the cache directory. + + + + Failed to delete the out file. + + + + Clean step completed successfully. + + + + Nim Clean Step + + + + No Nim compiler set. + + + + Nim compiler does not exist. + + + + Current Build Target + + + + &Compiler path: + 编译器路径(&C): + + + &Compiler version: + + + + Code Style + 代码风格 + + + Path: + 路径: + + + Global + Settings + + + + Tools + + + + + OpenEditorsWidget + + Open Documents + + + + Meta+O + Meta+O + + + Alt+O + Alt+O + + + + OpenWith::Editors + + Plain Text Editor + 普通文本编辑器 + + + Binary Editor + 二进制编辑器 + + + C++ Editor + C++ 编辑器 + + + .pro File Editor + .pro 文件编辑器 + + + .files Editor + .files 编辑器 + + + QMLJS Editor + QMLJS 编辑器 + + + Qt Designer + Qt设计师 + + + Qt Linguist + Qt语言家 + + + Resource Editor + 资源编辑器 + + + GLSL Editor + GLSL 编辑器 + + + Java Editor + + + + CMake Editor + + + + Compilation Database + + + + Model Editor + + + + Nim Editor + + + + Python Editor + + + + Qt Quick Designer + Qt Quick 设计器 + + + SCXML Editor + + + + + OrientationToggleAction + + Toggle Global/Local Orientation + + + + + ParticleViewModeAction + + Toggle particle animation On/Off + + + + + ParticlesPlayAction + + Play Particles + + + + + ParticlesRestartAction + + Restart Particles + + + + + PathTool + + Path Tool + + + + + PathToolAction + + Edit Path + + + + + PerfProfiler + + Samples + + + + Function + 函数 + + + Source + + + + Binary + 二进制 + + + Allocations + + + + observed + + + + guessed + + + + Releases + + + + Peak Usage + + + + Various + + + + Event Type + + + + Counter + + + + Operation + + + + Result + 结果 + + + Use Trace Points + + + + Add Event + + + + Remove Event + + + + Reset + 重置 + + + Replace events with trace points read from the device? + + + + Cannot List Trace Points + + + + "perf probe -l" failed to start. Is perf installed? + + + + No Trace Points Found + + + + Trace points can be defined with "perf probe -a". + + + + Perf Data Parser Failed + + + + The Perf data parser failed to process all the samples. Your trace is incomplete. The exit code was %1. + + + + perfparser failed to start. + + + + Could not start the perfparser utility program. Make sure a working Perf parser is available at the location given by the PERFPROFILER_PARSER_FILEPATH environment variable. + + + + Perf Data Parser Crashed + + + + This is a bug. Please report it. + + + + Skipping Processing Delay + + + + Cancel this to ignore the processing delay and immediately start recording. + + + + Cancel this to ignore the processing delay and immediately stop recording. + + + + Cannot Send Data to Perf Data Parser + + + + The Perf data parser does not accept further input. Your trace is incomplete. + + + + Load Perf Trace + + + + &Trace file: + + + + &Browse... + 浏览(&B)... + + + Directory of &executable: + + + + B&rowse... + + + + Kit: + + + + Choose Perf Trace + + + + Perf traces (*%1) + + + + Choose Directory of Executable + + + + CPU Usage + + + + [unknown] + + + + Perf Process Failed to Start + + + + Make sure that you are running a recent Linux kernel and that the "perf" utility is available. + + + + Failed to transfer Perf data to perfparser. + + + + Address + 地址 + + + Source Location + + + + Binary Location + + + + Caller + 调用者 + + + Callee + 被调用者 + + + Occurrences + 出现位置 + + + Occurrences in Percent + + + + Recursion in Percent + + + + Samples in Percent + + + + Self Samples + + + + Self in Percent + + + + Performance Analyzer Options + + + + Load perf.data File + + + + Load Trace File + + + + Save Trace File + + + + Limit to Range Selected in Timeline + + + + Show Full Range + + + + Create Memory Trace Points + + + + Create trace points for memory profiling on the target device. + + + + Performance Analyzer + + + + Finds performance bottlenecks. + + + + Timeline + 时间轴 + + + Statistics + + + + Flame Graph + + + + Discard data. + + + + Limit to Selected Range + + + + Reset Zoom + 重置缩放 + + + Copy Table + 复制表格 + + + Copy Row + 复制行 + + + Reset Flame Graph + + + + No Data Loaded + + + + The profiler did not produce any samples. Make sure that you are running a recent Linux kernel and that the "perf" utility is available and generates useful call graphs. +You might find further explanations in the Application Output view. + + + + A performance analysis is still in progress. + + + + Start a performance analysis. + + + + Enable All + + + + Disable All + + + + Trace File (*.ptq) + + + + Show all addresses. + + + + Aggregate by functions. + + + + Stop collecting profile data. + + + + Collect profile data. + + + + Recorded: %1.%2s + + + + Processing delay: %1.%2s + + + + Invalid data format. The trace file's identification string is "%1". An acceptable trace file should have "%2". You cannot read trace files generated with older versions of %3. + + + + Invalid data format. The trace file was written with data stream version %1. We can read at most version %2. Please use a newer version of Qt. + + + + Failed to reset temporary trace file. + + + + Failed to flush temporary trace file. + + + + Cannot re-open temporary trace file. + + + + Read past end from temporary trace file. + + + + Thread started + + + + Thread ended + + + + Samples lost + + + + Context switch + + + + Invalid + 无效 + + + Failed to replay Perf events from stash file. + + + + Loading Trace Data + + + + Saving Trace Data + + + + Performance Analyzer Settings + + + + Sample period: + + + + Stack snapshot size (kB): + + + + Sample mode: + + + + frequency (Hz) + + + + event count + + + + Call graph mode: + + + + dwarf + + + + frame pointer + + + + last branch record + + + + Additional arguments: + 额外的参数: + + + sample collected + + + + Details + 详情 + + + Timestamp + + + + Guessed + + + + %n frames + + + + + + System + 系统 + + + Name + + + + Resource Usage + + + + Resource Change + + + + thread started + + + + thread ended + + + + lost sample + + + + context switch + + + + Duration + 持续时间 + + + (guessed from context) + + + + Total Samples + + + + Total Unique Samples + + + + Resource Peak + + + + Resource Guesses + + + + Run the following script as root to create trace points? + + + + Elevate privileges using: + + + + Error: No device available for active target. + + + + Error: Failed to load trace point script %1: %2. + + + + Executing script... + + + + Failed to run trace point script: %1 + + + + Failed to create trace points. + + + + Created trace points for: %1 + + + + + Perforce::Internal::ChangeNumberDialog + + Change Number + Change编号 + + + Change Number: + Change编号: + + + + Perforce::Internal::PendingChangesDialog + + P4 Pending Changes + P4未完成的Change + + + Submit + 提交 + + + Cancel + 取消 + + + Change %1: %2 + Change %1: %2 + + + + Perforce::Internal::PerforceChecker + + No executable specified + 未指定执行档 + + + Unable to launch "%1": %2 + 无法启动 "%1": %2 + + + "%1" crashed. + "%1" 崩溃。 + + + "%1" terminated with exit code %2: %3 + "%1" 中止,退出代码 %2: %3 + + + The client does not seem to contain any mapped files. + 客户端看上去不存在任何映射文件。 + + + Unable to determine the client root. + Unable to determine root of the p4 client installation + 无法决定客户端的根目录。 + + + The repository "%1" does not exist. + 源码仓库 "%1" 不存在。 + + + "%1" timed out after %2 ms. + + + + + Perforce::Internal::PerforceDiffConfig + + Ignore Whitespace + 忽略空白 + + + + Perforce::Internal::PerforceEditorWidget + + Annotate change list "%1" + 注释变更列表 "%1" + + + + Perforce::Internal::PerforcePlugin + + &Perforce + &Perforce + + + Edit + 编辑 + + + Edit "%1" + 编辑"%1" + + + Alt+P,Alt+E + Alt+P,Alt+E + + + Edit File + 编辑文件 + + + Add + 添加 + + + Add "%1" + 添加"%1" + + + Alt+P,Alt+A + Alt+P,Alt+A + + + Add File + 添加文件 + + + Delete File + 删除文件 + + + Revert + 还原 + + + Revert "%1" + 还原"%1" + + + Alt+P,Alt+R + Alt+P,Alt+R + + + Revert File + 还原文件 + + + Diff Current File + Diff 当前文件 + + + Diff "%1" + Diff "%1" + + + Diff Current Project/Session + Diff 当前文件项目/会话 + + + Diff Project "%1" + Diff 项目 "%1" + + + Alt+P,Alt+D + Alt+P,Alt+D + + + Diff Opened Files + Diff 打开的文件 + + + Opened + 已打开 + + + Alt+P,Alt+O + Alt+P,Alt+O + + + Submit Project + 提交项目 + + + Submit Project "%1" + 提交项目 "%1" + + + Alt+P,Alt+S + Alt+P,Alt+S + + + Pending Changes... + 未完成的Change... + + + Update Project "%1" + 更新项目 "%1" + + + Revert Project + 还原项目 + + + Revert Project "%1" + 还原项目 "%1" + + + Revert Unchanged + 还原未修改的内容 + + + Revert Unchanged Files of Project "%1" + 还原项目 %1 中所有未修改的内容 + + + Describe... + 说明... + + + Annotate Current File + 注释(Annotate) 当前文件 + + + Annotate "%1" + 注释 "%1" + + + Annotate... + 注释... + + + Filelog Current File + Filelog当前文件 + + + Filelog "%1" + Filelog "%1" + + + Alt+P,Alt+F + Alt+P,Alt+F + + + Filelog... + Filelog... + + + Update All + 更新所有 + + + Delete... + 删除... + + + Delete "%1"... + 删除 "%1"... + + + Log Project + Log 项目 + + + Log Project "%1" + Log 项目 "%1" + + + Repository Log + 仓库日志 + + + Submit + 提交 + + + p4 revert + p4 还原(revert) + + + The file has been changed. Do you want to revert it? + 文件被改变,您想还原它么? + + + Do you want to revert all changes to the project "%1"? + 您想还原项目 "%1"的所有修改吗? + + + Another submit is currently executed. + 另一个提交正在被执行。 + + + Project has no files + 项目中没有文件 + + + p4 annotate + p4 annotate + + + p4 annotate %1 + p4 annotate %1 + + + p4 filelog + p4 filelog + + + p4 filelog %1 + p4 filelog %1 + + + The process terminated with exit code %1. + 进程异常终止,退出码 %1 . + + + p4 submit failed: %1 + p4 submit 失败: %1 + + + Error running "where" on %1: %2 + Failed to run p4 "where" to resolve a Perforce file name to a local file system name. + 在 %1运行 "where" 发生错误: %2 + + + The file is not mapped + File is not managed by Perforce + 文件未映射 + + + Perforce repository: %1 + Perforce 仓库地址: %1 + + + Perforce: Unable to determine the repository: %1 + Perforce: 无法定位仓库地址:'%1' + + + The process terminated abnormally. + 进程异常终止。 + + + Meta+P,Meta+F + Meta+P,Meta+F + + + Meta+P,Meta+E + Meta+P,Meta+E + + + Meta+P,Meta+A + Meta+P,Meta+A + + + Meta+P,Meta+R + Meta+P,Meta+R + + + Meta+P,Meta+D + Meta+P,Meta+D + + + Meta+P,Meta+S + Meta+P,Meta+S + + + Update Current Project + 更新当前项目 + + + Meta+P,Meta+O + Meta+P,Meta+O + + + Perforce is not correctly configured. + Perforce未正确配置。 + + + p4 diff %1 + p4 diff %1 + + + p4 describe %1 + p4 describe %1 + + + Pending change + 未完成的修改 + + + Could not submit the change, because your workspace was out of date. Created a pending submit instead. + 无法提交修改,因为您的工作空间已经过时。创建了一个“未完成的提交”。 + + + Triggers a Perforce version control operation. + + + + p4 changelists %1 + + + + &Edit + 编辑(&E) &Hijack - &Hijack + &Hijack + + + Could not start perforce "%1". Please check your settings in the preferences. + + + + Perforce did not respond within timeout limit (%1 s). + + + + [Only %n MB of output shown] + + + + + + + Perforce::Internal::PerforceSubmitEditor + + Perforce Submit + Perforce提交 + + + + Perforce::Internal::SettingsPage + + Perforce + Perforce + + + Test + 测试 + + + Configuration + 配置 + + + Miscellaneous + 其他 + + + Prompt on submit + 提交时弹出提示 + + + Timeout: + 超时时间: + + + s + + + + Log count: + 日志数: + + + P4 command: + P4 命令: + + + P4 client: + P4 客户端: + + + P4 user: + P4 用户: + + + P4 port: + P4 端口: + + + Environment Variables + 环境变量 + + + Automatically open files when editing + 编辑时自动打开文件 + + + Perforce Command + Perforce 命令 + + + Test succeeded (%1). + 测试成功 (%1)。 + + + Testing... + 测试中... + + + + Perforce::Internal::SubmitPanel + + Submit + 提交 + + + Change: + 更改: + + + Client: + 客户端: + + + User: + 用户: + + + + PluginManager + + Unknown option %1 + 未知选项 %1 + + + The option %1 requires an argument. + 选项 %1 需要参数。 + + + Failed Plugins + 发生错误的插件 + + + The plugin "%1" is specified twice for testing. + + + + The plugin "%1" does not exist. + + + + The plugin "%1" is not tested. + + + + Cannot request scenario "%1" as it was already requested. + + + + + PluginSpec + + Resolving dependencies failed because state != Read + 解决依赖关系失败因为 state != Read + + + Could not resolve dependency '%1(%2)' + 无法解决依赖 '%1(%2)' + + + Loading the library failed because state != Resolved + 载入库文件失败因为 state != Resolved + + + Plugin is not valid (does not derive from IPlugin) + 不是有效插件 (未从IPlugin继承) + + + Initializing the plugin failed because state != Loaded + 初始化插件失败因为 state != Loaded + + + Internal error: have no plugin instance to initialize + 内部错误:没有插件实例要初始化 + + + Plugin initialization failed: %1 + 插件初始化失败: %1 + + + Cannot perform extensionsInitialized because state != Initialized + 无法进行扩展初始化因为 state != Initialized + + + Internal error: have no plugin instance to perform extensionsInitialized + 内部错误:没有可进行扩展初始化的插件实例 + + + Internal error: have no plugin instance to perform delayedInitialize + 内部错误: 没有可进行延迟初始化的插件实例 + + + "%1" is missing + + + + Value for key "%1" is not a string + + + + Value for key "%1" is not a bool + + + + Value for key "%1" is not an array of objects + + + + Value for key "%1" is not a string and not an array of strings + + + + Value "%2" for key "%1" has invalid format + + + + + ProMessageHandler + + [Inexact] + Prefix used for output from the cumulative evaluation of project files. + + + + + ProjectEnvironmentWidget + + Project Environment + + + + + ProjectExplorer + + Build & Run + 构建和运行 + + + Other Project + 其他项目 + + + Import Project + 导入项目 + + + Devices + 设备 + + + Start removing auto-detected items associated with this docker image. + + + + Removing kits... + + + + Removed "%1" + + + + Removing Qt version entries... + + + + Removing toolchain entries... + + + + Removal of previously auto-detected kit items finished. + + + + Start listing auto-detected items associated with this docker image. + + + + Kits: + + + + Qt versions: + + + + Toolchains: + + + + Listing of previously auto-detected kit items finished. + + + + Found "%1" + + + + Searching for qmake executables... + + + + Error: %1. + 错误: %1 + {1.?} + + + No Qt installation found. + + + + Searching toolchains... + + + + Searching toolchains of type %1 + + + + %1 new toolchains found. + + + + Starting auto-detection. This will take a while... + + + + Registered kit %1 + + + + Main file of current project + + + + Main file of the project + + + + Name of current project + + + + Name of the project + + + + Name of current build + + + + Name of the project's active build configuration + + + + Name of the project's active build system + + + + Type of current build + + + + Type of the project's active build configuration + + + + SSH + + + + Kits + 构建套件(Kit) + + + Auto-detected + 自动检测 + + + Automatically managed by %1 or the installer. + + + + Manual + 手动设置 + + + Application + 应用程序 + + + Library + + + + Kit is not valid. + + + + Debug + + + + Release + + + + + ProjectExplorer::AbiWidget + + <custom> + <自定义> + + + + ProjectExplorer::AbstractProcessStep + + Starting: "%1" %2 + 正在启动 "%1" %2 + + + + The process "%1" exited normally. + 进程"%1"正常退出。 + + + The process "%1" exited with code %2. + 进程"%1"退出,退出代码 %2 。 + + + The process "%1" crashed. + 进程"%1"崩溃。 + + + Configuration is faulty. Check the Issues view for details. + 配置错误,请检查"问题"视图获得详细信息。 + + + Could not create directory "%1" + + + + Could not start process "%1" %2. + 无法启动进程"%1" %2. {1"?} + + + + ProjectExplorer::ArgumentsAspect + + Arguments + 参数 + + + Command line arguments: + + + + Toggle multi-line mode. + + + + Reset to Default + + + + + ProjectExplorer::BaseProjectWizardDialog + + untitled + File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. + untitled + + + + ProjectExplorer::BuildConfiguration + + Build + 构建 + + + System Environment + 系统环境变量 + + + Clean Environment + 清理时的环境变量 + + + Default + The name of the build configuration created by default for a autotools project. +---------- +The name of the build configuration created by default for a generic project. + 默认 + + + Debug + + + + Release + + + + Build Settings + 构建设置 + + + Build directory + + + + Name of current build + + + + Name of the build configuration + + + + Variables in the current build environment + + + + Variables in the build configuration's environment + + + + Tooltip in target selector: + + + + Appears as a tooltip when hovering the build configuration + + + + The project was not parsed successfully. + + + + Variables in the current build environment. + + + + Variables in the active build environment of the project containing the currently open document. + + + + Variables in the active build environment of the active project. + + + + + ProjectExplorer::BuildDeviceKitAspect + + Build device + + + + The device used to build applications on. + + + + No build device set. + + + + Unconfigured + 未配置 + + + Build host address + + + + Build SSH port + + + + Build user name + + + + Build private key file + + + + Build device name + + + + + ProjectExplorer::BuildDirectoryAspect + + Build directory: + 构建目录: + + + Shadow build: + Shadow build: + + + + ProjectExplorer::BuildManager + + Build + Displayed name for a normal build step + 构建 + + + Finished %1 of %n steps + + 完成了 %n 之中的 %1 个步骤 + + + + Compile + Category for compiler issues listed under 'Issues' + 编译 + + + Build System + Category for build system issues listed under 'Issues' + 构建系统 + + + Build/Deployment canceled + 构建/部署被取消 + + + Canceled build/deployment. + 取消了构建/部署。 + + + Running steps for project %1... + 为项目%1执行步骤 ... + + + Skipping disabled step %1. + 跳过被禁用的步骤 %1。 + + + Stop Applications + + + + Stop these applications before building? + + + + The project %1 is not configured, skipping it. + + + + The build device failed to prepare for the build of %1 (%2). + + + + Deployment + Category for deployment issues listed under 'Issues' + 部署 + + + Autotests + Category for autotest issues listed under 'Issues' + + + + Clean + Displayed name for a "cleaning" build step + + + + Deploy + Displayed name for a deploy step + 部署 + + + Error while building/deploying project %1 (kit: %2) + + + + The kit %1 has configuration issues which might be the root cause for this problem. + + + + When executing step "%1" + + + + + ProjectExplorer::BuildStepList + + Build + Display name of the build build step list. Used as part of the labels in the project window. + 构建 + + + Clean + Display name of the clean build step list. Used as part of the labels in the project window. + + + + Deploy + Display name of the deploy build step list. Used as part of the labels in the project window. + 部署 + + + + ProjectExplorer::BuildSystem + + The project is currently being parsed. + + + + The project could not be fully parsed. + + + + The project file "%1" does not exist. + + + + + ProjectExplorer::ClangToolChain + + Clang + Clang + + + + ProjectExplorer::ClangToolChainFactory + + Clang + Clang + + + + ProjectExplorer::CustomExecutableRunConfiguration + + Custom Executable + 自定义执行档 + + + Run %1 + 运行%1 + + + You need to set an executable in the custom run configuration. + + + + + ProjectExplorer::CustomParsersAspect + + Custom Output Parsers + + + + + ProjectExplorer::DeployConfiguration + + Deploy locally + Default DeployConfiguration display name + 在本地部署 + + + Deploy Configuration + Display name of the default deploy configuration + 部署设置 ProjectExplorer::DesktopDevice - - Run locally - 在本地运行 - Desktop 桌面 - - - ProjectExplorer::Internal::DesktopDeviceFactory - Desktop - 桌面 + Local PC + - ProjectExplorer::DeviceApplicationRunner + ProjectExplorer::DesktopProcessSignalOperation - User requested stop. Shutting down... - 用户请求停止。正在关闭... + Cannot kill process with pid %1: %2 + - Cannot run: No device. - 无法运行: 没有设备。 + Cannot interrupt process with pid %1: %2 + - Connecting to device... - 正在连接设备... + Cannot open process. + - SSH connection failed: %1 - SSH 连接失败: %1 + Invalid process id. + - Application did not finish in time, aborting. - 应用程序没有及时结束,退出。 + Cannot open process: %1 + - Remote application crashed: %1 - 远端进程崩溃:%1 + DebugBreakProcess failed: + - Remote application finished with exit code %1. - 远端进程完成,退出代码'%1'。 + %1 does not exist. If you built %2 yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/. + - Remote application finished with exit code 0. - 远端进程完成,退出代码为0。 + Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information. + + + + could not break the process. + + + + + ProjectExplorer::DeviceCheckBuildStep + + No device configured. + + + + Set Up Device + + + + There is no device set up for this kit. Do you want to add a device? + + + + Check for a configured device + + + + + ProjectExplorer::DeviceFileSystemModel + + File Type + 文件类型 + + + File Name + 文件名 + + + + ProjectExplorer::DeviceKitAspect + + Device + 设备 + + + The device to run the applications on. + 运行应用程序的设备。 + + + No device set. + + + + Device is incompatible with this kit. + + + + Unconfigured + 未配置 + + + Host address + + + + SSH port + + + + User name + + + + Private key file + + + + Device name + @@ -45993,6 +28965,21 @@ Do you want to add them to the project?</html> %1 (%2 类型的默认设备) + + ProjectExplorer::DeviceProcessList + + Process ID + 进程ID + + + Command Line + 命令行 + + + Fetching process list. This might take a while. + + + ProjectExplorer::DeviceProcessesDialog @@ -46019,30 +29006,24 @@ Do you want to add them to the project?</html> &Filter: 过滤器(&F): - - - ProjectExplorer::Internal::DeviceProcessesDialogPrivate - Remote Error - 远程错误 + &Attach to Process + &Attach到进程 - ProjectExplorer::DeviceProcessList + ProjectExplorer::DeviceTypeKitAspect - Process ID - 进程ID + Device type + 设备类型 - Command Line - 命令行 + The type of device to run applications on. + 运行应用程序的设备类型。 - - - ProjectExplorer::Internal::DeviceSettingsPage - Devices - 设备 + Unknown device type + 未知设备类型 @@ -46051,10 +29032,6 @@ Do you want to add them to the project?</html> Connection error: %1 连接错误:%1 - - Could not start remote process: %1 - 无法启动远程进程: %1 - Remote process crashed: %1 远端进程崩溃:%1 @@ -46064,10 +29041,219 @@ Do you want to add them to the project?</html> 远端进程失败, 退出代码'%1'. - -Remote error output was: %1 - -远程错误输出: %1 + Remote error output was: %1 + + + + + ProjectExplorer::EditorConfiguration + + Project + Settings + 项目 + + + Project %1 + Settings, %1 is a language (C++ or QML) + 项目%1 + + + + ProjectExplorer::EnvironmentAspect + + Environment + 环境 + + + + ProjectExplorer::EnvironmentAspectWidget + + Base environment for this run configuration: + 运行设置的基础环境: + + + + ProjectExplorer::EnvironmentKitAspect + + Change... + + + + No changes to apply. + + + + Force UTF-8 MSVC compiler output + + + + Either switches MSVC to English or keeps the language and just forces UTF-8 output (may vary depending on the used MSVC compiler). + + + + Environment + 环境 + + + Additional build environment settings when using this kit. + + + + The environment setting value is invalid. + + + + + ProjectExplorer::EnvironmentWidget + + &Add + 添加(&A) + + + &Reset + 重置(&R) + + + &Unset + 取消设置(&U) + + + &Batch Edit... + 批量编辑(&B)... + + + Unset <a href="%1"><b>%1</b></a> + 撤回设置 <a href="%1"><b>%1</b></a> + + + Set <a href="%1"><b>%1</b></a> to <b>%2</b> + 设置 <a href="%1"><b>%1</b></a> 到 <b>%2</b> + + + Use <b>%1</b> + %1 is "System Environment" or some such. + 使用 <b>%1</b> + + + Use <b>%1</b> and + Yup, word puzzle. The Set/Unset phrases above are appended to this. %1 is "System Environment" or some such. + 使用 <b>%1</b> 和 + + + Variable already exists. + + + + Ed&it + + + + Disable + 禁用 + + + Append Path... + + + + Prepend Path... + + + + Open &Terminal + + + + Open a terminal with this environment set up. + + + + Append <b>%2</b> to <a href="%1"><b>%1</b></a> + + + + Prepend <b>%2</b> to <a href="%1"><b>%1</b></a> + + + + Set <a href="%1"><b>%1</b></a> to <b>%2</b> [disabled] + + + + <b>No environment changes</b> + + + + Choose Directory + 选择目录 + + + Enable + + + + + ProjectExplorer::ExecutableAspect + + Executable + + + + <unknown> + <未知> + + + Executable: + 执行档: + + + Alternate executable on device: + 设备上的备用执行档: + + + Use this command instead + 用这个命令代替 + + + + ProjectExplorer::FileTransfer + + sftp + + + + rsync + + + + generic file copy + + + + + ProjectExplorer::FileTransferPrivate + + No device set for test transfer. + + + + No files to transfer. + + + + Missing transfer implementation. + + + + + ProjectExplorer::GccToolChain + + GCC + GCC + + + %1 (%2, %3 %4 at %5) + @@ -46078,196 +29264,981 @@ Remote error output was: %1 - ProjectExplorer::Internal::LocalProcessList + ProjectExplorer::Internal::AddRunConfigDialog - Cannot terminate process %1: %2 - 无法终止进程 %1: %2 + [none] + - Cannot open process %1: %2 - 无法打开进程 %1:%2 + Name + + + + Source + + + + Create Run Configuration + + + + Filter candidates by name + + + + Create + - ProjectExplorer::SshDeviceProcessList + ProjectExplorer::Internal::AllProjectsFilter - Connection failure: %1 - 连接失败: %1 + Files in Any Project + 任意项目中的文件 - Error: Process listing command failed to start: %1 - 错误: 进程列清单命令启动失败: %1 - - - Error: Process listing command crashed: %1 - 错误: 进程列清单命令崩溃: %1 - - - Process listing command failed with exit code %1. - 进程列清单命令失败,退出码 %1。 - - - Error: Kill process failed to start: %1 - 错误: kill进程启动失败: %1 - - - Error: Kill process crashed: %1 - 错误: kill进程崩溃了: %1 - - - Kill process failed with exit code %1. - kill进程失败,退出码 %1。 - - - -Remote stderr was: %1 - -远程的stderr 是: %1 + Matches all files of all open projects. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + - ProjectExplorer::EnvironmentItemsDialog + ProjectExplorer::Internal::AllProjectsFind - Edit Environment - 编辑时的环境变量 + All Projects + 所有项目 + + + All Projects: + 所有项目: + + + Filter: %1 +Excluding: %2 +%3 + - ProjectExplorer::Kit + ProjectExplorer::Internal::AppOutputPane - Unnamed - 未命名 + Attach debugger to this process + attach调试器到此进程 - Clone of %1 - %1 的克隆 + Attach debugger to %1 + 挂接调试器到%1 - Error: - 错误: + Stop + 停止 - Warning: - 警告: + Close Tab + 关闭标签 + + + Close All Tabs + 关闭所有标签 + + + Close Other Tabs + 关闭其他标签 + + + Application Output + 应用程序输出 + + + Application Output Window + 应用程序输出窗口 + + + Show &App Output + + + + Show the output that generated this issue in Application Output. + + + + A + + + + Re-run this run-configuration. + + + + Stop running program. + + + + Open Settings Page + - ProjectExplorer::SysRootKitInformation + ProjectExplorer::Internal::AppOutputSettingsPage - Sys Root "%1" is not a directory. - sysroot "%1"不是一个目录。 + Word-wrap output + - Sys Root - Sys Root + Clear old output on a new run + + + + Merge stderr and stdout + 整合stderr stdout + + + Always + 总是 + + + Never + 从不 + + + On First Output Only + + + + Limit output to %1 characters + + + + Open Application Output when running: + + + + Open Application Output when debugging: + + + + Application Output + 应用程序输出 - ProjectExplorer::ToolChainKitInformation + ProjectExplorer::Internal::BuildEnvironmentWidget - Compiler - 编译器 + Build Environment + - None - - - - No compiler set in kit. - 构建套件中未设置编译器。 + Clear system environment + 清除系统环境变量 - ProjectExplorer::DeviceTypeKitInformation + ProjectExplorer::Internal::BuildPropertiesSettings - Unknown device type - 未知设备类型 + Enable + - Device type - 设备类型 + Disable + 禁用 + + + Use Project Default + + + + Default build directory: + + + + Separate debug info: + + + + QML debugging: + + + + Use qmlcachegen: + + + + Default Build Properties + - ProjectExplorer::DeviceKitInformation + ProjectExplorer::Internal::BuildSettingsWidget - Device does not match device type. - 设备与设备的类型不匹配。 + No build settings available + 没有可用的构建设置 - No Device set. - 没有设置设备。 + Edit build configuration: + 编辑构建配置: - Device - 设备 + Add + 添加 - Unconfigured - 未配置 + Remove + 删除 + + + Rename... + 重命名... + + + New name for build configuration <b>%1</b>: + 构建配置的新名称 <b>%1</b>: + + + Clone Configuration + Title of a the cloned BuildConfiguration window, text of the window + 克隆配置 + + + New configuration name: + 新配置名称: + + + Cancel Build && Remove Build Configuration + 取消构建 && 移除构建配置 + + + Do Not Remove + 不要移除 + + + Remove Build Configuration %1? + 删除构建配置%1? + + + The build configuration <b>%1</b> is currently being built. + 构建配置<b>%1</b> 正在被构建。 + + + Do you want to cancel the build process and remove the Build Configuration anyway? + 您想要取消构建并移除构建配置吗? + + + Remove Build Configuration? + 删除构建配置? + + + Do you really want to delete build configuration <b>%1</b>? + 确定要删除构建配置<b>%1</b>吗? + + + Clone... + + + + New Configuration + - ProjectExplorer::Internal::SysRootInformationConfigWidget + ProjectExplorer::Internal::BuildStepListWidget - The root directory of the system image to use.<br>Leave empty when building for the desktop. - 系统image使用的根目录。<br>为桌面构建时此项不填。 + %1 Steps + %1 is the name returned by BuildStepList::displayName + %1 is a name instead of a number + %1的步骤 - Sysroot: - Sysroot: + No %1 Steps + 没有%1步骤 + + + Add %1 Step + 添加%1步骤 + + + Move Up + 上移 + + + Disable + 禁用 + + + Move Down + 下移 + + + Remove Item + 移除项 + + + Removing Step failed + 删除步骤失败 + + + Cannot remove build step while building + 无法在构建时移除构建步骤 + + + No Build Steps + 没有构建步骤 + + + Enable + - ProjectExplorer::Internal::ToolChainInformationConfigWidget + ProjectExplorer::Internal::ClangClToolChain - The compiler to use for building.<br>Make sure the compiler will produce binaries compatible with the target device, Qt version and other libraries used. - 构建使用的编译器。<br>请确保使用的编译器生成的二进制与目标设备、Qt版本和其他库兼容。 - - - Manage... - 管理... - - - Compiler: - 编译器: - - - <No compiler available> - <没有可用的编译器> + clang-cl + - ProjectExplorer::Internal::DeviceTypeInformationConfigWidget + ProjectExplorer::Internal::ClangClToolChainConfigWidget - The type of device to run applications on. - 运行应用程序的设备类型。 + Initialization: + 初始化: - Device type: - 设备类型: + &Compiler path: + 编译器路径(&C): - ProjectExplorer::Internal::DeviceInformationConfigWidget + ProjectExplorer::Internal::ClangToolChainConfigWidget - The device to run the applications on. - 运行应用程序的设备。 - - - Manage... - 管理... - - - Device: - 设备: + Parent toolchain: + - ProjectExplorer::KitManager + ProjectExplorer::Internal::CodeStyleSettingsWidget - Desktop - 桌面 + Language: + 语言: + + + + ProjectExplorer::Internal::CompileOutputSettingsPage + + Word-wrap output + + + + Open Compile Output when building + + + + Limit output to %1 characters + + + + Compile Output + 编译输出 + + + + ProjectExplorer::Internal::CompileOutputWindow + + Compile Output + 编译输出 + + + Open Settings Page + + + + Show Compile &Output + + + + Show the output that generated this issue in Compile Output. + + + + O + + + + + ProjectExplorer::Internal::CopyTaskHandler + + error: + Task is of type: error + + + + warning: + Task is of type: warning + + + + + ProjectExplorer::Internal::CurrentProjectFilter + + Files in Current Project + 当前项目中的文件 + + + Matches all files from the current document's project. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + + + + + ProjectExplorer::Internal::CurrentProjectFind + + Current Project + 当前项目 + + + Project "%1" + + + + Project "%1": + + + + + ProjectExplorer::Internal::CustomParserConfigDialog + + Custom Parser + + + + &Error message capture pattern: + + + + &File name: + 文件名(&F): + + + &Line number: + 行号(&L): + + + &Message: + 消息(&M): + + + Standard output + + + + Standard error + + + + E&rror message: + + + + Warning message: + + + + Warning message capture pattern: + + + + Capture Positions + + + + Capture Output Channels + + + + Test + 测试 + + + File name: + 文件名: + + + Line number: + 行号: + + + Message: + 消息: + + + Error + 错误 + + + Warning + 警告 + + + Not applicable: + + + + Pattern is empty. + + + + No message given. + + + + Pattern does not match the message. + + + + + ProjectExplorer::Internal::CustomParsersBuildWidget + + Custom Output Parsers + + + + Parse standard output during build + + + + Makes output parsers look for diagnostics on stdout rather than stderr. + + + + + ProjectExplorer::Internal::CustomParsersSelectionWidget + + There are no custom parsers active + + + + There are %n custom parsers active + + + + + + + ProjectExplorer::Internal::CustomParsersSettingsPage + + Custom output parsers defined here can be enabled individually in the project's build or run settings. + + + + Add... + 添加... + + + Remove + 删除 + + + New Parser + + + + Custom Output Parsers + + + + + ProjectExplorer::Internal::CustomToolChainConfigWidget + + MACRO[=VALUE] + + + + Each line defines a macro. Format is MACRO[=VALUE]. + + + + Each line adds a global header lookup path. + + + + Comma-separated list of flags that turn on C++11 support. + + + + Comma-separated list of mkspecs. + + + + &Compiler path: + 编译器路径(&C): + + + &Make path: + + + + &ABI: + &ABI: + + + &Predefined macros: + + + + &Header paths: + + + + C++11 &flags: + + + + &Qt mkspecs: + + + + &Error parser: + + + + + ProjectExplorer::Internal::CustomWizardPage + + Path: + 路径: + + + + ProjectExplorer::Internal::DependenciesModel + + <No other projects in this session> + <会话中没有其他项目> + + + + ProjectExplorer::Internal::DependenciesWidget + + Synchronize configuration + + + + Synchronize active kit, build, and deploy configuration between projects. + + + + + ProjectExplorer::Internal::DeploymentDataView + + Source File Path + + + + Target Directory + + + + Add + 添加 + + + Remove + 删除 + + + Files to deploy: + 部署文件: + + + Override deployment data from build system + + + + + ProjectExplorer::Internal::DesktopRunConfiguration + + Qt Run Configuration + + + + + ProjectExplorer::Internal::DeviceFactorySelectionDialog + + Available device types: + 可用的设备类型: + + + Start Wizard + 开启向导 + + + + ProjectExplorer::Internal::DeviceProcessesDialogPrivate + + Remote Error + 远程错误 + + + + ProjectExplorer::Internal::DeviceSettingsWidget + + &Device: + 设备(&D): + + + General + 概要 + + + &Name: + 名称(&N): + + + Type: + 类型: + + + Auto-detected: + 自动检测: + + + Current state: + 当前状态: + + + Type Specific + 类型特定 + + + &Add... + 添加(&A)... + + + &Remove + 删除(&R) + + + Set As Default + 设置为默认 + + + Yes (id is "%1") + 是的 (id为 "%1") + + + No + + + + Devices + 设备 + + + Test + 测试 + + + Show Running Processes... + + + + + ProjectExplorer::Internal::DeviceTestDialog + + Close + 关闭 + + + Device test finished successfully. + 设备测试成功完成。 + + + Device test failed. + 设备测试失败。 + + + + ProjectExplorer::Internal::EditorSettingsWidget + + Restore Global + 还原全局设置 + + + Display Settings + + + + Display right &margin at column: + 显示右边分界(&M)在列: + + + Use context-specific margin + + + + If available, use a different margin. For example, the ColumnLimit from the ClangFormat plugin. + + + + + ProjectExplorer::Internal::FilesInAllProjectsFind + + Files in All Project Directories + + + + Files in All Project Directories: + + + + + ProjectExplorer::Internal::FilesSelectionWizardPage + + Files + 文件 + + + + ProjectExplorer::Internal::FilterKitAspectsDialog + + Setting + + + + Visible + 可见 + + + + ProjectExplorer::Internal::FlatModel + + No kits are enabled for this project. Enable kits in the "Projects" mode. + + + + Rename More Files? + + + + Would you like to rename these files as well? + %1 + + + + Choose Drop Action + + + + You just dragged some files from one project node to another. +What should %1 do now? + + + + Copy Only File References + + + + Move Only File References + + + + Copy file references and files + + + + Move file references and files + + + + Target directory: + + + + Copy File References + + + + Move File References + + + + Not all operations finished successfully. + + + + The following files could not be copied or moved: + + + + The following files could not be removed from the project file: + + + + The following files could not be added to the project file: + + + + The following files could not be deleted: + + + + A version control operation failed for the following files. Please check your repository. + + + + Failure Updating Project + + + + + ProjectExplorer::Internal::GccToolChainConfigWidget + + &Compiler path: + 编译器路径(&C): + + + &ABI: + &ABI: + + + Platform codegen flags: + + + + Platform linker flags: + + + + Target triple: + + + + + ProjectExplorer::Internal::ImportWidget + + Import Build From... + + + + Import + 导入 + + + + ProjectExplorer::Internal::JsonWizard + + Key is not an object. + + + + Pattern "%1" is no valid regular expression. + + + + ScannerGenerator: Binary pattern "%1" not valid. + + + + + ProjectExplorer::Internal::JsonWizardFileGenerator + + No 'key' in options object. + @@ -46288,17 +30259,37 @@ Remote stderr was: %1 Images (*.png *.xpm *.jpg) 图片(*.png *.xpm *.jpg) + + <html><head/><body><p>The name of the kit suitable for generating directory names. This value is used for the variable <i>%1</i>, which for example determines the name of the shadow build directory.</p></body></html> + + + + File system name: + + + + Kit icon. + + + + Select Icon... + + + + Reset to Device Default Icon + + + + Display name is not unique. + + + + Default for %1 + + ProjectExplorer::Internal::KitModel - - Auto-detected - 自动检测 - - - Manual - 手动设置 - %1 (default) Mark up a kit as the default one. @@ -46308,16 +30299,802 @@ Remote stderr was: %1 Name 名称 + + + ProjectExplorer::Internal::MiniProjectTargetSelector - Clone of %1 - %1 的克隆 + Project + 项目 + + + Kit + 构建套件(Kit) + + + Build + 构建 + + + Deploy + 部署 + + + Run + 运行 + + + Unconfigured + 未配置 + + + <b>Project:</b> %1 + <b>项目:</b> %1 + + + <b>Build:</b> %1 + <b>构建:</b> %1 + + + <b>Deploy:</b> %1 + <b>部署:</b> %1 + + + <b>Run:</b> %1 + <b>运行:</b> %1 + + + %1 + %1 + + + Project: <b>%1</b><br/> + 项目: <b>%1</b><br/> + + + Kit: <b>%1</b><br/> + 构建套件: <b>%1</b><br/> + + + Build: <b>%1</b><br/> + 构建: <b>%1</b><br/> + + + Deploy: <b>%1</b><br/> + 部署: <b>%1</b><br/> + + + Run: <b>%1</b><br/> + 运行: <b>%1</b><br/> + + + <b>Path:</b> %1 + + + + <b>Kit:</b> %1 + + + + <style type=text/css>a:link {color: rgb(128, 128, 255);}</style>The project <b>%1</b> is not yet configured<br/><br/>You can configure it in the <a href="projectmode">Projects mode</a><br/> + <style type=text/css>a:link {color: rgb(128, 128, 255, 240);}</style>项目 <b>%1</b> 尚未配置<br/><br/>您可以在 <a href="projectmode">项目模式</a>中配置它<br/> {128, 128, 255)?} {1<?} - ProjectExplorer::KitOptionsPage + ProjectExplorer::Internal::MsvcBasedToolChainConfigWidget - Kits - 构建套件(Kit) + Initialization: + 初始化: + + + + ProjectExplorer::Internal::MsvcToolChain + + MSVC + MSVC + + + Failed to retrieve MSVC Environment from "%1": +%2 + + + + + ProjectExplorer::Internal::MsvcToolChainConfigWidget + + Initialization: + 初始化: + + + <empty> + <空> + + + Additional arguments for the vcvarsall.bat call + + + + &ABI: + &ABI: + + + + ProjectExplorer::Internal::ParseIssuesDialog + + Parse Build Output + + + + Output went to stderr + + + + Clear existing tasks + + + + Load from File... + + + + Choose File + 选择文件 + + + Could Not Open File + + + + Could not open file: "%1": %2 + + + + Build Output + + + + Parsing Options + + + + Use parsers from kit: + + + + Cannot Parse + + + + Cannot parse: The chosen kit does not provide an output parser. + + + + + ProjectExplorer::Internal::ProjectFileWizardExtension + + Open project anyway? + + + + Version Control Failure + + + + Failed to add subproject "%1" +to project "%2". + + + + Failed to add one or more files to project +"%1" (%2). + + + + + ProjectExplorer::Internal::ProjectTreeWidget + + Simplify Tree + 简化树形视图 + + + Hide Generated Files + 隐藏生成的文件 + + + Synchronize with Editor + 与编辑器同步 + + + Hide Disabled Files + + + + Focus Document in Project Tree + + + + Meta+Shift+L + + + + Alt+Shift+L + + + + Hide Empty Directories + + + + Hide Source and Header Groups + + + + Filter Tree + 过滤器树形视图 + + + + ProjectExplorer::Internal::ProjectTreeWidgetFactory + + Projects + 项目 + + + Meta+X + Meta+X + + + Alt+X + Alt+X + + + + ProjectExplorer::Internal::ProjectWelcomePage + + Open Session #%1 + + + + Ctrl+Meta+%1 + + + + Ctrl+Alt+%1 + + + + Open Recent Project #%1 + + + + Ctrl+Shift+%1 + + + + Open %1 "%2" + + + + Open %1 "%2" (%3) + + + + session + Appears in "Open session <name>" + + + + %1 (last session) + %1 (最后的会话) + + + %1 (current session) + %1 (当前会话) + + + Clone + 克隆 + + + Rename + 重命名 + + + Delete + 删除 + + + project + Appears in "Open project <name>" + + + + Remove Project from Recent Projects + + + + Clear Recent Project List + + + + Manage... + 管理... + + + Sessions + 会话 + + + Projects + 项目 + + + + ProjectExplorer::Internal::ProjectWindow + + Use Regular Expressions + 使用正则表达式 + + + Case Sensitive + 区分大小写 + + + Show Non-matching Lines + + + + Project Settings + + + + Build & Run + 构建和运行 + + + Projects + 项目 + + + Import Existing Build... + + + + Manage Kits... + 管理构建套件... + + + Project Selector + + + + Active Project + + + + Build System Output + + + + Import Directory + + + + + ProjectExplorer::Internal::ProjectWizardPage + + Summary + 汇总 + + + Add as a subproject to project: + 作为子项目添加到项目中: + + + Add to &project: + 添加到项目(&P): + + + Files to be added: + 要添加的文件: + + + Files to be added in + 要添加的文件 + + + Add to &version control: + 添加到版本控制系统(&V): + + + <None> + <无> + + + A version control system repository could not be created in "%1". + + + + Failed to add "%1" to the version control system. + + + + + ProjectExplorer::Internal::RemoveTaskHandler + + Remove + Name of the action triggering the removetaskhandler + 删除 + + + Remove task from the task list. + + + + + ProjectExplorer::Internal::RunSettingsWidget + + Add + 添加 + + + Remove + 删除 + + + Run configuration: + 运行配置: + + + Run Settings + 运行设置 + + + Deployment + 部署 + + + Method: + 方法: + + + Run + 运行 + + + Remove Run Configuration? + 删除运行配置? + + + Do you really want to delete the run configuration <b>%1</b>? + 确定要删除此运行配置<b>%1</b>吗? + + + Rename... + 重命名... + + + New name for run configuration <b>%1</b>: + 运行配置的新名称 <b>%1</b>: + + + Cancel Build && Remove Deploy Configuration + 取消构建 && 移除部署设置 + + + Do Not Remove + 不要移除 + + + Remove Deploy Configuration %1? + 删除部署(deploy)配置%1? + + + The deploy configuration <b>%1</b> is currently being built. + 部署设置<b>%1</b> 正在被构建。 + + + Do you want to cancel the build process and remove the Deploy Configuration anyway? + 您想要取消构建并移除部署设置吗? + + + Remove Deploy Configuration? + 删除部署(deploy)配置? + + + Do you really want to delete deploy configuration <b>%1</b>? + 确定要删除此部署配置<b>%1</b>吗? + + + New name for deploy configuration <b>%1</b>: + 部署配置的新名称 <b>%1</b>: + + + Add... + 添加... + + + Clone... + + + + Clone Configuration + Title of a the cloned RunConfiguration window, text of the window + 克隆配置 + + + New configuration name: + 新配置名称: + + + + ProjectExplorer::Internal::SelectionWidget + + Custom output parsers scan command line output for user-provided error patterns<br>to create entries in Issues.<br>The parsers can be configured <a href="dummy">here</a>. + + + + + ProjectExplorer::Internal::SessionDialog + + Session Manager + 会话管理器 + + + &New + 新建(&N) + + + &Rename + 重命名(&R) + + + C&lone + 克隆(&L) + + + &Delete + 删除(&D) + + + &Open + 打开(&S) + + + <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a> + <a href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">什么是会话?</a> + + + Restore last session on startup + 启动时恢复上次会话 + + + + ProjectExplorer::Internal::SessionModel + + Session + 会话 + + + Last Modified + + + + New Session Name + + + + &Create + 创建(&C) + + + Create and &Open + + + + &Clone + + + + Clone and &Open + + + + Rename Session + + + + &Rename + 重命名(&R) + + + Rename and &Open + + + + + ProjectExplorer::Internal::SessionNameInputDialog + + Enter the name of the session: + 输入会话的名称: + + + + ProjectExplorer::Internal::ShowInEditorTaskHandler + + Show task location in an editor. + 在编辑器中显示任务位置。 + + + Show in Editor + + + + + ProjectExplorer::Internal::SimpleProjectWizard + + Import as qmake or CMake Project (Limited Functionality) + + + + Imports existing projects that do not use qmake, CMake, Qbs, Meson, or Autotools.<p>This creates a project file that allows you to use %1 as a code editor and as a launcher for debugging and analyzing tools. If you want to build the project, you might need to edit the generated project file. + + + + Unknown build system "%1" + + + + + ProjectExplorer::Internal::SimpleProjectWizardDialog + + Import Existing Project + 导入现有项目 + + + Project Name and Location + + + + Project name: + 项目名称: + + + Location: + + + + File Selection + 文件选择 + + + + ProjectExplorer::Internal::SimpleTargetRunnerPrivate + + Cannot retrieve debugging output. + 无法获取调试输出. + + + User requested stop. Shutting down... + 用户请求停止。正在关闭... + + + Cannot run: No command given. + + + + %1 exited with code %2 + %1 退出,退出代码: %2 + {1 ?} {2?} + + + %1 crashed. + %1 崩溃。 + + + The process was ended forcefully. + + + + + ProjectExplorer::Internal::SshSettingsWidget + + SSH + + + + Enable connection sharing: + + + + Connection sharing timeout: + + + + Path to ssh executable: + + + + Path to sftp executable: + + + + Path to ssh-askpass executable: + + + + Path to ssh-keygen executable: + + + + minutes + + + + + ProjectExplorer::Internal::TargetSetupWidget + + <b>Error:</b> + Severity is Task::Error + <b>错误:</b> + + + <b>Warning:</b> + Severity is Task::Warning + <b>警告:</b> + + + + ProjectExplorer::Internal::TargetTripleWidget + + Override for code model + + + + Enable in the rare case that the code model +fails because Clang does not understand the target architecture. + + + + + ProjectExplorer::Internal::TaskDelegate + + File not found: %1 + 未找到文件: %1 + + + + ProjectExplorer::Internal::TaskWindow + + Issues + 问题 + + + Filter by categories + 根据分类过滤 + + + Show Warnings + 显示警告 + + + + ProjectExplorer::Internal::TextEditDetailsWidget + + %n entries + + + + + + Empty + + + + + ProjectExplorer::Internal::ToolChainOptionsPage + + Compilers + 编译器 Add @@ -46332,69 +31109,8491 @@ Remote stderr was: %1 删除 - Make Default - 设置为默认 + <nobr><b>ABI:</b> %1 + <nobr><b>ABI:</b> %1 + + + not up-to-date + 不是最新 + + + This toolchain is invalid. + + + + Toolchain Auto-detection Settings + + + + Detect x86_64 GCC compilers as x86_64 and x86 + + + + If checked, %1 will set up two instances of each x86_64 compiler: +One for the native x86_64 target, and one for a plain x86 target. +Enable this if you plan to create 32-bit x86 binaries without using a dedicated cross compiler. + + + + Name + + + + Type + 类型 + + + Remove All + 全部删除 + + + Re-detect + + + + Auto-detection Settings... + + + + Duplicate Compilers Detected + 检测到重复的编译器 + + + The following compiler was already configured:<br>&nbsp;%1<br>It was not configured again. + 以下编译器已被设置:<br>&nbsp;%1<br>。没有再次设置。 + + + The following compilers were already configured:<br>&nbsp;%1<br>They were not configured again. + 以下工具链已被设置:<br>&nbsp;%1<br>。没有再次设置。 - ProjectExplorer::Internal::ProjectListWidget + ProjectExplorer::Internal::VcsAnnotateTaskHandler - %1 (%2) - %1 (%2) + &Annotate + 注释(&A) + + + Annotate using version control system. + - ProjectExplorer::Internal::SessionModel + ProjectExplorer::Internal::WaitForStopDialog - New session name - 新会话名称 + Waiting for Applications to Stop + + + + Cancel + 取消 + + + Waiting for applications to stop. + - ProjectExplorer::DebuggerRunConfigurationAspect + ProjectExplorer::InterpreterAspect - Debugger settings - 调试器的设置 + Manage... + 管理... + + + Interpreter + + + + + ProjectExplorer::JsonFieldPage + + Line Edit Validator Expander + + + + The text edit input to fix up. + + + + Field is not an object. + + + + Field has no name. + + + + Field "%1" has no type. + + + + Field "%1" has unsupported type "%2". + + + + When parsing Field "%1": %2 + + + + Label ("%1") data is not an object. + + + + Label ("%1") has no trText. + + + + Spacer ("%1") data is not an object. + + + + Spacer ("%1") property "factor" is no integer value. + + + + LineEdit ("%1") data is not an object. + + + + LineEdit ("%1") has an invalid regular expression "%2" in "validator". + + + + LineEdit ("%1") has an invalid value "%2" in "completion". + + + + TextEdit ("%1") data is not an object. + + + + PathChooser data is not an object. + + + + kind "%1" is not one of the supported "existingDirectory", "directory", "file", "saveFile", "existingCommand", "command", "any". + + + + CheckBox ("%1") data is not an object. + + + + CheckBox ("%1") values for checked and unchecked state are identical. + + + + No JSON lists allowed inside List items. + + + + No "key" found in List items. + + + + %1 ("%2") data is not an object. + + + + %1 ("%2") "index" is not an integer value. + + + + %1 ("%2") "disabledIndex" is not an integer value. + + + + %1 ("%2") "items" missing. + + + + %1 ("%2") "items" is not a JSON list. + + + + Files data list entry is not an object. + + + + Source and target are both empty. + + + + + ProjectExplorer::JsonKitsPage + + At least one required feature is not present. + + + + Platform is not supported. + + + + At least one preferred feature is not present. + + + + Feature list is set and not of type list. + + + + No "%1" key found in feature list object. + + + + Feature list element is not a string or object. + + + + + ProjectExplorer::JsonProjectPage + + untitled + File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. + + + + + ProjectExplorer::JsonSummaryPage + + Failed to Commit to Version Control + + + + Error message from Version Control System: "%1". + + + + Failed to Add to Project + + + + Failed to add subproject "%1" +to project "%2". + + + + Failed to add one or more files to project +"%1" (%2). + + + + + ProjectExplorer::JsonWizard + + "data" for a "Form" page needs to be unset or an empty object. + + + + Project File + + + + Choose Project File + + + + The project contains more than one project file. Select the one you would like to use. + + + + Check whether a variable exists.<br>Returns "true" if it does and an empty string if not. + + + + Could not determine target path. "TargetPath" was not set on any page. + + + + File Generation Failed + + + + The wizard failed to generate files.<br>The error message was: "%1". + + + + Failed to Overwrite Files + + + + Failed to Format Files + + + + Failed to Write Files + + + + Failed to Post-Process Files + + + + Failed to Polish Files + + + + Failed to Open Files + + + + "%1" does not exist in the file system. + + + + Failed to open "%1" as a project. + + + + Failed to open an editor for "%1". + + + + No file to open found in "%1". + + + + Failed to open project. + + + + Failed to open project in "%1". + + + + Cannot Open Project + 无法打开项目 + + + When processing "%1":<br>%2 + + + + When parsing fields of page "%1": %2 + + + + "data" for a "File" page needs to be unset or an empty object. + + + + Error parsing "%1" in "Kits" page: %2 + + + + "data" must be a JSON object for "Kits" pages. + + + + "Kits" page requires a "%1" set. + + + + "data" must be empty or a JSON object for "Project" pages. + + + + Invalid regular expression "%1" in "%2". %3 + + + + "data" for a "Summary" page can be unset or needs to be an object. + + + + "data" must be a JSON object for "VcsConfiguration" pages. + Do not translate "VcsConfiguration", because it is the id of a page. + + + + "VcsConfiguration" page requires a "vcsId" set. + Do not translate "VcsConfiguration", because it is the id of a page. + + + + + ProjectExplorer::JsonWizardFactory + + Generator is not a object. + + + + Generator has no typeId set. + + + + TypeId "%1" of generator is unknown. Supported typeIds are: "%2". + + + + Path "%1" does not exist when checking Json wizard search paths. + + + + + Checking "%1" for %2. + + + + + * Failed to parse "%1":%2:%3: %4 + + + + + * Did not find a JSON object in "%1". + + + + + * Configuration found and parsed. + + + + + JsonWizard: "%1" not found + + + + + Page is not an object. + + + + Page has no typeId set. + + + + TypeId "%1" of page is unknown. Supported typeIds are: "%2". + + + + Page with typeId "%1" has invalid "index". + + + + * Version %1 not supported. + + + + + key not found. + + + + Expected an object or a list. + + + + The platform selected for the wizard. + + + + The features available to this wizard. + + + + The plugins loaded. + + + + "kind" value "%1" is not "class" (deprecated), "file" or "project". + + + + "kind" is "file" or "class" (deprecated) and "%1" is also set. + + + + No id set. + + + + No category is set. + + + + Icon file "%1" not found. + + + + Image file "%1" not found. + + + + No displayName set. + + + + No displayCategory set. + + + + No description set. + + + + When parsing "generators": %1 + + + + When parsing "pages": %1 + + + + + ProjectExplorer::JsonWizardGenerator + + %1 [folder] + + + + %1 [symbolic link] + + + + %1 [read only] + + + + The directory %1 contains files which cannot be overwritten: +%2. + + + + + ProjectExplorer::Kit + + Unnamed + 未命名 + + + Clone of %1 + %1 的克隆 + + + Error: + 错误: + + + Warning: + 警告: + + + Kit + 构建套件(Kit) + + + Kit ID + + + + Kit filesystem-friendly name + + + + The name of the currently active kit. + + + + The name of the kit. + + + + The name of the currently active kit in a filesystem-friendly version. + + + + The name of the kit in a filesystem-friendly version. + + + + The ID of the currently active kit. + + + + The ID of the kit. + + + + + ProjectExplorer::KitAspectWidget + + Mark as Mutable + + + + Manage... + 管理... + + + + ProjectExplorer::KitChooser + + Kit of Active Project: %1 + + + + + ProjectExplorer::KitManager + + Desktop + 桌面 + + + Desktop (%1) + + + + + ProjectExplorer::LinuxIccToolChain + + ICC + + + + + ProjectExplorer::LocalEnvironmentAspect + + Clean Environment + + + + System Environment + 系统环境变量 + + + Build Environment + + + + + ProjectExplorer::MakeStep + + Make arguments: + Make 参数: + + + Parallel jobs: + + + + Override MAKEFLAGS + + + + <code>MAKEFLAGS</code> specifies parallel jobs. Check "%1" to override. + + + + Disable in subdirectories: + + + + Runs this step only for a top-level build. + + + + Targets: + 目标: + + + Make: + Make: + + + Override %1: + 覆盖 %1: + + + Make + Make + + + Make command missing. Specify Make command in step configuration. + + + + <b>Make:</b> %1 + <b>Make:</b> %1 + + + <b>Make:</b> No build configuration. + + + + <b>Make:</b> %1 not found in the environment. + <b>Make:</b> 在环境中找不到%1 。 + + + + ProjectExplorer::MingwToolChain + + MinGW + MinGW + + + + ProjectExplorer::OsParser + + The process cannot access the file because it is being used by another process. +Please close all running instances of your application before starting a build. + + + + + ProjectExplorer::PortsGatherer + + Found %n free ports. + + + + + + Checking available ports... + + + + + ProjectExplorer::ProcessStep + + Command: + 命令: + + + Arguments: + 参数: + + + Working directory: + 工作目录: + + + Custom Process Step + Default ProcessStep display name + + + + + ProjectExplorer::Project + + Project + 项目 + + + Project Name + + + + Kit is not valid. + + + + Incompatible Kit + + + + Kit %1 is incompatible with kit %2. + + + + Build configurations: + + + + Deploy configurations: + + + + Run configurations: + + + + Partially Incompatible Kit + + + + Some configurations could not be copied. + + + + Select the Root Directory + + + + Replacement for + + + + Replacement for "%1" + + + + Project "%1" was configured for kit "%2" with id %3, which does not exist anymore. The new kit "%4" was created in its place, in an attempt not to lose custom project settings. + + + + Could not find any qml_*.qm file at "%1" + + + + + ProjectExplorer::ProjectExplorerPlugin + + &Build + 构建(&B) + + + &Debug + 调试(&D) + + + &Start Debugging + 开始调试 + + + Open With + 用...打开 + + + New Project... + 新建项目... + + + Load Project... + 载入项目... + + + Ctrl+Shift+O + Ctrl+Shift+O + + + Open File + 打开文件 + + + Recent P&rojects + 最近使用的项目(&R) + + + Close Project + 关闭项目 + + + Close Project "%1" + 关闭项目 "%1" + + + Ctrl+Shift+B + Ctrl+Shift+B + + + Build Project + 构建项目 + + + Build Project "%1" + 构建项目 "%1" + + + Ctrl+B + Ctrl+B + + + Rebuild Project + 重新构建项目 + + + Deploy Project + 部署项目 + + + Clean Project + 清理项目 + + + Build Without Dependencies + 忽略依赖关系来构建 + + + Rebuild Without Dependencies + 忽略依赖关系重新构建 + + + Deploy Without Dependencies + 忽略依赖关系部署 + + + Clean Without Dependencies + 忽略依赖关系来清除 + + + Run + 运行 + + + Close All Projects and Editors + 关闭所有项目和编辑器 + + + Ctrl+R + Ctrl+R + + + Run Without Deployment + 忽略部署直接运行 + + + Build + 构建 + + + Rebuild + 重新构建 + + + Clean + 清除 + + + Deploy + 部署 + + + Rename... + 重命名... + + + Set as Active Project + 设为活动项目 + + + Set "%1" as Active Project + 将"%1"设置为活动项目 + + + Collapse All + 折叠全部 + + + Open Build and Run Kit Selector... + 打开 构建/运行 构建套件选择器... + + + Cancel Build && Unload + 取消构建 && 卸载 + + + Do Not Unload + 不要卸载 + + + Unload Project %1? + 卸载项目 %1? + + + The project %1 is currently being built. + 项目 %1 正在被构建。 + + + Do you want to cancel the build process and unload the project anyway? + 您确定要取消构建并卸载项目吗? + + + Project Editing Failed + 编辑项目失败 + + + The file %1 was renamed to %2, but the project file %3 could not be automatically changed. + 文件 %1 更名为 %2,但项目文件 %3 无法自动更改。 + + + A build is still in progress. + 仍有一个构建在进行中。 + + + Cancel Build + 取消构建 + + + Add New... + 添加新文件... + + + Add Existing Files... + 添加现有文件... + + + New Subproject... + 新子项目... + + + Remove Project... + Remove project from parent profile (Project explorer view); will not physically delete any files. + 删除项目... + + + Delete File... + 删除文件... + + + Ctrl+T + Ctrl+T + + + Load Project + 载入项目 + + + New Project + Title of dialog + 新建项目 + + + Always save files before build + 构建之前总是先保存文件 + + + Failed to Open Project + 打开项目失败 + + + Found some build errors in current task. +Do you want to ignore them? + 在当前任务中发现一些构建错误。 +您想要忽略这些错误吗? + + + No project loaded. + 没有载入项目。 + + + Currently building the active project. + 目前正在构建活动项目。 + + + The project %1 is not configured. + 项目 %1 未配置。 + + + Project has no build settings. + 项目没有构建设置。 + + + Cancel Build && Close + 取消构建并关闭 + + + Do Not Close + 不要关闭 + + + A project is currently being built. + 有个项目现正在构建中。 + + + New File + Title of dialog + 新建文件 + + + New Subproject + Title of dialog + 新建子项目 + + + Add Existing Files + 添加现有文件 + + + Adding Files to Project Failed + 添加文件到项目失败 + + + Removing File Failed + 删除文件失败 + + + Deleting File Failed + 删除文件失败 + + + Delete File + 删除文件 + + + No active project. + 没有活动项目。 + + + Run %1 + 运行 %1 + + + Delete %1 from file system? + 从文件系统中删除 %1吗? + + + Could not delete file %1. + 无法删除文件 %1 。 + + + C + + + + C++ + C++ + + + Open... + + + + Build Environment + + + + Run Environment + + + + S&essions + + + + &Manage... + + + + Close Pro&ject "%1" + + + + Close All Files in Project + + + + Close All Files in Project "%1" + + + + Close Pro&ject + + + + Build All Projects + + + + Build All Projects for All Configurations + + + + Deploy All Projects + + + + Rebuild All Projects + + + + Rebuild All Projects for All Configurations + + + + Clean All Projects + + + + Clean All Projects for All Configurations + + + + Build Project for All Configurations + + + + Build Project "%1" for All Configurations + + + + Build for &Run Configuration + + + + Build for &Run Configuration "%1" + + + + Rebuild Project for All Configurations + + + + Clean Project for All Configurations + + + + Meta+Backspace + + + + Alt+Backspace + + + + Add Existing Projects... + + + + Add Existing Directory... + + + + Close All Files + + + + Close Other Projects + + + + Close All Projects Except "%1" + + + + Properties... + + + + Remove... + + + + Duplicate File... + + + + Expand + 展开 + + + Expand All + 展开全部 + + + Quick Switch Kit Selector + + + + Current project's main file. + + + + Main file of the project the current document belongs to. + + + + The name of the current project. + + + + The name of the project the current document belongs to. + + + + Current Build Environment + + + + Current Run Environment + + + + The name of the active project. + + + + Active project's main file. + + + + The type of the active project's active build configuration. + + + + Full build path of the active project's active build configuration. + + + + Active build environment of the active project. + + + + Name of the active project's active run configuration. + + + + The executable of the active project's active run configuration. + + + + Active run environment of the active project. + + + + Variables in the environment of the active project's active run configuration. + + + + The working directory of the active project's active run configuration. + + + + File where current session is saved. + + + + Name of current session. + + + + All Projects + 所有项目 + + + Sanitizer + Category for sanitizer issues listed under 'Issues' + + + + Parse Build Output... + + + + <h3>Project already open</h3> + + + + Failed opening project "%1": Project is not a file. + + + + Failed opening project "%1": No plugin can open project type "%2". + + + + Ignore All Errors? + + + + Run Configuration Removed + + + + The configuration that was supposed to run is no longer available. + + + + Open Project in "%1" + + + + Open Project "%1" + + + + The file "%1" was renamed to "%2", but the following projects could not be automatically changed: %3 + + + + The following projects failed to automatically remove the file: %1 + + + + A build is in progress. + + + + Close %1? + 关闭%1? + + + Do you want to cancel the build process and close %1 anyway? + + + + The project "%1" is not configured. + + + + The project "%1" has no active kit. + + + + The kit "%1" for the project "%2" has no active run configuration. + + + + Cannot run "%1". + + + + A run action is already scheduled for the active project. + + + + %1 in %2 + 在 %2中的%1 + + + Choose Project File + + + + The following subprojects could not be added to project "%1": + + + + Adding Subproject Failed + + + + Could not add following files to project %1: + + + + Remove More Files? + + + + Remove these files as well? + %1 + + + + File "%1" was not removed, because the project has changed in the meantime. +Please try again. + + + + Could not remove file "%1" from project "%2". + + + + _copy + + + + Choose File Name + + + + New file name: + + + + Duplicating File Failed + + + + Failed to copy file "%1" to "%2": %3. + + + + Failed to add new file "%1" to the project. + + + + The project file %1 cannot be automatically changed. + +Rename %2 to %3 anyway? + + + + The file %1 could not be renamed %2. + + + + Cannot Rename File + + + + Matches all files from all project directories. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well. + + + + Run run configuration + + + + Run a run configuration of the current active project + + + + Switch run configuration + + + + Switch active run configuration + + + + Switched run configuration to +%1 + + + + + ProjectExplorer::ProjectImporter + + No Build Found + 未找到构建 + + + No build found in %1 matching project %2. + 在%1中没有找到符合项目%2的构建。 + + + Import Warning + + + + Import Build + + + + %1 - temporary + %1 - 临时 + + + Imported Kit + + + + + ProjectExplorer::ProjectTree + + <b>Warning:</b> This file is generated. + + + + <b>Warning:</b> This file is outside the project directory. + + + + + ProjectExplorer::ProjectsMode + + Projects + 项目 + + + + ProjectExplorer::RunAsRootAspect + + Run as root user + ProjectExplorer::RunConfiguration - Unknown error. - 未知错误。 + Run Settings + 运行设置 + + + Variables in the run environment. + + + + The run configuration's working directory. + + + + The run configuration's name. + + + + The run configuration's executable. + + + + No build system active + + + + Run on %{Device:Name} + Shown in Run configuration if no executable is given, %1 is device name + + + + %1 (on %{Device:Name}) + Shown in Run configuration, Add menu: "name of runnable (on device name)" + + + + + ProjectExplorer::RunControl + + Application Still Running + 应用仍然在运行 + + + PID %1 + PID %1 + + + Invalid + 无效 + + + <html><head/><body><center><i>%1</i> is still running.<center/><center>Force it to quit?</center></body></html> + <html><head/><body><center><i>%1</i> 仍然在运行。<center/><center>强制关闭吗?</center></body></html> + + + Unexpected run control state %1 when worker %2 started. + + + + Force &Quit + + + + &Keep Running + + + + Starting %1... + + + + No executable specified. + + + + + ProjectExplorer::RunWorker + + Worker start timed out. + + + + Worker stop timed out. + + + + The process failed to start. + + + + An unknown error in the process occurred. + + + + Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. + + + + The process crashed. + 进程崩溃了。 + + + An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel. + + + + An error occurred when attempting to read from the process. For example, the process may not be running. + + + + + ProjectExplorer::SelectableFilesDialogAddDirectory + + Add Existing Directory + + + + + ProjectExplorer::SelectableFilesDialogEditFiles + + Edit Files + 编辑文件 + + + + ProjectExplorer::SelectableFilesWidget + + Source directory: + + + + Start Parsing + + + + Select files matching: + + + + Hide files matching: + 隐藏符合条件的文件: + + + Apply Filters + + + + Generating file list... + +%1 + 生成文件列表... + +%1 + + + Not showing %n files that are outside of the base directory. +These files are preserved. + + 未显示基础目录外部的 %n个文件。 +这些文件受到保护。 + + + + + ProjectExplorer::SeparateDebugInfoAspect + + Separate debug info: + + + + + ProjectExplorer::SessionManager + + Error while restoring session + 恢复会话时发生错误 + + + Could not restore session %1 + 无法恢复会话 %1 + + + Failed to restore project files + 还原项目文件失败 + + + Could not restore the following project files:<br><b>%1</b> + 无法还原以下项目文件:<br><b>%1</b> + + + Keep projects in Session + 在会话中保留项目 + + + Remove projects from Session + 从会话中移除项目 + + + Error while saving session + 保存会话时发生错误 + + + Could not save session to file %1 + 无法将会话保存到文件 %1 + + + Untitled + 未命名 + + + Could not save session %1 + + + + Delete Session + 删除会话 + + + Delete Sessions + + + + Delete session %1? + + + + Delete these sessions? + %1 + + + + Loading Session + + + + + ProjectExplorer::SshDeviceProcessList + + Process listing command failed with exit code %1. + 进程列清单命令失败,退出码 %1。 + + + Remote stderr was: %1 + + + + Error: Kill process failed: %1 + + + + + ProjectExplorer::SysRootKitAspect + + Sysroot + + + + The root directory of the system image to use.<br>Leave empty when building for the desktop. + 系统image使用的根目录。<br>为桌面构建时此项不填。 + + + Sys Root "%1" does not exist in the file system. + + + + Sys Root "%1" is not a directory. + sysroot "%1"不是一个目录。 + + + Sys Root "%1" is empty. + + + + Sys Root + Sys Root ProjectExplorer::Target - Default build - 默认构建 + Target Settings + + + + Source directory + + + + Build system + + + + The currently active run configuration's name. + + + + The currently active run configuration's executable (if applicable). + + + + Variables in the current run environment. + + + + The currently active run configuration's working directory. + - ProjectExplorer::Internal::WinCEToolChainFactory + ProjectExplorer::TargetSetupPage - WinCE - WinCE + No suitable kits found. + + + + Add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. + + + + Select all kits + + + + Type to filter kits by name... + + + + Select Kits for Your Project + 为您的项目选择构建套件 + + + Kit Selection + 选择构建套件 + + + Kits + 构建套件(Kit) + + + The following kits can be used for project <b>%1</b>: + %1: Project name + - ProjectExplorer::Internal::WinCEToolChainConfigWidget + ProjectExplorer::Task - SDK: - SDK: + You asked to build the current Run Configuration's build target only, but it is not associated with a build target. Update the Make Step in your build settings. + - WinCE Version: - WinCE 版本: + %1 needs a compiler set up to build. Configure a compiler in the kit options. + + + + + ProjectExplorer::TerminalAspect + + Terminal + - ABI: - ABI: + Run in terminal + 在终端中运行 + + + + ProjectExplorer::ToolChain + + Clone of %1 + %1 的克隆 + + + + ProjectExplorer::ToolChainConfigWidget + + Name: + 名称: + + + + ProjectExplorer::ToolChainKitAspect + + <No compiler> + + + + Compiler + 编译器 + + + The compiler to use for building.<br>Make sure the compiler will produce binaries compatible with the target device, Qt version and other libraries used. + 构建使用的编译器。<br>请确保使用的编译器生成的二进制与目标设备、Qt版本和其他库兼容。 + + + Compilers produce code for different ABIs: %1 + + + + None + + + + Path to the compiler executable + + + + Compiler for different languages + + + + Compiler executable for different languages + + + + No compiler set in kit. + 构建套件中未设置编译器。 + + + + ProjectExplorer::ToolChainManager + + ABI + + + + None + + + + Tool Chains + 工具链 + + + + ProjectExplorer::UseDyldSuffixAspect + + Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) + 使用开发框架的调试版 (DYLD_IMAGE_SUFFIX=_debug) + + + + ProjectExplorer::UseLibraryPathsAspect + + Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH + + + + Add build library search path to PATH + + + + Add build library search path to LD_LIBRARY_PATH + + + + + ProjectExplorer::WorkingDirectoryAspect + + Working Directory + + + + Select Working Directory + 选择工作目录 + + + Reset to Default + + + + Working directory: + 工作目录: + + + + ProjectExplorer::XcodebuildParser + + Replacing signature + + + + Xcodebuild failed. + + + + + ProjectExplorerPluginPrivate + + Building "%1" is disabled: %2<br> + + + + + ProjectWizard + + The files are implicitly added to the projects: + + + + <None> + <无> + + + <Implicitly Add> + <隐式添加> + + + + ProjextExplorer::Internal::KitOptionsPageWidget + + Add + 添加 + + + Clone + 克隆 + + + Remove + 删除 + + + Make Default + 设置为默认 + + + Settings Filter... + + + + Choose which settings to display for this kit. + + + + Default Settings Filter... + + + + Choose which kit settings to display by default. + + + + Kits + 构建套件(Kit) + + + + ProjextExplorer::Internal::ProjectExplorerSettings + + Current directory + 当前目录 + + + Directory + 目录 + + + Close source files along with project + + + + Save all files before build + 在构建前保存所有文件 + + + Always deploy project before running it + 在运行项目前总是先部署 + + + Add linker library search paths to run environment + + + + Always ask before stopping applications + 总是在停止应用前询问 + + + Create suitable run configurations automatically + + + + Clear issues list on new build + + + + Abort on error when building all projects + + + + Start build processes with low priority + + + + Do Not Build Anything + + + + Build the Whole Project + + + + Build Only the Application to Be Run + + + + None + + + + All + 所有 + + + Same Project + + + + Same Build Directory + + + + Same Application + + + + Enabled + 启用 + + + Disabled + 禁用 + + + Deduced from Project + + + + Use jom instead of nmake + 使用jom代替nmake + + + Projects Directory + 项目目录 + + + Closing Projects + + + + Build and Run + 构建和运行 + + + Build before deploying: + + + + Stop applications before building: + + + + Default for "Run in terminal": + + + + General + 概要 + + + + ProvisioningProfile + + Team: %1 +App ID: %2 +Expiration date: %3 + + + + + PuppetCreator + + Puppet is starting... + + + + You can now attach your debugger to the %1 puppet with process id: %2. + + + + QML Emulation Layer (QML Puppet) Building was Unsuccessful + + + + The QML emulation layer (QML Puppet) cannot be built. The fallback emulation layer, which does not support all features, will be used. + + + + Qt Version is not supported + + + + The QML emulation layer (QML Puppet) cannot be built because the Qt version is too old or it cannot run natively on your computer. The fallback emulation layer, which does not support all features, will be used. + + + + Kit is invalid + + + + The QML emulation layer (QML Puppet) cannot be built because the kit is not configured correctly. For example the compiler can be misconfigured. Fix the kit configuration and restart %1. Otherwise, the fallback emulation layer, which does not support all features, will be used. + + + + + Python + + Install %1 + + + + Running "%1" to install %2. + + + + The %1 installation was canceled by %2. + + + + user + + + + time out + + + + Installing the %1 failed with exit code %2 + + + + %1 installation missing for %2 (%3) + + + + Install %1 for %2 using pip package installer. + + + + Install + + + + Switch the Python interpreter for %1 + + + + Run PySide6 project tool + + + + PySide project tool: + + + + Enter location of PySide project tool. + + + + General + 概要 + + + REPL + + + + Open interactive Python. + + + + REPL Import File + + + + Open interactive Python and import file. + + + + REPL Import * + + + + Open interactive Python and import * from file. + + + + Open interactive Python. Either importing nothing, importing the current file, or importing everything (*) from the current file. + + + + Python Language Server (%1) + + + + Install Python language server (PyLS) for %1 (%2). The language server provides Python specific completion and annotation. + + + + Unable to open "%1" for reading: %2 + + + + Unable to read "%1": The file is empty. + + + + Unable to parse "%1":%2: %3 + + + + Buffered output + + + + Enabling improves output performance, but results in delayed output. + + + + Script: + + + + Run %1 + + + + Name: + 名称: + + + Executable + + + + Executable is empty. + + + + %1 does not exist. + + + + %1 is not an executable file. + + + + &Add + 添加(&A) + + + &Delete + 删除(&D) + + + &Make Default + + + + &Clean Up + + + + Remove all Python interpreters without a valid executable. + + + + Interpreters + + + + Python + + + + Plugins: + + + + Use Python Language Server + + + + For a complete list of available options, consult the <a href="https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md">Python LSP Server configuration documentation</a>. + + + + Advanced + 高级 + + + Language Server Configuration + + + + (Windowed) + + + + Removing Python + + + + Python: + + + + + Python::Internal::PythonSettings + + Searching Python binaries... + + + + Found "%1" (%2) + + + + + QAbstractFileIconProvider + + File Folder + Match Windows Explorer + + + + Folder + All other platforms + + + + + QCoreApplication + + unnamed + 未命名 + + + + QDockWidget + + Float + + + + Undocks and re-attaches the dock widget + + + + Close + 关闭 + + + Closes the dock widget + + + + + QObject + + All syntax definitions are up-to-date. + + + + Downloading new syntax definition for '%1'... + + + + Updating syntax definition for '%1' to version %2... + + + + List All Tabs + + + + Detach Group + + + + Close Active Tab + + + + Close Group + + + + Close Tab + 关闭标签 + + + Bytes + + + + KB + + + + MB + MB + + + GB + + + + TB + + + + Cppcheck + + + + <Filter> + Library search input hint text + <过滤器> + + + Show Event List + + + + Assign Events to Actions + + + + Connect Signal to Event + + + + Connected Events + + + + Connected Signals + + + + Exposed Custom Properties + + + + ID cannot start with an uppercase character (%1). + + + + ID cannot start with a number (%1). + + + + ID cannot include whitespace (%1). + + + + %1 is a reserved QML keyword. + + + + %1 is a reserved property keyword. + + + + ID includes invalid characters (%1). + + + + Empty document + + + + Start Nanotrace + + + + Shut Down Nanotrace + + + + Unknown + 未知 + + + Qt 6 + + + + Qt 5 + + + + Project File Generated + + + + File created: + +%1 + + + + Select File Location + + + + Qt Design Studio Project Files (*.qmlproject) + + + + Invalid Directory + + + + Project file must be placed in a parent directory of the QML files. + + + + Problem + + + + Selected directory is far away from the QML file. This can cause unexpected results. + +Are you sure? + + + + Failed to start Qt Design Studio. + + + + None + + + + LF + + + + CR + + + + CRLF + + + + UntitledProject + File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. + + + + + QWidget + + Images (*.png *.jpg *.jpeg) + + + + + QbsProjectManager + + Custom Properties + + + + Key + 密钥 + + + Value + + + + &Remove + 删除(&R) + + + &Add + 添加(&A) + + + C and C++ compiler paths differ. C compiler may not work. + + + + Configuration name: + 配置名称: + + + The qbs project build root + + + + Debug + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + + + + Release + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + + + + Qbs Build + + + + <b>Qbs:</b> %1 + + + + Build variant: + + + + ABIs: + + + + Keep going when errors occur (if at all possible). + + + + Keep going + + + + Parallel jobs: + + + + Number of concurrent build jobs. + + + + Show command lines + + + + Install + + + + Clean install root + + + + Force probes + + + + Equivalent command line: + + + + No qbs session exists for this target. + + + + Build canceled: Qbs session failed. + + + + Properties: + + + + Flags: + + + + Installation flags: + + + + Installation directory: + + + + Properties to pass to the project. + + + + Use default location + + + + Could not split properties. + + + + Property "%1" cannot be set here. Please use the dedicated UI element. + + + + No ":" found in property definition. + + + + Qbs Clean + + + + Dry run: + + + + Keep going: + + + + Cleaning canceled: Qbs session failed. + + + + Qbs Install + + + + Dry run + + + + Remove first + + + + Installing canceled: Qbs session failed. + + + + Install root: + + + + Change... + + + + Additional Qbs Profile Settings + + + + Generated files + + + + Qbs files + + + + Failed to run qbs config: %1 + + + + Profiles + + + + Kit: + + + + Associated profile: + + + + Profile properties: + + + + E&xpand All + + + + &Collapse All + + + + Fatal qbs error: %1 + + + + Failed + + + + Could not write project file %1. + 无法写入项目文件 %1。 + + + Reading Project "%1" + + + + Error retrieving run environment: %1 + + + + Qbs + + + + Reparse Qbs + + + + Build File + 构建文件 + + + Build File "%1" + 构建文件"%1" + + + Ctrl+Alt+B + Ctrl+Alt+B + + + Build + 构建 + + + Build Product + + + + Build Product "%1" + + + + Ctrl+Alt+Shift+B + + + + Clean + + + + Clean Product + + + + Rebuild + 重新构建 + + + Rebuild Product + + + + Received invalid input. + + + + No qbs executable was found, please set the path in the settings. + + + + The qbs executable was not found at the specified path, or it is not executable ("%1"). + + + + The qbs process quit unexpectedly. + + + + The qbs process failed to start. + + + + The qbs process sent unexpected data. + + + + The qbs API level is not compatible with what %1 expects. + + + + Request timed out. + + + + Failed to load qbs build graph. + + + + The qbs session is not in a valid state. + + + + Failed to update files in Qbs project: %1. +The affected files are: + %2 + + + + Use %1 settings directory for Qbs + + + + Path to qbs executable: + + + + Default installation directory: + + + + Qbs version: + + + + Failed to retrieve version. + + + + General + 概要 + + + + Qdb + + Flash wizard "%1" failed to start. + + + + Flash wizard executable "%1" not found. + + + + Flash Boot to Qt Device + + + + + Qdb::Internal::DeviceDetector + + Device "%1" %2 + + + + Qt Debug Bridge device %1 + + + + Device detection error: %1 + + + + + Qdb::Internal::QdbDeployConfiguration + + Deploy to Boot2Qt target + + + + + Qdb::Internal::QdbDevice + + Starting command "%1" on device "%2". + + + + Command failed on device "%1": %2 + + + + Command failed on device "%1". + + + + stdout was: "%1" + + + + stderr was: "%1" + + + + Commands on device "%1" finished successfully. + + + + Boot2Qt Device + + + + Reboot Device + + + + Restore Default App + + + + WizardPage + 向导页面 + + + Device Settings + + + + A short, free-text description + + + + Host name or IP address + + + + Device name: + + + + Device address: + + + + Boot2Qt Network Device Setup + + + + + Qdb::Internal::QdbDeviceTracker + + Shutting down device discovery due to unexpected response: %1 + + + + + Qdb::Internal::QdbMakeDefaultAppService + + Remote process failed: %1 + 远端进程失败:%1 + + + Application set as the default one. + + + + Reset the default application. + + + + + Qdb::Internal::QdbMakeDefaultAppStep + + Set this application to start by default + + + + Reset default application + + + + Change default application + + + + + Qdb::Internal::QdbMessageTracker + + Shutting down message reception due to unexpected response: %1 + + + + QDB message: %1 + + + + + Qdb::Internal::QdbRunConfiguration + + Full command line: + + + + Executable on device: + 设备上的执行档: + + + Remote path not set + + + + Executable on host: + 主机上的执行档: + + + Run on Boot2Qt Device + + + + The remote executable must be set in order to run on a Boot2Qt device. + + + + + Qdb::Internal::QdbStopApplicationService + + Could not check and possibly stop running application. + + + + Checked that there is no running application. + + + + Stopped the running application. + + + + + Qdb::Internal::QdbStopApplicationStep + + Stop already running application + + + + + Qdb::Internal::QdbWatcher + + Unexpected QLocalSocket error: %1 + + + + Could not connect to QDB host server even after trying to start it. + + + + Invalid JSON response received from QDB server: %1 + + + + Could not find QDB host server executable. You can set the location with environment variable %1. + + + + QDB host server started. + + + + Could not start QDB host server in %1 + + + + Starting QDB host server. + + + + + QmakeProjectManager + + Qt Designer is not responding (%1). + Qt设计师无响应 (%1)。 + + + Unable to create server socket: %1 + 无法创建服务器套接字: %1 + + + Unable to start "%1" + 无法启动"%1" + + + The application "%1" could not be found. + 找不到应用 "%1"。 + + + Details + 详情 + + + Type + 类型 + + + General + 概要 + + + Error: + 错误: + + + Warning: + 警告: + + + Run qmake + 执行qmake + + + Build + 构建 + + + Build "%1" + 构建 "%1" + + + Rebuild + 重新构建 + + + Clean + 清除 + + + Rebuild Subproject + 重新构建子项目 + + + Clean Subproject + 清理子项目 + + + Build File + 构建文件 + + + Build File "%1" + 构建文件"%1" + + + Ctrl+Alt+B + Ctrl+Alt+B + + + Add Library... + 添加库... + + + Cannot find Makefile. Check your build settings. + 无法找到 Makefile. 检查您的构建设置。 + + + qmake + QMakeStep default display name + qmake + + + Configuration unchanged, skipping qmake step. + 配置没有改变, 跳过 qmake 步骤。 + + + QML Debugging + QML 调试 + + + The option will only take effect if the project is recompiled. Do you want to recompile now? + 需要重新编译项目才能使选项生效。您想现在就重新编译吗? + + + <b>qmake:</b> No Qt version set. Cannot run qmake. + <b>qmake:</b> 没有设置Qt版本,无法运行qmake。 + + + <b>qmake:</b> %1 %2 + <b>qmake:</b> %1 %2 + + + QMake + QMake + + + &Sources + 源文件(&S) + + + Widget librar&y: + 控件库(&Y): + + + Widget project &file: + 控件项目文件(&F): + + + Widget h&eader file: + 控件头文件(&E): + + + Widge&t source file: + 控件源文件(&T): + + + Widget &base class: + 控件的基类(&B): + + + Plugin class &name: + 插件类名(&N): + + + Plugin &header file: + 插件头文件(&H): + + + Plugin sou&rce file: + 插件源文件(&R): + + + Icon file: + 图标文件: + + + &Link library + 链接库(&L) + + + Create s&keleton + 创建代码框架(&K) + + + Include pro&ject + 包含项目(&J) + + + &Description + 说明(&D) + + + G&roup: + 组(&R): + + + &Tooltip: + 工具提示(&T): + + + W&hat's this: + 这是什么(&H): + + + The widget is a &container + 控件是个容器(&C) + + + Property defa&ults + 默认属性(&U) + + + dom&XML: + dom &XML: + + + Select Icon + 选择图标 + + + Icon files (*.png *.ico *.jpg *.xpm *.tif *.svg) + 图标文件 (*.png *.ico *.jpg *.xpm *.tif *.svg) + + + Specify the properties of the plugin library and the collection class. + 指定插件库和集合类的属性。 + + + Collection class: + 集合类: + + + Collection header file: + 集合类头文件: + + + Collection source file: + 集合类源文件: + + + Plugin name: + 插件名称: + + + Resource file: + 资源文件: + + + icons.qrc + icons.qrc + + + Widget &Classes: + 控件类(&C): + + + Specify the list of custom widgets and their properties. + 指定自定义控件列表及其属性. + + + <New class> + <新类> + + + Confirm Delete + 确认删除 + + + Delete class %1 from list? + 从列表中删除类 %1 吗? + + + Qt Custom Designer Widget + Qt4 设计师自定义控件 + + + Creates a Qt Custom Designer Widget or a Custom Widget Collection. + 创建一个Qt设计师自定义控件或者一个自定义控件集合。 + + + Custom Widgets + 自定义控件 + + + Plugin Details + 插件详细信息 + + + Creating multiple widget libraries (%1, %2) in one project (%3) is not supported. + 不支持在一个项目中(%3)创建多个控件库 (%1, %2). + + + Debug + better to leave it as it is + Debug + + + Release + Release + + + No Qt version set in kit. + 构建套件中未设置Qt版本。 + + + Library: + 库: + + + Library file: + 库文件: + + + Include path: + 包含路径: + + + Linux + Linux + + + Mac + Mac + + + Windows + Windows + + + Linkage: + 链接: + + + Dynamic + 动态 + + + Static + 静态 + + + Mac: + Mac: + + + Library + + + + Framework + 框架 + + + Windows: + Windows: + + + Library inside "debug" or "release" subfolder + debug或release子目录下的库 + + + Add "d" suffix for debug version + 为debug版本添加'd'作为后缀 + + + Remove "d" suffix for release version + 移除release版本中的'd'后缀 + + + Package: + 包: + + + Add Library + 添加库 + + + Summary + 汇总 + + + Library Type + 库类型 + + + Choose the type of the library to link to + 选择链接到的库类型 + + + System library + 系统库 + + + Links to a system library. +Neither the path to the library nor the path to its includes is added to the .pro file. + 链接到系统库。 +无论是库的路径还是库的 includes都没被添加到 .pro 文件中。 + + + System package + 系统包 + + + Links to a system library using pkg-config. + 使用pkg-config.连接到系统库。 + + + External library + 外部库 + + + Links to a library that is not located in your build tree. +Adds the library and include paths to the .pro file. + 链接到不在您的构建树中的库。 +请将库和它的include 路径添加到.pro文件中。 + + + Internal library + 内部库 + + + Links to a library that is located in your build tree. +Adds the library and include paths to the .pro file. + 链接到在您的构建树中的库。 +请将库和它的include 路径添加到.pro文件中。 + + + System Library + 系统库 + + + Specify the library to link to + 指定链接到的库 + + + System Package + 系统包 + + + Specify the package to link to + 指定链接到的包 + + + External Library + 外部库 + + + Specify the library to link to and the includes path + 指定链接库和包含路径 + + + Internal Library + 内部库 + + + Choose the project file of the library to link to + 选择要链接的库的项目文件 + + + The following snippet will be added to the<br><b>%1</b> file: + 下列代码段将被添加到文件<br><b>%1</b> 中: + + + %1 Dynamic + %1 动态 + + + %1 Static + %1 静态 + + + %1 Framework + %1 框架 + + + %1 Library + %1 库 + + + Subdirs Project + 子目录项目 + + + Creates a qmake-based subdirs project. This allows you to group your projects in a tree structure. + 创建一个基于qmake 的子目录项目。这可以让您将项目组织成树形结构。 + + + Done && Add Subproject + 完成&& 添加子项目 + + + Finish && Add Subproject + 完成&& 添加子项目 + + + New Subproject + Title of dialog + 新建子项目 + + + Error while parsing file %1. Giving up. + 分析文件%1时发生错误,放弃中。 + + + Headers + 头文件 + + + Sources + 源文件 + + + Forms + 界面文件 + + + Resources + 资源 + + + QML + QML + + + Other files + 其他文件 + + + Could not write project file %1. + 无法写入项目文件 %1。 + + + File Error + 文件错误 + + + qmake build configuration: + qmake 构建配置: + + + Additional arguments: + 额外的参数: + + + Effective qmake call: + 有效的qmake调用: + + + The mkspec to use when building the project with qmake.<br>This setting is ignored when using other build systems. + 用qmake构建项目时使用的mkspec。<br>当使用其他构建系统时该设置被忽略。 + + + No Qt version set, so mkspec is ignored. + 未设置Qt版本,所以mkspec被忽略。 + + + Mkspec not found for Qt version. + 未找到Q版本的mkspec。 + + + mkspec + mkspec + + + Platform: + + + + Library type: + + + + This wizard generates a Qt Designer Custom Widget or a Qt Designer Custom Widget Collection project. + + + + Run + 运行 + + + Ignore + 忽略 + + + Use global setting + + + + qmake system() behavior when parsing: + + + + This kit cannot build this project since it does not define a Qt version. + + + + The build directory contains a build for a different project, which will be overwritten. + + + + %1 The build will be overwritten. + %1 error message + + + + The build directory should be at the same level as the source directory. + + + + Could not parse Makefile. + + + + The Makefile is for a different project. + + + + The build type has changed. + + + + The qmake arguments have changed. + + + + The mkspec has changed. + + + + Release + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + + + + Debug + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + + + + Profile + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + + + + Qt mkspec + + + + Mkspec configured for qmake by the kit. + + + + The build directory is not at the same level as the source directory, which could be the reason for the build failure. + + + + State charts + + + + Generated Files + + + + Failed + + + + Could not find .pro file for subdirectory "%1" in "%2". + + + + Reading Project "%1" + + + + Cannot parse project "%1": The currently selected kit "%2" does not have a valid Qt. + + + + Cannot parse project "%1": No kit selected. + + + + Qt version is invalid. + + + + No C++ compiler set in kit. + + + + Project is part of Qt sources that do not match the Qt defined in the kit. + + + + "%1" is used by qmake, but "%2" is configured in the kit. +Please update your kit (%3) or choose a mkspec for qmake that matches your target environment better. + + + + Build &Subproject + + + + Build &Subproject "%1" + + + + Warn if a project's source and build directories are not at the same level + + + + Qmake has subtle bugs that can be triggered if source and build directory are not at the same level. + + + + Run qmake on every build + + + + This option can help to prevent failures on incremental builds, but might slow them down unnecessarily in the general case. + + + + Ignore qmake's system() function when parsing a project + + + + Checking this option avoids unwanted side effects, but may result in inexact parsing results. + + + + Qmake + + + + No Qt version configured. + + + + Could not determine which "make" command to run. Check the "make" step in the build configuration. + + + + <no Qt version> + + + + <no Make step found> + + + + ABIs: + + + + Qt Quick Compiler + + + + Separate Debug Information + + + + Required Qt features not present. + + + + Qt version does not target the expected platform. + + + + Qt version does not provide all features. + + + + This wizard generates a Qt Subdirs project. Add subprojects to it later on by using the other wizards. + + + + + QmlDebug::QmlDebugConnection + + Socket state changed to %1 + + + + Error: %1 + 错误: %1 + {1?} + + + + QmlDebug::QmlDebugConnectionManager + + Debug connection opened. + + + + Debug connection closed. + + + + Debug connection failed. + + + + + QmlDebug::QmlOutputParser + + The port seems to be in use. + Error message shown after 'Could not connect ... debugger:" + 端口可能被占用。 + + + The application is not set up for QML/JS debugging. + Error message shown after 'Could not connect ... debugger:" + 应用没有被设置为支持QML/JS 调试。 + + + + QmlDesigner + + Error + 错误 + + + + QmlDesigner::AbstractEditorDialog + + Untitled Editor + + + + + QmlDesigner::ActionEditorDialog + + Connection Editor + + + + + QmlDesigner::AddNewBackendDialog + + Add New C++ Backend + + + + Type + 类型 + + + Define object locally + + + + Required import + + + + Choose a type that is registered using qmlRegisterType or qmlRegisterSingletonType. The type will be available as a property in the current .qml file. + + + + + QmlDesigner::AddTabDesignerAction + + Naming Error + + + + Component already exists. + + + + + QmlDesigner::AddTabToTabViewDialog + + Dialog + 对话框 + + + Add tab: + + + + + QmlDesigner::AlignDistribute + + Cannot Distribute Perfectly + + + + These objects cannot be distributed to equal pixel values. Do you want to distribute to the nearest possible values? + + + + + QmlDesigner::AnnotationCommentTab + + Title + 标题 + + + Text + 文本 + + + Author + + + + + QmlDesigner::AnnotationEditor + + Annotation + + + + Delete this annotation? + + + + + QmlDesigner::AnnotationEditorDialog + + Annotation Editor + + + + + QmlDesigner::AnnotationEditorWidget + + Add Status + + + + In Progress + + + + In Review + + + + Done + + + + Tab view + + + + Table view + + + + Selected component + + + + Name + + + + Tab 1 + + + + Tab 2 + + + + + QmlDesigner::AnnotationTabWidget + + Add Comment + + + + Remove Comment + + + + Delete this comment? + + + + Annotation + + + + + QmlDesigner::AnnotationTableView + + Title + 标题 + + + Author + + + + Value + + + + + QmlDesigner::AssetExportDialog + + Export Components + + + + Export path: + + + + Choose Export File + + + + Metadata file (*.metadata) + + + + Open + 打开 + + + Advanced Options + + + + Export assets + + + + Export components separately + + + + Export + + + + + QmlDesigner::AssetExporter + + Export root directory: %1. +Exporting assets: %2 + + + + Yes + + + + No + + + + Each component is exported separately. + + + + Canceling export. + + + + Unknown error. + + + + Loading file is taking too long. + + + + Cannot parse. The file contains coding errors. + + + + Loading components failed. %1 + + + + Cannot export component. Document "%1" has parsing errors. + + + + Error saving component file. %1 + + + + Unknown + 未知 + + + Cannot preprocess file: %1. Error %2 + + + + Cannot preprocess file: %1 + + + + Cannot update %1. +%2 + + + + Exporting file %1. + + + + Export canceled. + + + + Writing metadata failed. Cannot create file %1 + + + + Writing metadata to file %1. + + + + Empty JSON document. + + + + Writing metadata failed. %1 + + + + Export finished. + + + + Error creating asset directory. %1 + + + + Error saving asset. %1 + + + + + QmlDesigner::AssetExporterPlugin + + Asset Export + + + + Export Components + + + + Export components in the current project. + + + + + QmlDesigner::AssetsLibraryModel + + Confirm Delete File + + + + File%1 might be in use. Delete anyway? + +%2 + + + + Do not ask this again + + + + Failed to Locate File + + + + Could not find "%1". + + + + Failed to Delete File + + + + Could not delete "%1". + + + + + QmlDesigner::AssetsLibraryView + + Assets + + + + + QmlDesigner::AssetsLibraryWidget + + Assets Library + Title of assets library widget + + + + Failed to Add Files + + + + Could not add %1 to project. + + + + All Files (%1) + + + + Add Assets + + + + Could not add %1 to project. Unsupported file format. + + + + + QmlDesigner::AssignEventDialog + + Nonexistent events discovered + + + + The Node references the following nonexistent events: + + + + + + QmlDesigner::BackgroundAction + + Set the color of the canvas. + + + + + QmlDesigner::BindingEditorDialog + + Binding Editor + + + + NOT + + + + Invert the boolean expression. + + + + + QmlDesigner::BindingEditorWidget + + Trigger Completion + + + + Meta+Space + Meta+Space + + + Ctrl+Space + Ctrl+Space + + + + QmlDesigner::CapturingConnectionManager + + QML Emulation Layer (QML Puppet - %1) Crashed + + + + You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. + + + + + QmlDesigner::ChooseFromPropertyListDialog + + Select Property + + + + Bind to property: + + + + Binds this component to the parent's selected property. + + + + + QmlDesigner::CmakeProjectConverter + + Export as Latest Project Format + + + + Creating Project + + + + Creating project failed. +%1 + + + + Creating project succeeded. + + + + Unable to write to directory +%1. + + + + + QmlDesigner::CmakeProjectConverterDialog + + This process creates a copy of the existing project. The new project's folder structure is adjusted for CMake build process and necessary related new files are generated. + +The new project can be opened in Qt Creator using the main CMakeLists.txt file. + + + + Name: + 名称: + + + Create in: + 创建路径: + + + Name is empty. + 名称为空。 + + + Name must not start with "%1". + + + + Name must begin with a capital letter + + + + Name must contain only letters, numbers or characters - _. + + + + Target is not a directory. + + + + Cannot write to target directory. + + + + Project directory already exists. + + + + + QmlDesigner::ColorTool + + Color Tool + + + + + QmlDesigner::ComponentAction + + Edit sub components defined in this file. + + + + + QmlDesigner::ConnectionViewWidget + + Connections + + + + + QmlDesigner::CrumbleBar + + Save the changes to preview them correctly. + + + + Always save when leaving subcomponent + + + + + QmlDesigner::CurveEditor + + This file does not contain a timeline. <br><br>To create an animation, add a timeline by clicking the + button in the "Timeline" view. + + + + + QmlDesigner::CurveEditorToolBar + + Unify + + + + Start Frame + + + + End Frame + + + + Current Frame + + + + + QmlDesigner::CurveEditorView + + Curves + + + + + QmlDesigner::DebugViewWidget + + Debug + + + + Model Log + + + + Clear + + + + Instance Notifications + + + + Instance Errors + + + + Enabled + 启用 + + + + QmlDesigner::DesignDocument + + Locked items: + + + + Delete/Cut Item + + + + Deleting or cutting this item will modify locked items. + + + + Do you want to continue by removing the item (Delete) or removing it and copying it to the clipboard (Cut)? + + + + + QmlDesigner::DocumentMessage + + Error parsing + 解析错误 + + + Internal error + 内部错误 + + + line %1 + + 行 %1 + + + + column %1 + + 列 %1 + + + + + QmlDesigner::DocumentWarningWidget + + Always ignore these warnings about features not supported by Qt Quick Designer. + + + + Cannot open this QML document because of an error in the QML file: + + + + OK + OK + + + This QML file contains features which are not supported by Qt Quick Designer at: + + + + Ignore + 忽略 + + + Previous + 上一个 + + + Next + 下一个 + + + Go to error + + + + Go to warning + + + + + QmlDesigner::Edit3DView + + 3D + 3D + + + Cameras + + + + Lights + + + + Primitives + + + + Imported Models + + + + Failed to Add Import + + + + Could not add QtQuick3D import to project. + + + + + QmlDesigner::Edit3DWidget + + Your file does not import Qt Quick 3D.<br><br>To create a 3D view, add the <b>QtQuick3D</b> module in the <b>Components</b> view or click <a href="#add_import"><span style="text-decoration:none;color:%1">here</span></a>.<br><br>To import 3D assets, select <b>+</b> in the <b>Assets</b> view. + + + + Edit Material + + + + Delete + 删除 + + + Create + + + + + QmlDesigner::EventListDelegate + + Release + + + + Connect + + + + + QmlDesigner::EventListDialog + + Add Event + + + + Remove Selected Events + + + + + QmlDesigner::EventListModel + + Event ID + + + + Shortcut + 快捷键 + + + Description + 说明 + + + + QmlDesigner::EventListPluginView + + Event List + + + + + QmlDesigner::Experimental::StatesEditorModel + + base state + Implicit default state + + + + Invalid state name + 无效状态名称 + + + The empty string as a name is reserved for the base state. + + + + Name already used in another state + 名称已经被其他状态使用 + + + Root + + + + Invalid ID + + + + %1 already exists. + + + + + QmlDesigner::Experimental::StatesEditorView + + States + 状态 + + + Remove State + + + + This state is not empty. Are you sure you want to remove it? + + + + Locked components: + + + + Removing this state will modify locked components. + + + + Continue by removing the state? + + + + base state + + + + + QmlDesigner::Experimental::StatesEditorWidget + + States New + Title of Editor widget + + + + Cannot Create QtQuick View + + + + StatesEditorWidget: %1 cannot be created.%2 + + + + + QmlDesigner::FilePathModel + + Canceling file preparation. + + + + + QmlDesigner::FormEditorAnnotationIcon + + Annotation + + + + Edit Annotation + + + + Remove Annotation + + + + By: + + + + Edited: + + + + Delete this annotation? + + + + + QmlDesigner::FormEditorView + + 2D + 2D + + + %1 is not supported as the root element by Form Editor. + + + + + QmlDesigner::FormEditorWidget + + No snapping. + + + + Snap to parent or sibling components and generate anchors. + + + + Snap to parent or sibling components but do not generate anchors. + + + + Show bounding rectangles and stripes for empty components. + + + + Override Width + + + + Override width of root component. + + + + Override Height + + + + Override height of root component. + + + + Zoom In + 放大 + + + Zoom Out + 缩小 + + + Zoom screen to fit all content. + + + + Ctrl+Alt+0 + + + + Zoom screen to fit current selection. + + + + Ctrl+Alt+i + + + + Reset View + + + + Export Current QML File as Image + + + + PNG (*.png);;JPG (*.jpg) + + + + + QmlDesigner::GenerateCmake + + Select Files to Generate + + + + Start CMakeFiles.txt generation + + + + Advanced Options + + + + File %1 will be created. + + + + + File %1 will be overwritten. + + + + + This file already exists and will be overwritten. + + + + This file or folder will be created. + + + + Generate CMake Build Files + + + + The project is not properly structured for automatically generating CMake files. + +Aborting process. + +The following files or directories are missing: + +%1 + + + + Cannot Generate CMake Files + + + + + QmlDesigner::GenerateResource + + Generate QRC Resource File + + + + Save Project as QRC File + + + + QML Resource File (*.qrc) + + + + Unable to generate resource file: %1 + + + + A timeout occurred running "%1" + + + + "%1" crashed. + + + + "%1" failed (exit code %2). + + + + Generate Deployable Package + + + + Save Project as Resource + + + + QML Resource File (*.qmlrc);;Resource File (*.rcc) + + + + Generate a resource file out of project %1 to %2 + + + + + QmlDesigner::GlobalAnnotationDialog + + Global Annotation Editor + + + + Global Annotation + + + + All Annotations + + + + + QmlDesigner::GlobalAnnotationEditor + + Global Annotation + + + + Delete this annotation? + + + + + QmlDesigner::GraphicsView + + Open Style Editor + + + + Insert Keyframe + + + + Delete Selected Keyframes + + + + + QmlDesigner::HyperlinkDialog + + Link + 链接 + + + Anchor + + + + + QmlDesigner::InteractiveConnectionManager + + Cannot Connect to QML Emulation Layer (QML Puppet) + + + + The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. + + + + + QmlDesigner::Internal::AssetImportUpdateDialog + + Select Files to Update + + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + + QmlDesigner::Internal::BackendModel + + Type + 类型 + + + Name + + + + Singleton + + + + Local + + + + + QmlDesigner::Internal::BindingModel + + Item + + + + Property + 属性 + + + Source Item + + + + Source Property + + + + Error + 错误 + + + + QmlDesigner::Internal::ConnectionDelegate + + Change to default state + + + + Change state to %1 + + + + Activate FlowAction %1 + + + + + QmlDesigner::Internal::ConnectionModel + + Target + 目标 + + + Signal Handler + 信号处理 + + + Action + 动作 + + + Error + 错误 + + + + QmlDesigner::Internal::ConnectionView + + Connections + + + + + QmlDesigner::Internal::ConnectionViewWidget + + Connections + Title of connections window + + + + Connections + Title of connection tab + + + + Bindings + Title of connection tab + + + + Properties + Title of dynamic properties tab + 属性 + + + Backends + Title of dynamic properties view + + + + Open Connection Editor + + + + Open Binding Editor + + + + Reset Property + + + + Add binding or connection. + + + + Remove selected binding or connection. + + + + + QmlDesigner::Internal::DebugView + + Debug view is enabled + + + + ::nodeReparented: + + + + ::nodeIdChanged: + + + + Debug View + + + + + QmlDesigner::Internal::DesignModeWidget + + &Workspaces + + + + Output + 输出 + + + Switch the active workspace. + + + + Edit global annotation for current file. + + + + Manage... + 管理... + + + Reset Active + + + + + QmlDesigner::Internal::DynamicPropertiesModel + + Item + + + + Property + 属性 + + + Property Type + + + + Property Value + + + + Error + 错误 + + + + QmlDesigner::Internal::MetaInfoPrivate + + Invalid meta info + + + + + QmlDesigner::Internal::MetaInfoReader + + Illegal state while parsing. + + + + No property definition allowed. + + + + Invalid type %1 + + + + Unknown property for Imports %1 + + + + Unknown property for Type %1 + + + + Unknown property for ItemLibraryEntry %1 + + + + Unknown property for Property %1 + + + + Unknown property for QmlSource %1 + + + + Unknown property for ExtraFile %1 + + + + Invalid or duplicate library entry %1 + + + + + QmlDesigner::Internal::ModelPrivate + + Exception thrown by view %1. + + + + + QmlDesigner::Internal::SettingsPage + + Snapping + hard to translate + Snapping + + + Qt Quick Designer + Qt Quick 设计器 + + + Canvas + 画布 + + + Parent component padding: + + + + Sibling component spacing: + + + + Width: + + + + Height: + + + + Enable Smooth Rendering in Form Editor + + + + Smooth Rendering: + + + + Root Component Init Size + + + + Styling + + + + Controls style: + + + + Default style + + + + Reset Style + + + + Controls 2 style: + + + + Default + 默认 + + + Material + + + + Universal + + + + QML Emulation Layer + + + + If you select this radio button, Qt Quick Designer always uses the QML emulation layer (QML Puppet) located at the following path. + + + + Use fallback QML emulation layer + + + + Path: + 路径: + + + Path to the QML emulation layer executable (qmlpuppet). + + + + Resets the path to the built-in QML emulation layer. + + + + Reset Path + + + + Use QML emulation layer that is built with the selected Qt + + + + Top level build path: + + + + Subcomponents + + + + Always save when leaving subcomponent in bread crumb + + + + Warnings + + + + Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. + + + + Warn about unsupported features of .ui.qml files in code editor + + + + Warns about QML features that are not properly supported by the Qt Quick Designer. + + + + Warn about unsupported features in .ui.qml files + + + + Qt Quick Designer will propose to open .ui.qml files instead of opening a .qml file. + + + + Warn about using .qml files instead of .ui.qml files + + + + Internationalization + + + + qsTr() + + + + qsTrId() + + + + qsTranslate() + + + + Features + + + + Enable Timeline editor + + + + Always open ui.qml files in Design mode + + + + Ask for confirmation before deleting asset + + + + Debugging + 调试 + + + Show the debugging view + + + + Show property editor warnings + + + + Forward QML emulation layer output: + + + + Enable the debugging view + + + + Show warn exceptions + + + + Debug QML emulation layer: + + + + Restart Required + + + + The made changes will take effect after a restart of the QML Emulation layer or %1. + + + + + QmlDesigner::InvalidArgumentException + + Failed to create item of type %1 + 无法创建类型为 %1的项目 + + + + QmlDesigner::ItemLibraryAssetImportDialog + + Asset Import + + + + Import Options + + + + Show All Options + + + + Import + 导入 + + + Select import options and press "Import" to import the following files: + + + + Locate 3D Asset "%1" + + + + %1 options + + + + No options available for this type. + + + + No simple options available for this type. + + + + Cancel + 取消 + + + Close + 关闭 + + + Import interrupted. + + + + Import done. + + + + Canceling import. + + + + Hide Advanced Options + + + + + QmlDesigner::ItemLibraryAssetImporter + + Could not create a temporary directory for import. + + + + Importing 3D assets. + + + + Import process crashed. + + + + Import failed for unknown reason. + + + + Asset import process failed: "%1". + + + + Parsing files. + + + + Skipped import of duplicate asset: "%1". + + + + Skipped import of existing asset: "%1". + + + + No files selected for overwrite, skipping import: "%1". + + + + Could not access temporary asset directory: "%1". + + + + Failed to create qmldir file for asset: "%1". + + + + Removing old overwritten assets. + + + + Copying asset files. + + + + Overwrite Existing Asset? + + + + Asset already exists. Overwrite existing or skip? +"%1" + + + + Overwrite Selected Files + + + + Overwrite All Files + + + + Skip + 跳过 + + + Failed to start import 3D asset process. + + + + Failed to start icon generation process. + + + + Generating icons. + + + + Updating data model. + + + + Failed to insert import statement into qml document. + + + + Failed to update imports: %1 + + + + + QmlDesigner::ItemLibraryImport + + Default Components + + + + My Components + + + + My 3D Components + + + + All Other Components + + + + + QmlDesigner::ItemLibraryView + + Components + + + + + QmlDesigner::ItemLibraryWidget + + Components Library + Title of library view + + + + + QmlDesigner::ListModelEditorDialog + + Add Row + + + + Remove Columns + + + + Add Column + + + + Move Down (Ctrl + Down) + + + + Move Up (Ctrl + Up) + + + + Add Property + + + + Property name: + 属性名称: + + + Change Property + + + + Column name: + + + + + QmlDesigner::MaterialBrowserView + + Material Browser + + + + + QmlDesigner::MaterialBrowserWidget + + Material Browser + Title of material browser widget + + + + + QmlDesigner::MaterialEditorContextObject + + <b>Incompatible properties:</b><br> + + + + Change Type + + + + Changing the type from %1 to %2 can't be done without removing incompatible properties.<br><br>%3 + + + + Do you want to continue by removing incompatible properties? + + + + + QmlDesigner::MaterialEditorView + + Cannot Export Property as Alias + + + + Property %1 does already exist for root component. + + + + Material Editor + + + + + QmlDesigner::NavigatorSearchWidget + + Search + 查找 + + + + QmlDesigner::NavigatorTreeModel + + Unknown component: %1 + + + + Toggles whether this component is exported as an alias property of the root component. + + + + Toggles the visibility of this component in the form editor. +This is independent of the visibility property. + + + + Toggles whether this component is locked. +Locked components cannot be modified or selected. + + + + + QmlDesigner::NavigatorTreeView + + Invalid Id + 无效标识符 + + + %1 is an invalid id. + + + + %1 already exists. + + + + + QmlDesigner::NavigatorView + + Navigator + 导航 + + + + QmlDesigner::NavigatorWidget + + Navigator + Title of navigator view + 导航 + + + Become last sibling of parent (CTRL + Left). + + + + Become child of last sibling (CTRL + Right). + + + + Move down (CTRL + Down). + + + + Move up (CTRL + Up). + + + + Filter Tree + 过滤器树形视图 + + + Show Only Visible Components + + + + Reverse Component Order + + + + + QmlDesigner::NodeInstanceView + + Qt Quick emulation layer crashed. + + + + Source item: %1 + + + + B + + + + KB + + + + MB + MB + + + GB + + + + Failed to generate QSB file for: %1 + + + + + QmlDesigner::NodeListModel + + ID + ID + + + Type + 类型 + + + From + + + + To + + + + + QmlDesigner::OpenUiQmlFileDialog + + Open ui.qml file + + + + Do not show this dialog again + + + + Cancel + 取消 + + + You are opening a .qml file in the designer. Do you want to open a .ui.qml file instead? + + + + + QmlDesigner::PathItem + + Closed Path + + + + Split Segment + + + + Make Curve Segment Straight + + + + Remove Edit Point + + + + + QmlDesigner::PresetEditor + + Save Preset + + + + Name + + + + + QmlDesigner::PresetList + + Add Preset + + + + Delete Selected Preset + + + + + QmlDesigner::PropertyEditorContextObject + + Invalid Type + + + + %1 is an invalid type. + + + + + QmlDesigner::PropertyEditorView + + Properties + 属性 + + + Invalid ID + + + + %1 already exists. + + + + Cannot Export Property as Alias + + + + Property %1 does already exist for root component. + + + + + QmlDesigner::PuppetBuildProgressDialog + + Build Progress + + + + Building Adapter for the current Qt. Happens only once for every Qt installation. + + + + Open error output file + + + + Use Fallback QML Emulation Layer + + + + OK + OK + + + + QmlDesigner::PuppetDialog + + Dialog + 对话框 + + + + QmlDesigner::QmlDesignerPlugin + + Cannot Open Design Mode + + + + The QML file is not currently opened in a QML Editor. + + + + License: Enterprise + + + + License: Professional + + + + Licensee: %1 + + + + + QmlDesigner::QmlModelNodeProxy + + multiselection + + + + + QmlDesigner::QmlPreviewWidgetPlugin + + Show Live Preview + + + + + QmlDesigner::RichTextEditor + + &Undo + 撤销(&U) + + + &Redo + + + + &Bold + + + + &Italic + + + + &Underline + + + + Select Image + + + + Image files (*.png *.jpg) + + + + Insert &Image + + + + Hyperlink Settings + + + + &Left + + + + C&enter + + + + &Right + + + + &Justify + + + + Bullet List + + + + Numbered List + + + + &Color... + + + + &Table Settings + + + + Create Table + + + + Remove Table + + + + Add Row + + + + Add Column + + + + Remove Row + + + + Remove Column + + + + Merge Cells + + + + Split Row + + + + Split Column + + + + + QmlDesigner::SetFrameValueDialog + + Edit Keyframe + + + + Frame + + + + + QmlDesigner::ShortCutManager + + Export as &Image... + + + + &Undo + 撤销(&U) + + + &Redo + + + + Delete + 删除 + + + Cu&t + + + + &Copy + 复制(&C) + + + &Paste + 粘贴(&P) + + + Select &All + + + + Save %1 As... + + + + &Save %1 + 保存%1(&S) + + + Revert %1 to Saved + 恢复%1 到已保存的状态 + + + Close %1 + + + + Close All Except %1 + + + + Close Others + 关闭其他 + + + + QmlDesigner::SignalList + + Signal List for %1 + + + + + QmlDesigner::SignalListDelegate + + Release + + + + Connect + + + + + QmlDesigner::SignalListModel + + Item ID + + + + Signal + 信号 + + + + QmlDesigner::SourceTool + + Open File + 打开文件 + + + Source Tool + + + + + QmlDesigner::SplineEditor + + Delete Point + + + + Smooth Point + + + + Corner Point + + + + Add Point + + + + Reset Zoom + 重置缩放 + + + + QmlDesigner::StatesEditorModel + + base state + Implicit default state + 基线状态 + + + The empty string as a name is reserved for the base state. + 空字符串是为基线状态保留的名称。 + + + Name already used in another state. + 名称已经被另一个状态使用。 + + + Invalid State Name + + + + + QmlDesigner::StatesEditorView + + base state + 基线状态 + + + States + 状态 + + + Remove State + + + + This state is not empty. Are you sure you want to remove it? + + + + Locked components: + + + + Removing this state will modify locked components. + + + + Continue by removing the state? + + + + + QmlDesigner::StatesEditorWidget + + States + Title of Editor widget + 状态 + + + Cannot Create QtQuick View + + + + StatesEditorWidget: %1 cannot be created.%2 + + + + + QmlDesigner::SubComponentManager + + My 3D Components + + + + + QmlDesigner::SwitchLanguageComboboxAction + + Switch the language used by preview. + + + + Default + 默认 + + + + QmlDesigner::TextEditorView + + Trigger Completion + + + + Meta+Space + Meta+Space + + + Ctrl+Space + Ctrl+Space + + + Code + 代码 + + + + QmlDesigner::TextToModelMerger + + No import statements found. + + + + Qt Quick 6 is not supported with a Qt 5 kit. + + + + The Design Mode requires a valid Qt kit. + + + + Unsupported Qt Quick version. + + + + No import for Qt Quick found. + + + + + QmlDesigner::TimelineAnimationForm + + Number of times the animation runs before it stops. + + + + Loops: + + + + Sets the animation to loop indefinitely. + + + + Continuous + + + + none + + + + Animation Settings + + + + Name for the animation. + + + + Animation ID: + + + + State to activate when the animation finishes. + + + + Finished: + + + + Runs the animation backwards to the beginning when it reaches the end. + + + + Ping pong + + + + Transition to state: + + + + animation02 + + + + Runs the animation automatically when the base state is active. + + + + Running in base state + + + + First frame of the animation. + + + + Start frame: + + + + Length of the animation in milliseconds. If you set a shorter duration than the number of frames, frames are left out from the end of the animation. + + + + Duration: + 持续时间: + + + Last frame of the animation. + + + + End frame: + + + + Invalid Id + 无效标识符 + + + %1 is an invalid id. + + + + %1 already exists. + + + + Base State + + + + + QmlDesigner::TimelineForm + + Last frame of the timeline. + + + + End frame: + + + + First frame of the timeline. Negative numbers are allowed. + + + + Start frame: + + + + To create an expression binding animation, delete all animations from this timeline. + + + + Expression binding + + + + Name for the timeline. + + + + Timeline ID: + + + + Timeline Settings + + + + Animation + 动画 + + + Sets the expression to bind the current keyframe to. + + + + Expression binding: + + + + Invalid Id + 无效标识符 + + + %1 is an invalid id. + + + + %1 already exists. + + + + + QmlDesigner::TimelinePropertyItem + + Previous Frame + + + + Next Frame + + + + Auto Record + + + + Insert Keyframe + + + + Delete Keyframe + + + + Edit Easing Curve... + + + + Edit Keyframe... + + + + Remove Property + + + + + QmlDesigner::TimelineSettingsDialog + + Timeline Settings + + + + Add Timeline + + + + Remove Timeline + + + + Add Animation + + + + Remove Animation + + + + No Timeline + + + + No Animation + + + + + QmlDesigner::TimelineSettingsModel + + None + + + + State + 状态 + + + Timeline + 时间轴 + + + Animation + 动画 + + + Fixed Frame + + + + Base State + + + + Error + 错误 + + + + QmlDesigner::TimelineToolBar + + Base State + + + + Timeline Settings + + + + To Start + + + + Previous + 上一个 + + + Play + + + + Next + 下一个 + + + To End + + + + Loop Playback + + + + Playback Speed + + + + Auto Key + + + + Easing Curve Editor + + + + Curve Editor + + + + Zoom Out + 缩小 + + + Zoom In + 放大 + + + + QmlDesigner::TimelineView + + Timeline + 时间轴 + + + + QmlDesigner::TimelineWidget + + Timeline + Title of timeline view + 时间轴 + + + Add Timeline + + + + This file does not contain a timeline. <br><br>To create an animation, add a timeline by clicking the + button. + + + + To edit the timeline settings, click + + + + + QmlDesigner::TransitionEditorSettingsDialog + + Transition Settings + + + + Add Transition + + + + Remove Transition + + + + No Transition + + + + + QmlDesigner::TransitionEditorToolBar + + Transition Settings + + + + Easing Curve Editor + + + + Curve Editor + + + + Zoom Out + 缩小 + + + Zoom In + 放大 + + + + QmlDesigner::TransitionEditorView + + No States Defined + + + + There are no states defined in this component. + + + + No Property Changes to Animate + + + + To add transitions, first change the properties that you want to animate in states (%1). + + + + Transitions + + + + + QmlDesigner::TransitionEditorWidget + + Transition + Title of transition view + + + + Add Transition + + + + This file does not contain transitions. <br><br> To create an animation, add a transition by clicking the + button. + + + + To edit the transition settings, click + + + + + QmlDesigner::TransitionForm + + Timeline Settings + + + + Transition ID: + + + + From + + + + To + + + + Invalid ID + + + + %1 is an invalid ID. + + + + %1 already exists. + + + + + QmlDesigner::TransitionTool + + Add Transition + + + + Remove Transitions + + + + Remove All Transitions + + + + Do you really want to remove all transitions? + + + + Remove Dangling Transitions + + + + Transition Tool + + + + + QmlDesignerAddResources + + Image Files + + + + Font Files + + + + Sound Files + + + + Video Files + + + + Shader Files + + + + 3D Assets + + + + Qt 3D Studio Presentations + + + + Add Custom Effect + + + + + QmlDesignerContextMenu + + Selection + 选择 + + + Connections + + + + Connect + + + + Select Effect + + + + Arrange + + + + Edit + 编辑 + + + Anchors + 锚点 + + + Position + 位置 + + + Group + + + + Layout + + + + Flow + 流程 + + + Flow Effects + + + + Stacked Container + + + + Cut + 剪切 + + + Copy + 复制 + + + Paste + 粘贴 + + + Delete Selection + + + + Bring to Front + + + + Send to Back + + + + Bring Forward + + + + Send Backward + + + + Undo + 撤销 + + + Redo + 重做 + + + Visibility + 可见性 + + + Reset Size + 重置尺寸 + + + Reset Position + 重置位置 + + + Copy Formatting + + + + Apply Formatting + + + + Go into Component + 进入组件 + + + Merge File With Template + + + + Go to Implementation + + + + Add New Signal Handler + + + + Move Component into Separate File + 将组件移到独立文件中 + + + Edit Material + + + + Edit Annotation + + + + Add Mouse Area + + + + Open Signal Dialog + + + + Update 3D Asset + + + + Set Id + + + + Reset z Property + + + + Reverse + + + + Fill + 填充 + + + Reset + 重置 + + + Position in Column + + + + Position in Row + + + + Position in Grid + + + + Position in Flow + + + + Remove Positioner + + + + Create Flow Action + + + + Set Flow Start + + + + Remove Layout + + + + Group in GroupItem + + + + Remove GroupItem + + + + Add Component + + + + Add Tab Bar + + + + Increase Index + + + + Decrease Index + + + + Layout in Column Layout + + + + Layout in Row Layout + + + + Layout in Grid Layout + + + + Fill Width + + + + Fill Height + + + + Raise selected component. + + + + Lower selected component. + + + + Reset size and use implicit size. + + + + Reset position and use implicit position. + + + + Copy formatting. + + + + Apply formatting. + + + + Fill selected component to parent. + + + + Reset anchors for selected component. + + + + Layout selected components in column layout. + + + + Layout selected components in row layout. + + + + Layout selected components in grid layout. + + + + Increase index of stacked container. + + + + Decrease index of stacked container. + + + + Add component to stacked container. + + + + Add flow action. + + + + Edit List Model... + + + + Select parent: %1 + 选择父节点: %1 + + + Select: %1 + 选择: %1 + + + Open Connections Editor + + + + Remove This Handler + + + + Add Signal Handler + + + + Connect: %1 + + + + Timeline + 时间轴 + + + Copy All Keyframes + + + + Paste Keyframes + + + + Add Keyframes at Current Frame + + + + Delete All Keyframes + + + + + QmlDesignerTimeline + + Playhead frame %1 + + + + Keyframe %1 + + + + + QmlEditorWidgets::ContextPaneWidget + + Hides this toolbar. + 隐藏这个工具条. + + + Pin Toolbar + 钉住工具栏 + + + Show Always + 总是显示 + + + Unpins the toolbar and moves it to the default position. + 解除工具栏停靠并移动到默认位置。 + + + Hides this toolbar. This toolbar can be permanently disabled in the options page or in the context menu. + 隐藏这个工具栏。该工具栏可在选项页或上下文菜单中永久禁用。 + + + + QmlEditorWidgets::ContextPaneWidgetImage + + Double click for preview. + + + + + QmlEditorWidgets::FileWidget + + Open File + 打开文件 + + + + QmlEngine + + JS Source for %1 + %1的JS源码 + + + Anonymous Function + 匿名函数 + + + + QmlJS::Bind + + package import requires a version number + 导入包需要版本号 + + + Hit maximal recursion depth in AST visit. + + + + Nested inline components are not supported + + + + + QmlJS::Check + + 'int' or 'real' + '整数' 或 '实数' + + + + QmlJS::Link + + File or directory not found. + + + + QML module not found (%1). + +Import paths: +%2 + +For qmake projects, use the QML_IMPORT_PATH variable to add import paths. +For Qbs projects, declare and set a qmlImportPaths property in your product to add import paths. +For qmlproject projects, use the importPaths property to add import paths. +For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt. +For qmlRegister... calls, make sure that you define the Module URI as a string literal. + + + + + Implicit import '%1' of QML module '%2' not found. + +Import paths: +%3 + +For qmake projects, use the QML_IMPORT_PATH variable to add import paths. +For Qbs projects, declare and set a qmlImportPaths property in your product to add import paths. +For qmlproject projects, use the importPaths property to add import paths. +For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt. + + + + + QML module contains C++ plugins, currently reading type information... %1 + + + + + QmlJS::ModelManagerInterface + + Parsing QML Files + + + + Scanning QML Imports + + + + + QmlJS::PluginDumper + + QML module does not contain information about components contained in plugins. + +Module path: %1 +See "Using QML Modules with Plugins" in the documentation. + + + + Automatic type dump of QML module failed. +Errors: +%1 + 自动 类型转储 QML 模块失败。 +错误: +%1 + {1?} + + + Automatic type dump of QML module failed. +First 10 lines or errors: + +%1 +Check General Messages for details. + + + + Warnings while parsing QML type information of %1: +%2 + + + + "%1" failed to start: %2 + + + + "%1" crashed. + + + + "%1" timed out. + + + + I/O error running "%1". + + + + "%1" returned exit code %2. + + + + Arguments: %1 + + + + Failed to parse "%1". +Error: %2 + + + + Errors while reading typeinfo files: + 读取typeinfo文件发生错误: + + + Could not locate the helper application for dumping type information from C++ plugins. +Please build the qmldump application on the Qt version options page. + 无法定位助手应用来从C++插件转储类型信息。 +请在Qt 版本选项页面构建 qmldump应用。 + + + + QmlJS::QrcParser + + XML error on line %1, col %2: %3 + XML 错误 在第 %1行, %2列: %3 + + + The <RCC> root element is missing. + + + + + QmlJS::SimpleAbstractStreamReader + + Cannot find file %1. + + + + Could not parse document. + + + + Expected document to contain a single object definition. + + + + Expected expression statement after colon. + + + + + QmlJS::SimpleReader + + Property is defined twice, previous definition at %1:%2 + + + + + QmlJS::StaticAnalysisMessages + + Do not use "%1" as a constructor. + +For more information, see the "Checking Code Syntax" documentation. + + + + Invalid value for enum. + + + + Enum value must be a string or a number. + + + + Number value expected. + + + + Boolean value expected. + + + + String value expected. + + + + Invalid URL. + + + + File or directory does not exist. + + + + Invalid color. + + + + Anchor line expected. + + + + Duplicate property binding. + + + + Id expected. + + + + Invalid id. + + + + Duplicate id. + + + + Invalid property name "%1". + + + + "%1" does not have members. + + + + "%1" is not a member of "%2". + + + + Assignment in condition. + + + + Unterminated non-empty case block. + + + + Do not use 'eval'. + + + + Unreachable. + + + + Do not use 'with'. + + + + Do not use comma expressions. + + + + "%1" already is a formal parameter. + + + + Unnecessary message suppression. + + + + "%1" already is a function. + + + + var "%1" is used before its declaration. + + + + "%1" already is a var. + + + + "%1" is declared more than once. + + + + Function "%1" is used before its declaration. + + + + The 'function' keyword and the opening parenthesis should be separated by a single space. + + + + Do not use stand-alone blocks. + + + + Do not use void expressions. + + + + Confusing pluses. + + + + Confusing minuses. + + + + Declare all function vars on a single line. + + + + Unnecessary parentheses. + + + + == and != may perform type coercion, use === or !== to avoid it. + + + + Expression statements should be assignments, calls or delete expressions only. + + + + Place var declarations at the start of a function. + + + + Use only one statement per line. + + + + Unknown component. + + + + Could not resolve the prototype "%1" of "%2". + + + + Could not resolve the prototype "%1". + + + + Prototype cycle, the last non-repeated component is "%1". + + + + Invalid property type "%1". + + + + == and != perform type coercion, use === or !== to avoid it. + + + + Calls of functions that start with an uppercase letter should use 'new'. + + + + Use 'new' only with functions that start with an uppercase letter. + + + + Use spaces around binary operators. + + + + Unintentional empty block, use ({}) for empty object literal. + + + + Use %1 instead of 'var' or 'variant' to improve performance. + + + + Missing property "%1". + + + + Object value expected. + + + + Array value expected. + + + + %1 value expected. + + + + Maximum number value is %1. + + + + Minimum number value is %1. + + + + Maximum number value is exclusive. + + + + Minimum number value is exclusive. + + + + String value does not match required pattern. + + + + Minimum string value length is %1. + + + + Maximum string value length is %1. + + + + %1 elements expected in array value. + + + + Imperative code is not supported in Qt Design Studio. + + + + This type (%1) is not supported in Qt Design Studio. + + + + Reference to parent item cannot be resolved correctly by Qt Design Studio. + + + + This visual property binding cannot be evaluated in the local context and might not show up in Qt Design Studio as expected. + + + + Qt Design Studio only supports states in the root item. + + + + This id might be ambiguous and is not supported in Qt Design Studio. + + + + This type (%1) is not supported as a root element by Qt Design Studio. + + + + This type (%1) is not supported as a root element of a UI file (.ui.qml). + + + + This type (%1) is not supported in a UI file (.ui.qml). + + + + Functions are not supported in a UI file (.ui.qml). + + + + JavaScript blocks are not supported in a UI file (.ui.qml). + + + + Behavior type is not supported in a UI file (.ui.qml). + + + + States are only supported in the root item in a UI file (.ui.qml). + + + + Referencing the parent of the root item is not supported in a UI file (.ui.qml). + + + + Do not mix translation functions in a UI file (.ui.qml). + + + + A State cannot have a child item (%1). + + + + Duplicate import (%1). + + + + Hit maximum recursion limit when visiting AST. + + + + Type cannot be instantiated recursively (%1). + + + + Logical value does not depend on actual values. + + + + Components are only allowed to have a single child element. + + + + Components require a child element. + + + + Do not reference the root item as alias. + + + + Avoid referencing the root item in a hierarchy. + + + + + QmlJS::TypeDescriptionReader + + Errors while loading qmltypes from %1: +%2 + %1导入qmltypes时发生错误: +%2 + + + Warnings while loading qmltypes from %1: +%2 + %1导入qmltypes时发生警告: +%2 + + + Could not parse document. + + + + Expected a single import. + + + + Expected import of QtQuick.tooling. + + + + Major version different from 1 not supported. + + + + Expected document to contain a single object definition. + + + + Expected document to contain a Module {} member. + + + + Expected dependency definitions + + + + Component definition is missing a name binding. + + + + ModuleApi definition has no or invalid version binding. + + + + Method or signal is missing a name script binding. + + + + Expected script binding. + + + + Property object is missing a name or type script binding. + + + + Expected string after colon. + + + + Expected boolean after colon. + + + + Expected true or false after colon. + + + + Expected numeric literal after colon. + + + + Expected integer after colon. + + + + Expected array of strings after colon. + + + + Expected array literal with only string literal members. + + + + Expected string literal to contain 'Package/Name major.minor' or 'Name major.minor'. + + + + Expected array of numbers after colon. + + + + Expected array literal with only number literal members. + + + + Meta object revision without matching export. + + + + Expected integer. + + + + Expected object literal after colon. + + + + Expected expression after colon. + + + + Expected strings as enum keys. + + + + Expected either array or object literal as enum definition. + QmlJSEditor + + Run Checks + 运行检查 + + + Ctrl+Shift+C + Ctrl+Shift+C + + + Reformat File + 重新格式化文件 + + + QML + QML + + + QML Analysis + QML 分析 + + + Show Qt Quick Toolbar + 显示Qt Quick工具栏 + + + Library at %1 + %1 is library path + %1中的库 + + + Dumped plugins successfully. + 成功读取插件。 + + + Read typeinfo files successfully. + 读取typeinfo文件成功。 + + + Qt Quick Toolbars + Qt Quick工具栏 + + + Always show Qt Quick Toolbar + 总是显示Qt Quick工具栏 + + + Pin Qt Quick Toolbar + 钉住Qt Quick工具栏 + + + Move Component into Separate File + 将组件移到独立文件中 + + + Path: + 路径: + + + Component name: + 组件名: + + + QML/JS Usages: + QML/JS 使用: + + + Show All Bindings + 显示所有绑定 + + + Split Initializer + 分离初始化 + + + Show Qt Quick ToolBar + 显示Qt Quick工具栏 + + + Refactoring + 重构 + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + Add a Comment to Suppress This Message 添加一个说明掩盖此消息 @@ -46403,69 +39602,366 @@ Remote stderr was: %1 Wrap Component in Loader 在加载器中包含组件 + + Component Name + + + + ui.qml file + + + + Property assignments for %1: + + + + Invalid component name. + + + + Invalid path. + + + + Component already exists. + + + + Enable auto format on file save + + + + Restrict to files contained in the current project + + + + Auto-fold auxiliary data + + + + Always Ask + 总是询问 + + + Qt Design Studio + + + + Qt Creator + Qt Creator + + + Automatic Formatting on File Save + + + + Features + + + + Open .ui.qml files with: + + + + QML/JS Editing + + + + Code Model Not Available + + + + Code model not available. + + + + Code Model of %1 + + + + This file should only be edited in <b>Design</b> mode. + + + + Switch Mode + + + + QML + SnippetProvider + QML + + + Inspect API for Element Under Cursor + + + + Searching for Usages + + + + Code Model Warning + + + + Code Model Error + + // TODO: Move position bindings from the component to the Loader. -// Check all uses of 'parent' inside the root element of the component. - - // 待完成: 将位置绑定从组件移动到装载器。 -// 检查所有在组件的根元素中使用的'parent'。 - +// Check all uses of 'parent' inside the root element of the component. + - // Rename all outer uses of the id '%1' to '%2.item'. - - // 将所有id '%1"的外部应用重命名为'%2.item'。 - + // Rename all outer uses of the id "%1" to "%2.item". + - // Rename all outer uses of the id '%1' to '%2.item.%1'. + // Rename all outer uses of the id "%1" to "%2.item.%1". - // 将所有id '%1"的外部应用重命名为'%2.item.%1'。 - + QmlJSTools - Cu&t - 剪切 + Code Style + 代码风格 - Select &All - 全选 + Qt Quick + Qt Quick - Console - 控制台 + &QML/JS + &QML/JS - &Show in Editor - 在编辑器中显示(&S) + Reset Code Model + 重置代码模型 - The type will only be available in Qt Creator's QML editors when the type name is a string literal - 仅在类型名称为字符串时该类型才能在Qt Creator 中的 QML编辑器中使用 + Qt + Qt - The module URI cannot be determined by static analysis. The type will be available + Old Creator + 旧的 Creator + + + Qml JS Code Style + + + + &Line length: + + + + QML Functions + + + + + QmlJSTools::FindExportedCppTypes + + The type will only be available in the QML editors when the type name is a string literal. + + + + The module URI cannot be determined by static analysis. The type will not be available globally in the QML editor. You can add a "// @uri My.Module.Uri" annotation to let -Qt Creator know about a likely URI. - 模块的URI 无法通过静态分析来决定。类型将在QML编辑器中全局可用。 -您可以添加 "// @uri My.Module.Uri" 注释来让 -Qt Creator 知道一个相似的URI。 +the QML editor know about a likely URI. + must be a string literal to be available in the QML editor - 必须是一个在 QML 编辑器中可用的字符串文字 + + + + + QmlJSTools::QmlJSToolsSettings + + Global + Settings + + + + + QmlManager + + <Current File> + <当前文件> + + + + QmlParser + + Unclosed string at end of line + 在行尾有未关闭的字符串 + + + Illegal unicode escape sequence + 非法的unicode转义序列 + + + Illegal syntax for exponential number + 指数语法无效 + + + Unterminated regular expression literal + 正则表达式未结束 + + + Invalid regular expression flag '%0' + 无效的正则表达式标志 '%0' + + + Unterminated regular expression backslash sequence + 正则表达式反斜杠序列未结束 + + + Unterminated regular expression class + 正则表达式类未结束 + + + Unexpected token `%1' + 未预料到的符号 `%1' + + + Expected token `%1' + 预计符号 `%1' + + + Syntax error + 语法错误 + + + Unexpected token '.' + + + + Stray newline in string literal + + + + End of file reached at escape sequence + + + + Illegal hexadecimal escape sequence + + + + Octal escape sequences are not allowed + + + + At least one hexadecimal digit is required after '0%1' + + + + At least one octal digit is required after '0%1' + + + + At least one binary digit is required after '0%1' + + + + Decimal numbers can't start with '0' + + + + Imported file must be a script + + + + Invalid module URI + + + + Incomplete version number (dot but no minor) + + + + File import requires a qualifier + + + + Module import requires a qualifier + + + + Invalid import qualifier + + + + + QmlPreview::QmlPreviewPlugin + + QML Preview + + + + Preview File + QmlProfiler - Could not connect to the in-process QML profiler. -Do you want to retry? - 无法连接到进程内的QML分析器。 -您想重试吗? + QML Profiler + QML 分析器(Profiler) + + + &Port: + 端口(&P): + + + QML Profiler Options + QML 分析器选项 + + + The QML Profiler can be used to find performance bottlenecks in applications using QML. + QML分析器可被用于找到使用QML的应用程序的性能瓶颈。 + + + %1 s + %1秒 + + + Elapsed: %1 + 逝去: %1 + + + Application finished before loading profiled data. +Please use the stop button instead. + 应用程序在载入分析数据之前已经结束。 +请使用“停止”按钮。 + + + Load QML Trace + 载入QML 追踪文件 + + + Save QML Trace + 保存 QML 追踪文件 + + + Discard data + 丢弃数据 + + + Painting + 绘制中 + + + Compiling + 编译中 + + + Creating + 创建中 Source code not available @@ -46475,50 +39971,10 @@ Do you want to retry? <bytecode> <字节码> - - Animation Timer Update - 动画定时器更新 - - - <Animation Update> - <动画更新> - - - <program> - <程序> - Main Program 主程序 - - %1 animations at %2 FPS - %1 以 %2 FPS的速度动画 - - - No data to save - 没有数据需要保存 - - - Could not open %1 for writing - 无法打开%1来写入 - - - Could not open %1 for reading - 无法打开%1来读取 - - - Error while parsing %1 - 解析 %1 发生错误 - - - Invalid version of QML Trace file. - QML追踪文件的版本无效。 - - - Trace information from the v8 JavaScript engine. Available only in Qt5 based applications. - 从v8 JavaScript引擎中追踪信息。仅在基于Qt5的应用程序中可用。 - Copy Row 复制行 @@ -46531,14 +39987,6 @@ Do you want to retry? Extended Event Statistics 扩展的事件统计数据 - - Limit Events Pane to Current Range - 限制事件窗口为当前的范围 - - - Reset Events Pane - 重置事件窗口 - Location 路径 @@ -46587,40 +40035,6 @@ Do you want to retry? Details 详情 - - (Opt) - (优化的) - - - Binding is evaluated by the optimized engine. - 绑定由优化的引擎求值。 - - - Binding not optimized (e.g. has side effects or assignments, -references to elements in other files, loops, etc.) - 绑定未优化(例如有副作用或者是在其他文件、循环中 -对元素的赋值、引用,等等) - - - Binding loop detected. - 检测到循环绑定。 - - - µs - 微秒 - - - ms - 毫秒 - - - s - - - - Paint - 绘制 - Compile 编译 @@ -46637,10 +40051,6 @@ references to elements in other files, loops, etc.) Signal 信号 - - Part of binding loop. - 循环绑定的一部分。 - Callee 被调用者 @@ -46657,10 +40067,6 @@ references to elements in other files, loops, etc.) Caller Description 调用者的说明 - - Loading data - 正在载入数据 - Profiling application 正在分析应用程序 @@ -46669,38 +40075,10 @@ references to elements in other files, loops, etc.) No QML events recorded 没有QML事件被记录 - - Application stopped before loading all data - 在载入数据之前应用程序停止 - - - Jump to previous event - 跳到上一个事件 - - - Jump to next event - 跳到下一个事件 - - - Show zoom slider - 显示缩放滑动条 - - - Select range - 选择范围 - - - View event information on mouseover - 在鼠标悬停时查看事件信息 - Reset Zoom 重置缩放 - - Events - 事件 - Timeline 时间轴 @@ -46709,228 +40087,784 @@ references to elements in other files, loops, etc.) JavaScript JavaScript - - - Qnx - Starting: "%1" %2 - 正在启动 "%1" %2 - + Allocations + + + + Memory + + + + Various Events + + + + others + + + + Debug Message + + + + Warning Message + + + + Critical Message + + + + Fatal Message + + + + Info Message + + + + Unknown Message %1 + + + + Timestamp + + + + Message + 消息 + + + Could not re-read events from temporary trace file: %1 + + + + Flame Graph + + + + Show Full Range + + + + Reset Flame Graph + + + + Mouse Events + + + + Keyboard Events + + + + Key Press + + + + Key Release + + + + Key + 密钥 + + + Modifiers + + + + Double Click + + + + Mouse Press + + + + Mouse Release + + + + Button + + + + Result + 结果 + + + Mouse Move + + + + X + + + + Y + + + + Mouse Wheel + + + + Angle X + + + + Angle Y + + + + Keyboard Event + + + + Mouse Event + + + + Unknown + 未知 + + + Memory Allocation + + + + Memory Usage + + + + Memory Allocated + + + + Memory Freed + + + + Total + + + + %n byte(s) + + + + + + Allocated + + + + Deallocated + + + + Deallocations + + + + Heap Allocation + + + + Large Item Allocation + + + + Heap Usage + + + + Cache Size + + + + Image Cached + + + + Image Loaded + + + + Load Error + + + + Duration + 持续时间 + + + File + 文件 + + + Width + 宽度 + + + Height + 高度 + + + QML Profiler (Attach to Waiting Application) + + + + Animations + + + + GUI Thread + + + + Render Thread + + + + Framerate + + + + Context + + + + Start QML Profiler + + + + Select an externally started QML-debug enabled application.<p>Commonly used command-line arguments are: + + + + Kit: + + + + Pixmap Cache + + + + Scene Graph + + + + Handling Signal + + + + Input Events + + + + Debug Messages + + + + Quick3D + + + + Failed to replay QML events from stash file. + + + + anonymous function + + + + Cannot open temporary trace file to store events. + + + + Failed to reset temporary trace file. + + + + Failed to flush temporary trace file. + + + + Could not re-open temporary trace file. + + + + Read past end in temporary trace file. + + + + QML Profiler Settings + + + + Flush data while profiling: + + + + Periodically flush pending data to the profiler. This reduces the delay when loading the +data and the memory usage in the application. It distorts the profile as the flushing +itself takes time. + + + + Flush interval (ms): + + + + Process data only when process ends: + + + + Only process data when the process being profiled ends, not when the current recording +session ends. This way multiple recording sessions can be aggregated in a single trace, +for example if multiple QML engines start and stop sequentially during a single run of +the program. + + + + Analyzer + 分析器 + + + Profiling application: %n events + + + + + + Loading buffered data: %n events + + + + + + Loading offline data: %n events + + + + + + Waiting for data + + + + Main program + + + + +%1 in recursive calls + + + + called recursively + + + + Statistics + + + + Search timeline event notes. + + + + Hide or show event categories. + + + + Disable Profiling + + + + Enable Profiling + + + + A QML Profiler analysis is still in progress. + + + + Start QML Profiler analysis. + + + + The application finished before a connection could be established. No data was loaded. + + + + Could not connect to the in-process QML profiler within %1 s. +Do you want to retry and wait %2 s? + + + + Failed to connect. + + + + QML traces (*%1 *%2) + + + + Saving Trace Data + + + + Loading Trace Data + + + + You are about to discard the profiling data, including unsaved notes. Do you want to continue? + + + + Starting a new profiling session will discard the previous data, including unsaved notes. +Do you want to save the data first? + + + + Error while parsing trace data file: %1 + + + + Invalid magic: %1 + + + + Unknown data stream version: %1 + + + + Excessive number of event types: %1 + + + + Invalid type index %1 + + + + Corrupt data before position %1. + + + + Error writing trace file. + + + + Could not re-read events from temporary trace file: %1 +Saving failed. + + + + Analyze Current Range + + + + Analyze Full Range + + + + Render Frame + + + + Synchronize Frame + + + + Prepare Frame + + + + Mesh Load + + + + Custom Mesh Load + + + + Texture Load + + + + Generate Shader + + + + Load Shader + + + + Particle Update + + + + Mesh Memory consumption + + + + Texture Memory consumption + + + + Mesh Unload + + + + Custom Mesh Unload + + + + Texture Unload + + + + Unknown Unload Message %1 + + + + Description + 说明 + + + Count + + + + Draw Calls + + + + Render Passes + + + + Total Memory Usage + + + + Render Thread Details + + + + Polish + + + + Wait + + + + GUI Thread Sync + + + + Render Thread Sync + + + + Render + + + + Swap + + + + Render Preprocess + + + + Render Update + + + + Render Bind + + + + Render Render + + + + Material Compile + + + + Glyph Render + + + + Glyph Upload + + + + Texture Bind + + + + Texture Convert + + + + Texture Swizzle + + + + Texture Upload + + + + Texture Mipmap + + + + Texture Delete + + + + Stage + + + + Glyphs + - Qnx + QmlProjectManager::Internal::QmlProjectPlugin - Launching application failed - 程序启动失败 + Qt Design Studio + - Cannot show debug output. Error: %1 - 无法显示调试输出。错误: %1 + No project file (*.qmlproject) found for Qt Design Studio. +Qt Design Studio requires a .qmlproject based project to open the .ui.qml file. + + + + Set as Main .qml File + + + + Set as Main .ui.qml File + - Qnx + QmlProjectManager::QmlBuildSystem - Create BAR packages - 创建BAR包 + Error while loading project file %1. + 载入项目文件%1时发生错误。 - Could not find packager command '%1' in the build environment - 在构建环境中找不到打包命令'%1' - - - No packages enabled for deployment - 没有设置为可供部署的包 - - - Application descriptor file not specified, please check deployment settings - 没有指定应用程序的描述符文件。请检查您的部署设定 - - - No package specified, please check deployment settings - 未指定包,请检查部署设定 - - - Could not create build directory '%1' - 无法创建构建目录'%1' - - - Error preparing application descriptor file - 准备程序描述符文件时发生错误 - - - Could not open '%1' for reading - 无法打开'%1'来读取 - - - Could not create prepared application descriptor file in '%1' - 无法在 '%1'中创建准备好的应用程序描述符文件 + Warning while loading project file %1. + 载入项目文件 %1时收到警告信息。 - Qnx + QmlProjectManager::QmlMainFileAspect - <b>Create packages</b> - <b>创建包</b> - - - Enabled - 启用 - - - Application descriptor file - 应用程序描述符文件 - - - Package - + Main QML file: + - Qnx + QmlProjectManager::QmlMultiLanguageAspect - Deploy packages - 部署包 + Use MultiLanguage in Form Editor. + - Could not find deploy command '%1' in the build environment - 在构建环境中找不到部署命令 '%1' - - - No hostname specified for device - 未指定设备的主机名 - - - Package '%1' does not exist. Create the package first. - 包 '%1'不存在。请先创建包。 + Reads translations from MultiLanguage plugin. + - Qnx + QmlProjectManager::QmlProject - <b>Deploy packages</b> - <b>部署包</b> + No Qt version set in kit. + 构建套件中未设置Qt版本。 + + + Kit has no device. + + + + Qt version is too old. + + + + Qt version has no QML utility. + + + + Non-desktop Qt is used with a desktop device. + - Qnx + QmlProjectManager::QmlProjectFileFormat - Deploy Package - 部署包 + Invalid root element: %1 + - Qnx + QmlProjectManager::QmlProjectRunConfiguration - BlackBerry - 黑莓 - - - - Qnx - - BlackBerry Device - 黑莓设备 - - - - Qnx - - New BlackBerry Device Configuration Setup - 新黑莓设备配置设置 + QML Runtime + QML运行环境 - Failure to Save Key File - 保存密钥文件失败 + QML Viewer: + - Failed to create directory: '%1'. - 创建目录失败:'%1'。 + System Environment + 系统环境变量 - Private key file already exists: '%1' - 私钥文件已经存在: '%1' + Clean Environment + - Public key file already exists: '%1' - 公钥文件已经存在: '%1' - - - - Qnx - - Setup Finished - 设置完成 + QML Utility + QMLRunConfiguration display name. + - The new device configuration will now be created. - 新设备配置将会被创建。 - - - - Qnx - - BlackBerry %1 - Qt Version is meant for BlackBerry - 黑莓 %1 + No script file to execute. + - BlackBerry Native SDK: - 黑莓的原生SDK: - - - - Qnx - - %1 on BlackBerry device - 黑莓设备上的 %1 + No QML utility found. + - Run on BlackBerry device - 在黑莓设备上运行 - - - - Qnx - - %1 on BlackBerry Device - 黑莓设备上的 %1 - - - - Qnx - - No active deploy configuration - 没有激活的部署设置 + No QML utility specified for target device. + - Run on BlackBerry Device - 在黑莓设备上运行 - - - - Qnx - - No SDK path set - 未设置SDK的路径 - - - - Qnx - - Preparing remote side... - - 正在准备远端... - + Qt Version: + Qt 版本: - The %1 process closed unexpectedly. - %1进程意外关闭。 + Qt 6 + - Initial setup failed: %1 - 初始设置失败:%1 + Qt 5 + @@ -46957,156 +40891,384 @@ references to elements in other files, loops, etc.) QNX - QNX Software Development Platform: - QNX 软件开发平台: + Preparing remote side... + - Path to Qt libraries on device: - 设备上的Qt库的路径: + The following errors occurred while activating the QNX configuration: + + + + Cannot Set Up QNX Configuration + + + + Debugger for %1 (%2) + + + + QCC for %1 (%2) + + + + Kit for %1 (%2) + + + + - No GCC compiler found. + + + + - No targets found. + + + + Project source directory: + + + + Local executable: + 本地执行档: + + + Remote QNX process %1 + + + + Deploy Qt to QNX Device + + + + Deploy + 部署 + + + Close + 关闭 + + + Qt library to deploy: + + + + Remote directory: + + + + Closing the dialog will stop the deployment. Are you sure you want to do this? + + + + Please input a remote directory to deploy to. + + + + Checking existence of "%1" + + + + Removing "%1" + + + + The remote directory "%1" already exists. +Deploying to that directory will remove any files already present. + +Are you sure you want to continue? + + + + Connection failed: %1 + 连接失败:%1 + + + Deploy Qt libraries... + + + + Checking that files can be created in /var/run... + + + + Files can be created in /var/run. + + + + An error occurred while checking that files can be created in /var/run. + + + + Files cannot be created in /var/run. + + + + %1 found. + + + + An error occurred while checking for %1. + + + + %1 not found. + + + + Checking for %1... + + + + Attach to remote QNX application... + + + + No SDP path was set up. + + + + Executable on device: + 设备上的执行档: + + + Remote path not set + + + + Executable on host: + 主机上的执行档: + + + Path to Qt libraries on device + + + + Generate kits + + + + Add... + 添加... + + + Remove + 删除 + + + Configuration Information: + + + + Name: + 名称: + + + Version: + 版本: + + + Host: + 主机: + + + Target: + 目标: + + + Select QNX Environment File + + + + Warning + 警告 + + + Configuration already exists or is invalid. + + + + Remove QNX Configuration + + + + Are you sure you want to remove: + %1? + + + + QCC + + + + &Compiler path: + 编译器路径(&C): + + + SDP path: + SDP refers to 'Software Development Platform'. + + + + &ABI: + &ABI: + + + Warning: "slog2info" is not found on the device, debug output not available. + + + + Cannot show slog2info output. Error: %1 + - Qnx + QtDumperHelper - %1 on QNX Device - QNX 设备上的 %1 + ptrace: Operation not permitted. + +Could not attach to the process. Make sure no other debugger traces this process. +Check the settings of +/proc/sys/kernel/yama/ptrace_scope +For more details, see /etc/sysctl.d/10-ptrace.conf + + ptrace: 操作不允许。 + +无法attach到进程。请确认其他调试器没有追踪该进程。 +检查/proc/sys/kernel/yama/ptrace_scope +的设置 +详情参考 /etc/sysctl.d/10-ptrace.conf + + + + ptrace: Operation not permitted. + +Could not attach to the process. Make sure no other debugger traces this process. +If your uid matches the uid +of the target process, check the settings of +/proc/sys/kernel/yama/ptrace_scope +For more details, see /etc/sysctl.d/10-ptrace.conf + + ptrace: 操作不允许。 + +无法attach到进程。请确认其他调试器没有追踪该进程。 +如果您的uid和目标进程的uid +相符,检查 +/proc/sys/kernel/yama/ptrace_scope的设置 +详情参考 /etc/sysctl.d/10-ptrace.conf + - Qnx + QtForMCUs - Run on remote QNX device - 在远程QNX设备上运行 - - - - QmakeProjectManager - - The mkspec to use when building the project with qmake.<br>This setting is ignored when using other build systems. - 用qmake构建项目时使用的mkspec。<br>当使用其他构建系统时该设置被忽略。 - - - Qt mkspec: - Qt mkspec: - - - No Qt version set, so mkspec is ignored. - 未设置Qt版本,所以mkspec被忽略。 - - - Mkspec not found for Qt version. - 未找到Q版本的mkspec。 - - - mkspec - mkspec - - - Manage... - 管理... - - - <b>Error:</b> - Severity is Task::Error - <b>错误:</b> - - - <b>Warning:</b> - Severity is Task::Warning - <b>警告:</b> - - - Configure Project - 配置项目 - - - The project <b>%1</b> is not yet configured.<br/>Qt Creator cannot parse the project, because no kit has been set up. - 项目 <b>%1</b>尚未配置。<br/>Qt Creator无法解析项目,因为还没有设置构建套件。 - - - The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the kit <b>%2</b> to parse the project. - 项目 <b>%1</b>尚未配置。<br/>Qt Creator使用构建套件<b>%2</b> 来解析项目。 - - - The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the <b>invalid</b> kit <b>%2</b> to parse the project. - 项目 <b>%1</b>尚未配置。<br/>Qt Creator使用<b>无效的</b>构建套件<b>%2</b> 来解析项目。 - - - Import Build from... - 导入构建,从... - - - Import - 导入 + Qt for MCUs: %1 + QtSupport - Command: - 命令: + No qmake path set + 没有设置qmake路径 - Arguments: - 参数: + qmake does not exist or is not executable + qmake不存在或者不可执行 - Working directory: - 工作目录: + Qt version has no name + 没有设置Qt版本名称 - Run in &terminal - 在终端中运行(&T) + <unknown> + <未知> - Run Environment - 运行时的环境变量 + System + 系统 - Base environment for this run configuration: - 运行设置的基础环境: + Qt version is not properly installed, please run make install + Qt没有被正确安装,请运行make install - Clean Environment - 清理时的环境变量 - - - - CustomExecutableDialog - - Could not find the executable, please specify one. - 无法找到执行档,请指定一个。 - - - - QtSupport - - No executable. - 无执行档。 + Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong? + 无法确定Qt安装的二进制所在的路径,或许qmake的路径设置出现了错误? - The executable -%1 -cannot be found in the path. - 执行档 -%1 -在搜索路径中找不到。 + The default mkspec symlink is broken. + 默认的mkspec 符号链接错误。 - System Environment - 系统环境变量 + ABI detection failed: Make sure to use a matching compiler when building. + ABI 检测失败: 确保构建时使用一个匹配的编译器。 - Build Environment - 构建时的环境变量 + Non-installed -prefix build - for internal development only. + -prefix构建未安装 - 仅供内部使用。 - Run %1 - 运行%1 + Desktop + Qt Version is meant for the desktop + 桌面 - Custom Executable - 自定义执行档 + Embedded Linux + Qt Version is used for embedded Linux development + 嵌入式 Linux + + + The Qt version is invalid: %1 + %1: Reason for being invalid + Qt版本无效: %1 + + + The qmake command "%1" was not found or is not executable. + %1: Path to qmake executable + qmake命令 "%1" 没有找到或不可执行。 + + + Edit + 编辑 + + + Name + 名称 + + + Remove + 删除 + + + Add... + 添加... + + + <specify a name> + <指定一个名字> + + + Do you want to remove all invalid Qt Versions?<br><ul><li>%1</li></ul><br>will be removed. + 您想删除所有无效的Qt版本吗?<br><ul><li>%1</li></ul><br>将会被删除。 + + + Qt version %1 for %2 + %2的Qt 版本%1 + + + Remove Invalid Qt Versions + 删除无效的Qt版本 + + + Not all possible target environments can be supported due to missing compilers. + 由于编译器不全,不是所有的目标环境都能被支持。 + + + This Qt version was already registered as "%1". + 该Qt版本已经注册为 "%1"。 + + + Incompatible Qt Versions + 不兼容的Qt版本 Examples @@ -47148,28 +41310,10 @@ cannot be found in the path. Cannot Copy Project 无法复制项目 - - Failed to Open Project - 打开项目失败 - - - - QtSupport The Qt library to use for all projects using this kit.<br>A Qt version is required for qmake-based projects and optional when using other build systems. 所有使用该构建套件的项目使用的Qt库。<br> 基于qmake的项目必需一个Qt版本,而使用其他构建系统的项目则为可选。 - - Manage... - 管理... - - - Qt version: - Qt 版本: - - - - QtSupport Qt version Qt 版本 @@ -47178,98 +41322,1332 @@ cannot be found in the path. None + + Qt %{Qt:Version} in PATH (%2) + + + + Qt %{Qt:Version} (%2) + + + + Device type is not supported by Qt version. + + + + The compiler "%1" (%2) cannot produce code for the Qt version "%3" (%4). + + + + The compiler "%1" (%2) may not produce code compatible with the Qt version "%3" (%4). + + + + The kit has a Qt version, but no C++ compiler. + + + + Name: + 名称: + + + Invalid Qt version + + + + ABI: + ABI: + + + Source: + 源: + + + mkspec: + mkspec: + + + qmake: + qmake: + + + Default: + 默认: + + + Version: + 版本: + + + The version string of the current Qt version. + + + + The type of the current Qt version. + + + + The mkspec of the current Qt version. + + + + The installation prefix of the current Qt version. + + + + The installation location of the current Qt version's data. + + + + The host location of the current Qt version. + + + + The installation location of the current Qt version's internal host executable files. + + + + The installation location of the current Qt version's header files. + + + + The installation location of the current Qt version's library files. + + + + The installation location of the current Qt version's documentation files. + + + + The installation location of the current Qt version's executable files. + + + + The installation location of the current Qt version's internal executable files. + + + + The installation location of the current Qt version's plugins. + + + + The installation location of the current Qt version's QML files. + + + + The installation location of the current Qt version's imports. + + + + The installation location of the current Qt version's translation files. + + + + The installation location of the current Qt version's examples. + + + + The installation location of the current Qt version's demos. + + + + The current Qt version's default mkspecs (Qt 4). + + + + The current Qt version's default mkspec (Qt 5; host system). + + + + The current Qt version's default mkspec (Qt 5; target system). + + + + The current Qt's qmake version. + + + + Timeout running "%1". + + + + "%1" crashed. + + + + "%1" produced no output: %2. + + + + qmake "%1" is not an executable. + + + + No Qt version. + 没有设置Qt 版本。 + + + Invalid Qt version. + 无效的 Qt 版本。 + + + Requires Qt 5.0.0 or newer. + 需要Qt 4.7.1 或更新的版本。 {5.0.0 ?} + + + Requires Qt 5.3.0 or newer. + 需要Qt 4.7.1 或更新的版本。 {5.3.0 ?} + + + This Qt Version does not contain Qt Quick Compiler. + + + + No factory found for qmake: "%1" + + + + Aggregation as a pointer member + 以指针成员方式集成 + + + Aggregation + 集成 + + + Multiple inheritance + 多重继承 + + + Support for changing languages at runtime + 对运行时更改语言的支持 + + + Use Qt module name in #include-directive + 在#include指令中使用Qt模块名 + + + Add Qt version #ifdef for module names + 为模块名添加表示Qt版本的#ifdef + + + Embedding of the UI Class + UI类嵌入方式 + + + Code Generation + 生成代码 + + + Qt Class Generation + + + + Search in Examples... + + + + Search in Tutorials... + + + + QML debugging and profiling: + + + + Might make your application vulnerable.<br/>Only use in a safe environment. + + + + Qt Quick Compiler: + + + + Disables QML debugging. QML profiling will still work. + + + + %1 (invalid) + + + + Name of Qt Version + + + + unknown + + + + Path to the qmake executable + + + + Qt Version + Qt版本 + + + Location of qmake + + + + Link with Qt... + + + + Clean Up + + + + qmake path: + + + + Register documentation: + + + + qmake Path + + + + Highest Version Only + + + + All + 所有 + + + Display Name is not unique. + + + + No compiler can produce code for this Qt version. Please define one or more compilers for: %1 + + + + The following ABIs are currently not supported: %1 + + + + Select a qmake Executable + + + + Qt Version Already Known + + + + Qmake Not Executable + + + + The qmake executable %1 could not be added: %2 + + + + The Qt version selected must match the device type. + + + + Linking with a Qt installation automatically registers Qt versions and kits, and other tools that were installed with that Qt installer, in this Qt Creator installation. Other Qt Creator installations are not affected. + + + + %1's resource directory is not writable. + + + + %1 is part of a Qt installation. + + + + %1 is currently linked to "%2". + + + + Qt installation information was not found in "%1". Choose a directory that contains one of the files %2 + + + + Choose Qt Installation + + + + The change will take effect after restart. + + + + Qt installation path: + + + + Choose the Qt installation directory, or a directory that contains "%1". + + + + Link with Qt + + + + Cancel + 取消 + + + Remove Link + + + + Qt Versions + Qt 版本 + + + Link with a Qt installation to automatically register Qt versions and kits? To do this later, select Edit > Preferences > Kits > Qt Versions > Link with Qt. + + + + Full path to the host bin directory of the Qt version in the active kit of the project containing the current document. + + + + Full path to the target bin directory of the Qt version in the active kit of the project containing the current document.<br>You probably want %1 instead. + + + + Full path to the host libexec directory of the Qt version in the active kit of the project containing the current document. + + + + Full path to the host bin directory of the Qt version in the active kit of the active project. + + + + Full path to the target bin directory of the Qt version in the active kit of the active project.<br>You probably want %1 instead. + + + + Full path to the libexec bin directory of the Qt version in the active kit of the active project. + + + + No QML utility installed. + + + + If you plan to provide translations for your project's user interface via the Qt Linguist tool, please select a language here. A corresponding translation (.ts) file will be generated for you. + + + + <none> + <无> + + + Language: + 语言: + + + Translation file: + + - QtSupport + QtVersion - MeeGo/Harmattan - MeeGo/Harmattan + Boot2Qt + Qt version is used for Boot2Qt development + + + + + QuickFix::ExtractFunction + + Extract Function + 解压缩函数 - Maemo/Fremantle - Maemo/Fremantle + Extract Function Refactoring + 解压缩函数的重构 - Desktop - 桌面 + Function name + 函数名 - Embedded Linux - 嵌入式 Linux + Access + + + + + RadioButtonSpecifics + + Radio Button + - Windows CE - Windows CE + Text + 文本 - Android - Android + Text label for the radio button. + + + + Checked + + + + Determines whether the radio button is checked or not. + + + + Focus on press + + + + Determines whether the radio button gets focus if pressed. + + + + + RefactoringFile::apply + + Refactoring cannot be applied. + RemoteLinux - Remote process crashed. - 远端进程崩溃。 + Default + 默认 - Unexpected output from remote process: '%1'. - 来自远程进程的异常输出: '%1'。 + Deploy Public Key + 部署公钥 + + + The new device configuration will now be created. +In addition, device connectivity will be tested. + 新设备的设置将被创建。 +另外,设备的连接性将被测试。 + + + All specified ports are available. + 所有指定的端口都可用。 + + + Close + 关闭 + + + Key Deployment + 公钥部署 + + + All files successfully deployed. + 所有文件部署成功. + + + Upload files via SFTP + 通过SFTP上传文件 + + + Installing package failed. + 安装package失败. + + + Choose Public Key File + 选择公钥文件 + + + Public Key Files (*.pub);;All Files (*) + 选择公钥文件(*.pub);;所有文件 (*) + + + Deploying... + 部署中... + + + Deployment finished successfully. + 部署成功完成。 + + + Fetch Device Environment + 获取设备环境 + + + Executable on host: + 主机上的执行档: + + + Executable on device: + 设备上的执行档: + + + Clean Environment + 清理时的环境变量 + + + System Environment + 系统环境变量 + + + Cancel Fetch Operation + 取消获取操作 + + + Device Error + 设备错误 + + + Fetching environment failed: %1 + 获取环境失败:%1 + + + Tarball creation not possible. + 不可能创建tarball。 + + + Create tarball: + 创建tarball: + + + No deployment action necessary. Skipping. + 不必要执行部署,跳过。 + + + No device configuration set. + 没有设备设置。 + + + Cannot deploy: %1 + 无法部署:%1 + + + User requests deployment to stop; cleaning up. + 用户要求停止部署; 清理中。 + + + Deploy step failed. + 部署步骤失败。 + + + Deploy step finished. + 部署步骤完成。 + + + Successfully uploaded package file. + 上传包文件成功。 + + + Installing package to device... + 正在将包安装到设备... + + + Package installed. + 包已安装。 + + + Incremental deployment + 增量部署 + + + Command line: + 命令行: + + + Checking if specified ports are available... + 检查指定端口是否可用... + + + Run custom remote command + 执行自定义的远程命令 + + + No command line given. + 没有给定命令行。 + + + Remote process finished with exit code %1. + 远端进程完成,退出代码'%1'。 + + + Remote command finished successfully. + 远端命令成功完成。 + + + Deploy to Remote Linux Host + 部署到远程Linux主机 + + + Public key error: %1 + 公钥错误: %1 + + + Packaging finished successfully. + 打包顺利完成。 + + + Packaging failed. + 打包失败。 + + + Creating tarball... + 创建tarball... + + + Tarball up to date, skipping packaging. + 归档文件已经是最新, 跳过打包。 + + + Error: tar file %1 cannot be opened (%2). + 错误: tar 文件%1 无法被打开(%2)。 + + + Create tarball + 创建tarball + + + No tarball creation step found. + 没有找到生成tarball所需的步骤。 + + + Deploy tarball via SFTP upload + 通过SFTP上传来部署tarball + + + Authentication type: + 验证类型: + + + &Host name: + 主机名称(&H): + + + IP or host name of the device + 设备的IP或者主机名称 + + + &SSH port: + SSH端口(&S): + + + Free ports: + 空闲端口: + + + Timeout: + 超时时间: + + + s + + + + &Username: + 用户名(&U): + + + Private key file: + 私钥文件: + + + Create New... + 创建新密钥... + + + Machine type: + 机器类型: + + + Physical Device + 物理设备 + + + Emulator + 模拟器 + + + You will need at least one port. + 您需要至少一个端口。 + + + WizardPage + 向导页面 + + + The name to identify this configuration: + 标识配置的名称: + + + The device's host name or IP address: + 设备的域名或者IP地址: + + + Deploy Public Key... + 部署公钥... + + + Remote process failed: %1 + 远端进程失败:%1 + + + Starting remote command "%1"... + + + + Failed to start "stat": %1 + + + + "stat" crashed. + + + + "stat" failed with exit code %1: %2 + + + + Failed to retrieve remote timestamp for file "%1". Incremental deployment will not work. Error message was: %2 + + + + Unexpected stat output for remote file "%1": %2 + + + + No files need to be uploaded. + - The remote file system has only %n megabytes of free space, but %1 megabytes are required. - - 远程文件系统仅有 %n 兆字节的剩余空间,但需要 %1兆字节。 - - - - The remote file system has %n megabytes of free space, going ahead. - - 远程文件系统有 %n 兆字节的剩余空间,正在继续。 + %n file(s) need to be uploaded. + + - Cannot check for free disk space: '%1' is not an absolute path. - 无法检查剩余磁盘空间: '%1'不是一个绝对路径。 + Local file "%1" does not exist. + - - - RemoteLinux - MB - MB + Remote chmod failed for file "%1": %2 + - - - RemoteLinux - Check for free disk space - 检测剩余的磁盘空间 + Ignore missing files + - - - RemoteLinux - Checking available ports... + Specific &key + + + + &Check host key + + + + You can enter lists and ranges like this: '1024,1026-1028,1030'. + + + + Leave empty to look up executable in $PATH + + + + GDB server executable: + + + + New Remote Linux Device Configuration Setup + + + + Connection + + + + The device's SSH port number: + + + + The username to log into the device: + + + + Summary + 汇总 + + + We recommend that you log into your device using public key authentication. +If your device is already set up for this, you do not have to do anything here. +Otherwise, please deploy the public key for the private key with which to connect in the future. +If you do not have a private key yet, you can also create one here. + + + + Choose a Private Key File + + + + Create New Key Pair + + + + Trying to kill "%1" on remote device... + + + + Remote application killed. + + + + Failed to kill remote application. Assuming it was not running. + + + + Kill current application instance + + + + Cannot establish SSH connection: ssh binary "%1" does not exist. + + + + Cannot establish SSH connection: Failed to create temporary directory for control socket: %1 + + + + Cannot establish SSH connection. +Control process failed to start. + + + + SSH connection failure. + + + + SSH connection failure: + + + + Remote Linux + + + + Remote Linux Device + + + + Error starting remote shell. + + + + Error running remote shell. + + + + Error running remote shell: %1 + + + + Open Remote Shell + + + + "%1" failed to start: %2 + + + + "%1" crashed. + + + + "sftp" binary "%1" does not exist. + + + + Failed to create local directory "%1". + + + + Sending echo to device... + + + + echo failed: %1 + + + + echo failed. + + + + Device replied to echo with unexpected contents. + + + + Device replied to echo with expected contents. + + + + Checking kernel version... + + + + uname failed: %1 + uname失败%1 + {1?} + + + uname failed. + + + + Error gathering ports: %1 + 搜集端口错误: %1 + {1?} + + + The following specified ports are currently in use: %1 + 以下指定端口现正被使用: %1 + {1?} + + + Checking whether "%1" works... + + + + Failed to start "%1": %2 - 正在检查可用的端口... - + - Debugging failed. - 调试失败。 + "%1" crashed. + + - Initial setup failed: %1 - 初始设置失败:%1 + "%1" failed with exit code %2: %3 + + - Not enough free ports on device for debugging. - 设备上可用于调试的空闲端口不够。 + "%1" is functional. + + + + + SFTP will be used for deployment, because rsync is not available. + + + + + Deployment to this device will not work out of the box. + + + + + Checking if required commands are available... + + + + %1... + + + + %1 found. + + + + An error occurred while checking for %1. + + + + %1 not found. + + + + Command: + 命令: + + + Install root: + + + + Clean install root first: + + + + Full command line: + + + + Custom command line: + + + + Use custom command line instead: + + + + Install into temporary host directory + + + + You must provide an install root. + + + + The install root "%1" could not be cleaned. + + + + The install root "%1" could not be created. + + + + The "make install" step should probably not be last in the list of deploy steps. Consider moving it up. + + + + You need to add an install statement to your CMakeLists.txt file for deployment to work. + + + + Key deployment failed. + + + + Remote executable: + + + + Local executable: + 本地执行档: + + + Custom Executable + 自定义执行档 + + + Run "%1" + + + + The remote executable must be set in order to run a custom remote run configuration. + + + + Cannot Open Terminal + + + + Cannot open remote terminal: Current kit has no device. + + + + Error: No device + + + + Error: %1 + 错误: %1 + {1?} + + + Process exited with code %1. + + + + Error running 'env': %1 + + + + Remote stderr was: "%1" + + + + Remote path not set + + + + Exit code is %1. stderr: + + + + Deploy via rsync: failed to create remote directories: + + + + rsync failed to start: %1 + + + + rsync crashed. + + + + rsync failed with exit code %1. + + + + Flags: + + + + Ignore missing files: + + + + rsync is only supported for transfers between different devices. + + + + Deploy files via rsync + + + + SSH Key Configuration + SSH密钥配置 + + + &RSA + &RSA + + + ECDSA + + + + &Generate And Save Key Pair + 创建并保存密钥文件对(&G) + + + Options + 选项 + + + Key algorithm: + 密钥算法: + + + Key &size: + 密钥长度(&S): + + + Public key file: + 公钥文件: + + + The ssh-keygen tool was not found. + + + + Refusing to overwrite existing private key file "%1". + + + + The ssh-keygen tool at "%1" failed: %2 + + + + Choose Private Key File Name + 选择私钥文件名 + + + Key Generation Failed + 密钥创建失败 + + + Package modified files only + + + + No remote path specified for file "%1", skipping. + + + + Error writing tar file "%1": %2. + + + + Cannot add file "%1" to tar-archive: path too long. + + + + Error writing tar file "%1": %2 + + + + Error reading file "%1": %2. + + + + Adding file "%1" to tarball... + + + + X11 Forwarding: + + + + Forward to local display + + + + + RemoteLinux::GenericTransferImpl + + Creating directory: %1 + + + + Failed. + 失败. + + + Copying %1/%2: %3 -> %4 + + + + + ResetEdit3DColorsAction + + Reset Colors + + + + Reset the background color and the color of the grid lines of the 3D Editor to the default valus. + + + + + ResetView + + Reset View + ResourceEditor + + &Undo + 撤销(&U) + + + &Redo + 重做(&R) + + + Rename File... + 重命名文件... + + + Copy Resource Path to Clipboard + 复制资源路径到剪贴板 + Add Files 添加文件 @@ -47318,9 +42696,6 @@ cannot be found in the path. Could not copy the file to %1. 无法复制文件到 %1 。 - - - ResourceEditor The file name is empty. 文件名为空。 @@ -47333,13 +42708,6 @@ cannot be found in the path. The <RCC> root element is missing. <RCC> 根元素缺失。 - - Cannot write file. Disk full? - 无法写入文件,磁盘已满? - - - - ResourceEditor Open File 打开文件 @@ -47348,12 +42716,3538 @@ cannot be found in the path. All files (*) 所有文件 (*) + + Remove + 删除 + + + Remove Missing Files + + + + Alias: + 别名: + + + Prefix: + + + + Language: + 语言: + + + Properties + 属性 + + + Cannot save file. + + + + Recheck Existence of Referenced Files + + + + Add Prefix... + 添加前缀... + + + Change Prefix... + 改变前缀... + + + Remove Prefix... + + + + Rename... + 重命名... + + + Remove File... + 删除文件... + + + Open in Editor + + + + Open With + 用...打开 + + + Copy Path + + + + Copy Path "%1" + + + + Copy URL + + + + Copy URL "%1" + + + + Remove Prefix + + + + Remove prefix %1 and all its files? + + + + File Removal Failed + + + + Removing file %1 from the project failed. + + + + Rename Prefix + + + + Sort Alphabetically + 按字母排序 + - TextEditor::Internal::CountingLabel + ResourceTopLevelNode - %1 found - 找到了 %1 个 + %1 Prefix: %2 + + + + + RotateToolAction + + Activate Rotate Tool + + + + + RunConfigSelector + + Run Without Deployment + 忽略部署直接运行 + + + + ScaleToolAction + + Activate Scale Tool + + + + + ScxmlEditor + + Basic Colors + + + + Last used colors + + + + Create New Color Theme + + + + Theme ID + + + + Cannot Create Theme + + + + Theme %1 is already available. + + + + Remove Color Theme + + + + Are you sure you want to delete color theme %1? + + + + Modify Color Themes... + + + + Modify Color Theme + + + + Select Color Theme + + + + Factory Default + + + + Colors from SCXML Document + + + + Pick Color + + + + Automatic Color + + + + More Colors... + + + + SCXML Generation Failed + + + + Loading document... + + + + State Color + + + + Font Color + + + + Align Left + + + + Adjust Width + + + + Alignment + 对齐方式 + + + Adjustment + + + + Images (%1) + + + + Untitled + 未命名 + + + Export Canvas to Image + + + + Export Failed + + + + Could not export to image. + + + + Save Screenshot + + + + Saving Failed + + + + Could not save the screenshot. + + + + Navigator + 导航 + + + Search + 查找 + + + Type + 类型 + + + Name + + + + Attributes + 属性 + + + Content + 内容 + + + Tag + + + + Count + + + + yyyy/MM/dd hh:mm:ss + + + + File + 文件 + + + Time + + + + Max. levels + + + + Document Statistics + + + + Common states + + + + Metadata + + + + Other tags + + + + Unknown tags + + + + Remove items + + + + Structure + + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + Add child + + + + Change parent + + + + Errors(%1) / Warnings(%2) / Info(%3) + + + + Export to File + + + + CSV files (*.csv) + + + + Cannot open file %1. + 打开文件 %1. 失败 + + + Severity + + + + Reason + + + + Description + 说明 + + + Error + 错误 + + + Warning + 警告 + + + Info + 信息 + + + Unknown + 未知 + + + Severity: %1 +Type: %2 +Reason: %3 +Description: %4 + + + + Zoom In + 放大 + + + Zoom In (Ctrl + + / Ctrl + Wheel) + + + + Zoom Out + 缩小 + + + Zoom Out (Ctrl + - / Ctrl + Wheel) + + + + Fit to View + + + + Fit to View (F11) + + + + Panning + + + + Panning (Shift) + + + + Magnifier + + + + Magnifier Tool + + + + Navigator (Ctrl+E) + + + + Copy + 复制 + + + Copy (Ctrl + C) + + + + Cut + 剪切 + + + Cut (Ctrl + X) + + + + Paste + 粘贴 + + + Paste (Ctrl + V) + + + + Screenshot + + + + Screenshot (Ctrl + Shift + C) + + + + Export to Image + + + + Toggle Full Namespace + + + + Align Left (Ctrl+L,1) + + + + Align Right + + + + Align Right (Ctrl+L,2) + + + + Align Top + + + + Align Top (Ctrl+L,3) + + + + Align Bottom + + + + Align Bottom (Ctrl+L,4) + + + + Align Horizontal + + + + Align Horizontal (Ctrl+L,5) + + + + Align Vertical + + + + Align Vertical (Ctrl+L,6) + + + + Adjust Width (Ctrl+L,7) + + + + Adjust Height + + + + Adjust Height (Ctrl+L,8) + + + + Adjust Size + + + + Adjust Size (Ctrl+L,9) + + + + Show Statistics... + + + + Show Statistics + + + + Add new state + + + + Move State + + + + Align states + + + + Adjust states + + + + Re-layout + + + + State + 状态 + + + Each state must have a unique ID. + + + + Missing ID. + + + + Duplicate ID (%1). + + + + Initial + + + + One level can contain only one initial state. + + + + Too many initial states at the same level. + + + + H + + + + Value + + + + - name - + + + + - value - + + + + Common States + + + + Final + + + + Parallel + + + + History + + + + Unexpected element. + + + + Not well formed. + + + + Premature end of document. + + + + Custom error. + + + + Error in reading XML. +Type: %1 (%2) +Description: %3 + +Row: %4, Column: %5 +%6 + + + + Current tag is not selected. + + + + Pasted data is empty. + + + + Paste items + + + + Cannot save XML to the file %1. + + + + Add Tag + + + + Remove Tag + + + + Error in reading XML + + + + New Tag + + + + Item + + + + Remove + 删除 + + + Created editor-instance. + + + + Editor-instance is not of the type ISCEditor. + + + + Set as Initial + + + + Zoom to State + + + + Re-Layout + + + + Change initial state + + + + Draw some transitions to state. + + + + No input connection. + + + + No input or output connections (%1). + + + + Draw some transitions to or from state. + + + + No output connections (%1). + + + + Draw some transitions from state. + + + + No input connections (%1). + + + + Remove Point + + + + Transition + + + + Transitions should be connected. + + + + Not connected (%1). + + + + Undo (Ctrl + Z) + + + + Redo (Ctrl + Y) + + + + This file can only be edited in <b>Design</b> mode. + 此文件仅可在<b>设计</b>模式中编辑。 + + + Switch Mode + + + + + SelectBackgroundColorAction + + Select Background Color + + + + Select a color for the background of the 3D Editor. + + + + + SelectGridColorAction + + Select Grid Color + + + + Select a color for the grid lines of the 3D Editor. + + + + + SelectionModeToggleAction + + Toggle Group/Single Selection Mode + + + + + SerialTerminal::Internal::SerialControl + + Unable to open port %1: %2. + + + + Session resumed. + + + + Starting new session on %1... + + + + Session finished on %1. + + + + Session paused... + + + + No Port + + + + Serial port error: %1 (%2) + + + + + SerialTerminal::Internal::SerialOutputPane + + Close Tab + 关闭标签 + + + Close All Tabs + 关闭所有标签 + + + Close Other Tabs + 关闭其他标签 + + + Type text and hit Enter to send. + + + + Serial Terminal Window + + + + Connect + + + + Disconnect + + + + Reset Board + + + + Add New Terminal + + + + + SerialTerminal::Internal::SerialTerminalOutputPane + + Serial Terminal + + + + + ShowCameraFrustumAction + + Always Show Camera Frustums + + + + Toggle between always showing the camera frustum visualization and only showing it when the camera is selected. + + + + + ShowGridAction + + Show Grid + + + + Toggle the visibility of the helper grid. + + + + + ShowIconGizmoAction + + Show Icon Gizmos + + + + Toggle the visibility of icon gizmos, such as light and camera icons. + + + + + ShowParticleEmitterAction + + Always Show Particle Emitters And Attractors + + + + Toggle between always showing the particle emitter and attractor visualizations and only showing them when the emitter or attractor is selected. + + + + + ShowSelectionBoxAction + + Show Selection Boxes + + + + Toggle the visibility of selection boxes. + + + + + SilverSearcher::FindInFilesSilverSearcher + + Search Options (optional) + + + + Silver Searcher is not available on the system. + + + + + SliderSpecifics + + Value + + + + Current value of the Slider. The default value is 0.0. + + + + Maximum value + + + + Maximum value of the slider. The default value is 1.0. + + + + Minimum value + + + + Minimum value of the slider. The default value is 0.0. + + + + Orientation + 方向 + + + Layout orientation of the slider. + + + + Step size + + + + Indicates the slider step size. + + + + Active focus on press + 点击后设置焦点 + + + Indicates whether the slider should receive active focus when pressed. + + + + Tick marks enabled + + + + Indicates whether the slider should display tick marks at step intervals. + + + + Update value while dragging + + + + Determines whether the current value should be updated while the user is moving the slider handle, or only when the button has been released. + + + + + Snippet + + Expected delimiter after mangler ID. + + + + Expected mangler ID "l" (lowercase), "u" (uppercase), or "c" (titlecase) after colon. + + + + Missing closing variable delimiter for: + + + + + SourceToolAction + + Change Source URL... + + + + + SplitViewSpecifics + + Split View + + + + Orientation + 方向 + + + Orientation of the split view. + + + + + Squish + + Details + 详情 + + + Adjust references to the removed symbolic name to point to: + + + + Remove the symbolic name (invalidates names referencing it) + + + + Remove the symbolic name and all names referencing it + + + + Failed to write "%1" + + + + Incomplete Squish settings. Missing Squish installation path. + + + + objectmaptool not found. + + + + Failure while parsing objects.map content. + + + + Squish Object Map Editor + + + + New + 新建 + + + Remove + 删除 + + + Jump to Symbolic Name + + + + Symbolic Names + + + + Cut + 剪切 + + + Copy + 复制 + + + Paste + 粘贴 + + + Delete + 删除 + + + Copy Real Name + + + + Properties: + + + + The properties of the Multi Property Name associated with the selected Symbolic Name. (use \\ for a literal \ in the value) + + + + The Hierarchical Name associated with the selected Symbolic Name. + + + + Remove Symbolic Name + + + + Do you really want to remove "%1"? + + + + Ambiguous Property Name + + + + Ambiguous Symbolic Name + + + + %1 "%2" already exists. Specify a unique name. + + + + Property + 属性 + + + Symbolic Name + + + + CopyOf + + + + Open Squish Test Suites + + + + Select All + 全选 + + + Deselect All + + + + Base directory: + + + + Test suites: + + + + Name + + + + Operator + 运算符 + + + Value + + + + Application: + + + + <No Application> + + + + Arguments: + 参数: + + + Recording Settings + + + + Suite Already Open + + + + A test suite with the name "%1" is already open. +Close the opened test suite and replace it with the new one? + + + + Test Suite Path Not Accessible + + + + The path "%1" does not exist or is not accessible. +Refusing to run test case "%2". + + + + The path "%1" does not exist or is not accessible. +Refusing to run test cases. + + + + No Test Cases Defined + + + + Test suite "%1" does not contain any test cases. + + + + The path "%1" does not exist or is not accessible. +Refusing to record test case "%2". + + + + Select Global Script Folder + + + + Error + 错误 + + + Failed to open objects.map file at "%1". + + + + Squish + + + + Run This Test Case + + + + Delete Test Case + + + + Run This Test Suite + + + + Add New Test Case... + + + + Close Test Suite + + + + Delete Test Suite + + + + Delete Shared File + + + + Add Shared File + + + + Remove Shared Folder + + + + Open Squish Suites... + + + + Create New Test Suite... + + + + Close All Test Suites + + + + Close all test suites? + + + + Add Shared Folder... + + + + Remove All Shared Folders + + + + Test Suites + + + + Remove "%1" from the list of shared folders? + + + + Remove all shared folders? + + + + Record Test Case + + + + Do you want to record over the test case "%1"? The existing content will be overwritten by the recorded script. + + + + Set up a valid Squish path to be able to create a new test case. +(Edit > Preferences > Squish) + + + + Test Results + 测试结果 + + + Runner/Server Log + + + + <b>Test summary:</b>&nbsp;&nbsp; %1 passes, %2 fails, %3 fatals, %4 errors, %5 warnings. + + + + Expand All + 展开全部 + + + Collapse All + 折叠全部 + + + Filter Test Results + + + + Pass + 通过 + + + Fail + + + + Expected Fail + + + + Unexpected Pass + + + + Warning Messages + + + + Log Messages + + + + Check All Filters + + + + Control Bar + + + + Stop Recording + + + + Ends the recording session, saving all commands to the script file. + + + + Interrupt + 中断 + + + Step Into + 单步进入 + + + Step Over + 单步跳过 + + + Step Out + 单步跳出 + + + Type + 类型 + + + Squish Locals + + + + Continue + 继续 + + + &Squish + + + + &Server Settings... + + + + Result + 结果 + + + Message + 消息 + + + Time + + + + Squish path: + + + + Path to Squish installation + + + + Path does not contain server executable at its default location. + + + + License path: + + + + Local Server + + + + Server host: + + + + Server Port + + + + Verbose log + + + + Minimize IDE + + + + Minimize IDE automatically while running or recording test cases. + + + + General + 概要 + + + Maximum startup time: + + + + Specifies how many seconds Squish should wait for a reply from the AUT directly after starting it. + + + + Maximum response time: + + + + Specifies how many seconds Squish should wait for a reply from the hooked up AUT before raising a timeout error. + + + + Maximum post-mortem wait time: + + + + Specifies how many seconds Squish should wait after the the first AUT process has exited. + + + + Animate mouse cursor: + + + + Name: + 名称: + + + Host: + 主机: + + + Port: + 端口: + + + Add Attachable AUT + + + + Add + 添加 + + + Edit + 编辑 + + + Mapped AUTs + + + + AUT Paths + + + + Attachable AUTs + + + + Select Application to test + + + + Select Application Path + + + + Squish Server Settings + + + + Failed to write configuration changes. +Squish server finished with process error %1. + + + + Run Test Suite + + + + Object Map + + + + Run Test Case + + + + Shared Folders + + + + %1 (none) + + + + Squish Tools in unexpected state (%1). +Refusing to run a test case. + + + + Could not create test results folder. Canceling test run. + + + + Squish Tools in unexpected state (%1). +Refusing to execute server query. + + + + Squish Tools in unexpected state (%1). +Refusing to record a test case. + + + + Squish Tools in unexpected state (%1). +Refusing to write configuration changes. + + + + Squish Server Error + + + + "%1" could not be found or is not executable. +Check the settings. + + + + Recording test case + + + + Could not get Squish license from server. + + + + Test run finished. + + + + Test record finished. + + + + Squish could not find the AUT "%1" to start. Make sure it has been added as a Mapped AUT in the squishserver settings. +(Tools > Squish > Server Settings...) + + + + User stop initiated. + + + + Squish Server Already Running + + + + There is still an old Squish server instance running. +This will cause problems later on. + +If you continue, the old instance will be terminated. +Do you want to continue? + + + + Unexpected state or request while starting Squish server. (state: %1, request: %2) + + + + No Squish Server + + + + Squish server does not seem to be running. +(state: %1, request: %2) +Try again. + + + + No Squish Server Port + + + + Failed to get the server port. +(state: %1, request: %2) +Try again. + + + + Squish Runner Running + + + + Squish runner seems to be running already. +(state: %1, request: %2) +Wait until it has finished and try again. + + + + Squish Runner Error + + + + Squish runner failed to start within given timeframe. + + + + Create New Squish Test Suite + + + + Available GUI toolkits: + + + + Invalid Squish settings. Configure Squish installation path inside Preferences... > Squish > General to use this wizard. + + + + Available languages: + + + + <None> + <无> + + + Key is not an object. + + + + Key 'mode' is not set. + + + + Unsupported mode: + + + + Could not merge results into single results.xml. +Destination file "%1" already exists. + + + + Could not merge results into single results.xml. +Failed to open file "%1" + + + + Error while parsing first test result. + + + + + Squish::Internal::DeleteSymbolicNameDialog + + The Symbolic Name <span style='white-space: nowrap'>"%1"</span> you want to remove is used in Multi Property Names. Select the action to apply to references in these Multi Property Names. + + + + + StandardTextGroupBox + + + <上下文注释> + + + + StringUtils + + Elapsed time: %1. + + + + + StudioWelcome::Internal::ProjectModel + + Created with Qt Design Studio version: %1 + + + + Resolution: %1x%2 + + + + Created: %1 + + + + Last Edited: %1 + + + + + StudioWelcome::Internal::StudioSettingsPage + + Build + 构建 + + + Debug + + + + Analyze + 分析 + + + Hide top-level menus with advanced functionality to simplify the UI. <b>Build</b> is generally not required in the context of Qt Design Studio. <b>Debug</b> and <b>Analyze</b> are only required for debugging and profiling. + + + + Hide Menu + + + + Examples + 示例 + + + Examples path: + + + + Reset Path + + + + The menu visibility change will take effect after restart. + + + + + StudioWelcome::Internal::StudioWelcomeSettingsPage + + Qt Design Studio Configuration + + + + + StudioWelcome::Internal::UsageStatisticPluginModel + + The change will take effect after restart. + + + + + StudioWelcome::Internal::WelcomeMode + + Welcome + 欢迎 + + + + StudioWelcome::PresetModel + + Recents + + + + Custom + + + + + StudioWelcome::QdsNewDialog + + New Project + + + + Failed to initialize data. + + + + Choose Directory + 选择目录 + + + Save Preset + + + + A preset with this name already exists. + + + + + SubComponentManager::parseDirectory + + Invalid meta info + + + + + Subversion::Internal::SubversionEditorWidget + + Annotate revision "%1" + 注释修订版本 "%1" + + + + Subversion::Internal::SubversionLogConfig + + Verbose + 详细 + + + Show files changed in each revision + 显示每个修订版本改变的文件 + + + + Subversion::Internal::SubversionPlugin + + &Subversion + &Subversion + + + Add + 添加 + + + Add "%1" + 添加"%1" + + + Alt+S,Alt+A + Alt+S,Alt+A + + + Diff Project + Diff 项目 + + + Diff Project "%1" + Diff 项目 "%1" + + + Diff Current File + Diff 当前文件 + + + Diff "%1" + Diff "%1" + + + Alt+S,Alt+D + Alt+S,Alt+D + + + Commit All Files + 提交所有文件 + + + Commit Current File + 提交当前文件 + + + Commit "%1" + 提交 "%1" + + + Alt+S,Alt+C + Alt+S,Alt+C + + + Filelog Current File + Filelog当前文件 + + + Filelog "%1" + Filelog "%1" + + + Annotate Current File + Annotate 当前文件 + + + Annotate "%1" + Annotate "%1" + + + Describe... + 说明... + + + Project Status + 项目状态 + + + Meta+S,Meta+D + Meta+S,Meta+D + + + Meta+S,Meta+A + Meta+S,Meta+A + + + Meta+S,Meta+C + Meta+S,Meta+C + + + Delete... + 删除... + + + Delete "%1"... + 删除 "%1"... + + + Revert... + 还原... + + + Revert "%1"... + 还原 "%1"... + + + Status of Project "%1" + 项目 "%1" 的状态 + + + Log Project + Log 项目 + + + Log Project "%1" + Log 项目 "%1" + + + Update Project + 更新项目 + + + Update Project "%1" + 更新项目 "%1" + + + Revert Repository... + 还原代码仓库... + + + Revert repository + 还原代码仓库 + + + Revert failed: %1 + 还原失败: %1 + + + The file has been changed. Do you want to revert it? + 文件被改变,您想还原它吗? + + + Another commit is currently being executed. + 另一个提交正在被执行。 + + + Commit Project + 提交项目 + + + Commit Project "%1" + 提交项目 "%1" + + + Diff Repository + Diff 代码仓库 + + + Repository Status + 仓库状态 + + + Log Repository + Log 代码仓库 + + + Update Repository + 更新代码仓库 + + + Revert all pending changes to the repository? + 还原所有未完成的更改到仓库? + + + There are no modified files. + 没有被更改的文件。 + + + Describe + 说明 + + + Revision number: + 修订版本编号: + + + Triggers a Subversion version control operation. + + + + No subversion executable specified. + + + + + Subversion::Internal::SubversionSettings + + Subversion Command + Subversion 命令 + + + Subversion command: + Subversion 命令: + + + Username: + 用户名: + + + Password: + 密码: + + + Ignore whitespace changes in annotation + 忽略注释中的空格变化 + + + Log count: + + + + Timeout: + 超时时间: + + + s + + + + Prompt on submit + 提交时弹出提示 + + + Subversion + Subversion + + + Configuration + 配置 + + + Authentication + 验证信息 + + + Miscellaneous + 其他 + + + + Subversion::Internal::SubversionSubmitEditor + + Subversion Submit + Subversion提交 + + + + SymbolSupport + + Find References with %1 for: + + + + Renaming is not supported with %1 + + + + + SyncEdit3DColorAction + + Use Scene Environment Color + + + + Sets the 3D Editor to use the Scene Environment color as background color. + + + + + SyntaxHighlightingCLI + + Command line syntax highlighter using Kate syntax definitions. + + + + source + + + + The source file to highlight. + + + + List all available syntax definitions. + + + + List all available themes. + + + + Download new/updated syntax definitions. + + + + File to write HTML output to (default: stdout). + + + + output + + + + Highlight using this syntax definition (default: auto-detect based on input file). + + + + syntax + + + + Color theme to use for highlighting. + + + + theme + + + + Use the specified format instead of html. Must be html, ansi or ansi256Colors. + + + + format + + + + Add information to debug a syntax file. Only works with --output-format=ansi or ansi256Colors. Possible values are format, region, context and stackSize. + + + + type + + + + Disable ANSI background for the default color. + + + + Set HTML page's title +(default: the filename or "Kate Syntax Highlighter" if reading from stdin). + + + + title + + + + Read file from stdin. The -s option must also be used. + + + + + TabViewSpecifics + + Tab View + + + + Current index + + + + Frame visible + + + + Determines the visibility of the tab frame around contents. + + + + Tabs visible + + + + Determines the visibility of the tab bar. + + + + Tab position + + + + Determines the position of the tabs. + + + + + TabViewToolAction + + Add Tab... + + + + Step into Tab + + + + + TargetSettingsPanelItem + + No kit defined in this project. + 项目中未定义构建套件(Kit)。 + + + Configure Project + 配置项目 + + + + TargetSettingsPanelWidget + + &Configure Project + + + + Kit is unsuited for project + + + + Click to activate + + + + Enable Kit for Project "%1" + + + + Enable Kit for All Projects + + + + Disable Kit for Project "%1" + + + + Cancel Build and Disable Kit in This Project + + + + Do Not Remove + 不要移除 + + + Disable Kit "%1" in This Project? + + + + The kit <b>%1</b> is currently being built. + 构建套件<b>%1</b>正在被构建。 + + + Do you want to cancel the build process and remove the kit anyway? + + + + Disable Kit for All Projects + + + + Copy Steps From Another Kit... + + + + Build + 构建 + + + Run + 运行 + + + Enable Kit + + + + + TaskHub + + Error + 错误 + + + Warning + 警告 + + + Build Issue + + + + + TaskList::Internal::StopMonitoringHandler + + Stop Monitoring + 停止监视 + + + Stop monitoring task files. + 停止监视任务文件。 + + + + TaskList::Internal::TaskListPlugin + + My Tasks + 我的任务 + + + Cannot open task file %1: %2 + 文法打开任务文件%1:%2 + + + File Error + 文件错误 + + + + TemplateMerge + + Merge With Template + + + + &Browse... + 浏览(&B)... + + + Template: + + + + Browse Template + + + + + TextAreaSpecifics + + Color + 颜色 + + + Text Area + + + + Text + 文本 + + + Text shown on the text area. + + + + Read only + 只读 + + + Determines whether the text area is read only. + + + + Document margins + + + + Margins of the text area. + + + + Frame width + + + + Width of the frame. + + + + Contents frame + + + + Determines whether the frame around contents is shown. + + + + Focus Handling + + + + Highlight on focus + + + + Determines whether the text area is highlighted on focus. + + + + Tab changes focus + + + + Determines whether tab changes the focus of the text area. + + + + Focus on press + + + + Determines whether the text area gets focus if pressed. + + + + + TextEditor + + Text Editor + 文本编辑器 + + + Cannot create temporary file "%1": %2. + + + + Failed to format: %1. + + + + Cannot read file "%1": %2. + + + + Cannot call %1 or some other error occurred. Timeout reached while formatting file %2. + + + + Error in text formatting: %1 + + + + Could not format file %1. + + + + File %1 was closed. + + + + File was modified. + + + + + TextEditor::BaseFileFind + + Searching + 搜索中 + + + %n found. + + + + + + %n occurrences replaced. + + + + + + Aborting replace. + + + + + TextEditor::BaseTextEditor + + A highlight definition was not found for this file. Would you like to download additional highlight definition files? + + + + Download Definitions + 下载定义 + + + More than one highlight definition was found for this file. Which one should be used to highlight this file? + + + + Remember My Choice + + + + + TextEditor::BehaviorSettingsPage + + Global + Settings + 全局 + + + Behavior + 行为 + + + + TextEditor::BehaviorSettingsWidget + + Typing + 打字 + + + Enable automatic &indentation + 开启自动缩进(&) + + + Backspace indentation: + 退格缩进: + + + <html><head/><body> +Specifies how backspace interacts with indentation. + +<ul> +<li>None: No interaction at all. Regular plain backspace behavior. +</li> + +<li>Follows Previous Indents: In leading white space it will take the cursor back to the nearest indentation level used in previous lines. +</li> + +<li>Unindents: If the character behind the cursor is a space it behaves as a backtab. +</li> +</ul></body></html> + + <html><head/><body> +指定退格键如何与缩进互动。 + +<ul> +<li>无: 没有任何互动,正常的退格键行为。 +</li> + +<li>跟随上次的缩进: 在行首的空白处,依据之前行的缩进将光标移回最近一个缩进层次。 +</li> + +<li>反缩进: 如果光标之后的字符是空格,则表现为 backtab。 +</li> +</ul></body></html> + + + + None + + + + Follows Previous Indents + 跟随之前的缩进 + + + Unindents + 反缩进 + + + Tab key performs auto-indent: + 制表符(Tab键)提供自动缩进: + + + Never + 从不 + + + Always + 总是 + + + In Leading White Space + 用于行首空白 + + + Cleanup actions which are automatically performed right before the file is saved to disk. + 文件保存到磁盘上之后会自动执行的清理动作。 + + + Cleanups Upon Saving + 保存时清理 + + + Removes trailing whitespace upon saving. + 保存时去除尾部空白。 + + + &Clean whitespace + 清除空白(&C) + + + In entire &document + 用于整个文档(&D) + + + Clean indentation + 清除缩进 + + + &Ensure newline at end of file + 确保文件结尾有新的一行(&E) + + + File Encodings + 文件编码 + + + Default encoding: + 默认编码: + + + Add If Encoding Is UTF-8 + 如果编码是UTF-8则添加 + + + Keep If Already Present + 目前存在了则保留 + + + Always Delete + 总是删除 + + + UTF-8 BOM: + UTF-8 BOM: + + + Mouse and Keyboard + 鼠标和键盘 + + + Enable &mouse navigation + 开启鼠标导航(&M) + + + Enable scroll &wheel zooming + 开启鼠标滚轮缩放(&W) + + + Enable built-in camel case &navigation + 开启内建的驼峰大小写导航(&N) + + + On Mouseover + 在鼠标悬停时 + + + On Shift+Mouseover + 在Shift+鼠标悬停时 + + + Prefer single line comments + + + + Skip clean whitespace for file types: + + + + For the file patterns listed, do not trim trailing whitespace. + + + + List of wildcard-aware file patterns, separated by commas or semicolons. + + + + Always writes a newline character at the end of the file. + + + + Corrects leading whitespace according to tab settings. + + + + Cleans whitespace in entire document instead of only for changed parts. + + + + <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 the text editor 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> + + + + Hide mouse cursor while typing + + + + Enable smart selection changing + + + + Using Select Block Up / Down actions will now provide smarter selections. + + + + Show help tooltips using keyboard shortcut (Alt) + + + + Pressing Alt displays context-sensitive help or type information as tooltips. + + + + Default line endings: + + + + Show help tooltips using the mouse: + + + + Displays context-sensitive help or type information on mouseover. + + + + Displays context-sensitive help or type information on Shift+Mouseover. + + + + Unix (LF) + + + + Windows (CRLF) + + + + + TextEditor::CodeStyleEditor + + Edit preview contents to see how the current settings are applied to custom code snippets. Changes in the preview do not affect the current settings. + 编辑预览内容来查看当前设置如何应用到自定义代码段。在预览中修改并不影响当前设置。 + + + + TextEditor::CodeStyleSelectorWidget + + Copy... + 复制... + + + Remove + 删除 + + + Import... + 导入... + + + Export... + 输出... + + + Current settings: + 当前设置: + + + Copy Code Style + 复制代码风格 + + + Code style name: + 代码风格名称: + + + %1 (Copy) + %1 (复制) + + + Delete Code Style + 删除代码风格 + + + Are you sure you want to delete this code style permanently? + 您确定想永久删除这项代码风格方案吗? + + + Delete + 删除 + + + Import Code Style + 导入代码风格 + + + Code styles (*.xml);;All files (*) + 代码风格(*.xml);;所有文件(*) + + + Cannot import code style from %1 + 无法从%1导入代码风格 + + + Export Code Style + 导出代码风格 + + + %1 [proxy: %2] + %1 [代理: %2] + + + %1 [built-in] + %1 [内置] + + + + TextEditor::DisplaySettingsPage + + Display + 显示 + + + Display line &numbers + 显示行号(&N) + + + Display &folding markers + 显示折叠标记(&F) + + + &Visualize whitespace + 标示空白 + + + Highlight current &line + 高亮显示当前行(&L) + + + Enable text &wrapping + 开启文字折行 + + + Display right &margin at column: + 显示右边分界(&M)在列: + + + Highlight &blocks + 高亮显示段落(&B) + + + Mark &text changes + 标记文本改变(&T) + + + &Animate matching parentheses + 动画显示对应的括号(&A) + + + Auto-fold first &comment + 自动折叠开头的注释(&C) + + + Center &cursor on scroll + 滚动时居中光标(&C) + + + <i>Set <a href="font zoom">font line spacing</a> to 100% to enable text wrapping option.</i> + + + + Tint whole margin area + + + + Use context-specific margin + + + + If available, use a different margin. For example, the ColumnLimit from the ClangFormat plugin. + + + + Highlight search results on the scrollbar + + + + Animate navigation within file + + + + Visualize indent + + + + Display file line ending + + + + Display file encoding + + + + Always open links in another split + + + + &Highlight matching parentheses + + + + Shows tabs and spaces. + + + + Next to editor content + + + + Next to right margin + + + + Aligned at right side + + + + Between lines + + + + Line annotations + + + + Margin + 页面空白 + + + Wrapping + + + + + TextEditor::FindInFiles + + Director&y: + 目录(&Y): + + + Files in File System + 文件系统中的文件 + + + %1 "%2": + + + + Path: %1 +Filter: %2 +Excluding: %3 +%4 + the last arg is filled by BaseFileFind::runNewSearch + + + + Search engine: + + + + Directory to Search + + + + + TextEditor::FontSettingsPageWidget + + Family: + 字型: + + + Size: + 字号: + + + Font + 字体 + + + Antialias + 抗锯齿 + + + Copy... + 复制... + + + Delete + 删除 + + + % + % + + + Zoom: + 缩放: + + + A line spacing value other than 100% disables text wrapping. +A value less than 100% can result in overlapping and misaligned graphics. + + + + Import + 导入 + + + Export + + + + Line spacing: + + + + Color Scheme for Theme "%1" + + + + Copy Color Scheme + 复制配色方案 + + + Color scheme name: + 配色方案名称: + + + %1 (copy) + %1 (复制) + + + Delete Color Scheme + 删除配色方案 + + + Are you sure you want to delete this color scheme permanently? + 您确定想永久删除这项配色方案吗? + + + Import Color Scheme + + + + Color scheme (*.xml);;All files (*) + + + + Export Color Scheme + + + + Color Scheme Changed + 配色方案改变 + + + The color scheme "%1" was modified, do you want to save the changes? + 配色方案 "%1" 被改变,您想保存改变么? + + + Discard + 丢弃 + + + Font && Colors + 字体和颜色 + + + + TextEditor::FunctionHintProposalWidget + + %1 of %2 + %1/%2 + + + + TextEditor::Highlighter + + Highlighter updates: done + + + + Highlighter updates: + + + + Highlighter updates: starting + + + + + TextEditor::Internal::ColorScheme + + Not a color scheme file. + 不是一个配色方案文件. + + + + TextEditor::Internal::ColorSchemeEdit + + Bold + 粗体 + + + Italic + 斜体 + + + Background: + 背景颜色: + + + Foreground: + 前景颜色: + + + Unset + + + + <p align='center'><b>Builtin color schemes need to be <a href="copy">copied</a><br/> before they can be changed</b></p> + + + + Unset foreground. + + + + Unset background. + + + + Relative Foreground + + + + Saturation: + + + + Lightness: + + + + Relative Background + + + + Font + 字体 + + + Underline + + + + Color: + 颜色: + + + No Underline + + + + Single Underline + + + + Wave Underline + + + + Dot Underline + + + + Dash Underline + + + + Dash-Dot Underline + + + + Dash-Dot-Dot Underline + + + + + TextEditor::Internal::CompletionSettingsPage + + Full + 全部 + + + None + + + + First Letter + 仅首字母 + + + &Case-sensitivity: + 大小写敏感(&C): + + + Manually + 手动设置 + + + When Triggered + 当触发时 + + + Always + 总是 + + + Activate completion: + 激活补全: + + + Timeout in ms: + + + + Character threshold: + + + + Autocomplete common &prefix + 自动补全共同前缀(&P) + + + Inserts the common prefix of available completion items. + + + + Automatically split strings + + + + Splits a string into two lines by adding an end quote at the cursor position when you press Enter and a start quote to the next line, before the rest of the string. + +In addition, Shift+Enter inserts an escape character at the cursor position and moves the rest of the string to the next line. + + + + Insert opening or closing brackets + + + + Insert closing quote + + + + Surround text selection with brackets + + + + When typing a matching bracket and there is a text selection, instead of removing the selection, surrounds it with the corresponding characters. + + + + Insert &space after function name + 在函数名后插入空格(&S) + + + Surround text selection with quotes + + + + When typing a matching quote and there is a text selection, instead of removing the selection, surrounds it with the corresponding characters. + + + + Animate automatically inserted text + + + + Show a visual hint when for example a brace or a quote is automatically inserted by the editor. + + + + Highlight automatically inserted text + + + + Skip automatically inserted character when typing + + + + Skip automatically inserted character if re-typed manually after completion or by pressing tab. + + + + Remove automatically inserted text on backspace + + + + Remove the automatically inserted character if the trigger is deleted by backspace after the completion. + + + + Overwrite closing punctuation + + + + Automatically overwrite closing parentheses and quotes. + + + + Enable Doxygen blocks + 打开Doxgen注释块功能 + + + Automatically creates a Doxygen comment upon pressing enter after a '/**', '/*!', '//!' or '///'. + + + + Generate brief description + 生成简略描述 + + + Generates a <i>brief</i> command with an initial description for the corresponding declaration. + + + + Add leading asterisks + 行首添加星号 + + + Adds leading asterisks when continuing C/C++ "/*", Qt "/*!" and Java "/**" style comments on new lines. + + + + Behavior + 行为 + + + &Automatically insert matching characters + + + + Documentation Comments + 文档注释 + + + Completion + 补全 + + + + TextEditor::Internal::FindInCurrentFile + + Current File + 当前文件 + + + File path: %1 +%2 + 文件路径: '%1' +%2 + + + File "%1": + @@ -47373,8 +46267,1825 @@ cannot be found in the path. %1 + + TextEditor::Internal::HighlighterSettingsPage + + Syntax Highlight Definition Files + 语法高亮定义文件 + + + Ignored file patterns: + 被忽略的文件模式: + + + <html><head/><body><p>Highlight definitions are provided by the <a href="https://api.kde.org/frameworks/syntax-highlighting/html/index.html">KSyntaxHighlighting</a> engine.</p></body></html> + + + + Download Definitions + 下载定义 + + + Download missing and update existing syntax definition files. + + + + Reload Definitions + + + + Reload externally modified definition files. + + + + Reset Remembered Definitions + + + + Reset definitions remembered for files that can be associated with more than one highlighter definition. + + + + User Highlight Definition Files + + + + Download finished + + + + Generic Highlighter + 通用高亮器 + + + + TextEditor::Internal::LineNumberFilter + + Line %1 + 行%1 + + + Line in Current Document + 当前文档内的行 + + + Jumps to the given line in the current document. + + + + <line>:<column> + + + + Line %1, Column %2 + + + + Column %1 + + + + + TextEditor::Internal::OutlineFactory + + Outline + 大纲 + + + + TextEditor::Internal::OutlineWidgetStack + + No outline available + 没有可用大纲 + + + Synchronize with Editor + 与编辑器同步 + + + Filter tree + 过滤视图 + + + Sort Alphabetically + 按字母排序 + + + + TextEditor::Internal::Snippets + + + Snippets are text fragments that can be inserted into an editor via the usual completion mechanics using a trigger text. The translated text (trigger variant) is used to disambiguate between snippets with the same trigger. + + + + + TextEditor::Internal::SnippetsCollection + + Cannot create user snippet directory %1 + 无法创建用户片断目录%1 + + + + TextEditor::Internal::SnippetsSettingsPage + + Add + 添加 + + + Remove + 删除 + + + Revert Built-in + 还原到内置(Built-in) + + + Restore Removed Built-ins + 恢复被删除的内置 + + + Reset All + 重置所有 + + + Group: + 组: + + + Error While Saving Snippet Collection + 保存片断集时发生错误 + + + Error + 错误 + + + No snippet selected. + 没有选择的片段。 + + + Snippets + 片段 + + + + TextEditor::Internal::SnippetsTableModel + + Error + 错误 + + + Trigger + 触发 + + + Trigger Variant + 触发种类 + + + Error reverting snippet. + 恢复碎片发生错误。 + + + Not a valid trigger. A valid trigger can only contain letters, numbers, or underscores, where the first character is limited to letter or underscore. + + + + + TextEditor::Internal::TextEditorActionHandler + + &Undo + 撤销(&U) + + + &Redo + + + + Delete &Line + 删除行(&L) + + + Delete Line from Cursor On + + + + Delete Word from Cursor On + 从光标处删除文字 + + + Delete Word Camel Case from Cursor On + 从光标处删除驼峰式文字 + + + Delete Line up to Cursor + + + + Ctrl+Backspace + + + + Delete Word up to Cursor + 从光标上方处删除文字 + + + Delete Word Camel Case up to Cursor + 从光标上方处删除驼峰式文字 + + + Go to Block Start with Selection + 选中到段落开头 + + + Ctrl+{ + Ctrl+{ + + + Go to Block End with Selection + 选中到段落末尾 + + + Ctrl+} + Ctrl+} + + + Move Line Up + 上移一行 + + + Ctrl+Shift+Up + Ctrl+Shift+Up + + + Move Line Down + 下移一行 + + + Ctrl+Shift+Down + Ctrl+Shift+Down + + + Copy Line Up + 向上复制本行 + + + Ctrl+Alt+Up + Ctrl+Alt+Up + + + Copy Line Down + 向下复制本行 + + + Ctrl+Alt+Down + Ctrl+Alt+Down + + + Join Lines + 合并行 + + + Ctrl+J + Ctrl+J + + + Insert Line Above Current Line + 在当前行之前插入行 + + + Ctrl+Shift+Return + Ctrl+Shift+Return + + + Insert Line Below Current Line + 在当前行之后插入行 + + + Ctrl+Return + Ctrl+Return + + + Toggle UTF-8 BOM + + + + Indent + 缩进 + + + Unindent + 不缩进 + + + Follow Symbol Under Cursor + 跟踪光标位置的符号 + + + Follow Symbol Under Cursor in Next Split + + + + Meta+E, F2 + + + + Ctrl+E, F2 + + + + Find References to Symbol Under Cursor + + + + Ctrl+Shift+U + Ctrl+Shift+U + + + Rename Symbol Under Cursor + 重命名光标所在符号 + + + Ctrl+Shift+R + Ctrl+Shift+R + + + Jump to File Under Cursor + 跳转到光标下的文件 + + + Jump to File Under Cursor in Next Split + + + + Move the View a Page Up and Keep the Cursor Position + + + + Ctrl+PgUp + + + + Move the View a Page Down and Keep the Cursor Position + + + + Ctrl+PgDown + + + + Move the View a Line Up and Keep the Cursor Position + + + + Ctrl+Up + + + + Move the View a Line Down and Keep the Cursor Position + + + + Ctrl+Down + + + + Select Encoding... + 选择编码... + + + Paste from Clipboard History + 从剪贴板历史中粘贴 + + + Ctrl+Shift+V + Ctrl+Shift+V + + + Paste Without Formatting + + + + Ctrl+Alt+Shift+V + + + + Auto-&indent Selection + 选中的文字自动缩进(&i) + + + Ctrl+I + Ctrl+I + + + Auto-&format Selection + + + + Ctrl+; + + + + &Rewrap Paragraph + 段落重新折行(&R) + + + Meta+E, R + Meta+E, R + + + Ctrl+E, R + Ctrl+E, R + + + &Visualize Whitespace + 标示空白(&V) + + + Meta+E, Meta+V + Meta+E, Meta+V + + + Ctrl+E, Ctrl+V + Ctrl+E, Ctrl+V + + + Clean Whitespace + 清除空白 + + + Enable Text &Wrapping + 开启文字折行(&W) + + + Meta+E, Meta+W + Meta+E, Meta+W + + + Ctrl+E, Ctrl+W + Ctrl+E, Ctrl+W + + + Toggle Comment &Selection + 选中区域注释/反注释(&S) + + + Ctrl+/ + Ctrl+/ + + + Cut &Line + 剪切行(&L) + + + Shift+Del + Shift+Del + + + Copy &Line + 复制行(&L) + + + Ctrl+Ins + Ctrl+Ins + + + Copy With Highlighting + + + + Create Cursors at Selected Line Ends + + + + Alt+Shift+I + + + + Add Next Occurrence to Selection + + + + Ctrl+D + + + + &Duplicate Selection + + + + &Duplicate Selection and Comment + + + + Uppercase Selection + 大写选择 + + + Meta+Shift+U + Meta+Shift+U + + + Alt+Shift+U + Alt+Shift+U + + + Lowercase Selection + 小写选择 + + + Meta+U + Meta+U + + + Alt+U + Alt+U + + + &Sort Selected Lines + + + + Meta+Shift+S + + + + Alt+Shift+S + + + + Fold + 折叠 + + + Ctrl+< + Ctrl+< + + + Unfold + 展开 + + + Ctrl+> + Ctrl+> + + + Toggle &Fold All + 选择 折叠/展开所有(&F) + + + Increase Font Size + 增大字号 + + + Ctrl++ + Ctrl++ + + + Decrease Font Size + 减小字号 + + + Ctrl+- + Ctrl+- + + + Reset Font Size + 重置字号 + + + Meta+0 + Meta+0 + + + Ctrl+0 + Ctrl+0 + + + Go to Block Start + 移到段落开头 + + + Ctrl+[ + Ctrl+[ + + + Go to Block End + 移到段落结尾 + + + Ctrl+] + Ctrl+] + + + Select Block Up + 选择段落上移 + + + Ctrl+U + Ctrl+U + + + Select Block Down + 选择的段落下移 + + + Ctrl+Shift+Alt+U + + + + Select Word Under Cursor + + + + Go to Document Start + + + + Go to Document End + + + + Go to Line Start + 移到行首 + + + Go to Line End + 移到行尾 + + + Go to Next Line + 移到下一行 + + + Go to Previous Line + 移到前一行 + + + Go to Previous Character + 移到上一字符 + + + Go to Next Character + 移到下一字符 + + + Go to Previous Word + 移到上一单词 + + + Go to Next Word + 移到下一单词 + + + Go to Previous Word Camel Case + 移到上一个使用骆驼命名法的单词 + + + Go to Next Word Camel Case + 移到下一个使用骆驼命名法的单词 + + + Go to Line Start with Selection + 选中到行首 + + + Go to Line End with Selection + 选中到行尾 + + + Go to Next Line with Selection + 选中到下一行 + + + Go to Previous Line with Selection + 选中到上一行 + + + Go to Previous Character with Selection + 选中到上一字符 + + + Go to Next Character with Selection + 选中到下一字符 + + + Go to Previous Word with Selection + 选中到上一单词 + + + Go to Next Word with Selection + 选中到下一单词 + + + Go to Previous Word Camel Case with Selection + 选中到上一个使用骆驼命名法的单词 + + + Go to Next Word Camel Case with Selection + 选中到下一个使用骆驼命名法的单词 + + + + TextEditor::Internal::TextEditorPlugin + + Ctrl+Space + Ctrl+Space + + + Meta+Space + Meta+Space + + + Alt+Return + Alt+Return + + + Selected text within the current document. + 当前文档中选中的文本。 + + + Line number of the text cursor position in current document (starts with 1). + 当前文档光标所在位置的行号(以1开始). + + + Column number of the text cursor position in current document (starts with 0). + 当前文档光标所在位置的列号(以0开始). + + + Number of lines visible in current document. + 当前文档的可见行数。 + + + Number of columns visible in current document. + 当前文档的可见列数。 + + + Current document's font size in points. + 当前文档的字体大小(以点为单位)。 + + + Trigger Completion + + + + Display Function Hint + + + + Meta+Shift+D + + + + Ctrl+Shift+D + + + + Trigger Refactoring Action + + + + Show Context Menu + + + + Text + SnippetProvider + 文本 + + + Word under the current document's text cursor. + + + + + TextEditor::SearchEngine + + Internal + + + + + TextEditor::TabSettingsWidget + + Tabs And Indentation + 制表符和缩进 + + + Ta&b size: + 制表符尺寸(&B): + + + &Indent size: + 缩进尺寸(&i): + + + Align continuation lines: + 对齐连续行: + + + <html><head/><body> +Influences the indentation of continuation lines. + +<ul> +<li>Not At All: Do not align at all. Lines will only be indented to the current logical indentation depth. +<pre> +(tab)int i = foo(a, b +(tab)c, d); +</pre> +</li> + +<li>With Spaces: Always use spaces for alignment, regardless of the other indentation settings. +<pre> +(tab)int i = foo(a, b +(tab) c, d); +</pre> +</li> + +<li>With Regular Indent: Use tabs and/or spaces for alignment, as configured above. +<pre> +(tab)int i = foo(a, b +(tab)(tab)(tab) c, d); +</pre> +</li> +</ul></body></html> + <html><head/><body> +改变连续行的缩进 + +<ul> +<li>不对齐: 不进行对齐。代码行只根据当前逻辑缩进深度进行缩进。 +<pre> +(tab)int i = foo(a, b +(tab)c, d); +</pre> +</li> + +<li>伴随空格: 允许使用空格进行对齐,忽略其他缩进设置。 +<pre> +(tab)int i = foo(a, b +(tab) c, d); +</pre> +</li> + +<li>伴随规则缩进: 在原设置上使用 tab 或 空格进行对齐。 +<pre> +(tab)int i = foo(a, b +(tab)(tab)(tab) c, d); +</pre> +</li> +</ul></body></html> + + + Not At All + 不对齐 + + + With Spaces + 伴随空格 + + + With Regular Indent + 伴随规则缩进 + + + Tab policy: + 缩进策略: + + + Spaces Only + 仅空格 + + + Tabs Only + 仅缩进 + + + Mixed + 混合 + + + <i>Code indentation is configured in <a href="C++">C++</a> and <a href="QtQuick">Qt Quick</a> settings.</i> + + + + The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files. + + + + + TextEditor::TextDocument + + Diff Against Current File + + + + Opening File + 打开文件 + + + + TextEditor::TextEditorSettings + + Text + 文本 + + + Link + 链接 + + + Links that follow symbol under cursor. + 跟随光标所在符号的链接。 + + + Selection + 选择 + + + Selected text. + 选中的文本。 + + + Line Number + 行号 + + + Line numbers located on the left side of the editor. + 位于编辑器左侧的行号。 + + + Search Result + 搜索结果 + + + Highlighted search results inside the editor. + 在编辑器中高亮搜索结果。 + + + Search Scope + 搜索范围 + + + Section where the pattern is searched in. + 搜索模式所在的搜索段落范围。 + + + Parentheses + 括号 + + + Displayed when matching parentheses, square brackets or curly brackets are found. + 当匹配到括号、方括号和大括号时显示。 + + + Current Line + 当前行 + + + Line where the cursor is placed in. + 光标所在的行号。 + + + Current Line Number + 当前行号 + + + Line number located on the left side of the editor where the cursor is placed in. + 当前光标所在位置、位于编辑器左侧的行号。 + + + Occurrences + 出现位置 + + + Occurrences of the symbol under the cursor. +(Only the background will be applied.) + 光标处的符号出现的位置。 +(仅应用背景颜色。) + + + Unused Occurrence + 未使用的出现位置 + + + Occurrences of unused variables. + 未用到的变量出现的位置。 + + + Renaming Occurrence + 重命名出现位置 + + + Occurrences of a symbol that will be renamed. + 将要被更名的符号出现的位置。 + + + Number + 数字 + + + Number literal. + 数字。 + + + String + 字符串 + + + Character and string literals. + 字符和字符串。 + + + Type + 类型 + + + Name of a type. + 类型名称。 + + + Local + 局部 + + + Local variables. + 局部变量。 + + + Field + 字段 + + + Class' data members. + 类的数据成员。 + + + Enumeration + 枚举量 + + + Function + 函数 + + + Name of a function. + 函数名。 + + + QML item id within a QML file. + QML文件中的QML项的id。 + + + QML property of a parent item. + 父项的QML属性。 + + + Property of the same QML item. + 同一个QML项的属性。 + + + Location in the files where the difference is (in diff editor). + diff编辑器中显示文件差别所在的位置。 + + + QML Binding + QML 绑定 + + + QML item property, that allows a binding to another property. + 允许绑定到另一个属性的QML项属性。 + + + QML Local Id + QML 局部 ID + + + QML Root Object Property + QML 根对象属性 + + + QML Scope Object Property + QML 范围对象的属性 + + + QML State Name + QML 状态名 + + + Name of a QML state. + QML状态的名称。 + + + QML Type Name + QML类型名 + + + Name of a QML type. + QML类型名。 + + + QML External Id + QML 外部 ID + + + QML id defined in another QML file. + 在另一个QML文件中定义的QML id。 + + + QML External Object Property + QML 外部对象属性 + + + QML property defined in another QML file. + 在另一个QML文件中定义的QML属性。 + + + JavaScript Scope Var + JavaScript 范围变量 + + + Variables defined inside the JavaScript file. + JavaScript文件内定义的变量。 + + + JavaScript Import + JavaScript 导入 + + + Name of a JavaScript import inside a QML file. + QML文件内的JavaScript导入的名称。 + + + JavaScript Global Variable + JavaScript 全局变量 + + + Variables defined outside the script. + 脚本内定义的变量。 + + + Keyword + 关键字 + + + Operator + 运算符 + + + Preprocessor + 预处理器 + + + Preprocessor directives. + 预处理指令。 + + + Label + 标签 + + + Labels for goto statements. + goto语句的标签。 + + + Comment + 注释 + + + All style of comments except Doxygen comments. + 除Doxygen注释之外的所有风格的注释。 + + + Doxygen Comment + Doxgen注释 + + + Doxygen comments. + Doxgen注释。 + + + Doxygen Tag + Doxgen标签 + + + Visual Whitespace + 标示空白 + + + Disabled Code + 禁用的代码 + + + Code disabled by preprocessor directives. + 被预处理指令禁用的代码。 + + + Added Line + 添加的行 + + + Applied to added lines in differences (in diff editor). + 应用于(diff编辑器的)差异中增加的行。 + + + Removed Line + 删除的行 + + + Applied to removed lines in differences (in diff editor). + 应用于(diff编辑器的)差异中删除的行。 + + + Diff File + Diff文件 + + + Compared files (in diff editor). + (diff编辑中)比较的文件。 + + + Diff Location + Diff路径 + + + Generic text and punctuation tokens. +Applied to text that matched no other rule. + + + + Search Result (Alternative 1) + + + + Highlighted search results inside the editor. +Used to mark read accesses to C++ symbols. + + + + Search Result (Alternative 2) + + + + Highlighted search results inside the editor. +Used to mark write accesses to C++ symbols. + + + + Search Result Containing function + + + + Highlighted search results inside the editor. +Used to mark containing function of the symbol usage. + + + + Mismatched Parentheses + + + + Displayed when mismatched parentheses, square brackets, or curly brackets are found. + + + + Auto Complete + + + + Displayed when a character is automatically inserted like brackets or quotes. + + + + Primitive Type + + + + Name of a primitive data type. + + + + Namespace + + + + Name of a namespace. + + + + Parameter + + + + Function or method parameters. + + + + Global + + + + Global variables. + + + + Applied to enumeration items. + + + + Declaration + + + + Style adjustments to declarations. + + + + Function Definition + + + + Name of function at its definition. + + + + Virtual Function + + + + Name of function declared as virtual. + + + + Reserved keywords of the programming language except keywords denoting primitive types. + + + + Punctuation + + + + Punctuation excluding operators. + + + + Non user-defined language operators. +To style user-defined operators, use Overloaded Operator. + + + + Overloaded Operators + + + + Calls and declarations of overloaded (user-defined) operators. + + + + Macro + + + + Macros. + + + + Doxygen tags. + + + + Whitespace. +Will not be applied to whitespace in comments and strings. + + + + Diff File Line + + + + Applied to lines with file information in differences (in side-by-side diff editor). + + + + Diff Context Line + + + + Applied to lines describing hidden context in differences (in side-by-side diff editor). + + + + Diff Source Line + + + + Applied to source lines with changes in differences (in side-by-side diff editor). + + + + Diff Source Character + + + + Applied to removed characters in differences (in side-by-side diff editor). + + + + Diff Destination Line + + + + Applied to destination lines with changes in differences (in side-by-side diff editor). + + + + Diff Destination Character + + + + Applied to added characters in differences (in side-by-side diff editor). + + + + Log Change Line + + + + Applied to lines describing changes in VCS log. + + + + Log Author Name + + + + Applied to author names in VCS log. + + + + Log Commit Date + + + + Applied to commit dates in VCS log. + + + + Log Commit Hash + + + + Applied to commit hashes in VCS log. + + + + Log Decoration + + + + Applied to commit decorations in VCS log. + + + + Log Commit Subject + + + + Applied to commit subjects in VCS log. + + + + Error + 错误 + + + Underline color of error diagnostics. + + + + Error Context + + + + Underline color of the contexts of error diagnostics. + + + + Warning + 警告 + + + Underline color of warning diagnostics. + + + + Warning Context + + + + Underline color of the contexts of warning diagnostics. + + + + Output Argument + + + + Writable arguments of a function call. + + + + Static Member + + + + Names of static fields or member functions. + + + + Code Coverage Added Code + + + + New code that was not checked for tests. + + + + Partially Covered Code + + + + Partial branch/condition coverage. + + + + Uncovered Code + + + + Not covered at all. + + + + Fully Covered Code + + + + Fully covered code. + + + + Manually Validated Code + + + + User added validation. + + + + Code Coverage Dead Code + + + + Unreachable code. + + + + Code Coverage Execution Count Too Low + + + + Minimum count not reached. + + + + Implicitly Not Covered Code + + + + PLACEHOLDER + + + + Implicitly Covered Code + + + + Implicit Manual Coverage Validation + + + + + TextEditor::TextEditorWidget + + Line: 9999, Col: 999 + 行号: %1, 列号: 999 + + + Line: %1, Col: %2 + 行号: %1, 列号: %2 + + + Cursor position: %1 + + + + Other annotations + + + + Print Document + 打印文档 + + + File Error + 文件错误 + + + The text is too large to be displayed (%1 MB). + 文本过大,无法显示(%1 MB)。 + + + <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. + + + + Select Encoding + 选择编码 + + + Snippet Parse Error + + + + Zoom: %1% + + + + Delete UTF-8 BOM on Save + 保存时删除UTF-8 BOM + + + Add UTF-8 BOM on Save + 保存时添加UTF-8 BOM + + + + TextEditor::TextMark + + Show Diagnostic Settings + + + + + TextFieldSpecifics + + Text Field + + + + Text + 文本 + + + Text shown on the text field. + + + + Placeholder text + + + + Placeholder text. + + + + Read only + 只读 + + + Determines whether the text field is read only. + + + + Input mask + 输入掩码 + + + Restricts the valid text in the text field. + + + + Echo mode + 回显模式 + + + Specifies how the text is displayed in the text field. + + + + + TextMark + + Copy to Clipboard + + + + + TextTool + + Text Tool + + + + + TextToolAction + + Edit Text + + + + + TimelineBarItem + + Range from %1 to %2 + + + + Override Color + + + + Reset Color + + + + + TimelineKeyframeItem + + Delete Keyframe + + + + Edit Easing Curve... + + + + Edit Keyframe... + + + Todo + + Keyword + 关键字 + + + Icon + 图标 + + + Color + 颜色 + + + errorLabel + dont need to translate + errorLabel + + + Keyword cannot be empty, contain spaces, colons, slashes or asterisks. + 关键字不能为空,包含空格、冒号、斜杠或者星号。 + + + There is already a keyword with this name. + 已经有一个同名关键字。 + + + Keywords + 关键字 + + + Add + 添加 + + + Edit + 编辑 + + + Remove + 删除 + + + Reset + 重置 + + + Scanning scope + 扫描范围 + Description 说明 @@ -47387,9 +48098,6 @@ cannot be found in the path. Line 行号 - - - Todo To-Do Entries To-Do事项 @@ -47398,16 +48106,2447 @@ cannot be found in the path. To-Do To-Do - - - VcsBase::Internal::UrlTextCursorHandler - Open URL in Browser... - 在浏览器中打开URL... + Scan the whole active project + - Copy URL Location - 复制URL位置 + Scan only the currently edited document + + + + Scan the current subproject + + + + Current Document + 当前文档 + + + Scan only the currently edited document. + + + + Active Project + + + + Scan the whole active project. + + + + Subproject + + + + Scan the current subproject. + + + + Show "%1" entries + + + + <Enter regular expression to exclude> + + + + Regular expressions for file paths to be excluded from scanning. + + + + Excluded Files + + + + + TopicChooser + + Choose a topic for <b>%1</b>: + 为<b>%1</b>选择一个标题: + + + Choose Topic + 选择标题 + + + + Tracing + + Duration + 持续时间 + + + Selection + 选择 + + + Start + 启动 + + + Jump to previous event. + + + + Jump to next event. + + + + Show zoom slider. + + + + Select range. + + + + View event information on mouseover. + + + + Collapse category + + + + Expand category + + + + others + + + + unknown + + + + No data available + + + + Edit note + + + + Close + 关闭 + + + [unknown] + + + + End + + + + Could not open %1 for writing. + + + + Could not open %1 for reading. + + + + Could not re-read events from temporary trace file: %1 +The trace data is lost. + + + + + UpdateInfo + + Qt Maintenance Tool + + + + Start Maintenance Tool + + + + + UpdateInfo::Internal::UpdateInfoPlugin + + Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually. + 无法确定维护工具所在位置,请检查安装(有可能没有手动开启插件支持)。 + + + Checking for Updates + + + + New updates are available. Start the update? + + + + Start Update + + + + %1 (%2) + Package name and version + %1 (%2) + + + Available updates: + + + + %1 is available. Check the <a %2>Qt blog</a> for details. + + + + Start Package Manager + + + + Open Settings + + + + No updates found. + + + + The maintenance tool at "%1" is not an executable. Check your installation. + + + + Check for Updates + + + + + UpdateInfo::Internal::UpdateInfoSettingsPage + + Configure Filters + 配置过滤器 + + + Automatic Check for Updates + + + + Automatically runs a scheduled check for updates on a time interval basis. The automatic check for updates will be performed at the scheduled date, or the next startup following it. + + + + Check for new Qt versions + + + + Check interval basis: + + + + Next check date: + + + + Check Now + + + + Last check date: + + + + Not checked yet + + + + Daily + + + + Weekly + + + + Monthly + + + + New updates are available. + + + + No new updates are available. + + + + Checking for updates... + + + + Update + Update + 更新 + + + + Utils::Archive + + File format not supported. + + + + Could not find any unarchiving executable in PATH (%1). + + + + Command failed. + + + + Running %1 +in "%2". + + + Running <cmd> in <workingdirectory> + + + + + Utils::BaseTreeView + + Show %1 Column + + + + + Utils::CheckableMessageBox + + Do not ask again + 下次不再询问 + + + Show Details... + + + + Hide Details... + + + + Do not &ask again + + + + Do not &show again + + + + + Utils::ClassNameValidatingLineEdit + + The class name must not contain namespace delimiters. + 类名不能包含命名空间分隔符。 + + + Please enter a class name. + 请输入类名。 + + + The class name contains invalid characters. + 类名含有无效字符。 + + + + Utils::DebuggerMainWindow + + Start + + + + Stop + 停止 + + + + Utils::DetailsButton + + Details + 详情 + + + + Utils::ElfReader + + odd cpu architecture + 异常的cpu体系架构 + + + unexpected e_shsize + 未预料到的e_shsize + + + unexpected e_shentsize + 未预料到的 e_shentsize + + + announced %n sections, each %1 bytes, exceed file size + + 公布了 %n个部分,每部分%1个字节,超出了文件的大小 + + + + string table seems to be at 0x%1 + 字符串表可能在0x%1 + + + section name %1 of %2 behind end of file + %2的段名 %1在文件末尾之后 + + + "%1" is an invalid ELF object (%2) + + + + "%1" is not an ELF object (file too small) + + + + "%1" is not an ELF object + + + + odd endianness + + + + + Utils::EnvironmentDialog + + Edit Environment + 编辑时的环境变量 + + + Enter one environment variable per line. +To set or change a variable, use VARIABLE=VALUE. +To append to a variable, use VARIABLE+=VALUE. +To prepend to a variable, use VARIABLE=+VALUE. +Existing variables can be referenced in a VALUE with ${OTHER}. +To clear a variable, put its name on a line with nothing else on it. +To disable a variable, prefix the line with "#". + + + + + Utils::EnvironmentIdAccessor + + Settings File for "%1" from a Different Environment? + + + + <p>No settings file created by this instance of %1 was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%2"?</p> + + + + + Utils::EnvironmentModel + + <VARIABLE> + <变量> + + + + Utils::FancyLineEdit + + Filter + 过滤器 + + + Clear text + 清除文字 + + + + Utils::FancyMainWindow + + Reset to Default Layout + 重置为默认布局 + + + Central Widget + + + + Automatically Hide View Title Bars + + + + + Utils::FileNameValidatingLineEdit + + Name is empty. + 名称为空。 + + + Name contains white space. + 名称包含空白。 + + + File extension %1 is required: + 需要文件扩展 %1 : + + + File extensions %1 are required: + 需要文件扩展 %1 : + + + Invalid character "%1". + + + + Invalid characters "%1". + + + + Name matches MS Windows device (CON, AUX, PRN, NUL, COM1, COM2, ..., COM9, LPT1, LPT2, ..., LPT9) + + + + + Utils::FileSaverBase + + File Error + 文件错误 + + + + Utils::FileSearch + + %1: canceled. %n occurrences found in %2 files. + + %1: 被取消。在 %2 个文件找到了%n 次。 + + + + %1: %n occurrences found in %2 files. + + %1: 在 %2 个文件找到了%n 次。 + + + + Fi&le pattern: + 文件模式(&L): + + + Excl&usion pattern: + + + + List of comma separated wildcard filters. Files with file name or full file path matching any filter are included. + + + + + Utils::FileSystemModel + + My Computer + + + + Computer + + + + Name + + + + Size + + + + Kind + Match OS X Finder + 类型 + + + Type + All other platforms + 类型 + + + Date Modified + + + + + Utils::FileUtils + + Refusing to remove root directory. + 拒绝移除根目录(root)。 + + + Refusing to remove your home directory. + 拒绝移除您的家目录(home)。 + + + Cannot open %1 for reading: %2 + 无法打开%1 来读取: %2 + + + Cannot read %1: %2 + 无法读取%1: %2 + + + File Error + 文件错误 + + + Cannot write file %1. Disk full? + 无法写入文件%1。磁盘已满? + + + Cannot overwrite file %1: %2 + 无法覆盖文件 %1 : %2 + + + Cannot create file %1: %2 + 无法创建文件%1: %2 + + + Cannot create temporary file in %1: %2 + 无法在%1创建临时文件 : %2 + + + Failed to remove directory "%1". + + + + Failed to remove file "%1". + + + + %1 on %2 + File on device + + + + %1 %2 on %3 + File and args on device + + + + Cannot read %1 + + + + Cannot write file %1: %2 + + + + %1: Is a reserved filename on Windows. Cannot save. + + + + Overwrite File? + + + + Overwrite existing file "%1"? + + + + Could not copy file "%1" to "%2". + + + + Failed to create directory "%1". + 创建目录失败:'%1'。 + + + + Utils::FileWizardPage + + Choose the Location + 选择位置 + + + File name: + 文件名: + + + Path: + 路径: + + + Location + + + + The default suffix if you do not explicitly specify a file extension is ".%1". + + + + + Utils::HostOsInfo + + Cannot create OpenGL context. + + + + + Utils::InfoBarDisplay + + &Show Details + + + + Do Not Show Again + + + + Close + 关闭 + + + + Utils::LauncherHandle + + Process launcher socket error. + + + + + Utils::LauncherSocket + + Failed to start process launcher at "%1": %2 + + + + Process launcher closed unexpectedly: %1 + + + + Socket error: %1 + + + + Internal protocol error: invalid packet size %1. + + + + Internal protocol error: invalid packet type %1. + + + + Launcher socket closed unexpectedly. + + + + + Utils::LinearProgressWidget + + ... + ... + + + + Utils::MacroExpander + + Infinite recursion error + + + + %1: Full path including file name. + + + + %1: Full path excluding file name. + + + + %1: Full path including file name, with native path separator (backslash on Windows). + + + + %1: Full path excluding file name, with native path separator (backslash on Windows). + + + + %1: File name without path. + + + + %1: File base name without path and suffix. + + + + Global variables + + + + Access environment variables. + + + + + Utils::MinimizableInfoBars + + Minimize + 最小化 + + + + Utils::NameValueModel + + <UNSET> + <未设定> + + + Variable + 变量 + + + Value + + + + <VARIABLE> + Name when inserting a new variable + <变量> + + + <VALUE> + Value when inserting a new variable + <值> + + + + Utils::NameValuesDialog + + &OK + + + + &Cancel + 取消(&C) + + + + Utils::PathChooser + + Choose... + 选择... + + + Browse... + 浏览... + + + Choose Directory + 选择目录 + + + Choose Executable + 选择执行档 + + + Choose File + 选择文件 + + + The path must not be empty. + 路径不能为空。 + + + Path: + 路径: + + + The path "%1" expanded to an empty string. + + + + The path "%1" does not exist. + + + + The path "%1" is not a directory. + + + + The path "%1" is not a file. + + + + The directory "%1" does not exist. + + + + The path "%1" is not an executable file. + + + + Invalid path "%1". + + + + Cannot execute "%1". + + + + Full path: "%1" + + + + + Utils::PathListEditor + + Insert... + 插入... + + + Delete Line + 删除行 + + + Clear + 清除 + + + + Utils::ProjectIntroPage + + The project already exists. + 项目已经存在。 + + + A file with that name already exists. + 存在同名文件。 + + + Name: + 名称: + + + Create in: + 创建路径: + + + Use as default project location + 设为默认的项目路径 + + + Introduction and Project Location + 项目介绍和位置 + + + Enter project name + + + + Location + + + + Name is empty. + 名称为空。 + + + Project name is invalid. + + + + Invalid character ".". + + + + Invalid character "%1" found. + + + + + Utils::ProxyCredentialsDialog + + Proxy Credentials + + + + The proxy %1 requires a username and password. + + + + Username: + 用户名: + + + Username + + + + Password: + 密码: + + + Password + 密码 + + + + Utils::QtcProcess + + Error in command line. + 命令行发生错误。 + + + Internal socket error: %1 + + + + The program "%1" does not exist or is not executable. + + + + Process Not Responding + + + + The process is not responding. + 进程未响应。 + + + The process "%1" is not responding. + + + + Terminate the process? + + + + The command "%1" finished successfully. + + + + The command "%1" terminated with exit code %2. + + + + The command "%1" terminated abnormally. + + + + The command "%1" could not be started. + + + + The command "%1" did not respond within the timeout limit (%2 s). + + + + Cannot set up communication channel: %1 + 无法建立通信通道: %1 + + + Press <RETURN> to close this window... + 按 <RETURN> 来关闭窗口... + + + Cannot create temporary file: %1 + 无法创建临时文件: %1 + + + Cannot write temporary file. Disk full? + 无法创建临时文件。磁盘已满? + + + Cannot create temporary directory "%1": %2 + + + + Unexpected output from helper program (%1). + 意料外的输出,来自帮助程序 (%1)。 + + + Cannot change to working directory "%1": %2 + + + + Cannot execute "%1": %2 + + + + The process "%1" could not be started: %2 + + + + Quoting error in command. + 命令发生引用(quoting) 错误。 + + + Debugging complex shell commands in a terminal is currently not supported. + 目前不支持在终端中调试复杂的命令。 + + + Quoting error in terminal command. + 终端命令发生引用(quoting)错误。 + + + Terminal command may not be a shell command. + 终端命令可能不是一个shell命令。 + + + Cannot start the terminal emulator "%1", change the setting in the Environment preferences. (%2) + + + + Cannot create socket "%1": %2 + + + + Cannot obtain a handle to the inferior: %1 + 无法获得inferior的句柄: %1 + + + Cannot obtain exit status from inferior: %1 + 无法获得inferior的退出状态: %1 + + + Invalid command + + + + + Utils::RemoveFileDialog + + Remove File + 删除文件 + + + Remove Folder + + + + &Delete file permanently + 彻底删除文件(&D) + + + &Remove from version control + + + + File to remove: + + + + Folder to remove: + + + + + Utils::SettingsAccessor + + Failed to Read File + + + + Could not open "%1". + + + + Failed to Write File + + + + There was nothing to write. + + + + No Valid Settings Found + + + + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were unsuitable for the current version of %2, for instance because they were written by an incompatible version of %2, or because a different settings path was used.</p> + + + + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were either too new or too old to be read.</p> + + + + Using Old Settings + + + + <p>The versioned backup "%1" of the settings file is used, because the non-versioned file was created by an incompatible version of %2.</p><p>Settings changes made since the last time this version of %2 was used are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> + + + + Unsupported Merge Settings File + + + + "%1" is not supported by %2. Do you want to try loading it anyway? + + + + + Utils::SettingsSelector + + Add + 添加 + + + Remove + 删除 + + + Rename + 重命名 + + + Do you really want to delete the configuration <b>%1</b>? + 确定要删除此配置<b>%1</b>吗? + + + New name for configuration <b>%1</b>: + 配置的新名称 <b>%1</b>: + + + Rename... + 重命名... + + + + Utils::StringAspect + + Reset + 重置 + + + + Utils::TextFileFormat + + Out of memory. + 内存不足。 + + + An encoding error was encountered. + 发生了一个编码错误。 + + + + Utils::TriStateAspect + + Enable + + + + Disable + 禁用 + + + Leave at Default + + + + + Utils::UnixTools + + <table border=1 cellspacing=0 cellpadding=3><tr><th>Variable</th><th>Expands to</th></tr><tr><td>%d</td><td>directory of current file</td></tr><tr><td>%f</td><td>file name (with full path)</td></tr><tr><td>%n</td><td>file name (without path)</td></tr><tr><td>%%</td><td>%</td></tr></table> + <table border=1 cellspacing=0 cellpadding=3><tr><th>变量</th><th>扩展为</th></tr><tr><td>%d</td><td>当前文件所在目录</td></tr><tr><td>%f</td><td>文件名 (带完整路径)</td></tr><tr><td>%n</td><td>文件名 (不带路径)</td></tr><tr><td>%%</td><td>%</td></tr></table> + + + + Utils::VariableChooser + + Insert Variable + + + + Current Value: %1 + + + + Insert Unexpanded Value + + + + Insert "%1" + + + + Insert Expanded Value + + + + Select a variable to insert. + 选择一个变量来插入。 + + + Variables + 变量 + + + + Utils::fileDeletedPrompt + + &Close + 关闭(&C) + + + Save &as... + 另存为(&A)... + + + &Save + 保存(&S) + + + File Has Been Removed + + + + The file %1 has been removed from disk. Do you want to save it under a different name, or close the editor? + + + + C&lose All + + + + + Utils::reloadPrompt + + File Changed + 文件已改变 + + + The unsaved file <i>%1</i> has been changed on disk. Do you want to reload it and discard your changes? + + + + The file <i>%1</i> has been changed on disk. Do you want to reload it? + + + + The default behavior can be set in %1 > Preferences > Environment > System. + macOS + + + + The default behavior can be set in Edit > Preferences > Environment > System. + + + + &Close + + + + No to All && &Diff + + + + + VCS + + CVS Commit Editor + CVS提交编辑器 + + + CVS Command Log Editor + CVS命令行日志编辑器 + + + CVS File Log Editor + CVS文件日志编辑器 + + + CVS Annotation Editor + CVS注释编辑器 + + + CVS Diff Editor + CVS Diff编辑器 + + + Git Annotation Editor + Git注释编辑器 + + + Git Submit Editor + Git 提交编辑器 + + + Mercurial File Log Editor + Mercurial文件日志编辑器 + + + Mercurial Annotation Editor + Mercurial注释编辑器 + + + Mercurial Diff Editor + Mercurial Diff编辑器 + + + Mercurial Commit Log Editor + Mercurial 提交日志编辑器 + + + Perforce.SubmitEditor + Perforce提交编辑器 + + + Perforce Log Editor + Perforce日志编辑器 + + + Perforce Diff Editor + Perforce Diff 编辑器 + + + Perforce Annotation Editor + Perforce注释编辑器 + + + Subversion Commit Editor + Subversion提交编辑器 + + + Subversion File Log Editor + Subversion文件日志编辑器 + + + Subversion Annotation Editor + Subversion注释编辑器 + + + Bazaar File Log Editor + Bazaar 文件日志编辑器 + + + Bazaar Annotation Editor + Bazaar注释编辑器 + + + Bazaar Diff Editor + Bazaar Diff编辑器 + + + Bazaar Commit Log Editor + Bazaar 提交日志编辑器 + + + ClearCase Check In Editor + ClearCase Check In 编辑器 + + + ClearCase File Log Editor + ClearCase 文件日志编辑器 + + + ClearCase Annotation Editor + ClearCase 注释编辑器 + + + ClearCase Diff Editor + ClearCase Diff 编辑器 + + + Git SVN Log Editor + + + + Git Log Editor + + + + Git Reflog Editor + + + + Git Commit Editor + + + + Git Rebase Editor + + + + + Valgrind + + Function: + 函数: + + + Location: + 位置: + + + Instruction pointer: + 指令指针: + + + Object: + 对象: + + + Could not parse hex number from "%1" (%2) + 无法从"%1" (%2) 解析出十六进制数字 + + + trying to read element text although current position is not start of element + 尝试着读取元素的文本尽管当前的位置不是元素的开头 + + + Unexpected child element while reading element text + 读取文本元素时遇到非预期的子元素 + + + Unexpected token type %1 + 非预期的符号类型 %1 + + + Could not parse protocol version from "%1" + 无法从"%1" 解析协议版本 + + + XmlProtocol version %1 not supported (supported version: 4) + XmlProtocol 版本%1 不被支持(支持版本: 4) + + + Valgrind tool "%1" not supported + Valgrind 工具"%1" 不被支持 + + + Unknown memcheck error kind "%1" + 未知的 memcheck 错误"%1" + + + Unknown helgrind error kind "%1" + 未知的helgrind错误类型"%1" + + + Unknown ptrcheck error kind "%1" + 未知的 ptrcheck 错误类型"%1" + + + Could not parse error kind, tool not yet set. + 无法解析错误类型,工具还未被设置。 + + + Unknown state "%1" + 未知状态"%1" + + + Unexpected exception caught during parsing. + 解析时遇到未知异常。 + + + Description + 说明 + + + Instruction Pointer + 指令指针 + + + Object + 对象 + + + Directory + 目录 + + + File + 文件 + + + Line + 行号 + + + Suppression File: + Suppression 文件: + + + Suppression: + Suppression: + + + Select Suppression File + 选择Suppression 文件 + + + Save Suppression + 保存Suppression + + + Valgrind executable: + Valgrind 执行档: + + + Valgrind Command + Valgrind 命令 + + + Valgrind Suppression Files + Valgrind Suppression 文件 + + + Valgrind Suppression File (*.supp);;All Files (*) + Valgrind Suppression文件 (*.supp);;所有文件 (*) + + + Backtrace frame count: + 回溯(backtrace)帧数: + + + Suppression files: + Suppression 文件: + + + Add... + 添加... + + + Remove + 删除 + + + Track origins of uninitialized memory + 跟踪未初始化的内存的出处 + + + Limits the amount of results the profiler gives you. A lower limit will likely increase performance. + 限制分析器输出结果的数量。较低的限制有可能提高性能。 + + + Result view: Minimum event cost: + 结果视图: 最小事件花费: + + + % + % + + + Show additional information for events in tooltips + 在工具提示中显示事件的额外信息 + + + Enable cache simulation + 开启缓存模拟 + + + Enable branch prediction simulation + 开启分支预测模拟 + + + Collect system call time + 搜集系统调用时间 + + + Collect the number of global bus events that are executed. The event type "Ge" is used for these events. + 搜集执行的全局总线事件的数量.事件类型"Ge"被用于此类事件。 + + + Collect global bus events + 搜集全局总线事件 + + + Visualization: Minimum event cost: + 可视化: 最小事件花费: + + + Profiling + 正在分析 + + + Valgrind Function Profiler + Valgrind 功能分析器 + + + Callers + 调用者 + + + Functions + 函数 + + + Callees + 被调用者 + + + Visualization + 可视化 + + + Reset all event counters. + 重置所有的事件计数器。 + + + Pause event logging. No events are counted which will speed up program execution during profiling. + 暂停事件记录日志。不对事件计数,这将加快程序在分析时的执行速度。 + + + Go back one step in history. This will select the previously selected item. + 在历史中返回一步。这将选中之前选过的项。 + + + Go forward one step in history. + 在历史中向前一步。 + + + Selects which events from the profiling data are shown and visualized. + 选择分析数据时显示哪些事件并且图形化。 + + + Absolute Costs + 绝对花费 + + + Show costs as absolute numbers. + 显示花费的确切数字。 + + + Relative Costs + 相对花费 + + + Show costs relative to total inclusive cost. + 显示相对于总花费的花费。 + + + Relative Costs to Parent + 相对于父级的花费 + + + Cost Format + 花费格式 + + + Enable cycle detection to properly handle recursive or circular function calls. + 启用循环检测来正确处理递归或循环的函数调用。 + + + Show Project Costs Only + 仅显示项目花费 + + + Show only profiling info that originated from this project source. + 仅显示源于本项目代码的分析信息。 + + + Filter... + 过滤器... + + + Profiling aborted. + 分析中断。 + + + Parsing finished, no data. + 分析完成,无数据。 + + + Parsing finished, total cost of %1 reported. + 分析完成,报告总花费%1 。 + + + Parsing failed. + 分析失败。 + + + Populating... + 正在填充... + + + All functions with an inclusive cost ratio higher than %1 (%2 are hidden) + 包含成本比%1高的所有函数 (%2 被隐藏) + + + Analyzing Memory + 内存分析中 + + + %1 in %2 + %1 function, %2 path + 在 %2中的%1 + + + in %1 + 在 %1中 + + + Suppress Error + 防止错误 + + + External Errors + 外部错误 + + + Show issues originating outside currently opened projects. + 显示源于当前打开的项目之外的问题。 + + + Suppressions + Suppressions + + + These suppression files were used in the last memory analyzer run. + 这些suppression 文件被上一次内存分析所使用。 + + + Definite Memory Leaks + 确定的内存泄露 + + + Possible Memory Leaks + 可能的内存泄露 + + + Use of Uninitialized Memory + 使用了未初始化的内存 + + + Invalid Calls to "free()" + 无效调用"free()" + + + Valgrind Memory Analyzer + Valgrind 内存分析器 + + + Memory Issues + 内存问题 + + + Go to previous leak. + 移到上一个泄漏。 + + + Go to next leak. + 移到下一个泄漏。 + + + Error Filter + 错误过滤器 + + + Callee + 被调用者 + + + Caller + 调用者 + + + Cost + 花费 + + + Calls + 调用 + + + Previous command has not yet finished. + 之前的命令还没有完成。 + + + Dumping profile data... + dump分析数据... + + + Resetting event counters... + 重置事件计数器... + + + Pausing instrumentation... + 暂停分析... + + + Unpausing instrumentation... + 继续仪器... + + + Callgrind dumped profiling info + Callgrind dump分析信息 + + + Callgrind unpaused. + Callgrind 已继续。 + + + File: + 文件: + + + Called: + 被调用: + + + %n time(s) + + %n 次 + + + + Events + 事件 + + + Self costs + 自身花费 + + + (%) + (%) + + + Incl. costs + 包括杂项的花费 + + + (%1%) + (%1%) + + + %1 cost spent in a given function excluding costs from called functions. + 给定的函数的花费为 %1,不包括调用其他函数的花费。 + + + %1 cost spent in a given function including costs from called functions. + 给定的函数的花费为 %1,包括调用其他函数的花费。 + + + Function + 函数 + + + Location + 位置 + + + Called + 被调用 + + + Self Cost: %1 + 自身花费: %1 + + + Incl. Cost: %1 + 包括杂项的花费: %1 + + + %1:%2 in %3 + %1: 在 %3 中的%2 + + + Last-level + 最后一级 + + + Instruction + 指令 + + + Cache + 缓存 + + + Conditional branches + 条件分支 + + + Indirect branches + 间接分支 + + + level %1 + 级别%1 + + + read + 读取 + + + write + 写入 + + + mispredicted + 错误预计 + + + executed + 执行 + + + miss + 未命中 + + + access + 访问 + + + Line: + 行号: + + + Position: + 位置: + + + Parsing Profile Data... + 解析分析数据... + + + Valgrind options: %1 + Valgrind 选项: %1 + + + Working directory: %1 + 工作目录: %1 + + + Analyzer + 分析器 + + + Valgrind + Valgrind + + + Profiling %1 + 正在分析%1 + {1?} + + + An error occurred while trying to run %1: %2 + + + + Failed opening temp file... + + + + %1 (Called: %2; Incl. Cost: %3) + + + + Callgrind + + + + Valgrind Function Profiler uses the Callgrind tool to record function calls when a program runs. + + + + Valgrind Function Profiler (External Application) + + + + Profile Costs of This Function and Its Callees + + + + Load External Log File + + + + Open results in KCachegrind. + + + + Request the dumping of profile information. This will update the Callgrind visualization. + + + + Discard Data + + + + Show costs relative to parent function's inclusive cost. + + + + A Valgrind Callgrind analysis is still in progress. + + + + Start a Valgrind Callgrind analysis. + + + + Select This Function in the Analyzer Output + + + + Open Callgrind Log File + + + + Callgrind Output (callgrind.out*);;All Files (*) + + + + Callgrind: Failed to open file for reading: %1 + + + + Memcheck + + + + Load External XML Log File + + + + Valgrind Analyze Memory uses the Memcheck tool to find memory leaks. + + + + Valgrind Memory Analyzer with GDB + + + + Valgrind Analyze Memory with GDB uses the Memcheck tool to find memory leaks. +When a problem is detected, the application is interrupted and can be debugged. + + + + Heob + + + + Ctrl+Alt+H + + + + Valgrind Memory Analyzer (External Application) + + + + Heob: No local run configuration available. + + + + Heob: No toolchain available. + + + + Heob: No executable set. + + + + Heob: Cannot find %1. + + + + The %1 executables must be in the appropriate location. + + + + Heob used with MinGW projects needs the %1 DLLs for proper stacktrace resolution. + + + + Heob: Cannot create %1 process (%2). + + + + A Valgrind Memcheck analysis is still in progress. + + + + Start a Valgrind Memcheck analysis. + + + + Start a Valgrind Memcheck with GDB analysis. + + + + Open Memcheck XML Log File + + + + XML Files (*.xml);;All Files (*) + + + + Memcheck: Failed to open file for reading: %1 + + + + Memcheck: Error occurred parsing Valgrind output: %1 + + + + Memory Analyzer Tool finished. %n issues were found. + + + + + + Log file processed. %n issues were found. + + + + + + Valgrind Generic Settings + + + + MemCheck Memory Analysis Options + + + + CallGrind Profiling Options + + + + Command line arguments: %1 + + + + Analyzing finished. + + + + Error: "%1" could not be started: %2 + + + + Error: no Valgrind executable set. + + + + Process terminated. + + + + Process exited with return value %1 + + + + + Valgrind Settings + + + + XmlServer on %1: + + + + LogServer on %1: + + + + Valgrind arguments: + + + + Detect self-modifying code: + + + + Extra MemCheck arguments: + + + + Show reachable and indirectly lost blocks + + + + No + + + + Summary Only + + + + Full + 全部 + + + Check for leaks on finish: + + + + KCachegrind executable: + + + + KCachegrind Command + + + + Extra CallGrind arguments: + + + + <p>Does full cache simulation.</p> +<p>By default, only instruction read accesses will be counted ("Ir").</p> +<p> +With cache simulation, further event counters are enabled: +<ul><li>Cache misses on instruction reads ("I1mr"/"I2mr").</li> +<li>Data read accesses ("Dr") and related cache misses ("D1mr"/"D2mr").</li> +<li>Data write accesses ("Dw") and related cache misses ("D1mw"/"D2mw").</li></ul> +</p> + + + + <p>Does branch prediction simulation.</p> +<p>Further event counters are enabled: </p> +<ul><li>Number of executed conditional branches and related predictor misses ( +"Bc"/"Bcm").</li> +<li>Executed indirect jumps and related misses of the jump address predictor ( +"Bi"/"Bim").)</li></ul> + + + + Collects information for system call times. + + + + Remove template parameter lists when displaying function names. + + + + Issue + + + + %1%2 + %1%2 + + + %1 in function %2 + + + + + VcsBase + + Version Control + 版本控制 + + + General + 概要 + + + + VcsBase::CleanDialog + + The directory %1 could not be deleted. + 目录 %1 无法被删除。 + + + The file %1 could not be deleted. + 文件 '%1' 无法被删除。 + + + There were errors when cleaning the repository %1: + 清理代码仓库%1时发生错误: + + + Delete... + 删除... + + + Name + 名称 + + + Repository: %1 + 仓库: %1 + + + Delete + 删除 + + + Do you want to delete %n files? + + 您想删除 %n 个文件吗? + + + + Clean Repository + 清空代码库 + + + Select All + 全选 + + + %n bytes, last modified %1. + + %n 个字节, 最后修改时间 %1. + + + + Cleaning "%1" + + + + + VcsBase::Internal::CommonVcsSettings + + User/&alias configuration file: + 用户/别名配置文件(&A): + + + A file listing nicknames in a 4-column mailmap format: +'name <email> alias <email>'. + + + + User &fields configuration file: + 用户字段配置文件(&F): + + + A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. + 一个包含了如 ”Reviewed-By:" 等字段名的简单文件,其内容会被添加在提交编辑器的下面。 + + + Submit message &check script: + 提交信息检查脚本(&C): + + + An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. + + + + &SSH prompt command: + SSH 提示命令(&S): + + + Specifies a command that is executed to graphically prompt for a password, +should a repository require SSH-authentication (see documentation on SSH and the environment variable SSH_ASKPASS). + + + + Wrap submit message at: + 提交信息折行在: + + + characters + 字符 + + + Reset VCS Cache + + + + Reset information about which version control system handles which directory. + @@ -47422,76 +50561,1520 @@ cannot be found in the path. - CppTools::CppClassesFilter + VcsBase::Internal::NickNameDialog + + Name + 姓名 + + + Alias + 别名 + + + Email + + + + Alias email + + + + + VcsBase::Internal::UrlTextCursorHandler + + Open URL in Browser... + 在浏览器中打开URL... + + + Copy URL Location + 复制URL位置 + + + + VcsBase::Internal::VcsCommandPage + + "data" is no JSON object in "VcsCommand" page. + + + + "%1" not set in "data" section of "VcsCommand" page. + + + + "%1" in "data" section of "VcsCommand" page has unexpected type (unset, String or List). + + + + "%1" in "data" section of "VcsCommand" page has unexpected type (unset or List). + + + + Job in "VcsCommand" page is empty. + + + + Job in "VcsCommand" page is not an object. + + + + Job in "VcsCommand" page has no "%1" set. + + + + Command started... + + + + Checkout + Checkout + + + No job running, please abort. + 没有运行中的任务,请退出。 + + + Succeeded. + 成功. + + + Failed. + 失败. + + + + VcsBase::Internal::VcsPlugin + + Name of the version control system in use by the current project. + + + + The current version control topic (branch or tag) identification of the current project. + + + + The top level path to the repository the current project is in. + + + + + VcsBase::SubmitEditorWidget + + Subversion Submit + Subversion提交 + + + Descriptio&n + 说明(&N) + + + F&iles + 文件(&i) + + + Select a&ll + + + + %1 %2/%n File(s) + + %1 %2/%n 文件 + + + + Warning: The commit subject is very short. + + + + Warning: The commit subject is too long. + + + + Hint: Aim for a shorter commit subject. + + + + Hint: The second line of a commit message should be empty. + + + + <p>Writing good commit messages</p><ul><li>Avoid very short commit messages.</li><li>Consider the first line as subject (like in email) and keep it shorter than %n characters.</li><li>After an empty second line, a longer description can be added.</li><li>Describe why the change was done, not how it was done.</li></ul> + + + + + + Update in progress + + + + Description is empty + + + + No files checked + + + + &Commit + 提交(&C) + + + Select All + Check all for submit + 全选 + + + Unselect All + Uncheck all for submit + + + + + VcsBase::SubmitFileModel + + State + 状态 + + + File + 文件 + + + + VcsBase::VcsBaseClientImpl + + Failed to retrieve data. + + + + Working... + 工作中... + + + + VcsBase::VcsBaseDiffEditorController + + Processing diff + + + + + VcsBase::VcsBaseEditorConfig + + Reload + 重新载入 + + + + VcsBase::VcsBaseEditorWidget + + Annotate "%1" + Annotate "%1" + + + Copy "%1" + 复制 "%1" + + + Send to CodePaster... + 发送到CodePaster... + + + Apply Chunk... + 应用块... + + + Revert Chunk... + 恢复块... + + + &Describe Change %1 + + + + + VcsBase::VcsBasePluginPrivate + + Commit + name of "commit" action of the VCS. + + + + Save before %1? + + + + Version Control + 版本控制 + + + The file "%1" could not be deleted. + + + + Choose Repository Directory + 选择代码仓库目录 + + + The directory "%1" is already managed by a version control system (%2). Would you like to specify another directory? + + + + Repository already under version control + 代码仓库已经处于版本控制下 + + + Repository Created + 仓库创建成功 + + + A version control repository has been created in %1. + 在%1处创建版本控制仓库。 + + + Repository Creation Failed + 仓库创建失败 + + + A version control repository could not be created in %1. + 在%1处版本控制仓库无法被创建。 + + + + VcsBase::VcsBaseSettings + + Log count: + + + + Prompt on submit + 提交时弹出提示 + + + Timeout: + 超时时间: + + + s + + + + + VcsBase::VcsBaseSubmitEditor + + Check Message + 检查消息 + + + Insert Name... + 插入姓名... + + + Submit Message Check Failed + 提交信息检查失败 + + + Executing %1 + 正在执行 %1 + + + + Executing [%1] %2 + 正在执行 [%1] %2 + + + Close %1 %2 Editor + + + + What do you want to do with these changes? + + + + Cannot %1%2. +What do you want to do? + %2 is an optional error message with ': ' prefix. Don't add space in front. + + + + Prompt to %1 + + + + &Close + + + + &Keep Editing + + + + + VcsBase::VcsCommand + + UNKNOWN + + + + + VcsBase::VcsCommandPage + + "%1" (%2) not found. + + + + Version control "%1" is not configured. + + + + Version control "%1" does not support initial checkouts. + + + + "%1" is empty when trying to run checkout. + + + + "%1" (%2) does not exist. + + + + + VcsBase::VcsConfigurationPage + + Configuration + 配置 + + + Please configure <b>%1</b> now. + 请现在设置<b>%1</b> 。 + + + No version control set on "VcsConfiguration" page. + Do not translate "VcsConfiguration", because it is the id of a page. + + + + "vcsId" ("%1") is invalid for "VcsConfiguration" page. Possible values are: %2. + Do not translate "VcsConfiguration", because it is the id of a page. + + + + No known version control selected. + + + + + VcsBase::VcsOutputLineParser + + &Open "%1" + + + + &Copy to clipboard: "%1" + + + + + VcsBase::VcsOutputWindow + + Open "%1" + 打开 "%1" + + + Clear + + + + Version Control + 版本控制 + + + Running: %1 + + + + Running in %1: %2 + + + + + VcsBase::VcsSubmitEditorFactory + + &Undo + 撤销(&U) + + + &Redo + + + + Diff &Selected Files + Diff 选中的文件(&S) + + + + VirtualFunctionsAssistProcessor + + collecting overrides ... + + + + + VisibilityTogglesAction + + Visibility Toggles + + + + + WebAssembly + + Web Browser + + + + WebAssembly Runtime + + + + Emscripten SDK path: + + + + Select the root directory of an installed %1. Ensure that the activated SDK version is compatible with the %2 or %3 version that you plan to develop against. + + + + Emscripten SDK environment: + + + + Note: %1 supports Qt %2 for WebAssembly and higher. Your installed lower Qt version(s) are not supported. + + + + Adding directories to PATH: + + + + Setting environment variables: + + + + The activated version %1 is not supported by %2. Activate version %3 or higher. + + + + Activated version: %1 + + + + WebAssembly + + + + Setup Emscripten SDK for WebAssembly? To do it later, select Edit > Preferences > Devices > WebAssembly. + + + + Setup Emscripten SDK + + + + WebAssembly + Qt Version is meant for WebAssembly + + + + %1 does not support Qt for WebAssembly below version %2. + + + + Effective emrun call: + + + + Default Browser + + + + Web browser: + + + + Emscripten Compiler + + + + Emscripten Compiler %1 for %2 + + + + Emscripten + + + + + Welcome + + Create Project... + 创建项目... + + + Open Project... + 打开项目... + + + Welcome + 欢迎 + + + Would you like to take a quick UI tour? This tour highlights important user interface elements and shows how they are used. To take the tour later, select Help > UI Tour. + + + + Take UI Tour + + + + Mode Selector + + + + Select different modes depending on the task at hand. + + + + <p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Welcome:</td><td>Open examples, tutorials, and recent sessions and projects.</td></tr><tr><td>Edit:</td><td>Work with code and navigate your project.</td></tr><tr><td>Design:</td><td>Visually edit Widget-based user interfaces, state charts and UML models.</td></tr><tr><td>Debug:</td><td>Analyze your application with a debugger or other analyzers.</td></tr><tr><td>Projects:</td><td>Manage project settings.</td></tr><tr><td>Help:</td><td>Browse the help database.</td></tr></table></p> + + + + Kit Selector + + + + Select the active project or project configuration. + + + + Run Button + + + + Run the active project. By default this builds the project first. + + + + Debug Button + + + + Run the active project in a debugger. + + + + Build Button + + + + Build the active project. + + + + Locator + 定位器 + + + Type here to open a file from any open project. + + + + Or:<ul><li>type <code>c&lt;space&gt;&lt;pattern&gt;</code> to jump to a class definition</li><li>type <code>f&lt;space&gt;&lt;pattern&gt;</code> to open a file from the file system</li><li>click on the magnifier icon for a complete list of possible options</li></ul> + + + + Output + 输出 + + + Find compile and application output here, as well as a list of configuration and build issues, and the panel for global searches. + + + + Progress Indicator + + + + Progress information about running tasks is shown here. + + + + Escape to Editor + + + + Pressing the Escape key brings you back to the editor. Press it multiple times to also hide context help and output, giving the editor more space. + + + + The End + + + + You have now completed the UI tour. To learn more about the highlighted controls, see <a style="color: #41CD52" href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html">User Interface</a>. + + + + UI Introduction %1/%2 > + + + + UI Tour + + + + New to Qt? + + + + Get Started + + + + Get Qt + + + + Qt Account + + + + Online Community + + + + Blogs + + + + User Guide + + + + + Welcome_splash + + Community Edition + + + + Enterprise Edition + + + + Professional Edition + + + + Before we let you move on to your wonderful designs, help us make Qt Design Studio even better by letting us know how you're using it. To do this, we would like to turn on automatic collection of pseudonymized Analytics and Crash Report Data. + + + + Turn Off + + + + Turn On + + + + Learn More + + + + Qt Design Studio + + + + + WidgetPluginManager + + Failed to create instance of file "%1": %2 + + + + Failed to create instance of file "%1". + + + + File "%1" is not a Qt Quick Designer plugin. + + + + + main + + Continue + 继续 + + + Start Download + + + + Browse + 浏览 + + + Folder + + + + Cancel + 取消 + + + Open + 打开 + + + Details + 详情 + + + Finish + + + + Download failed + + + + Recent Projects + 最近使用的项目 + + + Examples + 示例 + + + Tutorials + 教程 + + + Welcome to + + + + Qt Design Studio + + + + Create New + + + + Open Project + 打开项目 + + + Help + 帮助 + + + Community + 社区 + + + Blog + + + + Community Edition + + + + + qmt::ClassItem + + Show Definition + + + + Inheritance + + + + Association + + + + + qmt::DiagramController + + Change + + + + Add Object + + + + Remove Object + + + + Cut + 剪切 + + + Paste + 粘贴 + + + Delete + 删除 + + + + qmt::DiagramSceneController + + Create Dependency + + + + Create Inheritance + + + + Create Association + + + + Create Connection + + + + Drop Element + + + + Add Related Element + + + + Add Element + + + + Relocate Relation + + + + + qmt::DocumentController + + New Package + + + + New Class + + + + New Component + + + + New Diagram + + + + + qmt::Exception + + Unacceptable null object. + + + + File not found. + + + + Unable to create file. + + + + Writing to file failed. + + + + Reading from file failed. + + + + Illegal XML file. + + + + Unable to handle file version %1. + + + + + qmt::ModelController + + Change Object + + + + Change Relation + + + + Move Object + + + + Move Relation + + + + Add Object + + + + Delete Object + + + + Add Relation + + + + Delete Relation + + + + Cut + 剪切 + + + Paste + 粘贴 + + + Delete + 删除 + + + + qmt::ModelTreeView + + Show Definition + + + + Open Diagram + + + + Delete + 删除 + + + + qmt::ObjectItem + + Dependency + + + + Open Diagram + + + + Create Diagram + + + + Remove + 删除 + + + Delete + 删除 + + + Align Objects + + + + Align Left + + + + Center Vertically + + + + Align Right + + + + Align Top + + + + Center Horizontally + + + + Align Bottom + + + + Same Width + + + + Same Height + + + + Same Size + + + + Layout Objects + + + + Equal Horizontal Distance + + + + Equal Vertical Distance + + + + Equal Horizontal Space + + + + Equal Vertical Space + + + + Add Related Elements + + + + + qmt::ProjectController + + Missing file name. + + + + Project is modified. + + + + Model + + + + + qmt::PropertiesView::MView + + Stereotypes: + + + + Reverse engineered: + + + + Yes + + + + No + + + + Name: + 名称: + + + Children: + + + + Relations: + + + + Model + + + + Models + + + + Package + + + + Packages + + + + Class + + Classes - + + + + Namespace: + + + + Template: + + + + Clean Up + + + + Members: + + + + Component + + + + Components + + + + Diagram + + + + Diagrams + + + + Elements: + + + + Canvas Diagram + + + + Canvas Diagrams + + + + Item + + + + Items + + + + Variety: + + + + End A: %1 + + + + End B: %1 + + + + Dependency + + + + Dependencies + 依赖关系 + + + Direction: + + + + Inheritance + + + + Inheritances + + + + Derived class: %1 + + + + Base class: %1 + + + + Association + + + + Associations + + + + Role: + + + + Cardinality: + + + + Navigable + + + + Aggregation + 集成 + + + Composition + + + + Relationship: + + + + Connection + + + + Connections + + + + Position and size: + + + + Auto sized + + + + Color: + 颜色: + + + Normal + 正常 + + + Lighter + + + + Darker + + + + Soften + + + + Outline + 大纲 + + + Flat + + + + Emphasized + + + + Smart + + + + None + + + + Label + 标签 + + + Decoration + + + + Icon + 图标 + + + Stereotype display: + + + + Depth: + + + + Box + + + + Angle Brackets + + + + Template display: + + + + Show members + + + + Plain shape + + + + Shape: + + + + Intermediate points: + + + + none + + + + Annotation + + + + Annotations + + + + Auto width + + + + Title + 标题 + + + Subtitle + + + + Footnote + + + + Boundary + + + + Boundaries + + + + Swimlane + + + + Swimlanes + + + + Invalid syntax. + + + + Multi-Selection + - Debugger + qmt::TreeModel - Cu&t - 剪切(&T) - - - &Copy - 复制(&C) - - - &Paste - 粘贴(&P) - - - Select &All - 全选(&A) - - - &Show in Editor - 在编辑器中显示(&S) - - - C&lear - hard to tell if it is lowercase L or capital i - 清空(&L) + [unnamed] + - Debugger + qtc-askpass - Log - 日志 - - - Show debug, log, and info messages. - 显示调试、日志和信息消息。 - - - Warning - 警告 - - - Show warning messages. - 显示警告消息。 - - - Error - 错误 - - - Show error and fatal messages. - 显示错误和致命错误消息。 - - - Clear Console - 清空控制台 + Password required. + - RemoteLinux + text - Double-click to edit the project file - 双击编辑项目文件 + Text + 文本 + + + + textedit + + Text Edit + 编辑文本 + + + + texteditv2 + + Text Edit + 编辑文本 + + + + textinput + + Text + 文本 + + + + textinputv2 + + Text + 文本 + + + + textv2 + + Text + 文本 From 06838e3e5e41f1f090fdd016c736bb91241cd5b3 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 8 Nov 2022 15:08:21 +0100 Subject: [PATCH 33/49] ProjectExplorer: Fix potential race condition When using BuildStep::runImpl() it was possible for the async part to still be running while the BuildStep is already deleted. This change returns the Future so that users can wait for it to finish. Change-Id: I27c0fc8741c59851c5ab8f5cb858fbcda923c14d Reviewed-by: Jarek Kobus Reviewed-by: --- src/plugins/android/androiddeployqtstep.cpp | 2 +- src/plugins/android/androiddeployqtstep.h | 3 +++ src/plugins/projectexplorer/buildstep.cpp | 6 ++++-- src/plugins/projectexplorer/buildstep.h | 3 ++- src/plugins/remotelinux/tarpackagecreationstep.cpp | 6 +++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index d3fedd7b055..0d33bce4c0f 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -488,7 +488,7 @@ void AndroidDeployQtStep::gatherFilesToPull() void AndroidDeployQtStep::doRun() { - runInThread([this] { return runImpl(); }); + m_synchronizer.addFuture(runInThread([this] { return runImpl(); })); } void AndroidDeployQtStep::runCommand(const CommandLine &command) diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h index f11276657b2..2f172615951 100644 --- a/src/plugins/android/androiddeployqtstep.h +++ b/src/plugins/android/androiddeployqtstep.h @@ -12,6 +12,7 @@ #include #include +#include namespace Utils { class QtcProcess; } @@ -91,6 +92,8 @@ private: Utils::FilePath m_workingDirectory; Utils::Environment m_environment; AndroidDeviceInfo m_deviceInfo; + + Utils::FutureSynchronizer m_synchronizer; }; } diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 070e8f3b545..4088ce3d0b4 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -295,7 +295,7 @@ QVariant BuildStep::data(Id id) const immutable steps are run. The default implementation returns \c false. */ -void BuildStep::runInThread(const std::function &syncImpl) +QFuture BuildStep::runInThread(const std::function &syncImpl) { m_runInGuiThread = false; m_cancelFlag = false; @@ -304,7 +304,9 @@ void BuildStep::runInThread(const std::function &syncImpl) emit finished(watcher->result()); watcher->deleteLater(); }); - watcher->setFuture(Utils::runAsync(syncImpl)); + auto future = Utils::runAsync(syncImpl); + watcher->setFuture(future); + return future; } std::function BuildStep::cancelChecker() const diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index 79ae4a60bce..0f5def37bd4 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -10,6 +10,7 @@ #include +#include #include #include @@ -117,7 +118,7 @@ signals: protected: virtual QWidget *createConfigWidget(); - void runInThread(const std::function &syncImpl); + QFuture runInThread(const std::function &syncImpl); std::function cancelChecker() const; bool isCanceled() const; diff --git a/src/plugins/remotelinux/tarpackagecreationstep.cpp b/src/plugins/remotelinux/tarpackagecreationstep.cpp index 9255c2e2287..6f33f70e665 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.cpp +++ b/src/plugins/remotelinux/tarpackagecreationstep.cpp @@ -13,6 +13,8 @@ #include #include +#include + #include #include #include @@ -80,6 +82,8 @@ private: BoolAspect *m_ignoreMissingFilesAspect = nullptr; bool m_packagingNeeded = false; QList m_files; + + FutureSynchronizer m_synchronizer; }; TarPackageCreationStep::TarPackageCreationStep(BuildStepList *bsl, Id id) @@ -126,7 +130,7 @@ bool TarPackageCreationStep::init() void TarPackageCreationStep::doRun() { - runInThread([this] { return runImpl(); }); + m_synchronizer.addFuture(runInThread([this] { return runImpl(); })); } bool TarPackageCreationStep::fromMap(const QVariantMap &map) From 19ef8e5c7a5348e4b47feed09cefcc2b4651be32 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 8 Nov 2022 16:57:14 +0100 Subject: [PATCH 34/49] Debugger: Avoid some temporary containers when parsing escaped chars Change-Id: Ia9af6801de6f745388e464fc806297d396c66160 Reviewed-by: Reviewed-by: David Schulz --- src/plugins/debugger/debuggerprotocol.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp index 0bf60c3a4f5..9aebe53f343 100644 --- a/src/plugins/debugger/debuggerprotocol.cpp +++ b/src/plugins/debugger/debuggerprotocol.cpp @@ -112,7 +112,7 @@ void GdbMi::parseResultOrValue(DebuggerOutputParser &parser) } // Reads one \ooo entity. -static bool parseOctalEscapedHelper(DebuggerOutputParser &parser, QByteArray &buffer) +static bool parseOctalEscapedHelper(DebuggerOutputParser &parser, QString &buffer) { if (parser.remainingChars() < 4) return false; @@ -130,7 +130,7 @@ static bool parseOctalEscapedHelper(DebuggerOutputParser &parser, QByteArray &bu return true; } -static bool parseHexEscapedHelper(DebuggerOutputParser &parser, QByteArray &buffer) +static bool parseHexEscapedHelper(DebuggerOutputParser &parser, QString &buffer) { if (parser.remainingChars() < 4) return false; @@ -178,15 +178,16 @@ static void parseSimpleEscape(DebuggerOutputParser &parser, QString &result) // *or* one escaped char, *or* one unescaped char. static void parseCharOrEscape(DebuggerOutputParser &parser, QString &result) { - QByteArray buffer; - while (parseOctalEscapedHelper(parser, buffer)) + const int oldSize = result.size(); + while (parseOctalEscapedHelper(parser, result)) ; - while (parseHexEscapedHelper(parser, buffer)) + while (parseHexEscapedHelper(parser, result)) ; - if (!buffer.isEmpty()) { - result.append(QString::fromUtf8(buffer)); - } else if (parser.isCurrent('\\')) { + if (result.size() != oldSize) + return; + + if (parser.isCurrent('\\')) { parser.advance(); parseSimpleEscape(parser, result); } else { From c406df7470a4c88861367d0bf6e6be34a1179611 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 8 Nov 2022 13:32:55 +0100 Subject: [PATCH 35/49] Changes: Mention debugger performance once more Change-Id: I0a44a4348c8f3bdac20e28cc15cff7093aef634d Reviewed-by: Leena Miettinen --- dist/changelog/changes-9.0.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/changelog/changes-9.0.0.md b/dist/changelog/changes-9.0.0.md index ed0fa9289a8..ff68a247cc2 100644 --- a/dist/changelog/changes-9.0.0.md +++ b/dist/changelog/changes-9.0.0.md @@ -145,6 +145,7 @@ Debugging devices * Fixed display of strings with characters more than 2 bytes long * Improved type name lookup performance for heavily templated code +* Improved display performance for large array-like data (QTCREATORBUG-28111) Analyzer -------- From 872994b5e5c15a5fc069b50cb2d5e1567aa1f7b7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 2 Nov 2022 10:14:19 +0100 Subject: [PATCH 36/49] CMake/translations: Use lconvert for cleaning ts files For the translation process it is nice to keep obsolete items and locations, but we do not want these submitted in the end. So while translating we'd have patches: 1. lupdate cleaned of obsolete and line numbers 2. wip: lupdate with obsolete and line numbers 3. translation of plugin X 4. translation of plugin Y and before submitting we want to remove the wip patch (2). But, running lupdate with "-no-obsolete -locations none" for cleaning the ts file has a slightly different sorting than without it, which leads to conflicts when removing the wip patch (2). Instead run lupdate with obsolete items and line numbers first, and clean the ts file with lconvert afterwards. That keeps the diff between patch (1) and (2) minimal, and results in a clean rebase process when removing patch (2). Change-Id: I3b8ac7c30dc6eb0e501be765eb6e64069007a5bd Reviewed-by: Cristian Adam Reviewed-by: Qt CI Bot Reviewed-by: --- cmake/QtCreatorTranslations.cmake | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cmake/QtCreatorTranslations.cmake b/cmake/QtCreatorTranslations.cmake index cd50d72f101..2fb3f799822 100644 --- a/cmake/QtCreatorTranslations.cmake +++ b/cmake/QtCreatorTranslations.cmake @@ -97,12 +97,23 @@ function(_create_ts_custom_target name) DEPENDS ${_sources} VERBATIM) - add_custom_target("${_arg_TS_TARGET_PREFIX}${name}_cleaned" - COMMAND Qt5::lupdate -locations relative -no-ui-lines -no-sort -no-obsolete -locations none "@${ts_file_list}" -ts ${ts_files} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Generate .ts files, remove obsolete and vanished translations, and do not add files and line number" - DEPENDS ${_sources} - VERBATIM) + # Add cleaned target only for single-ts targets + # Uses lupdate + convert instead of just lupdate with '-locations none -no-obsolete' + # to keep the same sorting as the non-'cleaned' target and therefore keep the diff small + list(LENGTH ts_files file_count) + if(file_count EQUAL 1) + # get path for lconvert... + get_target_property(_lupdate_binary Qt5::lupdate IMPORTED_LOCATION) + get_filename_component(_bin_dir ${_lupdate_binary} DIRECTORY) + + add_custom_target("${_arg_TS_TARGET_PREFIX}${name}_cleaned" + COMMAND Qt5::lupdate -locations relative -no-ui-lines -no-sort "@${ts_file_list}" -ts ${ts_files} + COMMAND ${_bin_dir}/lconvert -locations none -no-ui-lines -no-obsolete ${ts_files} -o ${ts_files} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "Generate .ts files, remove obsolete and vanished translations, and do not add files and line number" + DEPENDS ${_sources} + VERBATIM) + endif() endfunction() function(add_translation_targets file_prefix) From b038ea3a40845443e570ca26ac8e0a6449e1f0bd Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 9 Nov 2022 12:42:17 +0100 Subject: [PATCH 37/49] Fix debugging with LLDB Broke with bb11788a0ac868d9f89970a202df52b07c32c190 Change-Id: Ie02a36b98be83bd4721eacc834321a5494c584a3 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index cc60ef16de3..a58ad793703 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -2128,7 +2128,7 @@ class SummaryDumper(Dumper, LogMixin): self.putItem(value) # FIXME: Hook into putField, etc to build up object instead of parsing MI - response = gdbmiparser.parse_response("^ok,summary=%s" % self.takeOutput())) + response = gdbmiparser.parse_response("^ok,summary=%s" % self.takeOutput()) self.output = savedOutput self.expandedINames = oldExpanded From 0be6ba955d3c7e434524dca9084cbfcac75808c8 Mon Sep 17 00:00:00 2001 From: Kwangsub Kim Date: Tue, 8 Nov 2022 15:29:02 +0100 Subject: [PATCH 38/49] McuSupport: Expand variables for automatic kits An MCU kit that is created automatically also requires variable expansion before the kit is generated. The same preparation for the variables will be done as the MCU option page. Task-number: UL-6603 Change-Id: I915f6f6e8c6e2a90409c527951e469c555002cff Reviewed-by: Rainer Keller Reviewed-by: Yasser Grimes Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/mcusupport/mcukitmanager.cpp | 2 ++ src/plugins/mcusupport/mcusupportoptions.cpp | 17 ++++++++++------- src/plugins/mcusupport/mcusupportoptions.h | 1 + 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index ae5c5f4b153..1aba15b1b71 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -527,6 +527,8 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler) } McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)}; + McuSdkRepository::updateQtDirMacro(qtForMCUsPackage->path()); + repo.expandVariablesAndWildcards(); bool needsUpgrade = false; for (const auto &target : std::as_const(repo.mcuTargets)) { diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 1c7a170f8a9..d2d57973b11 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -77,6 +77,15 @@ Macros *McuSdkRepository::globalMacros() return ¯os; } +void McuSdkRepository::updateQtDirMacro(const FilePath &qulDir) +{ + // register the Qt installation directory containing Qul dir + auto qtPath = (qulDir / "../..").cleanPath(); + if (qtPath.exists()) { + globalMacros()->insert("QtDir", [qtPathString = qtPath.path()] { return qtPathString; }); + } +} + void McuSdkRepository::expandVariablesAndWildcards() { for (const auto &target : std::as_const(mcuTargets)) { @@ -198,13 +207,7 @@ bool McuSupportOptions::isLegacyVersion(const QVersionNumber &version) void McuSupportOptions::setQulDir(const FilePath &path) { - //register the Qt installation directory containing Qul dir - auto qtPath = (path / "../..").cleanPath(); - if (qtPath.exists()) { - McuSdkRepository::globalMacros()->insert("QtDir", [qtPathString = qtPath.path()] { - return qtPathString; - }); - } + McuSdkRepository::updateQtDirMacro(path); qtForMCUsSdkPackage->updateStatus(); if (qtForMCUsSdkPackage->isValidStatus()) sdkRepository = targetsAndPackages(qtForMCUsSdkPackage, settingsHandler); diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index f6e39e529ae..7c2709d2599 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -40,6 +40,7 @@ public: Targets mcuTargets; Packages packages; + static void updateQtDirMacro(const Utils::FilePath &qulDir); void expandVariablesAndWildcards(); MacroExpanderPtr getMacroExpander(const McuTarget &target); From c4164738b8b24469a012e628a4b2c45fbe8b292b Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Wed, 9 Nov 2022 12:29:21 +0100 Subject: [PATCH 39/49] SquishTests: Stabilize tst_basic_cpp_support Make sure the CppEditor is available before proceeding. Change-Id: I34ed4f581637cc3608283ac045ceb5b4e6ada55a Reviewed-by: Christian Stenger --- .../tst_basic_cpp_support/test.py | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/tests/system/suite_editors/tst_basic_cpp_support/test.py b/tests/system/suite_editors/tst_basic_cpp_support/test.py index c6da9872b4a..b5af8467280 100644 --- a/tests/system/suite_editors/tst_basic_cpp_support/test.py +++ b/tests/system/suite_editors/tst_basic_cpp_support/test.py @@ -3,6 +3,11 @@ source("../../shared/qtcreator.py") + +def waitForCppEditor(): + return waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") + + def main(): projectDir = os.path.join(srcPath, "creator", "tests", "manual", "cplusplus-tools") proFileName = "cplusplus-tools.pro" @@ -31,27 +36,26 @@ def main(): # t3 = t2.file() # t4 = t3.fileName # test.compare(editorManager.currentEditor().file().fileName, "base.cpp") - cppwindow = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") # - Move the cursor to the usage of a variable. # - Press F2 or select from the menu: Tools / C++ / Follow Symbol under Cursor # Creator will show you the declaration of the variable. - type(cppwindow, "") + type(waitForCppEditor(), "") type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), " xi") type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "") - __typeAndWaitForAction__(cppwindow, "") - test.compare(lineUnderCursor(waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "extern int xi;") + __typeAndWaitForAction__(waitForCppEditor(), "") + test.compare(lineUnderCursor(waitForCppEditor()), "extern int xi;") # - Move the cursor to a function call. # - Press F2 or select from the menu: Tools / C++ / Follow Symbol under Cursor # Creator will show you the definition of the function. - type(cppwindow, "") + type(waitForCppEditor(), "") clickButton(waitForObject(":*Qt Creator_Utils::IconButton")) type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "freefunc2") type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "") - __typeAndWaitForAction__(cppwindow, "") - test.compare(lineUnderCursor(waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "int freefunc2(double)") + __typeAndWaitForAction__(waitForCppEditor(), "") + test.compare(lineUnderCursor(waitForCppEditor()), "int freefunc2(double)") # - Move the cursor to a function declaration # - Press Shift+F2 or select from menu: Tools / C++ / Switch Between Method Declaration/Definition @@ -63,20 +67,18 @@ def main(): if not waitFor("str(mainWin.windowTitle).startswith('dummy.cpp ') and ' @ cplusplus-tools ' in str(mainWin.windowTitle)", 5000): test.warning("Opening dummy.cpp seems to have failed") # Reset cursor to the start of the document - jumpToFirstLine(cppwindow) + jumpToFirstLine(waitForCppEditor()) - type(cppwindow, "") + type(waitForCppEditor(), "") clickButton(waitForObject(":*Qt Creator_Utils::IconButton")) type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "Dummy::Dummy") # Take us to the second instance type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "") - cppwindow = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") - __typeAndWaitForAction__(cppwindow, "") - test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), " Dummy(int a);") - cppwindow = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") + __typeAndWaitForAction__(waitForCppEditor(), "") + test.compare(lineUnderCursor(waitForCppEditor()), " Dummy(int a);") snooze(2) - __typeAndWaitForAction__(cppwindow, "") - test.compare(lineUnderCursor(findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")), "Dummy::Dummy(int)") + __typeAndWaitForAction__(waitForCppEditor(), "") + test.compare(lineUnderCursor(waitForCppEditor()), "Dummy::Dummy(int)") invokeMenuItem("File", "Exit") def __typeAndWaitForAction__(editor, keyCombination): @@ -88,7 +90,6 @@ def __typeAndWaitForAction__(editor, keyCombination): def cppEditorPositionChanged(origPos): try: - editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget", 500) - return editor.textCursor().position() != origPos + return waitForCppEditor().textCursor().position() != origPos except: return False From af6741b5f27688d4f088216bd0fe369473657395 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Wed, 9 Nov 2022 13:02:54 +0100 Subject: [PATCH 40/49] SquishTests: Update tst_basic_cpp_support While the old code model used to jump to the "extern" line, clangd jumps directly to the linked variable. Change-Id: I2817d87697b6040afdd538e8e15b4b40ef17e124 Reviewed-by: Christian Stenger --- tests/system/suite_editors/tst_basic_cpp_support/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system/suite_editors/tst_basic_cpp_support/test.py b/tests/system/suite_editors/tst_basic_cpp_support/test.py index b5af8467280..f68fc9d4fbe 100644 --- a/tests/system/suite_editors/tst_basic_cpp_support/test.py +++ b/tests/system/suite_editors/tst_basic_cpp_support/test.py @@ -45,7 +45,7 @@ def main(): type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), " xi") type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), "") __typeAndWaitForAction__(waitForCppEditor(), "") - test.compare(lineUnderCursor(waitForCppEditor()), "extern int xi;") + test.compare(lineUnderCursor(waitForCppEditor()), "int xi = 10;") # - Move the cursor to a function call. # - Press F2 or select from the menu: Tools / C++ / Follow Symbol under Cursor From 01bbe3a4d53c950ff1728f12061bdc5cc0bc1ec5 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 8 Nov 2022 15:56:49 +0100 Subject: [PATCH 41/49] SquishTests: Remove unused object Amends 2acc90a0ba884230e2a2177763dfb8c3173c61bd Change-Id: Ie88fb9278c81b3c7a27df93a78978974d86e5377 Reviewed-by: Reviewed-by: Christian Stenger --- tests/system/objects.map | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/system/objects.map b/tests/system/objects.map index e8b28bea061..a6f3b23cdef 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -95,7 +95,6 @@ :New Text File.Add to project:_QLabel {name='projectLabel' text='Add to project:' type='QLabel' visible='1' window=':New_ProjectExplorer::JsonWizard'} :New Text File.nameLineEdit_Utils::FileNameValidatingLineEdit {name='nameLineEdit' type='Utils::FileNameValidatingLineEdit' visible='1' window=':New_ProjectExplorer::JsonWizard'} :New.comboBox_QComboBox {type='QComboBox' unnamed='1' visible='1' window=':New_Core::Internal::NewDialog'} -:New.frame_QFrame {name='frame' type='QFrame' visible='1' window=':New_Core::Internal::NewDialog'} :New.templateCategoryView_QTreeView {name='templateCategoryView' type='QTreeView' visible='1' window=':New_Core::Internal::NewDialog'} :New_Core::Internal::NewDialog {name='Core.NewDialog' type='QDialog' visible='1' windowTitle?='New*'} :New_ProjectExplorer::JsonWizard {type='ProjectExplorer::JsonWizard' unnamed='1' visible='1'} From 4e9eef339cfec37c72d165ec2d98b8ac456f9e27 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 8 Nov 2022 19:56:37 +0100 Subject: [PATCH 42/49] TarPackageCreationStep: Secure data access Don't read or modify private data from worker thread. Move Preparation of the deploy file list into the caller thread, as it is using e.g. pointer to Kit object, what doesn't look to be safe when used from non-main thread. Change-Id: I6523e8f46541f5f96d46fa98f0ba941c2ec46e74 Reviewed-by: Christian Kandeler --- .../remotelinux/tarpackagecreationstep.cpp | 121 ++++++++++-------- 1 file changed, 67 insertions(+), 54 deletions(-) diff --git a/src/plugins/remotelinux/tarpackagecreationstep.cpp b/src/plugins/remotelinux/tarpackagecreationstep.cpp index 6f33f70e665..67b3bb063e0 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.cpp +++ b/src/plugins/remotelinux/tarpackagecreationstep.cpp @@ -14,11 +14,13 @@ #include #include +#include #include #include #include #include +#include #include @@ -62,6 +64,7 @@ public: private: bool init() final; void doRun() final; + void doCancel() final; bool fromMap(const QVariantMap &map) final; QVariantMap toMap() const final; QVariant data(Id id) const final; @@ -71,11 +74,11 @@ private: bool isPackagingNeeded() const; void deployFinished(bool success); void addNeededDeploymentFiles(const DeployableFile &deployable, const Kit *kit); - bool runImpl(); - bool doPackage(); - bool appendFile(QFile &tarFile, const QFileInfo &fileInfo, const QString &remoteFilePath); + bool doPackage(const Utils::FilePath &tarFilePath, bool ignoreMissingFiles); + bool appendFile(QFile &tarFile, const QFileInfo &fileInfo, const QString &remoteFilePath, + const Utils::FilePath &tarFilePath, bool ignoreMissingFiles); - FilePath m_cachedPackageFilePath; + FilePath m_tarFilePath; bool m_deploymentDataModified = false; DeploymentTimeInfo m_deployTimes; BoolAspect *m_incrementalDeploymentAspect = nullptr; @@ -123,14 +126,53 @@ FilePath TarPackageCreationStep::packageFilePath() const bool TarPackageCreationStep::init() { - m_cachedPackageFilePath = packageFilePath(); + m_tarFilePath = packageFilePath(); m_packagingNeeded = isPackagingNeeded(); return true; } void TarPackageCreationStep::doRun() { - m_synchronizer.addFuture(runInThread([this] { return runImpl(); })); + const QList &files = target()->deploymentData().allFiles(); + + if (m_incrementalDeploymentAspect->value()) { + m_files.clear(); + for (const DeployableFile &file : files) + addNeededDeploymentFiles(file, kit()); + } else { + m_files = files; + } + + emit addOutput(Tr::tr("Creating tarball..."), OutputFormat::NormalMessage); + if (!m_packagingNeeded) { + emit addOutput(Tr::tr("Tarball up to date, skipping packaging."), OutputFormat::NormalMessage); + emit finished(true); + return; + } + + auto * const watcher = new QFutureWatcher(this); + connect(watcher, &QFutureWatcher::finished, this, [this, watcher] { + const bool success = watcher->result(); + if (success) { + m_deploymentDataModified = false; + emit addOutput(Tr::tr("Packaging finished successfully."), OutputFormat::NormalMessage); + } else { + emit addOutput(Tr::tr("Packaging failed."), OutputFormat::ErrorMessage); + } + emit finished(success); + watcher->deleteLater(); + connect(BuildManager::instance(), &BuildManager::buildQueueFinished, + this, &TarPackageCreationStep::deployFinished); + }); + auto future = Utils::runAsync(&TarPackageCreationStep::doPackage, this, + m_tarFilePath, m_ignoreMissingFilesAspect->value()); + watcher->setFuture(future); + m_synchronizer.addFuture(future); +} + +void TarPackageCreationStep::doCancel() +{ + m_synchronizer.waitForFinished(); } bool TarPackageCreationStep::fromMap(const QVariantMap &map) @@ -226,48 +268,14 @@ void TarPackageCreationStep::addNeededDeploymentFiles( } } -bool TarPackageCreationStep::runImpl() +bool TarPackageCreationStep::doPackage(const FilePath &tarFilePath, bool ignoreMissingFiles) { - const QList &files = target()->deploymentData().allFiles(); - - if (m_incrementalDeploymentAspect->value()) { - m_files.clear(); - for (const DeployableFile &file : files) - addNeededDeploymentFiles(file, kit()); - } else { - m_files = files; - } - - const bool success = doPackage(); - - if (success) { - m_deploymentDataModified = false; - emit addOutput(Tr::tr("Packaging finished successfully."), OutputFormat::NormalMessage); - } else { - emit addOutput(Tr::tr("Packaging failed."), OutputFormat::ErrorMessage); - } - - connect(BuildManager::instance(), &BuildManager::buildQueueFinished, - this, &TarPackageCreationStep::deployFinished); - - return success; -} - -bool TarPackageCreationStep::doPackage() -{ - emit addOutput(Tr::tr("Creating tarball..."), OutputFormat::NormalMessage); - if (!m_packagingNeeded) { - emit addOutput(Tr::tr("Tarball up to date, skipping packaging."), OutputFormat::NormalMessage); - return true; - } - // TODO: Optimization: Only package changed files - const FilePath tarFilePath = m_cachedPackageFilePath; - QFile tarFile(tarFilePath.toString()); + QFile tarFile(tarFilePath.toFSPathString()); if (!tarFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { raiseError(Tr::tr("Error: tar file %1 cannot be opened (%2).") - .arg(tarFilePath.toUserOutput(), tarFile.errorString())); + .arg(tarFilePath.toUserOutput(), tarFile.errorString())); return false; } @@ -278,8 +286,9 @@ bool TarPackageCreationStep::doPackage() continue; } QFileInfo fileInfo = d.localFilePath().toFileInfo(); - if (!appendFile(tarFile, fileInfo, d.remoteDirectory() + QLatin1Char('/') - + fileInfo.fileName())) { + if (!appendFile(tarFile, fileInfo, + d.remoteDirectory() + QLatin1Char('/') + fileInfo.fileName(), + tarFilePath, ignoreMissingFiles)) { return false; } } @@ -315,7 +324,7 @@ static bool setFilePath(TarFileHeader &header, const QByteArray &filePath) } static bool writeHeader(QFile &tarFile, const QFileInfo &fileInfo, const QString &remoteFilePath, - const QString &cachedPackageFilePath, QString *errorMessage) + const FilePath &tarFilePath, QString *errorMessage) { TarFileHeader header; std::memset(&header, '\0', sizeof header); @@ -367,18 +376,19 @@ static bool writeHeader(QFile &tarFile, const QFileInfo &fileInfo, const QString header.chksum[sizeof header.chksum-1] = 0; if (!tarFile.write(reinterpret_cast(&header), sizeof header)) { *errorMessage = Tr::tr("Error writing tar file \"%1\": %2") - .arg(cachedPackageFilePath, tarFile.errorString()); + .arg(tarFilePath.toUserOutput(), tarFile.errorString()); return false; } return true; } bool TarPackageCreationStep::appendFile(QFile &tarFile, const QFileInfo &fileInfo, - const QString &remoteFilePath) + const QString &remoteFilePath, + const FilePath &tarFilePath, + bool ignoreMissingFiles) { QString errorMessage; - if (!writeHeader(tarFile, fileInfo, remoteFilePath, m_cachedPackageFilePath.toUserOutput(), - &errorMessage)) { + if (!writeHeader(tarFile, fileInfo, remoteFilePath, tarFilePath, &errorMessage)) { raiseError(errorMessage); return false; } @@ -388,8 +398,10 @@ bool TarPackageCreationStep::appendFile(QFile &tarFile, const QFileInfo &fileInf for (const QString &fileName : files) { const QString thisLocalFilePath = dir.path() + QLatin1Char('/') + fileName; const QString thisRemoteFilePath = remoteFilePath + QLatin1Char('/') + fileName; - if (!appendFile(tarFile, QFileInfo(thisLocalFilePath), thisRemoteFilePath)) + if (!appendFile(tarFile, QFileInfo(thisLocalFilePath), thisRemoteFilePath, + tarFilePath, ignoreMissingFiles)) { return false; + } } return true; } @@ -399,7 +411,7 @@ bool TarPackageCreationStep::appendFile(QFile &tarFile, const QFileInfo &fileInf if (!file.open(QIODevice::ReadOnly)) { const QString message = Tr::tr("Error reading file \"%1\": %2.") .arg(nativePath, file.errorString()); - if (m_ignoreMissingFilesAspect->value()) { + if (ignoreMissingFiles) { raiseWarning(message); return true; } else { @@ -417,8 +429,9 @@ bool TarPackageCreationStep::appendFile(QFile &tarFile, const QFileInfo &fileInf while (!file.atEnd() && file.error() == QFile::NoError && tarFile.error() == QFile::NoError) { const QByteArray data = file.read(chunkSize); tarFile.write(data); - if (isCanceled()) - return false; + // TODO: replace with future interface +// if (isCanceled()) +// return false; } if (file.error() != QFile::NoError) { raiseError(Tr::tr("Error reading file \"%1\": %2.").arg(nativePath, file.errorString())); From 45317da25a3ff4872c193fc59e6f8576fbb477ed Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 27 Oct 2022 11:11:22 +0200 Subject: [PATCH 43/49] ClangCodeModel: Auto-start header file completion on trigger characters That is, recognize '"', '<' and '/' as activation characters, like the built-in code model. Note that we do not actually start the LSP completion procedure for these unless we really are in an #include directive. Fixes: QTCREATORBUG-28203 Change-Id: I85727d0e392a27efa8549e7d6fa5f18f953774b4 Reviewed-by: Reviewed-by: David Schulz --- .../clangcodemodel/clangdcompletion.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdcompletion.cpp b/src/plugins/clangcodemodel/clangdcompletion.cpp index 921b3aa19e8..36dbb16009d 100644 --- a/src/plugins/clangcodemodel/clangdcompletion.cpp +++ b/src/plugins/clangcodemodel/clangdcompletion.cpp @@ -145,6 +145,20 @@ IAssistProcessor *ClangdCompletionAssistProvider::createProcessor( default: break; } + + if (interface->reason() == ActivationCharacter) { + switch (interface->characterAt(interface->position() - 1).toLatin1()) { + case '"': case '<': case '/': + if (contextAnalyzer.completionAction() + != ClangCompletionContextAnalyzer::CompleteIncludePath) { + class NoOpProcessor : public IAssistProcessor { + IAssistProposal *perform(const AssistInterface *) override { return nullptr; } + }; + return new NoOpProcessor; + } + } + } + const QString snippetsGroup = contextAnalyzer.addSnippets() && !isInCommentOrString(interface) ? CppEditor::Constants::CPP_SNIPPETS_GROUP_ID : QString(); @@ -166,10 +180,11 @@ bool ClangdCompletionAssistProvider::isActivationCharSequence(const QString &seq // We want to minimize unneeded completion requests, as those trigger document updates, // which trigger re-highlighting and diagnostics, which we try to delay. - // Therefore, we do not trigger on syntax elements that often occur in non-applicable - // contexts, such as '(', '<' or '/'. + // Therefore, for '"', '<', and '/', a follow-up check will verify whether we are in + // an include completion context and otherwise not start the LSP completion procedure. switch (kind) { case T_DOT: case T_COLON_COLON: case T_ARROW: case T_DOT_STAR: case T_ARROW_STAR: case T_POUND: + case T_STRING_LITERAL: case T_ANGLE_STRING_LITERAL: case T_SLASH: qCDebug(clangdLogCompletion) << "detected" << sequence << "as activation char sequence"; return true; } From c89bef9dcd4e6029249c4ec11b5b1e1215e9dc53 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 7 Nov 2022 14:23:06 +0100 Subject: [PATCH 44/49] ProjectExplorer: Do not pop up the issues pane while not building Otherwise, the issues pane can pop up due to a key press, as code models refresh their diagnostic entries. Amends 04a23c38f0d751cd4b1757d775434e8c40eae006. Fixes: QTCREATORBUG-28330 Change-Id: Ic7e63a1bbbf3e4c37383849cfad05529bac23e9b Reviewed-by: Christian Stenger Reviewed-by: --- src/plugins/projectexplorer/buildmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 59beff60f77..7a2f3b53f24 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -486,7 +486,7 @@ void BuildManager::updateTaskCount() { const int errors = getErrorTaskCount(); ProgressManager::setApplicationLabel(errors > 0 ? QString::number(errors) : QString()); - if (errors > 0 && !d->m_poppedUpTaskWindow) { + if (isBuilding() && errors > 0 && !d->m_poppedUpTaskWindow) { showTaskWindow(); d->m_poppedUpTaskWindow = true; } From 421e5d9c598d10768769e9c4586b775534db09d2 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 10 Nov 2022 07:35:13 +0100 Subject: [PATCH 45/49] Utils: Better prerequisites check for DeviceShell Check the existence of all commands used by the DeviceShell script before trying to start it. Change-Id: I7a69957a979f8eb021c45e54615ad8d38353d28b Reviewed-by: hjk --- src/libs/utils/deviceshell.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/deviceshell.cpp b/src/libs/utils/deviceshell.cpp index ef6814e9c4e..1712f5390f8 100644 --- a/src/libs/utils/deviceshell.cpp +++ b/src/libs/utils/deviceshell.cpp @@ -240,9 +240,9 @@ bool DeviceShell::start() bool DeviceShell::checkCommand(const QByteArray &command) { - const QByteArray checkBase64Cmd = "(which base64 || echo '')\n"; + const QByteArray checkCmd = "(which " + command + " || echo '')\n"; - m_shellProcess->writeRaw(checkBase64Cmd); + m_shellProcess->writeRaw(checkCmd); if (!m_shellProcess->waitForReadyRead()) { qCWarning(deviceShellLog) << "Timeout while trying to check for" << command; return false; @@ -265,9 +265,12 @@ bool DeviceShell::installShellScript() return false; } - if (!checkCommand("base64")) { - m_shellScriptState = State::NoScript; - return false; + static const QList requiredCommands + = {"base64", "cat", "echo", "kill", "mkfifo", "mktemp", "rm"}; + + for (const QByteArray &command : requiredCommands) { + if (!checkCommand(command)) + return false; } const static QByteArray shellScriptBase64 = FilePath(":/utils/scripts/deviceshell.sh") From 39d04fb9e7bc2323244f9e8a725a6e6da56160ef Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Mon, 31 Oct 2022 16:31:20 +0100 Subject: [PATCH 46/49] QuickFix: Fix generate function definition with unsigned type Fixes: QTCREATORBUG-28378 Change-Id: Ic94901e430d08aab22c8f4c394eda1f8a93398bc Reviewed-by: Reviewed-by: Christian Kandeler --- src/libs/3rdparty/cplusplus/Bind.cpp | 23 +++++- src/libs/3rdparty/cplusplus/Bind.h | 1 + src/plugins/cppeditor/cppquickfix_test.cpp | 89 ++++++++++++++++++++++ src/plugins/cppeditor/cppquickfix_test.h | 1 + 4 files changed, 113 insertions(+), 1 deletion(-) diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 4ad562eb0c6..effaac4b65a 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -276,8 +276,25 @@ FullySpecifiedType Bind::postfixDeclarator(PostfixDeclaratorAST *ast, const Full return value; } -bool Bind::preVisit(AST *) +bool Bind::preVisit(AST *ast) { + if (_typeWasUnsignedOrSigned) { + if (SimpleSpecifierAST *simpleAst = ast->asSimpleSpecifier()) { + switch (tokenKind(simpleAst->specifier_token)) { + case T_CHAR: + case T_CHAR16_T: + case T_CHAR32_T: + case T_WCHAR_T: + case T_INT: + case T_SHORT: + case T_LONG: + _type.setType(&UndefinedType::instance); + break; + } + } + _typeWasUnsignedOrSigned = false; + } + ++_depth; if (_depth > kMaxDepth) return false; @@ -2980,13 +2997,17 @@ bool Bind::visit(SimpleSpecifierAST *ast) case T_SIGNED: if (_type.isSigned()) translationUnit()->error(ast->specifier_token, "duplicate `%s'", spell(ast->specifier_token)); + _type.setType(control()->integerType(IntegerType::Int)); _type.setSigned(true); + _typeWasUnsignedOrSigned = true; break; case T_UNSIGNED: if (_type.isUnsigned()) translationUnit()->error(ast->specifier_token, "duplicate `%s'", spell(ast->specifier_token)); + _type.setType(control()->integerType(IntegerType::Int)); _type.setUnsigned(true); + _typeWasUnsignedOrSigned = true; break; case T_CHAR: diff --git a/src/libs/3rdparty/cplusplus/Bind.h b/src/libs/3rdparty/cplusplus/Bind.h index e5ee6228814..3947e57026d 100644 --- a/src/libs/3rdparty/cplusplus/Bind.h +++ b/src/libs/3rdparty/cplusplus/Bind.h @@ -300,6 +300,7 @@ private: int _methodKey; bool _skipFunctionBodies; int _depth; + bool _typeWasUnsignedOrSigned = false; }; } // namespace CPlusPlus diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 060eb808a93..bbd192f7f74 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -4713,6 +4713,95 @@ void QuickfixTest::testInsertDefFromDeclTemplateFunction() QuickFixOperationTest(singleDocument(original, expected), &factory); } +void QuickfixTest::testInsertDefFromDeclFunctionWithSignedUnsignedArgument() +{ + QByteArray original; + QByteArray expected; + InsertDefFromDecl factory; + + original =R"--( +class myclass +{ + myc@lass(QVector g); + myclass(QVector g); +} +)--"; + expected =R"--( +class myclass +{ + myclass(QVector g); + myclass(QVector g); +} + +myclass::myclass(QVector g) +{ + +} +)--"; + + QuickFixOperationTest(singleDocument(original, expected), &factory); + + original =R"--( +class myclass +{ + myclass(QVector g); + myc@lass(QVector g); +} +)--"; + expected =R"--( +class myclass +{ + myclass(QVector g); + myclass(QVector g); +} + +myclass::myclass(QVector g) +{ + +} +)--"; + + QuickFixOperationTest(singleDocument(original, expected), &factory); + + original =R"--( +class myclass +{ + unsigned f@oo(unsigned); +} +)--"; + expected =R"--( +class myclass +{ + unsigned foo(unsigned); +} + +unsigned int myclass::foo(unsigned int) +{ + +} +)--"; + QuickFixOperationTest(singleDocument(original, expected), &factory); + + original =R"--( +class myclass +{ + signed f@oo(signed); +} +)--"; + expected =R"--( +class myclass +{ + signed foo(signed); +} + +signed int myclass::foo(signed int) +{ + +} +)--"; + QuickFixOperationTest(singleDocument(original, expected), &factory); +} + void QuickfixTest::testInsertDefFromDeclNotTriggeredForFriendFunc() { const QByteArray contents = diff --git a/src/plugins/cppeditor/cppquickfix_test.h b/src/plugins/cppeditor/cppquickfix_test.h index f381294a25e..2a72e45df55 100644 --- a/src/plugins/cppeditor/cppquickfix_test.h +++ b/src/plugins/cppeditor/cppquickfix_test.h @@ -133,6 +133,7 @@ private slots: void testInsertDefFromDeclTemplateClass(); void testInsertDefFromDeclTemplateClassWithValueParam(); void testInsertDefFromDeclTemplateFunction(); + void testInsertDefFromDeclFunctionWithSignedUnsignedArgument(); void testInsertDefFromDeclNotTriggeredForFriendFunc(); void testInsertDefFromDeclMinimalFunctionParameterType(); void testInsertDefFromDeclAliasTemplateAsReturnType(); From 50b749fc427cbf98aea090222e5d0f4ff6b7fc0a Mon Sep 17 00:00:00 2001 From: Rami Potinkara Date: Wed, 9 Nov 2022 13:34:21 +0200 Subject: [PATCH 47/49] Android: Qt 6.5 NDK25 update to sdk_definitions.json Qt 6.5 NDK25 as new default. Qt 6.4 NDK23 as it requires it. Task-number: QTCREATORBUG-28426 Change-Id: I2d742481a1c490cc9dfe8a25870a5699e38c4315 Reviewed-by: Alessandro Portale Reviewed-by: Nicholas Bennett --- share/qtcreator/android/sdk_definitions.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json index 1c7476763be..8f1bda6358c 100644 --- a/share/qtcreator/android/sdk_definitions.json +++ b/share/qtcreator/android/sdk_definitions.json @@ -18,6 +18,11 @@ "specific_qt_versions": [ { "versions": ["default"], + "sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"], + "ndk_path": "ndk/25.1.8937393" + }, + { + "versions": ["6.4"], "sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"], "ndk_path": "ndk/23.1.7779620" }, From cb1176364146c44eea94b4b9ba7e3428cf8a3de4 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 9 Nov 2022 17:05:35 +0100 Subject: [PATCH 48/49] Utils: Fix nullptr access when shell script process fails When the QtcProcess failed to start, we immediately delete it. Later it would try to access it to retrieve the command line for the error message, which would crash. Change-Id: Ibac942e9a1a91001d90ce7e73d5463c51af81590 Reviewed-by: hjk Reviewed-by: --- src/libs/utils/deviceshell.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/deviceshell.cpp b/src/libs/utils/deviceshell.cpp index 1712f5390f8..dd0abd107cf 100644 --- a/src/libs/utils/deviceshell.cpp +++ b/src/libs/utils/deviceshell.cpp @@ -182,6 +182,8 @@ bool DeviceShell::start() setupShellProcess(m_shellProcess.get()); + CommandLine cmdLine = m_shellProcess->commandLine(); + m_shellProcess->setProcessMode(ProcessMode::Writer); // Moving the process into its own thread ... @@ -232,7 +234,7 @@ bool DeviceShell::start() &result); if (!result) { - startupFailed(m_shellProcess->commandLine()); + startupFailed(cmdLine); } return result; From a71c0368225c6ef3f0141fdb0f5893da946c0514 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 27 Oct 2022 10:19:19 +0200 Subject: [PATCH 49/49] Boot2Qt: Fix default deployment method This fix addresses two problems: 1) If no boot2qt device exists yet, no deploy step is created. This is hard for the user to debug. 2) As the device supports rsync, an RsyncDeployStep would be created. This is not optimal when the build device is remote, as the fallback would not check if the target file is up-to-date first. Therefore this fix adds another possible deploy step that will always be created if either no device is available, or the build device is a remote device. Additionally this change adds an RSync deploy step if neither a remote build device is set nor a target device. Change-Id: I8959408e13d690d484ade9e837e7fa65eb106676 Reviewed-by: Samuli Piippo Reviewed-by: --- .../boot2qt/qdbdeployconfigurationfactory.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/plugins/boot2qt/qdbdeployconfigurationfactory.cpp b/src/plugins/boot2qt/qdbdeployconfigurationfactory.cpp index 1eedc858a33..90612415764 100644 --- a/src/plugins/boot2qt/qdbdeployconfigurationfactory.cpp +++ b/src/plugins/boot2qt/qdbdeployconfigurationfactory.cpp @@ -34,12 +34,29 @@ QdbDeployConfigurationFactory::QdbDeployConfigurationFactory() addInitialStep(Qdb::Constants::QdbStopApplicationStepId); addInitialStep(RemoteLinux::Constants::RsyncDeployStepId, [](Target *target) { auto device = DeviceKitAspect::device(target->kit()); - return device && device->extraData(RemoteLinux::Constants::SupportsRSync).toBool(); + auto buildDevice = BuildDeviceKitAspect::device(target->kit()); + if (buildDevice && buildDevice->rootPath().needsDevice()) + return false; + return !device + || (device && device->extraData(RemoteLinux::Constants::SupportsRSync).toBool()); }); addInitialStep(RemoteLinux::Constants::DirectUploadStepId, [](Target *target) { auto device = DeviceKitAspect::device(target->kit()); + auto buildDevice = BuildDeviceKitAspect::device(target->kit()); + if (buildDevice && buildDevice->rootPath().needsDevice()) + return false; return device && !device->extraData(RemoteLinux::Constants::SupportsRSync).toBool(); }); + // This step is for: + // a) A remote build device, as they do not support real rsync yet. + // b) If there is no target device setup yet. + addInitialStep(RemoteLinux::Constants::DirectUploadStepId, [](Target *target) { + auto device = DeviceKitAspect::device(target->kit()); + auto buildDevice = BuildDeviceKitAspect::device(target->kit()); + if (buildDevice && buildDevice->rootPath().needsDevice()) + return true; + return false; + }); } } // namespace Internal