From 92d73709035f2e3f4ca282ce27d8fdba5bcdfad8 Mon Sep 17 00:00:00 2001 From: Roy Qu Date: Sun, 7 Aug 2022 21:41:57 +0800 Subject: [PATCH] - enhancement: create template --- NEWS.md | 1 + RedPandaIDE/RedPandaIDE.pro | 3 + RedPandaIDE/mainwindow.cpp | 34 + RedPandaIDE/mainwindow.h | 2 + RedPandaIDE/mainwindow.ui | 8 + RedPandaIDE/project.cpp | 129 +- RedPandaIDE/project.h | 9 +- RedPandaIDE/projecttemplate.cpp | 30 +- RedPandaIDE/projecttemplate.h | 4 +- RedPandaIDE/translations/RedPandaIDE_pt_BR.ts | 159 +- RedPandaIDE/translations/RedPandaIDE_zh_CN.ts | 4025 +++++++++-------- RedPandaIDE/translations/RedPandaIDE_zh_TW.ts | 59 + RedPandaIDE/widgets/newtemplatedialog.cpp | 118 + RedPandaIDE/widgets/newtemplatedialog.h | 43 + RedPandaIDE/widgets/newtemplatedialog.ui | 131 + 15 files changed, 2724 insertions(+), 2031 deletions(-) create mode 100644 RedPandaIDE/widgets/newtemplatedialog.cpp create mode 100644 RedPandaIDE/widgets/newtemplatedialog.h create mode 100644 RedPandaIDE/widgets/newtemplatedialog.ui diff --git a/NEWS.md b/NEWS.md index ae4270af..88056b1f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ Red Panda C++ Version 1.2 - enhancement: Portuguese Translation ( Thanks for crcpucmg@github) - fix: files in network drive is opened in readonly mode - change: organization structure of templates + - enhancement: create template Red Panda C++ Version 1.1.6 diff --git a/RedPandaIDE/RedPandaIDE.pro b/RedPandaIDE/RedPandaIDE.pro index 9e2faf64..c8a3fb25 100644 --- a/RedPandaIDE/RedPandaIDE.pro +++ b/RedPandaIDE/RedPandaIDE.pro @@ -191,6 +191,7 @@ SOURCES += \ widgets/newheaderdialog.cpp \ widgets/newprojectdialog.cpp \ widgets/newprojectunitdialog.cpp \ + widgets/newtemplatedialog.cpp \ widgets/ojproblempropertywidget.cpp \ widgets/ojproblemsetmodel.cpp \ widgets/qconsole.cpp \ @@ -341,6 +342,7 @@ HEADERS += \ widgets/newheaderdialog.h \ widgets/newprojectdialog.h \ widgets/newprojectunitdialog.h \ + widgets/newtemplatedialog.h \ widgets/ojproblempropertywidget.h \ widgets/ojproblemsetmodel.h \ widgets/qconsole.h \ @@ -406,6 +408,7 @@ FORMS += \ widgets/newheaderdialog.ui \ widgets/newprojectdialog.ui \ widgets/newprojectunitdialog.ui \ + widgets/newtemplatedialog.ui \ widgets/ojproblempropertywidget.ui \ widgets/searchdialog.ui \ widgets/signalmessagedialog.ui diff --git a/RedPandaIDE/mainwindow.cpp b/RedPandaIDE/mainwindow.cpp index 29fc7c7f..a474be33 100644 --- a/RedPandaIDE/mainwindow.cpp +++ b/RedPandaIDE/mainwindow.cpp @@ -47,6 +47,7 @@ #include "vcs/gitremotedialog.h" #include "vcs/gituserconfigdialog.h" #include "widgets/infomessagebox.h" +#include "widgets/newtemplatedialog.h" #include #include @@ -186,6 +187,8 @@ MainWindow::MainWindow(QWidget *parent) mMenuNew->addAction(ui->actionNew); mMenuNew->addAction(ui->actionNew_Project); mMenuNew->addSeparator(); + mMenuNew->addAction(ui->actionNew_Template); + mMenuNew->addSeparator(); mMenuNew->addAction(ui->actionNew_Class); mMenuNew->addAction(ui->actionNew_Header); @@ -519,6 +522,7 @@ void MainWindow::updateEditorActions() void MainWindow::updateProjectActions() { bool hasProject = (mProject != nullptr); + ui->actionNew_Template->setEnabled(hasProject); ui->actionView_Makefile->setEnabled(hasProject); ui->actionProject_New_File->setEnabled(hasProject); ui->actionAdd_to_project->setEnabled(hasProject); @@ -8055,3 +8059,33 @@ void MainWindow::on_actionGo_to_Line_triggered() } } + +void MainWindow::on_actionNew_Template_triggered() +{ + if (!mProject) + return; + NewTemplateDialog dialog(this); + if (dialog.exec()==QDialog::Accepted) { + QDir folder( + includeTrailingPathDelimiter( + pSettings->dirs().config(Settings::Dirs::DataType::Template)) + +dialog.getName()); + if (folder.exists()) { + if (QMessageBox::warning(this, + tr("Template Exists"), + tr("Template %1 already exists. Do you want to overwrite?").arg(dialog.getName()), + QMessageBox::Yes | QMessageBox::No, + QMessageBox::No + )!=QMessageBox::Yes) + return; + } + + mProject->saveAsTemplate( + folder.absolutePath(), + dialog.getName(), + dialog.getDescription(), + dialog.getCategory() + ); + } +} + diff --git a/RedPandaIDE/mainwindow.h b/RedPandaIDE/mainwindow.h index d9a28648..8b383936 100644 --- a/RedPandaIDE/mainwindow.h +++ b/RedPandaIDE/mainwindow.h @@ -699,6 +699,8 @@ private slots: void on_actionGo_to_Line_triggered(); + void on_actionNew_Template_triggered(); + private: Ui::MainWindow *ui; EditorList *mEditorList; diff --git a/RedPandaIDE/mainwindow.ui b/RedPandaIDE/mainwindow.ui index d7bf4618..70fc7cf2 100644 --- a/RedPandaIDE/mainwindow.ui +++ b/RedPandaIDE/mainwindow.ui @@ -3187,6 +3187,14 @@ Go to Line... + + + New Template... + + + New Template from Project + + diff --git a/RedPandaIDE/project.cpp b/RedPandaIDE/project.cpp index 2e7ae9c8..f25de76c 100644 --- a/RedPandaIDE/project.cpp +++ b/RedPandaIDE/project.cpp @@ -645,20 +645,6 @@ bool Project::saveUnits() return true; } -void Project::saveAsTemplate(const QString &/*filename*/, - const QString &name, - const QString &description, - const QString &category) -{ - SimpleIni ini; - ini.SetValue("Template", "Icon", ""); - ini.SetValue("Template", "Category",toByteArray(category)); - ini.SetValue("Template", "Name",toByteArray(name)); - ini.SetValue("Template", "Description", toByteArray(description)); - ini.SetValue("Project", "Icon", toByteArray(options().icon)); - //todo: save to template -} - PProjectUnit Project::findUnitByFilename(const QString &filename) { foreach(PProjectUnit unit, mUnits) { @@ -854,6 +840,121 @@ bool Project::assignTemplate(const std::shared_ptr aTemplate, b return true; } +bool Project::saveAsTemplate(const QString &templateFolder, + const QString& name, + const QString& description, + const QString& category) +{ + QDir dir(templateFolder); + if (!dir.mkpath(templateFolder)) { + QMessageBox::critical(nullptr, + tr("Error"), + tr("Can't create folder %1 ").arg(templateFolder), + QMessageBox::Ok); + return false; + } + + QString fileName = dir.absoluteFilePath(TEMPLATE_INFO_FILE); + PSimpleIni ini = std::make_shared(); + + ini->SetLongValue("Template","Ver",3); + // template info + ini->SetValue("Template", "Name", name.toUtf8()); + ini->SetValue("Template", "Category", category.toUtf8()); + ini->SetValue("Template", "Description", description.toUtf8()); + if (fileExists(mOptions.icon)) { + QString iconName = extractFileName(mOptions.icon); + if (dir.exists(iconName)) + dir.remove(iconName); + QFile::copy(mOptions.icon, dir.absoluteFilePath(iconName)); + if (dir.exists(iconName)) + ini->SetValue("Template", "Icon", iconName.toUtf8()); + } + + ini->SetLongValue("Project", "Type", static_cast(mOptions.type)); + if (!mOptions.objFiles.isEmpty()) + ini->SetValue("Project", "ObjFiles", mOptions.objFiles.join(";").toUtf8()); + if (!mOptions.includeDirs.isEmpty()) + ini->SetValue("Project", "Includes", mOptions.includeDirs.join(";").toUtf8()); + if (!mOptions.resourceIncludes.isEmpty()) + ini->SetValue("Project", "ResourceIncludes", mOptions.resourceIncludes.join(";").toUtf8()); + if (!mOptions.binDirs.isEmpty()) + ini->SetValue("Project", "Bins", mOptions.binDirs.join(";").toUtf8()); + if (!mOptions.libDirs.isEmpty()) + ini->SetValue("Project", "Libs", mOptions.libDirs.join(";").toUtf8()); + if (!mOptions.compilerCmd.isEmpty()) + ini->SetValue("Project", "Compiler", mOptions.compilerCmd.toUtf8()); + if (!mOptions.cppCompilerCmd.isEmpty()) + ini->SetValue("Project", "CppCompiler", mOptions.cppCompilerCmd.toUtf8()); + if (!mOptions.linkerCmd.isEmpty()) + ini->SetValue("Project", "Linker",mOptions.linkerCmd.toUtf8()); + ini->SetBoolValue("Project", "IsCpp", mOptions.isCpp); + if (mOptions.includeVersionInfo) + ini->SetBoolValue("Project", "IncludeVersionInfo", true); + if (mOptions.supportXPThemes) + ini->SetBoolValue("Project", "SupportXPThemes", true); + if (!mOptions.exeOutput.isEmpty()) + ini->SetValue("Project", "ExeOutput", mOptions.exeOutput.toUtf8()); + if (!mOptions.objectOutput.isEmpty()) + ini->SetValue("Project", "ObjectOutput", mOptions.objectOutput.toUtf8()); + if (!mOptions.logOutput.isEmpty()) + ini->SetValue("Project", "LogOutput", mOptions.logOutput.toUtf8()); + if (mOptions.execEncoding!=ENCODING_SYSTEM_DEFAULT) + ini->SetValue("Project","ExecEncoding", mOptions.execEncoding); + + if (!mOptions.staticLink) + ini->SetBoolValue("Project", "StaticLink",false); + if (!mOptions.addCharset) + ini->SetBoolValue("Project", "AddCharset",false); + if (mOptions.encoding!=ENCODING_AUTO_DETECT) + ini->SetValue("Project","Encoding",mOptions.encoding.toUtf8()); + if (mOptions.modelType!=ProjectModelType::FileSystem) + ini->SetLongValue("Project", "ModelType", (int)mOptions.modelType); + + for (int i=0;ifileName()); + QByteArray section = toByteArray(QString("Unit%1").arg(i)); + if (dir.exists(unitName)) + dir.remove(unitName); + if (!QFile::copy(unit->fileName(), dir.absoluteFilePath(unitName))) { + QMessageBox::warning(nullptr, + tr("Warning"), + tr("Can't save file %1").arg(dir.absoluteFilePath(unitName)), + QMessageBox::Ok); + } + switch(getFileType(unit->fileName())) { + case FileType::CSource: + ini->SetValue(section,"C", unitName.toUtf8()); + ini->SetValue(section,"CName", unitName.toUtf8()); + break; + case FileType::CppSource: + ini->SetValue(section,"Cpp", unitName.toUtf8()); + ini->SetValue(section,"CppName", unitName.toUtf8()); + break; + case FileType::CHeader: + case FileType::CppHeader: + ini->SetValue(section,"C", unitName.toUtf8()); + ini->SetValue(section,"CName", unitName.toUtf8()); + ini->SetValue(section,"Cpp", unitName.toUtf8()); + ini->SetValue(section,"CppName", unitName.toUtf8()); + break; + default: + ini->SetValue(section,"Source", unitName.toUtf8()); + ini->SetValue(section,"Target", unitName.toUtf8()); + } + } + ini->SetLongValue("Project","UnitCount",mUnits.count()); + if (ini->SaveFile(fileName.toLocal8Bit())!=SI_OK) { + QMessageBox::critical(nullptr, + tr("Error"), + tr("Can't save file %1").arg(fileName), + QMessageBox::Ok); + return false; + } + return true; +} + void Project::saveOptions() { SimpleIni ini; diff --git a/RedPandaIDE/project.h b/RedPandaIDE/project.h index e25c5398..dbddbeaa 100644 --- a/RedPandaIDE/project.h +++ b/RedPandaIDE/project.h @@ -205,12 +205,9 @@ public: void saveUnitAs(int i, const QString& sFileName, bool syncEditor = true); // save single [UnitX] bool saveUnits(); - void saveAsTemplate(const QString &filename, const QString &name, const QString &description, - const QString &category); PProjectUnit findUnitByFilename(const QString& filename); void associateEditor(Editor* editor); void associateEditorToUnit(Editor* editor, PProjectUnit unit); -// bool setCompileOption(const QString &key, int valIndex); bool setCompileOption(const QString &key, const QString &value); QString getCompileOption(const QString &key) const; @@ -218,9 +215,11 @@ public: void updateNodeIndexes(); void setCompilerSet(int compilerSetIndex); - //void showOptions(); bool assignTemplate(const std::shared_ptr aTemplate, bool useCpp); - //void saveToLog(); + bool saveAsTemplate(const QString& templateFolder, + const QString& name, + const QString& description, + const QString& category); std::shared_ptr cppParser(); const QString &filename() const; diff --git a/RedPandaIDE/projecttemplate.cpp b/RedPandaIDE/projecttemplate.cpp index a3d1bd8b..74012232 100644 --- a/RedPandaIDE/projecttemplate.cpp +++ b/RedPandaIDE/projecttemplate.cpp @@ -52,31 +52,6 @@ PTemplateUnit ProjectTemplate::unit(int index) return unit; } -void ProjectTemplate::setUnit(int index, PTemplateUnit newUnit) -{ - if (!mIni || mVersion<=0) - return; - QByteArray section = toByteArray(QString("Unit%1").arg(index)); - mIni->SetValue(section,"C", toByteArray(newUnit->CText)); - mIni->SetValue(section,"Cpp", toByteArray(newUnit->CppText)); - mIni->SetValue(section,"CName", toByteArray(newUnit->CName)); - mIni->SetValue(section,"CppName", toByteArray(newUnit->CppName)); - mIni->SetValue(section,"Source", toByteArray(newUnit->Source)); - mIni->SetValue(section,"Target", toByteArray(newUnit->Target)); -} - -int ProjectTemplate::addUnit() -{ - if (!mIni || mVersion<=0) - return -1; - int count = unitCount() +1; - QByteArray section = toByteArray(QString("Unit%1").arg(count-1)); - mIni->SetValue(section, "C", ""); - mIni->SetValue(section, "Cpp", ""); - mIni->SetLongValue("Project", "UnitCount", count); - return count; -} - void ProjectTemplate::readTemplateFile(const QString &fileName) { if (mIni) @@ -267,3 +242,8 @@ int ProjectTemplate::version() const return mVersion; } +void ProjectTemplate::setVersion(int newVersion) +{ + mVersion = newVersion; +} + diff --git a/RedPandaIDE/projecttemplate.h b/RedPandaIDE/projecttemplate.h index 0eee271e..6ebaaeb2 100644 --- a/RedPandaIDE/projecttemplate.h +++ b/RedPandaIDE/projecttemplate.h @@ -39,8 +39,6 @@ public: explicit ProjectTemplate(QObject *parent = nullptr); int unitCount(); PTemplateUnit unit(int index); - void setUnit(int index, PTemplateUnit newUnit); - int addUnit(); void readTemplateFile(const QString& fileName); bool save(); const QString &category() const; @@ -65,6 +63,8 @@ public: int version() const; + void setVersion(int newVersion); + private: QString mFileName; ProjectOptions mOptions; diff --git a/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts b/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts index 2f757173..e852f6b5 100644 --- a/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts +++ b/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts @@ -287,6 +287,18 @@ Ok Ok + + Default Language: + + + + C + + + + C++ + + CodeSnippetsManager @@ -1041,7 +1053,7 @@ Enable code completion - Habilitar complementação de código + Habilitar complementação de código Minimum id length to show completion @@ -1111,6 +1123,10 @@ Completion suggestion window height: Altura da janela com sugestão para complementação + + Enable code competion + + EditorColorSchemeWidget @@ -1547,7 +1563,7 @@ Independent Red Panda C++ applications - Aplicativos independentes do Red Panda C++ + Aplicativos independentes do Red Panda C++ The same Red Panda C++ application @@ -1561,6 +1577,10 @@ Just check or uncheck for which file types Red Panda C++ wil be registered as the default application to open them ... Basta marcar ou desmarcar quais tipos de arquivos o Red Panda C++ irá registrar como aplicativos padrões para abrí-los ... + + Independant Red Panda C++ applications + + EnvironmentFoldersWidget @@ -2060,7 +2080,7 @@ Insert empty lines around unrelated blocks - Inserir linhas em branco em torno de blocos não relacionados + Inserir linhas em branco em torno de blocos não relacionados Insert empty lines around all blocks @@ -2164,7 +2184,7 @@ Don't break multiple statements residing on one line - Não separar instruções múltiplas que estejam em uma mesma linha + Não separar instruções múltiplas que estejam em uma mesma linha Break return type from the function name in its declaration @@ -2198,6 +2218,14 @@ Place the logical conditional to the last on the previous line, when break lines Colocar a condição lógica por último na linha anterior, ao separar linhas + + Insert empty lines arround unrelated blocks + + + + Don't break multimple statements residing on one line + + FormatterPathWidget @@ -2417,7 +2445,7 @@ Not Specified - Não especificado + Não especificado Create New Branch @@ -2443,6 +2471,10 @@ Cancel Cancelar + + Not Specifiied + + GitFetchDialog @@ -2703,12 +2735,16 @@ User name: - User name: + User name: Git needs the following info to commit: Git needs the following info to commit: + + User Name: + + InfoMessageBox @@ -2958,7 +2994,7 @@ Add Problem Case - Acrescentar caso de problema + Acrescentar caso de problema Remove Problem Case @@ -2966,7 +3002,7 @@ Open Answer Source File - Abrir arquivo de respostas + Abrir arquivo de respostas Run All Cases @@ -3878,7 +3914,7 @@ Host application missing - Falta aplicativo hospedeiro + Falta aplicativo hospedeiro DLL project needs a host application to run. @@ -4532,6 +4568,34 @@ Line Linha + + Add Probem Case + + + + Open Anwser Source File + + + + Host applcation missing + + + + New Template... + + + + New Template from Project + + + + Template Exists + + + + Template %1 already exists. Do you want to overwrite? + + NewClassDialog @@ -4689,6 +4753,37 @@ Escolher pasta + + NewTemplateDialog + + Dialog + Diálogo + + + Description + Descrição + + + Category + + + + Name + + + + Create + Criar + + + Cancel + + + + Create Template From Project + + + OJProblemCasesRunner @@ -4828,6 +4923,22 @@ Developed using the Red Panda C++ IDE Desenvolvido com uso da IDE Red Panda C++ + + Error + Erro + + + Can't create folder %1 + + + + Warning + Aviso + + + Can't save file %1 + + ProjectCompileParamatersWidget @@ -5289,7 +5400,7 @@ Release - Release + Release Build @@ -5343,6 +5454,10 @@ Legal copyright Direitos autorais reservados + + Rlease + + QApplication @@ -5415,7 +5530,7 @@ Global Variable - Variável global + Variável global Hexadecimal Integer @@ -5747,7 +5862,7 @@ Do not assemble, compile and generate the assembly code (-S) - Não montar, compilar e gerar código em assembly (-S) + Não montar, compilar e gerar código em assembly (-S) Use pipes instead of temporary files during compilation (-pipe) @@ -5767,7 +5882,7 @@ Compiler set not configured. - Compilador não configurado. + Compilador não configurado. Would you like Red Panda C++ to search for compilers in the following locations: <BR />'%1'<BR />'%2'? @@ -5857,6 +5972,18 @@ Leaving those directories will lead to problems during compilation. Deixar essas pastas resultará em problemas durante a compilação. + + Gloabal Variable + + + + Do not assemble, compile and generate the assemble code (-S) + + + + Compiler set not configuared. + + RegisterModel @@ -6221,7 +6348,11 @@ There are changes in the settings, do you want to save them before switch to other page? - Alteradas nas configurações, quer salvá-las antes de mudar para outra página? + Alteradas nas configurações, quer salvá-las antes de mudar para outra página? + + + There are changes in the settings, do you want to save them before swtich to other page? + diff --git a/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts b/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts index 41fea6ac..9f0e7880 100644 --- a/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts +++ b/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts @@ -4,7 +4,7 @@ AboutDialog - + About 关于 @@ -55,28 +55,28 @@ p, li { white-space: pre-wrap; } <html><head/><body><p>基于 Qt %1 (%2)</p><p>构建时间: %3 %4</p><p>Copyright 2020-2021 royqh1979@gmail.com</p><p>主页: <a href="https://royqh.net/devcpp/"><span style=" text-decoration: underline; color:#007af4;">https://royqh.net/devcpp/</span></a></p></body></html> - + <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:600;">Red Panda C++</span></h1></body></html> <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:600;">Red-Panda C++</span></h1></body></html> <html><head/><body><h1 style=" margin-top:18px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:xx-large; font-weight:600;">小熊猫C++</span></h1></body></html> - + Based on Qt %1 (%2) 基于Qt %1 (%2) - + Build time: %1 %2 构建时间:%1 %2 - + Copyright(C) 2021-2022 瞿华(royqh1979@gmail.com) Copyright(C) 2021-2022 瞿华(royqh1979@gmail.com) - + <html><head/><body><p>Homepage: <a href="Homepage: https://sourceforge.net/projects/dev-cpp-2020/">https://sourceforge.net/projects/dev-cpp-2020/</a></p></body></html> <html><head/><body><p>官方网站: <a href="Homepage: https://sourceforge.net/projects/dev-cpp-2020/">https://sourceforge.net/projects/dev-cpp-2020/</a></p></body></html> @@ -90,12 +90,12 @@ p, li { white-space: pre-wrap; } 小熊猫Dev-C++ (<=6.7.5): - + GNU General Public License GNU通用公共许可 - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -120,17 +120,17 @@ p, li { white-space: pre-wrap; } 本程序附带一份GNU通用公共许可协议的副本。您也可以从GNU网站<http://www.gnu.org/licenses/>获取。 - + Version: 版本: - + Non-GCC Compiler 非GCC编译器 - + Website: <a href="%1">%1</a> 网址:<a href="%1">%1</a> @@ -138,17 +138,17 @@ p, li { white-space: pre-wrap; } AppTheme - + Theme file '%1' doesn't exist! 主题文件"%1"不存在! - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - + Can't open the theme file '%1' for read. 无法读取主题文件"%1"! @@ -160,27 +160,27 @@ p, li { white-space: pre-wrap; } AutolinkModel - + Header 头文件 - + UTF-8 UTF-8 - + Link options 链接参数 - + Header exists 头文件已存在 - + Header already exists. 头文件已存在。 @@ -188,17 +188,17 @@ p, li { white-space: pre-wrap; } BacktraceModel - + Function 函数 - + Filename 文件名 - + Line @@ -206,37 +206,37 @@ p, li { white-space: pre-wrap; } BookmarkModel - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - + Can't open file '%1' for read. 无法读取文件'%1'. - + Description 描述 - + Line - + Filename 文件名 @@ -244,37 +244,37 @@ p, li { white-space: pre-wrap; } BreakpointModel - + Filename 文件名 - + Line - + Condition 条件 - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - + Can't open file '%1' for read. 无法读取文件'%1'. @@ -282,39 +282,39 @@ p, li { white-space: pre-wrap; } CPUDialog - + CPU Info CPU信息 - + Disassemble 反汇编 - - + + Step over one machine instruction 单步执行一条机器指令 - - + + Step into one machine instruction 单步进入一条机器指令 - + AT&&T AT&&T - + Intel Intel - + Blend Mode 混合模式 @@ -322,113 +322,113 @@ p, li { white-space: pre-wrap; } CharsetInfoManager - - - + + + Arabic 阿拉伯语系 - - - - + + + + Greek 希腊语系 - - - - + + + + Baltic 巴尔干语系 - - - - - - - + + + + + + + Western Europe 西欧语言 - - + + Central Europe 中欧语言 - - - - - - - + + + + + + + Cyrillic 西里尔语系 - - - - + + + + Turkish 土耳其语系 - - + + Northern Europe 北欧语系 - - - + + + Hebrew 希伯来语 - + Thai 泰语 - - + + Japanese 日语 - - - + + + Chinese 中文 - - + + Korean 韩语 - + Vietnamese 越南语 - + Eastern Europe 东欧语系 - + Celtic 凯尔特语系 @@ -436,38 +436,38 @@ p, li { white-space: pre-wrap; } ChooseThemeDialog - - + + Choose Theme 选择主题 - + Dark Theme 深色主题 - + Light Theme 浅色主题 - + Default Language: - 缺省语言: + 缺省语言: - + C - + C - + C++ - + C++ - + Ok 确定 @@ -475,66 +475,66 @@ p, li { white-space: pre-wrap; } CodeSnippetsManager - - + + Load default code snippets failed 载入缺省代码模板失败 - - + + Can't copy default code snippets '%1' to '%2'. 无法将缺省代码模板'%1'复制到'%2'。 - - + + Read code snippets failed 读取代码模板失败 - + Can't open code snippet file '%1' for read. 无法读入代码模板文件'%1' - + Read code snippet file '%1' failed:%2 读取代码模板文件'%1'失败:%2 - - + + Save code snippets failed 保存代码模板失败 - + Can't open code snippet file '%1' for write. - + Write to code snippet file '%1' failed. 写入代码片段文件'%1'失败。 - + Load new file template failed 载入新文件模板失败 - + Can't open new file template file '%1' for read. 无法读取新文件模板文件'%1'。 - + Save new file template failed 保存新文件模板失败 - + Can't open new file template file '%1' for write. 无法写入新文件模板文件'%1'。 @@ -542,22 +542,22 @@ p, li { white-space: pre-wrap; } CodeSnippetsModel - + Caption 名称 - + Completion Prefix 代码补全前缀 - + Description 描述 - + Menu Section 菜单节 @@ -565,13 +565,13 @@ p, li { white-space: pre-wrap; } ColorEdit - - + + NONE 无颜色 - + Color 配色 @@ -579,62 +579,62 @@ p, li { white-space: pre-wrap; } Compiler - + Clean before rebuild failed. 重编译前的清理准备工作失败! - + Compile Result: 编译结果: - + - Errors: %1 - 错误数: %1 - + - Warnings: %1 - 警告数: %1 - + - Output Filename: %1 - 输出文件名: %1 - + - Output Size: %1 - 输出文件大小: %1 - + - Compilation Time: %1 secs - 编译时间: %1 秒 - + [Error] [错误] - + [Warning] [警告] - + [Info] [信息] - + [Note] [说明] - + The compiler process for '%1' failed to start. 无法启动编译器进程'%1'。 @@ -643,27 +643,27 @@ p, li { white-space: pre-wrap; } 无法启动编译进程。 - + The compiler process crashed after starting successfully. 编译进程启动后崩溃。 - + The last waitFor...() function timed out. waitFor()函数等待超时。 - + An error occurred when attempting to write to the compiler process. 在向编译进程输入内容时出错。 - + An error occurred when attempting to read from the compiler process. 在从编译进程读取内容时出错。 - + An unknown error occurred. 发生了未知错误。 @@ -675,24 +675,24 @@ p, li { white-space: pre-wrap; } CompilerAutolinkWidget - + Form 表单 - + Enable auto link 启用自动链接 - - + + Add 添加 - - + + Remove 删除 @@ -701,7 +701,7 @@ p, li { white-space: pre-wrap; } ... - + Save failed. 保存失败。 @@ -709,29 +709,29 @@ p, li { white-space: pre-wrap; } CompilerManager - - - - - + + + + + No compiler set 无编译器设置 - - - - - + + + + + No compiler set is configured. 没有配置编译器设置。 - - - - - + + + + + Can't start debugging. 无法启动调试器 @@ -748,12 +748,12 @@ p, li { white-space: pre-wrap; } 程序中的文字内容可能无法被正确处理和显示。 - + Can't find Console Pauser 找不到Console Pauser程序 - + Console Pauser "%1" doesn't exists! 找不到Console Pauser程序"%1"! @@ -761,19 +761,19 @@ p, li { white-space: pre-wrap; } CompilerSetDirectoriesWidget - + Form 表单 - - + + Add 添加 - - + + Remove 删除 @@ -782,13 +782,13 @@ p, li { white-space: pre-wrap; } 删除 - - + + Remove Invalid 删除非法文件夹 - + Choose Folder 选择文件夹 @@ -796,38 +796,38 @@ p, li { white-space: pre-wrap; } CompilerSetOptionWidget - + Form 表单 - + Compiler set to config 编译器配置方案 - - - - - - - + + + + + + + ... ... - + General 基本选项 - + Add the following arguments when calling the compiler 编译时加入下列选项: - + Add the following arguments when calling the linker 链接时加入下列选项 @@ -836,98 +836,98 @@ p, li { white-space: pre-wrap; } 编译时自动加入字符编码选项 - - + + Auto Find Compilers 自动搜索编译器 - - + + Find Compiler in the Folder 在指定文件夹中搜索编译器 - - + + Add Blank Compiler Set 添加空白编译器设置 - - + + Rename 改名 - - + + Remove 删除 - + Convert Executable's Charset as Convert Executable's Charset 将可执行文件中的字符串转码为 - + Statically link libraries 静态链接所有库 - + Settings 编译/链接选项 - + Directories 文件夹 - + Programs 程序 - + TextLabel 选项 - + gdb gdb - + gdb server gdb server - + Resource Compiler(windres) 资源编辑器(winres) - + C++ Compiler(g++) C++编译器(g++) - + Choose C++ Compiler 选择C++编译器 - + Choose C Compiler 选择C编译器 - + C Compiler(gcc) C编译器(gcc) @@ -936,42 +936,42 @@ p, li { white-space: pre-wrap; } 调试器(gdb) - + Profiler(gprof) 性能分析器(gprof) - + make - + Choose make 选择make - + Choose Debugger 选择调试器 - + Choose Resource Compiler 选择资源编译器 - + Choose Profiler 选择性能分析器 - + Confirm 确认 - + Red Panda C++ will clear current compiler list and search for compilers in the following locations:<br /> '%1'<br /> '%2'<br />Are you really want to continue? Red Panda C++ will clear current compiler list and search for compilers in the following locations: '%1' @@ -980,50 +980,50 @@ Are you really want to continue? 小熊猫C++ 将会清除现有的编译器配置列表,然后在下列文件夹中搜索编译器:<br/> '%1'<br/> '%2'<br />你确定要继续吗? - + ANSI ANSI - + UTF-8 UTF-8 - + Red Panda C++ will clear current compiler list and search for compilers in the the PATH. <br />Are you really want to continue? 小熊猫C++ 将会清除现有的编译器配置列表,然后在PATH路径中搜索gcc编译器.<br />你确定要继续吗? - - + + Failed 失败 - - + + Can't find any compiler. 找不到编译器 - - + + Compiler Set Name 编译器配置名称 - + Name 名称 - + Compiler Set Folder 编译器所在文件夹 - + New name 新名称 @@ -1031,18 +1031,18 @@ Are you really want to continue? CppRefacter - - + + Rename Symbol Error 重命名符号失败 - + Can't rename symbols not defined in this file. 无法重命名不在本文件中定义的符号 - + New symbol already exists! 新符号名称已被使用! @@ -1050,17 +1050,17 @@ Are you really want to continue? CustomMakefileInfoDialog - + Information for custom makefile 关于自定义Makefile - + Ok 确定 - + <html><head/><body><p>Red Panda C++'s Makefile has two important targets:</p><p>- all (which builds the executable)</p><p>- clean (which cleans up object files)</p><p><br/>&quot;all&quot; depends on 2 targets: all-before and all-after. All-before</p><p>gets called before the compilation process, and all-after gets</p><p>called after the compilation process.</p><p><br/>&quot;clean&quot; depends on the target clean-custom, which gets called</p><p>before the cleaning process.<br/></p><p>You can change the Makefile's behavior by defining the targets</p><p>that &quot;all&quot; and &quot;clean&quot; depend on.</p></body></html> <html><head/><body><p>Red Panda Dev-C++'s Makefile has two important targets:</p><p>- all (which builds the executable)</p><p>- clean (which cleans up object files)</p><p><br/>&quot;all&quot; depends on 2 targets: all-before and all-after. All-before</p><p>gets called before the compilation process, and all-after gets</p><p>called after the compilation process.</p><p><br/>&quot;clean&quot; depends on the target clean-custom, which gets called</p><p>before the cleaning process.<br/></p><p>You can change the Makefile's behavior by defining the targets</p><p>that &quot;all&quot; and &quot;clean&quot; depend on.</p></body></html> <html><head/><body><p>小熊猫C++的Makefile包括两个重要的目标(target):</p><p>- all (用来构建可执行文件)</p><p>- clean (用来清理构建文件)</p><p><br/>&quot;all&quot; 依赖于2个目标:all-before 和all-after. </p><p>构建前会调用all-before目标,构建后会调用all-after目标。</p><p><br/>&quot;clean&quot; 依赖于目标clean-custom, 它在执行清理前被调用。<br/></p><p>你可以通过自定义这些目标来改变构建行为。</p></body></html> @@ -1069,78 +1069,78 @@ Are you really want to continue? DebugGeneralWidget - + Form 表单 - + Use GDB Server to debug 使用gdb server调试 - + GDB Server Port gdb server TCP端口号 - + Skip system header and library files when step into 单步进入时,跳过系统头文件和库文件 - + Skip project header and library files when step into 单步进入时,跳过项目头文件和库文件 - + Skip custom header and library files when step into 单步进入时,跳过自定义头文件和库文件 - + Debug Console 调试主控台 - + Font: 字体: - + Show only monospaced fonts 只显示等宽字体 - + Size: 大小: - + Show detail debug logs Show debug logs in the debug console 显示详细调试器日志 - + Memory View 内存视图 - + Memory View Rows 内存视图行数 - + Memory View Columns 内存视图列数 - + Show CPU Window when signal received 程序收到信号停止时缺省打开CPU窗口 @@ -1149,17 +1149,17 @@ Are you really want to continue? 在调试主控台中显示gdb输出注解 - + Autosave 自动保存 - + Autosave breakpoints 自动保存断点 - + Autosave watches 自动保存监视 @@ -1168,27 +1168,27 @@ Are you really want to continue? 反汇编代码样式 - + CPU Window CPU信息窗口 - + Disassembly Coding Style: 反汇编代码样式 - + Intel Intel - + AT&&T AT&&T - + Show disassembly code in blend mode 以混合模式显示反汇编代码 @@ -1196,17 +1196,17 @@ Are you really want to continue? Debugger - + No compiler set 无编译器设置 - + No compiler set is configured. 没有配置编译器设置。 - + Can't start debugging. 无法启动调试器 @@ -1219,42 +1219,42 @@ Are you really want to continue? 调试器路径"%1"中包含非ASCII字符(如,中文字符) - + This prevents it from executing. 这会导致调试器无法启动。 - + Debugger not exists 找不到调试器 - + Can''t find debugger in : "%1" 找不到调试器程序"%1" - + GDB Server path error gdb server路径错误 - + GDB Server's path "%1" contains non-ascii characters. gdb server的路径"%1"包含中文或者全角字符 - + GDB Server not exists 找不到gdb server - + Can''t find gdb server in : "%1" 无法在"%1"找到gdb server - + Execute to evaluate 执行以求值 @@ -1263,22 +1263,22 @@ Are you really want to continue? 不在当前语境中 - + Compile 编译 - + Source file is more recent than executable. 源文件比程序文件新。 - + Recompile? 重新编译? - + Signal "%1" Received: 收到信号"%1": @@ -1286,7 +1286,7 @@ Are you really want to continue? Editor - + untitled 无标题 @@ -1299,13 +1299,13 @@ Are you really want to continue? 失败 - - - - - - - + + + + + + + Error 错误 @@ -1314,44 +1314,44 @@ Are you really want to continue? 无法写入文件"%1" - + Save As 另存为 - + File %1 already openned! 文件%1已经被打开! - + The text to be copied exceeds count limit! 要复制的内容超过了行数限制! - + The text to be copied exceeds character limit! 要复制的内容超过了字符数限制! - + The text to be cut exceeds count limit! 要剪切的内容超过了行数限制! - + The text to be cut exceeds character limit! 要剪切的内容超过了字符数限制! - + Print Document 打印文档 - - - + + + Ctrl+click for more info Ctrl+单击以获取更多信息 @@ -1360,27 +1360,27 @@ Are you really want to continue? 未找到符号'%1'! - + astyle not found 找不到astyle程序 - + Can't find astyle in "%1". 找不到astyle程序"%1". - + Break point condition 断点条件 - + Enter the condition of the breakpoint: 输入当前断点的生效条件: - + Readonly 只读 @@ -1388,74 +1388,74 @@ Are you really want to continue? EditorAutoSaveWidget - + Form 表单 - + Enable auto save 启用自动保存 - + Time interval: 时间间隔 - + minutes 分钟 - + Objects to save 保存对象 - + Current File 当前文件 - + All files openned 所有打开的文件 - + Project files 项目文件 - + Save strategy 保存策略 - + Overwrite 自动覆盖 - + Append UNIX timestamp 添加Unix时间戳 - + Append formatted timestamp 添加格式化时间戳 - + Demo file name: 示例文件名 - - - + + + Demo file name: 示例文件名 @@ -1463,62 +1463,62 @@ Are you really want to continue? EditorClipboardWidget - + Form 表单 - + Copy Size Limit 复制限制 - + Don't copy text larger than 不要复制超过下列限制的内容 - + Lines 行数 - + Size(kilo characters): 千字符数 - + Copy with format as 同时带格式复制为 - + Copy && Export As HTML 复制/导出为HTML - - + + Use background color 使用背景色 - - + + Use editor's color scheme Use editor's color schema 使用编辑器的配色方案 - - + + Color scheme Color schema 配色方案 - + Export As RTF 导出为RTF @@ -1526,99 +1526,99 @@ Are you really want to continue? EditorCodeCompletionWidget - + Form 表单 - + Enable code competion 启用代码补全 - + Minimum id length to show completion 显示代码补全所需的标识符最短长度 - + Clear all parsed symbols when editor is hidden 清除不活动编辑器中的符号表(大幅减少内存占用) - + Show completion suggestions while typing 输入时显示补全提示 - + Engine options 引擎选项 - + Scan local header files 扫描本地头文件 - + Scan system header files 扫描系统头文件 - + Show keywords in suggestions 提示C/C++关键字 - + Show code snippets in suggestions 提示用户自定义代码段 - + Append () when complete functions 补全函数时自动添加() - + Ignore case when search suggestions 查找提示时忽略大小写 - + Prefer local symbols 优先提示局部作用域中的符号 - + Hide symbols start with underscore Hide symbols start with underline 隐藏以下划线开头的符号 - + Hide symbols start with two underscores Hide symbols start with two underline 隐藏以两个下划线开头的符号 - + Prefer symbols mostly used 优先提示经常使用的符号 - + Clear usage data 清除使用数据 - + Completion suggestion window width: 补全提示窗口宽度: - + Completion suggestion window height: 补全提示窗口高度: @@ -1626,17 +1626,17 @@ Are you really want to continue? EditorColorSchemeWidget - + Form 表单 - + Scheme 配色方案 - + ... @@ -1645,125 +1645,125 @@ Are you really want to continue? 选项 - + Foreground: 前景色 - + Font Styles 字体样式 - + Bold 加粗 - + Italic 斜体 - + Strikeout 删除线 - + Underlined 下划线 - + Rainbow parenthesis 彩虹括号 - + Duplicate... 复制... - + Rename... 重命名... - + Restore to Default 删除自定义修改 - + Import Scheme... 导入配色... - + Export... 导出... - + Delete... 删除... - + Background: 背景色 - - - - - - - - + + + + + + + + Error 错误 - + Open 打开 - - + + Color Scheme Files (*.scheme) 配色方案文件 (*.scheme) - + '%1' is not a valid name for color scheme file. '%1'不是合法的配色方案文件名。 - + New scheme name 新方案名 - + '%1' is not a valid scheme name! '%1'不是合法的配色方案名! - + Save 保存 - + Confirm Delete Scheme 确认删除方案 - + Scheme '%1' will be deleted!<br />Do you really want to continue? 配色方案'%1'将会被删除!<br />您确认要继续吗? @@ -1771,85 +1771,85 @@ Are you really want to continue? EditorFontWidget - + Form 表单 - - + + Size: 大小: - - + + Font: 英文字体: - - + + Show only monospaced fonts 只显示等宽字体 - + Enable Ligatures Support 启用合字显示支持(需要Fira Code等字体) - + Font for non-ascii Text: 非英文字体: - + Gutter 装订线 - + Gutter is visible 显示装订线区域 - + Left Offset 左侧留白 - + Right Offset 右侧留白 - + Show Line Numbers 显示行号 - + Add leading zeros to line numbers 在行号前补齐前导0 - + Line numbers starts at zero 第一行从0开始编号 - + Auto calculate the digit count of line number 自动计算行号位数 - + Digit count 行号位数 - + Use Custom Font 使用自定义字体 @@ -1857,22 +1857,22 @@ Are you really want to continue? EditorGeneralWidget - + Vertical Line 竖线 - + Horizontal Line 横线 - + Half Block 半个方块 - + Block 方块 @@ -1880,63 +1880,63 @@ Are you really want to continue? EditorMiscWidget - + Form 表单 - + Open system header files in read only mode 以只读方式打开系统头文件 - + Auto load files being open when Red Panda C++ last exited. 自动打开上次退出时打开的文件 - + Auto detect encoding when openning files Use UTF-8 as the default encoding for new file 在打开文件时自动探测文件编码 - + Max Undo Steps 最大可撤销编辑操作数量 - + Default file encoding 缺省文件编码 - + Default file type 缺省文件类型 - + C++ files C++语言文件 - + C files C语言文件 - + ANSI ANSI - + UTF-8 UTF-8 - + UTF-8 BOM UTF-8 BOM @@ -1944,27 +1944,27 @@ Are you really want to continue? EditorSnippetWidget - + Form 表单 - + Code Snippets 代码模板 - + Add 添加 - + Remove 删除 - + New File Template 新文件模板 @@ -1972,62 +1972,62 @@ Are you really want to continue? EditorSymbolCompletionWidget - + Form 表单 - + Complete Symbols 符号补全 - + Details 详情 - + Complete Braces{} 补全花括号{} - + Complete Brackets [] 补全方括号[] - + Complete Parenthesis () 补全括号() - + Complete Multiline Comments /**/ 补全ANSI C风格注释/*和*/ - + Complete Single Quotations '' 补全单引号'' - + Complete Double Quotations "" 补全双引号"" - + Complete #include <> 补全#include语句中的<> - + Skip matching symbols while typing 自动覆写匹配的符号 - + Remove symbol pairs when delete chars 在删除字符时自动删除配对的符号 @@ -2035,22 +2035,22 @@ Are you really want to continue? EditorSyntaxCheckWidget - + Form 表单 - + Enable Auto Syntax Check 启用自动语法检查 - + Check when save/load file 在打开/保存文件时检查 - + Check when count of lines changed 在文件行数或者光标所在行变化时检查 @@ -2058,37 +2058,37 @@ Are you really want to continue? EditorTooltipsWidget - + Form 表单 - + Show function tips 显示函数参数提示 - + Enable mouse hover tooltips 启用鼠标悬停提示 - + Show syntax issue tooltips 显示语法错误信息 - + Show full header filename tooltips 显示头文件路径信息 - + Show identifier definition tooltips 显示标识符定义信息 - + Show expression value tooltips when debugging 调试时显示表达式的值 @@ -2096,67 +2096,67 @@ Are you really want to continue? EnvironmentAppearenceWidget - + Form 表单 - + Theme: 主题: - + Use custom theme 使用自定义主题 - + Icon Set: 图标集: - + Use custom icon set 使用自定义图标 - + Font: 字体: - + Language: 语言: - + *Needs restart *需要重启之后生效 - + Font Size: 大小: - + English 英语 - + Portuguese 葡萄牙语 - + Simplified Chinese 简体中文 - + Traditional Chinese 繁体中文 @@ -2164,32 +2164,32 @@ Are you really want to continue? EnvironmentFileAssociationWidget - + Form 表单 - + Open Each File In 在...中打开每一个文件: - + Independant Red Panda C++ applications 独立的小熊猫C++程序进程 - + The same Red Panda C++ application 同一个小熊猫C++程序进程 - + File Types: 文件类型: - + Just check or uncheck for which file types Red Panda C++ wil be registered as the default application to open them ... Just check or uncheck for which file types RedPand C++ wil be registered as the default application to open them ... 选择想要使用小熊猫C++打开的文件类型(可能需要管理员权限) @@ -2198,62 +2198,62 @@ Are you really want to continue? EnvironmentFoldersWidget - + Form 表单 - + Configuration folder: Confirugration folder: 配置文件夹: - - - - - + + + + + Open in browser 在文件浏览器中打开 - + Custom icon sets folder: 自定义图标集文件夹: - + Remove all custom settings and exit 删除所有的自定义设置并退出程序 - + Custom theme folder: 自定义主题文件夹 - + Open custom theme folder in file browser 在文件浏览器中打开自定义主题文件夹 - + Confirm 确认 - + Do you really want to delete all custom settings? 你真的要删除所有自定义设置吗? - + Error 错误 - + Failed to delete custom settings. 删除自定义设置失败 @@ -2261,17 +2261,17 @@ Are you really want to continue? EnvironmentPerformanceWidget - + Form 表单 - + Reduce Memory Usage 减少内存用量 - + Auto clear parsed symbols when editor hidden 自动清理被隐藏的编辑器中的符号表 @@ -2279,27 +2279,27 @@ Are you really want to continue? EnvironmentProgramsWidget - + Form 表单 - + ... ... - + Terminal 终端 - + Choose Terminal Program 选择终端程序 - + All files (%1) 所有文件 (%1) @@ -2311,27 +2311,27 @@ Are you really want to continue? EnvironmentShortcutModel - + action 动作 - + Error 错误 - + Shortcut "%1" is used by "%2". 快捷键“%1”已经被“%2”使用了。 - + Function 功能 - + Shortcut 快捷键 @@ -2339,7 +2339,7 @@ Are you really want to continue? EnvironmentShortcutWidget - + Form 表单 @@ -2347,7 +2347,7 @@ Are you really want to continue? ExecutableRunner - + The runner process '%1' failed to start. The runner process failed to start. 无法启动程序运行进程'%1'。 @@ -2357,17 +2357,17 @@ Are you really want to continue? 程序运行进程启动后崩溃。 - + The last waitFor...() function timed out. waitFor()函数等待超时。 - + An error occurred when attempting to write to the runner process. 在向程序运行进程写入内容时出错。 - + An error occurred when attempting to read from the runner process. 在从程序运行进程读取内容时出错。 @@ -2379,48 +2379,48 @@ Are you really want to continue? ExecutorGeneralWidget - + Form 表单 - + Pause console programs after return 程序返回时暂停 - + Minimize IDE when running programs 在运行程序时自动最小化IDE - + Parameters to pass to your program 运行程序的命令行参数 - + Redirect input to the following file: 将程序的标准输入重定向到下面的文件 - + Debugger doesn't support this feature in Linux. Linux下调试器不支持此功能。 - + Note: 说明: - + Debugger only support this feature in gdb server mode in windows. Windows下调试器需启用gdb server模式支持此功能。 - - + + Browse 浏览 @@ -2429,12 +2429,12 @@ Are you really want to continue? 注意:由于gdb的bug,调试时不支持该功能 - + Choose input file 选择输入文件 - + All files (%1) 所有文件 (%1) @@ -2446,37 +2446,37 @@ Are you really want to continue? ExecutorProblemSetWidget - + Form 表单 - + Enable Problem Set 启用试题集功能 - + Listen for Competitive Companion 监听Competitive Companion连接 - + Port Number 网络端口 - + Ignore spaces when validating problem cases 在验证测试案例时忽略结果中的空格 - + Timeout for Case Valdation 试题案例超时时间 - + ms 毫秒 @@ -2485,22 +2485,22 @@ Are you really want to continue? - + Case Editor Font 试题案例数据编辑字体 - + Font Size: 大小: - + Font: 字体: - + Only Monospaced 仅使用等宽字体 @@ -2508,18 +2508,18 @@ Are you really want to continue? FileAssociationModel - + Register File Association Error 注册文件类型关联失败 - - + + Don't have privilege to register file types! 没有权限进行文件类型注册! - + Register File Type Error 注册文件类型失败 @@ -2527,50 +2527,50 @@ Are you really want to continue? FileCompiler - + Compiling single file... 编译单个文件... - + - Filename: %1 - 文件名: %1 - + - Compiler Set Name: %1 - 编译器配置: %1 - - + + Can't delete the old executable file "%1". 无法删除旧的可执行文件"%1". - + Can't find the compiler for file %1 Can't the compiler for file %1 找不到适合文件%1的编译器 - + The Compiler '%1' doesn't exists! 编译器程序"%1"不存在! - + Processing %1 source file: 正在处理%1源程序文件: - + %1 Compiler: %2 %1编译器: %2 - + Command: %1 %2 命令: %1 %2 @@ -2578,67 +2578,67 @@ Are you really want to continue? FilePropertiesDialog - + File Properties 文件属性 - + File name: 文件名: - + Path: 路径: - + Project: 项目: - + Relative to Project: 项目相对路径: - + Comment lines: 注释行数: - + Code lines: 代码行数: - + Total lines: 总行数: - + Including files: 包含文件数: - + Empty lines: 空行数: - + File size: 文件大小: - + File date: 修改日期: - + OK 确定 @@ -2662,382 +2662,382 @@ Are you really want to continue? FormatterGeneralWidget - + Form 表单 - + Predefined format style Default brace style 预定义排版方案 - + Basic 基本 - + Brace modifications 花括号修改 - + Attach braces to namespace statements Attach spaces to namespace statements 添加花括号到命名空间(namespace)定义 - + Attach braces to classes Attach spaces to classes 添加花括号到类(class)定义 - + Attach braces to class inline function definitions Attach spaces to class inline function definitions 添加花括号到类内联函数(inline function)定义 - + Attach braces to extern "C" statements Attach spaces to extern "C" statements 添加花括号到extern "C"语句 - + Attach the closing while of do-while to the close brace 将do-while语句的while部分与结尾花括号合并 - + Convert tabs to the appropriate number of spaces 将制表符(Tab)转换为相应数量的空格 - + Indentation 1 缩进1 - + Indent with: 使用什么符号缩进: - + Indent using spaces 使用空格缩进 - + Spaces 空格 - + Indent using tabs 使用制表符缩进 - + Tabs 制表符 - + Tab Size: 缩进宽度 - + Indent for continuation lines: 连续行的缩进量: - + Minimal indent for a continuous conditional beloning to a conditional header: 属于同一个条件语句('if','while',...)的条件的最小缩进量 - + Maximal indent spaces for a continuation line 连续行的最大缩进空格数: - + Indentation 2 缩进2 - + Indent labels 缩进标签(label) - + Indent class blocks 缩进类定义(class) - + Indent namespaces 缩进命名空间定义(namespace) - + Indent class access modifiers 缩进类访问限制符('public','private'...) - + Indent after parenthesis '(' or assignment '=' 在括号'('或赋值号'='后缩进 - + Indent preprocessor conditional statements 缩进预处理条件指令('#if','#else',...) - + Indent multi-line preprocessor #define statements 缩进多行#define语句 - + Indent line comments that start in column one 缩进在第一列开始的行注释 - + Indent preprocessor blocks 缩进预处理代码段 - + Indent switch blocks 缩进switch语句 - + Indent cases 缩进case语句 - + Padding 1 填充1 - + Insert spaces around operators 在运算符周围插入空格 - + Insert spaces after commas 在逗号后插入空格 - + Insert spaces after parenthesis headers ('if','for',...) 在语句和括号间插入空格('if','for'...) - + Insert spaces around parenthesis on the outside only 在括号外侧加入空格 - + Insert spaces around parenthesis on the inside only 在括号内侧加入空格 - + Insert empty lines arround unrelated blocks 在代码段之间加入空行 - + Insert empty lines around all blocks Insert empy lines around all blocks 在所有代码段之间加入空格 - + Insert spaces around first parenthesis in a series on the out side only 在多层嵌套括号的最外侧加入空格 - + Insert spaces around parenthesis 在括号两侧加入空格 - + Padding 2 填充2 - + Remove all empty lines. It will NOT delete lines added by the padding options. 删除所有空行。不影响填充选项自动插入的空行。 - + Attach a pointer operator to its : 将指针运算符('*')放在: - + Remove all consecutive empty lines. It will NOT delete lines added by the padding options. 将连续的多个空行合并成一个。不影响填充选项自动插入的空行。 - - + + type(left) 类型侧(左侧) - + Fill empty lines with the white space of the previous lines. 使用前一行的缩进空格填充空行 - - + + middle 中间 - + <html><head/><body><p>Note for the predefined format style</p></body></html> <html><head/><body><p>预定义排版方案说明</p></body></html> - - + + name(right) 名称侧(右侧) - + Remove unnecessary space adding around parenthesis 删除括号周围的多余空格 - + Attach a reference operator to its : 将引用运算符('&')放在: - - + + none 不变 - + Other 1 其它1 - + Break one line headers ('if','while','else'...) from the statement on the same line 对单行条件('if','while','else')语句分行 - + Add one line braces to unbraced one line conditional statements 用花括号括起单行条件体 - + Break braces before close headers ('else','catch"...) 对结束语句('else','catch')和它之前的花括号断行 - + Remove braces from a braced one line conditional statements 删除括起单行条件体语句的花括号 - + Break 'else if' statements into two lines 将'else if'语句断成两行 - + Add braces to unbraced one line conditional statements 对条件和条件体语句在同一行上的,删除括起条件体语句的花括号 - + Other 2 其它2 - + Attach return type to the function name in its declaration 将函数声明中的函数名和返回值类型放在同一行 - + Break return type from the function name in its declaration 将函数声明中的函数名和返回值类型断成两行 - + Break return type from the function name in its definition 将函数定义中的函数名和返回值类型断成两行 - + Attach return type to the function name in its definition 将函数定义中的函数名和返回值类型放在同一行 - + Don't break blocks residing completely on one line 不对同一行上的多个代码段断行 - + Don't break multimple statements residing on one line 不对同一行上的多条语句断行 - + Other 3 其它3 - + Place the logical conditional to the last on the previous line, when break lines 在断行时,将逻辑条件放在前一行的末尾 - + Close ending angle brackets on template definitions 关闭模板定义末尾的尖括号 - + Remove the leading '*' prefix on multi-line comments and indent the comment text one line indent. 删除多行注释前的'*'并缩进注释内容 - + Break lines exceeds 对超过指定长度的行断行 - + characters 字符 @@ -3045,23 +3045,23 @@ Are you really want to continue? FormatterPathWidget - + Form 表单 - - + + Path to astyle astyle程序 - + ... ... - + All files (%1) 所有文件 (%1) @@ -3069,187 +3069,187 @@ Are you really want to continue? FormatterStyleModel - + Default 缺省 - + The opening braces will not be changed and closing braces will be broken from the preceding line. 左花括号不变,右花括号单独一行。 - + Allman Allman - + Broken braces. 花括号单独一行。 - + Java Java - + Attached braces. 花括号不断行。 - + K&R K&R - + Linux braces. Linux风格花括号 - + Stroustrup Stroustrup - + Linux braces, with broken closing headers. Linux风格花括号,对条件结束语句(如do-while的while)断行。 - + Whitesmith Whitesmith - + Broken, indented braces. 花括号独立成行,并且缩进。 - + Indented class blocks and switch blocks. 类代码段和switch代码段缩进。 - + VTK VTK - + Broken, indented braces except for the opening braces. 除左花括号外,其他花括号独立断行且缩进。 - + Ratliff Ratliff - + Attached, indented braces. 花括号不断行,但是缩进 - + GNU GNU - + Broken braces, indented blocks. 花括号短号,代码段缩进 - + Linux Linux - + Linux braces, minimum conditional indent is one-half indent. Linux风格花括号,最小条件缩进为1.5单位。 - + Horstmann Horstmann - + Run-in braces, indented switches. Run-in花括号,switch语句缩进 - + One True Brace One True Brace - + Linux braces, add braces to all conditionals. Linux花括号,所有条件语句的分支加花括号 - + Google Google - + Attached braces, indented class modifiers. 花括号不断行,类访问限定符缩进 - + Mozilla Mozilla - + Linux braces, with broken braces for structs and enums, and attached braces for namespaces. Linux风格花括号, 结构和枚举的花括号断行, 命名空间的花括号不断行。 - + Webkit Webkit - + Linux braces, with attached closing headers. Linux风格花括号, 条件结束语句(如do-while的while)不断行 - + Pico Pico - + Run-in opening braces and attached closing braces. Run-in左花括号,右花括号不断行 - + Uses keep one line blocks and keep one line statements. 启用保持单行代码段和保持多语句单行选项。 - + Lisp Lisp - + Attached opening braces and attached closing braces. 花括号不断行。 - + Uses keep one line statements. 启用保持多语句单行选项。 @@ -3261,92 +3261,92 @@ Are you really want to continue? 对话框 - + Branch/Switch 分支切换 - + Switch To 切换到 - + Branch 分支 - + Options 选项 - + Overwrite working tree changed(force) 强制覆盖工作树(working tree)变化(--force) - + Track 跟踪(Track) - + Pass --track to git 指定--track选项 - + Force Track 强制跟踪 - + Pass --no-track to git 指定--no-track选项 - + Force No Track 强制不跟踪 - + Neither --track nor --no-track is passed to git 不指定--track和--no-track选项 - + Not Specifiied 不指定 - + Create New Branch 创建新分支 - + Merge between original branch, working tree contents and the branch to switch to 合并源分支、要切换的分支和当前工作树内容 - + Merge 合并(--merge) - + Force Creation (Reset branch if exists) 强制创建,如果指定分支已存在则将其重置(Reset)(--force-creation) - + Ok 确定 - + Cancel 取消 @@ -3354,7 +3354,7 @@ Are you really want to continue? GitFetchDialog - + Dialog 对话框 @@ -3362,53 +3362,53 @@ Are you really want to continue? GitLogDialog - + Git Log Dialog Git版本日志 - + Close 关闭 - + Reset 回滚(Reset) - + Revert 撤销(Revert) - + branch 分支(branch) - + Tag 标签(Tag) - + Reset "%1" to this... 将"%1"回滚(Reset)到这里... - + Revert "%1" to this... 将"%1"撤销(Revert)到这里... - + Create Branch at this version... 在此版本创建分支(Branch)... - + Create Tag at this version... 在此版本创建标签(Tag)... @@ -3416,17 +3416,17 @@ Are you really want to continue? GitLogModel - + Date 日期 - + Author 作者 - + Title title 标题 @@ -3435,7 +3435,7 @@ Are you really want to continue? GitManager - + Folder "%1" already has a repository! 文件夹"%1"中已存在仓库! @@ -3443,57 +3443,57 @@ Are you really want to continue? GitMergeDialog - + Merge 合并 - + From - + Branch 分支 - + Option 选项 - + No Commit 不提交(--no-commit) - + Squash 粉碎(--squash) - + No Fast Forward 不快速前进(--no-fast-forward) - + Fast Forward Only 只快速前进(--fast-forward-only) - + Merge Message 合并信息 - + Ok 确定 - + Cancel 取消 @@ -3501,7 +3501,7 @@ Are you really want to continue? GitPullDialog - + Dialog 对话框 @@ -3509,7 +3509,7 @@ Are you really want to continue? GitPushDialog - + Dialog 对话框 @@ -3517,61 +3517,61 @@ Are you really want to continue? GitRemoteDialog - + Git Remote Git远程仓库 - + Add Remote 添加远程仓库 - - - - - + + + + + Add 添加 - + Remove Remote 删除远程仓库 - + Remove 删除 - + Detail 远程仓库详情 - + Name 名称 - + URL URL - + Close 关闭 - + Ok 确定 - + Update 更新 @@ -3579,73 +3579,73 @@ Are you really want to continue? GitResetDialog - + Reset 回滚(Reset) - - + + Reset current branch "%1" to 将当前分支"%1"回滚到 - + Branch 分支(Branch) - + Tag 标签(Tag) - + Commit 提交(Commit) - + Reset Type 回滚操作类型 - + <html><head/><body><p>Leave working tree and index untouched</p></body></html> <html><head/><body><p>保持当前工作区内容和索引不变</p></body></html> - + <html><head/><body><p>Reset working tree and index (discarding local changes)</p></body></html> <html><head/><body><p>回滚工作区内容和索引(丢弃所有本地修改)</p></body></html> - + Soft Soft - + Hard Hard - + Leave working tree untouched, reset index 保持工作区内容不变,回滚索引 - + Mixed Mixed - + Ok 确定 - + Cancel 取消 @@ -3653,32 +3653,32 @@ Are you really want to continue? GitUserConfigDialog - + Fill User Info 填写用户信息 - + User Email: 用户邮箱 - + Ok 确定 - + Cancel 取消 - + User Name: 用户姓名 - + Git needs the following info to commit: Git需要下列信息进行提交: @@ -3686,12 +3686,12 @@ Are you really want to continue? InfoMessageBox - + Message - + Ok 确定 @@ -3725,22 +3725,22 @@ Are you really want to continue? IssuesModel - + Filename 文件名 - + Line - + Col - + Description 描述 @@ -3748,22 +3748,22 @@ Are you really want to continue? IssuesTable - + Filename 文件名 - + Line - + Col - + Description 描述 @@ -3771,92 +3771,92 @@ Are you really want to continue? MacroInfoModel - + The default directory 缺省文件夹 - + Path to the Red Panda C++'s executable file. 小熊猫C++可执行文件的完整路径 - + Version of the Red Panda C++ 小熊猫C++的版本 - + PATH to the Red Panda C++'s installation folder. 小熊猫C++的安装文件夹 - + Current date 当前日期 - + Current date and time 当前时间和日期 - + The first include directory of the working compiler set. 当前编译器设置的第一个include目录 - + The first lib directory of the working compiler set. 当前编译器设置的第一个lib目录 - + The compiled filename 编译得到的文件名 - + Full path to the compiled file 编译得到的文件的完整路径 - + Filename of the current source file 当前源文件名 - + Full path to the current source file 当前源文件路径 - + Path to the current source file's parent folder 当前源文件所在文件夹 - + Word at the cursor in the active editor 当前编辑器中光标处的单词 - + Name of the current project 当前项目名称 - + Full path to the current project file 项目文件完整路径 - + Name of the current project file 当前项目文件的文件名 - + Path to the current project's folder 项目文件夹 @@ -3864,19 +3864,19 @@ Are you really want to continue? MainWindow - - + + Red Panda C++ 小熊猫C++ - - - - - - - + + + + + + + Issues 编译器 @@ -3885,48 +3885,48 @@ Are you really want to continue? 编译日志 - + File 文件 - + Tools 工具 - - + + Run 运行 - + Edit 编辑 - - - + + + Project 项目 - - + + Watch 监视 - - + + Structure 结构 - - + + Files 文件 @@ -3935,85 +3935,85 @@ Are you really want to continue? 资源 - - - - - + + + + + Debug 调试 - + Evaluate: 求值 - - + + Debug Console 调试主控台 - + Call Stack 调用栈 - + Breakpoints 断点 - + Locals 局部变量 - - - + + + Search 查找 - + History: 历史: - + Search Again 重新查找 - + Replace with: 替换为: - + Replace 替换 - + Close 关闭 - + Execute 运行 - - + + Code 代码 - + Window 窗口 @@ -4026,423 +4026,423 @@ Are you really want to continue? 工具栏2 - + New 新建 - + Ctrl+N Ctrl+N - + Open... 打开... - + Ctrl+O Ctrl+O - + Save 保存 - + Ctrl+S Ctrl+S - + Save As... 另存为... - + Save As 另存为 - + Save All 全部保存 - + Ctrl+Shift+S Ctrl+Shift+S - + Options 选项 - - - - - + + + + + Compile 编译 - - + + Tools Output 工具输出 - - + + Choose Input File 选择输入文件 - + ... ... - + Tool Panels 工具面板 - + Git Git - + Selection 选择 - + F9 F9 - + F10 F10 - + Undo 恢复 - + Ctrl+Z Ctrl+Z - + Redo 重做 - + Ctrl+Y Ctrl+Y - + Cut 剪切 - + Ctrl+X Ctrl+X - - - - + + + + Copy 复制 - + Ctrl+C Ctrl+C - - + + Paste 粘贴 - + Ctrl+V Ctrl+V - - - + + + Select All 选择全部 - + Ctrl+A Ctrl+A - + Indent 缩进 - + UnIndent 取消缩进 - + Toggle Comment 切换注释 - + Ctrl+/ Ctrl+/ - + Collapse All 全部收起 - + Uncollapse All 全部展开 - + Encode in ANSI 使用ANSI编码 - + Encode in UTF-8 使用UTF-8编码 - + Auto Detect 自动检测 - + Convert to ANSI 转换为ANSI编码 - + Convert to UTF-8 转换为UTF-8编码 - - + + Compile & Run 编译运行 - + F11 F11 - - + + Rebuild All 全部重编译 - + F12 F12 - + Stop Execution 停止执行 - + F6 F6 - + F5 F5 - + Step Over 单步跳过 - + F7 F7 - + Step Into 单步进入 - - - + + + Problem Set 试题集 - - - + + + New Problem Set 新建试题集 - - + + Add Problem 添加试题 - - + + Remove Problem 删除试题 - - - + + + Save Problem Set 保存试题集 - - - + + + Load Problem Set 载入试题集 - + Memory 内存 - + Address Expression: Address: 地址表达式: - + Cancel 取消 - - + + TODO TODO - - + + Bookmark 书签 - - - + + + Problem 试题 - - + + Add Probem Case 添加试题案例 - - + + Remove Problem Case Remove Problem Set 删除试题集 - - + + Open Anwser Source File 打开答案源代码文件 - - - + + + Run All Cases Run Current Case 运行所有案例 - + Problem Cases Validation Options 测试案例验证选项 - + %v/%m %v/%m - + Output 输出 - + Input 输入 - + Expected 期望输出 - + Help 帮助 - + Refactor 重构 - + View 视图 @@ -4451,593 +4451,607 @@ Are you really want to continue? 工具窗口 - + Main 主工具栏 - + Compiler Set 编译器配置集 - + Explorer 管理器 - + Messages 消息 - + Ignore Spaces 忽略空格 - - + + New Source File 新建源代码文件 - + Tab Tab - + Shift+Tab Shift+Tab - + F8 F8 - + Step Out 单步跳出 - + Ctrl+F8 Ctrl+F8 - + Run To Cursor 执行到光标处 - + Ctrl+F5 Ctrl+F5 - + Continue 继续执行 - + F4 F4 - + Add Watch... 添加监视 - + View CPU Window... 打开CPU信息窗口... - + Exit 退出 - + Find... 查找... - + Ctrl+F Ctrl+F - + Find in Files... 在文件中查找... - + Ctrl+Shift+F Ctrl+Shift+F - + Replace... 替换 - + Ctrl+R Ctrl+R - + Find Next 查找下一个 - + F3 F3 - + Find Previous 查找前一个 - + Shift+F3 Shift+F3 - + Remove Watch 删除监视值 - + Remove All Watches Remove All 删除全部监视值 - + Modify Watch... 修改监视值 - + Reformat Code 对代码重新排版 - + Ctrl+Shift+A Ctrl+Shift+A - + Go back 前一次编辑位置 - + Ctrl+Alt+Left Ctrl+Alt+Left - + Forward 后一次编辑位置 - + Ctrl+Alt+Right Ctrl+Alt+Right - + Ctrl+W Ctrl+W - + Close All 全部关闭 - + Ctrl+Shift+W Ctrl+Shift+W - + Maximize Editor 最大化编辑器 - + Ctrl+F11 Ctrl+F11 - + Next 下一窗口 - + Ctrl+Tab Ctrl+Tab - + Previous 前一窗口 - + Ctrl+Shift+Tab Ctrl+Shift+Tab - + Toggle breakpoint 切换断点 - + Ctrl+F4 Ctrl+F4 - - + + Clear all breakpoints 删除所有断点 - + Breakpoint property... 设置断点条件... - + Goto Declaration 跳转到声明处 - + Ctrl+Shift+G Ctrl+Shift+G - + Goto Definition 跳转到定义处 - + Ctrl+G Ctrl+G - + Find references 查找符号的引用 - + Open containing folder 打开所在的文件夹 - + Ctrl+B Ctrl+B - + Open a terminal here 打开命令行窗口 - + File Properties... 文件属性... - + Close Project 关闭项目 - + Project options 项目属性 - + New Project... 新建项目... - - + + New Project File 新建项目文件 - + F1 F1 - + Move Selection Up 向上移动选中的行 - + Ctrl+Shift+Up Ctrl+Shift+Up - + Move Selection Down 向下移动选中的行 - + Ctrl+Shift+Down Ctrl+Shift+Down - + Convert to UTF-8 BOM 转换为UTF-8 BOM编码 - + Encode in UTF-8 BOM 使用UTF-8 BOM编码 - + Compiler Options... 编译器选项... - + Toggle Explorer Panel 切换管理器面板 - + Ctrl+F9 Ctrl+F9 - + Toggle Messages Panel 切换消息面板 - + Ctrl+F10 Ctrl+F10 - + Raylib Manual Raylib教程 - + Select Word 选中当前单词 - + Go to Line... 跳转到行... - + + New Template... + 新建模板... + + + + New Template from Project + 从项目创建模板 + + + Save As Template... + 保存为模板... + + + New File 新建文件 - + Add to project... 添加到项目... - + Remove from project 从项目删除 - + View Makefile 查看Makefile - + Clean 清理构建文件 - + Open Folder in Explorer 在浏览器中打开 - + Open In Terminal 在终端中打开 - + About 关于 - - + + Rename Symbol 重命名符号 - + Shift+F6 Shift+F6 - + Print... 打印... - + Ctrl+P Ctrl+P - - + + Export As RTF 导出为RTF - - + + Export As HTML 导出为HTML - + Move To Other View 移动到其他视图 - + Ctrl+M Ctrl+M - - + + C++ Reference C++参考手册 - + C Reference C参考手册 - + Show Tool Panels 显示全部工具面板 - + Create Git Repository Create Repository 创建Git仓库 - + Commit 提交(Commit) - + Revert 撤销(Revert) - + Reset 回滚(Reset) - + Add Files 添加文件 - + Restore 还原(Restore) - + Website 官方网站 - + Branch/Switch 分支切换(Switch) - + Merge 合并(Merge) - - + + Show Log Log 显示日志(Log) - + Remotes... 远程仓库... - + Fetch 取回(Fetch) - + Pull 拉取(Pull) - + Push 推送(Push) - + Hide Non Support Files 隐藏不支持的文件 - + Toggle Block Comment 切换块注释 - + Alt+Shift+A Alt+Shift+A - + Match Bracket 匹配当前括号 - + Ctrl+] Ctrl+] @@ -5046,50 +5060,50 @@ Are you really want to continue? 工具窗口栏 - + Status Bar 状态栏 - + Ctrl+Backspace Ctrl+Backspace - + Interrupt 中断 - - + + Delete To Word Begin 删除到单词开头 - + Ctrl+Shift+B Ctrl+Shift+B - + Delete to Word End 删除到单词结尾 - + Ctrl+Shift+E Ctrl+Shift+E - + New Class... Add Class... 新建类... - - + + New Header... New Header 新建头文件... @@ -5099,47 +5113,47 @@ Are you really want to continue? 插入行 - + Delete Line 删除当前行 - + Ctrl+D Ctrl+D - + Duplicate Line 复制当前行 - + Ctrl+E Ctrl+E - + Delete Word 删除当前单词 - + Ctrl+Shift+D Ctrl+Shift+D - + Delete to EOL 删除到行尾 - + Ctrl+Del Ctrl+Del - + Delete to BOL 删除到行首 @@ -5148,27 +5162,27 @@ Are you really want to continue? C/C++参考 - + EGE Manual EGE图形库手册 - + Add Bookmark 添加书签 - + Remove Bookmark 删除书签 - + Modify Bookmark Description 修改书签说明 - + Locate in Files View 在文件视图中定位 @@ -5177,47 +5191,47 @@ Are you really want to continue? 打开文件夹 - + Running Parameters... 运行参数... - + File Encoding 文件编码 - + Recent Files 文件历史 - - - - - - + + + + + + Debugging 正在调试 - - - - - - + + + + + + Running 正在运行 - - - - - - + + + + + + Compiling 正在编译 @@ -5226,213 +5240,223 @@ Are you really want to continue? 行:%1 列:%2 已选择:%3 总行数:%4 总长度:%5 - + Line:%1 Col:%2 Selected:%3 Lines:%4 Length:%5 Line: %1 Col: %2 Selected: %3 Lines: %4 Length: %5 行: %1 列: %2 已选择 :%3 总行数: %4 总长度: %5 - + Read Only 只读 - + Insert 插入 - + Overwrite 覆写 - + Close project 关闭项目 - + Are you sure you want to close %1? 你确定要关闭'%1'吗? - - + + Confirm 确认 - - - + + + Source file is not compiled. 源文件尚未编译。 - - + + Compile now? 现在编译? - - + + Source file is more recent than executable. 源文件比可执行程序新。 - + Recompile now? 重新编译? - + No compiler set 无编译器设置 - + No compiler set is configured. 没有配置编译器设置。 - + Can't start debugging. 无法启动调试器 - - + + Enable debugging 启用调试参数 - - + + You have not enabled debugging info (-g3) and/or stripped it from the executable (-s) in Compiler Options.<BR /><BR />Do you want to correct this now? 当前编译设置中未启用调试选项(-g3),或启用了信息剥除选项(-s)<br /><br/>是否纠正这一问题? - + Project not built 项目尚未构建 - + Project hasn't been built. Build it now? 项目尚未构建。是否构建? - + Host applcation missing 宿主程序不存在 - + DLL project needs a host application to run. 动态链接库(DLL)需要一个宿主程序来运行。 - + But it's missing. 但它不存在。 - + Host application not exists 宿主程序不存在 - + Host application file '%1' doesn't exist. 宿主程序'%1'不存在。 - + Recompile? 重新编译? - - + + Save last open info error 保存上次打开信息失败 - + Can't remove old last open information file '%1' 无法删除旧上次打开信息文件'%1' - + Can't save last open info file '%1' 无法保存上次打开信息文件'%1' - + Load last open info error 载入上次打开信息失败 - + Can't load last open info file '%1' 无法载入上次打开信息文件'%1' - + Open Source File 打开源代码文件 - - + + Batch Set Cases 批量设置案例 - + Show detail debug logs 显示详细调试器日志 - + Copy all 全部复制 - + Go to Line 跳转到行 - + Line - - - - - - + + Template Exists + 模板已存在 + + + + Template %1 already exists. Do you want to overwrite? + 模板%1已存在。是否覆盖? + + + + + + + + Clear 清除 - + Export 导出 - + Insert Snippet 插入代码段 - - + + Problem Set %1 试题集%1 @@ -5453,68 +5477,68 @@ Are you really want to continue? 或者选择使用其他的网络端口。 - - + + Rebuild Project 重新构建项目 - - + + Project has been modified, do you want to rebuild it? 项目已经被修改过,是否需要重新构建? - + Auto Save Error 自动保存出错 - + Auto save "%1" to "%2" failed:%3 自动保存"%1"到"%2"失败:%3 - + Properties... 试题属性... - + Set Problem Set Name 设置试题集名称 - + Problem Set Name: 试题集名称: - + Remove 删除 - + Remove All Bookmarks 删除全部书签 - + Modify Description 修改描述 - - - + + + Bookmark Description 书签描述 - - - + + + Description: 描述: @@ -5523,178 +5547,178 @@ Are you really want to continue? 在调试主控台中显示调试器输出 - + Remove this search 清除这次搜索 - + Clear all searches 删除所有搜索 - + Breakpoint condition... 断点条件... - + Break point condition 断点条件 - + Enter the condition of the breakpoint: 输入当前断点的生效条件: - + Remove All Breakpoints Remove all breakpoints 删除所有断点 - + Remove Breakpoint 删除当前断点 - + Rename File 重命名文件 - - + + Add Folder 添加文件夹 - + New folder 新文件夹 - + Folder name: 文件夹: - + Rename Folder 重命名 - + Run Current Case 运行当前案例 - + Remove Folder 删除文件夹 - + Switch to normal view 切换为普通视图 - + Switch to custom view 切换为自定义视图 - + Sort By Type 按类型排序 - + Sort alphabetically 按名称排序 - + Show inherited members 显示继承的成员 - + Goto declaration 跳转到声明处 - + Goto definition 跳转到定义处 - - + + New Folder 新建文件夹 - + Rename 重命名 - - - - + + + + Delete 删除 - + Open in Editor 在编辑器中打开 - + Open in External Program 使用外部程序打开 - + Open in Terminal 在终端中打开 - + Open in Windows Explorer 在Windows浏览器中打开 - + Character sets 字符集 - + Convert to %1 转换为%1编码 - + %1 files autosaved 已自动保存%1个文件 - + Set answer to... 设置答案源代码... - + select other file... 选择其他文件... - + Select Answer Source File 选择答案源代码文件 @@ -5704,7 +5728,7 @@ Are you really want to continue? C/C++源代码文件 (*.c *.cpp *.cc *.cxx) - + New Folder %1 新建文件夹%1 @@ -5717,68 +5741,68 @@ Are you really want to continue? 无标题%1 - + Do you really want to delete %1? 你真的要删除%1吗? - + Do you really want to delete %1 files? 你真的要删除%1个文件吗? - + Save project 保存项目 - + The project '%1' has modifications. 项目'%1'有改动。 - - + + Do you want to save it? 需要保存吗? - - + + File Changed 文件已发生变化 - + New Project File? 新建项目文件? - + Do you want to add the new file to the project? 您是否要将新建的文件加入项目? - - - - + + + + Save Error 保存失败 - + Change Project Compiler Set 改变项目编译器配置集 - + Change the project's compiler set will lose all custom compiler set options. 改变项目的编译器配置集会导致所有的自定义编译器选项被重置。 - - + + Do you really want to do that? 你真的想要那么做吗? @@ -5787,119 +5811,119 @@ Are you really want to continue? 批量设置案例 - + Choose input files 选择输入数据文件 - + Input data files (*.in) 输入数据文件 (*.in) - + untitled%1 无标题%1 - + Modify Watch 修改监视表达式 - + Watch Expression 监视表达式 - + Do you really want to clear all breakpoints in this file? 您真的要清除该文件的所有断点吗? - + New project 新建项目 - + Close %1 and start new project? 关闭'%1'以打开新项目? - + Folder not exist 文件夹不存在 - + Folder '%1' doesn't exist. Create it now? 文件夹'%1'不存在。是否创建? - + Can't create folder 无法创建文件夹 - + Failed to create folder '%1'. 创建文件夹'%1'失败。 - + Save new project as - + Folder %1 is not empty. 文件夹%1不是空的。 - + Do you really want to delete it? 你真的要删除它吗? - + Change working folder 改变工作文件夹 - + File '%1' is not in the current working folder. File '%1' is not in the current working folder 文件'%1'不在当前工作文件夹中。 - + Do you want to change working folder to '%1'? 是否将工作文件夹改设为'%1'? - + Can't Commit 无法提交 - + Git needs user info to commit. Git需要用信息进行提交。 - + Choose Input Data File 选择输入数据文件 - - + + All files (*.*) 所有文件 (*.*) - + Choose Expected Output Data File Choose Expected Input Data File 选择期望输出文件 @@ -5909,61 +5933,61 @@ Are you really want to continue? 第%1行 - - - + + + Choose Working Folder 选择工作文件夹 - - + + Header Exists 头文件已存在 - - + + Header file "%1" already exists! 头文件"%1"已存在! - + Source Exists 源文件已存在! - + Source file "%1" already exists! 源文件"%1"已存在! - + Can't commit! 无法提交! - + The following files are in conflicting: 下列文件处于冲突状态,请解决后重新添加和提交: - + Commit Message 提交信息 - + Commit Message: 提交信息: - + Commit Failed 提交失败 - + Commit message shouldn't be empty! 提交信息不能为空! @@ -5972,255 +5996,255 @@ Are you really want to continue? 小熊猫Dev-C++项目文件 (*.dev) - + New project fail 新建项目失败 - + Can't assign project template 无法使用模板创建项目 - + Remove file 删除文件 - + Remove the file from disk? 同时从硬盘上删除文件? - - + + untitled 无标题 - + New Project File Name 新的项目文件名 - + File Name: 文件名: - + File Already Exists! 文件已存在! - + File '%1' already exists! 文件'%1'已经存在! - + Add to project 添加到项目 - + C/C++ Source Files (*.c *.cpp *.cc *.cxx) C/C++源代码文件 (*.c *.cpp *.cc *.cxx) - + This operation will remove all cases for the current problem. 本操作会删除此试题的所有案例。 - + Red Panda C++ project file (*.dev) 小熊猫C++项目文件(*.dev) - + Rename Error 重命名出错 - + Symbol '%1' is defined in system header. 符号'%1'在系统头文件中定义,无法修改。 - + New Name 新名称 - - + + Replace Error 替换出错 - + Can't open file '%1' for replace! 无法打开文件'%1'进行替换! - + Contents has changed since last search! 内容和上次查找时不一致。 - + Rich Text Format Files (*.rtf) RTF格式文件 (*.rtf) - + HTML Files (*.html) HTML文件 (*.html) - + The current problem set is not empty. 当前的试题集不是空的。 - + Problem %1 试题%1 - - + + Problem Set Files (*.pbs) 试题集文件 (*.pbs) - + Load Error 载入失败 - - + + Problem Case %1 试题案例%1 - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Error 错误 - + Recent Projects 项目历史 - + Load Theme Error 载入主题失败 - - + + Clear History 清除历史 - - + + Version Control 版本控制 - + File '%1' was changed. 磁盘文件'%1'已被修改。 - + Reload its content from disk? 是否重新读取它的内容? - + File '%1' was removed. 磁盘文件'%1'已被删除。 - + Keep it open? 是否保持它在小熊猫C++中打开的编辑窗口? - + Open 打开 - + Compile Failed 编译失败 - + Run Failed 运行失败 - - - - + + + + Confirm Convertion 确认转换 - - - - + + + + The editing file will be saved using %1 encoding. <br />This operation can't be reverted. <br />Are you sure to continue? 当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗? - + New Watch Expression 新监视表达式 - + Enter Watch Expression (it is recommended to use 'this->' for class members): 输入监视表达式 - + Parsing file %1 of %2: "%3" (%1/%2)正在解析文件"%3" - - + + Done parsing %1 files in %2 seconds 完成%1个文件的解析,用时%2秒 - + (%1 files per second) (每秒%1个文件) @@ -6232,52 +6256,52 @@ Are you really want to continue? 对话框 - + New Class 新建类 - + Header Name: 头文件名: - + Class Name: 类名: - + Create 创建 - + Cancel 取消 - + Path: 路径: - + Base Class: 父类: - + ... ... - + Source Name: 源文件名: - + Path 路径 @@ -6289,38 +6313,38 @@ Are you really want to continue? 对话框 - + New Header 新建头文件 - + Header: 头文件名 - - + + Browse 浏览 - + Path: 路径: - + Create 创建 - + Cancel 取消 - + Path 路径 @@ -6328,37 +6352,37 @@ Are you really want to continue? NewProjectDialog - + New Project 新建项目 - + Make default language 设为缺省语言 - + C Project C语言项目 - + C++ Project C++语言项目 - + Name: 项目名称: - + Create in 创建在 - + Use as the default project location 设为缺省项目位置 @@ -6367,23 +6391,23 @@ Are you really want to continue? 文件夹: - + ... ... - + Project%1 项目%1 - - + + Default 缺省 - + Choose directory 选择文件夹 @@ -6395,71 +6419,108 @@ Are you really want to continue? 对话框 - + New Project Unit 新建项目文件 - + Folder 文件夹 - + Filename 文件名 - - + + Browse 浏览 - + Ok 确定 - + Cancel 取消 - + untitled 无标题 - + Choose directory 选择文件夹 + + NewTemplateDialog + + Dialog + 对话框 + + + + Create Template From Project + 用项目创建模板 + + + + Description + 描述 + + + + Category + 类别 + + + + Name + 名称 + + + + Create + 创建 + + + + Cancel + 取消 + + OJProblemCasesRunner - + Case Timeout 案例运行超时 - + The runner process '%1' failed to start. 无法启动程序运行进程'%1'。 - + The last waitFor...() function timed out. waitFor()函数等待超时。 - + An error occurred when attempting to write to the runner process. 在向程序运行进程写入内容时出错。 - + An error occurred when attempting to read from the runner process. 在从程序运行进程读取内容时出错。 @@ -6467,12 +6528,12 @@ Are you really want to continue? OJProblemModel - + Name 名称 - + Time(ms) Time(sec) 时间(毫秒) @@ -6481,32 +6542,32 @@ Are you really want to continue? OJProblemPropertyWidget - + Form 表单 - + URL URL - + TextLabel - + Description 描述 - + OK 确定 - + Cancel 取消 @@ -6522,98 +6583,120 @@ Are you really want to continue? 找不到项目文件'%1'! - + untitled 无标题 - + Can't save file 无法保存文件 - + Can't save file '%1' 无法保存文件'%1'. - + Error Load File 载入文件错误 - + + + Error + 错误 + + + + Can't create folder %1 + 无法创建文件夹%1 + + + + Warning + 警告 + + + + + Can't save file %1 + 无法保存文件%1 + + + File Exists 文件已存在 - + File '%1' is already in the project 文件'%1'已在项目中 - + Project Updated 项目已升级 - + Your project was succesfully updated to a newer file format! 已成功将项目升级到新的格式 - + If something has gone wrong, we kept a backup-file: '%1'... 旧项目文件备份在'%1'。 - + Headers 头文件 - + Sources 源文件 - + Others 其他文件 - + Settings need update 设置需要更新 - + The compiler settings format of Red Panda C++ has changed. The compiler settings format of Dev-C++ has changed. 小熊猫C++的编译器设置格式已发生改变。 - + Please update your settings at Project >> Project Options >> Compiler and save your project. 请在项目 >> 项目属性 >> 编译器设置中修改您的设置并保存您的项目 - + Compiler not found 未找到编译器 - + The compiler set you have selected for this project, no longer exists. 您为该项目设置的编译器不存在。 - + It will be substituted by the global compiler set. 它将会被全局编译器设置代替。 - + Developed using the Red Panda C++ IDE Developed using the Red Panda Dev-C++ IDE 使用小熊猫C++编辑器开发 @@ -6622,12 +6705,12 @@ Are you really want to continue? ProjectCompileParamatersWidget - + Form 表单 - + Additional build options: Add encoding options to compiler 更多编译选项: @@ -6637,29 +6720,29 @@ Are you really want to continue? 静态链接所有库 - + C Compiler C编译器 - + C++ Compiler C++编译器 - + Linker 链接器 - - + + Add Library Files 添加库文件 - - + + Library Files 库文件 @@ -6667,52 +6750,52 @@ Are you really want to continue? ProjectCompiler - + Building makefile... 正在构建makefile... - + - Filename: %1 - 文件名: %1 - + Can't open '%1' for write! 无法写入文件'%1'! - + - Resource File: %1 - 资源文件: %1 - + Compiling project changes... 正在编译项目修改... - + - Project Filename: %1 - 项目文件名: %1 - + - Compiler Set Name: %1 - 编译器配置: %1 - + Processing makefile: 正在处理makefile... - + - makefile processer: %1 - makefile处理器: %1 - + - Command: %1 %2 - 命令: %1 %2 @@ -6720,17 +6803,17 @@ Are you really want to continue? ProjectCompilerWidget - + Form 表单 - + Base compiler set: 基础编译器设置: - + Set Encoding for the executable: Add encoding options to compiler: 设定可执行文件的字符集为: @@ -6744,12 +6827,12 @@ Are you really want to continue? 标签2 - + Customize (apply to this project only): 自定义设置(仅对本项目生效) - + Statically link libraries 静态链接所有库 @@ -6758,12 +6841,12 @@ Are you really want to continue? 在编译时加入字符集选项 - + ANSI ANSI - + UTF-8 UTF-8 @@ -6771,28 +6854,28 @@ Are you really want to continue? ProjectDLLHostWidget - + Form 表单 - - + + Browse 浏览 - + Host application for DLL: DLL文件的宿主程序: - + Choose host application 选择宿主程序 - + All files (%1) 所有文件 (%1) @@ -6804,27 +6887,27 @@ Are you really want to continue? ProjectDirectoriesWidget - + Form 表单 - + Binaries 二进制文件 - + Libraries 库文件夹 - + Includes 头文件夹 - + Resources 资源文件夹 @@ -6832,52 +6915,52 @@ Are you really want to continue? ProjectFilesWidget - + Form 表单 - + File Options 文件属性 - + Include in linking 参与链接 - + Build Priority: 构建优先级: - + Include in compilation 参与编译 - + Compile files as C++ 作为C++文件编译 - + Encoding 编码 - + Override build command: 自定义构建命令 - + Auto detect 自动检测 - + ANSI ANSI @@ -6886,7 +6969,7 @@ Are you really want to continue? ANSI - + UTF-8 @@ -6894,112 +6977,112 @@ Are you really want to continue? ProjectGeneralWidget - + Form 表单 - + Name: 名称: - + File Name: 文件名: - + Files: 文件: - + TextLabel 选项 - + Default encoding: 缺省编码: - + Icon 图标 - + Remove 删除 - + Browse 浏览 - + Type 类型 - + Win32 GUI Win32图形界面程序(GUI) - + Win32 Console Win32主控台程序(Console) - + Win32 Static Library Win32静态链接库 - + Win32 DLL Win32动态链接库(DLL) - + Default to C++ when creating new files 新文件缺省为C++文件 - + Support Windows XP Themes 支持Windows XP主题 - + Output File: 输出文件: - + %1 files [ %2 sources, %3 headers, %4 resources, %5 other files ] 共%1个文件[%2个源程序文件,%3个头文件,%4个资源文件,%5个其他文件] - + Can't remove old icon file 无法删除旧图标文件 - + Can't remove old icon file '%1' 无法删除旧图标文件'%1' - + Select icon file 选择图标文件 - + Image Files (*.ico *.png *.jpg) 图像文件 (*.ico *.png *.jpg) @@ -7007,38 +7090,38 @@ Are you really want to continue? ProjectMakefileWidget - + Form 表单 - + Use custom make file 使用自定义Makefile - - + + Browse 浏览 - + Information about using a custom make file 关于自定义Makefile - + Include the following files into the makefile: 在Makefile中包含下列文件: - + Custom makefile 自定义Makefile - + All files (%1) 所有文件 (%1) @@ -7050,32 +7133,32 @@ Are you really want to continue? ProjectModel - + File exists 文件已存在 - + File '%1' already exists. Delete it now? 文件'%1'已存在。是否删除? - + Remove failed 删除失败 - + Failed to remove file '%1' 无法删除文件'%1' - + Rename failed 改名失败 - + Failed to rename file '%1' to '%2' 无法将文件'%1'改名为'%2' @@ -7083,50 +7166,50 @@ Are you really want to continue? ProjectOutputWidget - + Form 表单 - - + + Executable output directory 可执行文件输出文件夹 - - - + + + browse 浏览 - + Object file output directory 目标文件输出文件夹 - + Auto save compile log 自动保存编译日志 - + Override output filename 自定义可执行文件名 - + Object files output directory 目标文件输出文件夹 - + Log file 日志文件 - + All files (%1) 所有文件 (%1) @@ -7138,33 +7221,33 @@ Are you really want to continue? ProjectPreCompileWidget - + Form 表单 - + Use precompiled header 使用预编译头文件 - - + + Browse 浏览 - + <html><head/><body><p>For more information about gcc precompiled header, see:</p><p><a href="https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html"><span style=" text-decoration: underline; color:#007af4;">https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html</span></a></p></body></html> <html><head/><body><p>请问访问下面网站以了解有关gcc预定义头文件的信息:</p><p><a href="https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html"><span style=" text-decoration: underline; color:#007af4;">https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html</span></a></p></body></html> - + Precompiled header 预定义头文件 - + header files (*.h) header files (*.h 文件夹 (*.h) @@ -7173,22 +7256,22 @@ Are you really want to continue? ProjectTemplate - + Read failed. 读取失败. - + Can't read template file '%1'. 无法读取模板文件'%1'. - + Can't Open Template 无法打开模板 - + Can't open template file '%1' for read. 无法读取模板文件"%1" @@ -7201,12 +7284,12 @@ Are you really want to continue? 模板文件'%1'不存在. - + Old version template 旧版本模板 - + Template file '%1' has version '%2', which is unsupported. 已不再支持模板文件'%1'的版本(%2)。 @@ -7214,92 +7297,92 @@ Are you really want to continue? ProjectVersionInfoWidget - + Form 表单 - + Include version info in project 在项目中包括版本信息 - + Major Major - + Minor Minor - + Rlease Release - + Build Build - + Language: 语言: - + Original filename 原始文件名 - + Sync product with file version 同步项目和文件版本 - + Internal name 内部名称 - + File version 文件版本 - + Legal trademarks 注册商标 - + Product name 产品名称 - + Company name 公司名称 - + Auto-increase build number on compile 构建时自动增长构建号 - + File description 文件描述 - + Product version 项目版本 - + Legal copyright 版权 @@ -7307,7 +7390,7 @@ Are you really want to continue? QApplication - + Error 错误 @@ -7315,12 +7398,12 @@ Are you really want to continue? QObject - + Save 保存 - + Save changes to %1? 将修改保存到"%1"? @@ -7329,168 +7412,168 @@ Are you really want to continue? 保存修改后的内容到"%s"? - + Dev C++ Project files Dev C++项目文件 - + C files C语言文件 - + C++ files C++语言文件 - + Header files 头文件 - + Icon files 图标文件 - + All files Text files 所有文件 - - - + + + Error 错误 - + Can't create configuration folder %1 无法创建配置文件夹"%1" - + Can't write to configuration file %1 无法写入配置文件夹"%1" - + Can't load autolink settings 无法载入自动链接设置 - - - - + + + + The following %1 directories don't exist: 下列%1文件夹不存在: - - + + binary 二进制 - + No %1 directories have been specified. 未指定%1文件夹 - + C include C包含 - - + + C++ include C++包含 - - - - + + + + Cannot find the %1 "%2" 无法找到%1程序"%2" - + C Compiler C编译器 - + C++ Compiler C++编译器 - + Maker 构建程序(Make) - + Debugger 调试器 - + C options C语言选项 - + Support all ANSI standard C programs (-ansi) 支持所有ANSI标准C程序(-ansi) - + Do not recognize asm,inline or typeof as a keyword (-fno-asm) 不支持将asm、inline和typeof作为关键字(-fno-asm) - + Imitate traditional C preprocessors (-traditional-cpp) 模仿传统C预处理器行为(-traditional-cpp) - + Code Generation 代码生成 - + Optimize for the following machine (-march) 生成特定机器的专用指令(-march) - + Optimize less, while maintaining full compatibility (-tune) 完整兼容特定机器,较少优化(-tune) - + Enable use of specific instructions (-mx) 启用特定指令集(-mx) - + Optimization level (-Ox) 优化级别(-Ox) - + Compile with the following pointer size (-mx) 使用下列指针大小编译(-mx) - + Language standard (-std) 语言标准(-std) @@ -7499,87 +7582,87 @@ Are you really want to continue? 性能分析 - + Generate debugging information (-g3) 生成调试信息(-g3) - + Would you like Red Panda C++ to search for compilers in PATH? 您同意小熊猫C++在PATH路径中寻找gcc编译器吗? - + Generate profiling info for analysis (-pg) 生成性能分析信息(-pg) - + Warnings 代码警告 - + This CPU 当前CPU - + Inhibit all warning messages (-w) 忽略所有警告信息(-w) - + Show most warnings (-Wall) 启用常见问题警告(-Wall) - + Show some more warnings (-Wextra) 启用更多问题警告(-Wextra) - + Check ISO C/C++/C++0x conformance (-pedantic) 检查ISO C/C++/C++0x语法一致性(-pedantic) - + Only check the code for syntax errors (-fsyntax-only) 只进行语法检查(不编译)(-fsyntax-only) - + Make all warnings into errors (-Werror) 将警告作为错误处理(-Werror) - + Abort compilation on first error (-Wfatal-errors) 遇到第一个错误后立即中止编译(-Wfatal-errors) - + Linker 链接器 - + Link an Objective C program (-lobjc) 链接Objective-C程序 (-lobjc) - + Do not use standard system libraries (-nostdlib) 不使用标准库和系统启动文件(-nostdlib) - + Do not create a console window (-mwindows) 不产生控制台窗口(-mwindows) - + Strip executable (-s) 剥除附加信息(-s) @@ -7588,48 +7671,48 @@ Are you really want to continue? 链接Ojbective C程序(-lobjc) - + Output 输出 - + Put comments in generated assembly code (-fverbose-asm) 在生成的汇编代码中加入注释(-fverbose-asm) - + Do not compile, stop after the preprocessing stage (-E) 仅预处理(-E) - + Use pipes instead of temporary files during compilation (-pipe) 编译时使用管道而不是临时文件(-pipe) - + Do not assemble, compile and generate the assemble code (-S) 只生成汇编代码(-S) - - + + Confirm 确认 - + The following problems were found during validation of compiler set "%1": 在验证编译器设置"%1"时遇到了下列问题: - + Leaving those directories will lead to problems during compilation. 在配置中保留这些文件夹可能会导致编译出错。 - + Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths? 是否让小熊猫C++删除这些配置,并尝试重新建立配置? @@ -7638,33 +7721,33 @@ Are you really want to continue? 如果仍然保留这些设置,可能会导致编译错误。<br /><br />请选择“是”,除非您清楚的知道选择“否”的后果, - - + + Compiler set not configuared. 未配置编译器设置。 - + Would you like Red Panda C++ to search for compilers in the following locations: <BR />'%1'<BR />'%2'? 您需要小熊猫C++在下列位置搜索编译器吗:<br />%1<br />%2 - + Binaries 二进制文件 - + Libraries 库文件 - + C Includes C包含文件 - + C++ Includes C++包含文件 @@ -7677,42 +7760,42 @@ Are you really want to continue? - + untitled 无标题 - + Index %1 out of range 下标"%1"越界 - + bytes 字节 - + KB KB - + MB MB - + GB GB - + Can't open file '%1' for read 无法打开文件"%1"进行读取 - + Can't parse json file '%1' at offset %2! Error Code: %3 JSON文件"%1"在位置"%2"处无法解析!错误码:%3 @@ -7721,309 +7804,309 @@ Are you really want to continue? "%1"不是一个合法的颜色配置文件,无法解析! - + Can't parse json file '%1' is not a color scheme config file! - + Can't open file '%1' for write 无法打开文件"%1"写入内容 - + Can't Find the color scheme file %1! 找不到颜色配置文件%1! - - - + + + Can't remove the color scheme file %1! 删不掉颜色配置文件%1! - + Assembler 汇编 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + Syntax 语法 - + Character 字符 - + Comment 注释 - + Class - + Float 浮点数 - + Function 函数 - + Gloabal Variable 全局变量 - + Hexadecimal Integer 十六进制数 - + Identifier 标识符 - + Illegal Char 非法字符 - + Local Variable 局部变量 - + Integer 整数 - + Octal Integer 八进制整数 - + Preprocessor 预处理指令 - + Reserve Word 保留字(关键字) - + Space 空格字符 - + String 字符串 - + Escape Sequences 转义序列 - + Symbol 符号 - + Variable 变量 - + Brace/Bracket/Parenthesis Level 1 1级括号 - + Brace/Bracket/Parenthesis Level 2 2级括号 - + Brace/Bracket/Parenthesis Level 3 3级括号 - + Brace/Bracket/Parenthesis Level 4 4级括号 - + Gutter 侧边栏 - - - - - - - - - + + + + + + + + + Editor 编辑器 - + Gutter Active Line 当前行侧边栏 - + Active Line 当前行 - + Breakpoint 断点 - + Active Breakpoint 活动断点 - + Fold Line 代码折叠线 - + Selection 选中文字 - + Editor Text 编辑器缺省 - + Current Highlighted Word 当前高亮单词 - - + + Syntax Check 语法检查 - + Warning 警告 - - + + Rename file '%1' to '%2' failed! 将文件'%1'改名为'%2'失败! - + Scheme '%1' already exists! 配置文件'%1'已经存在! - + default 缺省 - + Can't open file '%1' to write! 无法写入文件'%1'! - + Failed to write data. 写入数据失败。 - + Untitled 无标题 - + constructor 构造函数 - + destructor 析构函数 - - - - - + + + + + Can't open file '%1' for read. 无法读取文件'%1'. - - - + + + Can't open file '%1' for write. 无法写入文件'%1'. - + Can't parse problem set file '%1':%2 无法解析试题集文件"%1":%2 - - + + <Auto Generated by Git> <由Git自动生成> @@ -8031,12 +8114,12 @@ Are you really want to continue? RegisterModel - + Register 寄存器 - + Value @@ -8052,171 +8135,171 @@ Are you really want to continue? SearchDialog - + Dialog 对话框 - + Text to Find: 要查找的关键字 - + Replace with: 替换为: - + Options: 选项: - + Case Sensitive 区分大小写 - + Whole words only 整个单词 - + Wrap Around 循环查找 - + Regular Expression 正则表达式 - + Prompt on replace 替换时提示 - + Scope: 范围: - + Global 全局 - + Selection 选中文字 - + Origin: 起点: - + From cursor 从光标处 - + Entire scope 整个范围 - + Direction: 方向 - + Forward 向后 - + Backward 向前 - + Where: 在哪些文件中查找: - + Current File 当前文件 - + Files In Project 项目中的文件 - + Open Files 已打开的文件 - - - + + + Find 查找 - + Cancel 取消 - + Find in files 在文件中查找 - - - + + + Replace 替换 - + Replace in files 在文件中替换 - + Continue Search Search Around 继续查找 - - + + End of file has been reached. End of file has been reached. 已到达文件结尾。 - - + + Do you want to continue from file's beginning? Do you want to start from beginning? 是否从文件开头继续? - + Replace this occurrence of ''%1''? 替换这里的"%1"? - + Continue Replace Replace Around 继续替换 @@ -8225,27 +8308,27 @@ Are you really want to continue? SearchResultListModel - + Current File: 当前文件: - + Files In Project: 项目中的文件: - + Open Files: 打开的文件: - + Find Usages in Current File: '%1' 在当前文件查找符号"%1" - + Find Usages in Project: '%1' 在项目中查找符号"%1" @@ -8257,7 +8340,7 @@ Are you really want to continue? SearchResultTreeModel - + Line @@ -8265,8 +8348,8 @@ Are you really want to continue? SearchResultTreeViewDelegate - - + + Line @@ -8397,274 +8480,274 @@ Are you really want to continue? SettingsDialog - - + + Options 选项 - + TextLabel 选项 - + OK 确定 - + Apply 应用 - + Cancel Cancle 取消 - + Appearence 外观 - - - - - - + + + + + + Environment 环境 - + File Association 文件关联 - + Shortcuts 快捷键 - + Folders 文件夹 - + Terminal 终端程序 - + Performance 性能 - - - + + + Compiler Set 编译器配置集 - - - + + + Compiler 编译器 - + Auto Link 自动链接 - - - - - - - + + + + + + + General 通用 - - - - - - - - - - - + + + + + + + + + + + Editor 编辑器 - + Font 字体 - + Copy & Export 复制/导出 - + Color 配色 - + Code Completion 代码补全 - + Symbol Completion 符号补全 - + Snippet 代码模板 - + Auto Syntax Checking 自动语法检查 - + Tooltips 信息提示 - + Auto save 自动保存 - + Misc 杂项 - - - - + + + + Program Runner 程序运行 - - + + Problem Set 试题集 - + Debugger 调试器 - - + + Code Formatter 代码排版 - + Program 程序 - - + + Tools 工具 - + Git Git - + Project Options 项目选项 - - - - - - - - - - + + + + + + + + + + Project 项目 - + Files 文件 - + Custom Compile options 自定义编译选项 - + Directories 文件夹 - + Precompiled Header 预编译头文件 - + Makefile Makefile - + Output 输出 - + DLL host DLL宿主 - + Version info 版本信息 - + Save Changes 保存修改 - + There are changes in the settings, do you want to save them before swtich to other page? 本页中有尚未保存的设置修改,是否保存后再切换到其他页? @@ -8672,12 +8755,12 @@ Are you really want to continue? SettingsWidget - + Load Error 载入失败 - + Save Error 保存失败 @@ -8685,34 +8768,34 @@ Are you really want to continue? ShortcutManager - - + + Read shortcut config failed 读取快捷键配置失败 - + Can't open shortcut config file '%1' for read. 无法读取快捷键配置文件'%1' - + Read shortcut config file '%1' failed:%2 读取快捷键配置文件'%1'失败:%2 - - + + Save shortcut config failed 保存快捷键配置失败 - + Can't open shortcut config file '%1' for write. 无法写入快捷键配置文件'%1' - + Write to shortcut config file '%1' failed. 写入快捷键配置文件失败'%1'。 @@ -8720,17 +8803,17 @@ Are you really want to continue? SignalMessageDialog - + Signal Received 收到信号 - + TextLabel - + Open CPU Info Dialog 打开CPU信息窗口 @@ -8738,42 +8821,42 @@ Are you really want to continue? StdinCompiler - + Checking file syntax... 正在检查语法... - + - Filename: %1 - 文件名: %1 - + - Compiler Set Name: %1 - 编译器配置: %1 - + Can't find the compiler for file %1 找不到适合文件%1的编译器 - + The Compiler '%1' doesn't exists! 编译器程序'%1'不存在! - + Processing %1 source file: 正在处理%1源程序文件: - + %1 Compiler: %2 %1编译器: %2 - + Command: %1 %2 命令: %1 %2 @@ -8781,34 +8864,34 @@ Are you really want to continue? SymbolUsageManager - - + + Load symbol usage info failed 载入符号使用数据失败 - + Can't open symbol usage file '%1' for read. 无法读取符号使用书文件"%1"。 - + Can't parse symbol usage file '%1': %2 无法解析符号使用数据文件"%1":%2 - - + + Save symbol usage info failed 保存符号使用数据失败 - + Can't open symbol usage file '%1' for write. 无法写入符号使用数据文件"%1"。 - + Write to symbol usage file '%1' failed. 写入符号使用数据文件"%1"。 @@ -8816,12 +8899,12 @@ Are you really want to continue? SynDocument - + Can't open file '%1' for read! 无法读取文件'%1'! - + Can't open file '%1' for save! 无法写入文件'%2'! @@ -8829,8 +8912,8 @@ Are you really want to continue? SynEdit - - + + The highlighter seems to be in an infinite loop 高亮处理进入了死循环 @@ -8849,22 +8932,22 @@ Are you really want to continue? TodoModel - + Filename 文件名 - + Line - + Column - + Content 内容 @@ -8872,88 +8955,88 @@ Are you really want to continue? ToolsGeneralWidget - + Form 表单 - + Add 添加 - + Remove 删除 - - + + Browse 浏览 - + Parameters 参数 - + Ok 确定 - + Cancel 取消 - + Title 名称 - + Pause console after the program exit 程序在主控台中结束运行后暂停 - + Program 程序 - + Working Directory 工作文件夹 - + Insert Macro 插入宏指令 - + Save Changes? 保存修改? - + Do you want to save changes to the current tool? 您需要保存对当前工具的修改吗? - + Choose Folder 选择文件夹 - + Select program 选择程序 - + Executable files (*.exe) 可执行文件 (*.exe) @@ -8965,42 +9048,42 @@ Are you really want to continue? 表单 - + Git Git - + Test 测试 - + Browse 浏览 - + ... ... - + Path to Git Executable: Git程序路径 - + TextLabel 选项 - + Git Executable Git程序文件 - + All files (%1) 所有文件 (%1) @@ -9008,39 +9091,39 @@ Are you really want to continue? ToolsManager - + Remove Compiled 删除编译文件 - - + + Read tools config failed 读取工具配置失败 - + Can't open tools config file '%1' for read. 无法读取工具配置文件'%1' - + Read tools config file '%1' failed:%2 读取工具配置文件'%1'失败:%2 - - + + Save tools config failed 保存工具配置失败 - + Can't open tools config file '%1' for write. 无法写入工具配置文件'%1'。 - + Write to tools config file '%1' failed. Write to tool config file '%1' failed. 写入工具配置文件'%1'失败。 @@ -9049,49 +9132,49 @@ Are you really want to continue? WatchModel - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - - + + Execute to evaluate 执行以求值 - - + + Not Valid 在当前作用域中无效 - + Can't open file '%1' for read. 无法读取文件'%1'. - + Expression 表达式 - + Type 类型 - + Value @@ -9099,17 +9182,17 @@ Are you really want to continue? editorgeneralwidget - + Form 表单 - + Indents 缩进 - + Auto Indent 自动计算缩进 @@ -9118,138 +9201,138 @@ Are you really want to continue? 在{和:的下一行添加缩进 - + Replace tab with spaces 自动使用空格代替制表符(Tab) - + Tab Width 制表符(Tab)宽度 - + Show Indent Lines 显示缩进提示线 - + Indent Line Color 缩进提示线颜色 - + Fill Indents 填充缩进区域 - + Caret 光标 - + Move caret to the first non-space char in the current line when press HOME key 按下HOME键时,光标定位在本行的第一个非空格字符处 - + Move caret to the last non-space char in the current line when press END key 按下End键时,光标定位在本行的最后一个非空格字符处 - + Keep X position of the caret when moving vertically 在上下移动光标时,记住起始时光标所在栏数 - + Caret for inserting mode 插入状态下的光标 - + Use text color as caret color 使用文字颜色作为光标颜色 - + Highlight 高亮显示 - + Highlight matching braces 高亮显示与光标处相匹配的括号 - + Highlight current word 高亮显示光标所在的单词 - + Scroll 滚动条 - + Auto hide scroll bars 自动隐藏滚动条 - + Can scroll the last char to the left edge of the editor 可以将每行末尾字符滚动到编辑器最左侧 - + Can scroll the last line to the top edge of the editor 可以将最后一行滚动到编辑器最上方 - + Page Up/Down scrolls half a page 翻页键只滚动半页 - + Forces page scroll to be one line less 在滚动页时少滚动一行 - + Mouse Wheel Scroll Speed 鼠标滚轮卷轴速度(行) - + Mouse Selection/Dragging Scroll Speed Mouse Selection/Dragging Speed 鼠标选择/拖拽卷轴速度 - + Show right edge line 显示右边缘线 - + Right egde width 右边缘宽度 - + Right edge line color 右边缘颜色 - + Caret for overwriting mode 覆写状态下的光标 - + Caret Color 光标颜色 diff --git a/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts b/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts index a459a5ac..951a4bb1 100644 --- a/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts +++ b/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts @@ -4540,6 +4540,22 @@ Line + + New Template... + + + + New Template from Project + + + + Template Exists + + + + Template %1 already exists. Do you want to overwrite? + + NewClassDialog @@ -4697,6 +4713,33 @@ + + NewTemplateDialog + + Description + + + + Category + + + + Name + + + + Create + + + + Cancel + + + + Create Template From Project + + + OJProblemCasesRunner @@ -4836,6 +4879,22 @@ Developed using the Red Panda C++ IDE + + Error + + + + Can't create folder %1 + + + + Warning + + + + Can't save file %1 + + ProjectCompileParamatersWidget diff --git a/RedPandaIDE/widgets/newtemplatedialog.cpp b/RedPandaIDE/widgets/newtemplatedialog.cpp new file mode 100644 index 00000000..5e835778 --- /dev/null +++ b/RedPandaIDE/widgets/newtemplatedialog.cpp @@ -0,0 +1,118 @@ +#include "newtemplatedialog.h" +#include "ui_newtemplatedialog.h" +#include "../settings.h" +#include "../projecttemplate.h" +#include "../systemconsts.h" + +#include +#include +#include + +NewTemplateDialog::NewTemplateDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::NewTemplateDialog) +{ + ui->setupUi(this); + QStringList categories = findCategories(); + ui->cbCategory->addItems(categories); + updateCreateState(); +} + +NewTemplateDialog::~NewTemplateDialog() +{ + delete ui; +} + +QString NewTemplateDialog::getName() const +{ + return ui->txtName->text(); +} + +QString NewTemplateDialog::getDescription() const +{ + return ui->txtDescription->toPlainText(); +} + +QString NewTemplateDialog::getCategory() const +{ + return ui->cbCategory->currentText(); +} + +QStringList NewTemplateDialog::findCategories() +{ + QSet categories; + readTemplateCategory(":/templates/empty.template",categories); + readTemplateCategoriesInDir(pSettings->dirs().data(Settings::Dirs::DataType::Template),categories); + readTemplateCategoriesInDir(pSettings->dirs().config(Settings::Dirs::DataType::Template),categories); + QStringList result; + foreach(const QString& s, categories) + result.append(s); + result.sort(); + return result; +} + +void NewTemplateDialog::readTemplateCategory(const QString &filename, QSet &categories) +{ + if (!QFile(filename).exists()) + return; + PProjectTemplate t = std::make_shared(); + t->readTemplateFile(filename); + if (!t->category().isEmpty()) + categories.insert(t->category()); +} + +void NewTemplateDialog::readTemplateCategoriesInDir(const QString &folderPath, QSet &categories) +{ + QString templateExt("."); + templateExt += TEMPLATE_EXT; + QDir dir(folderPath); + if (!dir.exists()) + return; + foreach (const QFileInfo& fileInfo,dir.entryInfoList()) { + if (fileInfo.isFile() + && fileInfo.fileName().endsWith(templateExt)) { + readTemplateCategory(fileInfo.absoluteFilePath(),categories); + } else if (fileInfo.isDir()) { + QDir subDir(fileInfo.absoluteFilePath()); + readTemplateCategory(subDir.absoluteFilePath(TEMPLATE_INFO_FILE),categories); + } + } + +} + +void NewTemplateDialog::updateCreateState() +{ + ui->btnCreate->setEnabled( + !ui->txtName->text().isEmpty() + && !ui->cbCategory->currentText().isEmpty() + ); +} + +void NewTemplateDialog::closeEvent(QCloseEvent */*event*/) +{ + reject(); +} + +void NewTemplateDialog::on_btnCreate_clicked() +{ + accept(); +} + + +void NewTemplateDialog::on_btnCancel_clicked() +{ + reject(); +} + + +void NewTemplateDialog::on_txtName_textChanged(const QString &/*arg1*/) +{ + updateCreateState(); +} + + +void NewTemplateDialog::on_cbCategory_currentTextChanged(const QString &/*arg1*/) +{ + updateCreateState(); +} + diff --git a/RedPandaIDE/widgets/newtemplatedialog.h b/RedPandaIDE/widgets/newtemplatedialog.h new file mode 100644 index 00000000..dfcd24e8 --- /dev/null +++ b/RedPandaIDE/widgets/newtemplatedialog.h @@ -0,0 +1,43 @@ +#ifndef NEWTEMPLATEDIALOG_H +#define NEWTEMPLATEDIALOG_H + +#include +#include + +namespace Ui { +class NewTemplateDialog; +} + +class NewTemplateDialog : public QDialog +{ + Q_OBJECT + +public: + explicit NewTemplateDialog(QWidget *parent = nullptr); + ~NewTemplateDialog(); + QString getName() const; + QString getDescription() const; + QString getCategory() const; +private slots: + void on_btnCreate_clicked(); + + void on_btnCancel_clicked(); + + void on_txtName_textChanged(const QString &arg1); + + void on_cbCategory_currentTextChanged(const QString &arg1); + +private: + QStringList findCategories(); + void readTemplateCategory(const QString& filename, QSet& categories); + void readTemplateCategoriesInDir(const QString& folderPath, QSet& categories); + void updateCreateState(); +private: + Ui::NewTemplateDialog *ui; + + // QWidget interface +protected: + void closeEvent(QCloseEvent *event) override; +}; + +#endif // NEWTEMPLATEDIALOG_H diff --git a/RedPandaIDE/widgets/newtemplatedialog.ui b/RedPandaIDE/widgets/newtemplatedialog.ui new file mode 100644 index 00000000..d231b8e7 --- /dev/null +++ b/RedPandaIDE/widgets/newtemplatedialog.ui @@ -0,0 +1,131 @@ + + + NewTemplateDialog + + + + 0 + 0 + 553 + 519 + + + + Create Template From Project + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Description + + + + + + + Category + + + + + + + Name + + + + + + + + + + true + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 332 + 20 + + + + + + + + Create + + + + + + + Cancel + + + + + + + + + + +