src/eric7/i18n/eric7_zh_CN.ts

branch
eric7-maintenance
changeset 9371
1da8bc75946f
parent 9305
3b7ef53c34c7
parent 9362
9daa438fb4de
child 9442
906485dcd210
--- a/src/eric7/i18n/eric7_zh_CN.ts	Fri Sep 02 14:10:44 2022 +0200
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sat Oct 01 13:06:10 2022 +0200
@@ -728,82 +728,82 @@
       <translation>Alt+C</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="80" />
+      <location filename="../Project/AddFileDialog.py" line="83" />
       <source>Source Files ({0});;Forms Files ({1});;Resource Files ({2});;Interface Files ({3});;Protocol Files ({4});;Translation Files ({5});;All Files (*)</source>
       <translation>源文件 ({0});;窗体文件 ({1});;资源文件 ({2});;界面文件 ({3});;协议文件 ({4});;翻译文件 ({5});;所有文件 (*)</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="96" />
+      <location filename="../Project/AddFileDialog.py" line="99" />
       <source>Select Files</source>
       <translation>选择文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="102" />
+      <location filename="../Project/AddFileDialog.py" line="105" />
       <source>Forms Files ({0})</source>
       <translation>窗体文件 ({0})</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="103" />
+      <location filename="../Project/AddFileDialog.py" line="106" />
       <source>Select user-interface files</source>
       <translation>选择用户界面文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="109" />
+      <location filename="../Project/AddFileDialog.py" line="112" />
       <source>Resource Files ({0})</source>
       <translation>资源文件 ({0})</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="110" />
+      <location filename="../Project/AddFileDialog.py" line="113" />
       <source>Select resource files</source>
       <translation>选择资源文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="116" />
-      <source>Source Files ({0});;All Files (*)</source>
-      <translation>源文件 ({0});;所有文件 (*)</translation>
-    </message>
-    <message>
       <location filename="../Project/AddFileDialog.py" line="119" />
+      <source>Source Files ({0});;All Files (*)</source>
+      <translation>源文件 ({0});;所有文件 (*)</translation>
+    </message>
+    <message>
+      <location filename="../Project/AddFileDialog.py" line="122" />
       <source>Select source files</source>
       <translation>选择源文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="125" />
+      <location filename="../Project/AddFileDialog.py" line="128" />
       <source>Interface Files ({0})</source>
       <translation>界面文件 ({0})</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="126" />
+      <location filename="../Project/AddFileDialog.py" line="129" />
       <source>Select interface files</source>
       <translation>选择界面文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="132" />
+      <location filename="../Project/AddFileDialog.py" line="135" />
       <source>Protocol Files ({0})</source>
       <translation>协议文件({0})</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="133" />
+      <location filename="../Project/AddFileDialog.py" line="136" />
       <source>Select protocol files</source>
       <translation>选择协议文件</translation>
     </message>
     <message>
-      <location filename="../Project/AddFileDialog.py" line="139" />
-      <source>Translation Files ({0})</source>
-      <translation>翻译文件 ({0})</translation>
-    </message>
-    <message>
-      <location filename="../Project/AddFileDialog.py" line="140" />
-      <source>Select translation files</source>
-      <translation>选择翻译文件</translation>
-    </message>
-    <message>
       <location filename="../Project/AddFileDialog.py" line="142" />
-      <source>All Files (*)</source>
-      <translation>所有文件 (*)</translation>
+      <source>Translation Files ({0})</source>
+      <translation>翻译文件 ({0})</translation>
     </message>
     <message>
       <location filename="../Project/AddFileDialog.py" line="143" />
+      <source>Select translation files</source>
+      <translation>选择翻译文件</translation>
+    </message>
+    <message>
+      <location filename="../Project/AddFileDialog.py" line="145" />
+      <source>All Files (*)</source>
+      <translation>所有文件 (*)</translation>
+    </message>
+    <message>
+      <location filename="../Project/AddFileDialog.py" line="146" />
       <source>Select files</source>
       <translation>选择文件</translation>
     </message>
@@ -1797,47 +1797,47 @@
   <context>
     <name>BackgroundService</name>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="147" />
+      <location filename="../Utilities/BackgroundService.py" line="159" />
       <source>{0} not configured.</source>
       <translation>{0} 未被配置。</translation>
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="197" />
+      <location filename="../Utilities/BackgroundService.py" line="209" />
       <source>Initialization of Background Service</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="198" />
+      <location filename="../Utilities/BackgroundService.py" line="210" />
       <source>&lt;p&gt;Initialization of Background Service &lt;b&gt;{0}&lt;/b&gt; failed.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="211" />
+      <location filename="../Utilities/BackgroundService.py" line="223" />
       <source>Restart background client?</source>
       <translation>重启后台客户端?</translation>
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="212" />
+      <location filename="../Utilities/BackgroundService.py" line="224" />
       <source>&lt;p&gt;The background client for &lt;b&gt;{0}&lt;/b&gt; has stopped due to an exception. It's used by various plug-ins like the different checkers.&lt;/p&gt;&lt;p&gt;Select&lt;ul&gt;&lt;li&gt;&lt;b&gt;'Yes'&lt;/b&gt; to restart the client, but abort the last job&lt;/li&gt;&lt;li&gt;&lt;b&gt;'Retry'&lt;/b&gt; to restart the client and the last job&lt;/li&gt;&lt;li&gt;&lt;b&gt;'No'&lt;/b&gt; to leave the client off.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.&lt;/p&gt;</source>
       <translation>&lt;p&gt; &lt;b&gt;{0}&lt;/b&gt; 的背景客户端因意外终止。它被多种插件(如区别检查器)使用。&lt;/p&gt;&lt;p&gt; 选择 &lt;ul&gt;&lt;li&gt;&lt;b&gt;“是”&lt;/b&gt; 放弃最后任务,重启客户端 &lt;/li&gt;&lt;li&gt;&lt;b&gt;“重试”&lt;/b&gt; 重启客户端和最后任务&lt;/li&gt;&lt;li&gt;&lt;b&gt;“否”&lt;/b&gt; 关闭客户端。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;注意:通过打开和接受首选项对话框,或重新加载、改变工程亦可重启客户端。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="241" />
+      <location filename="../Utilities/BackgroundService.py" line="253" />
       <source>An error in Eric's background client stopped the service.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="479" />
-      <source>Eric's background client disconnected because of an unknown reason.</source>
-      <translation>Erics 后台客户端因未知原因断开连接。</translation>
-    </message>
-    <message>
       <location filename="../Utilities/BackgroundService.py" line="488" />
+      <source>Eric's background client disconnected because of an unknown reason.</source>
+      <translation>Erics 后台客户端因未知原因断开连接。</translation>
+    </message>
+    <message>
+      <location filename="../Utilities/BackgroundService.py" line="497" />
       <source>Background client disconnected.</source>
       <translation>后台客户端已断开连接。</translation>
     </message>
     <message>
-      <location filename="../Utilities/BackgroundService.py" line="489" />
+      <location filename="../Utilities/BackgroundService.py" line="498" />
       <source>The background client for &lt;b&gt;{0}&lt;/b&gt; disconnected because of an unknown reason.&lt;br&gt;Should it be restarted?</source>
       <translation>&lt;b&gt;{0}&lt;/b&gt; 的后台客户端因未知原因中断了连接。&lt;br&gt;是否对其重新启动?</translation>
     </message>
@@ -1845,52 +1845,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="59" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="62" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="86" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
       <source>Project File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="87" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
       <source>Defaults</source>
       <translation type="unfinished">默认值</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="88" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="178" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="179" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="182" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="234" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="235" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1991,63 +1992,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="216" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="218" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="275" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="536" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="544" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="548" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="552" />
       <source>ignored</source>
       <translation type="unfinished">已忽略</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="556" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="561" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
@@ -2872,32 +2878,32 @@
   <context>
     <name>BreakPointModel</name>
     <message>
-      <location filename="../Debugger/BreakPointModel.py" line="41" />
+      <location filename="../Debugger/BreakPointModel.py" line="39" />
       <source>Filename</source>
       <translation>文件名</translation>
     </message>
     <message>
+      <location filename="../Debugger/BreakPointModel.py" line="40" />
+      <source>Line</source>
+      <translation>行</translation>
+    </message>
+    <message>
+      <location filename="../Debugger/BreakPointModel.py" line="41" />
+      <source>Condition</source>
+      <translation>条件</translation>
+    </message>
+    <message>
       <location filename="../Debugger/BreakPointModel.py" line="42" />
-      <source>Line</source>
-      <translation>行</translation>
+      <source>Temporary</source>
+      <translation>临时的</translation>
     </message>
     <message>
       <location filename="../Debugger/BreakPointModel.py" line="43" />
-      <source>Condition</source>
-      <translation>条件</translation>
+      <source>Enabled</source>
+      <translation>已开启</translation>
     </message>
     <message>
       <location filename="../Debugger/BreakPointModel.py" line="44" />
-      <source>Temporary</source>
-      <translation>临时的</translation>
-    </message>
-    <message>
-      <location filename="../Debugger/BreakPointModel.py" line="45" />
-      <source>Enabled</source>
-      <translation>已开启</translation>
-    </message>
-    <message>
-      <location filename="../Debugger/BreakPointModel.py" line="46" />
       <source>Ignore Count</source>
       <translation>忽略计数</translation>
     </message>
@@ -3252,27 +3258,27 @@
       <translation>名称</translation>
     </message>
     <message>
-      <location filename="../UI/BrowserModel.py" line="660" />
+      <location filename="../UI/BrowserModel.py" line="664" />
       <source>Coding: {0}</source>
       <translation>编码: {0}</translation>
     </message>
     <message>
-      <location filename="../UI/BrowserModel.py" line="670" />
+      <location filename="../UI/BrowserModel.py" line="674" />
       <source>Globals</source>
       <translation>全局</translation>
     </message>
     <message>
-      <location filename="../UI/BrowserModel.py" line="675" />
+      <location filename="../UI/BrowserModel.py" line="679" />
       <source>Imports</source>
       <translation>导入</translation>
     </message>
     <message>
-      <location filename="../UI/BrowserModel.py" line="773" />
+      <location filename="../UI/BrowserModel.py" line="777" />
       <source>Attributes</source>
       <translation>属性</translation>
     </message>
     <message>
-      <location filename="../UI/BrowserModel.py" line="784" />
+      <location filename="../UI/BrowserModel.py" line="788" />
       <source>Class Attributes</source>
       <translation>类属性</translation>
     </message>
@@ -4273,47 +4279,37 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="232" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="230" />
       <source>Errors</source>
       <translation>错误</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="257" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="255" />
       <source>Error: {0}</source>
       <translation>错误:{0}</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="996" />
-      <source>Preparing files...</source>
-      <translation>正在准备文件…</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1035" />
-      <source>Transferring data...</source>
-      <translation>传输数据…</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1099" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1090" />
       <source>{0} (ignored)</source>
       <translation>{0}(已忽略)</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1175" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1165" />
       <source>No issues found.</source>
       <translation>未发现问题。</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1179" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1169" />
       <source>No files found (check your ignore list).</source>
       <translation>找不到文件(检查您忽略的列表)。</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2467" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" />
       <source>Commented Code Whitelist Pattern</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2468" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2457" />
       <source>Enter a Commented Code Whitelist Pattern</source>
       <translation type="unfinished" />
     </message>
@@ -5126,6 +5122,14 @@
       <source>Filter</source>
       <translation type="unfinished">过滤器</translation>
     </message>
+    <message>
+      <source>Preparing files...</source>
+      <translation type="vanished">正在准备文件…</translation>
+    </message>
+    <message>
+      <source>Transferring data...</source>
+      <translation type="vanished">传输数据…</translation>
+    </message>
   </context>
   <context>
     <name>CodeStyleCheckerPlugin</name>
@@ -8115,7 +8119,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2356" />
+      <location filename="../Debugger/DebugUI.py" line="2353" />
       <location filename="../Debugger/DebugUI.py" line="242" />
       <source>Run Script</source>
       <translation>运行脚本</translation>
@@ -8136,8 +8140,8 @@
       <translation>&lt;b&gt;运行脚本&lt;/b&gt;&lt;p&gt;设置命令行参数,并在调试器之外运行脚本。如果文件未对更改进行保存,则可能会先行保存。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2400" />
-      <location filename="../Debugger/DebugUI.py" line="2356" />
+      <location filename="../Debugger/DebugUI.py" line="2397" />
+      <location filename="../Debugger/DebugUI.py" line="2353" />
       <location filename="../Debugger/DebugUI.py" line="263" />
       <source>Run Project</source>
       <translation>运行项目</translation>
@@ -8238,7 +8242,7 @@
       <translation>&lt;b&gt;剖析项目&lt;/b&gt;&lt;p&gt;设置命令行参数,并剖析当前项目。如果当前项目的文件未保存则会先行保存。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2551" />
+      <location filename="../Debugger/DebugUI.py" line="2548" />
       <location filename="../Debugger/DebugUI.py" line="373" />
       <source>Debug Script</source>
       <translation>调试脚本</translation>
@@ -8259,8 +8263,8 @@
       <translation>&lt;b&gt;调试脚本&lt;/b&gt;&lt;p&gt;设置命令行参数,并将当前行设为当前编辑窗口首先执行的 Python 声明。如果文件未保存则会先行保存。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2605" />
-      <location filename="../Debugger/DebugUI.py" line="2551" />
+      <location filename="../Debugger/DebugUI.py" line="2602" />
+      <location filename="../Debugger/DebugUI.py" line="2548" />
       <location filename="../Debugger/DebugUI.py" line="395" />
       <source>Debug Project</source>
       <translation>调试项目</translation>
@@ -8679,96 +8683,96 @@
       <translation>产生了一个未处理的异常。详细信息参见命令行窗口。</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1494" />
+      <location filename="../Debugger/DebugUI.py" line="1491" />
       <source>&lt;p&gt;The debugged program raised the exception &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;"&lt;b&gt;{1}&lt;/b&gt;"&lt;br&gt;File: &lt;b&gt;{2}&lt;/b&gt;, Line: &lt;b&gt;{3}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Break here?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1512" />
+      <location filename="../Debugger/DebugUI.py" line="1509" />
       <source>&lt;p&gt;The debugged program raised the exception &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;"&lt;b&gt;{1}&lt;/b&gt;"&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1568" />
+      <location filename="../Debugger/DebugUI.py" line="1565" />
       <source>&lt;p&gt;The program generate the signal "{0}".&lt;br/&gt;File: &lt;b&gt;{1}&lt;/b&gt;, Line: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1585" />
+      <location filename="../Debugger/DebugUI.py" line="1582" />
       <source>The program being debugged has terminated unexpectedly.</source>
       <translation>被调试的程序意外终止。</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1650" />
+      <location filename="../Debugger/DebugUI.py" line="1647" />
       <source>No locals available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1695" />
+      <location filename="../Debugger/DebugUI.py" line="1692" />
       <source>Breakpoint Condition Error</source>
       <translation>断点条件错误</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1696" />
+      <location filename="../Debugger/DebugUI.py" line="1693" />
       <source>&lt;p&gt;The condition of the breakpoint &lt;b&gt;{0}, {1}&lt;/b&gt; contains a syntax error.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1753" />
+      <location filename="../Debugger/DebugUI.py" line="1750" />
       <source>Watch Expression Error</source>
       <translation>监视表达式出错</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1754" />
+      <location filename="../Debugger/DebugUI.py" line="1751" />
       <source>&lt;p&gt;The watch expression &lt;b&gt;{0}&lt;/b&gt; contains a syntax error.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1784" />
+      <location filename="../Debugger/DebugUI.py" line="1781" />
       <source>&lt;p&gt;A watch expression '&lt;b&gt;{0}&lt;/b&gt;' already exists.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1789" />
+      <location filename="../Debugger/DebugUI.py" line="1786" />
       <source>&lt;p&gt;A watch expression '&lt;b&gt;{0}&lt;/b&gt;' for the variable &lt;b&gt;{1}&lt;/b&gt; already exists.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1795" />
+      <location filename="../Debugger/DebugUI.py" line="1792" />
       <source>Watch expression already exists</source>
       <translation>监视表达式已存在</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1997" />
-      <location filename="../Debugger/DebugUI.py" line="1949" />
+      <location filename="../Debugger/DebugUI.py" line="1994" />
+      <location filename="../Debugger/DebugUI.py" line="1946" />
       <source>Coverage of Project</source>
       <translation>项目覆盖率</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="1951" />
+      <location filename="../Debugger/DebugUI.py" line="1948" />
       <source>Coverage of Script</source>
       <translation>脚本覆盖率</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2401" />
-      <location filename="../Debugger/DebugUI.py" line="2202" />
-      <location filename="../Debugger/DebugUI.py" line="1998" />
+      <location filename="../Debugger/DebugUI.py" line="2398" />
+      <location filename="../Debugger/DebugUI.py" line="2199" />
+      <location filename="../Debugger/DebugUI.py" line="1995" />
       <source>There is no main script defined for the current project. Aborting</source>
       <translation>当前项目未定义主脚本。终止</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2201" />
-      <location filename="../Debugger/DebugUI.py" line="2153" />
+      <location filename="../Debugger/DebugUI.py" line="2198" />
+      <location filename="../Debugger/DebugUI.py" line="2150" />
       <source>Profile of Project</source>
       <translation>项目轮廓</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2155" />
+      <location filename="../Debugger/DebugUI.py" line="2152" />
       <source>Profile of Script</source>
       <translation>脚本轮廓</translation>
     </message>
     <message>
-      <location filename="../Debugger/DebugUI.py" line="2606" />
+      <location filename="../Debugger/DebugUI.py" line="2603" />
       <source>There is no main script defined for the current project. No debugging possible.</source>
       <translation>当前项目未定义主脚本。不能进行调试。</translation>
     </message>
@@ -9352,13 +9356,13 @@
       <location filename="../Debugger/DebuggerInterfacePython.py" line="341" />
       <location filename="../Debugger/DebuggerInterfacePython.py" line="320" />
       <location filename="../Debugger/DebuggerInterfacePython.py" line="257" />
-      <location filename="../Debugger/DebuggerInterfacePython.py" line="196" />
+      <location filename="../Debugger/DebuggerInterfacePython.py" line="195" />
       <source>Start Debugger</source>
       <translation>启动调试器</translation>
     </message>
     <message>
       <location filename="../Debugger/DebuggerInterfacePython.py" line="410" />
-      <location filename="../Debugger/DebuggerInterfacePython.py" line="197" />
+      <location filename="../Debugger/DebuggerInterfacePython.py" line="196" />
       <source>&lt;p&gt;No suitable Python3 environment configured.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -11202,7 +11206,7 @@
       <translation>取消注释</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8914" />
+      <location filename="../QScintilla/Editor.py" line="8934" />
       <location filename="../QScintilla/Editor.py" line="875" />
       <source>Generate Docstring</source>
       <translation type="unfinished" />
@@ -11455,7 +11459,7 @@
       <translation type="unfinished">拼写法</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8032" />
+      <location filename="../QScintilla/Editor.py" line="8052" />
       <location filename="../QScintilla/Editor.py" line="1246" />
       <source>Check spelling...</source>
       <translation>正在进行拼写检查…</translation>
@@ -11516,7 +11520,7 @@
       <translation>编辑断点…</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5751" />
+      <location filename="../QScintilla/Editor.py" line="5754" />
       <location filename="../QScintilla/Editor.py" line="1331" />
       <source>Enable breakpoint</source>
       <translation>允许断点</translation>
@@ -11740,356 +11744,356 @@
       <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 已经存在。是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="4932" />
+      <location filename="../QScintilla/Editor.py" line="4935" />
       <source>Autocompletion</source>
       <translation>自动完成</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="4933" />
+      <location filename="../QScintilla/Editor.py" line="4936" />
       <source>Autocompletion is not available because there is no autocompletion source set.</source>
       <translation>自动完成无效,没有设定自动完成源。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5061" />
+      <location filename="../QScintilla/Editor.py" line="5064" />
       <source>Auto-Completion Provider</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5062" />
+      <location filename="../QScintilla/Editor.py" line="5065" />
       <source>The completion list provider '{0}' was already registered. Ignoring duplicate request.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5354" />
+      <location filename="../QScintilla/Editor.py" line="5357" />
       <source>Call-Tips Provider</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5355" />
+      <location filename="../QScintilla/Editor.py" line="5358" />
       <source>The call-tips provider '{0}' was already registered. Ignoring duplicate request.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="5755" />
+      <location filename="../QScintilla/Editor.py" line="5758" />
       <source>Disable breakpoint</source>
       <translation>去除断点</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6110" />
+      <location filename="../QScintilla/Editor.py" line="6113" />
       <source>Code Coverage</source>
       <translation>代码覆盖率</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6111" />
+      <location filename="../QScintilla/Editor.py" line="6114" />
       <source>Please select a coverage file</source>
       <translation>请选择一个覆盖率文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6186" />
-      <location filename="../QScintilla/Editor.py" line="6178" />
+      <location filename="../QScintilla/Editor.py" line="6189" />
+      <location filename="../QScintilla/Editor.py" line="6181" />
       <source>Show Code Coverage Annotations</source>
       <translation>显示代码覆盖率注解</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6179" />
+      <location filename="../QScintilla/Editor.py" line="6182" />
       <source>All lines have been covered.</source>
       <translation>所有行均被已覆盖。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6187" />
+      <location filename="../QScintilla/Editor.py" line="6190" />
       <source>There is no coverage file available.</source>
       <translation>没有有效的覆盖率文件。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6283" />
+      <location filename="../QScintilla/Editor.py" line="6286" />
       <source>Profile Data</source>
       <translation>剖析数据</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6284" />
+      <location filename="../QScintilla/Editor.py" line="6287" />
       <source>Please select a profile file</source>
       <translation>请选择一个剖析文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6447" />
-      <location filename="../QScintilla/Editor.py" line="6441" />
+      <location filename="../QScintilla/Editor.py" line="6450" />
+      <location filename="../QScintilla/Editor.py" line="6444" />
       <source>Syntax Error</source>
       <translation>语法错误</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6448" />
+      <location filename="../QScintilla/Editor.py" line="6451" />
       <source>No syntax error message available.</source>
       <translation>语法错误消息无效。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6659" />
-      <location filename="../QScintilla/Editor.py" line="6653" />
+      <location filename="../QScintilla/Editor.py" line="6662" />
+      <location filename="../QScintilla/Editor.py" line="6656" />
       <source>Warning</source>
       <translation>警告</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6659" />
+      <location filename="../QScintilla/Editor.py" line="6662" />
       <source>No warning messages available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6723" />
-      <source>Style: {0}</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../QScintilla/Editor.py" line="6726" />
+      <source>Style: {0}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../QScintilla/Editor.py" line="6729" />
       <source>Warning: {0}</source>
       <translation>警告:{0}</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6733" />
+      <location filename="../QScintilla/Editor.py" line="6736" />
       <source>Error: {0}</source>
       <translation>错误:{0}</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6840" />
+      <location filename="../QScintilla/Editor.py" line="6843" />
       <source>Macro Name</source>
       <translation>宏名称</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6840" />
+      <location filename="../QScintilla/Editor.py" line="6843" />
       <source>Select a macro name:</source>
       <translation>选择一个宏名称:</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6866" />
+      <location filename="../QScintilla/Editor.py" line="6869" />
       <source>Load macro file</source>
       <translation>输入宏文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6912" />
-      <location filename="../QScintilla/Editor.py" line="6868" />
+      <location filename="../QScintilla/Editor.py" line="6915" />
+      <location filename="../QScintilla/Editor.py" line="6871" />
       <source>Macro files (*.macro)</source>
       <translation>宏文件 (*.macro)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6890" />
-      <location filename="../QScintilla/Editor.py" line="6880" />
+      <location filename="../QScintilla/Editor.py" line="6893" />
+      <location filename="../QScintilla/Editor.py" line="6883" />
       <source>Error loading macro</source>
       <translation>载入宏文件出错</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6881" />
+      <location filename="../QScintilla/Editor.py" line="6884" />
       <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6891" />
+      <location filename="../QScintilla/Editor.py" line="6894" />
       <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; is corrupt.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6910" />
+      <location filename="../QScintilla/Editor.py" line="6913" />
       <source>Save macro file</source>
       <translation>保存宏文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6928" />
+      <location filename="../QScintilla/Editor.py" line="6931" />
       <source>Save macro</source>
       <translation>保存宏</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6929" />
+      <location filename="../QScintilla/Editor.py" line="6932" />
       <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation>&lt;p&gt;宏文件 &lt;b&gt;{0}&lt;/b&gt; 已经存在。是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6944" />
+      <location filename="../QScintilla/Editor.py" line="6947" />
       <source>Error saving macro</source>
       <translation>保存宏出错</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6945" />
+      <location filename="../QScintilla/Editor.py" line="6948" />
       <source>&lt;p&gt;The macro file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6958" />
+      <location filename="../QScintilla/Editor.py" line="6961" />
       <source>Start Macro Recording</source>
       <translation>开始宏录制</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6959" />
+      <location filename="../QScintilla/Editor.py" line="6962" />
       <source>Macro recording is already active. Start new?</source>
       <translation>宏录制已激活。开始录制新宏?</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6985" />
+      <location filename="../QScintilla/Editor.py" line="6988" />
       <source>Macro Recording</source>
       <translation>宏录制</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="6986" />
+      <location filename="../QScintilla/Editor.py" line="6989" />
       <source>Enter name of the macro:</source>
       <translation>输入宏名称:</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7137" />
+      <location filename="../QScintilla/Editor.py" line="7140" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; has been changed while it was opened in eric. Reread it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7143" />
+      <location filename="../QScintilla/Editor.py" line="7146" />
       <source>&lt;br&gt;&lt;b&gt;Warning:&lt;/b&gt; You will lose your changes upon reopening it.</source>
       <translation>&lt;br&gt;&lt;b&gt;警告:&lt;/b&gt;您在重新打开时将丢失所有更改。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7150" />
+      <location filename="../QScintilla/Editor.py" line="7153" />
       <source>File changed</source>
       <translation>文件已改变</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7200" />
+      <location filename="../QScintilla/Editor.py" line="7203" />
       <source>{0} (ro)</source>
       <translation>{0}(只读)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7491" />
+      <location filename="../QScintilla/Editor.py" line="7494" />
       <source>Drop Error</source>
       <translation>降落误差</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7492" />
+      <location filename="../QScintilla/Editor.py" line="7495" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; 不是一个文件。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7512" />
-      <source>Resources</source>
-      <translation>资源</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/Editor.py" line="7514" />
-      <source>Add file...</source>
-      <translation>添加文件…</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/Editor.py" line="7515" />
-      <source>Add files...</source>
+      <source>Resources</source>
+      <translation>资源</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/Editor.py" line="7517" />
+      <source>Add file...</source>
       <translation>添加文件…</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7516" />
-      <source>Add aliased file...</source>
-      <translation>添加别名文件…</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/Editor.py" line="7518" />
-      <source>Add localized resource...</source>
-      <translation>添加本地资源…</translation>
+      <source>Add files...</source>
+      <translation>添加文件…</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/Editor.py" line="7519" />
+      <source>Add aliased file...</source>
+      <translation>添加别名文件…</translation>
     </message>
     <message>
       <location filename="../QScintilla/Editor.py" line="7521" />
+      <source>Add localized resource...</source>
+      <translation>添加本地资源…</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/Editor.py" line="7524" />
       <source>Add resource frame</source>
       <translation>添加资源结构</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7540" />
+      <location filename="../QScintilla/Editor.py" line="7543" />
       <source>Add file resource</source>
       <translation>添加文件资源</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7554" />
+      <location filename="../QScintilla/Editor.py" line="7557" />
       <source>Add file resources</source>
       <translation>添加多个文件资源</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7578" />
-      <location filename="../QScintilla/Editor.py" line="7572" />
+      <location filename="../QScintilla/Editor.py" line="7581" />
+      <location filename="../QScintilla/Editor.py" line="7575" />
       <source>Add aliased file resource</source>
       <translation>添加别名文件资源</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7579" />
+      <location filename="../QScintilla/Editor.py" line="7582" />
       <source>Alias for file &lt;b&gt;{0}&lt;/b&gt;:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7654" />
+      <location filename="../QScintilla/Editor.py" line="7657" />
       <source>Package Diagram</source>
       <translation>程序包图</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7655" />
+      <location filename="../QScintilla/Editor.py" line="7658" />
       <source>Include class attributes?</source>
       <translation>包含类属性?</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7675" />
+      <location filename="../QScintilla/Editor.py" line="7678" />
       <source>Imports Diagram</source>
       <translation>引用图</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7676" />
+      <location filename="../QScintilla/Editor.py" line="7679" />
       <source>Include imports from external modules?</source>
       <translation>从外部模块包含引用?</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7695" />
+      <location filename="../QScintilla/Editor.py" line="7698" />
       <source>Application Diagram</source>
       <translation>应用程序图</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="7696" />
+      <location filename="../QScintilla/Editor.py" line="7699" />
       <source>Include module names?</source>
       <translation>包含模块名?</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8036" />
+      <location filename="../QScintilla/Editor.py" line="8056" />
       <source>Add to dictionary</source>
       <translation>添加到文件夹</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8038" />
+      <location filename="../QScintilla/Editor.py" line="8058" />
       <source>Ignore All</source>
       <translation>全部忽略</translation>
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8456" />
+      <location filename="../QScintilla/Editor.py" line="8476" />
       <source>Sort Lines</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8457" />
+      <location filename="../QScintilla/Editor.py" line="8477" />
       <source>The selection contains illegal data for a numerical sort.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8550" />
+      <location filename="../QScintilla/Editor.py" line="8570" />
       <source>Register Mouse Click Handler</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8551" />
+      <location filename="../QScintilla/Editor.py" line="8571" />
       <source>A mouse click handler for "{0}" was already registered by "{1}". Aborting request by "{2}"...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8647" />
+      <location filename="../QScintilla/Editor.py" line="8667" />
       <source>{0:4d}    {1}</source>
       <comment>line number, source code</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8653" />
+      <location filename="../QScintilla/Editor.py" line="8673" />
       <source>{0:4d}    {1}
     =&gt;  {2}</source>
       <comment>line number, source code, file name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8721" />
+      <location filename="../QScintilla/Editor.py" line="8741" />
       <source>EditorConfig Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Editor.py" line="8722" />
+      <location filename="../QScintilla/Editor.py" line="8742" />
       <source>&lt;p&gt;The EditorConfig properties for file &lt;b&gt;{0}&lt;/b&gt; could not be loaded.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -17204,32 +17208,32 @@
   <context>
     <name>EricIconBar</name>
     <message>
-      <location filename="../EricWidgets/EricIconBar.py" line="35" />
+      <location filename="../EricWidgets/EricIconBar.py" line="37" />
       <source>extra small</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../EricWidgets/EricIconBar.py" line="36" />
-      <source>small</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../EricWidgets/EricIconBar.py" line="37" />
-      <source>medium</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../EricWidgets/EricIconBar.py" line="38" />
-      <source>large</source>
+      <source>small</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../EricWidgets/EricIconBar.py" line="39" />
-      <source>extra large</source>
+      <source>medium</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../EricWidgets/EricIconBar.py" line="40" />
+      <source>large</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricIconBar.py" line="41" />
+      <source>extra large</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../EricWidgets/EricIconBar.py" line="42" />
       <source>very large</source>
       <translation type="unfinished" />
     </message>
@@ -21366,7 +21370,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1653" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1658" />
       <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="213" />
       <source>The git process did not finish within 30s.</source>
       <translation type="unfinished" />
@@ -21548,459 +21552,459 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1466" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1471" />
       <source>Create {0} file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1467" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1472" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; exists already. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished">&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 已经存在。是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1531" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1514" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1536" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1519" />
       <source>Git Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1515" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1520" />
       <source>&lt;p&gt;Copying the directory &lt;b&gt;{0}&lt;/b&gt; failed.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1532" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1537" />
       <source>&lt;p&gt;Copying the file &lt;b&gt;{0}&lt;/b&gt; failed.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2774" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1655" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2779" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1660" />
       <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
       <translation type="unfinished">进程 {0} 无法启动。请保证它处在搜索路径中。</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1723" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1710" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1699" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1728" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1715" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1704" />
       <source>Git Side-by-Side Difference</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1724" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1729" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished">&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1780" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1785" />
       <source>Fetching from a remote Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1818" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1823" />
       <source>Pulling from a remote Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1859" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1864" />
       <source>Pushing to a remote Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1887" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1892" />
       <source>Committing failed merge</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1914" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1919" />
       <source>Aborting uncommitted/failed merge</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1944" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1949" />
       <source>Applying patch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1979" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1984" />
       <source>Check patch files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1982" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="1987" />
       <source>Apply patch files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2064" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2069" />
       <source>Tagging in the Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2311" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2316" />
       <source>Branching in the Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2355" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2360" />
       <source>Delete Remote Branch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2378" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2383" />
       <source>Current Branch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2379" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2384" />
       <source>&lt;p&gt;The current branch is &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2447" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2429" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2411" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2452" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2434" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2416" />
       <source>Create Bundle</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2413" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2418" />
       <source>Git Bundle Files (*.bundle)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2430" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2435" />
       <source>&lt;p&gt;The Git bundle file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2478" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2467" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2483" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2472" />
       <source>Verify Bundle</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2615" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2566" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2500" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2469" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2620" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2571" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2505" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2474" />
       <source>Git Bundle Files (*.bundle);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2509" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2498" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2514" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2503" />
       <source>List Bundle Heads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2613" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2564" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2618" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2569" />
       <source>Apply Bundle</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2636" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2587" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2641" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2592" />
       <source>Applying a bundle file (fetch)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2669" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2674" />
       <source>Bisect subcommand ({0}) invalid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2880" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2718" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2885" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2723" />
       <source>Git Bisect ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2773" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2778" />
       <source>Process Generation Error</source>
       <translation type="unfinished">进程生成错误</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2819" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2802" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2784" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2824" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2807" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2789" />
       <source>Create Bisect Replay File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2786" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2791" />
       <source>Git Bisect Replay Files (*.replay)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2803" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2808" />
       <source>&lt;p&gt;The Git bisect replay file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2820" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2825" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2841" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2846" />
       <source>Edit Bisect Replay File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2871" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2843" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2876" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2848" />
       <source>Git Bisect Replay Files (*.replay);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2869" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="2874" />
       <source>Bisect Replay</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3227" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3045" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3232" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3050" />
       <source>Show Remote Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3105" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3110" />
       <source>Rename Remote Repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3106" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3111" />
       <source>Enter new name for remote repository:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3251" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3256" />
       <source>Show Shortlog</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3310" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3315" />
       <source>Cherry-pick</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3341" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3346" />
       <source>Copy Changesets (Continue)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3366" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3371" />
       <source>Copy Changesets (Quit)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3392" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3397" />
       <source>Copy Changesets (Cancel)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3474" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3479" />
       <source>Saving stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3686" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3514" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3691" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3519" />
       <source>Show Stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3687" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3645" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3594" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3552" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3515" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3692" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3650" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3599" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3557" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3520" />
       <source>Select a stash (empty for latest stash):</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3593" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3551" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3598" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3556" />
       <source>Restore Stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3607" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3565" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3612" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3570" />
       <source>Restoring stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3644" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3633" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3649" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3638" />
       <source>Create Branch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3634" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3639" />
       <source>Enter a branch name to restore a stash to:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3659" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3664" />
       <source>Creating branch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3697" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3702" />
       <source>Delete Stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3698" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3703" />
       <source>Do you really want to delete the stash &lt;b&gt;{0}&lt;/b&gt;?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3708" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3713" />
       <source>Deleting stash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3730" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3735" />
       <source>Delete All Stashes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3731" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3736" />
       <source>Do you really want to delete all stashes?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3737" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3742" />
       <source>Deleting all stashes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3802" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3807" />
       <source>Showing the combined configuration settings</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3826" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3831" />
       <source>Verifying the integrity of the Git repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3849" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3854" />
       <source>Performing Repository Housekeeping</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3892" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3897" />
       <source>&lt;tr&gt;&lt;td&gt;&lt;b&gt;Statistics&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3894" />
-      <source>&lt;tr&gt;&lt;td&gt;Number of loose objects: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3899" />
+      <source>&lt;tr&gt;&lt;td&gt;Number of loose objects: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3904" />
       <source>&lt;tr&gt;&lt;td&gt;Disk space used by loose objects: &lt;/td&gt;&lt;td&gt;{0} KiB&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3905" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3910" />
       <source>&lt;tr&gt;&lt;td&gt;Number of packed objects: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3911" />
-      <source>&lt;tr&gt;&lt;td&gt;Number of packs: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3916" />
+      <source>&lt;tr&gt;&lt;td&gt;Number of packs: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3921" />
       <source>&lt;tr&gt;&lt;td&gt;Disk space used by packed objects: &lt;/td&gt;&lt;td&gt;{0} KiB&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3922" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3927" />
       <source>&lt;tr&gt;&lt;td&gt;Packed objects waiting for pruning: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3928" />
-      <source>&lt;tr&gt;&lt;td&gt;Garbage files: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3933" />
+      <source>&lt;tr&gt;&lt;td&gt;Garbage files: &lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3938" />
       <source>&lt;tr&gt;&lt;td&gt;Disk space used by garbage files: &lt;/td&gt;&lt;td&gt;{0} KiB&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3940" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="3945" />
       <source>&lt;p&gt;&lt;b&gt;No statistics available.&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4008" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4013" />
       <source>Creating Archive</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4050" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4055" />
       <source>Add Submodule</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4118" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4123" />
       <source>List Submodules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4119" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4124" />
       <source>No submodules defined for the project.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4132" />
-      <source>All</source>
-      <translation type="unfinished">全部</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4136" />
-      <source>Submodule Path</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4137" />
+      <source>All</source>
+      <translation type="unfinished">全部</translation>
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4141" />
+      <source>Submodule Path</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4142" />
       <source>Select a submodule path:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4188" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4193" />
       <source>Initialize Submodules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4223" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4228" />
       <source>Unregister Submodules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4297" />
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4256" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4302" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4261" />
       <source>Update Submodules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4329" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4334" />
       <source>Synchronize Submodules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4385" />
+      <location filename="../Plugins/VcsPlugins/vcsGit/git.py" line="4390" />
       <source>Submodules Summary</source>
       <translation type="unfinished" />
     </message>
@@ -28307,27 +28311,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="499" />
+      <location filename="../Globals/__init__.py" line="518" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="502" />
+      <location filename="../Globals/__init__.py" line="521" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="505" />
+      <location filename="../Globals/__init__.py" line="524" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="508" />
+      <location filename="../Globals/__init__.py" line="527" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="511" />
+      <location filename="../Globals/__init__.py" line="530" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -31098,9 +31102,9 @@
       <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2268" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2257" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2247" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2273" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2262" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2252" />
       <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="1688" />
       <source>Apply changegroups</source>
       <translation type="unfinished" />
@@ -31171,244 +31175,244 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2104" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2109" />
       <source>Create .hgignore file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2105" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2110" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; exists already. Overwrite it?&lt;/p&gt;</source>
       <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 已经存在。是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2206" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2180" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2162" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2211" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2185" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2167" />
       <source>Create changegroup</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2164" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2169" />
       <source>Mercurial Changegroup Files (*.hg)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2181" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2186" />
       <source>&lt;p&gt;The Mercurial changegroup file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2218" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2223" />
       <source>Preview changegroup</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2249" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2220" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2254" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2225" />
       <source>Mercurial Changegroup Files (*.hg);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2258" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2263" />
       <source>Shall the working directory be updated?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2288" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2293" />
       <source>Bisect subcommand ({0}) invalid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2310" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2315" />
       <source>Mercurial Bisect ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2333" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2338" />
       <source>Removing files from the Mercurial repository only</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2377" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2358" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2382" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2363" />
       <source>Backing out changeset</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2359" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2364" />
       <source>No revision given. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2395" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2388" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2400" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2393" />
       <source>Rollback last transaction</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2389" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2394" />
       <source>Are you sure you want to rollback the last transaction?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2457" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2462" />
       <source>Import Patch</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2505" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2510" />
       <source>Export Patches</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2545" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2550" />
       <source>Change Phase</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2599" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2604" />
       <source>Copy Changesets</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2638" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2643" />
       <source>Copy Changesets (Continue)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2648" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2653" />
       <source>Copy Changesets (Stop)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2658" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2663" />
       <source>Copy Changesets (Abort)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2681" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2686" />
       <source>Create Unversioned Archive</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2695" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2700" />
       <source>Delete All Backups</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2696" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2701" />
       <source>&lt;p&gt;Do you really want to delete all backup bundles stored in the backup area?&lt;br/&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2785" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2765" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2754" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2790" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2770" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2759" />
       <source>Add Sub-repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2822" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2755" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2827" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2760" />
       <source>&lt;p&gt;The sub-repositories file .hgsub could not be read.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2766" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2771" />
       <source>&lt;p&gt;The sub-repositories file .hgsub already contains an entry &lt;b&gt;{0}&lt;/b&gt;. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2842" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2786" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2847" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2791" />
       <source>&lt;p&gt;The sub-repositories file .hgsub could not be written to.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2841" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2821" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2807" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2846" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2826" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2812" />
       <source>Remove Sub-repositories</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2808" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2813" />
       <source>&lt;p&gt;The sub-repositories file .hgsub does not exist. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3058" />
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2921" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3063" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2926" />
       <source>Mercurial Command Server</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2922" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="2927" />
       <source>&lt;p&gt;The Mercurial Command Server could not be restarted.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3059" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3064" />
       <source>&lt;p&gt;The Mercurial Command Server could not be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3175" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3180" />
       <source>Mercurial Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3191" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3196" />
       <source>Delete Bookmark</source>
       <translation type="unfinished">删除书签</translation>
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3192" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3197" />
       <source>Select the bookmark to be deleted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3202" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3207" />
       <source>Delete Mercurial Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3227" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3232" />
       <source>Rename Mercurial Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3264" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3269" />
       <source>Move Mercurial Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3337" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3342" />
       <source>Pull Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3338" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3343" />
       <source>Select the bookmark to be pulled:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3350" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3355" />
       <source>Pulling bookmark from a remote Mercurial repository</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3376" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3381" />
       <source>Push Bookmark</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3377" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3382" />
       <source>Select the bookmark to be push:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3392" />
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/hg.py" line="3397" />
       <source>Pushing bookmark to a remote Mercurial repository</source>
       <translation type="unfinished" />
     </message>
@@ -45474,17 +45478,17 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Lexers/LexerPython.py" line="82" />
+      <location filename="../QScintilla/Lexers/LexerPython.py" line="80" />
       <source>__future__ Imports</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Lexers/LexerPython.py" line="92" />
+      <location filename="../QScintilla/Lexers/LexerPython.py" line="90" />
       <source>PyQt5/6 Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/Lexers/LexerPython.py" line="109" />
+      <location filename="../QScintilla/Lexers/LexerPython.py" line="107" />
       <source>Cython Specifics</source>
       <translation type="unfinished" />
     </message>
@@ -46840,6 +46844,24 @@
     </message>
   </context>
   <context>
+    <name>MarkersWindow</name>
+    <message>
+      <location filename="../Testing/MarkersWindow.ui" line="0" />
+      <source>Defined Markers</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/MarkersWindow.ui" line="0" />
+      <source>Marker</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/MarkersWindow.ui" line="0" />
+      <source>Description</source>
+      <translation type="unfinished">描述</translation>
+    </message>
+  </context>
+  <context>
     <name>MasterPasswordEntryDialog</name>
     <message>
       <location filename="../Preferences/ConfigurationPages/MasterPasswordEntryDialog.py" line="36" />
@@ -48741,713 +48763,713 @@
   <context>
     <name>MiniEditor</name>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="447" />
+      <location filename="../QScintilla/MiniEditor.py" line="464" />
       <source>About eric Mini Editor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="448" />
+      <location filename="../QScintilla/MiniEditor.py" line="465" />
       <source>The eric Mini Editor is an editor component based on QScintilla. It may be used for simple editing tasks, that don't need the power of a full blown editor.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="517" />
+      <location filename="../QScintilla/MiniEditor.py" line="534" />
       <source>Line: {0:5}</source>
       <translation>行:{0:5}</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="521" />
+      <location filename="../QScintilla/MiniEditor.py" line="538" />
       <source>Pos: {0:5}</source>
       <translation>列:{0:5}</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="537" />
+      <location filename="../QScintilla/MiniEditor.py" line="554" />
       <source>Language: {0}</source>
       <translation type="unfinished">语言:{0}</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="599" />
+      <location filename="../QScintilla/MiniEditor.py" line="616" />
       <source>New</source>
       <translation>新建</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="601" />
+      <location filename="../QScintilla/MiniEditor.py" line="618" />
       <source>&amp;New</source>
       <translation>新建(&amp;N)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="602" />
+      <location filename="../QScintilla/MiniEditor.py" line="619" />
       <source>Ctrl+N</source>
       <comment>File|New</comment>
       <translation>Ctrl+N</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="607" />
+      <location filename="../QScintilla/MiniEditor.py" line="624" />
       <source>Open an empty editor window</source>
       <translation>打开一个空白编辑器窗口</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="609" />
+      <location filename="../QScintilla/MiniEditor.py" line="626" />
       <source>&lt;b&gt;New&lt;/b&gt;&lt;p&gt;An empty editor window will be created.&lt;/p&gt;</source>
       <translation>&lt;b&gt;新建&lt;/b&gt;&lt;p&gt;创建一个空白编辑器窗口。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="617" />
+      <location filename="../QScintilla/MiniEditor.py" line="634" />
       <source>Open</source>
       <translation>打开</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="619" />
-      <source>&amp;Open...</source>
-      <translation>打开(&amp;O)…</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="620" />
-      <source>Ctrl+O</source>
-      <comment>File|Open</comment>
-      <translation>Ctrl+O</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="625" />
-      <source>Open a file</source>
-      <translation>打开一个文件</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="627" />
-      <source>&lt;b&gt;Open a file&lt;/b&gt;&lt;p&gt;You will be asked for the name of a file to be opened.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;打开一个文件&lt;/b&gt;&lt;p&gt;将询问要打开的文件名称。&lt;/p&gt;</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="636" />
-      <source>Save</source>
-      <translation>保存</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="638" />
-      <source>&amp;Save</source>
-      <translation>保存(&amp;S)</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="639" />
-      <source>Ctrl+S</source>
-      <comment>File|Save</comment>
-      <translation>Ctrl+S</translation>
+      <source>&amp;Open...</source>
+      <translation>打开(&amp;O)…</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="637" />
+      <source>Ctrl+O</source>
+      <comment>File|Open</comment>
+      <translation>Ctrl+O</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="642" />
+      <source>Open a file</source>
+      <translation>打开一个文件</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="644" />
-      <source>Save the current file</source>
-      <translation>保存当前文件</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="646" />
-      <source>&lt;b&gt;Save File&lt;/b&gt;&lt;p&gt;Save the contents of current editor window.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;保存文件&lt;/b&gt;&lt;p&gt;保存当前编辑器窗口的内容。&lt;/p&gt;</translation>
+      <source>&lt;b&gt;Open a file&lt;/b&gt;&lt;p&gt;You will be asked for the name of a file to be opened.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;打开一个文件&lt;/b&gt;&lt;p&gt;将询问要打开的文件名称。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="653" />
+      <source>Save</source>
+      <translation>保存</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="655" />
+      <source>&amp;Save</source>
+      <translation>保存(&amp;S)</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="656" />
+      <source>Ctrl+S</source>
+      <comment>File|Save</comment>
+      <translation>Ctrl+S</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="661" />
+      <source>Save the current file</source>
+      <translation>保存当前文件</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="663" />
+      <source>&lt;b&gt;Save File&lt;/b&gt;&lt;p&gt;Save the contents of current editor window.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;保存文件&lt;/b&gt;&lt;p&gt;保存当前编辑器窗口的内容。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="672" />
       <source>Save as</source>
       <translation>另存为</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="657" />
+      <location filename="../QScintilla/MiniEditor.py" line="674" />
       <source>Save &amp;as...</source>
       <translation>另存为(&amp;A)…</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="658" />
+      <location filename="../QScintilla/MiniEditor.py" line="675" />
       <source>Shift+Ctrl+S</source>
       <comment>File|Save As</comment>
       <translation>Shift+Ctrl+S</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="663" />
+      <location filename="../QScintilla/MiniEditor.py" line="680" />
       <source>Save the current file to a new one</source>
       <translation>将当前文件保存到一个新文件中</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="665" />
+      <location filename="../QScintilla/MiniEditor.py" line="682" />
       <source>&lt;b&gt;Save File as&lt;/b&gt;&lt;p&gt;Save the contents of current editor window to a new file. The file can be entered in a file selection dialog.&lt;/p&gt;</source>
       <translation>&lt;b&gt;文件另存为&lt;/b&gt;&lt;p&gt;将当前编辑器窗口的内容保存到一个新文件中。可以在文件选择对话框中输入该文件。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="675" />
+      <location filename="../QScintilla/MiniEditor.py" line="692" />
       <source>Save Copy</source>
       <translation>保存副本</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="677" />
+      <location filename="../QScintilla/MiniEditor.py" line="694" />
       <source>Save &amp;Copy...</source>
       <translation>保存副本(&amp;C)…</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="683" />
+      <location filename="../QScintilla/MiniEditor.py" line="700" />
       <source>Save a copy of the current file</source>
       <translation>保存当前文件的一个副本</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="685" />
+      <location filename="../QScintilla/MiniEditor.py" line="702" />
       <source>&lt;b&gt;Save Copy&lt;/b&gt;&lt;p&gt;Save a copy of the contents of current editor window. The file can be entered in a file selection dialog.&lt;/p&gt;</source>
       <translation>&lt;b&gt;保存副本&lt;/b&gt;保存当前编辑器窗口内容的一个副本。文件可以在文件选择对话框中输入。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="695" />
+      <location filename="../QScintilla/MiniEditor.py" line="712" />
       <source>Close</source>
       <translation>关闭</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="697" />
+      <location filename="../QScintilla/MiniEditor.py" line="714" />
       <source>&amp;Close</source>
       <translation>关闭(&amp;C)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="698" />
+      <location filename="../QScintilla/MiniEditor.py" line="715" />
       <source>Ctrl+W</source>
       <comment>File|Close</comment>
       <translation>Ctrl+W</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="703" />
+      <location filename="../QScintilla/MiniEditor.py" line="720" />
       <source>Close the editor window</source>
       <translation>关闭编辑器窗口</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="705" />
+      <location filename="../QScintilla/MiniEditor.py" line="722" />
       <source>&lt;b&gt;Close Window&lt;/b&gt;&lt;p&gt;Close the current window.&lt;/p&gt;</source>
       <translation>&lt;b&gt;关闭窗口&lt;/b&gt;&lt;p&gt;关闭当前窗口。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="711" />
+      <location filename="../QScintilla/MiniEditor.py" line="728" />
       <source>Print</source>
       <translation>打印</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="713" />
+      <location filename="../QScintilla/MiniEditor.py" line="730" />
       <source>&amp;Print</source>
       <translation>打印(&amp;P)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="714" />
+      <location filename="../QScintilla/MiniEditor.py" line="731" />
       <source>Ctrl+P</source>
       <comment>File|Print</comment>
       <translation>Ctrl+P</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="719" />
+      <location filename="../QScintilla/MiniEditor.py" line="736" />
       <source>Print the current file</source>
       <translation>打印当前文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="721" />
-      <source>&lt;b&gt;Print File&lt;/b&gt;&lt;p&gt;Print the contents of the current file.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;打印文件&lt;/b&gt;&lt;p&gt;打印当前文件的内容。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="730" />
-      <source>Print Preview</source>
-      <translation>打印预览</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="738" />
-      <source>Print preview of the current file</source>
-      <translation>当前文件的打印预览</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="740" />
-      <source>&lt;b&gt;Print Preview&lt;/b&gt;&lt;p&gt;Print preview of the current file.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;打印预览&lt;/b&gt;&lt;p&gt;当前文件的打印预览。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="753" />
-      <source>Undo</source>
-      <translation>撤消</translation>
+      <source>&lt;b&gt;Print File&lt;/b&gt;&lt;p&gt;Print the contents of the current file.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;打印文件&lt;/b&gt;&lt;p&gt;打印当前文件的内容。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="747" />
+      <source>Print Preview</source>
+      <translation>打印预览</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="755" />
-      <source>&amp;Undo</source>
-      <translation>撤消(&amp;U)</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="756" />
-      <source>Ctrl+Z</source>
-      <comment>Edit|Undo</comment>
-      <translation>Ctrl+Z</translation>
+      <source>Print preview of the current file</source>
+      <translation>当前文件的打印预览</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="757" />
-      <source>Alt+Backspace</source>
-      <comment>Edit|Undo</comment>
-      <translation>Alt+Backspace</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="761" />
-      <source>Undo the last change</source>
-      <translation>撤消最后一次更改</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="763" />
-      <source>&lt;b&gt;Undo&lt;/b&gt;&lt;p&gt;Undo the last change done in the current editor.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;撤消&lt;/b&gt;&lt;p&gt;在当前编辑器中撤消最后一次更改。&lt;/p&gt;</translation>
+      <source>&lt;b&gt;Print Preview&lt;/b&gt;&lt;p&gt;Print preview of the current file.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;打印预览&lt;/b&gt;&lt;p&gt;当前文件的打印预览。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="770" />
+      <source>Undo</source>
+      <translation>撤消</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="772" />
-      <source>Redo</source>
-      <translation>重做</translation>
+      <source>&amp;Undo</source>
+      <translation>撤消(&amp;U)</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="773" />
+      <source>Ctrl+Z</source>
+      <comment>Edit|Undo</comment>
+      <translation>Ctrl+Z</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="774" />
-      <source>&amp;Redo</source>
-      <translation>重做(&amp;R)</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="775" />
-      <source>Ctrl+Shift+Z</source>
-      <comment>Edit|Redo</comment>
-      <translation>Ctrl+Shift+Z</translation>
+      <source>Alt+Backspace</source>
+      <comment>Edit|Undo</comment>
+      <translation>Alt+Backspace</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="778" />
+      <source>Undo the last change</source>
+      <translation>撤消最后一次更改</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="780" />
-      <source>Redo the last change</source>
-      <translation>重做最后一次更改</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="782" />
-      <source>&lt;b&gt;Redo&lt;/b&gt;&lt;p&gt;Redo the last change done in the current editor.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;重做&lt;/b&gt;&lt;p&gt;在当前编辑器中重做最后一次更改。&lt;/p&gt;</translation>
+      <source>&lt;b&gt;Undo&lt;/b&gt;&lt;p&gt;Undo the last change done in the current editor.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;撤消&lt;/b&gt;&lt;p&gt;在当前编辑器中撤消最后一次更改。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="789" />
+      <source>Redo</source>
+      <translation>重做</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="791" />
-      <source>Cut</source>
-      <translation>剪切</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="793" />
-      <source>Cu&amp;t</source>
-      <translation>剪切(&amp;t)</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="794" />
-      <source>Ctrl+X</source>
-      <comment>Edit|Cut</comment>
-      <translation>Ctrl+X</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="795" />
-      <source>Shift+Del</source>
-      <comment>Edit|Cut</comment>
-      <translation>Shift+Del</translation>
+      <source>&amp;Redo</source>
+      <translation>重做(&amp;R)</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="792" />
+      <source>Ctrl+Shift+Z</source>
+      <comment>Edit|Redo</comment>
+      <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="797" />
+      <source>Redo the last change</source>
+      <translation>重做最后一次更改</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="799" />
-      <source>Cut the selection</source>
-      <translation>剪切所选内容</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="801" />
-      <source>&lt;b&gt;Cut&lt;/b&gt;&lt;p&gt;Cut the selected text of the current editor to the clipboard.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;剪切&lt;/b&gt;&lt;p&gt;将当前编辑器所选内容剪切到剪贴板中。&lt;/p&gt;</translation>
+      <source>&lt;b&gt;Redo&lt;/b&gt;&lt;p&gt;Redo the last change done in the current editor.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;重做&lt;/b&gt;&lt;p&gt;在当前编辑器中重做最后一次更改。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="808" />
+      <source>Cut</source>
+      <translation>剪切</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="810" />
+      <source>Cu&amp;t</source>
+      <translation>剪切(&amp;t)</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="811" />
+      <source>Ctrl+X</source>
+      <comment>Edit|Cut</comment>
+      <translation>Ctrl+X</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="812" />
+      <source>Shift+Del</source>
+      <comment>Edit|Cut</comment>
+      <translation>Shift+Del</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="816" />
+      <source>Cut the selection</source>
+      <translation>剪切所选内容</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="818" />
+      <source>&lt;b&gt;Cut&lt;/b&gt;&lt;p&gt;Cut the selected text of the current editor to the clipboard.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;剪切&lt;/b&gt;&lt;p&gt;将当前编辑器所选内容剪切到剪贴板中。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="828" />
       <source>Copy</source>
       <translation>复制</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="813" />
+      <location filename="../QScintilla/MiniEditor.py" line="830" />
       <source>&amp;Copy</source>
       <translation>复制(&amp;C)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="814" />
+      <location filename="../QScintilla/MiniEditor.py" line="831" />
       <source>Ctrl+C</source>
       <comment>Edit|Copy</comment>
       <translation>Ctrl+C</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="815" />
+      <location filename="../QScintilla/MiniEditor.py" line="832" />
       <source>Ctrl+Ins</source>
       <comment>Edit|Copy</comment>
       <translation>Ctrl+Ins</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="819" />
+      <location filename="../QScintilla/MiniEditor.py" line="836" />
       <source>Copy the selection</source>
       <translation>复制所选内容</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="821" />
+      <location filename="../QScintilla/MiniEditor.py" line="838" />
       <source>&lt;b&gt;Copy&lt;/b&gt;&lt;p&gt;Copy the selected text of the current editor to the clipboard.&lt;/p&gt;</source>
       <translation>&lt;b&gt;复制&lt;/b&gt;&lt;p&gt;将当前编辑器所选内容复制到剪贴板中。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="831" />
+      <location filename="../QScintilla/MiniEditor.py" line="848" />
       <source>Paste</source>
       <translation>粘贴</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="833" />
+      <location filename="../QScintilla/MiniEditor.py" line="850" />
       <source>&amp;Paste</source>
       <translation>粘贴(&amp;P)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="834" />
+      <location filename="../QScintilla/MiniEditor.py" line="851" />
       <source>Ctrl+V</source>
       <comment>Edit|Paste</comment>
       <translation>Ctrl+V</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="835" />
+      <location filename="../QScintilla/MiniEditor.py" line="852" />
       <source>Shift+Ins</source>
       <comment>Edit|Paste</comment>
       <translation>Shift+Ins</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="839" />
+      <location filename="../QScintilla/MiniEditor.py" line="856" />
       <source>Paste the last cut/copied text</source>
       <translation>粘贴最近剪切或复制的文本</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="841" />
+      <location filename="../QScintilla/MiniEditor.py" line="858" />
       <source>&lt;b&gt;Paste&lt;/b&gt;&lt;p&gt;Paste the last cut/copied text from the clipboard to the current editor.&lt;/p&gt;</source>
       <translation>&lt;b&gt;粘贴&lt;/b&gt;&lt;p&gt;将最近剪切或复制的文本从剪贴板粘贴到当前编辑器中。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="851" />
+      <location filename="../QScintilla/MiniEditor.py" line="868" />
       <source>Clear</source>
       <translation>清除</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="853" />
+      <location filename="../QScintilla/MiniEditor.py" line="870" />
       <source>Cl&amp;ear</source>
       <translation>清除(&amp;E)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="854" />
+      <location filename="../QScintilla/MiniEditor.py" line="871" />
       <source>Alt+Shift+C</source>
       <comment>Edit|Clear</comment>
       <translation>Alt+Shift+C</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="859" />
+      <location filename="../QScintilla/MiniEditor.py" line="876" />
       <source>Clear all text</source>
       <translation>清除所有文本</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="861" />
+      <location filename="../QScintilla/MiniEditor.py" line="878" />
       <source>&lt;b&gt;Clear&lt;/b&gt;&lt;p&gt;Delete all text of the current editor.&lt;/p&gt;</source>
       <translation>&lt;b&gt;清除&lt;/b&gt;&lt;p&gt;删除当前编辑器中的所有文本。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2853" />
+      <location filename="../QScintilla/MiniEditor.py" line="2870" />
       <source>About</source>
       <translation>关于</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2853" />
+      <location filename="../QScintilla/MiniEditor.py" line="2870" />
       <source>&amp;About</source>
       <translation>关于(&amp;A)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2855" />
-      <source>Display information about this software</source>
-      <translation>显示软件信息</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2857" />
-      <source>&lt;b&gt;About&lt;/b&gt;&lt;p&gt;Display some information about this software.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;关于&lt;/b&gt;&lt;p&gt;显示与本软件有关的部分信息。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2866" />
-      <source>About Qt</source>
-      <translation>关于 Qt</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2866" />
-      <source>About &amp;Qt</source>
-      <translation>关于 &amp;Qt</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2869" />
-      <source>Display information about the Qt toolkit</source>
-      <translation>显示 Qt 工具包信息</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="2872" />
-      <source>&lt;b&gt;About Qt&lt;/b&gt;&lt;p&gt;Display some information about the Qt toolkit.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;关于 Qt&lt;/b&gt;&lt;p&gt;显示 Qt 工具包的部分相关信息。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2881" />
-      <source>What's This?</source>
-      <translation>这是什么?</translation>
+      <source>Display information about this software</source>
+      <translation>显示软件信息</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2874" />
+      <source>&lt;b&gt;About&lt;/b&gt;&lt;p&gt;Display some information about this software.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;关于&lt;/b&gt;&lt;p&gt;显示与本软件有关的部分信息。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="2883" />
-      <source>&amp;What's This?</source>
-      <translation>这是什么(&amp;W)?</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2884" />
-      <source>Shift+F1</source>
-      <comment>Help|What's This?'</comment>
-      <translation>Shift+F1</translation>
+      <source>About Qt</source>
+      <translation>关于 Qt</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2883" />
+      <source>About &amp;Qt</source>
+      <translation>关于 &amp;Qt</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2886" />
+      <source>Display information about the Qt toolkit</source>
+      <translation>显示 Qt 工具包信息</translation>
     </message>
     <message>
       <location filename="../QScintilla/MiniEditor.py" line="2889" />
+      <source>&lt;b&gt;About Qt&lt;/b&gt;&lt;p&gt;Display some information about the Qt toolkit.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;关于 Qt&lt;/b&gt;&lt;p&gt;显示 Qt 工具包的部分相关信息。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2898" />
+      <source>What's This?</source>
+      <translation>这是什么?</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2900" />
+      <source>&amp;What's This?</source>
+      <translation>这是什么(&amp;W)?</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2901" />
+      <source>Shift+F1</source>
+      <comment>Help|What's This?'</comment>
+      <translation>Shift+F1</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2906" />
       <source>Context sensitive help</source>
       <translation>背景帮助</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2891" />
+      <location filename="../QScintilla/MiniEditor.py" line="2908" />
       <source>&lt;b&gt;Display context sensitive help&lt;/b&gt;&lt;p&gt;In What's This? mode, the mouse cursor shows an arrow with a question mark, and you can click on the interface elements to get a short description of what they do and how to use them. In dialogs, this feature can be accessed using the context help button in the titlebar.&lt;/p&gt;</source>
       <translation>&lt;b&gt;显示背景帮助&lt;/b&gt;&lt;p&gt;在“这是什么?”模式中,鼠标光标显示为带问号的箭头,通过点击界面元素你可以获得“在做什么”和“怎样使用”的简短描述。使用标题栏中的上下文帮助按钮可以获得此功能。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2909" />
+      <location filename="../QScintilla/MiniEditor.py" line="2926" />
       <source>Preferences</source>
       <translation type="unfinished">首选项</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2911" />
+      <location filename="../QScintilla/MiniEditor.py" line="2928" />
       <source>&amp;Preferences...</source>
       <translation type="unfinished">首选项(&amp;P)…</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2917" />
+      <location filename="../QScintilla/MiniEditor.py" line="2934" />
       <source>Set the prefered configuration</source>
       <translation type="unfinished">设定偏好配置</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2919" />
+      <location filename="../QScintilla/MiniEditor.py" line="2936" />
       <source>&lt;b&gt;Preferences&lt;/b&gt;&lt;p&gt;Set the configuration items of the application with your prefered values.&lt;/p&gt;</source>
       <translation type="unfinished">&lt;b&gt;首选项&lt;/b&gt;&lt;p&gt;将应用程序的配置项设定为你喜欢的值。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2933" />
+      <location filename="../QScintilla/MiniEditor.py" line="2950" />
       <source>&amp;File</source>
       <translation>文件(&amp;F)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2945" />
+      <location filename="../QScintilla/MiniEditor.py" line="2962" />
       <source>&amp;Edit</source>
       <translation>编辑(&amp;E)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2955" />
+      <location filename="../QScintilla/MiniEditor.py" line="2972" />
       <source>&amp;Search</source>
       <translation type="unfinished">搜索(&amp;S)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2965" />
+      <location filename="../QScintilla/MiniEditor.py" line="2982" />
       <source>&amp;View</source>
       <translation type="unfinished">视图(&amp;V)</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2971" />
-      <source>Se&amp;ttings</source>
-      <translation type="unfinished">设置(&amp;T)</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="2976" />
-      <source>&amp;Help</source>
-      <translation>帮助(&amp;H)</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="2988" />
+      <source>Se&amp;ttings</source>
+      <translation type="unfinished">设置(&amp;T)</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="2993" />
+      <source>&amp;Help</source>
+      <translation>帮助(&amp;H)</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3005" />
       <source>File</source>
       <translation>文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3001" />
-      <source>Edit</source>
-      <translation>编辑</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3011" />
-      <source>Search</source>
-      <translation type="unfinished">搜索</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="3018" />
+      <source>Edit</source>
+      <translation>编辑</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3028" />
+      <source>Search</source>
+      <translation type="unfinished">搜索</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3035" />
       <source>View</source>
       <translation type="unfinished">视图</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3025" />
+      <location filename="../QScintilla/MiniEditor.py" line="3042" />
       <source>Settings</source>
       <translation type="unfinished">设置</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3029" />
+      <location filename="../QScintilla/MiniEditor.py" line="3046" />
       <source>Help</source>
       <translation>帮助</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3043" />
+      <location filename="../QScintilla/MiniEditor.py" line="3060" />
       <source>&lt;p&gt;This part of the status bar displays the editor language.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3053" />
+      <location filename="../QScintilla/MiniEditor.py" line="3070" />
       <source>&lt;p&gt;This part of the status bar displays an indication of the editors files writability.&lt;/p&gt;</source>
       <translation>&lt;p&gt;状态条的这一部分显示编辑器文件是否为可写。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3062" />
+      <location filename="../QScintilla/MiniEditor.py" line="3079" />
       <source>&lt;p&gt;This part of the status bar displays the line number of the editor.&lt;/p&gt;</source>
       <translation>&lt;p&gt;状态条的这一部分显示编辑器的行号。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3071" />
+      <location filename="../QScintilla/MiniEditor.py" line="3088" />
       <source>&lt;p&gt;This part of the status bar displays the cursor position of the editor.&lt;/p&gt;</source>
       <translation>&lt;p&gt;状态条的这一部分显示编辑的光标位置。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3085" />
+      <location filename="../QScintilla/MiniEditor.py" line="3102" />
       <source>&lt;p&gt;This part of the status bar allows zooming the editor.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3092" />
+      <location filename="../QScintilla/MiniEditor.py" line="3109" />
       <source>Ready</source>
       <translation>就绪</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3167" />
+      <location filename="../QScintilla/MiniEditor.py" line="3184" />
       <source>eric Mini Editor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3168" />
+      <location filename="../QScintilla/MiniEditor.py" line="3185" />
       <source>The document has unsaved changes.</source>
       <translation>文档有未保存的更改。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3195" />
+      <location filename="../QScintilla/MiniEditor.py" line="3212" />
       <source>Open File</source>
       <translation>打开文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3196" />
+      <location filename="../QScintilla/MiniEditor.py" line="3213" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be opened.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 无法打开。&lt;/p&gt;&lt;p&gt;原因:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3224" />
+      <location filename="../QScintilla/MiniEditor.py" line="3241" />
       <source>File loaded</source>
       <translation>文件已载入</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3305" />
+      <location filename="../QScintilla/MiniEditor.py" line="3322" />
       <source>Save File</source>
       <translation>保存文件</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3306" />
+      <location filename="../QScintilla/MiniEditor.py" line="3323" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be saved.&lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 无法保存。&lt;br /&gt;原因:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3312" />
+      <location filename="../QScintilla/MiniEditor.py" line="3329" />
       <source>File saved</source>
       <translation>文件已保存</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3324" />
+      <location filename="../QScintilla/MiniEditor.py" line="3341" />
       <source>[*] - {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3342" />
-      <location filename="../QScintilla/MiniEditor.py" line="3324" />
+      <location filename="../QScintilla/MiniEditor.py" line="3359" />
+      <location filename="../QScintilla/MiniEditor.py" line="3341" />
       <source>Mini Editor</source>
       <translation>迷你编辑器</translation>
     </message>
     <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3692" />
+      <location filename="../QScintilla/MiniEditor.py" line="3662" />
+      <location filename="../QScintilla/MiniEditor.py" line="3353" />
+      <source>Untitled</source>
+      <translation>未命名</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3359" />
+      <source>{0}[*] - {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3657" />
+      <source>Printing...</source>
+      <translation>打印中…</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3673" />
+      <source>Printing completed</source>
+      <translation>打印已完成</translation>
+    </message>
+    <message>
       <location filename="../QScintilla/MiniEditor.py" line="3675" />
-      <location filename="../QScintilla/MiniEditor.py" line="3645" />
-      <location filename="../QScintilla/MiniEditor.py" line="3336" />
-      <source>Untitled</source>
-      <translation>未命名</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3342" />
-      <source>{0}[*] - {1}</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3640" />
-      <source>Printing...</source>
-      <translation>打印中…</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3656" />
-      <source>Printing completed</source>
-      <translation>打印已完成</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3658" />
       <source>Error while printing</source>
       <translation>打印时出错</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3661" />
+      <location filename="../QScintilla/MiniEditor.py" line="3678" />
       <source>Printing aborted</source>
       <translation>打印失败</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3716" />
-      <source>Select all</source>
-      <translation>全选</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3717" />
-      <source>Deselect all</source>
-      <translation>全部取消选择</translation>
-    </message>
-    <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3730" />
-      <source>Languages</source>
-      <translation>语言</translation>
-    </message>
-    <message>
       <location filename="../QScintilla/MiniEditor.py" line="3733" />
+      <source>Select all</source>
+      <translation>全选</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3734" />
+      <source>Deselect all</source>
+      <translation>全部取消选择</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3747" />
+      <source>Languages</source>
+      <translation>语言</translation>
+    </message>
+    <message>
+      <location filename="../QScintilla/MiniEditor.py" line="3750" />
       <source>No Language</source>
       <translation>无语言</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3757" />
+      <location filename="../QScintilla/MiniEditor.py" line="3774" />
       <source>Guessed</source>
       <translation>猜测</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3779" />
-      <location filename="../QScintilla/MiniEditor.py" line="3761" />
+      <location filename="../QScintilla/MiniEditor.py" line="3796" />
+      <location filename="../QScintilla/MiniEditor.py" line="3778" />
       <source>Alternatives</source>
       <translation>备选</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3776" />
+      <location filename="../QScintilla/MiniEditor.py" line="3793" />
       <source>Alternatives ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3807" />
+      <location filename="../QScintilla/MiniEditor.py" line="3824" />
       <source>Pygments Lexer</source>
       <translation>Pygments 词法分析器</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="3808" />
+      <location filename="../QScintilla/MiniEditor.py" line="3825" />
       <source>Select the Pygments lexer to apply.</source>
       <translation>选择要应用的 Pygments 词法分析器。</translation>
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="4317" />
+      <location filename="../QScintilla/MiniEditor.py" line="4334" />
       <source>EditorConfig Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../QScintilla/MiniEditor.py" line="4318" />
+      <location filename="../QScintilla/MiniEditor.py" line="4335" />
       <source>&lt;p&gt;The EditorConfig properties for file &lt;b&gt;{0}&lt;/b&gt; could not be loaded.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -49707,227 +49729,272 @@
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="210" />
+      <source>Do not use 'except (){0}:', it also catches unexpected events. Prefer 'except Exception:'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="215" />
       <source>Python does not support the unary prefix increment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="213" />
-      <source>using .strip() with multi-character strings is misleading</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="217" />
-      <source>do not call assert False since python -O removes these calls</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="221" />
-      <source>'sys.maxint' is not defined in Python 3 - use 'sys.maxsize'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="225" />
-      <source>'BaseException.message' has been deprecated as of Python 2.6 and is removed in Python 3 - use 'str(e)'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="230" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="218" />
       <source>assigning to 'os.environ' does not clear the environment - use 'os.environ.clear()'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="235" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="223" />
+      <source>using 'hasattr(x, "__call__")' to test if 'x' is callable is unreliable. Use 'callable(x)' for consistent results.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="228" />
+      <source>using .strip() with multi-character strings is misleading. Use .replace() or regular expressions to remove string fragments.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="233" />
       <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="240" />
-      <source>unncessary f-string</source>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="238" />
+      <source>do not call getattr with a constant attribute value</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="241" />
-      <source>cannot use 'self.__class__' as first argument of 'super()' call</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="245" />
-      <source>using 'hasattr(x, "__call__")' to test if 'x' is callable is unreliable</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="250" />
-      <source>do not call getattr with a constant attribute value</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="253" />
       <source>do not call setattr with a constant attribute value</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="256" />
-      <source>Python 3 does not include '.iter*' methods on dictionaries</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="260" />
-      <source>Python 3 does not include '.view*' methods on dictionaries</source>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="244" />
+      <source>do not call assert False since python -O removes these calls</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="248" />
+      <source>return/continue/break inside finally blocks cause exceptions to be silenced. Exceptions should be silenced in except blocks. Control statements can be moved outside the finally block.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="254" />
+      <source>A length-one tuple literal is redundant. Write 'except {0}:' instead of 'except ({0},):'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="259" />
+      <source>Redundant exception types in 'except ({0}){1}:'. Write 'except {2}{1}:', which catches exactly the same exceptions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="264" />
-      <source>'.next()' does not exist in Python 3</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="267" />
-      <source>'__metaclass__' does nothing on Python 3 - use 'class MyClass(BaseClass, metaclass=...)'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="272" />
-      <source>found {0} formatter</source>
+      <source>Pointless comparison. This comparison does nothing but waste CPU instructions. Either prepend 'assert' or remove it.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="269" />
+      <source>Cannot raise a literal. Did you intend to return it or raise an Exception?</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="273" />
-      <source>format string does contain unindexed parameters</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="276" />
-      <source>docstring does contain unindexed parameters</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="279" />
-      <source>other string does contain unindexed parameters</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="282" />
-      <source>format call uses too large index ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="285" />
-      <source>format call uses missing keyword ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="288" />
-      <source>format call uses keyword arguments but no named entries</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="292" />
-      <source>format call uses variable arguments but no numbered entries</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="296" />
-      <source>format call uses implicit and explicit indexes together</source>
+      <source>'assertRaises(Exception):' should be considered evil. It can lead to your test passing even if the code being tested is never executed due to a typo. Either assert for a more specific exception (builtin or custom), use 'assertRaisesRegex', or use the context manager form of 'assertRaises'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="280" />
+      <source>Found useless expression. Either assign it to a variable or remove it.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="284" />
+      <source>Use of 'functools.lru_cache' or 'functools.cache' on methods can lead to memory leaks. The cache may retain instance references, preventing garbage collection.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="290" />
+      <source>Found for loop that reassigns the iterable it is iterating with each iterable value.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="295" />
+      <source>f-string used as docstring. This will be interpreted by python as a joined string rather than a docstring.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="300" />
-      <source>format call provides unused index ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="303" />
-      <source>format call provides unused keyword ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="306" />
-      <source>logging statement uses string.format()</source>
+      <source>No arguments passed to 'contextlib.suppress'. No exceptions will be suppressed and therefore this context manager is redundant.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="305" />
+      <source>Function definition does not bind loop variable '{0}'.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="309" />
-      <source>logging statement uses '%'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="312" />
-      <source>logging statement uses '+'</source>
+      <source>{0} is an abstract base class, but it has no abstract methods. Remember to use '@abstractmethod', '@abstractclassmethod' and/or '@abstractproperty' decorators.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="315" />
-      <source>logging statement uses f-string</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="318" />
-      <source>logging statement uses 'warn' instead of 'warning'</source>
+      <source>Exception '{0}' has been caught multiple times. Only the first except will be considered and all other except catches can be safely removed.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="320" />
+      <source>unncessary f-string</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="321" />
-      <source>expected these __future__ imports: {0}; but only got: {1}</source>
+      <source>cannot use 'self.__class__' as first argument of 'super()' call</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="325" />
-      <source>expected these __future__ imports: {0}; but got none</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="328" />
-      <source>gettext import with alias _ found: {0}</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="331" />
-      <source>print statement found</source>
+      <source>found {0} formatter</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="326" />
+      <source>format string does contain unindexed parameters</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="329" />
+      <source>docstring does contain unindexed parameters</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="332" />
-      <source>one element tuple found</source>
+      <source>other string does contain unindexed parameters</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="335" />
+      <source>format call uses too large index ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="338" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="335" />
-      <source>mutable default argument of type {0}</source>
+      <source>format call uses missing keyword ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="341" />
-      <source>mutable default argument of function call '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="344" />
-      <source>None should not be added at any return if function has no return value except None</source>
+      <source>format call uses keyword arguments but no named entries</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="345" />
+      <source>format call uses variable arguments but no numbered entries</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="349" />
-      <source>an explicit value at every return should be added if function has a return value except None</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="354" />
-      <source>an explicit return at the end of the function should be added if it has a return value except None</source>
+      <source>format call uses implicit and explicit indexes together</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="353" />
+      <source>format call provides unused index ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="356" />
+      <source>format call provides unused keyword ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="359" />
+      <source>logging statement uses string.format()</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="362" />
+      <source>logging statement uses '%'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="365" />
+      <source>logging statement uses '+'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="368" />
+      <source>logging statement uses f-string</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="371" />
+      <source>logging statement uses 'warn' instead of 'warning'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="374" />
+      <source>expected these __future__ imports: {0}; but only got: {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="378" />
+      <source>expected these __future__ imports: {0}; but got none</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="381" />
+      <source>gettext import with alias _ found: {0}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="384" />
+      <source>print statement found</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="385" />
+      <source>one element tuple found</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="391" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="388" />
+      <source>mutable default argument of type {0}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="394" />
+      <source>mutable default argument of function call '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="397" />
+      <source>None should not be added at any return if function has no return value except None</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="402" />
+      <source>an explicit value at every return should be added if function has a return value except None</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="407" />
+      <source>an explicit return at the end of the function should be added if it has a return value except None</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="412" />
       <source>a value should not be assigned to a variable if it will be used as a return value only</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="364" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="417" />
       <source>prefer implied line continuation inside parentheses, brackets and braces as opposed to a backslash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="369" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="422" />
       <source>commented code lines should be removed</source>
       <translation type="unfinished" />
     </message>
@@ -52150,58 +52217,63 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="535" />
-      <location filename="../PipInterface/Pip.py" line="503" />
-      <location filename="../PipInterface/Pip.py" line="494" />
+      <location filename="../PipInterface/Pip.py" line="493" />
+      <source>Install Project</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/Pip.py" line="556" />
+      <location filename="../PipInterface/Pip.py" line="524" />
+      <location filename="../PipInterface/Pip.py" line="515" />
       <source>Uninstall Packages</source>
       <translation type="unfinished">卸载包</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="536" />
-      <location filename="../PipInterface/Pip.py" line="495" />
+      <location filename="../PipInterface/Pip.py" line="557" />
+      <location filename="../PipInterface/Pip.py" line="516" />
       <source>Do you really want to uninstall these packages?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="545" />
+      <location filename="../PipInterface/Pip.py" line="566" />
       <source>Uninstall Packages from Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="884" />
+      <location filename="../PipInterface/Pip.py" line="905" />
       <source>Cache Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="910" />
-      <location filename="../PipInterface/Pip.py" line="901" />
+      <location filename="../PipInterface/Pip.py" line="931" />
+      <location filename="../PipInterface/Pip.py" line="922" />
       <source>List Cached Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="902" />
+      <location filename="../PipInterface/Pip.py" line="923" />
       <source>Enter a file pattern (empty for all):</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="934" />
-      <location filename="../PipInterface/Pip.py" line="927" />
+      <location filename="../PipInterface/Pip.py" line="955" />
+      <location filename="../PipInterface/Pip.py" line="948" />
       <source>Remove Cached Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="928" />
+      <location filename="../PipInterface/Pip.py" line="949" />
       <source>Enter a file pattern:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="959" />
-      <location filename="../PipInterface/Pip.py" line="951" />
+      <location filename="../PipInterface/Pip.py" line="980" />
+      <location filename="../PipInterface/Pip.py" line="972" />
       <source>Purge Cache</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="952" />
+      <location filename="../PipInterface/Pip.py" line="973" />
       <source>Do you really want to purge the pip cache? All files need to be downloaded again.</source>
       <translation type="unfinished" />
     </message>
@@ -53805,27 +53877,27 @@
       <translation>模块加载失败。错误:{0}</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginManager.py" line="634" />
+      <location filename="../PluginManager/PluginManager.py" line="637" />
       <source>Incompatible plugin activation method.</source>
       <translation>插件激活方法不兼容。</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginManager.py" line="1213" />
+      <location filename="../PluginManager/PluginManager.py" line="1220" />
       <source>Plugin Manager Error</source>
       <translation>插件管理错误</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginManager.py" line="1214" />
+      <location filename="../PluginManager/PluginManager.py" line="1221" />
       <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;插件下载目录 &lt;b&gt;{0}&lt;/b&gt; 无法创建。请使用配置对话框进行配置。&lt;/p&gt;&lt;p&gt;原因:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginManager.py" line="1299" />
+      <location filename="../PluginManager/PluginManager.py" line="1306" />
       <source>Error downloading file</source>
       <translation>下载文件出错</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginManager.py" line="1300" />
+      <location filename="../PluginManager/PluginManager.py" line="1307" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;无法从 {0} 下载指定文件。&lt;/p&gt;&lt;p&gt;错误:{1}&lt;/p&gt;</translation>
     </message>
@@ -54665,18 +54737,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1649" />
+      <location filename="../Preferences/__init__.py" line="1651" />
       <source>Export Preferences</source>
       <translation>导出首选项</translation>
     </message>
     <message>
+      <location filename="../Preferences/__init__.py" line="1680" />
+      <location filename="../Preferences/__init__.py" line="1653" />
+      <source>Properties File (*.ini);;All Files (*)</source>
+      <translation>属性文件 (*.ini);;所有文件 (*)</translation>
+    </message>
+    <message>
       <location filename="../Preferences/__init__.py" line="1678" />
-      <location filename="../Preferences/__init__.py" line="1651" />
-      <source>Properties File (*.ini);;All Files (*)</source>
-      <translation>属性文件 (*.ini);;所有文件 (*)</translation>
-    </message>
-    <message>
-      <location filename="../Preferences/__init__.py" line="1676" />
       <source>Import Preferences</source>
       <translation>导入首选项</translation>
     </message>
@@ -55254,1447 +55326,1514 @@
   <context>
     <name>Project</name>
     <message>
-      <location filename="../Project/Project.py" line="201" />
+      <location filename="../Project/Project.py" line="202" />
       <source>Python3 Files (*.py *.py3);;Python3 GUI Files (*.pyw *.pyw3);;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="297" />
-      <source>PyQt5 GUI</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="298" />
-      <source>PyQt5 Console</source>
+      <source>PyQt5 GUI</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="299" />
-      <source>PyQt6 GUI</source>
+      <source>PyQt5 Console</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="300" />
-      <source>PyQt6 Console</source>
+      <source>PyQt6 GUI</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="301" />
-      <source>Eric7 Plugin</source>
+      <source>PyQt6 Console</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="302" />
-      <source>Console</source>
-      <translation>控制台程序</translation>
+      <source>Eric7 Plugin</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="303" />
+      <source>Console</source>
+      <translation>控制台程序</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="304" />
       <source>Other</source>
       <translation>其它</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="322" />
-      <source>PySide2 GUI</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="323" />
+      <source>PySide2 GUI</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="324" />
       <source>PySide2 Console</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="327" />
-      <source>PySide6 GUI</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="328" />
+      <source>PySide6 GUI</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="329" />
       <source>PySide6 Console</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="416" />
-      <location filename="../Project/Project.py" line="404" />
-      <location filename="../Project/Project.py" line="393" />
-      <source>Registering Project Type</source>
-      <translation>注册项目类型</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="394" />
-      <source>&lt;p&gt;The Programming Language &lt;b&gt;{0}&lt;/b&gt; is not supported (project type: {1}).&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="405" />
-      <source>&lt;p&gt;The Project type &lt;b&gt;{0}&lt;/b&gt; is already registered with Programming Language &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="417" />
+      <location filename="../Project/Project.py" line="405" />
+      <location filename="../Project/Project.py" line="394" />
+      <source>Registering Project Type</source>
+      <translation>注册项目类型</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="395" />
+      <source>&lt;p&gt;The Programming Language &lt;b&gt;{0}&lt;/b&gt; is not supported (project type: {1}).&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="406" />
+      <source>&lt;p&gt;The Project type &lt;b&gt;{0}&lt;/b&gt; is already registered with Programming Language &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="418" />
       <source>&lt;p&gt;The Project type &lt;b&gt;{0}&lt;/b&gt; is already registered.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="885" />
+      <location filename="../Project/Project.py" line="893" />
       <source>Read Project File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="886" />
+      <location filename="../Project/Project.py" line="894" />
       <source>&lt;p&gt;The project file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1014" />
+      <location filename="../Project/Project.py" line="1022" />
       <source>Read User Project Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1015" />
+      <location filename="../Project/Project.py" line="1023" />
       <source>&lt;p&gt;The user specific project properties file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1062" />
+      <location filename="../Project/Project.py" line="1070" />
       <source>Read Project Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1306" />
-      <location filename="../Project/Project.py" line="1287" />
-      <location filename="../Project/Project.py" line="1239" />
-      <location filename="../Project/Project.py" line="1162" />
-      <location filename="../Project/Project.py" line="1131" />
-      <location filename="../Project/Project.py" line="1112" />
-      <location filename="../Project/Project.py" line="1063" />
+      <location filename="../Project/Project.py" line="1314" />
+      <location filename="../Project/Project.py" line="1295" />
+      <location filename="../Project/Project.py" line="1247" />
+      <location filename="../Project/Project.py" line="1170" />
+      <location filename="../Project/Project.py" line="1139" />
+      <location filename="../Project/Project.py" line="1120" />
+      <location filename="../Project/Project.py" line="1071" />
       <source>Please save the project first.</source>
       <translation>请先保存项目。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1091" />
+      <location filename="../Project/Project.py" line="1099" />
       <source>Read project session</source>
       <translation>读取项目会话</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1092" />
+      <location filename="../Project/Project.py" line="1100" />
       <source>&lt;p&gt;The project session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1111" />
+      <location filename="../Project/Project.py" line="1119" />
       <source>Save Project Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1147" />
-      <location filename="../Project/Project.py" line="1130" />
+      <location filename="../Project/Project.py" line="1155" />
+      <location filename="../Project/Project.py" line="1138" />
       <source>Delete Project Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1148" />
+      <location filename="../Project/Project.py" line="1156" />
       <source>&lt;p&gt;The project session file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1185" />
-      <location filename="../Project/Project.py" line="1161" />
+      <location filename="../Project/Project.py" line="1193" />
+      <location filename="../Project/Project.py" line="1169" />
       <source>Read Tasks</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1186" />
+      <location filename="../Project/Project.py" line="1194" />
       <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished">&lt;p&gt;任务文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1267" />
-      <location filename="../Project/Project.py" line="1238" />
+      <location filename="../Project/Project.py" line="1275" />
+      <location filename="../Project/Project.py" line="1246" />
       <source>Read Debugger Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1268" />
+      <location filename="../Project/Project.py" line="1276" />
       <source>&lt;p&gt;The project debugger properties file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1286" />
+      <location filename="../Project/Project.py" line="1294" />
       <source>Save Debugger Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1322" />
-      <location filename="../Project/Project.py" line="1305" />
+      <location filename="../Project/Project.py" line="1330" />
+      <location filename="../Project/Project.py" line="1313" />
       <source>Delete Debugger Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1323" />
+      <location filename="../Project/Project.py" line="1331" />
       <source>&lt;p&gt;The project debugger properties file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1481" />
+      <location filename="../Project/Project.py" line="1489" />
       <source>Add Language</source>
       <translation>添加语言</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1482" />
+      <location filename="../Project/Project.py" line="1490" />
       <source>You have to specify a translation pattern first.</source>
       <translation>必须先指定一个翻译样式。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1618" />
-      <location filename="../Project/Project.py" line="1593" />
+      <location filename="../Project/Project.py" line="1626" />
+      <location filename="../Project/Project.py" line="1601" />
       <source>Delete translation</source>
       <translation>删除翻译</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1619" />
-      <location filename="../Project/Project.py" line="1594" />
+      <location filename="../Project/Project.py" line="1627" />
+      <location filename="../Project/Project.py" line="1602" />
       <source>&lt;p&gt;The selected translation file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1778" />
-      <location filename="../Project/Project.py" line="1765" />
-      <location filename="../Project/Project.py" line="1751" />
+      <location filename="../Project/Project.py" line="1786" />
+      <location filename="../Project/Project.py" line="1773" />
+      <location filename="../Project/Project.py" line="1759" />
       <source>Add file</source>
       <translation>添加文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1844" />
-      <location filename="../Project/Project.py" line="1752" />
+      <location filename="../Project/Project.py" line="1852" />
+      <location filename="../Project/Project.py" line="1760" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;&lt;p&gt;Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1766" />
+      <location filename="../Project/Project.py" line="1774" />
       <source>&lt;p&gt;The selected file &lt;b&gt;{0}&lt;/b&gt; could not be added to &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {2}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1915" />
-      <location filename="../Project/Project.py" line="1779" />
+      <location filename="../Project/Project.py" line="1923" />
+      <location filename="../Project/Project.py" line="1787" />
       <source>The target directory must not be empty.</source>
       <translation>目标文件夹不能为空。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1926" />
-      <location filename="../Project/Project.py" line="1914" />
-      <location filename="../Project/Project.py" line="1843" />
-      <location filename="../Project/Project.py" line="1824" />
-      <location filename="../Project/Project.py" line="1810" />
+      <location filename="../Project/Project.py" line="1934" />
+      <location filename="../Project/Project.py" line="1922" />
+      <location filename="../Project/Project.py" line="1851" />
+      <location filename="../Project/Project.py" line="1832" />
+      <location filename="../Project/Project.py" line="1818" />
       <source>Add directory</source>
       <translation>添加文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1811" />
+      <location filename="../Project/Project.py" line="1819" />
       <source>&lt;p&gt;The source directory doesn't contain any files belonging to the selected category.&lt;/p&gt;</source>
       <translation>&lt;p&gt;源文件夹不包含任何属于所选类别的文件。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1825" />
+      <location filename="../Project/Project.py" line="1833" />
       <source>&lt;p&gt;The target directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="1927" />
+      <location filename="../Project/Project.py" line="1935" />
       <source>The source directory must not be empty.</source>
       <translation>源文件夹不能为空。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2064" />
+      <location filename="../Project/Project.py" line="2072" />
       <source>Rename file</source>
       <translation>重命名文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2091" />
-      <location filename="../Project/Project.py" line="2076" />
+      <location filename="../Project/Project.py" line="2099" />
+      <location filename="../Project/Project.py" line="2084" />
       <source>Rename File</source>
       <translation>重命名文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3286" />
-      <location filename="../Project/Project.py" line="2077" />
+      <location filename="../Project/Project.py" line="3316" />
+      <location filename="../Project/Project.py" line="2085" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished">&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 已经存在。是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2092" />
+      <location filename="../Project/Project.py" line="2100" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be renamed.&lt;br /&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2383" />
+      <location filename="../Project/Project.py" line="2391" />
       <source>Delete file</source>
       <translation>删除文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2384" />
+      <location filename="../Project/Project.py" line="2392" />
       <source>&lt;p&gt;The selected file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2415" />
+      <location filename="../Project/Project.py" line="2423" />
       <source>Delete directory</source>
       <translation>删除文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2416" />
+      <location filename="../Project/Project.py" line="2424" />
       <source>&lt;p&gt;The selected directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2511" />
+      <location filename="../Project/Project.py" line="2519" />
       <source>Create project directory</source>
       <translation>创建项目文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2512" />
+      <location filename="../Project/Project.py" line="2520" />
       <source>&lt;p&gt;The project directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3109" />
-      <location filename="../Project/Project.py" line="2573" />
+      <location filename="../Project/Project.py" line="3124" />
+      <location filename="../Project/Project.py" line="2581" />
       <source>Create project management directory</source>
       <translation>创建项目管理目录</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3110" />
-      <location filename="../Project/Project.py" line="2574" />
+      <location filename="../Project/Project.py" line="3125" />
+      <location filename="../Project/Project.py" line="2582" />
       <source>&lt;p&gt;The project directory &lt;b&gt;{0}&lt;/b&gt; is not writable.&lt;/p&gt;</source>
       <translation>&lt;p&gt;项目目录 &lt;b&gt;{0}&lt;/b&gt; 不可写。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2594" />
+      <location filename="../Project/Project.py" line="2602" />
       <source>Create main script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2595" />
+      <location filename="../Project/Project.py" line="2603" />
       <source>&lt;p&gt;The mainscript &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2918" />
-      <location filename="../Project/Project.py" line="2619" />
+      <location filename="../Project/Project.py" line="2930" />
+      <location filename="../Project/Project.py" line="2627" />
       <source>Create Makefile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2919" />
-      <location filename="../Project/Project.py" line="2620" />
+      <location filename="../Project/Project.py" line="2931" />
+      <location filename="../Project/Project.py" line="2628" />
       <source>&lt;p&gt;The makefile &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3138" />
-      <location filename="../Project/Project.py" line="2762" />
-      <location filename="../Project/Project.py" line="2733" />
-      <location filename="../Project/Project.py" line="2685" />
-      <location filename="../Project/Project.py" line="2660" />
-      <location filename="../Project/Project.py" line="2630" />
+      <location filename="../Project/Project.py" line="3153" />
+      <location filename="../Project/Project.py" line="2770" />
+      <location filename="../Project/Project.py" line="2741" />
+      <location filename="../Project/Project.py" line="2693" />
+      <location filename="../Project/Project.py" line="2668" />
+      <location filename="../Project/Project.py" line="2638" />
       <source>New Project</source>
       <translation>新建项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2631" />
+      <location filename="../Project/Project.py" line="2639" />
       <source>Add existing files to the project?</source>
       <translation>是否将已有文件添加到项目中?</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3139" />
-      <location filename="../Project/Project.py" line="2661" />
+      <location filename="../Project/Project.py" line="3154" />
+      <location filename="../Project/Project.py" line="2669" />
       <source>Select Version Control System</source>
       <translation>选择版本控制系统</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2763" />
-      <location filename="../Project/Project.py" line="2686" />
+      <location filename="../Project/Project.py" line="2771" />
+      <location filename="../Project/Project.py" line="2694" />
       <source>Would you like to edit the VCS command options?</source>
       <translation>是否编辑版本控制系统命令选项?</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4102" />
-      <location filename="../Project/Project.py" line="2705" />
+      <location filename="../Project/Project.py" line="4147" />
+      <location filename="../Project/Project.py" line="2713" />
       <source>New project</source>
       <translation>新建项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2706" />
+      <location filename="../Project/Project.py" line="2714" />
       <source>Shall the project file be added to the repository?</source>
       <translation>是否将项目文件添加到仓库?</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2739" />
-      <location filename="../Project/Project.py" line="2727" />
+      <location filename="../Project/Project.py" line="2747" />
+      <location filename="../Project/Project.py" line="2735" />
       <source>None</source>
       <translation>无</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2734" />
+      <location filename="../Project/Project.py" line="2742" />
       <source>Select version control system for the project</source>
       <translation>为项目选择版本控制系统</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2844" />
+      <location filename="../Project/Project.py" line="2856" />
       <source>Translation Pattern</source>
       <translation>翻译样式</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="2845" />
+      <location filename="../Project/Project.py" line="2857" />
       <source>Enter the path pattern for translation files (use '%language%' in place of the language code):</source>
       <translation>为翻译文件输入路径样式(在语言代码的相应位置使用“'%language%”):</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4122" />
-      <location filename="../Project/Project.py" line="3088" />
+      <location filename="../Project/Project.py" line="4167" />
+      <location filename="../Project/Project.py" line="3103" />
       <source>Open project</source>
       <translation>打开项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3090" />
+      <location filename="../Project/Project.py" line="3105" />
       <source>Project Files (*.epj);;XML Project Files (*.e4p)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3271" />
-      <location filename="../Project/Project.py" line="3261" />
+      <location filename="../Project/Project.py" line="3301" />
+      <location filename="../Project/Project.py" line="3291" />
       <source>Project Files (*.epj)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3269" />
+      <location filename="../Project/Project.py" line="3299" />
       <source>Save Project</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3285" />
+      <location filename="../Project/Project.py" line="3315" />
       <source>Save File</source>
       <translation>保存文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3324" />
+      <location filename="../Project/Project.py" line="3354" />
       <source>Close Project</source>
       <translation>关闭项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3325" />
+      <location filename="../Project/Project.py" line="3355" />
       <source>The current project has unsaved changes.</source>
       <translation>当前项目的更改未保存。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="3512" />
-      <location filename="../Project/Project.py" line="3478" />
+      <location filename="../Project/Project.py" line="3543" />
+      <location filename="../Project/Project.py" line="3509" />
       <source>Syntax errors detected</source>
       <translation>检测到语法错误</translation>
     </message>
     <message numerus="yes">
-      <location filename="../Project/Project.py" line="3513" />
-      <location filename="../Project/Project.py" line="3479" />
+      <location filename="../Project/Project.py" line="3544" />
+      <location filename="../Project/Project.py" line="3510" />
       <source>The project contains %n file(s) with syntax errors.</source>
       <translation>
         <numerusform>项目包含 %n 文件有语法错误。</numerusform>
       </translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4104" />
+      <location filename="../Project/Project.py" line="4149" />
       <source>&amp;New...</source>
       <translation>新建(&amp;N)…</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4110" />
+      <location filename="../Project/Project.py" line="4155" />
       <source>Generate a new project</source>
       <translation>生成新项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4112" />
+      <location filename="../Project/Project.py" line="4157" />
       <source>&lt;b&gt;New...&lt;/b&gt;&lt;p&gt;This opens a dialog for entering the info for a new project.&lt;/p&gt;</source>
       <translation>&lt;b&gt;新建…&lt;/b&gt;&lt;p&gt;打开一个对话框为新项目输入信息。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4124" />
+      <location filename="../Project/Project.py" line="4169" />
       <source>&amp;Open...</source>
       <translation>打开(&amp;O)…</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4130" />
+      <location filename="../Project/Project.py" line="4175" />
       <source>Open an existing project</source>
       <translation>打开一个已有项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4132" />
+      <location filename="../Project/Project.py" line="4177" />
       <source>&lt;b&gt;Open...&lt;/b&gt;&lt;p&gt;This opens an existing project.&lt;/p&gt;</source>
       <translation>&lt;b&gt;打开…&lt;/b&gt;&lt;p&gt;打开一个已有项目。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4138" />
+      <location filename="../Project/Project.py" line="4183" />
       <source>Close project</source>
       <translation>关闭项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4140" />
+      <location filename="../Project/Project.py" line="4185" />
       <source>&amp;Close</source>
       <translation>关闭(&amp;C)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4146" />
+      <location filename="../Project/Project.py" line="4191" />
       <source>Close the current project</source>
       <translation>关闭当前项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4148" />
+      <location filename="../Project/Project.py" line="4193" />
       <source>&lt;b&gt;Close&lt;/b&gt;&lt;p&gt;This closes the current project.&lt;/p&gt;</source>
       <translation>&lt;b&gt;关闭&lt;/b&gt;&lt;p&gt;关闭当前项目。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4154" />
+      <location filename="../Project/Project.py" line="4199" />
       <source>Save project</source>
       <translation>保存项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4430" />
-      <location filename="../Project/Project.py" line="4156" />
+      <location filename="../Project/Project.py" line="4475" />
+      <location filename="../Project/Project.py" line="4201" />
       <source>&amp;Save</source>
       <translation>保存(&amp;S)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4162" />
+      <location filename="../Project/Project.py" line="4207" />
       <source>Save the current project</source>
       <translation>保存当前项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4164" />
+      <location filename="../Project/Project.py" line="4209" />
       <source>&lt;b&gt;Save&lt;/b&gt;&lt;p&gt;This saves the current project.&lt;/p&gt;</source>
       <translation>&lt;b&gt;保存&lt;/b&gt;&lt;p&gt;保存当前项目&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4170" />
+      <location filename="../Project/Project.py" line="4215" />
       <source>Save project as</source>
       <translation>项目另存为</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4172" />
+      <location filename="../Project/Project.py" line="4217" />
       <source>Save &amp;as...</source>
       <translation>另存为(&amp;A)…</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4178" />
+      <location filename="../Project/Project.py" line="4223" />
       <source>Save the current project to a new file</source>
       <translation>将当前项目另存为一个新文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4180" />
-      <source>&lt;b&gt;Save as&lt;/b&gt;&lt;p&gt;This saves the current project to a new file.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;另存为&lt;/b&gt;&lt;p&gt;将当前项目另存为一个新文件。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4195" />
-      <source>Add files to project</source>
-      <translation>将文件添加到项目中</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4197" />
-      <source>Add &amp;files...</source>
-      <translation>添加文件(&amp;F)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4203" />
-      <source>Add files to the current project</source>
-      <translation>将文件添加到当前项目中</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4205" />
-      <source>&lt;b&gt;Add files...&lt;/b&gt;&lt;p&gt;This opens a dialog for adding files to the current project. The place to add is determined by the file extension.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;添加文件…&lt;/b&gt;&lt;p&gt;打开一个对话框为当前项目添加文件。添加的位置由文件扩展名决定。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4216" />
-      <source>Add directory to project</source>
-      <translation>将文件夹添加到项目中</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4218" />
-      <source>Add directory...</source>
-      <translation>添加文件夹…</translation>
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="4225" />
-      <source>Add a directory to the current project</source>
-      <translation>为当前工程添加文件夹</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4228" />
-      <source>&lt;b&gt;Add directory...&lt;/b&gt;&lt;p&gt;This opens a dialog for adding a directory to the current project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;添加文件夹…&lt;/b&gt;&lt;p&gt;打开一个对话框将文件夹添加到当前项目中。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4238" />
-      <source>Add translation to project</source>
-      <translation>将翻译添加到项目中</translation>
+      <source>&lt;b&gt;Save as&lt;/b&gt;&lt;p&gt;This saves the current project to a new file.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;另存为&lt;/b&gt;&lt;p&gt;将当前项目另存为一个新文件。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4240" />
-      <source>Add &amp;translation...</source>
-      <translation>添加翻译(&amp;T)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4247" />
-      <source>Add a translation to the current project</source>
-      <translation>将翻译添加到当前项目中</translation>
+      <source>Add files to project</source>
+      <translation>将文件添加到项目中</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4242" />
+      <source>Add &amp;files...</source>
+      <translation>添加文件(&amp;F)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4248" />
+      <source>Add files to the current project</source>
+      <translation>将文件添加到当前项目中</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4250" />
-      <source>&lt;b&gt;Add translation...&lt;/b&gt;&lt;p&gt;This opens a dialog for add a translation to the current project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;添加翻译…&lt;/b&gt;&lt;p&gt;打开一个对话框将翻译添加到当前项目中。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4260" />
-      <source>Search new files</source>
-      <translation>搜索新文件</translation>
+      <source>&lt;b&gt;Add files...&lt;/b&gt;&lt;p&gt;This opens a dialog for adding files to the current project. The place to add is determined by the file extension.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;添加文件…&lt;/b&gt;&lt;p&gt;打开一个对话框为当前项目添加文件。添加的位置由文件扩展名决定。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4261" />
-      <source>Searc&amp;h new files...</source>
-      <translation>搜索新文件(&amp;H)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4267" />
-      <source>Search new files in the project directory.</source>
-      <translation>在项目文件夹中搜索新文件。</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4269" />
-      <source>&lt;b&gt;Search new files...&lt;/b&gt;&lt;p&gt;This searches for new files (sources, *.ui, *.idl, *.proto) in the project directory and registered subdirectories.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4280" />
-      <source>Search Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4281" />
-      <source>Search Project File...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4282" />
-      <source>Alt+Ctrl+P</source>
-      <comment>Project|Search Project File</comment>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4287" />
-      <source>Search for a file in the project list of files.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4289" />
-      <source>&lt;b&gt;Search Project File&lt;/b&gt;&lt;p&gt;This searches for a file in the project list of files.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4298" />
-      <source>Project properties</source>
-      <translation>项目属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4300" />
-      <source>&amp;Properties...</source>
-      <translation>属性(&amp;P)…</translation>
+      <source>Add directory to project</source>
+      <translation>将文件夹添加到项目中</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4263" />
+      <source>Add directory...</source>
+      <translation>添加文件夹…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4270" />
+      <source>Add a directory to the current project</source>
+      <translation>为当前工程添加文件夹</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4273" />
+      <source>&lt;b&gt;Add directory...&lt;/b&gt;&lt;p&gt;This opens a dialog for adding a directory to the current project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;添加文件夹…&lt;/b&gt;&lt;p&gt;打开一个对话框将文件夹添加到当前项目中。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4283" />
+      <source>Add translation to project</source>
+      <translation>将翻译添加到项目中</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4285" />
+      <source>Add &amp;translation...</source>
+      <translation>添加翻译(&amp;T)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4292" />
+      <source>Add a translation to the current project</source>
+      <translation>将翻译添加到当前项目中</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4295" />
+      <source>&lt;b&gt;Add translation...&lt;/b&gt;&lt;p&gt;This opens a dialog for add a translation to the current project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;添加翻译…&lt;/b&gt;&lt;p&gt;打开一个对话框将翻译添加到当前项目中。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4305" />
+      <source>Search new files</source>
+      <translation>搜索新文件</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4306" />
-      <source>Show the project properties</source>
-      <translation>显示项目属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4308" />
-      <source>&lt;b&gt;Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the project properties.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;属性…&lt;/b&gt;&lt;p&gt;显示一个对话框可编辑项目属性。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4317" />
-      <source>User project properties</source>
-      <translation>用户项目属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4319" />
-      <source>&amp;User Properties...</source>
-      <translation>用户属性(&amp;U)…</translation>
+      <source>Searc&amp;h new files...</source>
+      <translation>搜索新文件(&amp;H)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4312" />
+      <source>Search new files in the project directory.</source>
+      <translation>在项目文件夹中搜索新文件。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4314" />
+      <source>&lt;b&gt;Search new files...&lt;/b&gt;&lt;p&gt;This searches for new files (sources, *.ui, *.idl, *.proto) in the project directory and registered subdirectories.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4325" />
+      <source>Search Project File</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="4326" />
-      <source>Show the user specific project properties</source>
-      <translation>显示用户指定的项目属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4329" />
-      <source>&lt;b&gt;User Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the user specific project properties.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;用户属性…&lt;/b&gt;&lt;p&gt;显示一个对话框可编辑用户指定的项目属性。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4339" />
-      <source>Filetype Associations</source>
-      <translation>文件类型关联</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4340" />
-      <source>Filetype Associations...</source>
-      <translation>文件类型关联…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4347" />
-      <source>Show the project file type associations</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4350" />
-      <source>&lt;b&gt;Filetype Associations...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the file type associations of the project. These associations determine the type (source, form, interface, protocol or others) with a filename pattern. They are used when adding a file to the project and when performing a search for new files.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4363" />
-      <source>Lexer Associations</source>
-      <translation type="unfinished" />
+      <source>Search Project File...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4327" />
+      <source>Alt+Ctrl+P</source>
+      <comment>Project|Search Project File</comment>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4332" />
+      <source>Search for a file in the project list of files.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4334" />
+      <source>&lt;b&gt;Search Project File&lt;/b&gt;&lt;p&gt;This searches for a file in the project list of files.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4343" />
+      <source>Project properties</source>
+      <translation>项目属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4345" />
+      <source>&amp;Properties...</source>
+      <translation>属性(&amp;P)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4351" />
+      <source>Show the project properties</source>
+      <translation>显示项目属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4353" />
+      <source>&lt;b&gt;Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the project properties.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;属性…&lt;/b&gt;&lt;p&gt;显示一个对话框可编辑项目属性。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4362" />
+      <source>User project properties</source>
+      <translation>用户项目属性</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4364" />
-      <source>Lexer Associations...</source>
-      <translation type="unfinished" />
+      <source>&amp;User Properties...</source>
+      <translation>用户属性(&amp;U)…</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4371" />
-      <source>Show the project lexer associations (overriding defaults)</source>
-      <translation type="unfinished" />
+      <source>Show the user specific project properties</source>
+      <translation>显示用户指定的项目属性</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4374" />
-      <source>&lt;b&gt;Lexer Associations...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the lexer associations of the project. These associations override the global lexer associations. Lexers are used to highlight the editor text.&lt;/p&gt;</source>
-      <translation type="unfinished" />
+      <source>&lt;b&gt;User Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the user specific project properties.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;用户属性…&lt;/b&gt;&lt;p&gt;显示一个对话框可编辑用户指定的项目属性。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4384" />
+      <source>Filetype Associations</source>
+      <translation>文件类型关联</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4385" />
+      <source>Filetype Associations...</source>
+      <translation>文件类型关联…</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4392" />
+      <source>Show the project file type associations</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4395" />
+      <source>&lt;b&gt;Filetype Associations...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the file type associations of the project. These associations determine the type (source, form, interface, protocol or others) with a filename pattern. They are used when adding a file to the project and when performing a search for new files.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4408" />
+      <source>Lexer Associations</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4409" />
+      <source>Lexer Associations...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4416" />
+      <source>Show the project lexer associations (overriding defaults)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4419" />
+      <source>&lt;b&gt;Lexer Associations...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit the lexer associations of the project. These associations override the global lexer associations. Lexers are used to highlight the editor text.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4437" />
       <source>Debugger Properties</source>
       <translation>调试器属性</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4393" />
-      <source>Debugger &amp;Properties...</source>
-      <translation>调试器属性(&amp;P)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4399" />
-      <source>Show the debugger properties</source>
-      <translation>显示调试器属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4401" />
-      <source>&lt;b&gt;Debugger Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit project specific debugger settings.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;调试器属性…&lt;/b&gt;&lt;p&gt;显示一个对话框以编辑项目指定的调试器设定。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4411" />
-      <source>Load</source>
-      <translation>载入</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4412" />
-      <source>&amp;Load</source>
-      <translation>载入(&amp;L)</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4418" />
-      <source>Load the debugger properties</source>
-      <translation>载入调试器属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4420" />
-      <source>&lt;b&gt;Load Debugger Properties&lt;/b&gt;&lt;p&gt;This loads the project specific debugger settings.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;载入调试器属性&lt;/b&gt;&lt;p&gt;载入项目指定的调试器设定。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4429" />
-      <source>Save</source>
-      <translation>保存</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4436" />
-      <source>Save the debugger properties</source>
-      <translation>保存调试器属性</translation>
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="4438" />
-      <source>&lt;b&gt;Save Debugger Properties&lt;/b&gt;&lt;p&gt;This saves the project specific debugger settings.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;保存调试器属性&lt;/b&gt;&lt;p&gt;保存项目指定的调试器设置。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4447" />
-      <source>Delete</source>
-      <translation>删除</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4448" />
-      <source>&amp;Delete</source>
-      <translation>删除(&amp;D)</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4454" />
-      <source>Delete the debugger properties</source>
-      <translation>删除调试器属性</translation>
+      <source>Debugger &amp;Properties...</source>
+      <translation>调试器属性(&amp;P)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4444" />
+      <source>Show the debugger properties</source>
+      <translation>显示调试器属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4446" />
+      <source>&lt;b&gt;Debugger Properties...&lt;/b&gt;&lt;p&gt;This shows a dialog to edit project specific debugger settings.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;调试器属性…&lt;/b&gt;&lt;p&gt;显示一个对话框以编辑项目指定的调试器设定。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4456" />
-      <source>&lt;b&gt;Delete Debugger Properties&lt;/b&gt;&lt;p&gt;This deletes the file containing the project specific debugger settings.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;删除调试器属性&lt;/b&gt;&lt;p&gt;删除包含项目指定调试器设置的文件。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4466" />
-      <source>Reset</source>
-      <translation>重置</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4467" />
-      <source>&amp;Reset</source>
-      <translation>重置(&amp;R)</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4473" />
-      <source>Reset the debugger properties</source>
-      <translation>重围调试器属性</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4475" />
-      <source>&lt;b&gt;Reset Debugger Properties&lt;/b&gt;&lt;p&gt;This resets the project specific debugger settings.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;重置调试器属性&lt;/b&gt;&lt;p&gt;重置项目指定的调试器设置。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4491" />
-      <location filename="../Project/Project.py" line="4490" />
-      <source>Load session</source>
-      <translation>载入会话</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4497" />
-      <source>Load the projects session file.</source>
-      <translation>载入项目会话文件。</translation>
+      <source>Load</source>
+      <translation>载入</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4457" />
+      <source>&amp;Load</source>
+      <translation>载入(&amp;L)</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4463" />
+      <source>Load the debugger properties</source>
+      <translation>载入调试器属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4465" />
+      <source>&lt;b&gt;Load Debugger Properties&lt;/b&gt;&lt;p&gt;This loads the project specific debugger settings.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;载入调试器属性&lt;/b&gt;&lt;p&gt;载入项目指定的调试器设定。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4474" />
+      <source>Save</source>
+      <translation>保存</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4481" />
+      <source>Save the debugger properties</source>
+      <translation>保存调试器属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4483" />
+      <source>&lt;b&gt;Save Debugger Properties&lt;/b&gt;&lt;p&gt;This saves the project specific debugger settings.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;保存调试器属性&lt;/b&gt;&lt;p&gt;保存项目指定的调试器设置。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4492" />
+      <source>Delete</source>
+      <translation>删除</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4493" />
+      <source>&amp;Delete</source>
+      <translation>删除(&amp;D)</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4499" />
+      <source>Delete the debugger properties</source>
+      <translation>删除调试器属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4501" />
+      <source>&lt;b&gt;Delete Debugger Properties&lt;/b&gt;&lt;p&gt;This deletes the file containing the project specific debugger settings.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;删除调试器属性&lt;/b&gt;&lt;p&gt;删除包含项目指定调试器设置的文件。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4511" />
+      <source>Reset</source>
+      <translation>重置</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4512" />
+      <source>&amp;Reset</source>
+      <translation>重置(&amp;R)</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4518" />
+      <source>Reset the debugger properties</source>
+      <translation>重围调试器属性</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4520" />
+      <source>&lt;b&gt;Reset Debugger Properties&lt;/b&gt;&lt;p&gt;This resets the project specific debugger settings.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;重置调试器属性&lt;/b&gt;&lt;p&gt;重置项目指定的调试器设置。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4536" />
+      <location filename="../Project/Project.py" line="4535" />
+      <source>Load session</source>
+      <translation>载入会话</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4542" />
+      <source>Load the projects session file.</source>
+      <translation>载入项目会话文件。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4544" />
       <source>&lt;b&gt;Load session&lt;/b&gt;&lt;p&gt;This loads the projects session file. The session consists of the following data.&lt;br&gt;- all open source files&lt;br&gt;- all breakpoint&lt;br&gt;- the commandline arguments&lt;br&gt;- the working directory&lt;br&gt;- the exception reporting flag&lt;/p&gt;</source>
       <translation>&lt;b&gt;载入会话&lt;/b&gt;&lt;p&gt;载入项目会话文件。会话包括如下数据。&lt;br&gt;- 所有打开的源文件&lt;br&gt;- 所有断点&lt;br&gt;- 命令行参数&lt;br&gt;- 工作文件夹&lt;br&gt;- 异常报告标志&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4515" />
-      <location filename="../Project/Project.py" line="4514" />
+      <location filename="../Project/Project.py" line="4560" />
+      <location filename="../Project/Project.py" line="4559" />
       <source>Save session</source>
       <translation>保存会话</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4521" />
+      <location filename="../Project/Project.py" line="4566" />
       <source>Save the projects session file.</source>
       <translation>保存项目会话文件。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4523" />
+      <location filename="../Project/Project.py" line="4568" />
       <source>&lt;b&gt;Save session&lt;/b&gt;&lt;p&gt;This saves the projects session file. The session consists of the following data.&lt;br&gt;- all open source files&lt;br&gt;- all breakpoint&lt;br&gt;- the commandline arguments&lt;br&gt;- the working directory&lt;br&gt;- the exception reporting flag&lt;/p&gt;</source>
       <translation>&lt;b&gt;保存会话&lt;/b&gt;&lt;p&gt;保存项目会话文件。会话包括如下数据。&lt;br&gt;- 所有打开的源文件&lt;br&gt;- 所有断点&lt;br&gt;- 命令行参数&lt;br&gt;- 工作文件夹&lt;br&gt;- 异常报告标志&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4539" />
-      <location filename="../Project/Project.py" line="4538" />
-      <source>Delete session</source>
-      <translation>删除会话</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4545" />
-      <source>Delete the projects session file.</source>
-      <translation>删除项目会话文件。</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4547" />
-      <source>&lt;b&gt;Delete session&lt;/b&gt;&lt;p&gt;This deletes the projects session file&lt;/p&gt;</source>
-      <translation>&lt;b&gt;删除会话&lt;/b&gt;&lt;p&gt;删除项目会话文件&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4562" />
-      <source>Code Metrics</source>
-      <translation>代码度量</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4563" />
-      <source>&amp;Code Metrics...</source>
-      <translation>代码度量(&amp;C)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4570" />
-      <source>Show some code metrics for the project.</source>
-      <translation>显示项目的部分代码度量。</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4573" />
-      <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This shows some code metrics for all Python files in the project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;代码度量…&lt;/b&gt;&lt;p&gt;显示项目中所有 Python 文件的部分代码度量。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4583" />
-      <source>Python Code Coverage</source>
-      <translation>Python 代码覆盖率</translation>
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="4584" />
-      <source>Code Co&amp;verage...</source>
-      <translation>代码覆盖率(&amp;v)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4591" />
-      <source>Show code coverage information for the project.</source>
-      <translation>显示项目的代码覆盖率信息。</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4594" />
-      <source>&lt;b&gt;Code Coverage...&lt;/b&gt;&lt;p&gt;This shows the code coverage information for all Python files in the project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;代码覆盖率…&lt;/b&gt;&lt;p&gt;显示项目中所有 Python 文件的代码覆盖率。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5684" />
-      <location filename="../Project/Project.py" line="5671" />
-      <location filename="../Project/Project.py" line="4604" />
-      <source>Profile Data</source>
-      <translation>剖析数据</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4605" />
-      <source>&amp;Profile Data...</source>
-      <translation>剖析数据(&amp;P)…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4612" />
-      <source>Show profiling data for the project.</source>
-      <translation>显示项目的剖析数据。</translation>
+      <location filename="../Project/Project.py" line="4583" />
+      <source>Delete session</source>
+      <translation>删除会话</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4590" />
+      <source>Delete the projects session file.</source>
+      <translation>删除项目会话文件。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4592" />
+      <source>&lt;b&gt;Delete session&lt;/b&gt;&lt;p&gt;This deletes the projects session file&lt;/p&gt;</source>
+      <translation>&lt;b&gt;删除会话&lt;/b&gt;&lt;p&gt;删除项目会话文件&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4607" />
+      <source>Code Metrics</source>
+      <translation>代码度量</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4608" />
+      <source>&amp;Code Metrics...</source>
+      <translation>代码度量(&amp;C)…</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4615" />
-      <source>&lt;b&gt;Profile Data...&lt;/b&gt;&lt;p&gt;This shows the profiling data for the project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;剖析数据…&lt;/b&gt;&lt;p&gt;显示项目的剖析数据。&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5736" />
-      <location filename="../Project/Project.py" line="4630" />
-      <source>Application Diagram</source>
-      <translation>应用程序图</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4631" />
-      <source>&amp;Application Diagram...</source>
-      <translation>应用程序(&amp;A)图…</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4638" />
-      <source>Show a diagram of the project.</source>
-      <translation>显示项目图表。</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4641" />
-      <source>&lt;b&gt;Application Diagram...&lt;/b&gt;&lt;p&gt;This shows a diagram of the project.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;应用程序图…&lt;/b&gt;&lt;p&gt;显示项目的图表。&lt;/p&gt;</translation>
+      <source>Show some code metrics for the project.</source>
+      <translation>显示项目的部分代码度量。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4618" />
+      <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This shows some code metrics for all Python files in the project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;代码度量…&lt;/b&gt;&lt;p&gt;显示项目中所有 Python 文件的部分代码度量。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4628" />
+      <source>Python Code Coverage</source>
+      <translation>Python 代码覆盖率</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4629" />
+      <source>Code Co&amp;verage...</source>
+      <translation>代码覆盖率(&amp;v)…</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4636" />
+      <source>Show code coverage information for the project.</source>
+      <translation>显示项目的代码覆盖率信息。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4639" />
+      <source>&lt;b&gt;Code Coverage...&lt;/b&gt;&lt;p&gt;This shows the code coverage information for all Python files in the project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;代码覆盖率…&lt;/b&gt;&lt;p&gt;显示项目中所有 Python 文件的代码覆盖率。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5811" />
+      <location filename="../Project/Project.py" line="5798" />
+      <location filename="../Project/Project.py" line="4649" />
+      <source>Profile Data</source>
+      <translation>剖析数据</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4650" />
-      <source>Load Diagram</source>
-      <translation type="unfinished">加载图表</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4651" />
-      <source>&amp;Load Diagram...</source>
-      <translation type="unfinished" />
+      <source>&amp;Profile Data...</source>
+      <translation>剖析数据(&amp;P)…</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4657" />
-      <source>Load a diagram from file.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4659" />
-      <source>&lt;b&gt;Load Diagram...&lt;/b&gt;&lt;p&gt;This loads a diagram from file.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="5931" />
-      <location filename="../Project/Project.py" line="5872" />
-      <location filename="../Project/Project.py" line="4674" />
-      <source>Create Package List</source>
-      <translation>创建程序包列表</translation>
+      <source>Show profiling data for the project.</source>
+      <translation>显示项目的剖析数据。</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4660" />
+      <source>&lt;b&gt;Profile Data...&lt;/b&gt;&lt;p&gt;This shows the profiling data for the project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;剖析数据…&lt;/b&gt;&lt;p&gt;显示项目的剖析数据。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5863" />
+      <location filename="../Project/Project.py" line="4675" />
+      <source>Application Diagram</source>
+      <translation>应用程序图</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4676" />
-      <source>Create &amp;Package List</source>
-      <translation type="unfinished">创建插件存档(&amp;A)</translation>
+      <source>&amp;Application Diagram...</source>
+      <translation>应用程序(&amp;A)图…</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4683" />
-      <source>Create an initial PKGLIST file for an eric plugin.</source>
-      <translation type="unfinished" />
+      <source>Show a diagram of the project.</source>
+      <translation>显示项目图表。</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4686" />
-      <source>&lt;b&gt;Create Package List&lt;/b&gt;&lt;p&gt;This creates an initial list of files to include in an eric plugin archive. The list is created from the project file.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="6000" />
-      <location filename="../Project/Project.py" line="4697" />
-      <source>Create Plugin Archives</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4699" />
-      <source>Create Plugin &amp;Archives</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4705" />
-      <source>Create eric plugin archive files.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4707" />
-      <source>&lt;b&gt;Create Plugin Archives&lt;/b&gt;&lt;p&gt;This creates eric plugin archive files using the list of files given in a PKGLIST* file. The archive name is built from the main script name if not designated in the package list file.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
+      <source>&lt;b&gt;Application Diagram...&lt;/b&gt;&lt;p&gt;This shows a diagram of the project.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;应用程序图…&lt;/b&gt;&lt;p&gt;显示项目的图表。&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4695" />
+      <source>Load Diagram</source>
+      <translation type="unfinished">加载图表</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4696" />
+      <source>&amp;Load Diagram...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4702" />
+      <source>Load a diagram from file.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4704" />
+      <source>&lt;b&gt;Load Diagram...&lt;/b&gt;&lt;p&gt;This loads a diagram from file.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6058" />
+      <location filename="../Project/Project.py" line="5999" />
       <location filename="../Project/Project.py" line="4719" />
-      <source>Create Plugin Archives (Snapshot)</source>
-      <translation type="unfinished" />
+      <source>Create Package List</source>
+      <translation>创建程序包列表</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4721" />
-      <source>Create Plugin Archives (&amp;Snapshot)</source>
-      <translation type="unfinished" />
+      <source>Create &amp;Package List</source>
+      <translation type="unfinished">创建插件存档(&amp;A)</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4728" />
-      <source>Create eric plugin archive files (snapshot releases).</source>
+      <source>Create an initial PKGLIST file for an eric plugin.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="4731" />
+      <source>&lt;b&gt;Create Package List&lt;/b&gt;&lt;p&gt;This creates an initial list of files to include in an eric plugin archive. The list is created from the project file.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6127" />
+      <location filename="../Project/Project.py" line="4742" />
+      <source>Create Plugin Archives</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4744" />
+      <source>Create Plugin &amp;Archives</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4750" />
+      <source>Create eric plugin archive files.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4752" />
+      <source>&lt;b&gt;Create Plugin Archives&lt;/b&gt;&lt;p&gt;This creates eric plugin archive files using the list of files given in a PKGLIST* file. The archive name is built from the main script name if not designated in the package list file.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4764" />
+      <source>Create Plugin Archives (Snapshot)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4766" />
+      <source>Create Plugin Archives (&amp;Snapshot)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4773" />
+      <source>Create eric plugin archive files (snapshot releases).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4776" />
       <source>&lt;b&gt;Create Plugin Archives (Snapshot)&lt;/b&gt;&lt;p&gt;This creates eric plugin archive files using the list of files given in the PKGLIST* file. The archive name is built from the main script name if not designated in the package list file. The version entry of the main script is modified to reflect a snapshot release.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6417" />
-      <location filename="../Project/Project.py" line="6388" />
-      <location filename="../Project/Project.py" line="6339" />
-      <location filename="../Project/Project.py" line="4750" />
+      <location filename="../Project/Project.py" line="6544" />
+      <location filename="../Project/Project.py" line="6515" />
+      <location filename="../Project/Project.py" line="6466" />
+      <location filename="../Project/Project.py" line="4795" />
       <source>Execute Make</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4751" />
+      <location filename="../Project/Project.py" line="4796" />
       <source>&amp;Execute Make</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4757" />
+      <location filename="../Project/Project.py" line="4802" />
       <source>Perform a 'make' run.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4759" />
+      <location filename="../Project/Project.py" line="4804" />
       <source>&lt;b&gt;Execute Make&lt;/b&gt;&lt;p&gt;This performs a 'make' run to rebuild the configured target.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6394" />
-      <location filename="../Project/Project.py" line="4769" />
+      <location filename="../Project/Project.py" line="6521" />
+      <location filename="../Project/Project.py" line="4814" />
       <source>Test for Changes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4770" />
+      <location filename="../Project/Project.py" line="4815" />
       <source>&amp;Test for Changes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4777" />
+      <location filename="../Project/Project.py" line="4822" />
       <source>Question 'make', if a rebuild is needed.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4780" />
+      <location filename="../Project/Project.py" line="4825" />
       <source>&lt;b&gt;Test for Changes&lt;/b&gt;&lt;p&gt;This questions 'make', if a rebuild of the configured target is necessary.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4798" />
+      <location filename="../Project/Project.py" line="4843" />
       <source>Create SBOM File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4799" />
+      <location filename="../Project/Project.py" line="4844" />
       <source>Create &amp;SBOM File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4806" />
+      <location filename="../Project/Project.py" line="4851" />
       <source>Create a SBOM file of the project dependencies.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4809" />
+      <location filename="../Project/Project.py" line="4854" />
       <source>&lt;b&gt;Create SBOM File&lt;/b&gt;&lt;p&gt;This allows the creation of a SBOM file of the project dependencies. This may be based on various input sources and will be saved as a CycloneDX SBOM file.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6572" />
-      <location filename="../Project/Project.py" line="4826" />
+      <location filename="../Project/Project.py" line="6699" />
+      <location filename="../Project/Project.py" line="4871" />
       <source>About Black</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4827" />
+      <location filename="../Project/Project.py" line="4872" />
       <source>&amp;Black</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4833" />
-      <source>Show some information about 'Black'.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4835" />
-      <source>&lt;b&gt;Black&lt;/b&gt;&lt;p&gt;This shows some information about the installed 'Black' tool.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4847" />
-      <source>Format Code</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4848" />
-      <source>&amp;Format Code</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4855" />
-      <source>Format the project sources with 'Black'.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4858" />
-      <source>&lt;b&gt;Format Code&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the formatting run and reformats the project sources using 'Black'.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4870" />
-      <source>Check Code Formatting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4871" />
-      <source>&amp;Check Code Formatting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="4878" />
+      <source>Show some information about 'Black'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4880" />
+      <source>&lt;b&gt;Black&lt;/b&gt;&lt;p&gt;This shows some information about the installed 'Black' tool.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4892" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4893" />
+      <source>&amp;Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4900" />
+      <source>Format the project sources with 'Black'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4903" />
+      <source>&lt;b&gt;Format Code&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the formatting run and reformats the project sources using 'Black'.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4915" />
+      <source>Check Code Formatting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4916" />
+      <source>&amp;Check Code Formatting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4923" />
       <source>Check, if the project sources need to be reformatted with 'Black'.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4883" />
+      <location filename="../Project/Project.py" line="4928" />
       <source>&lt;b&gt;Check Code Formatting&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the format check run and performs a check, if the project sources need to be reformatted using 'Black'.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4896" />
-      <source>Code Formatting Diff</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4897" />
-      <source>Code Formatting &amp;Diff</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4904" />
-      <source>Generate a unified diff of potential project source reformatting with 'Black'.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4910" />
-      <source>&lt;b&gt;Diff Code Formatting&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the format diff run and generates a unified diff of potential project source reformatting using 'Black'.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="4941" />
-      <source>&amp;Project</source>
-      <translation>项目(&amp;P)</translation>
+      <source>Code Formatting Diff</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="4942" />
-      <source>Open &amp;Recent Projects</source>
-      <translation>打开最近的项目</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4943" />
-      <source>Session</source>
-      <translation>会话</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4944" />
-      <source>Debugger</source>
-      <translation>调试器</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4946" />
-      <source>Project-T&amp;ools</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4947" />
-      <source>&amp;Version Control</source>
-      <translation>版本控制(&amp;V)</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4951" />
-      <source>Chec&amp;k</source>
-      <translation>检查(&amp;K)</translation>
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="4953" />
-      <source>Code &amp;Formatting</source>
+      <source>Code Formatting &amp;Diff</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4949" />
+      <source>Generate a unified diff of potential project source reformatting with 'Black'.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Project/Project.py" line="4955" />
+      <source>&lt;b&gt;Diff Code Formatting&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the format diff run and generates a unified diff of potential project source reformatting using 'Black'.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5018" />
+      <location filename="../Project/Project.py" line="4969" />
+      <location filename="../Project/Project.py" line="4968" />
+      <source>Configure</source>
+      <translation type="unfinished">配置</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4976" />
+      <source>Enter the parameters for formatting the project sources with 'Black'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4981" />
+      <source>&lt;b&gt;Configure&lt;/b&gt;&lt;p&gt;This shows a dialog to enter the parameters for formatting the project sources with 'Black'.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4997" />
+      <source>Install Project</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="4998" />
+      <source>&amp;Install Project</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5005" />
+      <source>Install the project into the embedded environment.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5008" />
+      <source>&lt;b&gt;Install Project&lt;/b&gt;&lt;p&gt;This installs the project into the embedded virtual environment in editable mode (i.e. development mode).&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5019" />
+      <source>&amp;Configure</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5026" />
+      <source>Configure the embedded environment.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5029" />
+      <source>&lt;b&gt;Configure&lt;/b&gt;&lt;p&gt;This opens a dialog to configure the embedded virtual environment of the project.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5057" />
+      <source>&amp;Project</source>
+      <translation>项目(&amp;P)</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5058" />
+      <source>Open &amp;Recent Projects</source>
+      <translation>打开最近的项目</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5059" />
+      <source>Session</source>
+      <translation>会话</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5060" />
+      <source>Debugger</source>
+      <translation>调试器</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5061" />
+      <source>Embedded Environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5063" />
+      <source>Project-T&amp;ools</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5064" />
+      <source>&amp;Version Control</source>
+      <translation>版本控制(&amp;V)</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5068" />
+      <source>Chec&amp;k</source>
+      <translation>检查(&amp;K)</translation>
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5070" />
+      <source>Code &amp;Formatting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="5072" />
       <source>Sho&amp;w</source>
       <translation>显示(&amp;W)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4956" />
+      <location filename="../Project/Project.py" line="5073" />
       <source>&amp;Diagrams</source>
       <translation>图表(&amp;D)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4957" />
+      <location filename="../Project/Project.py" line="5074" />
       <source>Pac&amp;kagers</source>
       <translation>打包程序(&amp;K)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4958" />
+      <location filename="../Project/Project.py" line="5075" />
       <source>Source &amp;Documentation</source>
       <translation>源文档(&amp;D)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4960" />
+      <location filename="../Project/Project.py" line="5077" />
       <source>Make</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="4961" />
+      <location filename="../Project/Project.py" line="5078" />
       <source>Other Tools</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5104" />
-      <location filename="../Project/Project.py" line="5101" />
+      <location filename="../Project/Project.py" line="5230" />
+      <location filename="../Project/Project.py" line="5227" />
       <source>Project</source>
       <translation>项目</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5166" />
+      <location filename="../Project/Project.py" line="5293" />
       <source>&amp;Clear</source>
       <translation>清除(&amp;C)</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5325" />
+      <location filename="../Project/Project.py" line="5452" />
       <source>Search New Files</source>
       <translation>搜索新文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5326" />
+      <location filename="../Project/Project.py" line="5453" />
       <source>There were no new files found to be added.</source>
       <translation>没有要添加的新文件。</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5477" />
-      <location filename="../Project/Project.py" line="5464" />
+      <location filename="../Project/Project.py" line="5604" />
+      <location filename="../Project/Project.py" line="5591" />
       <source>Version Control System</source>
       <translation>版本控制系统</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5465" />
+      <location filename="../Project/Project.py" line="5592" />
       <source>&lt;p&gt;The selected VCS &lt;b&gt;{0}&lt;/b&gt; could not be found. &lt;br/&gt;Reverting override.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5478" />
+      <location filename="../Project/Project.py" line="5605" />
       <source>&lt;p&gt;The selected VCS &lt;b&gt;{0}&lt;/b&gt; could not be found.&lt;br/&gt;Disabling version control.&lt;/p&gt;&lt;p&gt;{1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5626" />
+      <location filename="../Project/Project.py" line="5753" />
       <source>Coverage Data</source>
       <translation>覆盖率数据</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5672" />
-      <location filename="../Project/Project.py" line="5627" />
+      <location filename="../Project/Project.py" line="5799" />
+      <location filename="../Project/Project.py" line="5754" />
       <source>There is no main script defined for the current project. Aborting</source>
       <translation>当前项目未定义主脚本。终止</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5639" />
+      <location filename="../Project/Project.py" line="5766" />
       <source>Code Coverage</source>
       <translation>代码覆盖率</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5640" />
+      <location filename="../Project/Project.py" line="5767" />
       <source>Please select a coverage file</source>
       <translation>请选择一个覆盖率文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5685" />
+      <location filename="../Project/Project.py" line="5812" />
       <source>Please select a profile file</source>
       <translation>请选择一个剖析文件</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5737" />
+      <location filename="../Project/Project.py" line="5864" />
       <source>Include module names?</source>
       <translation>包含模块名?</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5873" />
+      <location filename="../Project/Project.py" line="6000" />
       <source>&lt;p&gt;The file &lt;b&gt;PKGLIST&lt;/b&gt; already exists.&lt;/p&gt;&lt;p&gt;Overwrite it?&lt;/p&gt;</source>
       <translation>&lt;p&gt;文件 &lt;b&gt;PKGLIST&lt;/b&gt; 已存在。&lt;/p&gt;&lt;p&gt;是否覆盖?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5932" />
+      <location filename="../Project/Project.py" line="6059" />
       <source>&lt;p&gt;The file &lt;b&gt;PKGLIST&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6221" />
-      <location filename="../Project/Project.py" line="6179" />
-      <location filename="../Project/Project.py" line="6133" />
-      <location filename="../Project/Project.py" line="6122" />
-      <location filename="../Project/Project.py" line="6104" />
-      <location filename="../Project/Project.py" line="6071" />
-      <location filename="../Project/Project.py" line="6041" />
-      <location filename="../Project/Project.py" line="6013" />
-      <location filename="../Project/Project.py" line="5983" />
-      <location filename="../Project/Project.py" line="5969" />
-      <location filename="../Project/Project.py" line="5952" />
+      <location filename="../Project/Project.py" line="6348" />
+      <location filename="../Project/Project.py" line="6306" />
+      <location filename="../Project/Project.py" line="6260" />
+      <location filename="../Project/Project.py" line="6249" />
+      <location filename="../Project/Project.py" line="6231" />
+      <location filename="../Project/Project.py" line="6198" />
+      <location filename="../Project/Project.py" line="6168" />
+      <location filename="../Project/Project.py" line="6140" />
+      <location filename="../Project/Project.py" line="6110" />
+      <location filename="../Project/Project.py" line="6096" />
+      <location filename="../Project/Project.py" line="6079" />
       <source>Create Plugin Archive</source>
       <translation>创建插件存档</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5953" />
+      <location filename="../Project/Project.py" line="6080" />
       <source>The project does not have a main script defined. Aborting...</source>
       <translation>项目未定义主脚本。终止…</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5970" />
+      <location filename="../Project/Project.py" line="6097" />
       <source>Select package lists:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5984" />
+      <location filename="../Project/Project.py" line="6111" />
       <source>&lt;p&gt;No package list files (PKGLIST*) available or selected. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5992" />
+      <location filename="../Project/Project.py" line="6119" />
       <source>Creating plugin archives...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5993" />
+      <location filename="../Project/Project.py" line="6120" />
       <source>Abort</source>
       <translation type="unfinished">终止</translation>
     </message>
     <message>
-      <location filename="../Project/Project.py" line="5996" />
-      <source>%v/%m Archives</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="6014" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="6042" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; is not ready yet.&lt;/p&gt;&lt;p&gt;Please rework it and delete the'; initial_list' line of the header.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="6072" />
-      <source>&lt;p&gt;The eric plugin archive file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Project/Project.py" line="6105" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be stored in the archive. Ignoring it.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Project/Project.py" line="6123" />
+      <source>%v/%m Archives</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6141" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6169" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; is not ready yet.&lt;/p&gt;&lt;p&gt;Please rework it and delete the'; initial_list' line of the header.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6199" />
+      <source>&lt;p&gt;The eric plugin archive file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6232" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be stored in the archive. Ignoring it.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6250" />
       <source>&lt;p&gt;The eric plugin archive files were created with some errors.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6134" />
+      <location filename="../Project/Project.py" line="6261" />
       <source>&lt;p&gt;The eric plugin archive files were created successfully.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6180" />
+      <location filename="../Project/Project.py" line="6307" />
       <source>&lt;p&gt;The plugin file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6222" />
+      <location filename="../Project/Project.py" line="6349" />
       <source>&lt;p&gt;The plugin file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt; &lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6340" />
+      <location filename="../Project/Project.py" line="6467" />
       <source>The make process did not start.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6389" />
+      <location filename="../Project/Project.py" line="6516" />
       <source>The make process crashed.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6397" />
+      <location filename="../Project/Project.py" line="6524" />
       <source>&lt;p&gt;There are changes that require the configured make target &lt;b&gt;{0}&lt;/b&gt; to be rebuilt.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6402" />
+      <location filename="../Project/Project.py" line="6529" />
       <source>&lt;p&gt;There are changes that require the default make target to be rebuilt.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6418" />
+      <location filename="../Project/Project.py" line="6545" />
       <source>The makefile contains errors.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/Project.py" line="6573" />
+      <location filename="../Project/Project.py" line="6700" />
       <source>&lt;p&gt;&lt;b&gt;Black Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Black&lt;/i&gt; is the uncompromising Python code formatter.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Project/Project.py" line="6803" />
+      <source>Python Executable</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/Project.py" line="6804" />
+      <source>Enter the Python interpreter for the virtual environment:</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ProjectBaseBrowser</name>
@@ -57526,122 +57665,130 @@
   <context>
     <name>ProjectOthersBrowser</name>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="54" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="55" />
       <source>Others</source>
       <translation>其它</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="57" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="58" />
       <source>&lt;b&gt;Project Others Browser&lt;/b&gt;&lt;p&gt;This allows to easily see all other files and directories contained in the current project. Several actions can be executed via the context menu. The entry which is registered in the project is shown in a different colour.&lt;/p&gt;</source>
       <translation>&lt;b&gt;项目其它浏览器&lt;/b&gt;&lt;p&gt;可以方便地观察当前项目中的所有其它文件和文件夹。可通过上下文菜单执行多个行为。在项目中注册过的条目将显示成其它颜色。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="75" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="76" />
       <source>Open in Hex Editor</source>
       <translation type="unfinished">在十六进制编辑器中打开</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="77" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="78" />
       <source>Open in Icon Editor</source>
       <translation>在图标编辑器中打开</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="80" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="81" />
       <source>Open in Editor</source>
       <translation type="unfinished">在编辑器中打开</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="309" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="301" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="291" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="283" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="84" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="353" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="345" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="335" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="327" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="85" />
       <source>Show Mime-Type</source>
       <translation>显示 MIME 类型</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="88" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="89" />
       <source>Rename file</source>
       <translation>重命名文件</translation>
     </message>
     <message>
+      <location filename="../Project/ProjectOthersBrowser.py" line="145" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="111" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="92" />
+      <source>Remove from project</source>
+      <translation>从项目移除</translation>
+    </message>
+    <message>
+      <location filename="../Project/ProjectOthersBrowser.py" line="148" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="115" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="94" />
+      <source>Delete</source>
+      <translation>删除</translation>
+    </message>
+    <message>
+      <location filename="../Project/ProjectOthersBrowser.py" line="132" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="119" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="97" />
+      <source>Add files...</source>
+      <translation>添加文件…</translation>
+    </message>
+    <message>
+      <location filename="../Project/ProjectOthersBrowser.py" line="133" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="120" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="98" />
+      <source>Add directory...</source>
+      <translation>添加文件夹…</translation>
+    </message>
+    <message>
+      <location filename="../Project/ProjectOthersBrowser.py" line="100" />
+      <source>Refresh</source>
+      <translation>刷新</translation>
+    </message>
+    <message>
       <location filename="../Project/ProjectOthersBrowser.py" line="122" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="91" />
-      <source>Remove from project</source>
-      <translation>从项目移除</translation>
-    </message>
-    <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="125" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="93" />
-      <source>Delete</source>
-      <translation>删除</translation>
-    </message>
-    <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="109" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="96" />
-      <source>Add files...</source>
-      <translation>添加文件…</translation>
-    </message>
-    <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="110" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="97" />
-      <source>Add directory...</source>
-      <translation>添加文件夹…</translation>
-    </message>
-    <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="99" />
-      <source>Refresh</source>
-      <translation>刷新</translation>
-    </message>
-    <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="101" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="102" />
       <source>Copy Path to Clipboard</source>
       <translation>将路径复制到剪贴板</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="128" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="112" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="103" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="151" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="135" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="124" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="104" />
       <source>Expand all directories</source>
       <translation>展开所有文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="130" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="114" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="104" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="153" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="137" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="126" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="105" />
       <source>Collapse all directories</source>
       <translation>折叠所有文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="133" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="117" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="106" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="156" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="140" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="129" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="107" />
       <source>Configure...</source>
       <translation>配置…</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="284" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="328" />
       <source>The mime type of the file could not be determined.</source>
       <translation>文件 MIME 类型无法确定。</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="302" />
-      <location filename="../Project/ProjectOthersBrowser.py" line="292" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="346" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="336" />
       <source>The file has the mime type &lt;b&gt;{0}&lt;/b&gt;.</source>
       <translation>文件的 MIME 类型为 &lt;b&gt;{0}&lt;/b&gt;。</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="310" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="354" />
       <source>The file has the mime type &lt;b&gt;{0}&lt;/b&gt;.&lt;br/&gt; Shall it be added to the list of text mime types?</source>
       <translation type="unfinished">该文件有 MIME 类型。&lt;b&gt;{0}&lt;/b&gt;.&lt;br/&gt;将其添加至文本 MIME 类型列表?</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="373" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="447" />
       <source>Delete files/directories</source>
       <translation>删除文件或文件夹</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectOthersBrowser.py" line="374" />
+      <location filename="../Project/ProjectOthersBrowser.py" line="448" />
       <source>Do you really want to delete these entries from the project?</source>
       <translation>确定要从项目中删除这些条目吗?</translation>
     </message>
@@ -57655,6 +57802,21 @@
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
+      <source>Project</source>
+      <translation type="unfinished">项目</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
+      <source>Enable to save the project file automatically whenever there is a change</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
+      <source>Save project automatically when changed</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
       <source>Files</source>
       <translation type="unfinished" />
     </message>
@@ -57770,8 +57932,8 @@
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
-      <source>compile changed forms</source>
-      <translation type="unfinished">更改的窗体</translation>
+      <source>Compile changed forms</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
@@ -57780,8 +57942,8 @@
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
-      <source>compile changed resources</source>
-      <translation type="unfinished">更改的窗体</translation>
+      <source>Compile changed resources</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
@@ -57790,7 +57952,7 @@
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/ProjectPage.ui" line="0" />
-      <source>execute make</source>
+      <source>Execute make</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -57863,6 +58025,14 @@
       <source>Rescan tasks upon opening</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <source>compile changed forms</source>
+      <translation type="vanished">更改的窗体</translation>
+    </message>
+    <message>
+      <source>compile changed resources</source>
+      <translation type="vanished">更改的窗体</translation>
+    </message>
   </context>
   <context>
     <name>ProjectProtocolsBrowser</name>
@@ -58935,6 +59105,44 @@
     </message>
   </context>
   <context>
+    <name>ProjectVenvConfigurationDialog</name>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.ui" line="0" />
+      <source>Project Environment Configuration</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.ui" line="0" />
+      <source>Name:</source>
+      <translation type="unfinished">名称:</translation>
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.ui" line="0" />
+      <source>Python Interpreter:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.ui" line="0" />
+      <source>Enter the Python interpreter of the virtual environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.ui" line="0" />
+      <source>PATH Prefix:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.py" line="59" />
+      <source>Python Interpreter</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/ProjectVenvConfigurationDialog.py" line="63" />
+      <source>Enter the executable search path to be prepended to the PATH environment variable. Use '{0}' as the separator.</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PropertiesDialog</name>
     <message>
       <location filename="../Project/PropertiesDialog.ui" line="0" />
@@ -59170,6 +59378,16 @@
     </message>
     <message>
       <location filename="../Project/PropertiesDialog.ui" line="0" />
+      <source>Select this to create and use a project embedded virtual environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/PropertiesDialog.ui" line="0" />
+      <source>Use embedded virtual environment</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project/PropertiesDialog.ui" line="0" />
       <source>Press to edit the spell checking properties</source>
       <translation>点击编辑拼写检查属性</translation>
     </message>
@@ -59229,7 +59447,7 @@
       <translation>Alt+R</translation>
     </message>
     <message>
-      <location filename="../Project/PropertiesDialog.py" line="202" />
+      <location filename="../Project/PropertiesDialog.py" line="203" />
       <location filename="../Project/PropertiesDialog.py" line="56" />
       <source>None</source>
       <translation type="unfinished">无</translation>
@@ -61284,18 +61502,18 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/Interfaces/PytestExecutor.py" line="221" />
+      <location filename="../Testing/Interfaces/PytestExecutor.py" line="279" />
       <source>Error</source>
       <translation type="unfinished">错误</translation>
     </message>
     <message>
-      <location filename="../Testing/Interfaces/PytestExecutor.py" line="230" />
+      <location filename="../Testing/Interfaces/PytestExecutor.py" line="288" />
       <source>ERROR at {0}: {1}</source>
       <comment>phase, message</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/Interfaces/PytestExecutor.py" line="233" />
+      <location filename="../Testing/Interfaces/PytestExecutor.py" line="291" />
       <source>ERROR at {0}: {1}</source>
       <comment>phase, extra text</comment>
       <translation type="unfinished" />
@@ -65671,293 +65889,343 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="49" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="48" />
+      <source>'contextlib.suppress()' detected.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="50" />
+      <source>Requests call without timeout.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="51" />
+      <source>Requests call with timeout set to None.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="56" />
       <source>A Flask app appears to be run with debug=True, which exposes the Werkzeug debugger and allows the execution of arbitrary code.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="55" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="62" />
+      <source>Usage of 'tarfile.extractall(members=function(tarfile))'. Make sure your function properly discards dangerous members ({0}).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="67" />
+      <source>Found 'tarfile.extractall(members=?)' but couldn't identify the type of members. Check if the members were properly validated ({0}).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="72" />
+      <source>'tarfile.extractall()' used without any validation. Please check and discard dangerous members.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="78" />
       <source>Pickle and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="60" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="83" />
       <source>Deserialization with the marshal module is possibly dangerous.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="63" />
-      <source>Use of insecure MD2, MD4, MD5, or SHA1 hash function.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="66" />
-      <source>Use of insecure cipher '{0}'. Replace with a known secure cipher such as AES.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="71" />
-      <source>Use of insecure cipher mode '{0}'.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="74" />
-      <source>Use of insecure and deprecated function (mktemp).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="77" />
-      <source>Use of possibly insecure function - consider using safer ast.literal_eval.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="81" />
-      <source>Use of mark_safe() may expose cross-site scripting vulnerabilities and should be reviewed.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="86" />
-      <source>Use of HTTPSConnection on older versions of Python prior to 2.7.9 and 3.4.3 do not provide security, see https://wiki.openstack.org/wiki/OSSN/OSSN-0033</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="92" />
-      <source>Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.</source>
+      <source>Use of insecure MD2, MD4, MD5, or SHA1 hash function.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="89" />
+      <source>Use of insecure cipher '{0}'. Replace with a known secure cipher such as AES.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="94" />
+      <source>Use of insecure cipher mode '{0}'.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="97" />
+      <source>Use of insecure and deprecated function (mktemp).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="100" />
+      <source>Use of possibly insecure function - consider using safer ast.literal_eval.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="104" />
+      <source>Use of mark_safe() may expose cross-site scripting vulnerabilities and should be reviewed.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="109" />
+      <source>Use of HTTPSConnection on older versions of Python prior to 2.7.9 and 3.4.3 do not provide security, see https://wiki.openstack.org/wiki/OSSN/OSSN-0033</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="115" />
+      <source>Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="120" />
       <source>Standard pseudo-random generators are not suitable for security/cryptographic purposes.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="102" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="125" />
       <source>Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="143" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="137" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="131" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="125" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="119" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="113" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="107" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="166" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="160" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="154" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="148" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="142" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="136" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="130" />
       <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with its defusedxml equivalent function or make sure defusedxml.defuse_stdlib() is called.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="149" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="172" />
       <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with its defusedxml equivalent function.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="155" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="178" />
       <source>FTP-related functions are being called. FTP is considered insecure. Use SSH/SFTP/SCP or some other encrypted protocol.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="160" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="183" />
       <source>The input method in Python 2 will read from standard input, evaluate and run the resulting string as Python source code. This is similar, though in many ways worse, than using eval. On Python 2, use raw_input instead, input is safe in Python 3.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="167" />
-      <source>By default, Python will create a secure, verified SSL context for use in such classes as HTTPSConnection. However, it still allows using an insecure context via the _create_unverified_context that reverts to the previous behavior that does not validate certificates or perform hostname checks.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="175" />
-      <source>Use of os.tempnam() and os.tmpnam() is vulnerable to symlink attacks. Consider using tmpfile() instead.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="181" />
-      <source>Use of insecure {0} hash function.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="185" />
-      <source>A telnet-related module is being imported.  Telnet is considered insecure. Use SSH or some other encrypted protocol.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="190" />
+      <source>By default, Python will create a secure, verified SSL context for use in such classes as HTTPSConnection. However, it still allows using an insecure context via the _create_unverified_context that reverts to the previous behavior that does not validate certificates or perform hostname checks.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="198" />
+      <source>Use of os.tempnam() and os.tmpnam() is vulnerable to symlink attacks. Consider using tmpfile() instead.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="204" />
+      <source>Use of insecure {0} hash function.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="207" />
+      <source>Use of insecure {0} hash for security. Consider 'usedforsecurity=False'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="212" />
+      <source>A telnet-related module is being imported.  Telnet is considered insecure. Use SSH or some other encrypted protocol.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="217" />
       <source>A FTP-related module is being imported.  FTP is considered insecure. Use SSH/SFTP/SCP or some other encrypted protocol.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="199" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="195" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="226" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="222" />
       <source>Consider possible security implications associated with the '{0}' module.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="227" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="221" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="215" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="209" />
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="203" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="254" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="248" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="242" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="236" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="230" />
       <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with the equivalent defusedxml package, or make sure defusedxml.defuse_stdlib() is called.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="233" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="260" />
       <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with the equivalent defusedxml package.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="239" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="266" />
       <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Use defused.xmlrpc.monkey_patch() function to monkey-patch xmlrpclib and mitigate XML vulnerabilities.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="245" />
-      <source>Consider possible security implications associated with '{0}' module.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="249" />
-      <source>The pyCrypto library and its module '{0}' are no longer actively maintained and have been deprecated. Consider using pyca/cryptography library.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="256" />
-      <source>'requests' call with verify=False disabling SSL certificate checks, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="262" />
-      <source>'ssl.wrap_socket' call with insecure SSL/TLS protocol version identified, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="267" />
-      <source>'SSL.Context' call with insecure SSL/TLS protocol version identified, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="272" />
-      <source>Function call with insecure SSL/TLS protocol version identified, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="277" />
-      <source>Function definition identified with insecure SSL/TLS protocol version by default, possible security issue.</source>
+      <source>Consider possible security implications associated with '{0}' module.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="276" />
+      <source>The pyCrypto library and its module '{0}' are no longer actively maintained and have been deprecated. Consider using pyca/cryptography library.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="282" />
-      <source>'ssl.wrap_socket' call with no SSL/TLS protocol version specified, the default 'SSLv23' could be insecure, possible security issue.</source>
+      <source>An IPMI-related module is being imported. IPMI is considered insecure. Use an encrypted protocol.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="288" />
+      <source>'requests' call with verify=False disabling SSL certificate checks, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="294" />
+      <source>'ssl.wrap_socket' call with insecure SSL/TLS protocol version identified, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="299" />
+      <source>'SSL.Context' call with insecure SSL/TLS protocol version identified, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="304" />
+      <source>Function call with insecure SSL/TLS protocol version identified, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="309" />
+      <source>Function definition identified with insecure SSL/TLS protocol version by default, possible security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="314" />
+      <source>'ssl.wrap_socket' call with no SSL/TLS protocol version specified, the default 'SSLv23' could be insecure, possible security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="320" />
       <source>{0} key sizes below {1:d} bits are considered breakable.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="292" />
-      <source>Use of unsafe 'yaml.load()'. Allows instantiation of arbitrary objects. Consider 'yaml.safe_load()'.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="298" />
-      <source>Paramiko call with policy set to automatically trust the unknown host key.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="303" />
-      <source>Possible shell injection via 'Paramiko' call, check inputs are properly sanitized.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="308" />
-      <source>'subprocess' call with shell=True seems safe, but may be changed in the future, consider rewriting without shell</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="313" />
-      <source>'subprocess' call with shell=True identified, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="316" />
-      <source>'subprocess' call - check for execution of untrusted input.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="319" />
-      <source>Function call with shell=True parameter identified, possible security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="324" />
-      <source>Starting a process with a shell: Seems safe, but may be changed in the future, consider rewriting without shell</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="329" />
-      <source>Starting a process with a shell, possible injection detected, security issue.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="334" />
-      <source>Starting a process without a shell.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="337" />
-      <source>Starting a process with a partial executable path.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="341" />
-      <source>Possible SQL injection vector through string-based query construction.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="346" />
-      <source>Possible wildcard injection in call: {0}</source>
+      <source>Use of unsafe 'yaml.load()'. Allows instantiation of arbitrary objects. Consider 'yaml.safe_load()'.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="330" />
+      <source>Paramiko call with policy set to automatically trust the unknown host key.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="335" />
+      <source>The use of SNMPv1 and SNMPv2 is insecure. You should use SNMPv3 if possible.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="339" />
+      <source>You should not use SNMPv3 without encryption. noAuthNoPriv &amp; authNoPriv is insecure.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="345" />
+      <source>Possible shell injection via 'Paramiko' call, check inputs are properly sanitized.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="350" />
+      <source>'subprocess' call with shell=True seems safe, but may be changed in the future, consider rewriting without shell</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="355" />
+      <source>'subprocess' call with shell=True identified, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="358" />
+      <source>'subprocess' call - check for execution of untrusted input.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="361" />
+      <source>Function call with shell=True parameter identified, possible security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="366" />
+      <source>Starting a process with a shell: Seems safe, but may be changed in the future, consider rewriting without shell</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="371" />
+      <source>Starting a process with a shell, possible injection detected, security issue.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="376" />
+      <source>Starting a process without a shell.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="379" />
+      <source>Starting a process with a partial executable path.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="383" />
+      <source>Possible SQL injection vector through string-based query construction.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="388" />
+      <source>Possible wildcard injection in call: {0}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="392" />
       <source>Use of 'extra()' opens a potential SQL attack vector.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="353" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="395" />
       <source>Use of 'RawSQL()' opens a potential SQL attack vector.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="357" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="399" />
       <source>Using jinja2 templates with 'autoescape=False' is dangerous and can lead to XSS. Use 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="363" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="405" />
       <source>By default, jinja2 sets 'autoescape' to False. Consider using 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="370" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="412" />
       <source>Mako templates allow HTML/JS rendering by default and are inherently open to XSS attacks. Ensure variables in all templates are properly sanitized via the 'n', 'h' or 'x' flags (depending on context). For example, to HTML escape the variable 'data' do ${{ data |h }}.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="378" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="420" />
       <source>Potential XSS on 'mark_safe()' function.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="382" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="424" />
       <source>Possible hardcoded AWS access key ID: {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="385" />
+      <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="427" />
       <source>Possible hardcoded AWS secret access key: {0}</source>
       <translation type="unfinished" />
     </message>
@@ -69748,6 +70016,12 @@
     </message>
     <message>
       <location filename="../Debugger/StartCoverageDialog.ui" line="0" />
+      <source>&lt;b&gt;Always report unhandled exceptions&lt;/b&gt;
+&lt;p&gt;When active all unhandled exceptions will be reported even if 'Report exceptions' is deactivated. When inactive the later switch determines exception reporting.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Debugger/StartCoverageDialog.ui" line="0" />
       <source>Always report unhandled exceptions</source>
       <translation type="unfinished" />
     </message>
@@ -69939,6 +70213,12 @@
     </message>
     <message>
       <location filename="../Debugger/StartDebugDialog.ui" line="0" />
+      <source>&lt;b&gt;Always report unhandled exceptions&lt;/b&gt;
+&lt;p&gt;When active all unhandled exceptions will be reported even if 'Report exceptions' is deactivated. When inactive the later switch determines exception reporting.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Debugger/StartDebugDialog.ui" line="0" />
       <source>Always report unhandled exceptions</source>
       <translation type="unfinished" />
     </message>
@@ -69980,6 +70260,12 @@
     </message>
     <message>
       <location filename="../Debugger/StartDebugDialog.ui" line="0" />
+      <source>&lt;b&gt;Trace into interpreter libraries&lt;b&gt;
+&lt;p&gt;When active the debugger will also trace calls into the Python library.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Debugger/StartDebugDialog.ui" line="0" />
       <source>Trace into interpreter libraries</source>
       <translation type="unfinished">跟踪到解释器库</translation>
     </message>
@@ -70288,6 +70574,12 @@
     </message>
     <message>
       <location filename="../Debugger/StartProfileDialog.ui" line="0" />
+      <source>&lt;b&gt;Always report unhandled exceptions&lt;/b&gt;
+&lt;p&gt;When active all unhandled exceptions will be reported even if 'Report exceptions' is deactivated. When inactive the later switch determines exception reporting.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Debugger/StartProfileDialog.ui" line="0" />
       <source>Always report unhandled exceptions</source>
       <translation type="unfinished" />
     </message>
@@ -70509,6 +70801,12 @@
     </message>
     <message>
       <location filename="../Debugger/StartRunDialog.ui" line="0" />
+      <source>&lt;b&gt;Always report unhandled exceptions&lt;/b&gt;
+&lt;p&gt;When active all unhandled exceptions will be reported even if 'Report exceptions' is deactivated. When inactive the later switch determines exception reporting.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Debugger/StartRunDialog.ui" line="0" />
       <source>Always report unhandled exceptions</source>
       <translation type="unfinished" />
     </message>
@@ -77237,31 +77535,29 @@
       <translation type="unfinished">按下以统计所有有问题的文件</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="107" />
+      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" />
       <source>Errors</source>
       <translation>错误</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="312" />
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="275" />
+      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="305" />
+      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="270" />
       <source>Error: {0}</source>
       <translation type="unfinished">错误:{0}</translation>
     </message>
     <message>
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="294" />
-      <source>Preparing files...</source>
-      <translation type="unfinished">正在准备文件…</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="321" />
-      <source>Transferring data...</source>
-      <translation type="unfinished">传输数据…</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="427" />
+      <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="417" />
       <source>No issues found.</source>
       <translation type="unfinished">未发现问题。</translation>
     </message>
+    <message>
+      <source>Preparing files...</source>
+      <translation type="vanished">正在准备文件…</translation>
+    </message>
+    <message>
+      <source>Transferring data...</source>
+      <translation type="vanished">传输数据…</translation>
+    </message>
   </context>
   <context>
     <name>SyntaxCheckerPlugin</name>
@@ -77725,7 +78021,7 @@
       <translation type="unfinished">将路径复制到剪贴板</translation>
     </message>
     <message>
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="498" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="499" />
       <source>{0} (ro)</source>
       <translation>{0}(只读)</translation>
     </message>
@@ -77733,15 +78029,15 @@
   <context>
     <name>Tabview</name>
     <message>
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1106" />
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1041" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1107" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1042" />
       <source>Untitled {0}</source>
       <translation>无标题 {0}</translation>
     </message>
     <message>
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1508" />
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1117" />
-      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1062" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1509" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1118" />
+      <location filename="../Plugins/ViewManagerPlugins/Tabview/Tabview.py" line="1063" />
       <source>{0} (ro)</source>
       <translation>{0}(只读)</translation>
     </message>
@@ -78837,7 +79133,7 @@
   <context>
     <name>TestingWidget</name>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="168" />
+      <location filename="../Testing/TestingWidget.py" line="169" />
       <location filename="../Testing/TestingWidget.ui" line="0" />
       <source>Testing</source>
       <translation type="unfinished" />
@@ -78946,6 +79242,31 @@
     </message>
     <message>
       <location filename="../Testing/TestingWidget.ui" line="0" />
+      <source>Test Name Pattern:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/TestingWidget.ui" line="0" />
+      <source>Enter test name patterns (separated by a blank) or a test name expression</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/TestingWidget.ui" line="0" />
+      <source>Marker Expression:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/TestingWidget.ui" line="0" />
+      <source>Enter a marker expression or name to filter tests</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/TestingWidget.ui" line="0" />
+      <source>Press to show a window with the list of defined markers</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Testing/TestingWidget.ui" line="0" />
       <source>Run Parameters</source>
       <translation type="unfinished" />
     </message>
@@ -79021,172 +79342,172 @@
       <translation type="unfinished">空闲</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="102" />
+      <location filename="../Testing/TestingWidget.py" line="103" />
       <source>Show Output...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="105" />
+      <location filename="../Testing/TestingWidget.py" line="106" />
       <source>Show the output of the test runner process</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="108" />
+      <location filename="../Testing/TestingWidget.py" line="109" />
       <source>&lt;b&gt;Show Output...&lt;/b&lt;p&gt;This button opens a dialog containing the output of the test runner process of the most recent run.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="116" />
+      <location filename="../Testing/TestingWidget.py" line="117" />
       <source>Show Coverage...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="119" />
+      <location filename="../Testing/TestingWidget.py" line="120" />
       <source>Show code coverage in a new dialog</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="122" />
+      <location filename="../Testing/TestingWidget.py" line="123" />
       <source>&lt;b&gt;Show Coverage...&lt;/b&gt;&lt;p&gt;This button opens a dialog containing the collected code coverage data.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="130" />
+      <location filename="../Testing/TestingWidget.py" line="131" />
       <source>Start</source>
       <translation type="unfinished">开始</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="133" />
+      <location filename="../Testing/TestingWidget.py" line="134" />
       <source>Start the selected testsuite</source>
       <translation type="unfinished">开启所选测试套件</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="135" />
+      <location filename="../Testing/TestingWidget.py" line="136" />
       <source>&lt;b&gt;Start Test&lt;/b&gt;&lt;p&gt;This button starts the test run.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="141" />
+      <location filename="../Testing/TestingWidget.py" line="142" />
       <source>Rerun Failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="144" />
+      <location filename="../Testing/TestingWidget.py" line="145" />
       <source>Reruns failed tests of the selected testsuite</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="147" />
+      <location filename="../Testing/TestingWidget.py" line="148" />
       <source>&lt;b&gt;Rerun Failed&lt;/b&gt;&lt;p&gt;This button reruns all failed tests of the most recent test run.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="155" />
+      <location filename="../Testing/TestingWidget.py" line="156" />
       <source>Stop</source>
       <translation type="unfinished">中止</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="157" />
+      <location filename="../Testing/TestingWidget.py" line="158" />
       <source>Stop the running test</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="159" />
+      <location filename="../Testing/TestingWidget.py" line="160" />
       <source>&lt;b&gt;Stop Test&lt;/b&gt;&lt;p&gt;This button stops a running test.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="271" />
+      <location filename="../Testing/TestingWidget.py" line="274" />
       <source>{0} (not available)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="566" />
+      <location filename="../Testing/TestingWidget.py" line="569" />
       <source>Running</source>
       <translation type="unfinished">正在运行</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="622" />
+      <location filename="../Testing/TestingWidget.py" line="625" />
       <source>Python3 Files ({0});;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="627" />
+      <location filename="../Testing/TestingWidget.py" line="630" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="712" />
+      <location filename="../Testing/TestingWidget.py" line="788" />
       <source>&lt;h3&gt;Versions of Frameworks and their Plugins&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="726" />
+      <location filename="../Testing/TestingWidget.py" line="802" />
       <source>&lt;tr&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="735" />
+      <location filename="../Testing/TestingWidget.py" line="811" />
       <source>No version information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="738" />
+      <location filename="../Testing/TestingWidget.py" line="814" />
       <source>Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="775" />
+      <location filename="../Testing/TestingWidget.py" line="851" />
       <source>Preparing Testsuite</source>
       <translation type="unfinished">准备测试套件</translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="838" />
+      <location filename="../Testing/TestingWidget.py" line="916" />
       <source>pending</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="866" />
+      <location filename="../Testing/TestingWidget.py" line="944" />
       <source>Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="876" />
-      <location filename="../Testing/TestingWidget.py" line="869" />
+      <location filename="../Testing/TestingWidget.py" line="954" />
+      <location filename="../Testing/TestingWidget.py" line="947" />
       <source>Collection Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="877" />
+      <location filename="../Testing/TestingWidget.py" line="955" />
       <source>&lt;p&gt;There was an error while collecting tests.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="898" />
+      <location filename="../Testing/TestingWidget.py" line="976" />
       <source>running</source>
       <translation type="unfinished">运行中</translation>
     </message>
     <message numerus="yes">
-      <location filename="../Testing/TestingWidget.py" line="949" />
+      <location filename="../Testing/TestingWidget.py" line="1027" />
       <source>Ran %n test(s) in {0}s</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message numerus="yes">
-      <location filename="../Testing/TestingWidget.py" line="961" />
+      <location filename="../Testing/TestingWidget.py" line="1039" />
       <source>Ran %n test(s)</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="982" />
+      <location filename="../Testing/TestingWidget.py" line="1060" />
       <source>not run</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Testing/TestingWidget.py" line="1027" />
+      <location filename="../Testing/TestingWidget.py" line="1105" />
       <source>Test Run Output</source>
       <translation type="unfinished" />
     </message>
@@ -84333,43 +84654,43 @@
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; 不是一个文件。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8317" />
+      <location filename="../UI/UserInterface.py" line="8323" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8318" />
-      <source>A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8364" />
-      <location filename="../UI/UserInterface.py" line="8351" />
+      <location filename="../UI/UserInterface.py" line="8324" />
+      <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../UI/UserInterface.py" line="8375" />
+      <location filename="../UI/UserInterface.py" line="8362" />
       <source>First time usage</source>
       <translation>第一次使用</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8352" />
+      <location filename="../UI/UserInterface.py" line="8363" />
       <source>eric7 has not been configured yet but an eric6 configuration was found. Shall this be imported?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8365" />
+      <location filename="../UI/UserInterface.py" line="8376" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8388" />
+      <location filename="../UI/UserInterface.py" line="8399" />
       <source>Select Workspace Directory</source>
       <translation>选择工作区目录</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8569" />
+      <location filename="../UI/UserInterface.py" line="8580" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8570" />
+      <location filename="../UI/UserInterface.py" line="8581" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
@@ -85516,37 +85837,37 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/VersionsDialog.py" line="93" />
+      <location filename="../UI/VersionsDialog.py" line="70" />
+      <source>Upgrade {0}...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../UI/VersionsDialog.py" line="71" />
+      <source>&lt;p&gt;An upgrade of &lt;b&gt;{0}&lt;/b&gt; is available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../UI/VersionsDialog.py" line="72" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Package&lt;/th&gt;&lt;th&gt;Installed&lt;/th&gt;&lt;th&gt;Available&lt;/th&gt;&lt;/tr&gt;{0}&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../UI/VersionsDialog.py" line="77" />
+      <source>&lt;tr&gt;&lt;td&gt;&lt;b&gt;{0}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../UI/VersionsDialog.py" line="102" />
       <source>No upgrades available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/VersionsDialog.py" line="97" />
-      <source>Upgrade eric7...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/VersionsDialog.py" line="100" />
-      <source>&lt;p&gt;An upgrade of &lt;b&gt;eric7&lt;/b&gt; is available.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/VersionsDialog.py" line="104" />
-      <source>Upgrade PyQt6...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/VersionsDialog.py" line="107" />
-      <source>&lt;p&gt;An upgrade of &lt;b&gt;PyQt6&lt;/b&gt; is available.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/VersionsDialog.py" line="111" />
-      <source>Upgrade Both...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/VersionsDialog.py" line="120" />
+      <location filename="../UI/VersionsDialog.py" line="126" />
+      <source>Both</source>
+      <translation type="unfinished">两者兼有</translation>
+    </message>
+    <message>
+      <location filename="../UI/VersionsDialog.py" line="136" />
       <source>Check for Upgrades</source>
       <translation type="unfinished" />
     </message>
@@ -85686,8 +86007,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2533" />
       <location filename="../ViewManager/ViewManager.py" line="2532" />
-      <location filename="../QScintilla/MiniEditor.py" line="1678" />
-      <location filename="../QScintilla/MiniEditor.py" line="1677" />
+      <location filename="../QScintilla/MiniEditor.py" line="1695" />
+      <location filename="../QScintilla/MiniEditor.py" line="1694" />
       <location filename="../QScintilla/ShellWindow.py" line="448" />
       <location filename="../QScintilla/ShellWindow.py" line="447" />
       <source>Delete current line</source>
@@ -85695,7 +86016,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2534" />
-      <location filename="../QScintilla/MiniEditor.py" line="1679" />
+      <location filename="../QScintilla/MiniEditor.py" line="1696" />
       <location filename="../QScintilla/ShellWindow.py" line="449" />
       <source>Ctrl+Shift+L</source>
       <translation>Ctrl+Shift+L</translation>
@@ -85703,8 +86024,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2040" />
       <location filename="../ViewManager/ViewManager.py" line="2039" />
-      <location filename="../QScintilla/MiniEditor.py" line="1200" />
-      <location filename="../QScintilla/MiniEditor.py" line="1199" />
+      <location filename="../QScintilla/MiniEditor.py" line="1217" />
+      <location filename="../QScintilla/MiniEditor.py" line="1216" />
       <location filename="../QScintilla/ShellWindow.py" line="460" />
       <location filename="../QScintilla/ShellWindow.py" line="459" />
       <source>Indent one level</source>
@@ -85712,7 +86033,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2041" />
-      <location filename="../QScintilla/MiniEditor.py" line="1201" />
+      <location filename="../QScintilla/MiniEditor.py" line="1218" />
       <location filename="../QScintilla/ShellWindow.py" line="461" />
       <source>Tab</source>
       <translation>Tab 键</translation>
@@ -85720,8 +86041,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2506" />
       <location filename="../ViewManager/ViewManager.py" line="2505" />
-      <location filename="../QScintilla/MiniEditor.py" line="1666" />
-      <location filename="../QScintilla/MiniEditor.py" line="1665" />
+      <location filename="../QScintilla/MiniEditor.py" line="1683" />
+      <location filename="../QScintilla/MiniEditor.py" line="1682" />
       <location filename="../QScintilla/ShellWindow.py" line="472" />
       <location filename="../QScintilla/ShellWindow.py" line="471" />
       <source>Insert new line</source>
@@ -85729,14 +86050,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2507" />
-      <location filename="../QScintilla/MiniEditor.py" line="1667" />
+      <location filename="../QScintilla/MiniEditor.py" line="1684" />
       <location filename="../QScintilla/ShellWindow.py" line="473" />
       <source>Return</source>
       <translation>Return</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2508" />
-      <location filename="../QScintilla/MiniEditor.py" line="1668" />
+      <location filename="../QScintilla/MiniEditor.py" line="1685" />
       <location filename="../QScintilla/ShellWindow.py" line="474" />
       <source>Enter</source>
       <translation>Enter</translation>
@@ -85744,8 +86065,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2392" />
       <location filename="../ViewManager/ViewManager.py" line="2391" />
-      <location filename="../QScintilla/MiniEditor.py" line="1552" />
-      <location filename="../QScintilla/MiniEditor.py" line="1551" />
+      <location filename="../QScintilla/MiniEditor.py" line="1569" />
+      <location filename="../QScintilla/MiniEditor.py" line="1568" />
       <location filename="../QScintilla/ShellWindow.py" line="484" />
       <location filename="../QScintilla/ShellWindow.py" line="483" />
       <source>Delete previous character</source>
@@ -85753,21 +86074,21 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2393" />
-      <location filename="../QScintilla/MiniEditor.py" line="1553" />
+      <location filename="../QScintilla/MiniEditor.py" line="1570" />
       <location filename="../QScintilla/ShellWindow.py" line="485" />
       <source>Backspace</source>
       <translation>Backspace</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2400" />
-      <location filename="../QScintilla/MiniEditor.py" line="1560" />
+      <location filename="../QScintilla/MiniEditor.py" line="1577" />
       <location filename="../QScintilla/ShellWindow.py" line="492" />
       <source>Meta+H</source>
       <translation>Meta+H</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2405" />
-      <location filename="../QScintilla/MiniEditor.py" line="1565" />
+      <location filename="../QScintilla/MiniEditor.py" line="1582" />
       <location filename="../QScintilla/ShellWindow.py" line="497" />
       <source>Shift+Backspace</source>
       <translation>Shift+Backspace</translation>
@@ -85775,8 +86096,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2430" />
       <location filename="../ViewManager/ViewManager.py" line="2429" />
-      <location filename="../QScintilla/MiniEditor.py" line="1590" />
-      <location filename="../QScintilla/MiniEditor.py" line="1589" />
+      <location filename="../QScintilla/MiniEditor.py" line="1607" />
+      <location filename="../QScintilla/MiniEditor.py" line="1606" />
       <location filename="../QScintilla/ShellWindow.py" line="506" />
       <location filename="../QScintilla/ShellWindow.py" line="505" />
       <source>Delete current character</source>
@@ -85784,14 +86105,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2431" />
-      <location filename="../QScintilla/MiniEditor.py" line="1591" />
+      <location filename="../QScintilla/MiniEditor.py" line="1608" />
       <location filename="../QScintilla/ShellWindow.py" line="507" />
       <source>Del</source>
       <translation>Del</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2438" />
-      <location filename="../QScintilla/MiniEditor.py" line="1598" />
+      <location filename="../QScintilla/MiniEditor.py" line="1615" />
       <location filename="../QScintilla/ShellWindow.py" line="514" />
       <source>Meta+D</source>
       <translation>Meta+D</translation>
@@ -85799,8 +86120,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2446" />
       <location filename="../ViewManager/ViewManager.py" line="2445" />
-      <location filename="../QScintilla/MiniEditor.py" line="1606" />
-      <location filename="../QScintilla/MiniEditor.py" line="1605" />
+      <location filename="../QScintilla/MiniEditor.py" line="1623" />
+      <location filename="../QScintilla/MiniEditor.py" line="1622" />
       <location filename="../QScintilla/ShellWindow.py" line="522" />
       <location filename="../QScintilla/ShellWindow.py" line="521" />
       <source>Delete word to left</source>
@@ -85808,7 +86129,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2447" />
-      <location filename="../QScintilla/MiniEditor.py" line="1607" />
+      <location filename="../QScintilla/MiniEditor.py" line="1624" />
       <location filename="../QScintilla/ShellWindow.py" line="523" />
       <source>Ctrl+Backspace</source>
       <translation>Ctrl+Backspace</translation>
@@ -85816,8 +86137,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2458" />
       <location filename="../ViewManager/ViewManager.py" line="2457" />
-      <location filename="../QScintilla/MiniEditor.py" line="1618" />
-      <location filename="../QScintilla/MiniEditor.py" line="1617" />
+      <location filename="../QScintilla/MiniEditor.py" line="1635" />
+      <location filename="../QScintilla/MiniEditor.py" line="1634" />
       <location filename="../QScintilla/ShellWindow.py" line="534" />
       <location filename="../QScintilla/ShellWindow.py" line="533" />
       <source>Delete word to right</source>
@@ -85825,7 +86146,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2459" />
-      <location filename="../QScintilla/MiniEditor.py" line="1619" />
+      <location filename="../QScintilla/MiniEditor.py" line="1636" />
       <location filename="../QScintilla/ShellWindow.py" line="535" />
       <source>Ctrl+Del</source>
       <translation>Ctrl+Del</translation>
@@ -85833,8 +86154,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2470" />
       <location filename="../ViewManager/ViewManager.py" line="2469" />
-      <location filename="../QScintilla/MiniEditor.py" line="1630" />
-      <location filename="../QScintilla/MiniEditor.py" line="1629" />
+      <location filename="../QScintilla/MiniEditor.py" line="1647" />
+      <location filename="../QScintilla/MiniEditor.py" line="1646" />
       <location filename="../QScintilla/ShellWindow.py" line="546" />
       <location filename="../QScintilla/ShellWindow.py" line="545" />
       <source>Delete line to left</source>
@@ -85842,7 +86163,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2472" />
-      <location filename="../QScintilla/MiniEditor.py" line="1632" />
+      <location filename="../QScintilla/MiniEditor.py" line="1649" />
       <location filename="../QScintilla/ShellWindow.py" line="548" />
       <source>Ctrl+Shift+Backspace</source>
       <translation>Ctrl+Shift+Backspace</translation>
@@ -85850,8 +86171,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2484" />
       <location filename="../ViewManager/ViewManager.py" line="2483" />
-      <location filename="../QScintilla/MiniEditor.py" line="1644" />
-      <location filename="../QScintilla/MiniEditor.py" line="1643" />
+      <location filename="../QScintilla/MiniEditor.py" line="1661" />
+      <location filename="../QScintilla/MiniEditor.py" line="1660" />
       <location filename="../QScintilla/ShellWindow.py" line="560" />
       <location filename="../QScintilla/ShellWindow.py" line="559" />
       <source>Delete line to right</source>
@@ -85859,14 +86180,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2492" />
-      <location filename="../QScintilla/MiniEditor.py" line="1652" />
+      <location filename="../QScintilla/MiniEditor.py" line="1669" />
       <location filename="../QScintilla/ShellWindow.py" line="568" />
       <source>Meta+K</source>
       <translation>Meta+K</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2497" />
-      <location filename="../QScintilla/MiniEditor.py" line="1657" />
+      <location filename="../QScintilla/MiniEditor.py" line="1674" />
       <location filename="../QScintilla/ShellWindow.py" line="573" />
       <source>Ctrl+Shift+Del</source>
       <translation>Ctrl+Shift+Del</translation>
@@ -85874,8 +86195,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1732" />
       <location filename="../ViewManager/ViewManager.py" line="1731" />
-      <location filename="../QScintilla/MiniEditor.py" line="888" />
-      <location filename="../QScintilla/MiniEditor.py" line="887" />
+      <location filename="../QScintilla/MiniEditor.py" line="905" />
+      <location filename="../QScintilla/MiniEditor.py" line="904" />
       <location filename="../QScintilla/ShellWindow.py" line="582" />
       <location filename="../QScintilla/ShellWindow.py" line="581" />
       <source>Move left one character</source>
@@ -85883,14 +86204,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1733" />
-      <location filename="../QScintilla/MiniEditor.py" line="889" />
+      <location filename="../QScintilla/MiniEditor.py" line="906" />
       <location filename="../QScintilla/ShellWindow.py" line="583" />
       <source>Left</source>
       <translation>Left</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1741" />
-      <location filename="../QScintilla/MiniEditor.py" line="897" />
+      <location filename="../QScintilla/MiniEditor.py" line="914" />
       <location filename="../QScintilla/ShellWindow.py" line="591" />
       <source>Meta+B</source>
       <translation>Meta+B</translation>
@@ -85898,8 +86219,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1748" />
       <location filename="../ViewManager/ViewManager.py" line="1747" />
-      <location filename="../QScintilla/MiniEditor.py" line="904" />
-      <location filename="../QScintilla/MiniEditor.py" line="903" />
+      <location filename="../QScintilla/MiniEditor.py" line="921" />
+      <location filename="../QScintilla/MiniEditor.py" line="920" />
       <location filename="../QScintilla/ShellWindow.py" line="598" />
       <location filename="../QScintilla/ShellWindow.py" line="597" />
       <source>Move right one character</source>
@@ -85907,14 +86228,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1749" />
-      <location filename="../QScintilla/MiniEditor.py" line="905" />
+      <location filename="../QScintilla/MiniEditor.py" line="922" />
       <location filename="../QScintilla/ShellWindow.py" line="599" />
       <source>Right</source>
       <translation>Right</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1756" />
-      <location filename="../QScintilla/MiniEditor.py" line="912" />
+      <location filename="../QScintilla/MiniEditor.py" line="929" />
       <location filename="../QScintilla/ShellWindow.py" line="606" />
       <source>Meta+F</source>
       <translation>Meta+F</translation>
@@ -85922,8 +86243,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1828" />
       <location filename="../ViewManager/ViewManager.py" line="1827" />
-      <location filename="../QScintilla/MiniEditor.py" line="984" />
-      <location filename="../QScintilla/MiniEditor.py" line="983" />
+      <location filename="../QScintilla/MiniEditor.py" line="1001" />
+      <location filename="../QScintilla/MiniEditor.py" line="1000" />
       <location filename="../QScintilla/ShellWindow.py" line="614" />
       <location filename="../QScintilla/ShellWindow.py" line="613" />
       <source>Move left one word</source>
@@ -85932,8 +86253,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1836" />
       <location filename="../ViewManager/ViewManager.py" line="1804" />
-      <location filename="../QScintilla/MiniEditor.py" line="992" />
-      <location filename="../QScintilla/MiniEditor.py" line="960" />
+      <location filename="../QScintilla/MiniEditor.py" line="1009" />
+      <location filename="../QScintilla/MiniEditor.py" line="977" />
       <location filename="../QScintilla/ShellWindow.py" line="622" />
       <source>Alt+Left</source>
       <translation>Alt+Left</translation>
@@ -85941,8 +86262,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1892" />
       <location filename="../ViewManager/ViewManager.py" line="1840" />
-      <location filename="../QScintilla/MiniEditor.py" line="1052" />
-      <location filename="../QScintilla/MiniEditor.py" line="996" />
+      <location filename="../QScintilla/MiniEditor.py" line="1069" />
+      <location filename="../QScintilla/MiniEditor.py" line="1013" />
       <location filename="../QScintilla/ShellWindow.py" line="626" />
       <source>Ctrl+Left</source>
       <translation>Ctrl+Left</translation>
@@ -85950,8 +86271,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1848" />
       <location filename="../ViewManager/ViewManager.py" line="1847" />
-      <location filename="../QScintilla/MiniEditor.py" line="1004" />
-      <location filename="../QScintilla/MiniEditor.py" line="1003" />
+      <location filename="../QScintilla/MiniEditor.py" line="1021" />
+      <location filename="../QScintilla/MiniEditor.py" line="1020" />
       <location filename="../QScintilla/ShellWindow.py" line="634" />
       <location filename="../QScintilla/ShellWindow.py" line="633" />
       <source>Move right one word</source>
@@ -85960,8 +86281,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2629" />
       <location filename="../ViewManager/ViewManager.py" line="1856" />
-      <location filename="../QScintilla/MiniEditor.py" line="1806" />
-      <location filename="../QScintilla/MiniEditor.py" line="1016" />
+      <location filename="../QScintilla/MiniEditor.py" line="1823" />
+      <location filename="../QScintilla/MiniEditor.py" line="1033" />
       <location filename="../QScintilla/ShellWindow.py" line="642" />
       <source>Ctrl+Right</source>
       <translation>Ctrl+Right</translation>
@@ -85969,8 +86290,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1866" />
       <location filename="../ViewManager/ViewManager.py" line="1863" />
-      <location filename="../QScintilla/MiniEditor.py" line="1026" />
-      <location filename="../QScintilla/MiniEditor.py" line="1023" />
+      <location filename="../QScintilla/MiniEditor.py" line="1043" />
+      <location filename="../QScintilla/MiniEditor.py" line="1040" />
       <location filename="../QScintilla/ShellWindow.py" line="652" />
       <location filename="../QScintilla/ShellWindow.py" line="649" />
       <source>Move to first visible character in document line</source>
@@ -85979,8 +86300,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2890" />
       <location filename="../ViewManager/ViewManager.py" line="1876" />
-      <location filename="../QScintilla/MiniEditor.py" line="2067" />
-      <location filename="../QScintilla/MiniEditor.py" line="1036" />
+      <location filename="../QScintilla/MiniEditor.py" line="2084" />
+      <location filename="../QScintilla/MiniEditor.py" line="1053" />
       <location filename="../QScintilla/ShellWindow.py" line="662" />
       <source>Home</source>
       <translation>Home</translation>
@@ -85988,8 +86309,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1904" />
       <location filename="../ViewManager/ViewManager.py" line="1903" />
-      <location filename="../QScintilla/MiniEditor.py" line="1064" />
-      <location filename="../QScintilla/MiniEditor.py" line="1063" />
+      <location filename="../QScintilla/MiniEditor.py" line="1081" />
+      <location filename="../QScintilla/MiniEditor.py" line="1080" />
       <location filename="../QScintilla/ShellWindow.py" line="670" />
       <location filename="../QScintilla/ShellWindow.py" line="669" />
       <source>Move to end of document line</source>
@@ -85997,7 +86318,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1912" />
-      <location filename="../QScintilla/MiniEditor.py" line="1072" />
+      <location filename="../QScintilla/MiniEditor.py" line="1089" />
       <location filename="../QScintilla/ShellWindow.py" line="678" />
       <source>Meta+E</source>
       <translation>Meta+E</translation>
@@ -86005,8 +86326,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2907" />
       <location filename="../ViewManager/ViewManager.py" line="1916" />
-      <location filename="../QScintilla/MiniEditor.py" line="2084" />
-      <location filename="../QScintilla/MiniEditor.py" line="1076" />
+      <location filename="../QScintilla/MiniEditor.py" line="2101" />
+      <location filename="../QScintilla/MiniEditor.py" line="1093" />
       <location filename="../QScintilla/ShellWindow.py" line="682" />
       <source>End</source>
       <translation>End</translation>
@@ -86014,8 +86335,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1764" />
       <location filename="../ViewManager/ViewManager.py" line="1763" />
-      <location filename="../QScintilla/MiniEditor.py" line="920" />
-      <location filename="../QScintilla/MiniEditor.py" line="919" />
+      <location filename="../QScintilla/MiniEditor.py" line="937" />
+      <location filename="../QScintilla/MiniEditor.py" line="936" />
       <location filename="../QScintilla/ShellWindow.py" line="690" />
       <location filename="../QScintilla/ShellWindow.py" line="689" />
       <source>Move up one line</source>
@@ -86023,14 +86344,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1765" />
-      <location filename="../QScintilla/MiniEditor.py" line="921" />
+      <location filename="../QScintilla/MiniEditor.py" line="938" />
       <location filename="../QScintilla/ShellWindow.py" line="691" />
       <source>Up</source>
       <translation>Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1772" />
-      <location filename="../QScintilla/MiniEditor.py" line="928" />
+      <location filename="../QScintilla/MiniEditor.py" line="945" />
       <location filename="../QScintilla/ShellWindow.py" line="698" />
       <source>Meta+P</source>
       <translation>Meta+P</translation>
@@ -86038,8 +86359,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1780" />
       <location filename="../ViewManager/ViewManager.py" line="1779" />
-      <location filename="../QScintilla/MiniEditor.py" line="936" />
-      <location filename="../QScintilla/MiniEditor.py" line="935" />
+      <location filename="../QScintilla/MiniEditor.py" line="953" />
+      <location filename="../QScintilla/MiniEditor.py" line="952" />
       <location filename="../QScintilla/ShellWindow.py" line="706" />
       <location filename="../QScintilla/ShellWindow.py" line="705" />
       <source>Move down one line</source>
@@ -86047,14 +86368,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1781" />
-      <location filename="../QScintilla/MiniEditor.py" line="937" />
+      <location filename="../QScintilla/MiniEditor.py" line="954" />
       <location filename="../QScintilla/ShellWindow.py" line="707" />
       <source>Down</source>
       <translation>Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1788" />
-      <location filename="../QScintilla/MiniEditor.py" line="944" />
+      <location filename="../QScintilla/MiniEditor.py" line="961" />
       <location filename="../QScintilla/ShellWindow.py" line="714" />
       <source>Meta+N</source>
       <translation>Meta+N</translation>
@@ -86062,8 +86383,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2028" />
       <location filename="../ViewManager/ViewManager.py" line="1925" />
-      <location filename="../QScintilla/MiniEditor.py" line="1188" />
-      <location filename="../QScintilla/MiniEditor.py" line="1085" />
+      <location filename="../QScintilla/MiniEditor.py" line="1205" />
+      <location filename="../QScintilla/MiniEditor.py" line="1102" />
       <location filename="../QScintilla/ShellWindow.py" line="723" />
       <source>Ctrl+Down</source>
       <translation>Ctrl+Down</translation>
@@ -86071,8 +86392,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2008" />
       <location filename="../ViewManager/ViewManager.py" line="1937" />
-      <location filename="../QScintilla/MiniEditor.py" line="1168" />
-      <location filename="../QScintilla/MiniEditor.py" line="1097" />
+      <location filename="../QScintilla/MiniEditor.py" line="1185" />
+      <location filename="../QScintilla/MiniEditor.py" line="1114" />
       <location filename="../QScintilla/ShellWindow.py" line="735" />
       <source>Ctrl+Up</source>
       <translation>Ctrl+Up</translation>
@@ -86080,8 +86401,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1972" />
       <location filename="../ViewManager/ViewManager.py" line="1971" />
-      <location filename="../QScintilla/MiniEditor.py" line="1132" />
-      <location filename="../QScintilla/MiniEditor.py" line="1131" />
+      <location filename="../QScintilla/MiniEditor.py" line="1149" />
+      <location filename="../QScintilla/MiniEditor.py" line="1148" />
       <location filename="../QScintilla/ShellWindow.py" line="746" />
       <location filename="../QScintilla/ShellWindow.py" line="745" />
       <source>Move up one page</source>
@@ -86089,7 +86410,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1973" />
-      <location filename="../QScintilla/MiniEditor.py" line="1133" />
+      <location filename="../QScintilla/MiniEditor.py" line="1150" />
       <location filename="../QScintilla/ShellWindow.py" line="747" />
       <source>PgUp</source>
       <translation>PgUp</translation>
@@ -86097,8 +86418,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1984" />
       <location filename="../ViewManager/ViewManager.py" line="1983" />
-      <location filename="../QScintilla/MiniEditor.py" line="1144" />
-      <location filename="../QScintilla/MiniEditor.py" line="1143" />
+      <location filename="../QScintilla/MiniEditor.py" line="1161" />
+      <location filename="../QScintilla/MiniEditor.py" line="1160" />
       <location filename="../QScintilla/ShellWindow.py" line="758" />
       <location filename="../QScintilla/ShellWindow.py" line="757" />
       <source>Move down one page</source>
@@ -86106,14 +86427,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1985" />
-      <location filename="../QScintilla/MiniEditor.py" line="1145" />
+      <location filename="../QScintilla/MiniEditor.py" line="1162" />
       <location filename="../QScintilla/ShellWindow.py" line="759" />
       <source>PgDown</source>
       <translation>PgDown</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1992" />
-      <location filename="../QScintilla/MiniEditor.py" line="1152" />
+      <location filename="../QScintilla/MiniEditor.py" line="1169" />
       <location filename="../QScintilla/ShellWindow.py" line="766" />
       <source>Meta+V</source>
       <translation>Meta+V</translation>
@@ -86121,8 +86442,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2675" />
       <location filename="../ViewManager/ViewManager.py" line="2674" />
-      <location filename="../QScintilla/MiniEditor.py" line="1852" />
-      <location filename="../QScintilla/MiniEditor.py" line="1851" />
+      <location filename="../QScintilla/MiniEditor.py" line="1869" />
+      <location filename="../QScintilla/MiniEditor.py" line="1868" />
       <location filename="../QScintilla/ShellWindow.py" line="774" />
       <location filename="../QScintilla/ShellWindow.py" line="773" />
       <source>Escape</source>
@@ -86130,7 +86451,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2676" />
-      <location filename="../QScintilla/MiniEditor.py" line="1853" />
+      <location filename="../QScintilla/MiniEditor.py" line="1870" />
       <location filename="../QScintilla/ShellWindow.py" line="775" />
       <source>Esc</source>
       <translation>Esc</translation>
@@ -86138,8 +86459,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2066" />
       <location filename="../ViewManager/ViewManager.py" line="2063" />
-      <location filename="../QScintilla/MiniEditor.py" line="1226" />
-      <location filename="../QScintilla/MiniEditor.py" line="1223" />
+      <location filename="../QScintilla/MiniEditor.py" line="1243" />
+      <location filename="../QScintilla/MiniEditor.py" line="1240" />
       <location filename="../QScintilla/ShellWindow.py" line="788" />
       <location filename="../QScintilla/ShellWindow.py" line="785" />
       <source>Extend selection left one character</source>
@@ -86147,14 +86468,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2069" />
-      <location filename="../QScintilla/MiniEditor.py" line="1229" />
+      <location filename="../QScintilla/MiniEditor.py" line="1246" />
       <location filename="../QScintilla/ShellWindow.py" line="791" />
       <source>Shift+Left</source>
       <translation>Shift+Left</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2076" />
-      <location filename="../QScintilla/MiniEditor.py" line="1236" />
+      <location filename="../QScintilla/MiniEditor.py" line="1253" />
       <location filename="../QScintilla/ShellWindow.py" line="798" />
       <source>Meta+Shift+B</source>
       <translation>Meta+Shift+B</translation>
@@ -86162,8 +86483,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2086" />
       <location filename="../ViewManager/ViewManager.py" line="2083" />
-      <location filename="../QScintilla/MiniEditor.py" line="1246" />
-      <location filename="../QScintilla/MiniEditor.py" line="1243" />
+      <location filename="../QScintilla/MiniEditor.py" line="1263" />
+      <location filename="../QScintilla/MiniEditor.py" line="1260" />
       <location filename="../QScintilla/ShellWindow.py" line="808" />
       <location filename="../QScintilla/ShellWindow.py" line="805" />
       <source>Extend selection right one character</source>
@@ -86171,14 +86492,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2089" />
-      <location filename="../QScintilla/MiniEditor.py" line="1249" />
+      <location filename="../QScintilla/MiniEditor.py" line="1266" />
       <location filename="../QScintilla/ShellWindow.py" line="811" />
       <source>Shift+Right</source>
       <translation>Shift+Right</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2096" />
-      <location filename="../QScintilla/MiniEditor.py" line="1256" />
+      <location filename="../QScintilla/MiniEditor.py" line="1273" />
       <location filename="../QScintilla/ShellWindow.py" line="818" />
       <source>Meta+Shift+F</source>
       <translation>Meta+Shift+F</translation>
@@ -86186,8 +86507,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2180" />
       <location filename="../ViewManager/ViewManager.py" line="2179" />
-      <location filename="../QScintilla/MiniEditor.py" line="1340" />
-      <location filename="../QScintilla/MiniEditor.py" line="1339" />
+      <location filename="../QScintilla/MiniEditor.py" line="1357" />
+      <location filename="../QScintilla/MiniEditor.py" line="1356" />
       <location filename="../QScintilla/ShellWindow.py" line="826" />
       <location filename="../QScintilla/ShellWindow.py" line="825" />
       <source>Extend selection left one word</source>
@@ -86196,8 +86517,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2189" />
       <location filename="../ViewManager/ViewManager.py" line="2149" />
-      <location filename="../QScintilla/MiniEditor.py" line="1349" />
-      <location filename="../QScintilla/MiniEditor.py" line="1309" />
+      <location filename="../QScintilla/MiniEditor.py" line="1366" />
+      <location filename="../QScintilla/MiniEditor.py" line="1326" />
       <location filename="../QScintilla/ShellWindow.py" line="835" />
       <source>Alt+Shift+Left</source>
       <translation>Alt+Shift+Left</translation>
@@ -86205,8 +86526,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3093" />
       <location filename="../ViewManager/ViewManager.py" line="2195" />
-      <location filename="../QScintilla/MiniEditor.py" line="2270" />
-      <location filename="../QScintilla/MiniEditor.py" line="1355" />
+      <location filename="../QScintilla/MiniEditor.py" line="2287" />
+      <location filename="../QScintilla/MiniEditor.py" line="1372" />
       <location filename="../QScintilla/ShellWindow.py" line="841" />
       <source>Ctrl+Shift+Left</source>
       <translation>Ctrl+Shift+Left</translation>
@@ -86214,8 +86535,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2206" />
       <location filename="../ViewManager/ViewManager.py" line="2203" />
-      <location filename="../QScintilla/MiniEditor.py" line="1366" />
-      <location filename="../QScintilla/MiniEditor.py" line="1363" />
+      <location filename="../QScintilla/MiniEditor.py" line="1383" />
+      <location filename="../QScintilla/MiniEditor.py" line="1380" />
       <location filename="../QScintilla/ShellWindow.py" line="852" />
       <location filename="../QScintilla/ShellWindow.py" line="849" />
       <source>Extend selection right one word</source>
@@ -86225,9 +86546,9 @@
       <location filename="../ViewManager/ViewManager.py" line="2967" />
       <location filename="../ViewManager/ViewManager.py" line="2217" />
       <location filename="../ViewManager/ViewManager.py" line="2171" />
-      <location filename="../QScintilla/MiniEditor.py" line="2144" />
-      <location filename="../QScintilla/MiniEditor.py" line="1377" />
-      <location filename="../QScintilla/MiniEditor.py" line="1331" />
+      <location filename="../QScintilla/MiniEditor.py" line="2161" />
+      <location filename="../QScintilla/MiniEditor.py" line="1394" />
+      <location filename="../QScintilla/MiniEditor.py" line="1348" />
       <location filename="../QScintilla/ShellWindow.py" line="863" />
       <source>Alt+Shift+Right</source>
       <translation>Alt+Shift+Right</translation>
@@ -86235,8 +86556,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2654" />
       <location filename="../ViewManager/ViewManager.py" line="2223" />
-      <location filename="../QScintilla/MiniEditor.py" line="1831" />
-      <location filename="../QScintilla/MiniEditor.py" line="1383" />
+      <location filename="../QScintilla/MiniEditor.py" line="1848" />
+      <location filename="../QScintilla/MiniEditor.py" line="1400" />
       <location filename="../QScintilla/ShellWindow.py" line="869" />
       <source>Ctrl+Shift+Right</source>
       <translation>Ctrl+Shift+Right</translation>
@@ -86244,8 +86565,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2235" />
       <location filename="../ViewManager/ViewManager.py" line="2231" />
-      <location filename="../QScintilla/MiniEditor.py" line="1395" />
-      <location filename="../QScintilla/MiniEditor.py" line="1391" />
+      <location filename="../QScintilla/MiniEditor.py" line="1412" />
+      <location filename="../QScintilla/MiniEditor.py" line="1408" />
       <location filename="../QScintilla/ShellWindow.py" line="881" />
       <location filename="../QScintilla/ShellWindow.py" line="877" />
       <source>Extend selection to first visible character in document line</source>
@@ -86253,7 +86574,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2246" />
-      <location filename="../QScintilla/MiniEditor.py" line="1406" />
+      <location filename="../QScintilla/MiniEditor.py" line="1423" />
       <location filename="../QScintilla/ShellWindow.py" line="892" />
       <source>Shift+Home</source>
       <translation>Shift+Home</translation>
@@ -86261,8 +86582,8 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2256" />
       <location filename="../ViewManager/ViewManager.py" line="2253" />
-      <location filename="../QScintilla/MiniEditor.py" line="1416" />
-      <location filename="../QScintilla/MiniEditor.py" line="1413" />
+      <location filename="../QScintilla/MiniEditor.py" line="1433" />
+      <location filename="../QScintilla/MiniEditor.py" line="1430" />
       <location filename="../QScintilla/ShellWindow.py" line="902" />
       <location filename="../QScintilla/ShellWindow.py" line="899" />
       <source>Extend selection to end of document line</source>
@@ -86270,14 +86591,14 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2266" />
-      <location filename="../QScintilla/MiniEditor.py" line="1426" />
+      <location filename="../QScintilla/MiniEditor.py" line="1443" />
       <location filename="../QScintilla/ShellWindow.py" line="912" />
       <source>Meta+Shift+E</source>
       <translation>Meta+Shift+E</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2270" />
-      <location filename="../QScintilla/MiniEditor.py" line="1430" />
+      <location filename="../QScintilla/MiniEditor.py" line="1447" />
       <location filename="../QScintilla/ShellWindow.py" line="916" />
       <source>Shift+End</source>
       <translation>Shift+End</translation>
@@ -86286,21 +86607,21 @@
       <location filename="../ViewManager/ViewManager.py" line="4038" />
       <location filename="../ViewManager/ViewManager.py" line="4035" />
       <location filename="../ViewManager/ViewManager.py" line="3470" />
-      <location filename="../QScintilla/MiniEditor.py" line="2526" />
+      <location filename="../QScintilla/MiniEditor.py" line="2543" />
       <location filename="../QScintilla/ShellWindow.py" line="930" />
       <source>Search</source>
       <translation>搜索</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3472" />
-      <location filename="../QScintilla/MiniEditor.py" line="2528" />
+      <location filename="../QScintilla/MiniEditor.py" line="2545" />
       <location filename="../QScintilla/ShellWindow.py" line="932" />
       <source>&amp;Search...</source>
       <translation>搜索(&amp;S)…</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3474" />
-      <location filename="../QScintilla/MiniEditor.py" line="2530" />
+      <location filename="../QScintilla/MiniEditor.py" line="2547" />
       <location filename="../QScintilla/ShellWindow.py" line="934" />
       <source>Ctrl+F</source>
       <comment>Search|Search</comment>
@@ -86308,7 +86629,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3481" />
-      <location filename="../QScintilla/MiniEditor.py" line="2537" />
+      <location filename="../QScintilla/MiniEditor.py" line="2554" />
       <location filename="../QScintilla/ShellWindow.py" line="941" />
       <source>Search for a text</source>
       <translation>搜索文本</translation>
@@ -86320,21 +86641,21 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3496" />
-      <location filename="../QScintilla/MiniEditor.py" line="2552" />
+      <location filename="../QScintilla/MiniEditor.py" line="2569" />
       <location filename="../QScintilla/ShellWindow.py" line="956" />
       <source>Search next</source>
       <translation>搜索下一个</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3498" />
-      <location filename="../QScintilla/MiniEditor.py" line="2554" />
+      <location filename="../QScintilla/MiniEditor.py" line="2571" />
       <location filename="../QScintilla/ShellWindow.py" line="958" />
       <source>Search &amp;next</source>
       <translation>搜索下一个(&amp;N)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3500" />
-      <location filename="../QScintilla/MiniEditor.py" line="2556" />
+      <location filename="../QScintilla/MiniEditor.py" line="2573" />
       <location filename="../QScintilla/ShellWindow.py" line="960" />
       <source>F3</source>
       <comment>Search|Search next</comment>
@@ -86342,7 +86663,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3507" />
-      <location filename="../QScintilla/MiniEditor.py" line="2563" />
+      <location filename="../QScintilla/MiniEditor.py" line="2580" />
       <location filename="../QScintilla/ShellWindow.py" line="967" />
       <source>Search next occurrence of text</source>
       <translation>搜索下一处文本</translation>
@@ -86354,21 +86675,21 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3522" />
-      <location filename="../QScintilla/MiniEditor.py" line="2578" />
+      <location filename="../QScintilla/MiniEditor.py" line="2595" />
       <location filename="../QScintilla/ShellWindow.py" line="984" />
       <source>Search previous</source>
       <translation>搜索上一个</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3524" />
-      <location filename="../QScintilla/MiniEditor.py" line="2580" />
+      <location filename="../QScintilla/MiniEditor.py" line="2597" />
       <location filename="../QScintilla/ShellWindow.py" line="986" />
       <source>Search &amp;previous</source>
       <translation>搜索上一个(&amp;P)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3526" />
-      <location filename="../QScintilla/MiniEditor.py" line="2582" />
+      <location filename="../QScintilla/MiniEditor.py" line="2599" />
       <location filename="../QScintilla/ShellWindow.py" line="988" />
       <source>Shift+F3</source>
       <comment>Search|Search previous</comment>
@@ -86376,7 +86697,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3535" />
-      <location filename="../QScintilla/MiniEditor.py" line="2591" />
+      <location filename="../QScintilla/MiniEditor.py" line="2608" />
       <location filename="../QScintilla/ShellWindow.py" line="997" />
       <source>Search previous occurrence of text</source>
       <translation>搜索上一处文本</translation>
@@ -86388,21 +86709,21 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4079" />
-      <location filename="../QScintilla/MiniEditor.py" line="2749" />
+      <location filename="../QScintilla/MiniEditor.py" line="2766" />
       <location filename="../QScintilla/ShellWindow.py" line="1023" />
       <source>Zoom in</source>
       <translation>放大</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4081" />
-      <location filename="../QScintilla/MiniEditor.py" line="2751" />
+      <location filename="../QScintilla/MiniEditor.py" line="2768" />
       <location filename="../QScintilla/ShellWindow.py" line="1025" />
       <source>Zoom &amp;in</source>
       <translation>放大(&amp;I)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4083" />
-      <location filename="../QScintilla/MiniEditor.py" line="2753" />
+      <location filename="../QScintilla/MiniEditor.py" line="2770" />
       <location filename="../QScintilla/ShellWindow.py" line="1027" />
       <source>Ctrl++</source>
       <comment>View|Zoom in</comment>
@@ -86410,7 +86731,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4086" />
-      <location filename="../QScintilla/MiniEditor.py" line="2756" />
+      <location filename="../QScintilla/MiniEditor.py" line="2773" />
       <location filename="../QScintilla/ShellWindow.py" line="1030" />
       <source>Zoom In</source>
       <comment>View|Zoom in</comment>
@@ -86418,35 +86739,35 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4092" />
-      <location filename="../QScintilla/MiniEditor.py" line="2762" />
+      <location filename="../QScintilla/MiniEditor.py" line="2779" />
       <location filename="../QScintilla/ShellWindow.py" line="1036" />
       <source>Zoom in on the text</source>
       <translation>放大显示文本</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4095" />
-      <location filename="../QScintilla/MiniEditor.py" line="2765" />
+      <location filename="../QScintilla/MiniEditor.py" line="2782" />
       <location filename="../QScintilla/ShellWindow.py" line="1039" />
       <source>&lt;b&gt;Zoom in&lt;/b&gt;&lt;p&gt;Zoom in on the text. This makes the text bigger.&lt;/p&gt;</source>
       <translation>&lt;b&gt;放大&lt;/b&gt;&lt;p&gt;放大显示文本。将使文本变大。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4105" />
-      <location filename="../QScintilla/MiniEditor.py" line="2775" />
+      <location filename="../QScintilla/MiniEditor.py" line="2792" />
       <location filename="../QScintilla/ShellWindow.py" line="1049" />
       <source>Zoom out</source>
       <translation>缩小</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4107" />
-      <location filename="../QScintilla/MiniEditor.py" line="2777" />
+      <location filename="../QScintilla/MiniEditor.py" line="2794" />
       <location filename="../QScintilla/ShellWindow.py" line="1051" />
       <source>Zoom &amp;out</source>
       <translation>缩小(&amp;O)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4109" />
-      <location filename="../QScintilla/MiniEditor.py" line="2779" />
+      <location filename="../QScintilla/MiniEditor.py" line="2796" />
       <location filename="../QScintilla/ShellWindow.py" line="1053" />
       <source>Ctrl+-</source>
       <comment>View|Zoom out</comment>
@@ -86454,7 +86775,7 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4112" />
-      <location filename="../QScintilla/MiniEditor.py" line="2782" />
+      <location filename="../QScintilla/MiniEditor.py" line="2799" />
       <location filename="../QScintilla/ShellWindow.py" line="1056" />
       <source>Zoom Out</source>
       <comment>View|Zoom out</comment>
@@ -86462,35 +86783,35 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4118" />
-      <location filename="../QScintilla/MiniEditor.py" line="2788" />
+      <location filename="../QScintilla/MiniEditor.py" line="2805" />
       <location filename="../QScintilla/ShellWindow.py" line="1062" />
       <source>Zoom out on the text</source>
       <translation>缩小显示文本</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4121" />
-      <location filename="../QScintilla/MiniEditor.py" line="2791" />
+      <location filename="../QScintilla/MiniEditor.py" line="2808" />
       <location filename="../QScintilla/ShellWindow.py" line="1065" />
       <source>&lt;b&gt;Zoom out&lt;/b&gt;&lt;p&gt;Zoom out on the text. This makes the text smaller.&lt;/p&gt;</source>
       <translation>&lt;b&gt;缩小&lt;/b&gt;&lt;p&gt;缩小显示文本。将使文本变小。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4131" />
-      <location filename="../QScintilla/MiniEditor.py" line="2801" />
+      <location filename="../QScintilla/MiniEditor.py" line="2818" />
       <location filename="../QScintilla/ShellWindow.py" line="1075" />
       <source>Zoom reset</source>
       <translation>重置缩放</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4133" />
-      <location filename="../QScintilla/MiniEditor.py" line="2803" />
+      <location filename="../QScintilla/MiniEditor.py" line="2820" />
       <location filename="../QScintilla/ShellWindow.py" line="1077" />
       <source>Zoom &amp;reset</source>
       <translation>重置缩放(&amp;R)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4135" />
-      <location filename="../QScintilla/MiniEditor.py" line="2805" />
+      <location filename="../QScintilla/MiniEditor.py" line="2822" />
       <location filename="../QScintilla/ShellWindow.py" line="1079" />
       <source>Ctrl+0</source>
       <comment>View|Zoom reset</comment>
@@ -86498,42 +86819,42 @@
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4142" />
-      <location filename="../QScintilla/MiniEditor.py" line="2812" />
+      <location filename="../QScintilla/MiniEditor.py" line="2829" />
       <location filename="../QScintilla/ShellWindow.py" line="1086" />
       <source>Reset the zoom of the text</source>
       <translation>重置文本缩放大小</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4145" />
-      <location filename="../QScintilla/MiniEditor.py" line="2815" />
+      <location filename="../QScintilla/MiniEditor.py" line="2832" />
       <location filename="../QScintilla/ShellWindow.py" line="1089" />
       <source>&lt;b&gt;Zoom reset&lt;/b&gt;&lt;p&gt;Reset the zoom of the text. This sets the zoom factor to 100%.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4156" />
-      <location filename="../QScintilla/MiniEditor.py" line="2826" />
+      <location filename="../QScintilla/MiniEditor.py" line="2843" />
       <location filename="../QScintilla/ShellWindow.py" line="1100" />
       <source>Zoom</source>
       <translation>缩放</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4158" />
-      <location filename="../QScintilla/MiniEditor.py" line="2828" />
+      <location filename="../QScintilla/MiniEditor.py" line="2845" />
       <location filename="../QScintilla/ShellWindow.py" line="1102" />
       <source>&amp;Zoom</source>
       <translation>缩放(&amp;Z)</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4165" />
-      <location filename="../QScintilla/MiniEditor.py" line="2835" />
+      <location filename="../QScintilla/MiniEditor.py" line="2852" />
       <location filename="../QScintilla/ShellWindow.py" line="1109" />
       <source>Zoom the text</source>
       <translation>缩放文本</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="4168" />
-      <location filename="../QScintilla/MiniEditor.py" line="2838" />
+      <location filename="../QScintilla/MiniEditor.py" line="2855" />
       <location filename="../QScintilla/ShellWindow.py" line="1112" />
       <source>&lt;b&gt;Zoom&lt;/b&gt;&lt;p&gt;Zoom the text. This opens a dialog where the desired size can be entered.&lt;/p&gt;</source>
       <translation>&lt;b&gt;缩放&lt;/b&gt;&lt;p&gt;缩放文本。打开一个对话框以输入所需大小。&lt;/p&gt;</translation>
@@ -86541,984 +86862,984 @@
     <message>
       <location filename="../ViewManager/ViewManager.py" line="815" />
       <location filename="../ViewManager/ViewManager.py" line="813" />
-      <location filename="../QScintilla/MiniEditor.py" line="732" />
+      <location filename="../QScintilla/MiniEditor.py" line="749" />
       <source>Print Preview</source>
       <translation>打印预览</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1796" />
       <location filename="../ViewManager/ViewManager.py" line="1795" />
-      <location filename="../QScintilla/MiniEditor.py" line="952" />
-      <location filename="../QScintilla/MiniEditor.py" line="951" />
+      <location filename="../QScintilla/MiniEditor.py" line="969" />
+      <location filename="../QScintilla/MiniEditor.py" line="968" />
       <source>Move left one word part</source>
       <translation>左移一个单词部分</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1812" />
       <location filename="../ViewManager/ViewManager.py" line="1811" />
-      <location filename="../QScintilla/MiniEditor.py" line="968" />
-      <location filename="../QScintilla/MiniEditor.py" line="967" />
+      <location filename="../QScintilla/MiniEditor.py" line="985" />
+      <location filename="../QScintilla/MiniEditor.py" line="984" />
       <source>Move right one word part</source>
       <translation>右移一个单词部分</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2945" />
       <location filename="../ViewManager/ViewManager.py" line="1820" />
-      <location filename="../QScintilla/MiniEditor.py" line="2122" />
-      <location filename="../QScintilla/MiniEditor.py" line="1012" />
-      <location filename="../QScintilla/MiniEditor.py" line="976" />
+      <location filename="../QScintilla/MiniEditor.py" line="2139" />
+      <location filename="../QScintilla/MiniEditor.py" line="1029" />
+      <location filename="../QScintilla/MiniEditor.py" line="993" />
       <source>Alt+Right</source>
       <translation>Alt+Right</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1884" />
       <location filename="../ViewManager/ViewManager.py" line="1883" />
-      <location filename="../QScintilla/MiniEditor.py" line="1044" />
-      <location filename="../QScintilla/MiniEditor.py" line="1043" />
+      <location filename="../QScintilla/MiniEditor.py" line="1061" />
+      <location filename="../QScintilla/MiniEditor.py" line="1060" />
       <source>Move to start of display line</source>
       <translation>移动至所显示行的起始位置</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1896" />
-      <location filename="../QScintilla/MiniEditor.py" line="1056" />
+      <location filename="../QScintilla/MiniEditor.py" line="1073" />
       <source>Alt+Home</source>
       <translation>Alt+Home</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1924" />
       <location filename="../ViewManager/ViewManager.py" line="1923" />
-      <location filename="../QScintilla/MiniEditor.py" line="1084" />
-      <location filename="../QScintilla/MiniEditor.py" line="1083" />
+      <location filename="../QScintilla/MiniEditor.py" line="1101" />
+      <location filename="../QScintilla/MiniEditor.py" line="1100" />
       <source>Scroll view down one line</source>
       <translation>视图向下滚动一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1936" />
       <location filename="../ViewManager/ViewManager.py" line="1935" />
-      <location filename="../QScintilla/MiniEditor.py" line="1096" />
-      <location filename="../QScintilla/MiniEditor.py" line="1095" />
+      <location filename="../QScintilla/MiniEditor.py" line="1113" />
+      <location filename="../QScintilla/MiniEditor.py" line="1112" />
       <source>Scroll view up one line</source>
       <translation>视图向上滚动一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1948" />
       <location filename="../ViewManager/ViewManager.py" line="1947" />
-      <location filename="../QScintilla/MiniEditor.py" line="1108" />
-      <location filename="../QScintilla/MiniEditor.py" line="1107" />
+      <location filename="../QScintilla/MiniEditor.py" line="1125" />
+      <location filename="../QScintilla/MiniEditor.py" line="1124" />
       <source>Move up one paragraph</source>
       <translation>上移一段</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1949" />
-      <location filename="../QScintilla/MiniEditor.py" line="1109" />
+      <location filename="../QScintilla/MiniEditor.py" line="1126" />
       <source>Alt+Up</source>
       <translation>Alt+Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1960" />
       <location filename="../ViewManager/ViewManager.py" line="1959" />
-      <location filename="../QScintilla/MiniEditor.py" line="1120" />
-      <location filename="../QScintilla/MiniEditor.py" line="1119" />
+      <location filename="../QScintilla/MiniEditor.py" line="1137" />
+      <location filename="../QScintilla/MiniEditor.py" line="1136" />
       <source>Move down one paragraph</source>
       <translation>下移一段</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="1961" />
-      <location filename="../QScintilla/MiniEditor.py" line="1121" />
+      <location filename="../QScintilla/MiniEditor.py" line="1138" />
       <source>Alt+Down</source>
       <translation>Alt+Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2000" />
       <location filename="../ViewManager/ViewManager.py" line="1999" />
-      <location filename="../QScintilla/MiniEditor.py" line="1160" />
-      <location filename="../QScintilla/MiniEditor.py" line="1159" />
+      <location filename="../QScintilla/MiniEditor.py" line="1177" />
+      <location filename="../QScintilla/MiniEditor.py" line="1176" />
       <source>Move to start of document</source>
       <translation>移动至文档的起始位置</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2012" />
-      <location filename="../QScintilla/MiniEditor.py" line="1172" />
+      <location filename="../QScintilla/MiniEditor.py" line="1189" />
       <source>Ctrl+Home</source>
       <translation>Ctrl+Home</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2020" />
       <location filename="../ViewManager/ViewManager.py" line="2019" />
-      <location filename="../QScintilla/MiniEditor.py" line="1180" />
-      <location filename="../QScintilla/MiniEditor.py" line="1179" />
+      <location filename="../QScintilla/MiniEditor.py" line="1197" />
+      <location filename="../QScintilla/MiniEditor.py" line="1196" />
       <source>Move to end of document</source>
       <translation>移动至文档的末尾</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2032" />
-      <location filename="../QScintilla/MiniEditor.py" line="1192" />
+      <location filename="../QScintilla/MiniEditor.py" line="1209" />
       <source>Ctrl+End</source>
       <translation>Ctrl+End</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2052" />
       <location filename="../ViewManager/ViewManager.py" line="2051" />
-      <location filename="../QScintilla/MiniEditor.py" line="1212" />
-      <location filename="../QScintilla/MiniEditor.py" line="1211" />
+      <location filename="../QScintilla/MiniEditor.py" line="1229" />
+      <location filename="../QScintilla/MiniEditor.py" line="1228" />
       <source>Unindent one level</source>
       <translation>取消缩进一级</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2053" />
-      <location filename="../QScintilla/MiniEditor.py" line="1213" />
+      <location filename="../QScintilla/MiniEditor.py" line="1230" />
       <source>Shift+Tab</source>
       <translation>Shift+Tab</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2104" />
       <location filename="../ViewManager/ViewManager.py" line="2103" />
-      <location filename="../QScintilla/MiniEditor.py" line="1264" />
-      <location filename="../QScintilla/MiniEditor.py" line="1263" />
+      <location filename="../QScintilla/MiniEditor.py" line="1281" />
+      <location filename="../QScintilla/MiniEditor.py" line="1280" />
       <source>Extend selection up one line</source>
       <translation>选区向上扩展一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2105" />
-      <location filename="../QScintilla/MiniEditor.py" line="1265" />
+      <location filename="../QScintilla/MiniEditor.py" line="1282" />
       <source>Shift+Up</source>
       <translation>Shift+Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2112" />
-      <location filename="../QScintilla/MiniEditor.py" line="1272" />
+      <location filename="../QScintilla/MiniEditor.py" line="1289" />
       <source>Meta+Shift+P</source>
       <translation>Meta+Shift+P</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2120" />
       <location filename="../ViewManager/ViewManager.py" line="2119" />
-      <location filename="../QScintilla/MiniEditor.py" line="1280" />
-      <location filename="../QScintilla/MiniEditor.py" line="1279" />
+      <location filename="../QScintilla/MiniEditor.py" line="1297" />
+      <location filename="../QScintilla/MiniEditor.py" line="1296" />
       <source>Extend selection down one line</source>
       <translation>选区向下扩展一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2121" />
-      <location filename="../QScintilla/MiniEditor.py" line="1281" />
+      <location filename="../QScintilla/MiniEditor.py" line="1298" />
       <source>Shift+Down</source>
       <translation>Shift+Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2128" />
-      <location filename="../QScintilla/MiniEditor.py" line="1288" />
+      <location filename="../QScintilla/MiniEditor.py" line="1305" />
       <source>Meta+Shift+N</source>
       <translation>Meta+Shift+N</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2138" />
       <location filename="../ViewManager/ViewManager.py" line="2135" />
-      <location filename="../QScintilla/MiniEditor.py" line="1298" />
-      <location filename="../QScintilla/MiniEditor.py" line="1295" />
+      <location filename="../QScintilla/MiniEditor.py" line="1315" />
+      <location filename="../QScintilla/MiniEditor.py" line="1312" />
       <source>Extend selection left one word part</source>
       <translation>选区向左扩展一个单词部分</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2160" />
       <location filename="../ViewManager/ViewManager.py" line="2157" />
-      <location filename="../QScintilla/MiniEditor.py" line="1320" />
-      <location filename="../QScintilla/MiniEditor.py" line="1317" />
+      <location filename="../QScintilla/MiniEditor.py" line="1337" />
+      <location filename="../QScintilla/MiniEditor.py" line="1334" />
       <source>Extend selection right one word part</source>
       <translation>选区向右扩展一个单词部分</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2280" />
       <location filename="../ViewManager/ViewManager.py" line="2277" />
-      <location filename="../QScintilla/MiniEditor.py" line="1440" />
-      <location filename="../QScintilla/MiniEditor.py" line="1437" />
+      <location filename="../QScintilla/MiniEditor.py" line="1457" />
+      <location filename="../QScintilla/MiniEditor.py" line="1454" />
       <source>Extend selection up one paragraph</source>
       <translation>选区向上扩展一段</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2283" />
-      <location filename="../QScintilla/MiniEditor.py" line="1443" />
+      <location filename="../QScintilla/MiniEditor.py" line="1460" />
       <source>Alt+Shift+Up</source>
       <translation>Alt+Shift+Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2296" />
       <location filename="../ViewManager/ViewManager.py" line="2293" />
-      <location filename="../QScintilla/MiniEditor.py" line="1456" />
-      <location filename="../QScintilla/MiniEditor.py" line="1453" />
+      <location filename="../QScintilla/MiniEditor.py" line="1473" />
+      <location filename="../QScintilla/MiniEditor.py" line="1470" />
       <source>Extend selection down one paragraph</source>
       <translation>选区向下扩展一段</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2299" />
-      <location filename="../QScintilla/MiniEditor.py" line="1459" />
+      <location filename="../QScintilla/MiniEditor.py" line="1476" />
       <source>Alt+Shift+Down</source>
       <translation>Alt+Shift+Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2310" />
       <location filename="../ViewManager/ViewManager.py" line="2309" />
-      <location filename="../QScintilla/MiniEditor.py" line="1470" />
-      <location filename="../QScintilla/MiniEditor.py" line="1469" />
+      <location filename="../QScintilla/MiniEditor.py" line="1487" />
+      <location filename="../QScintilla/MiniEditor.py" line="1486" />
       <source>Extend selection up one page</source>
       <translation>选区向上扩展一页</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2311" />
-      <location filename="../QScintilla/MiniEditor.py" line="1471" />
+      <location filename="../QScintilla/MiniEditor.py" line="1488" />
       <source>Shift+PgUp</source>
       <translation>Shift+PgUp</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2322" />
       <location filename="../ViewManager/ViewManager.py" line="2321" />
-      <location filename="../QScintilla/MiniEditor.py" line="1482" />
-      <location filename="../QScintilla/MiniEditor.py" line="1481" />
+      <location filename="../QScintilla/MiniEditor.py" line="1499" />
+      <location filename="../QScintilla/MiniEditor.py" line="1498" />
       <source>Extend selection down one page</source>
       <translation>选区向下扩展一页</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2323" />
-      <location filename="../QScintilla/MiniEditor.py" line="1483" />
+      <location filename="../QScintilla/MiniEditor.py" line="1500" />
       <source>Shift+PgDown</source>
       <translation>Shift+PgDown</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2330" />
-      <location filename="../QScintilla/MiniEditor.py" line="1490" />
+      <location filename="../QScintilla/MiniEditor.py" line="1507" />
       <source>Meta+Shift+V</source>
       <translation>Meta+Shift+V</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2340" />
       <location filename="../ViewManager/ViewManager.py" line="2337" />
-      <location filename="../QScintilla/MiniEditor.py" line="1500" />
-      <location filename="../QScintilla/MiniEditor.py" line="1497" />
+      <location filename="../QScintilla/MiniEditor.py" line="1517" />
+      <location filename="../QScintilla/MiniEditor.py" line="1514" />
       <source>Extend selection to start of document</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2350" />
-      <location filename="../QScintilla/MiniEditor.py" line="1510" />
+      <location filename="../QScintilla/MiniEditor.py" line="1527" />
       <source>Ctrl+Shift+Up</source>
       <translation>Ctrl+Shift+Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2355" />
-      <location filename="../QScintilla/MiniEditor.py" line="1515" />
+      <location filename="../QScintilla/MiniEditor.py" line="1532" />
       <source>Ctrl+Shift+Home</source>
       <translation>Ctrl+Shift+Home</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2366" />
       <location filename="../ViewManager/ViewManager.py" line="2363" />
-      <location filename="../QScintilla/MiniEditor.py" line="1526" />
-      <location filename="../QScintilla/MiniEditor.py" line="1523" />
+      <location filename="../QScintilla/MiniEditor.py" line="1543" />
+      <location filename="../QScintilla/MiniEditor.py" line="1540" />
       <source>Extend selection to end of document</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2377" />
-      <location filename="../QScintilla/MiniEditor.py" line="1537" />
+      <location filename="../QScintilla/MiniEditor.py" line="1554" />
       <source>Ctrl+Shift+Down</source>
       <translation>Ctrl+Shift+Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2383" />
-      <location filename="../QScintilla/MiniEditor.py" line="1543" />
+      <location filename="../QScintilla/MiniEditor.py" line="1560" />
       <source>Ctrl+Shift+End</source>
       <translation>Ctrl+Shift+End</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2416" />
       <location filename="../ViewManager/ViewManager.py" line="2413" />
-      <location filename="../QScintilla/MiniEditor.py" line="1576" />
-      <location filename="../QScintilla/MiniEditor.py" line="1573" />
+      <location filename="../QScintilla/MiniEditor.py" line="1593" />
+      <location filename="../QScintilla/MiniEditor.py" line="1590" />
       <source>Delete previous character if not at start of line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2545" />
       <location filename="../ViewManager/ViewManager.py" line="2544" />
-      <location filename="../QScintilla/MiniEditor.py" line="1690" />
-      <location filename="../QScintilla/MiniEditor.py" line="1689" />
+      <location filename="../QScintilla/MiniEditor.py" line="1707" />
+      <location filename="../QScintilla/MiniEditor.py" line="1706" />
       <source>Duplicate current line</source>
       <translation>重复当前行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2546" />
-      <location filename="../QScintilla/MiniEditor.py" line="1691" />
+      <location filename="../QScintilla/MiniEditor.py" line="1708" />
       <source>Ctrl+D</source>
       <translation>Ctrl+D</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2559" />
       <location filename="../ViewManager/ViewManager.py" line="2556" />
-      <location filename="../QScintilla/MiniEditor.py" line="1704" />
-      <location filename="../QScintilla/MiniEditor.py" line="1701" />
+      <location filename="../QScintilla/MiniEditor.py" line="1721" />
+      <location filename="../QScintilla/MiniEditor.py" line="1718" />
       <source>Swap current and previous lines</source>
       <translation>当前行与上一行交换位置</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2562" />
-      <location filename="../QScintilla/MiniEditor.py" line="1707" />
+      <location filename="../QScintilla/MiniEditor.py" line="1724" />
       <source>Ctrl+T</source>
       <translation>Ctrl+T</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2573" />
       <location filename="../ViewManager/ViewManager.py" line="2572" />
-      <location filename="../QScintilla/MiniEditor.py" line="1718" />
-      <location filename="../QScintilla/MiniEditor.py" line="1717" />
+      <location filename="../QScintilla/MiniEditor.py" line="1735" />
+      <location filename="../QScintilla/MiniEditor.py" line="1734" />
       <source>Reverse selected lines</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2574" />
-      <location filename="../QScintilla/MiniEditor.py" line="1719" />
+      <location filename="../QScintilla/MiniEditor.py" line="1736" />
       <source>Meta+Alt+R</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2585" />
       <location filename="../ViewManager/ViewManager.py" line="2584" />
-      <location filename="../QScintilla/MiniEditor.py" line="1730" />
-      <location filename="../QScintilla/MiniEditor.py" line="1729" />
+      <location filename="../QScintilla/MiniEditor.py" line="1747" />
+      <location filename="../QScintilla/MiniEditor.py" line="1746" />
       <source>Cut current line</source>
       <translation>剪切当前行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2586" />
-      <location filename="../QScintilla/MiniEditor.py" line="1731" />
+      <location filename="../QScintilla/MiniEditor.py" line="1748" />
       <source>Alt+Shift+L</source>
       <translation>Alt+Shift+L</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2597" />
       <location filename="../ViewManager/ViewManager.py" line="2596" />
-      <location filename="../QScintilla/MiniEditor.py" line="1742" />
-      <location filename="../QScintilla/MiniEditor.py" line="1741" />
+      <location filename="../QScintilla/MiniEditor.py" line="1759" />
+      <location filename="../QScintilla/MiniEditor.py" line="1758" />
       <source>Copy current line</source>
       <translation>复制当前行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2598" />
-      <location filename="../QScintilla/MiniEditor.py" line="1743" />
+      <location filename="../QScintilla/MiniEditor.py" line="1760" />
       <source>Ctrl+Shift+T</source>
       <translation>Ctrl+Shift+T</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2609" />
       <location filename="../ViewManager/ViewManager.py" line="2608" />
-      <location filename="../QScintilla/MiniEditor.py" line="1754" />
-      <location filename="../QScintilla/MiniEditor.py" line="1753" />
+      <location filename="../QScintilla/MiniEditor.py" line="1771" />
+      <location filename="../QScintilla/MiniEditor.py" line="1770" />
       <source>Toggle insert/overtype</source>
       <translation>切换插入/改写状态</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2610" />
-      <location filename="../QScintilla/MiniEditor.py" line="1755" />
+      <location filename="../QScintilla/MiniEditor.py" line="1772" />
       <source>Ins</source>
       <translation>Ins</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3335" />
       <location filename="../ViewManager/ViewManager.py" line="3332" />
-      <location filename="../QScintilla/MiniEditor.py" line="1768" />
-      <location filename="../QScintilla/MiniEditor.py" line="1765" />
+      <location filename="../QScintilla/MiniEditor.py" line="1785" />
+      <location filename="../QScintilla/MiniEditor.py" line="1782" />
       <source>Convert selection to lower case</source>
       <translation>将所选内容转换成小写</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3338" />
-      <location filename="../QScintilla/MiniEditor.py" line="1771" />
+      <location filename="../QScintilla/MiniEditor.py" line="1788" />
       <source>Alt+Shift+U</source>
       <translation>Alt+Shift+U</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3351" />
       <location filename="../ViewManager/ViewManager.py" line="3348" />
-      <location filename="../QScintilla/MiniEditor.py" line="1784" />
-      <location filename="../QScintilla/MiniEditor.py" line="1781" />
+      <location filename="../QScintilla/MiniEditor.py" line="1801" />
+      <location filename="../QScintilla/MiniEditor.py" line="1798" />
       <source>Convert selection to upper case</source>
       <translation>将所选内容转换成大写</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3354" />
-      <location filename="../QScintilla/MiniEditor.py" line="1787" />
+      <location filename="../QScintilla/MiniEditor.py" line="1804" />
       <source>Ctrl+Shift+U</source>
       <translation>Ctrl+Shift+U</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2621" />
       <location filename="../ViewManager/ViewManager.py" line="2620" />
-      <location filename="../QScintilla/MiniEditor.py" line="1798" />
-      <location filename="../QScintilla/MiniEditor.py" line="1797" />
+      <location filename="../QScintilla/MiniEditor.py" line="1815" />
+      <location filename="../QScintilla/MiniEditor.py" line="1814" />
       <source>Move to end of display line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2633" />
-      <location filename="../QScintilla/MiniEditor.py" line="1810" />
+      <location filename="../QScintilla/MiniEditor.py" line="1827" />
       <source>Alt+End</source>
       <translation>Alt+End</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2643" />
       <location filename="../ViewManager/ViewManager.py" line="2640" />
-      <location filename="../QScintilla/MiniEditor.py" line="1820" />
-      <location filename="../QScintilla/MiniEditor.py" line="1817" />
+      <location filename="../QScintilla/MiniEditor.py" line="1837" />
+      <location filename="../QScintilla/MiniEditor.py" line="1834" />
       <source>Extend selection to end of display line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2663" />
       <location filename="../ViewManager/ViewManager.py" line="2662" />
-      <location filename="../QScintilla/MiniEditor.py" line="1840" />
-      <location filename="../QScintilla/MiniEditor.py" line="1839" />
+      <location filename="../QScintilla/MiniEditor.py" line="1857" />
+      <location filename="../QScintilla/MiniEditor.py" line="1856" />
       <source>Formfeed</source>
       <translation>Formfeed</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2689" />
       <location filename="../ViewManager/ViewManager.py" line="2686" />
-      <location filename="../QScintilla/MiniEditor.py" line="1866" />
-      <location filename="../QScintilla/MiniEditor.py" line="1863" />
+      <location filename="../QScintilla/MiniEditor.py" line="1883" />
+      <location filename="../QScintilla/MiniEditor.py" line="1880" />
       <source>Extend rectangular selection down one line</source>
       <translation>矩形选区向下扩展一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2692" />
-      <location filename="../QScintilla/MiniEditor.py" line="1869" />
+      <location filename="../QScintilla/MiniEditor.py" line="1886" />
       <source>Alt+Ctrl+Down</source>
       <translation>Alt+Ctrl+Down</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2700" />
-      <location filename="../QScintilla/MiniEditor.py" line="1877" />
+      <location filename="../QScintilla/MiniEditor.py" line="1894" />
       <source>Meta+Alt+Shift+N</source>
       <translation>Meta+Alt+Shift+N</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2711" />
       <location filename="../ViewManager/ViewManager.py" line="2708" />
-      <location filename="../QScintilla/MiniEditor.py" line="1888" />
-      <location filename="../QScintilla/MiniEditor.py" line="1885" />
+      <location filename="../QScintilla/MiniEditor.py" line="1905" />
+      <location filename="../QScintilla/MiniEditor.py" line="1902" />
       <source>Extend rectangular selection up one line</source>
       <translation>矩形选区向上扩展一行</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2714" />
-      <location filename="../QScintilla/MiniEditor.py" line="1891" />
+      <location filename="../QScintilla/MiniEditor.py" line="1908" />
       <source>Alt+Ctrl+Up</source>
       <translation>Alt+Ctrl+Up</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2722" />
-      <location filename="../QScintilla/MiniEditor.py" line="1899" />
+      <location filename="../QScintilla/MiniEditor.py" line="1916" />
       <source>Meta+Alt+Shift+P</source>
       <translation>Meta+Alt+Shift+P</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2733" />
       <location filename="../ViewManager/ViewManager.py" line="2730" />
-      <location filename="../QScintilla/MiniEditor.py" line="1910" />
-      <location filename="../QScintilla/MiniEditor.py" line="1907" />
+      <location filename="../QScintilla/MiniEditor.py" line="1927" />
+      <location filename="../QScintilla/MiniEditor.py" line="1924" />
       <source>Extend rectangular selection left one character</source>
       <translation>矩形选区向左扩展一个字符</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2736" />
-      <location filename="../QScintilla/MiniEditor.py" line="1913" />
+      <location filename="../QScintilla/MiniEditor.py" line="1930" />
       <source>Alt+Ctrl+Left</source>
       <translation>Alt+Ctrl+Left</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2744" />
-      <location filename="../QScintilla/MiniEditor.py" line="1921" />
+      <location filename="../QScintilla/MiniEditor.py" line="1938" />
       <source>Meta+Alt+Shift+B</source>
       <translation>Meta+Alt+Shift+B</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2755" />
       <location filename="../ViewManager/ViewManager.py" line="2752" />
-      <location filename="../QScintilla/MiniEditor.py" line="1932" />
-      <location filename="../QScintilla/MiniEditor.py" line="1929" />
+      <location filename="../QScintilla/MiniEditor.py" line="1949" />
+      <location filename="../QScintilla/MiniEditor.py" line="1946" />
       <source>Extend rectangular selection right one character</source>
       <translation>矩形选区向右扩展一个字符</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2758" />
-      <location filename="../QScintilla/MiniEditor.py" line="1935" />
+      <location filename="../QScintilla/MiniEditor.py" line="1952" />
       <source>Alt+Ctrl+Right</source>
       <translation>Alt+Ctrl+Right</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2766" />
-      <location filename="../QScintilla/MiniEditor.py" line="1943" />
+      <location filename="../QScintilla/MiniEditor.py" line="1960" />
       <source>Meta+Alt+Shift+F</source>
       <translation>Meta+Alt+Shift+F</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2779" />
       <location filename="../ViewManager/ViewManager.py" line="2774" />
-      <location filename="../QScintilla/MiniEditor.py" line="1956" />
-      <location filename="../QScintilla/MiniEditor.py" line="1951" />
+      <location filename="../QScintilla/MiniEditor.py" line="1973" />
+      <location filename="../QScintilla/MiniEditor.py" line="1968" />
       <source>Extend rectangular selection to first visible character in document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2792" />
-      <location filename="../QScintilla/MiniEditor.py" line="1969" />
+      <location filename="../QScintilla/MiniEditor.py" line="1986" />
       <source>Alt+Shift+Home</source>
       <translation>Alt+Shift+Home</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2803" />
       <location filename="../ViewManager/ViewManager.py" line="2800" />
-      <location filename="../QScintilla/MiniEditor.py" line="1980" />
-      <location filename="../QScintilla/MiniEditor.py" line="1977" />
+      <location filename="../QScintilla/MiniEditor.py" line="1997" />
+      <location filename="../QScintilla/MiniEditor.py" line="1994" />
       <source>Extend rectangular selection to end of document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2814" />
-      <location filename="../QScintilla/MiniEditor.py" line="1991" />
+      <location filename="../QScintilla/MiniEditor.py" line="2008" />
       <source>Meta+Alt+Shift+E</source>
       <translation>Meta+Alt+Shift+E</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2819" />
-      <location filename="../QScintilla/MiniEditor.py" line="1996" />
+      <location filename="../QScintilla/MiniEditor.py" line="2013" />
       <source>Alt+Shift+End</source>
       <translation>Alt+Shift+End</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2829" />
       <location filename="../ViewManager/ViewManager.py" line="2826" />
-      <location filename="../QScintilla/MiniEditor.py" line="2006" />
-      <location filename="../QScintilla/MiniEditor.py" line="2003" />
+      <location filename="../QScintilla/MiniEditor.py" line="2023" />
+      <location filename="../QScintilla/MiniEditor.py" line="2020" />
       <source>Extend rectangular selection up one page</source>
       <translation>矩形选区向上扩展一页</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2832" />
-      <location filename="../QScintilla/MiniEditor.py" line="2009" />
+      <location filename="../QScintilla/MiniEditor.py" line="2026" />
       <source>Alt+Shift+PgUp</source>
       <translation>Alt+Shift+PgUp</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2845" />
       <location filename="../ViewManager/ViewManager.py" line="2842" />
-      <location filename="../QScintilla/MiniEditor.py" line="2022" />
-      <location filename="../QScintilla/MiniEditor.py" line="2019" />
+      <location filename="../QScintilla/MiniEditor.py" line="2039" />
+      <location filename="../QScintilla/MiniEditor.py" line="2036" />
       <source>Extend rectangular selection down one page</source>
       <translation>矩形选区向下扩展一页</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2848" />
-      <location filename="../QScintilla/MiniEditor.py" line="2025" />
+      <location filename="../QScintilla/MiniEditor.py" line="2042" />
       <source>Alt+Shift+PgDown</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2856" />
-      <location filename="../QScintilla/MiniEditor.py" line="2033" />
+      <location filename="../QScintilla/MiniEditor.py" line="2050" />
       <source>Meta+Alt+Shift+V</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2865" />
       <location filename="../ViewManager/ViewManager.py" line="2864" />
-      <location filename="../QScintilla/MiniEditor.py" line="2508" />
-      <location filename="../QScintilla/MiniEditor.py" line="2507" />
-      <location filename="../QScintilla/MiniEditor.py" line="2042" />
-      <location filename="../QScintilla/MiniEditor.py" line="2041" />
+      <location filename="../QScintilla/MiniEditor.py" line="2525" />
+      <location filename="../QScintilla/MiniEditor.py" line="2524" />
+      <location filename="../QScintilla/MiniEditor.py" line="2059" />
+      <location filename="../QScintilla/MiniEditor.py" line="2058" />
       <source>Duplicate current selection</source>
       <translation>重复当前选区</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2866" />
-      <location filename="../QScintilla/MiniEditor.py" line="2509" />
-      <location filename="../QScintilla/MiniEditor.py" line="2043" />
+      <location filename="../QScintilla/MiniEditor.py" line="2526" />
+      <location filename="../QScintilla/MiniEditor.py" line="2060" />
       <source>Ctrl+Shift+D</source>
       <translation>Ctrl+Shift+D</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2880" />
       <location filename="../ViewManager/ViewManager.py" line="2877" />
-      <location filename="../QScintilla/MiniEditor.py" line="2057" />
-      <location filename="../QScintilla/MiniEditor.py" line="2054" />
+      <location filename="../QScintilla/MiniEditor.py" line="2074" />
+      <location filename="../QScintilla/MiniEditor.py" line="2071" />
       <source>Scroll to start of document</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2899" />
       <location filename="../ViewManager/ViewManager.py" line="2898" />
-      <location filename="../QScintilla/MiniEditor.py" line="2076" />
-      <location filename="../QScintilla/MiniEditor.py" line="2075" />
+      <location filename="../QScintilla/MiniEditor.py" line="2093" />
+      <location filename="../QScintilla/MiniEditor.py" line="2092" />
       <source>Scroll to end of document</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2918" />
       <location filename="../ViewManager/ViewManager.py" line="2915" />
-      <location filename="../QScintilla/MiniEditor.py" line="2095" />
-      <location filename="../QScintilla/MiniEditor.py" line="2092" />
+      <location filename="../QScintilla/MiniEditor.py" line="2112" />
+      <location filename="../QScintilla/MiniEditor.py" line="2109" />
       <source>Scroll vertically to center current line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2928" />
-      <location filename="../QScintilla/MiniEditor.py" line="2105" />
+      <location filename="../QScintilla/MiniEditor.py" line="2122" />
       <source>Meta+L</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2937" />
       <location filename="../ViewManager/ViewManager.py" line="2936" />
-      <location filename="../QScintilla/MiniEditor.py" line="2114" />
-      <location filename="../QScintilla/MiniEditor.py" line="2113" />
+      <location filename="../QScintilla/MiniEditor.py" line="2131" />
+      <location filename="../QScintilla/MiniEditor.py" line="2130" />
       <source>Move to end of next word</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2956" />
       <location filename="../ViewManager/ViewManager.py" line="2953" />
-      <location filename="../QScintilla/MiniEditor.py" line="2133" />
-      <location filename="../QScintilla/MiniEditor.py" line="2130" />
+      <location filename="../QScintilla/MiniEditor.py" line="2150" />
+      <location filename="../QScintilla/MiniEditor.py" line="2147" />
       <source>Extend selection to end of next word</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2979" />
       <location filename="../ViewManager/ViewManager.py" line="2976" />
-      <location filename="../QScintilla/MiniEditor.py" line="2156" />
-      <location filename="../QScintilla/MiniEditor.py" line="2153" />
+      <location filename="../QScintilla/MiniEditor.py" line="2173" />
+      <location filename="../QScintilla/MiniEditor.py" line="2170" />
       <source>Move to end of previous word</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="2996" />
       <location filename="../ViewManager/ViewManager.py" line="2993" />
-      <location filename="../QScintilla/MiniEditor.py" line="2173" />
-      <location filename="../QScintilla/MiniEditor.py" line="2170" />
+      <location filename="../QScintilla/MiniEditor.py" line="2190" />
+      <location filename="../QScintilla/MiniEditor.py" line="2187" />
       <source>Extend selection to end of previous word</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3013" />
       <location filename="../ViewManager/ViewManager.py" line="3010" />
-      <location filename="../QScintilla/MiniEditor.py" line="2190" />
-      <location filename="../QScintilla/MiniEditor.py" line="2187" />
+      <location filename="../QScintilla/MiniEditor.py" line="2207" />
+      <location filename="../QScintilla/MiniEditor.py" line="2204" />
       <source>Move to start of document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3023" />
-      <location filename="../QScintilla/MiniEditor.py" line="2200" />
+      <location filename="../QScintilla/MiniEditor.py" line="2217" />
       <source>Meta+A</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3034" />
       <location filename="../ViewManager/ViewManager.py" line="3031" />
-      <location filename="../QScintilla/MiniEditor.py" line="2211" />
-      <location filename="../QScintilla/MiniEditor.py" line="2208" />
+      <location filename="../QScintilla/MiniEditor.py" line="2228" />
+      <location filename="../QScintilla/MiniEditor.py" line="2225" />
       <source>Extend selection to start of document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3045" />
-      <location filename="../QScintilla/MiniEditor.py" line="2222" />
+      <location filename="../QScintilla/MiniEditor.py" line="2239" />
       <source>Meta+Shift+A</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3058" />
       <location filename="../ViewManager/ViewManager.py" line="3054" />
-      <location filename="../QScintilla/MiniEditor.py" line="2235" />
-      <location filename="../QScintilla/MiniEditor.py" line="2231" />
+      <location filename="../QScintilla/MiniEditor.py" line="2252" />
+      <location filename="../QScintilla/MiniEditor.py" line="2248" />
       <source>Extend rectangular selection to start of document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3070" />
-      <location filename="../QScintilla/MiniEditor.py" line="2247" />
+      <location filename="../QScintilla/MiniEditor.py" line="2264" />
       <source>Meta+Alt+Shift+A</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3082" />
       <location filename="../ViewManager/ViewManager.py" line="3079" />
-      <location filename="../QScintilla/MiniEditor.py" line="2259" />
-      <location filename="../QScintilla/MiniEditor.py" line="2256" />
+      <location filename="../QScintilla/MiniEditor.py" line="2276" />
+      <location filename="../QScintilla/MiniEditor.py" line="2273" />
       <source>Extend selection to start of display line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3105" />
       <location filename="../ViewManager/ViewManager.py" line="3102" />
-      <location filename="../QScintilla/MiniEditor.py" line="2282" />
-      <location filename="../QScintilla/MiniEditor.py" line="2279" />
+      <location filename="../QScintilla/MiniEditor.py" line="2299" />
+      <location filename="../QScintilla/MiniEditor.py" line="2296" />
       <source>Move to start of display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3123" />
       <location filename="../ViewManager/ViewManager.py" line="3119" />
-      <location filename="../QScintilla/MiniEditor.py" line="2300" />
-      <location filename="../QScintilla/MiniEditor.py" line="2296" />
+      <location filename="../QScintilla/MiniEditor.py" line="2317" />
+      <location filename="../QScintilla/MiniEditor.py" line="2313" />
       <source>Extend selection to start of display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3142" />
       <location filename="../ViewManager/ViewManager.py" line="3138" />
-      <location filename="../QScintilla/MiniEditor.py" line="2319" />
-      <location filename="../QScintilla/MiniEditor.py" line="2315" />
+      <location filename="../QScintilla/MiniEditor.py" line="2336" />
+      <location filename="../QScintilla/MiniEditor.py" line="2332" />
       <source>Move to first visible character in display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3162" />
       <location filename="../ViewManager/ViewManager.py" line="3157" />
-      <location filename="../QScintilla/MiniEditor.py" line="2339" />
-      <location filename="../QScintilla/MiniEditor.py" line="2334" />
+      <location filename="../QScintilla/MiniEditor.py" line="2356" />
+      <location filename="../QScintilla/MiniEditor.py" line="2351" />
       <source>Extend selection to first visible character in display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3181" />
       <location filename="../ViewManager/ViewManager.py" line="3178" />
-      <location filename="../QScintilla/MiniEditor.py" line="2358" />
-      <location filename="../QScintilla/MiniEditor.py" line="2355" />
+      <location filename="../QScintilla/MiniEditor.py" line="2375" />
+      <location filename="../QScintilla/MiniEditor.py" line="2372" />
       <source>Move to end of display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3198" />
       <location filename="../ViewManager/ViewManager.py" line="3195" />
-      <location filename="../QScintilla/MiniEditor.py" line="2375" />
-      <location filename="../QScintilla/MiniEditor.py" line="2372" />
+      <location filename="../QScintilla/MiniEditor.py" line="2392" />
+      <location filename="../QScintilla/MiniEditor.py" line="2389" />
       <source>Extend selection to end of display or document line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3213" />
       <location filename="../ViewManager/ViewManager.py" line="3212" />
-      <location filename="../QScintilla/MiniEditor.py" line="2390" />
-      <location filename="../QScintilla/MiniEditor.py" line="2389" />
+      <location filename="../QScintilla/MiniEditor.py" line="2407" />
+      <location filename="../QScintilla/MiniEditor.py" line="2406" />
       <source>Stuttered move up one page</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3228" />
       <location filename="../ViewManager/ViewManager.py" line="3225" />
-      <location filename="../QScintilla/MiniEditor.py" line="2405" />
-      <location filename="../QScintilla/MiniEditor.py" line="2402" />
+      <location filename="../QScintilla/MiniEditor.py" line="2422" />
+      <location filename="../QScintilla/MiniEditor.py" line="2419" />
       <source>Stuttered extend selection up one page</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3245" />
       <location filename="../ViewManager/ViewManager.py" line="3242" />
-      <location filename="../QScintilla/MiniEditor.py" line="2422" />
-      <location filename="../QScintilla/MiniEditor.py" line="2419" />
+      <location filename="../QScintilla/MiniEditor.py" line="2439" />
+      <location filename="../QScintilla/MiniEditor.py" line="2436" />
       <source>Stuttered move down one page</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3262" />
       <location filename="../ViewManager/ViewManager.py" line="3259" />
-      <location filename="../QScintilla/MiniEditor.py" line="2439" />
-      <location filename="../QScintilla/MiniEditor.py" line="2436" />
+      <location filename="../QScintilla/MiniEditor.py" line="2456" />
+      <location filename="../QScintilla/MiniEditor.py" line="2453" />
       <source>Stuttered extend selection down one page</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3279" />
       <location filename="../ViewManager/ViewManager.py" line="3276" />
-      <location filename="../QScintilla/MiniEditor.py" line="2456" />
-      <location filename="../QScintilla/MiniEditor.py" line="2453" />
+      <location filename="../QScintilla/MiniEditor.py" line="2473" />
+      <location filename="../QScintilla/MiniEditor.py" line="2470" />
       <source>Delete right to end of next word</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3289" />
-      <location filename="../QScintilla/MiniEditor.py" line="2466" />
+      <location filename="../QScintilla/MiniEditor.py" line="2483" />
       <source>Alt+Del</source>
       <translation>Alt+Del</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3300" />
       <location filename="../ViewManager/ViewManager.py" line="3297" />
-      <location filename="../QScintilla/MiniEditor.py" line="2477" />
-      <location filename="../QScintilla/MiniEditor.py" line="2474" />
+      <location filename="../QScintilla/MiniEditor.py" line="2494" />
+      <location filename="../QScintilla/MiniEditor.py" line="2491" />
       <source>Move selected lines up one line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3317" />
       <location filename="../ViewManager/ViewManager.py" line="3314" />
-      <location filename="../QScintilla/MiniEditor.py" line="2494" />
-      <location filename="../QScintilla/MiniEditor.py" line="2491" />
+      <location filename="../QScintilla/MiniEditor.py" line="2511" />
+      <location filename="../QScintilla/MiniEditor.py" line="2508" />
       <source>Move selected lines down one line</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3484" />
-      <location filename="../QScintilla/MiniEditor.py" line="2540" />
+      <location filename="../QScintilla/MiniEditor.py" line="2557" />
       <source>&lt;b&gt;Search&lt;/b&gt;&lt;p&gt;Search for some text in the current editor. A dialog is shown to enter the searchtext and options for the search.&lt;/p&gt;</source>
       <translation>&lt;b&gt;搜索&lt;/b&gt;&lt;p&gt;在当前编辑器中搜索某文本。显示一个对话框可以输入要搜索的文本和搜索选项。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3510" />
-      <location filename="../QScintilla/MiniEditor.py" line="2566" />
+      <location filename="../QScintilla/MiniEditor.py" line="2583" />
       <source>&lt;b&gt;Search next&lt;/b&gt;&lt;p&gt;Search the next occurrence of some text in the current editor. The previously entered searchtext and options are reused.&lt;/p&gt;</source>
       <translation>&lt;b&gt;搜索下一个&lt;/b&gt;&lt;p&gt;在当前编辑器中搜索某文本下一次出现的位置。仍然使用前面输入的搜索文本和选项。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3540" />
-      <location filename="../QScintilla/MiniEditor.py" line="2596" />
+      <location filename="../QScintilla/MiniEditor.py" line="2613" />
       <source>&lt;b&gt;Search previous&lt;/b&gt;&lt;p&gt;Search the previous occurrence of some text in the current editor. The previously entered searchtext and options are reused.&lt;/p&gt;</source>
       <translation>&lt;b&gt;搜索上一个&lt;/b&gt;&lt;p&gt;在当前编辑器中搜索某文本上一次出现的位置。仍然使用前面输入的搜索文本和选项。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3554" />
       <location filename="../ViewManager/ViewManager.py" line="3552" />
-      <location filename="../QScintilla/MiniEditor.py" line="2610" />
-      <location filename="../QScintilla/MiniEditor.py" line="2608" />
+      <location filename="../QScintilla/MiniEditor.py" line="2627" />
+      <location filename="../QScintilla/MiniEditor.py" line="2625" />
       <source>Clear search markers</source>
       <translation>清除搜索标记</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3556" />
-      <location filename="../QScintilla/MiniEditor.py" line="2612" />
+      <location filename="../QScintilla/MiniEditor.py" line="2629" />
       <source>Ctrl+3</source>
       <comment>Search|Clear search markers</comment>
       <translation>Ctrl+3</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3565" />
-      <location filename="../QScintilla/MiniEditor.py" line="2621" />
+      <location filename="../QScintilla/MiniEditor.py" line="2638" />
       <source>Clear all displayed search markers</source>
       <translation>清除所有显示的搜索标记</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3570" />
-      <location filename="../QScintilla/MiniEditor.py" line="2626" />
+      <location filename="../QScintilla/MiniEditor.py" line="2643" />
       <source>&lt;b&gt;Clear search markers&lt;/b&gt;&lt;p&gt;Clear all displayed search markers.&lt;/p&gt;</source>
       <translation>&lt;b&gt;清除搜索标记&lt;/b&gt;&lt;p&gt;清除所有显示的搜索标记。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3638" />
-      <location filename="../QScintilla/MiniEditor.py" line="2636" />
+      <location filename="../QScintilla/MiniEditor.py" line="2653" />
       <source>Replace</source>
       <translation>替换</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3639" />
-      <location filename="../QScintilla/MiniEditor.py" line="2637" />
+      <location filename="../QScintilla/MiniEditor.py" line="2654" />
       <source>&amp;Replace...</source>
       <translation>替换(&amp;R)…</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3641" />
-      <location filename="../QScintilla/MiniEditor.py" line="2639" />
+      <location filename="../QScintilla/MiniEditor.py" line="2656" />
       <source>Ctrl+R</source>
       <comment>Search|Replace</comment>
       <translation>Ctrl+R</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3648" />
-      <location filename="../QScintilla/MiniEditor.py" line="2646" />
+      <location filename="../QScintilla/MiniEditor.py" line="2663" />
       <source>Replace some text</source>
       <translation>替换某文本</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3651" />
-      <location filename="../QScintilla/MiniEditor.py" line="2649" />
+      <location filename="../QScintilla/MiniEditor.py" line="2666" />
       <source>&lt;b&gt;Replace&lt;/b&gt;&lt;p&gt;Search for some text in the current editor and replace it. A dialog is shown to enter the searchtext, the replacement text and options for the search and replace.&lt;/p&gt;</source>
       <translation>&lt;b&gt;替换&lt;/b&gt;&lt;p&gt;在当前编辑器搜索某文本并替换之。显示一个对话框可输入搜索文本、替换文本以及搜索替换的选项。&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3665" />
       <location filename="../ViewManager/ViewManager.py" line="3663" />
-      <location filename="../QScintilla/MiniEditor.py" line="2663" />
-      <location filename="../QScintilla/MiniEditor.py" line="2661" />
+      <location filename="../QScintilla/MiniEditor.py" line="2680" />
+      <location filename="../QScintilla/MiniEditor.py" line="2678" />
       <source>Replace and Search</source>
       <translation type="unfinished">替换和搜索</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3667" />
-      <location filename="../QScintilla/MiniEditor.py" line="2665" />
+      <location filename="../QScintilla/MiniEditor.py" line="2682" />
       <source>Meta+R</source>
       <comment>Search|Replace and Search</comment>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3676" />
-      <location filename="../QScintilla/MiniEditor.py" line="2674" />
+      <location filename="../QScintilla/MiniEditor.py" line="2691" />
       <source>Replace the found text and search the next occurrence</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3681" />
-      <location filename="../QScintilla/MiniEditor.py" line="2679" />
+      <location filename="../QScintilla/MiniEditor.py" line="2696" />
       <source>&lt;b&gt;Replace and Search&lt;/b&gt;&lt;p&gt;Replace the found occurrence of text in the current editor and search for the next one. The previously entered search text and options are reused.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3695" />
       <location filename="../ViewManager/ViewManager.py" line="3693" />
-      <location filename="../QScintilla/MiniEditor.py" line="2693" />
-      <location filename="../QScintilla/MiniEditor.py" line="2691" />
+      <location filename="../QScintilla/MiniEditor.py" line="2710" />
+      <location filename="../QScintilla/MiniEditor.py" line="2708" />
       <source>Replace Occurrence</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3697" />
-      <location filename="../QScintilla/MiniEditor.py" line="2695" />
+      <location filename="../QScintilla/MiniEditor.py" line="2712" />
       <source>Ctrl+Meta+R</source>
       <comment>Search|Replace Occurrence</comment>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3706" />
-      <location filename="../QScintilla/MiniEditor.py" line="2704" />
+      <location filename="../QScintilla/MiniEditor.py" line="2721" />
       <source>Replace the found text</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3709" />
-      <location filename="../QScintilla/MiniEditor.py" line="2707" />
+      <location filename="../QScintilla/MiniEditor.py" line="2724" />
       <source>&lt;b&gt;Replace Occurrence&lt;/b&gt;&lt;p&gt;Replace the found occurrence of the search text in the current editor.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3722" />
       <location filename="../ViewManager/ViewManager.py" line="3720" />
-      <location filename="../QScintilla/MiniEditor.py" line="2720" />
-      <location filename="../QScintilla/MiniEditor.py" line="2718" />
+      <location filename="../QScintilla/MiniEditor.py" line="2737" />
+      <location filename="../QScintilla/MiniEditor.py" line="2735" />
       <source>Replace All</source>
       <translation type="unfinished">替换全部</translation>
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3724" />
-      <location filename="../QScintilla/MiniEditor.py" line="2722" />
+      <location filename="../QScintilla/MiniEditor.py" line="2739" />
       <source>Shift+Meta+R</source>
       <comment>Search|Replace All</comment>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3733" />
-      <location filename="../QScintilla/MiniEditor.py" line="2731" />
+      <location filename="../QScintilla/MiniEditor.py" line="2748" />
       <source>Replace search text occurrences</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../ViewManager/ViewManager.py" line="3736" />
-      <location filename="../QScintilla/MiniEditor.py" line="2734" />
+      <location filename="../QScintilla/MiniEditor.py" line="2751" />
       <source>&lt;b&gt;Replace All&lt;/b&gt;&lt;p&gt;Replace all occurrences of the search text in the current editor.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -90178,59 +90499,59 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="187" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="188" />
       <source>No suitable pyvenv program could be started.
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="191" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="192" />
       <source>No suitable virtualenv program could be started.
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="259" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="260" />
       <source>
 Writing log file '{0}'.
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="263" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="264" />
       <source>Output:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="268" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="269" />
       <source>Errors:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="272" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="273" />
       <source>The logfile '{0}' could not be written.
 Reason: {1}
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="302" />
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="276" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="303" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="277" />
       <source>Done.
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="290" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="291" />
       <source>
 Writing script file '{0}'.
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="297" />
+      <location filename="../VirtualEnv/VirtualenvExecDialog.py" line="298" />
       <source>The script file '{0}' could not be written.
 Reason: {1}
 </source>
@@ -90812,27 +91133,27 @@
   <context>
     <name>WatchPointModel</name>
     <message>
-      <location filename="../Debugger/WatchPointModel.py" line="36" />
+      <location filename="../Debugger/WatchPointModel.py" line="38" />
       <source>Condition</source>
       <translation>条件</translation>
     </message>
     <message>
-      <location filename="../Debugger/WatchPointModel.py" line="37" />
-      <source>Special</source>
-      <translation>特殊的</translation>
-    </message>
-    <message>
-      <location filename="../Debugger/WatchPointModel.py" line="38" />
-      <source>Temporary</source>
-      <translation>临时的</translation>
-    </message>
-    <message>
       <location filename="../Debugger/WatchPointModel.py" line="39" />
-      <source>Enabled</source>
-      <translation>已开启</translation>
+      <source>Special</source>
+      <translation>特殊的</translation>
     </message>
     <message>
       <location filename="../Debugger/WatchPointModel.py" line="40" />
+      <source>Temporary</source>
+      <translation>临时的</translation>
+    </message>
+    <message>
+      <location filename="../Debugger/WatchPointModel.py" line="41" />
+      <source>Enabled</source>
+      <translation>已开启</translation>
+    </message>
+    <message>
+      <location filename="../Debugger/WatchPointModel.py" line="42" />
       <source>Ignore Count</source>
       <translation>忽略计数</translation>
     </message>
@@ -92435,307 +92756,327 @@
   <context>
     <name>WebBrowserView</name>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="321" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="308" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="296" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="284" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="328" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="315" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="303" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="291" />
       <source>eric Web Browser</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="285" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="292" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="322" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="297" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="329" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="304" />
       <source>&lt;p&gt;Could not start a viewer for file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="309" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="316" />
       <source>&lt;p&gt;Could not start an application for URL &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="553" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="560" />
       <source>Match {0} of {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="595" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="602" />
       <source>Inspect Element...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="628" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="635" />
       <source>No suggestions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="685" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="692" />
       <source>Open Link in New Tab	Ctrl+LMB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="690" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="697" />
       <source>Open Link in New Window</source>
       <translation type="unfinished">在新窗口中打开链接</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="696" />
-      <source>Open Link in New Private Window</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="703" />
+      <source>Open Link in New Private Window</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="710" />
       <source>Save Lin&amp;k</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="707" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="714" />
       <source>Bookmark this Link</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="713" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="720" />
       <source>Copy URL to Clipboard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="717" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="724" />
       <source>Send URL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="726" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="733" />
       <source>Scan Link with VirusTotal</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="744" />
-      <source>Open Image in New Tab</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="751" />
+      <source>Open Image in New Tab</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="758" />
       <source>Save Image</source>
       <translation type="unfinished">保存图像</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="754" />
-      <source>Copy Image to Clipboard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="756" />
-      <source>Copy Image URL to Clipboard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="761" />
+      <source>Copy Image to Clipboard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="763" />
+      <source>Copy Image URL to Clipboard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="768" />
       <source>Send Image URL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="780" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="772" />
-      <source>Search image in {0}</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="776" />
-      <source>Search image with...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="787" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="779" />
+      <source>Search image in {0}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="783" />
+      <source>Search image with...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="794" />
       <source>Block Image</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="797" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="804" />
       <source>Scan Image with VirusTotal</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="817" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="824" />
       <source>Play</source>
       <translation type="unfinished">播放</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="823" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="830" />
       <source>Pause</source>
       <translation type="unfinished">暂停</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="829" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="836" />
       <source>Unmute</source>
       <translation type="unfinished">取消静音</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="835" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="842" />
       <source>Mute</source>
       <translation type="unfinished">静音</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="840" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="847" />
       <source>Copy Media URL to Clipboard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="845" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="852" />
       <source>Send Media URL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="851" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="858" />
       <source>Save Media</source>
       <translation type="unfinished">保存媒体</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="869" />
-      <source>Send Text</source>
-      <translation type="unfinished">发送文本</translation>
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="876" />
+      <source>Send Text</source>
+      <translation type="unfinished">发送文本</translation>
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="883" />
       <source>Search with '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="882" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="889" />
       <source>Search with...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1040" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="910" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1047" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="917" />
       <source>Google Translate</source>
       <translation type="unfinished">谷歌翻译</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="920" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="927" />
       <source>Dictionary</source>
       <translation type="unfinished">字典</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="928" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="935" />
       <source>Go to web address</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="954" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="961" />
       <source>Add New Page</source>
       <translation type="unfinished">添加新页面</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="959" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="966" />
       <source>Configure Speed Dial</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="965" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="972" />
       <source>Reload All Dials</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="969" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="976" />
       <source>Reset to Default Dials</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="974" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="981" />
       <source>Bookmark this Page</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="978" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="985" />
       <source>Copy Page URL to Clipboard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="983" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="990" />
       <source>Send Page URL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="991" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="998" />
       <source>User Agent</source>
       <translation type="unfinished">用户代理(UA)</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1018" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1025" />
       <source>Validate Page</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1082" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1089" />
       <source>Add to web search toolbar</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1751" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1758" />
       <source>Empty Page</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1814" />
-      <location filename="../WebBrowser/WebBrowserView.py" line="1813" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1821" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1820" />
       <source>Render Process terminated abnormally</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1819" />
-      <source>The render process crashed while loading this page.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1824" />
-      <source>The render process was killed.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../WebBrowser/WebBrowserView.py" line="1826" />
+      <source>The render process crashed while loading this page.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="1831" />
+      <source>The render process was killed.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="1833" />
       <source>The render process terminated while loading this page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1830" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1837" />
       <source>Try reloading the page or closing some tabs to make more memory available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1957" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1964" />
       <source>Web Archive (*.mhtml *.mht)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1958" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1965" />
       <source>HTML File (*.html *.htm)</source>
       <translation type="unfinished">HTML 文件 (*.html *.htm)</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1959" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1966" />
       <source>HTML File with all resources (*.html *.htm)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="1981" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="1988" />
       <source>Save Web Page</source>
       <translation type="unfinished">保存网页</translation>
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="2331" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="2338" />
       <source>Quota Request</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../WebBrowser/WebBrowserView.py" line="2332" />
+      <location filename="../WebBrowser/WebBrowserView.py" line="2339" />
       <source>&lt;p&gt; Allow the website at &lt;b&gt;{0}&lt;/b&gt; to use &lt;b&gt;{1}&lt;/b&gt; of persistent storage?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="2413" />
+      <source>&lt;p&gt;Grant the website at &lt;b&gt;{0}&lt;/b&gt; &lt;b&gt;Read&lt;/b&gt; access to '{1}'?&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="2421" />
+      <source>&lt;p&gt;Grant the website at &lt;b&gt;{0}&lt;/b&gt; &lt;b&gt;Write&lt;/b&gt; access to '{1}'?&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="2426" />
+      <source>&lt;p&gt;Grant the website at &lt;b&gt;{0}&lt;/b&gt; &lt;b&gt;Read and Write&lt;/b&gt; access to '{1}'?&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../WebBrowser/WebBrowserView.py" line="2433" />
+      <source>File System Access Request</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>WebBrowserVirusTotalPage</name>
@@ -95286,12 +95627,12 @@
   <context>
     <name>eric7</name>
     <message>
-      <location filename="../eric7.py" line="392" />
+      <location filename="../eric7.py" line="394" />
       <source>Starting...</source>
       <translation type="unfinished">正在启动…</translation>
     </message>
     <message>
-      <location filename="../eric7.py" line="397" />
+      <location filename="../eric7.py" line="399" />
       <source>Generating Main Window...</source>
       <translation type="unfinished">正在产生主窗口…</translation>
     </message>

eric ide

mercurial