Removed support for Python2. release-3.0.0

Tue, 23 Jun 2020 18:14:14 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 23 Jun 2020 18:14:14 +0200
changeset 138
72ebb74aa42d
parent 137
be24be92ed0f
child 139
1da97e3b7acb

Removed support for Python2.

ChangeLog file | annotate | diff | comparison | revisions
PluginProjectPyramid.py file | annotate | diff | comparison | revisions
PluginProjectPyramid.zip file | annotate | diff | comparison | revisions
PluginPyramid.e4p file | annotate | diff | comparison | revisions
ProjectPyramid/ConfigurationPage/PyramidPage.py file | annotate | diff | comparison | revisions
ProjectPyramid/ConfigurationPage/PyramidPage.ui file | annotate | diff | comparison | revisions
ProjectPyramid/CreateParametersDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/DistributionTypeSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.ConfigurationPage.PyramidPage.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html file | annotate | diff | comparison | revisions
ProjectPyramid/FormSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Project.py file | annotate | diff | comparison | revisions
ProjectPyramid/PyramidDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/PyramidRoutesDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_de.ts file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_en.ts file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_es.ts file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_ru.ts file | annotate | diff | comparison | revisions
--- a/ChangeLog	Thu Apr 09 18:34:09 2020 +0200
+++ b/ChangeLog	Tue Jun 23 18:14:14 2020 +0200
@@ -1,5 +1,8 @@
 ChangeLog
 ---------
+Version 3.0.0:
+- removed support for Python2
+
 Version 2.5.0:
 - replaced pixmap icons by vector icons
 
--- a/PluginProjectPyramid.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/PluginProjectPyramid.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,8 +7,6 @@
 Module implementing the Pyramid project plugin.
 """
 
-from __future__ import unicode_literals
-
 import os
 import glob
 import fnmatch
@@ -28,15 +26,15 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "2.5.0"
+version = "3.0.0"
 className = "ProjectPyramidPlugin"
 packageName = "ProjectPyramid"
 shortDescription = "Project support for Pyramid projects."
-longDescription = \
+longDescription = (
     """This plugin implements project support for Pyramid projects."""
+)
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-of-Header
 
 error = ""
@@ -53,8 +51,7 @@
     """
     global pyramidPluginObject
     from ProjectPyramid.ConfigurationPage.PyramidPage import PyramidPage
-    page = PyramidPage(pyramidPluginObject)
-    return page
+    return PyramidPage(pyramidPluginObject)
     
 
 def getConfigData():
@@ -91,13 +88,12 @@
     @param language language to get APIs for (string)
     @return list of API filenames (list of string)
     """
-    if language in ["Python3", "Python2"]:
-        apisDir = \
-            os.path.join(os.path.dirname(__file__), "ProjectPyramid", "APIs")
-        apis = glob.glob(os.path.join(apisDir, '*.api'))
+    if language == "Python3":
+        apisDir = os.path.join(os.path.dirname(__file__),
+                               "ProjectPyramid", "APIs")
+        return glob.glob(os.path.join(apisDir, '*.api'))
     else:
-        apis = []
-    return apis
+        return []
 
 
 def prepareUninstall():
@@ -133,14 +129,8 @@
         self.__initialize()
         
         self.__defaults = {
-            "VirtualEnvironmentNamePy2": "",
             "VirtualEnvironmentNamePy3": "",
             
-            # these are obsolete and kept for use with eric <18.07
-            "VirtualEnvironmentPy2": "",
-            "VirtualEnvironmentPy3": "",
-            
-            "Python2ConsoleType": "python",
             "Python3ConsoleType": "python",
             
             "PyramidDocUrl": "http://docs.pylonsproject.org/projects/"
@@ -219,8 +209,10 @@
                     lexerAssociationCallback=self.lexerAssociationCallback,
                     binaryTranslationsCallback=self.binaryTranslationsCallback)
         
-        from Project.ProjectBrowser import SourcesBrowserFlag, \
-            FormsBrowserFlag, TranslationsBrowserFlag, OthersBrowserFlag
+        from Project.ProjectBrowser import (
+            SourcesBrowserFlag, FormsBrowserFlag, TranslationsBrowserFlag,
+            OthersBrowserFlag
+        )
         Preferences.setProjectBrowserFlagsDefault(
             "Pyramid",
             SourcesBrowserFlag | FormsBrowserFlag |
@@ -337,7 +329,7 @@
         @return dictionary with file type associations
         """
         if self.__e5project.getProjectType() == "Pyramid":
-            fileTypes = {
+            return {
                 "*.mako": "FORMS",
                 "*.mak": "FORMS",
                 "*.pt": "FORMS",
@@ -349,8 +341,7 @@
                 "*.mo": "TRANSLATIONS",
             }
         else:
-            fileTypes = {}
-        return fileTypes
+            return {}
     
     def lexerAssociationCallback(self, filename):
         """
@@ -376,7 +367,8 @@
         @return name of the binary translation file (string)
         """
         if filename.endswith(".po"):
-            filename = filename.replace(".po", ".mo")
+            return filename.replace(".po", ".mo")
+        
         return filename
     
     def getDefaultPreference(self, key):
@@ -412,8 +404,7 @@
         Preferences.Prefs.settings.setValue(
             self.PreferencesKey + "/" + key, value)
         
-        if key in ["VirtualEnvironmentPy2", "VirtualEnvironmentPy3",
-                   "VirtualEnvironmentNamePy2", "VirtualEnvironmentNamePy3"]:
+        if key in ["VirtualEnvironmentNamePy3"]:
             self.__reregisterProjectType()
         elif key == "TranslationsEditor":
             if self.__object:
Binary file PluginProjectPyramid.zip has changed
--- a/PluginPyramid.e4p	Thu Apr 09 18:34:09 2020 +0200
+++ b/PluginPyramid.e4p	Tue Jun 23 18:14:14 2020 +0200
@@ -255,6 +255,25 @@
         <value>
           <dict>
             <key>
+              <string>AnnotationsChecker</string>
+            </key>
+            <value>
+              <dict>
+                <key>
+                  <string>MaximumComplexity</string>
+                </key>
+                <value>
+                  <int>3</int>
+                </value>
+                <key>
+                  <string>MinimumCoverage</string>
+                </key>
+                <value>
+                  <int>75</int>
+                </value>
+              </dict>
+            </value>
+            <key>
               <string>BlankLines</string>
             </key>
             <value>
@@ -295,6 +314,19 @@
               </dict>
             </value>
             <key>
+              <string>CommentedCodeChecker</string>
+            </key>
+            <value>
+              <dict>
+                <key>
+                  <string>Aggressive</string>
+                </key>
+                <value>
+                  <bool>False</bool>
+                </value>
+              </dict>
+            </value>
+            <key>
               <string>CopyrightAuthor</string>
             </key>
             <value>
@@ -313,6 +345,12 @@
               <string>eric</string>
             </value>
             <key>
+              <string>EnabledCheckerCategories</string>
+            </key>
+            <value>
+              <string>C, D, E, M, N, S, W</string>
+            </value>
+            <key>
               <string>ExcludeFiles</string>
             </key>
             <value>
@@ -322,7 +360,7 @@
               <string>ExcludeMessages</string>
             </key>
             <value>
-              <string>C101, E265, E266, E305, E402, M201, M811, N802, N803, N807, N808, N821, W293, W504</string>
+              <string>C101,E265,E266,E305,E402,M201,M811,N802,N803,N807,N808,N821,W293,W504</string>
             </value>
             <key>
               <string>FixCodes</string>
@@ -340,7 +378,7 @@
               <string>FutureChecker</string>
             </key>
             <value>
-              <string>unicode_literals</string>
+              <string></string>
             </value>
             <key>
               <string>HangClosing</string>
@@ -373,6 +411,12 @@
               <int>10</int>
             </value>
             <key>
+              <string>MaxDocLineLength</string>
+            </key>
+            <value>
+              <int>79</int>
+            </value>
+            <key>
               <string>MaxLineLength</string>
             </key>
             <value>
@@ -391,6 +435,91 @@
               <bool>True</bool>
             </value>
             <key>
+              <string>SecurityChecker</string>
+            </key>
+            <value>
+              <dict>
+                <key>
+                  <string>CheckTypedException</string>
+                </key>
+                <value>
+                  <bool>False</bool>
+                </value>
+                <key>
+                  <string>HardcodedTmpDirectories</string>
+                </key>
+                <value>
+                  <list>
+                    <string>/tmp</string>
+                    <string>/var/tmp</string>
+                    <string>/dev/shm</string>
+                    <string>~/tmp</string>
+                  </list>
+                </value>
+                <key>
+                  <string>InsecureHashes</string>
+                </key>
+                <value>
+                  <list>
+                    <string>md4</string>
+                    <string>md5</string>
+                    <string>sha</string>
+                    <string>sha1</string>
+                  </list>
+                </value>
+                <key>
+                  <string>InsecureSslProtocolVersions</string>
+                </key>
+                <value>
+                  <list>
+                    <string>PROTOCOL_SSLv2</string>
+                    <string>SSLv2_METHOD</string>
+                    <string>SSLv23_METHOD</string>
+                    <string>PROTOCOL_SSLv3</string>
+                    <string>PROTOCOL_TLSv1</string>
+                    <string>SSLv3_METHOD</string>
+                    <string>TLSv1_METHOD</string>
+                  </list>
+                </value>
+                <key>
+                  <string>WeakKeySizeDsaHigh</string>
+                </key>
+                <value>
+                  <string>1024</string>
+                </value>
+                <key>
+                  <string>WeakKeySizeDsaMedium</string>
+                </key>
+                <value>
+                  <string>2048</string>
+                </value>
+                <key>
+                  <string>WeakKeySizeEcHigh</string>
+                </key>
+                <value>
+                  <string>160</string>
+                </value>
+                <key>
+                  <string>WeakKeySizeEcMedium</string>
+                </key>
+                <value>
+                  <string>224</string>
+                </value>
+                <key>
+                  <string>WeakKeySizeRsaHigh</string>
+                </key>
+                <value>
+                  <string>1024</string>
+                </value>
+                <key>
+                  <string>WeakKeySizeRsaMedium</string>
+                </key>
+                <value>
+                  <string>2048</string>
+                </value>
+              </dict>
+            </value>
+            <key>
               <string>ShowIgnored</string>
             </key>
             <value>
--- a/ProjectPyramid/ConfigurationPage/PyramidPage.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/ConfigurationPage/PyramidPage.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,16 +7,15 @@
 Module implementing the Pyramid configuration page.
 """
 
-from __future__ import unicode_literals
-
 from PyQt5.QtCore import pyqtSlot
 
 from E5Gui.E5Completers import E5DirCompleter
 from E5Gui import E5FileDialog
 from E5Gui.E5Application import e5App
 
-from Preferences.ConfigurationPages.ConfigurationPageBase import \
+from Preferences.ConfigurationPages.ConfigurationPageBase import (
     ConfigurationPageBase
+)
 from .Ui_PyramidPage import Ui_PyramidPage
 
 import Utilities
@@ -57,40 +56,20 @@
         self.consoleCommandCombo.addItems(consoleList)
         
         self.virtualEnvPy3Button.setIcon(UI.PixmapCache.getIcon("open"))
-        self.virtualEnvPy2Button.setIcon(UI.PixmapCache.getIcon("open"))
         self.translationsButton.setIcon(UI.PixmapCache.getIcon("open"))
         self.urlResetButton.setIcon(UI.PixmapCache.getIcon("editUndo"))
         
-        self.virtualEnvPy2Completer = E5DirCompleter(self.virtualEnvPy2Edit)
         self.virtualEnvPy3Completer = E5DirCompleter(self.virtualEnvPy3Edit)
         
-        self.py2ShellCombo.addItem(self.tr("Plain Python"), "python")
-        self.py2ShellCombo.addItem(self.tr("IPython"), "ipython")
-        self.py2ShellCombo.addItem(self.tr("bpython"), "bpython")
-        
         self.py3ShellCombo.addItem(self.tr("Plain Python"), "python")
         self.py3ShellCombo.addItem(self.tr("IPython"), "ipython")
         self.py3ShellCombo.addItem(self.tr("bpython"), "bpython")
         
-        try:
-            venvManager = e5App().getObject("VirtualEnvManager")
-            
-            self.py2VenvNameComboBox.addItems(
-                [""] + sorted(venvManager.getVirtualenvNamesForVariant(2)))
-            self.py3VenvNameComboBox.addItems(
-                [""] + sorted(venvManager.getVirtualenvNamesForVariant(3)))
-            
-            self.pyramidVirtualEnvPy2Group.hide()
-            self.pyramidVirtualEnvPy3Group.hide()
-            
-            self.__hasVirtualEnvironmentManager = True
-        except KeyError:
-            venvManager = None
-            
-            self.pyramidVirtualEnvironmentPy2Group.hide()
-            self.pyramidVirtualEnvironmentPy3Group.hide()
-            
-            self.__hasVirtualEnvironmentManager = False
+        venvManager = e5App().getObject("VirtualEnvManager")
+        
+        self.py3VenvNameComboBox.addItems(
+            [""] + sorted(venvManager.getVirtualenvNames()))
+        self.pyramidVirtualEnvPy3Group.hide()
         
         # set initial values
         self.consoleCommandCombo.setEditText(
@@ -99,31 +78,13 @@
         self.externalBrowserCheckBox.setChecked(
             self.__plugin.getPreferences("UseExternalBrowser"))
         
-        if venvManager:
-            venvName = self.__plugin.getPreferences(
-                "VirtualEnvironmentNamePy2")
-            if venvName:
-                index = self.py2VenvNameComboBox.findText(venvName)
-                if index < 0:
-                    index = 0
-                self.py2VenvNameComboBox.setCurrentIndex(index)
-        else:
-            self.virtualEnvPy2Edit.setText(
-                self.__plugin.getPreferences("VirtualEnvironmentPy2"))
-        self.py2ShellCombo.setCurrentIndex(self.py2ShellCombo.findData(
-            self.__plugin.getPreferences("Python2ConsoleType")))
-        
-        if venvManager:
-            venvName = self.__plugin.getPreferences(
-                "VirtualEnvironmentNamePy3")
-            if venvName:
-                index = self.py3VenvNameComboBox.findText(venvName)
-                if index < 0:
-                    index = 0
-                self.py3VenvNameComboBox.setCurrentIndex(index)
-        else:
-            self.virtualEnvPy3Edit.setText(
-                self.__plugin.getPreferences("VirtualEnvironmentPy3"))
+        venvName = self.__plugin.getPreferences(
+            "VirtualEnvironmentNamePy3")
+        if venvName:
+            index = self.py3VenvNameComboBox.findText(venvName)
+            if index < 0:
+                index = 0
+            self.py3VenvNameComboBox.setCurrentIndex(index)
         self.py3ShellCombo.setCurrentIndex(self.py3ShellCombo.findData(
             self.__plugin.getPreferences("Python3ConsoleType")))
         
@@ -143,24 +104,9 @@
         self.__plugin.setPreferences(
             "UseExternalBrowser", self.externalBrowserCheckBox.isChecked())
         
-        if self.__hasVirtualEnvironmentManager:
-            self.__plugin.setPreferences(
-                "VirtualEnvironmentNamePy2",
-                self.py2VenvNameComboBox.currentText())
-        else:
-            self.__plugin.setPreferences(
-                "VirtualEnvironmentPy2", self.virtualEnvPy2Edit.text())
         self.__plugin.setPreferences(
-            "Python2ConsoleType",
-            self.py2ShellCombo.itemData(self.py2ShellCombo.currentIndex()))
-        
-        if self.__hasVirtualEnvironmentManager:
-            self.__plugin.setPreferences(
-                "VirtualEnvironmentNamePy3",
-                self.py3VenvNameComboBox.currentText())
-        else:
-            self.__plugin.setPreferences(
-                "VirtualEnvironmentPy3", self.virtualEnvPy3Edit.text())
+            "VirtualEnvironmentNamePy3",
+            self.py3VenvNameComboBox.currentText())
         self.__plugin.setPreferences(
             "Python3ConsoleType",
             self.py3ShellCombo.itemData(self.py3ShellCombo.currentIndex()))
@@ -191,25 +137,6 @@
                 virtualEnv))
     
     @pyqtSlot()
-    def on_virtualEnvPy2Button_clicked(self):
-        """
-        Private slot to select the virtual environment for Python 2 via a
-        directory selection dialog.
-        """
-        vDir = self.virtualEnvPy2Edit.text()
-        if not vDir:
-            vDir = Utilities.getHomeDir()
-        virtualEnv = E5FileDialog.getExistingDirectory(
-            self,
-            self.tr("Select Virtual Environment for Python 2"),
-            vDir,
-            E5FileDialog.Options(E5FileDialog.Option(0)))
-        
-        if virtualEnv:
-            self.virtualEnvPy2Edit.setText(Utilities.toNativeSeparators(
-                virtualEnv))
-    
-    @pyqtSlot()
     def on_translationsButton_clicked(self):
         """
         Private slot to select the translations editor via a file selection
--- a/ProjectPyramid/ConfigurationPage/PyramidPage.ui	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/ConfigurationPage/PyramidPage.ui	Tue Jun 23 18:14:14 2020 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>528</width>
-    <height>1265</height>
+    <height>745</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -183,96 +183,6 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="python2Group">
-     <property name="title">
-      <string>Python 2</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QGroupBox" name="pyramidVirtualEnvPy2Group">
-        <property name="title">
-         <string>Pyramid Virtual Environment</string>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_2">
-         <item row="0" column="0" colspan="2">
-          <widget class="QLabel" name="label_7">
-           <property name="minimumSize">
-            <size>
-             <width>0</width>
-             <height>40</height>
-            </size>
-           </property>
-           <property name="text">
-            <string>Enter the path of the Pyramid virtual environment. Leave empty to not use a virtual environment setup.</string>
-           </property>
-           <property name="wordWrap">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLineEdit" name="virtualEnvPy2Edit"/>
-         </item>
-         <item row="1" column="1">
-          <widget class="QToolButton" name="virtualEnvPy2Button">
-           <property name="toolTip">
-            <string>Select the virtual environment directory via a selection dialog</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="QGroupBox" name="pyramidVirtualEnvironmentPy2Group">
-        <property name="title">
-         <string>Pyramid Virtual Environment</string>
-        </property>
-        <layout class="QVBoxLayout" name="verticalLayout_4">
-         <item>
-          <widget class="QLabel" name="label_12">
-           <property name="text">
-            <string>Select the Virtual Environment to be used with Pyramid</string>
-           </property>
-           <property name="wordWrap">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="py2VenvNameComboBox"/>
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QLabel" name="label_8">
-          <property name="text">
-           <string>Pyramid Python Console:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="py2ShellCombo">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="toolTip">
-           <string>Select the Python console type</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
     <widget class="QGroupBox" name="pyramidDocumenattionGroup">
      <property name="title">
       <string>Pyramid Documentation</string>
@@ -359,10 +269,6 @@
   <tabstop>virtualEnvPy3Button</tabstop>
   <tabstop>py3VenvNameComboBox</tabstop>
   <tabstop>py3ShellCombo</tabstop>
-  <tabstop>virtualEnvPy2Edit</tabstop>
-  <tabstop>virtualEnvPy2Button</tabstop>
-  <tabstop>py2VenvNameComboBox</tabstop>
-  <tabstop>py2ShellCombo</tabstop>
   <tabstop>urlEdit</tabstop>
   <tabstop>urlResetButton</tabstop>
   <tabstop>translationsEdit</tabstop>
--- a/ProjectPyramid/CreateParametersDialog.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/CreateParametersDialog.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,12 +7,6 @@
 Module implementing a dialog for entering the create parameters.
 """
 
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
 from PyQt5.QtCore import pyqtSlot, QProcess
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
 
@@ -50,10 +44,9 @@
         if procStarted:
             finished = proc.waitForFinished(30000)
             if finished and proc.exitCode() == 0:
-                output = \
-                    str(proc.readAllStandardOutput(),
-                        Preferences.getSystem("IOEncoding"),
-                        'replace')
+                output = str(proc.readAllStandardOutput(),
+                             Preferences.getSystem("IOEncoding"),
+                             'replace')
             else:
                 if not finished:
                     errMsg = self.tr(
@@ -114,8 +107,8 @@
         @rtype str
         """
         parts = [part.strip() for part in line.split(":", 1)]
-        return self.tr("{0} ({1})", "scaffold name, explanatory text")\
-            .format(*parts)
+        return self.tr(
+            "{0} ({1})", "scaffold name, explanatory text").format(*parts)
     
     def getData(self):
         """
--- a/ProjectPyramid/DistributionTypeSelectionDialog.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/DistributionTypeSelectionDialog.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,19 +7,14 @@
 Module implementing a dialog to select the distribution file formats.
 """
 
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
 from PyQt5.QtCore import Qt, QProcess
 from PyQt5.QtWidgets import QDialog, QListWidgetItem
 
 from E5Gui import E5MessageBox
 
-from .Ui_DistributionTypeSelectionDialog import \
+from .Ui_DistributionTypeSelectionDialog import (
     Ui_DistributionTypeSelectionDialog
+)
 
 import Preferences
 
@@ -54,10 +49,9 @@
         if procStarted:
             finished = proc.waitForFinished(30000)
             if finished and proc.exitCode() == 0:
-                output = \
-                    str(proc.readAllStandardOutput(),
-                        Preferences.getSystem("IOEncoding"),
-                        'replace')
+                output = str(proc.readAllStandardOutput(),
+                             Preferences.getSystem("IOEncoding"),
+                             'replace')
             else:
                 if not finished:
                     errMsg = self.tr(
@@ -69,8 +63,8 @@
             for line in output.splitlines():
                 line = line.strip()
                 if line.startswith("--formats="):
-                    fileFormat, description = line.replace("--formats=", "")\
-                        .split(None, 1)
+                    fileFormat, description = (
+                        line.replace("--formats=", "").split(None, 1))
                     itm = QListWidgetItem(
                         "{0} ({1})".format(fileFormat, description),
                         self.formatsList)
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Tue Jun 23 18:14:14 2020 +0200
@@ -28,7 +28,7 @@
 <h3>Global Attributes</h3>
 
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>pyramidPluginObject</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>pyramidPluginObject</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.ConfigurationPage.PyramidPage.html	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.ConfigurationPage.PyramidPage.html	Tue Jun 23 18:14:14 2020 +0200
@@ -81,10 +81,6 @@
 <td>Private slot to reset the Pyramid documentation URL.</td>
 </tr>
 <tr>
-<td><a href="#PyramidPage.on_virtualEnvPy2Button_clicked">on_virtualEnvPy2Button_clicked</a></td>
-<td>Private slot to select the virtual environment for Python 2 via a directory selection dialog.</td>
-</tr>
-<tr>
 <td><a href="#PyramidPage.on_virtualEnvPy3Button_clicked">on_virtualEnvPy3Button_clicked</a></td>
 <td>Private slot to select the virtual environment for Python 3 via a directory selection dialog.</td>
 </tr>
@@ -128,14 +124,6 @@
 <p>
         Private slot to reset the Pyramid documentation URL.
 </p>
-<a NAME="PyramidPage.on_virtualEnvPy2Button_clicked" ID="PyramidPage.on_virtualEnvPy2Button_clicked"></a>
-<h4>PyramidPage.on_virtualEnvPy2Button_clicked</h4>
-<b>on_virtualEnvPy2Button_clicked</b>(<i></i>)
-
-<p>
-        Private slot to select the virtual environment for Python 2 via a
-        directory selection dialog.
-</p>
 <a NAME="PyramidPage.on_virtualEnvPy3Button_clicked" ID="PyramidPage.on_virtualEnvPy3Button_clicked"></a>
 <h4>PyramidPage.on_virtualEnvPy3Button_clicked</h4>
 <b>on_virtualEnvPy3Button_clicked</b>(<i></i>)
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Tue Jun 23 18:14:14 2020 +0200
@@ -368,7 +368,7 @@
 <dt><i>language</i></dt>
 <dd>
 Python variant to get the debugger environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
@@ -445,7 +445,7 @@
 <dt><i>language</i></dt>
 <dd>
 Python variant to get the virtual environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
@@ -471,7 +471,7 @@
 </p>
 <dl>
 
-<dt><i>variant</i> (str (one of Python2 or Python3))</dt>
+<dt><i>variant</i> (str)</dt>
 <dd>
 Python variant to test for
 </dd>
@@ -779,7 +779,7 @@
 <dt><i>language</i></dt>
 <dd>
 Python variant to get the virtual environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
--- a/ProjectPyramid/FormSelectionDialog.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/FormSelectionDialog.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,8 +7,6 @@
 Module implementing a dialog to select the template type.
 """
 
-from __future__ import unicode_literals
-
 from PyQt5.QtCore import pyqtSlot
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
 
--- a/ProjectPyramid/Project.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/Project.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,17 +7,9 @@
 Module implementing the Pyramid project support.
 """
 
-from __future__ import unicode_literals
-
-try:
-    import configparser
-except ImportError:
-    str = unicode    # __IGNORE_WARNING__
-    import ConfigParser as configparser    # __IGNORE_WARNING__
-
 import os
 import re
-import sys
+import configparser
 
 from PyQt5.QtCore import QObject, QFileInfo, QTimer, QUrl
 from PyQt5.QtGui import QDesktopServices
@@ -453,16 +445,17 @@
         Public method to add our hook methods.
         """
         if self.__e5project.getProjectType() == "Pyramid":
-            self.__formsBrowser = \
-                e5App().getObject("ProjectBrowser").getProjectBrowser("forms")
+            self.__formsBrowser = (
+                e5App().getObject("ProjectBrowser")
+                .getProjectBrowser("forms"))
             self.__formsBrowser.addHookMethodAndMenuEntry(
                 "newForm", self.newForm, self.tr("New template..."))
             
             self.__e5project.projectLanguageAddedByCode.connect(
                 self.__projectLanguageAdded)
-            self.__translationsBrowser = \
-                e5App().getObject("ProjectBrowser")\
-                .getProjectBrowser("translations")
+            self.__translationsBrowser = (
+                e5App().getObject("ProjectBrowser")
+                .getProjectBrowser("translations"))
             self.__translationsBrowser.addHookMethodAndMenuEntry(
                 "extractMessages", self.extractMessages,
                 self.tr("Extract Messages"))
@@ -620,7 +613,7 @@
         variants = []
         cmd = "pcreate"
         
-        for variant in 'Python2', 'Python3':
+        for variant in ['Python3']:
             virtEnv = self.__getVirtualEnvironment(variant)
             if virtEnv:
                 fullCmd = self.getPyramidCommand(cmd, variant)
@@ -656,23 +649,16 @@
         given Python variant.
         
         @param variant Python variant to test for
-        @type str (one of Python2 or Python3)
+        @type str
         @param line0 first line of the executable
         @type str
         @return flag indicating a suitable command
         @rtype bool
         """
-        assert variant in ("Python2", "Python3")
-        
         l0 = line0.lower()
         ok = (variant.lower() in l0 or
               "{0}.".format(variant[-1]) in l0)
-        if variant == "Python2":
-            ok |= "python3" not in l0 and "python" in l0
-            ok |= "pypy2" in l0
-            ok |= "pypy3" not in l0 and "pypy" in l0
-        else:
-            ok |= "pypy3" in l0
+        ok |= "pypy3" in l0
         
         return ok
     
@@ -681,7 +667,7 @@
         Private method to get the path of the virtual environment.
         
         @param language Python variant to get the virtual environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
         @return path of the virtual environment (string)
         """
         if not language:
@@ -690,9 +676,6 @@
             if language == "Python3":
                 venvName = self.__plugin.getPreferences(
                     "VirtualEnvironmentNamePy3")
-            elif language == "Python2":
-                venvName = self.__plugin.getPreferences(
-                    "VirtualEnvironmentNamePy2")
             else:
                 venvName = ""
             if venvName:
@@ -706,24 +689,17 @@
                         virtEnv = os.path.dirname(virtEnv)
             else:
                 virtEnv = ""
-        else:
-            # backward compatibility
-            if language == "Python3":
-                virtEnv = self.__plugin.getPreferences("VirtualEnvironmentPy3")
-            elif language == "Python2":
-                virtEnv = self.__plugin.getPreferences("VirtualEnvironmentPy2")
-            else:
-                virtEnv = ""
+        
         if virtEnv and not os.path.exists(virtEnv):
             virtEnv = ""
-        return virtEnv
+        return virtEnv      # __IGNORE_WARNING_M834__
 
     def __getDebugEnvironment(self, language=""):
         """
         Private method to get the path of the debugger environment.
         
         @param language Python variant to get the debugger environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
         @return path of the debugger environment (string)
         """
         if not language:
@@ -733,36 +709,14 @@
             if not debugEnv:
                 if language == "Python3":
                     venvName = Preferences.getDebugger("Python3VirtualEnv")
-                elif language == "Python2":
-                    venvName = Preferences.getDebugger("Python2VirtualEnv")
                 else:
                     venvName = ""
                 
                 if venvName:
-                    debugEnv = self.__virtualEnvManager.getVirtualenvDirectory(
+                    return self.__virtualEnvManager.getVirtualenvDirectory(
                         venvName)
-                else:
-                    debugEnv = ""
-        else:
-            # backward compatibility
-            if language == "Python3":
-                debugEnv = Preferences.getDebugger("Python3Interpreter")
-                if not debugEnv and sys.version_info[0] == 3:
-                    debugEnv = sys.executable
-            elif language == "Python2":
-                debugEnv = Preferences.getDebugger("PythonInterpreter")
-                if not debugEnv and sys.version_info[0] == 2:
-                    debugEnv = sys.executable
-            else:
-                debugEnv = sys.executable
-            debugEnv = os.path.dirname(debugEnv)
-            if debugEnv and not os.path.exists(debugEnv):
-                if (language == "Python3" and sys.version_info[0] == 3) or \
-                   (language == "Python2" and sys.version_info[0] == 2):
-                    debugEnv = sys.exec_prefix
-                else:
-                    debugEnv = ""
-        return debugEnv
+        
+        return ""
 
     def getPyramidCommand(self, cmd, language=""):
         """
@@ -770,7 +724,7 @@
         
         @param cmd command (string)
         @param language Python variant to get the virtual environment
-            for (string, one of '', 'Python2' or 'Python3')
+            for (string, one of '' or 'Python3')
         @return full pyramid command (string)
         """
         if not language:
@@ -814,69 +768,13 @@
                 if not venvName:
                     # if none configured, use the global one
                     venvName = Preferences.getDebugger("Python3VirtualEnv")
-            elif language == "Python2":
-                venvName = self.__plugin.getPreferences(
-                    "VirtualEnvironmentNamePy2")
-                if not venvName:
-                    # if none configured, use the global one
-                    venvName = Preferences.getDebugger("Python2VirtualEnv")
             else:
                 venvName = ""
             if venvName:
-                python = self.__virtualEnvManager.getVirtualenvInterpreter(
+                return self.__virtualEnvManager.getVirtualenvInterpreter(
                     venvName)
-            else:
-                python = ""
-        else:
-            # backward compatibility
-            virtualEnv = self.__getVirtualEnvironment()
-            if isWindowsPlatform():
-                pythonExeList = ["python.exe", "pypy.exe"]
-                if not virtualEnv:
-                    virtualEnv = self.__getDebugEnvironment(language)
-                for pythonExe in pythonExeList:
-                    for python in [
-                        os.path.join(virtualEnv, "Scripts", pythonExe),
-                        os.path.join(virtualEnv, "bin", pythonExe),
-                        os.path.join(virtualEnv, pythonExe)
-                    ]:
-                        if os.path.exists(python):
-                            break
-                    else:
-                        python = ""
-                    
-                    if python:
-                        break
-                else:
-                    python = ""
-            else:
-                if language == "Python3":
-                    pythonExeList = ["python3", "pypy3"]
-                elif language == "Python2":
-                    pythonExeList = ["python2", "pypy2"]
-                if not virtualEnv:
-                    virtualEnv = self.__getDebugEnvironment(language)
-                
-                for pythonExe in pythonExeList:
-                    for python in [
-                        os.path.join(virtualEnv, "bin", pythonExe),
-                        # omit the version character
-                        os.path.join(virtualEnv, "bin", pythonExe)[:-1],
-                        os.path.join(virtualEnv, pythonExe),
-                        # omit the version character
-                        os.path.join(virtualEnv, pythonExe)[:-1],
-                    ]:
-                        if os.path.exists(python):
-                            break
-                    else:
-                        python = ""
-                
-                    if python:
-                        break
-                else:
-                    python = ""
         
-        return python
+        return ""
     
     def __pyramidInfo(self):
         """
@@ -923,7 +821,7 @@
                 f.close()
                 for line in lines:
                     if line.startswith("__requires__"):
-                        # sample: __requires__ = 'pyramid==1.4'
+                        ## sample: __requires__ = 'pyramid==1.4'
                         vers = line.strip().split()[-1][1:-1].split("==")[1]
                         self.__pyramidVersion = vers
             except (IOError, OSError):
@@ -1042,8 +940,10 @@
         projects = []
         ppath = self.__e5project.getProjectPath()
         for entry in os.listdir(ppath):
-            if entry[0] not in "._" and \
-               os.path.isdir(os.path.join(ppath, entry)):
+            if (
+                entry[0] not in "._" and
+                os.path.isdir(os.path.join(ppath, entry))
+            ):
                 projects.append(entry)
         return projects
     
@@ -1193,8 +1093,8 @@
             args.append(os.path.join(projectPath, "development.ini"))
             
             if isWindowsPlatform():
-                serverProcStarted, pid = \
-                    QProcess.startDetached(args[0], args[1:], projectPath)
+                serverProcStarted, pid = QProcess.startDetached(
+                    args[0], args[1:], projectPath)
             else:
                 if self.__serverProc is not None:
                     self.__serverProcFinished()
@@ -1220,8 +1120,10 @@
         """
         Private slot connected to the finished signal.
         """
-        if self.__serverProc is not None and \
-           self.__serverProc.state() != QProcess.NotRunning:
+        if (
+            self.__serverProc is not None and
+            self.__serverProc.state() != QProcess.NotRunning
+        ):
             self.__serverProc.terminate()
             QTimer.singleShot(2000, self.__serverProc.kill)
             self.__serverProc.waitForFinished(3000)
@@ -1279,13 +1181,7 @@
             args = Utilities.parseOptionString(consoleCmd)
             args[0] = Utilities.getExecutablePath(args[0])
             args.append(self.getPyramidCommand("pshell"))
-            language = self.__e5project.getProjectLanguage()
-            if language == "Python2":
-                consoleType = self.__plugin.getPreferences(
-                    "Python2ConsoleType")
-            else:
-                consoleType = self.__plugin.getPreferences(
-                    "Python3ConsoleType")
+            consoleType = self.__plugin.getPreferences("Python3ConsoleType")
             args.append("--python-shell={0}".format(consoleType))
             args.append(os.path.join(projectPath, "development.ini"))
             
@@ -1354,8 +1250,9 @@
                         ' project created yet. Aborting...'))
             return
         
-        from .DistributionTypeSelectionDialog import \
+        from .DistributionTypeSelectionDialog import (
             DistributionTypeSelectionDialog
+        )
         
         dlg = DistributionTypeSelectionDialog(self, projectPath, self.__ui)
         if dlg.exec_() == QDialog.Accepted:
@@ -1538,14 +1435,9 @@
             pattern = pattern.replace('\\', '\\\\')
             match = re.search(pattern, filename)
             if match is not None:
-                loc = match.group(1)
-                return loc
-            else:
-                loc = None
-        else:
-            loc = None
+                return match.group(1)
         
-        return loc
+        return None
     
     def __normalizeList(self, filenames):
         """
@@ -1636,8 +1528,8 @@
         
         @param code language code of the new language (string)
         """
-        title = self.tr("Initializing message catalog for '{0}'")\
-            .format(code)
+        title = self.tr(
+            "Initializing message catalog for '{0}'").format(code)
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
@@ -1663,8 +1555,8 @@
         if res:
             dia.exec_()
             
-            langFile = self.__e5project.getTranslationPattern()\
-                .replace("%language%", code)
+            langFile = self.__e5project.getTranslationPattern().replace(
+                "%language%", code)
             self.__e5project.appendFile(langFile)
     
     def compileCatalogs(self, filenames):
--- a/ProjectPyramid/PyramidDialog.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/PyramidDialog.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,12 +7,6 @@
 Module implementing a dialog starting a process and showing its output.
 """
 
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
 import os
 
 from PyQt5.QtCore import QProcess, QTimer, pyqtSlot, Qt, QCoreApplication
@@ -82,8 +76,10 @@
         Public slot called when the process finished or the user pressed the
         button.
         """
-        if self.proc is not None and \
-           self.proc.state() != QProcess.NotRunning:
+        if (
+            self.proc is not None and
+            self.proc.state() != QProcess.NotRunning
+        ):
             self.proc.terminate()
             QTimer.singleShot(2000, self.proc.kill)
             self.proc.waitForFinished(3000)
--- a/ProjectPyramid/PyramidRoutesDialog.py	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/PyramidRoutesDialog.py	Tue Jun 23 18:14:14 2020 +0200
@@ -7,17 +7,12 @@
 Module implementing a dialog showing the available routes.
 """
 
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
 import os
 
 from PyQt5.QtCore import QProcess, QTimer, pyqtSlot, Qt, QCoreApplication
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QLineEdit, \
-    QTreeWidgetItem
+from PyQt5.QtWidgets import (
+    QDialog, QDialogButtonBox, QLineEdit, QTreeWidgetItem
+)
 
 from E5Gui import E5MessageBox
 
@@ -57,8 +52,10 @@
         Public slot called when the process finished or the user pressed the
         button.
         """
-        if self.proc is not None and \
-           self.proc.state() != QProcess.NotRunning:
+        if (
+            self.proc is not None and
+            self.proc.state() != QProcess.NotRunning
+        ):
             self.proc.terminate()
             QTimer.singleShot(2000, self.proc.kill)
             self.proc.waitForFinished(3000)
--- a/ProjectPyramid/i18n/pyramid_de.ts	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/i18n/pyramid_de.ts	Tue Jun 23 18:14:14 2020 +0200
@@ -48,22 +48,22 @@
         <translation>Pyramid Projekterstellung simulieren</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="60"/>
+        <location filename="../CreateParametersDialog.py" line="52"/>
         <source>The pcreate command did not finish within 30s.</source>
         <translation>Das pcreate Kommando endete nicht innerhalb von 30s.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="63"/>
+        <location filename="../CreateParametersDialog.py" line="55"/>
         <source>Could not start the pcreate executable.</source>
         <translation>Der pcreate Prozess konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="72"/>
+        <location filename="../CreateParametersDialog.py" line="64"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="118"/>
+        <location filename="../CreateParametersDialog.py" line="110"/>
         <source>{0} ({1})</source>
         <comment>scaffold name, explanatory text</comment>
         <translation>{0} ({1})</translation>
@@ -87,17 +87,17 @@
         <translation>Wähle die zu erzeugenden Dateiformate für die Distribution an</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="64"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
         <source>The python setup.py command did not finish within 30s.</source>
         <translation>Das python setup.py Kommando endete nicht innerhalb von 30s.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="68"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
         <source>Could not start the python executable.</source>
         <translation>Der python Prozess konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="81"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
@@ -130,22 +130,22 @@
         <translation>Zeigt den Text des ausgewählten Templates</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="33"/>
+        <location filename="../FormSelectionDialog.py" line="31"/>
         <source>Standard HTML 5 template</source>
         <translation>Standard HTML 5 Template</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="116"/>
+        <location filename="../FormSelectionDialog.py" line="114"/>
         <source>Mako template with sections</source>
         <translation>Mako Template mit Abschnitten</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="46"/>
+        <location filename="../FormSelectionDialog.py" line="44"/>
         <source>Standard HTML template</source>
         <translation>Standard HTML Template</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="60"/>
+        <location filename="../FormSelectionDialog.py" line="58"/>
         <source>Chameleon template</source>
         <translation>Chameleon Template</translation>
     </message>
@@ -153,480 +153,480 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="130"/>
+        <location filename="../Project.py" line="126"/>
         <source>Current Pyramid Project</source>
         <translation>Aktuelles Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="135"/>
+        <location filename="../Project.py" line="131"/>
         <source>Selects the current Pyramid project</source>
         <translation>Wählt das aktuelle Pyramid Projekt aus</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="137"/>
+        <location filename="../Project.py" line="133"/>
         <source>&lt;b&gt;Current Pyramid Project&lt;/b&gt;&lt;p&gt;Selects the Pyramid project. Used for multi-project Pyramid projects to switch between the projects.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Aktuelles Pyramid Projekt&lt;/b&gt;&lt;p&gt;Wählt das Pyramid Projekt aus. Wird bei Multiprojekt Pyramid Projekten eingesetzt, um zwischen den Projekten umzuschalten.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1017"/>
+        <location filename="../Project.py" line="906"/>
         <source>Create Pyramid Project</source>
         <translation>Pyramid Projekt erstellen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="149"/>
+        <location filename="../Project.py" line="145"/>
         <source>Create Pyramid &amp;Project</source>
         <translation>Pyramid &amp;Projekt erstellen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="154"/>
+        <location filename="../Project.py" line="150"/>
         <source>Creates a new Pyramid project</source>
         <translation>Erstellt ein neues Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="156"/>
+        <location filename="../Project.py" line="152"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Pyramid Projekt erstellen&lt;/b&gt;&lt;p&gt;Erstellt ein neues Pyramid Projekt mittels &quot;pcreate&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1189"/>
+        <location filename="../Project.py" line="1080"/>
         <source>Run Server</source>
         <translation>Server starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="167"/>
+        <location filename="../Project.py" line="163"/>
         <source>Run &amp;Server</source>
         <translation>&amp;Server starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="172"/>
+        <location filename="../Project.py" line="168"/>
         <source>Starts the Pyramid Web server</source>
         <translation>Startet den Pyramid Web Server</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="174"/>
+        <location filename="../Project.py" line="170"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Server starten&lt;/b&gt;&lt;p&gt;Startet den Pyramid Web Server mittels &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with Logging</source>
         <translation>Server mit Logging starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with &amp;Logging</source>
         <translation>Server mit &amp;Logging starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="187"/>
+        <location filename="../Project.py" line="183"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation>Startet den Pyramid Web Server mit Logging</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="189"/>
+        <location filename="../Project.py" line="185"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Server mit Logging starten&lt;/b&gt;&lt;p&gt;Startet den Pyramid Web Server mit Logging mittels &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Run Web-Browser</source>
         <translation>Web-Browser starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="197"/>
+        <location filename="../Project.py" line="193"/>
         <source>Run &amp;Web-Browser</source>
         <translation>Web-&amp;Browser starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="202"/>
+        <location filename="../Project.py" line="198"/>
         <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
         <translation>Startet den Standard Web-Browser mit der URL des Pyramid Web-Servers</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="205"/>
+        <location filename="../Project.py" line="201"/>
         <source>&lt;b&gt;Run Web-Browser&lt;/b&gt;&lt;p&gt;Starts the default Web-Browser with the URL of the Pyramid Web server.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Web-Browser starten&lt;/b&gt;&lt;p&gt;Startet den Standard Web-Browser mit der URL des Pyramid Web-Servers.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1281"/>
+        <location filename="../Project.py" line="1174"/>
         <source>Start Pyramid Python Console</source>
         <translation>Starte Pyramid Python Konsole</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="213"/>
+        <location filename="../Project.py" line="209"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation>Starte Pyramid &amp;Python Konsole</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="218"/>
+        <location filename="../Project.py" line="214"/>
         <source>Starts an interactive Python interpreter</source>
         <translation>Startet einen interaktiven Python Interpreter</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="220"/>
+        <location filename="../Project.py" line="216"/>
         <source>&lt;b&gt;Start Pyramid Python Console&lt;/b&gt;&lt;p&gt;Starts an interactive Python interpreter.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Starte Pyramid Python Konsole&lt;/b&gt;&lt;p&gt;Startet einen interaktiven Python Interpreter&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1320"/>
+        <location filename="../Project.py" line="1207"/>
         <source>Setup Development Environment</source>
         <translation>Entwicklungsumgebung einrichten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="231"/>
+        <location filename="../Project.py" line="227"/>
         <source>Setup &amp;Development Environment</source>
         <translation>Entwicklungs&amp;umgebung einrichten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="236"/>
+        <location filename="../Project.py" line="232"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation>Richtet das Pyramid Projekt im Entwicklungsmodus ein</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="238"/>
+        <location filename="../Project.py" line="234"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Entwicklungsumgebung einrichten&lt;/b&gt;&lt;p&gt;Richtet das Pyramid Projekt im Entwicklungsmodus mittels &quot;python setup.py develop&quot; ein.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1413"/>
+        <location filename="../Project.py" line="1300"/>
         <source>Initialize Database</source>
         <translation>Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="250"/>
+        <location filename="../Project.py" line="246"/>
         <source>Initialize &amp;Database</source>
         <translation>&amp;Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="255"/>
+        <location filename="../Project.py" line="251"/>
         <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
         <translation>Initialisiert (oder reinitialisiert) die Datenbank des aktuellen Pyramid Projektes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="258"/>
+        <location filename="../Project.py" line="254"/>
         <source>&lt;b&gt;Initialize Database&lt;/b&gt;&lt;p&gt;Initializes (or re-initializes) the database of the current Pyramid project.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Datenbank initialisieren&lt;/b&gt;&lt;p&gt;Initialisiert (oder reinitialisiert) die Datenbank des aktuellen Pyramid Projektes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Show Matching Views</source>
         <translation>Passende Ansichten anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="270"/>
+        <location filename="../Project.py" line="266"/>
         <source>Show Matching &amp;Views</source>
         <translation>Passende &amp;Ansichten anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="275"/>
+        <location filename="../Project.py" line="271"/>
         <source>Show views matching a given URL</source>
         <translation>Zeigt Ansichten zu einer gegebenen URL an</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="277"/>
+        <location filename="../Project.py" line="273"/>
         <source>&lt;b&gt;Show Matching Views&lt;/b&gt;&lt;p&gt;Show views matching a given URL.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Passende Ansichten anzeigen&lt;/b&gt;&lt;p&gt;Zeigt Ansichten zu einer gegebenen URL an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
+        <location filename="../Project.py" line="1364"/>
         <source>Show Routes</source>
         <translation>Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="284"/>
+        <location filename="../Project.py" line="280"/>
         <source>Show &amp;Routes</source>
         <translation>&amp;Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="289"/>
+        <location filename="../Project.py" line="285"/>
         <source>Show all URL dispatch routes used by a Pyramid application</source>
         <translation>Zeigt alle durch eine Pyramid Anwendung verwendete URL Routen an</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="291"/>
+        <location filename="../Project.py" line="287"/>
         <source>&lt;b&gt;Show Routes&lt;/b&gt;&lt;p&gt;Show all URL dispatch routes used by a Pyramid application in the order in which they are evaluated.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Routen anzeigen&lt;/b&gt;&lt;p&gt;Zeigt alle durch eine Pyramid Anwendung verwendete URL Routen in der Reihenfolge ihrer Auswertung an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1499"/>
+        <location filename="../Project.py" line="1386"/>
         <source>Show Tween Objects</source>
         <translation>Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="299"/>
+        <location filename="../Project.py" line="295"/>
         <source>Show &amp;Tween Objects</source>
         <translation>&amp;Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="304"/>
+        <location filename="../Project.py" line="300"/>
         <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
         <translation>Zeigt alle von einer Pyramid Anwendung verwendeten impliziten und expliziten Tween Objekte an</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="307"/>
+        <location filename="../Project.py" line="303"/>
         <source>&lt;b&gt;Show Tween Objects&lt;/b&gt;&lt;p&gt;Show all implicit and explicit tween objects used by a Pyramid application.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Tween Objekte anzeigen&lt;/b&gt;&lt;p&gt;Zeigt alle von einer Pyramid Anwendung verwendeten impliziten und expliziten Tween Objekte an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build Distribution</source>
         <translation>Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build &amp;Distribution</source>
         <translation>&amp;Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="324"/>
+        <location filename="../Project.py" line="320"/>
         <source>Builds a distribution file for the Pyramid project</source>
         <translation>Erzeugt Dateien zur Distribution eines Pyramid Projektes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="326"/>
+        <location filename="../Project.py" line="322"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Distribution erzeugen&lt;/b&gt;&lt;p&gt;Erzeugt Dateien zur Distribution eines Pyramid Projektes mittels &quot;python setup.py sdist&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>Documentation</source>
         <translation>Dokumentation</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>D&amp;ocumentation</source>
         <translation>D&amp;okumentation</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="343"/>
+        <location filename="../Project.py" line="339"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation>Zeigt die Hilfeanzeige mit der Pyramid Dokumentation</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="345"/>
+        <location filename="../Project.py" line="341"/>
         <source>&lt;b&gt;Documentation&lt;/b&gt;&lt;p&gt;Shows the help viewer with the Pyramid documentation.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Dokumentation&lt;/b&gt;&lt;p&gt;Zeigt die Hilfeanzeige mit der Pyramid Dokumentation.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>About Pyramid</source>
         <translation>Über Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="356"/>
+        <location filename="../Project.py" line="352"/>
         <source>About P&amp;yramid</source>
         <translation>Über P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="361"/>
+        <location filename="../Project.py" line="357"/>
         <source>Shows some information about Pyramid</source>
         <translation>Zeigt einige Informationen über Pyramid an</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="363"/>
+        <location filename="../Project.py" line="359"/>
         <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Über Pyramid&lt;/b&gt;&lt;p&gt;Zeigt einige Informationen über Pyramid an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="380"/>
+        <location filename="../Project.py" line="376"/>
         <source>P&amp;yramid</source>
         <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="454"/>
+        <location filename="../Project.py" line="451"/>
         <source>New template...</source>
         <translation>Neues Template...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
+        <location filename="../Project.py" line="459"/>
         <source>Extract Messages</source>
         <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="465"/>
+        <location filename="../Project.py" line="462"/>
         <source>Compile All Catalogs</source>
         <translation>Alle Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
+        <location filename="../Project.py" line="465"/>
         <source>Compile Selected Catalogs</source>
         <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
+        <location filename="../Project.py" line="468"/>
         <source>Update All Catalogs</source>
         <translation>Alle Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="474"/>
+        <location filename="../Project.py" line="471"/>
         <source>Update Selected Catalogs</source>
         <translation>Ausgewählte Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="514"/>
+        <location filename="../Project.py" line="511"/>
         <source>Chameleon Templates (*.pt);;Chameleon Text Templates (*.txt);;Mako Templates (*.mako);;Mako Templates (*.mak);;HTML Files (*.html);;HTML Files (*.htm);;All Files (*)</source>
         <translation>Chameleon Templates (*.pt);;Chameleon Text Templates (*.txt);;Mako Templates (*.mako);;Mako Templates (*.mak);;HTML Dateien (*.html);;HTML Dateien (*.htm);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>New Form</source>
         <translation>Neues Formular</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="537"/>
+        <location filename="../Project.py" line="534"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Die Datei existiert bereits. Überschreiben?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select Pyramid Project</source>
         <translation>Pyramid Projekt auswählen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select the Pyramid project to work with.</source>
         <translation>Wähle das Pyramid Projekt aus, mit dem gearbeitet werden soll.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1115"/>
+        <location filename="../Project.py" line="1006"/>
         <source>None</source>
         <translation>keines</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1118"/>
+        <location filename="../Project.py" line="1009"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation>&amp;Aktuelles Pyramid Projekt ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1807"/>
+        <location filename="../Project.py" line="1689"/>
         <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
         <translation>Kein aktuelles Pyramid Projekt ausgewählt oder noch keines erstellt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1217"/>
+        <location filename="../Project.py" line="1108"/>
         <source>The Pyramid server could not be started.</source>
         <translation>Der Pyramid Server konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation>Der Web-Browser konnte nicht für die URL &quot;{0}&quot; gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1305"/>
+        <location filename="../Project.py" line="1192"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation>Der Pyramid Konsolenprozess konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1336"/>
+        <location filename="../Project.py" line="1223"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation>Die Pyramid Entwicklungsumgebung wurde erfolgreich eingerichtet.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1355"/>
+        <location filename="../Project.py" line="1242"/>
         <source>Build Distribution File</source>
         <translation>Distributionsdateien erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1379"/>
+        <location filename="../Project.py" line="1267"/>
         <source>Python distribution file built successfully.</source>
         <translation>Python Distributionsdateien erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1428"/>
+        <location filename="../Project.py" line="1315"/>
         <source>Database initialized successfully.</source>
         <translation>Datenbank erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Enter the URL to be matched:</source>
         <translation>Gib die zu überprüfende URL ein:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1595"/>
+        <location filename="../Project.py" line="1477"/>
         <source>Extract messages</source>
         <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1635"/>
+        <location filename="../Project.py" line="1517"/>
         <source>
 Messages extracted successfully.</source>
         <translation>
 Texte erfolgreich extrahiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1668"/>
+        <location filename="../Project.py" line="1550"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1722"/>
+        <location filename="../Project.py" line="1604"/>
         <source>Compiling message catalogs</source>
         <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1636"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Textkataloge erfolgreich übersetzt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1829"/>
+        <location filename="../Project.py" line="1711"/>
         <source>No locales detected. Aborting...</source>
         <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1803"/>
+        <location filename="../Project.py" line="1685"/>
         <source>Updating message catalogs</source>
         <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1835"/>
+        <location filename="../Project.py" line="1717"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1649"/>
+        <location filename="../Project.py" line="1531"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Initialisiere Textkatalog für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Pyramid ist ein Python Web-Framework, das eine schnelle Entwicklung und ein klares, pragmatisches Design fördert.&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="440"/>
+        <location filename="../Project.py" line="436"/>
         <source>Open with {0}</source>
         <translation>Mit {0} öffnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Der Prozess für den Übersetzungseditor ({0}) konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1611"/>
+        <location filename="../Project.py" line="1493"/>
         <source>No setup.cfg found or no &quot;extract_messages&quot; section found in setup.cfg.</source>
         <translation>Keine setup.cfg gefunden bzw. keine Sektion &quot;extract_messages&quot; in setup.cfg vorhanden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1618"/>
+        <location filename="../Project.py" line="1500"/>
         <source>No &quot;output_file&quot; option found in setup.cfg.</source>
         <translation>Keine Option &quot;output_file&quot; in setup.cfg vorhanden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die neue Formulardatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht erstellt werden.&lt;br/&gt; Problem: {1}&lt;/p&gt;</translation>
     </message>
@@ -634,7 +634,7 @@
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="395"/>
+        <location filename="../../PluginProjectPyramid.py" line="425"/>
         <source>Pyramid</source>
         <translation>Pyramid</translation>
     </message>
@@ -697,12 +697,12 @@
         <translation>Alt+K</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Der Prozess {0} konnte nicht gestartet werden. Bitte stellen sie sicher, dass er sich im Suchpfad befindet.</translation>
     </message>
@@ -735,74 +735,74 @@
         <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="229"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
         <source>Pyramid Virtual Environment</source>
         <translation>Virtuelle Pyramid Umgebung</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="206"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="116"/>
         <source>Enter the path of the Pyramid virtual environment. Leave empty to not use a virtual environment setup.</source>
         <translation>Gib den Pfad der virtuellen Pyramid Umgebung ein. Leer lassen, um keine virtuelle Umgebung zu verwenden.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="219"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
         <source>Select the virtual environment directory via a selection dialog</source>
         <translation>Select the virtual environment directory via a selection dialog</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="253"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
         <source>Pyramid Python Console:</source>
         <translation>Pyramid Python Konsole:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="266"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
         <source>Select the Python console type</source>
         <translation>Wähle den Typ der Python Konsole</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Python 2</source>
-        <translation>Python 2</translation>
+        <translation type="obsolete">Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="278"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Pyramid Documentation</source>
         <translation>Pyramid Dokumentation</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="284"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="291"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="201"/>
         <source>Enter the URL of the Pyramid documentation</source>
         <translation>Gib die URL für die Pyramid Dokumentation ein</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="71"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
         <source>Plain Python</source>
         <translation>Normales Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="72"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
         <source>IPython</source>
         <translation>IPython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="73"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
         <source>bpython</source>
         <translation>bpython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="183"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
         <source>Select Virtual Environment for Python 3</source>
         <translation>Wähle die virtuelle Umgebung für Python 3</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
         <source>Select Virtual Environment for Python 2</source>
-        <translation>Wähle die virtuelle Umgebung für Python 2</translation>
+        <translation type="obsolete">Wähle die virtuelle Umgebung für Python 2</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
@@ -810,22 +810,22 @@
         <translation>Konsole</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>Translations Editor</source>
         <translation>Übersetzungseditor</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="320"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="230"/>
         <source>Enter the path of an editor to use to do the translations. Leave empty to disable this feature.</source>
         <translation>Gib den Pfad für einen Editor an, um Übersetzungen zu erstellen. Leer lassen, um dieses Feature abzuschalten.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="333"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="243"/>
         <source>Select the translations editor via a file selection dialog</source>
         <translation>Wähle den Übersetzungseditor über einen Auswahldialog aus</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>All Files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
@@ -845,12 +845,12 @@
         <translation>Externen Web-Browser benutzen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="298"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
         <source>Press to reset the URL to the default URL</source>
         <translation>Drücken, um die URL auf die Standard-URL zurückzusetzen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="235"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
         <source>Select the Virtual Environment to be used with Pyramid</source>
         <translation>Wähle die mit Pyramid zu verwendende virtuelle Umgebung</translation>
     </message>
@@ -908,22 +908,22 @@
         <translation>Alt+K</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="107"/>
+        <location filename="../PyramidRoutesDialog.py" line="104"/>
         <source>No routes found.</source>
         <translation>Keine Routen gefunden.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="139"/>
+        <location filename="../PyramidRoutesDialog.py" line="136"/>
         <source>Getting routes...</source>
         <translation>Ermittle Routen...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Der Prozess {0} konnte nicht gestartet werden. Bitte stellen sie sicher, dass er sich im Suchpfad befindet.</translation>
     </message>
--- a/ProjectPyramid/i18n/pyramid_en.ts	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/i18n/pyramid_en.ts	Tue Jun 23 18:14:14 2020 +0200
@@ -48,22 +48,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="60"/>
+        <location filename="../CreateParametersDialog.py" line="52"/>
         <source>The pcreate command did not finish within 30s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="63"/>
+        <location filename="../CreateParametersDialog.py" line="55"/>
         <source>Could not start the pcreate executable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="72"/>
+        <location filename="../CreateParametersDialog.py" line="64"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="118"/>
+        <location filename="../CreateParametersDialog.py" line="110"/>
         <source>{0} ({1})</source>
         <comment>scaffold name, explanatory text</comment>
         <translation type="unfinished"></translation>
@@ -87,17 +87,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="64"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
         <source>The python setup.py command did not finish within 30s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="68"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
         <source>Could not start the python executable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="81"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -130,22 +130,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="33"/>
+        <location filename="../FormSelectionDialog.py" line="31"/>
         <source>Standard HTML 5 template</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="116"/>
+        <location filename="../FormSelectionDialog.py" line="114"/>
         <source>Mako template with sections</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="46"/>
+        <location filename="../FormSelectionDialog.py" line="44"/>
         <source>Standard HTML template</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="60"/>
+        <location filename="../FormSelectionDialog.py" line="58"/>
         <source>Chameleon template</source>
         <translation type="unfinished"></translation>
     </message>
@@ -153,476 +153,476 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="130"/>
+        <location filename="../Project.py" line="126"/>
         <source>Current Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="135"/>
+        <location filename="../Project.py" line="131"/>
         <source>Selects the current Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="137"/>
+        <location filename="../Project.py" line="133"/>
         <source>&lt;b&gt;Current Pyramid Project&lt;/b&gt;&lt;p&gt;Selects the Pyramid project. Used for multi-project Pyramid projects to switch between the projects.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1017"/>
+        <location filename="../Project.py" line="906"/>
         <source>Create Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="149"/>
+        <location filename="../Project.py" line="145"/>
         <source>Create Pyramid &amp;Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="154"/>
+        <location filename="../Project.py" line="150"/>
         <source>Creates a new Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="156"/>
+        <location filename="../Project.py" line="152"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1189"/>
+        <location filename="../Project.py" line="1080"/>
         <source>Run Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="167"/>
+        <location filename="../Project.py" line="163"/>
         <source>Run &amp;Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="172"/>
+        <location filename="../Project.py" line="168"/>
         <source>Starts the Pyramid Web server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="174"/>
+        <location filename="../Project.py" line="170"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with Logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with &amp;Logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="187"/>
+        <location filename="../Project.py" line="183"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="189"/>
+        <location filename="../Project.py" line="185"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="197"/>
+        <location filename="../Project.py" line="193"/>
         <source>Run &amp;Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="202"/>
+        <location filename="../Project.py" line="198"/>
         <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="205"/>
+        <location filename="../Project.py" line="201"/>
         <source>&lt;b&gt;Run Web-Browser&lt;/b&gt;&lt;p&gt;Starts the default Web-Browser with the URL of the Pyramid Web server.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1281"/>
+        <location filename="../Project.py" line="1174"/>
         <source>Start Pyramid Python Console</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="213"/>
+        <location filename="../Project.py" line="209"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="218"/>
+        <location filename="../Project.py" line="214"/>
         <source>Starts an interactive Python interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="220"/>
+        <location filename="../Project.py" line="216"/>
         <source>&lt;b&gt;Start Pyramid Python Console&lt;/b&gt;&lt;p&gt;Starts an interactive Python interpreter.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1320"/>
+        <location filename="../Project.py" line="1207"/>
         <source>Setup Development Environment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="231"/>
+        <location filename="../Project.py" line="227"/>
         <source>Setup &amp;Development Environment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="236"/>
+        <location filename="../Project.py" line="232"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="238"/>
+        <location filename="../Project.py" line="234"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1413"/>
+        <location filename="../Project.py" line="1300"/>
         <source>Initialize Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="250"/>
+        <location filename="../Project.py" line="246"/>
         <source>Initialize &amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="255"/>
+        <location filename="../Project.py" line="251"/>
         <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="258"/>
+        <location filename="../Project.py" line="254"/>
         <source>&lt;b&gt;Initialize Database&lt;/b&gt;&lt;p&gt;Initializes (or re-initializes) the database of the current Pyramid project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Show Matching Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="270"/>
+        <location filename="../Project.py" line="266"/>
         <source>Show Matching &amp;Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="275"/>
+        <location filename="../Project.py" line="271"/>
         <source>Show views matching a given URL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="277"/>
+        <location filename="../Project.py" line="273"/>
         <source>&lt;b&gt;Show Matching Views&lt;/b&gt;&lt;p&gt;Show views matching a given URL.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
+        <location filename="../Project.py" line="1364"/>
         <source>Show Routes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="284"/>
+        <location filename="../Project.py" line="280"/>
         <source>Show &amp;Routes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="289"/>
+        <location filename="../Project.py" line="285"/>
         <source>Show all URL dispatch routes used by a Pyramid application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="291"/>
+        <location filename="../Project.py" line="287"/>
         <source>&lt;b&gt;Show Routes&lt;/b&gt;&lt;p&gt;Show all URL dispatch routes used by a Pyramid application in the order in which they are evaluated.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1499"/>
+        <location filename="../Project.py" line="1386"/>
         <source>Show Tween Objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="299"/>
+        <location filename="../Project.py" line="295"/>
         <source>Show &amp;Tween Objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="304"/>
+        <location filename="../Project.py" line="300"/>
         <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="307"/>
+        <location filename="../Project.py" line="303"/>
         <source>&lt;b&gt;Show Tween Objects&lt;/b&gt;&lt;p&gt;Show all implicit and explicit tween objects used by a Pyramid application.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build Distribution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build &amp;Distribution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="324"/>
+        <location filename="../Project.py" line="320"/>
         <source>Builds a distribution file for the Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="326"/>
+        <location filename="../Project.py" line="322"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>D&amp;ocumentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="343"/>
+        <location filename="../Project.py" line="339"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="345"/>
+        <location filename="../Project.py" line="341"/>
         <source>&lt;b&gt;Documentation&lt;/b&gt;&lt;p&gt;Shows the help viewer with the Pyramid documentation.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>About Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="356"/>
+        <location filename="../Project.py" line="352"/>
         <source>About P&amp;yramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="361"/>
+        <location filename="../Project.py" line="357"/>
         <source>Shows some information about Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="363"/>
+        <location filename="../Project.py" line="359"/>
         <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="380"/>
+        <location filename="../Project.py" line="376"/>
         <source>P&amp;yramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="454"/>
+        <location filename="../Project.py" line="451"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../Project.py" line="459"/>
+        <source>Extract Messages</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Project.py" line="462"/>
-        <source>Extract Messages</source>
+        <source>Compile All Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Project.py" line="465"/>
-        <source>Compile All Catalogs</source>
+        <source>Compile Selected Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Project.py" line="468"/>
-        <source>Compile Selected Catalogs</source>
+        <source>Update All Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Project.py" line="471"/>
-        <source>Update All Catalogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="474"/>
         <source>Update Selected Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="514"/>
+        <location filename="../Project.py" line="511"/>
         <source>Chameleon Templates (*.pt);;Chameleon Text Templates (*.txt);;Mako Templates (*.mako);;Mako Templates (*.mak);;HTML Files (*.html);;HTML Files (*.htm);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>New Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="537"/>
+        <location filename="../Project.py" line="534"/>
         <source>The file already exists! Overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select the Pyramid project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1115"/>
+        <location filename="../Project.py" line="1006"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1118"/>
+        <location filename="../Project.py" line="1009"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1807"/>
+        <location filename="../Project.py" line="1689"/>
         <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1217"/>
+        <location filename="../Project.py" line="1108"/>
         <source>The Pyramid server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1305"/>
+        <location filename="../Project.py" line="1192"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1336"/>
+        <location filename="../Project.py" line="1223"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1355"/>
+        <location filename="../Project.py" line="1242"/>
         <source>Build Distribution File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1379"/>
+        <location filename="../Project.py" line="1267"/>
         <source>Python distribution file built successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1428"/>
+        <location filename="../Project.py" line="1315"/>
         <source>Database initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Enter the URL to be matched:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1595"/>
+        <location filename="../Project.py" line="1477"/>
         <source>Extract messages</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1635"/>
+        <location filename="../Project.py" line="1517"/>
         <source>
 Messages extracted successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1668"/>
+        <location filename="../Project.py" line="1550"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1722"/>
+        <location filename="../Project.py" line="1604"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1636"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1829"/>
+        <location filename="../Project.py" line="1711"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1803"/>
+        <location filename="../Project.py" line="1685"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1835"/>
+        <location filename="../Project.py" line="1717"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1649"/>
+        <location filename="../Project.py" line="1531"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="440"/>
+        <location filename="../Project.py" line="436"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1611"/>
+        <location filename="../Project.py" line="1493"/>
         <source>No setup.cfg found or no &quot;extract_messages&quot; section found in setup.cfg.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1618"/>
+        <location filename="../Project.py" line="1500"/>
         <source>No &quot;output_file&quot; option found in setup.cfg.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -630,7 +630,7 @@
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="395"/>
+        <location filename="../../PluginProjectPyramid.py" line="425"/>
         <source>Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
@@ -693,12 +693,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -731,97 +731,87 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="229"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
         <source>Pyramid Virtual Environment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="206"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="116"/>
         <source>Enter the path of the Pyramid virtual environment. Leave empty to not use a virtual environment setup.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="219"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
         <source>Select the virtual environment directory via a selection dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="253"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
         <source>Pyramid Python Console:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="266"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
         <source>Select the Python console type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Python 2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="278"/>
         <source>Pyramid Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="284"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
         <source>URL:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="291"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="201"/>
         <source>Enter the URL of the Pyramid documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="71"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
         <source>Plain Python</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="72"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
         <source>IPython</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="73"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
         <source>bpython</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="183"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
         <source>Select Virtual Environment for Python 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
-        <source>Select Virtual Environment for Python 2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
         <source>Console Command</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>Translations Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="320"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="230"/>
         <source>Enter the path of an editor to use to do the translations. Leave empty to disable this feature.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="333"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="243"/>
         <source>Select the translations editor via a file selection dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -841,12 +831,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="298"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
         <source>Press to reset the URL to the default URL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="235"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
         <source>Select the Virtual Environment to be used with Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
@@ -904,22 +894,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="107"/>
+        <location filename="../PyramidRoutesDialog.py" line="104"/>
         <source>No routes found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="139"/>
+        <location filename="../PyramidRoutesDialog.py" line="136"/>
         <source>Getting routes...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
--- a/ProjectPyramid/i18n/pyramid_es.ts	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/i18n/pyramid_es.ts	Tue Jun 23 18:14:14 2020 +0200
@@ -48,22 +48,22 @@
         <translation>Simular creación de proyecto Piramid</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="60"/>
+        <location filename="../CreateParametersDialog.py" line="52"/>
         <source>The pcreate command did not finish within 30s.</source>
         <translation>El comando pcreate no ha terminado en 30s o menos.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="63"/>
+        <location filename="../CreateParametersDialog.py" line="55"/>
         <source>Could not start the pcreate executable.</source>
         <translation>No se ha podido iniciar el ejecutable de pcreate.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="72"/>
+        <location filename="../CreateParametersDialog.py" line="64"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="118"/>
+        <location filename="../CreateParametersDialog.py" line="110"/>
         <source>{0} ({1})</source>
         <comment>scaffold name, explanatory text</comment>
         <translation>{0} ({1})</translation>
@@ -87,17 +87,17 @@
         <translation>Comprobar los formatos de archivo de distribución que deberían ser generados</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="64"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
         <source>The python setup.py command did not finish within 30s.</source>
         <translation>El comando python setup.py no ha terminado en 30s o menos.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="68"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
         <source>Could not start the python executable.</source>
         <translation>No se ha podido iniciar el ejecutable de python.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="81"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
@@ -130,22 +130,22 @@
         <translation>Muestra el texto de la plantilla seleccionada</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="33"/>
+        <location filename="../FormSelectionDialog.py" line="31"/>
         <source>Standard HTML 5 template</source>
         <translation>Plantilla Estándar HTML 5</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="116"/>
+        <location filename="../FormSelectionDialog.py" line="114"/>
         <source>Mako template with sections</source>
         <translation>Plantilla Mako con secciones</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="46"/>
+        <location filename="../FormSelectionDialog.py" line="44"/>
         <source>Standard HTML template</source>
         <translation>Plantilla Estándar HTML</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="60"/>
+        <location filename="../FormSelectionDialog.py" line="58"/>
         <source>Chameleon template</source>
         <translation>Plantilla Chameleon</translation>
     </message>
@@ -153,477 +153,477 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="130"/>
+        <location filename="../Project.py" line="126"/>
         <source>Current Pyramid Project</source>
         <translation>Proyecto Pyramid Actual</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="135"/>
+        <location filename="../Project.py" line="131"/>
         <source>Selects the current Pyramid project</source>
         <translation>Selecciona el proyecto Piramid actual</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="137"/>
+        <location filename="../Project.py" line="133"/>
         <source>&lt;b&gt;Current Pyramid Project&lt;/b&gt;&lt;p&gt;Selects the Pyramid project. Used for multi-project Pyramid projects to switch between the projects.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Proyecto Pyramid Actual&lt;/b&gt;&lt;p&gt;Seleciona el proyecto Pyramid. Se utiliza en proyectos Pyramid multi-proyecto Pyramid projects para cambiar entre proyectos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1017"/>
+        <location filename="../Project.py" line="906"/>
         <source>Create Pyramid Project</source>
         <translation>Crear Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="149"/>
+        <location filename="../Project.py" line="145"/>
         <source>Create Pyramid &amp;Project</source>
         <translation>Crear &amp;Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="154"/>
+        <location filename="../Project.py" line="150"/>
         <source>Creates a new Pyramid project</source>
         <translation>Crea un nuevo proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="156"/>
+        <location filename="../Project.py" line="152"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Crear Proyecto Pyramid &lt;/b&gt;&lt;p&gt;Crea un nuevo proyecto Pyramid usando &quot;pcreate&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1189"/>
+        <location filename="../Project.py" line="1080"/>
         <source>Run Server</source>
         <translation>Lanzar Servidor</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="167"/>
+        <location filename="../Project.py" line="163"/>
         <source>Run &amp;Server</source>
         <translation>Lanzar &amp;Servidor</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="172"/>
+        <location filename="../Project.py" line="168"/>
         <source>Starts the Pyramid Web server</source>
         <translation>Inicia el servidor Web de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="174"/>
+        <location filename="../Project.py" line="170"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lanzar Servidor&lt;/b&gt;&lt;p&gt;Inicia el servidor Web de Pyramid usando &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with Logging</source>
         <translation>Lanzar Servidor con Log</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with &amp;Logging</source>
         <translation>Lanzar Servidor con &amp;Log</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="187"/>
+        <location filename="../Project.py" line="183"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation>Inicia el servidor Web de Pyramid con log</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="189"/>
+        <location filename="../Project.py" line="185"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lanzar Servidor con Log&lt;/b&gt;&lt;p&gt;Inicia el servidor Web de Pyramid con log usando &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Run Web-Browser</source>
         <translation>Lanzar Navegador Web</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="197"/>
+        <location filename="../Project.py" line="193"/>
         <source>Run &amp;Web-Browser</source>
         <translation>Lanzar Navegador &amp;Web</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="202"/>
+        <location filename="../Project.py" line="198"/>
         <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
         <translation>Inicia el Navegador Web por defecto con la URL del servidor Web de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="205"/>
+        <location filename="../Project.py" line="201"/>
         <source>&lt;b&gt;Run Web-Browser&lt;/b&gt;&lt;p&gt;Starts the default Web-Browser with the URL of the Pyramid Web server.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lanzar Navegador Web&lt;/b&gt;&lt;p&gt;Inicia el Navegador Web por defecto con la URL del servidor Web de Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1281"/>
+        <location filename="../Project.py" line="1174"/>
         <source>Start Pyramid Python Console</source>
         <translation>Iniciar Consola Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="213"/>
+        <location filename="../Project.py" line="209"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation>Iniciar Consola &amp;Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="218"/>
+        <location filename="../Project.py" line="214"/>
         <source>Starts an interactive Python interpreter</source>
         <translation>Inicia un intérprete interactivo de Python</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="220"/>
+        <location filename="../Project.py" line="216"/>
         <source>&lt;b&gt;Start Pyramid Python Console&lt;/b&gt;&lt;p&gt;Starts an interactive Python interpreter.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Iniciar Consola Python de Pyramid&lt;/b&gt;&lt;p&gt;Inicia un intérprete interactivo de Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1320"/>
+        <location filename="../Project.py" line="1207"/>
         <source>Setup Development Environment</source>
         <translation>Configurar Entorno de Desarrollo</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="231"/>
+        <location filename="../Project.py" line="227"/>
         <source>Setup &amp;Development Environment</source>
         <translation>Configurar Entorno de &amp;Desarrollo</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="236"/>
+        <location filename="../Project.py" line="232"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation>Configurar el proyecto Pyramid en modo de desarrollo</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="238"/>
+        <location filename="../Project.py" line="234"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Configurar Entorno de Desarrollo&lt;/b&gt;&lt;p&gt;Configurar el proyecto Pyramid en modo de desarrollo usando &quot;python setup.py develop&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1413"/>
+        <location filename="../Project.py" line="1300"/>
         <source>Initialize Database</source>
         <translation>Inicializar Base de Datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="250"/>
+        <location filename="../Project.py" line="246"/>
         <source>Initialize &amp;Database</source>
         <translation>Inicializar Base de &amp;Datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="255"/>
+        <location filename="../Project.py" line="251"/>
         <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
         <translation>Inicializa (o reinicializa) la base de datos del proyecto Pyramid actual</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="258"/>
+        <location filename="../Project.py" line="254"/>
         <source>&lt;b&gt;Initialize Database&lt;/b&gt;&lt;p&gt;Initializes (or re-initializes) the database of the current Pyramid project.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Inicializar Base de Datos&lt;/b&gt;&lt;p&gt;Inicializa (o reinicializa) la base de datos del proyecto Pyramid actual.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Show Matching Views</source>
         <translation>Mostrar Vistas Concordantes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="270"/>
+        <location filename="../Project.py" line="266"/>
         <source>Show Matching &amp;Views</source>
         <translation>Mostrar &amp;Vistas Concordantes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="275"/>
+        <location filename="../Project.py" line="271"/>
         <source>Show views matching a given URL</source>
         <translation>Mostrar vistas que concuerdan con una URL dada</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="277"/>
+        <location filename="../Project.py" line="273"/>
         <source>&lt;b&gt;Show Matching Views&lt;/b&gt;&lt;p&gt;Show views matching a given URL.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Mostrar Vistas Concordantes&lt;/b&gt;&lt;p&gt;Mostrar vistas que concuerdan con una URL dada.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
+        <location filename="../Project.py" line="1364"/>
         <source>Show Routes</source>
         <translation>Mostrar Rutas</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="284"/>
+        <location filename="../Project.py" line="280"/>
         <source>Show &amp;Routes</source>
         <translation>Mostrar &amp;Rutas</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="289"/>
+        <location filename="../Project.py" line="285"/>
         <source>Show all URL dispatch routes used by a Pyramid application</source>
         <translation>Mostrar todas las rutas URL de despacho usadas por una aplicación Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="291"/>
+        <location filename="../Project.py" line="287"/>
         <source>&lt;b&gt;Show Routes&lt;/b&gt;&lt;p&gt;Show all URL dispatch routes used by a Pyramid application in the order in which they are evaluated.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Mostrar Rutas&lt;/b&gt;&lt;p&gt;Mostrar todas las rutas URL de despacho usadas por una aplicación Pyramid en el orden en que son evaluadas.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1499"/>
+        <location filename="../Project.py" line="1386"/>
         <source>Show Tween Objects</source>
         <translation>Mostrar Objetos Gemelos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="299"/>
+        <location filename="../Project.py" line="295"/>
         <source>Show &amp;Tween Objects</source>
         <translation>Mos&amp;trar Objetos Gemelos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="304"/>
+        <location filename="../Project.py" line="300"/>
         <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
         <translation>Mostrar todos los objetos gemelos implícitos y explícitos usados por una aplicación Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="307"/>
+        <location filename="../Project.py" line="303"/>
         <source>&lt;b&gt;Show Tween Objects&lt;/b&gt;&lt;p&gt;Show all implicit and explicit tween objects used by a Pyramid application.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Mostrar Objetos Gemelos&lt;/b&gt;&lt;p&gt;Mostrar todos los objetos gemelos implícitos y explícitos usados por una aplicación Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build Distribution</source>
         <translation>Construir Distribución</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build &amp;Distribution</source>
         <translation>Construir &amp;Distribución</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="324"/>
+        <location filename="../Project.py" line="320"/>
         <source>Builds a distribution file for the Pyramid project</source>
         <translation>Construye un archivo de distribución para el proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="326"/>
+        <location filename="../Project.py" line="322"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Construir Distribución&lt;/b&gt;&lt;p&gt;Construye un archivo de distribución para el proyecto Pyramid usando &quot;python setup.py sdist&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>Documentation</source>
         <translation>Documentación</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>D&amp;ocumentation</source>
         <translation>D&amp;ocumentación</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="343"/>
+        <location filename="../Project.py" line="339"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation>Muestra el visor de ayuda con la documentación de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="345"/>
+        <location filename="../Project.py" line="341"/>
         <source>&lt;b&gt;Documentation&lt;/b&gt;&lt;p&gt;Shows the help viewer with the Pyramid documentation.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Documentación&lt;/b&gt;&lt;p&gt;Muestra el visor de ayuda con la documentación de Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>About Pyramid</source>
         <translation>Acerca de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="356"/>
+        <location filename="../Project.py" line="352"/>
         <source>About P&amp;yramid</source>
         <translation>Acerca de P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="361"/>
+        <location filename="../Project.py" line="357"/>
         <source>Shows some information about Pyramid</source>
         <translation>Muestra información sobre Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="363"/>
+        <location filename="../Project.py" line="359"/>
         <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Acerca de Pyramid&lt;/b&gt;&lt;p&gt;Muestra información acerca de Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="380"/>
+        <location filename="../Project.py" line="376"/>
         <source>P&amp;yramid</source>
         <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="454"/>
+        <location filename="../Project.py" line="451"/>
         <source>New template...</source>
         <translation>Nueva Plantilla...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
+        <location filename="../Project.py" line="459"/>
         <source>Extract Messages</source>
         <translation>Extraer Mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="465"/>
+        <location filename="../Project.py" line="462"/>
         <source>Compile All Catalogs</source>
         <translation>Compilar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
+        <location filename="../Project.py" line="465"/>
         <source>Compile Selected Catalogs</source>
         <translation>Compilar Catálogos Seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
+        <location filename="../Project.py" line="468"/>
         <source>Update All Catalogs</source>
         <translation>Actualizar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="474"/>
+        <location filename="../Project.py" line="471"/>
         <source>Update Selected Catalogs</source>
         <translation>Actualizar Catálogos Seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="514"/>
+        <location filename="../Project.py" line="511"/>
         <source>Chameleon Templates (*.pt);;Chameleon Text Templates (*.txt);;Mako Templates (*.mako);;Mako Templates (*.mak);;HTML Files (*.html);;HTML Files (*.htm);;All Files (*)</source>
         <translation>Plantillas Chameleon (*.pt);;Plantillas de Texto Chameleon (*.txt);;Plantillas Mako (*.mako);;Plantillas Mako (*.mak);;Archivos HTML (*.html);;Archivos HTML (*.htm);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>New Form</source>
         <translation>Nuevo Formulario</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="537"/>
+        <location filename="../Project.py" line="534"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>¡El archivo ya existe!¿Sobreescribirlo?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select Pyramid Project</source>
         <translation>Seleccionar Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select the Pyramid project to work with.</source>
         <translation>Seleccionar el proyecto Pyramid con el que trabajar.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1115"/>
+        <location filename="../Project.py" line="1006"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1118"/>
+        <location filename="../Project.py" line="1009"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation>Proyecto Pyramid A&amp;ctual ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1807"/>
+        <location filename="../Project.py" line="1689"/>
         <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
         <translation>No se ha seleccionado proyecto Pyramid actual o no hay creado todavía ningún proyecto Pyramid. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1217"/>
+        <location filename="../Project.py" line="1108"/>
         <source>The Pyramid server could not be started.</source>
         <translation>No se ha podido iniciar el servidor de Pyramid.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation>No se ha podido inicialr el navegador web para la URL &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1305"/>
+        <location filename="../Project.py" line="1192"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation>No se ha podido iniciar el proceso Shell de Pyramid.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1336"/>
+        <location filename="../Project.py" line="1223"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation>Entorno de desarrollo de Pyramid configurado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1355"/>
+        <location filename="../Project.py" line="1242"/>
         <source>Build Distribution File</source>
         <translation>Construir Archivo de Distribución</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1379"/>
+        <location filename="../Project.py" line="1267"/>
         <source>Python distribution file built successfully.</source>
         <translation>Archivo de distribución Python construido con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1428"/>
+        <location filename="../Project.py" line="1315"/>
         <source>Database initialized successfully.</source>
         <translation>Base de Datos inicializada con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Enter the URL to be matched:</source>
         <translation>Introducir la URL a ser concordada:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1595"/>
+        <location filename="../Project.py" line="1477"/>
         <source>Extract messages</source>
         <translation>Extraer mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1635"/>
+        <location filename="../Project.py" line="1517"/>
         <source>
 Messages extracted successfully.</source>
         <translation>Mensajes extraídos con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1668"/>
+        <location filename="../Project.py" line="1550"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Catálogo de Mensajes inicializado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1722"/>
+        <location filename="../Project.py" line="1604"/>
         <source>Compiling message catalogs</source>
         <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1636"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>Catálogo de Mensajes compilado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1829"/>
+        <location filename="../Project.py" line="1711"/>
         <source>No locales detected. Aborting...</source>
         <translation>No se han detectado traducciones. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1803"/>
+        <location filename="../Project.py" line="1685"/>
         <source>Updating message catalogs</source>
         <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1835"/>
+        <location filename="../Project.py" line="1717"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>Catálogo de Mensajes actualizado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1649"/>
+        <location filename="../Project.py" line="1531"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Inicializando catálogo de mensajes para &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Pyramid es un framework Web de alto nivel para Python que promueve desarrollo rápido, y diseño pragmático
  y limpio.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Versión:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="440"/>
+        <location filename="../Project.py" line="436"/>
         <source>Open with {0}</source>
         <translation>Abrir con {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>El proceso de edición de traducciones ({0}) no ha podido ser iniciado.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1611"/>
+        <location filename="../Project.py" line="1493"/>
         <source>No setup.cfg found or no &quot;extract_messages&quot; section found in setup.cfg.</source>
         <translation>No se ha encontrado setup.cfg o no se ha encontrado la sección &apos;extract_messages&apos; de setup.cfg.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1618"/>
+        <location filename="../Project.py" line="1500"/>
         <source>No &quot;output_file&quot; option found in setup.cfg.</source>
         <translation>No se ha encontrado opción &quot;output_file&quot; en setup.cfg.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido crear el nuevo archivo de formulario &lt;b&gt;{0}&lt;/b&gt;.&lt;br/&gt;Problema: {1}&lt;/p&gt;</translation>
     </message>
@@ -631,7 +631,7 @@
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="395"/>
+        <location filename="../../PluginProjectPyramid.py" line="425"/>
         <source>Pyramid</source>
         <translation></translation>
     </message>
@@ -694,12 +694,12 @@
         <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>No se ha podido iniciar el proceso {0}. Asegúrese de que está en la ruta de búsqueda.</translation>
     </message>
@@ -732,74 +732,74 @@
         <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="229"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
         <source>Pyramid Virtual Environment</source>
         <translation>Entorno Virtual de Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="206"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="116"/>
         <source>Enter the path of the Pyramid virtual environment. Leave empty to not use a virtual environment setup.</source>
         <translation>Introducir la ruta del entorno virtual de Pyramid. Dejar vacío para no utilizar una configuración de entorno virtual.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="219"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
         <source>Select the virtual environment directory via a selection dialog</source>
         <translation>Seleccionar el directorio de entorno virtual a través de un diálogo de selección</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="253"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
         <source>Pyramid Python Console:</source>
         <translation>Consola Python de Pyramid:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="266"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
         <source>Select the Python console type</source>
         <translation>Seleccionar el tipo de consola de Python</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Python 2</source>
-        <translation>Python 2</translation>
+        <translation type="obsolete">Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="278"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Pyramid Documentation</source>
         <translation>Documentación de Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="284"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="291"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="201"/>
         <source>Enter the URL of the Pyramid documentation</source>
         <translation>Introducir la URL de la documentación de Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="71"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
         <source>Plain Python</source>
         <translation>Python normal</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="72"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
         <source>IPython</source>
         <translation>IPython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="73"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
         <source>bpython</source>
         <translation>bpython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="183"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
         <source>Select Virtual Environment for Python 3</source>
         <translation>Seleccionar Entorno Virtual para Python 3</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
         <source>Select Virtual Environment for Python 2</source>
-        <translation>Seleccionar Entorno Virtual para Python 2</translation>
+        <translation type="obsolete">Seleccionar Entorno Virtual para Python 2</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
@@ -807,22 +807,22 @@
         <translation>Comando de Consola</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>Translations Editor</source>
         <translation>Editor de Traducciones</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="320"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="230"/>
         <source>Enter the path of an editor to use to do the translations. Leave empty to disable this feature.</source>
         <translation>Introducir la ruta de un editor para hacer las traducciones. Dejar vacío para deshabilitar esta característica.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="333"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="243"/>
         <source>Select the translations editor via a file selection dialog</source>
         <translation>Seleccionar el editor de traducciones vía un diálogo de selección de archivo</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>All Files (*)</source>
         <translation>Todos los Archivos (*)</translation>
     </message>
@@ -842,12 +842,12 @@
         <translation>Usar navegador web externo</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="298"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
         <source>Press to reset the URL to the default URL</source>
         <translation>Pulsar para restablecer la URL a la URL por defecto</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="235"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
         <source>Select the Virtual Environment to be used with Pyramid</source>
         <translation>Seleccionar el Entorno Virtual a utilizar con Pyramid</translation>
     </message>
@@ -905,22 +905,22 @@
         <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="107"/>
+        <location filename="../PyramidRoutesDialog.py" line="104"/>
         <source>No routes found.</source>
         <translation>No se han hallado rutas.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="139"/>
+        <location filename="../PyramidRoutesDialog.py" line="136"/>
         <source>Getting routes...</source>
         <translation>Obteniendo rutas...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>No se ha podido iniciar el proceso {0}. Asegúrese de que está en la ruta de búsqueda.</translation>
     </message>
--- a/ProjectPyramid/i18n/pyramid_ru.ts	Thu Apr 09 18:34:09 2020 +0200
+++ b/ProjectPyramid/i18n/pyramid_ru.ts	Tue Jun 23 18:14:14 2020 +0200
@@ -48,22 +48,22 @@
         <translation>Имитировать создание Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="60"/>
+        <location filename="../CreateParametersDialog.py" line="52"/>
         <source>The pcreate command did not finish within 30s.</source>
         <translation>Команда pcreate не завершилась за 30 сек.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="63"/>
+        <location filename="../CreateParametersDialog.py" line="55"/>
         <source>Could not start the pcreate executable.</source>
         <translation>Не удается запустить исполняемый файл pcreate.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="72"/>
+        <location filename="../CreateParametersDialog.py" line="64"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="118"/>
+        <location filename="../CreateParametersDialog.py" line="110"/>
         <source>{0} ({1})</source>
         <comment>scaffold name, explanatory text</comment>
         <translation>{0} ({1})</translation>
@@ -87,17 +87,17 @@
         <translation>Выберите форматы создаваемого файла дистрибутива</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="64"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
         <source>The python setup.py command did not finish within 30s.</source>
         <translation>Команда Python setup.py не завершилась в течении 30 сек.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="81"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="68"/>
+        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
         <source>Could not start the python executable.</source>
         <translation>Не удается запустить исполняемый файл python.</translation>
     </message>
@@ -130,22 +130,22 @@
         <translation>Отображение текста выбранного шаблона</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="33"/>
+        <location filename="../FormSelectionDialog.py" line="31"/>
         <source>Standard HTML 5 template</source>
         <translation>Стандартный шаблон HTML 5</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="116"/>
+        <location filename="../FormSelectionDialog.py" line="114"/>
         <source>Mako template with sections</source>
         <translation>Шаблон Mako с секциями</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="46"/>
+        <location filename="../FormSelectionDialog.py" line="44"/>
         <source>Standard HTML template</source>
         <translation>Стандартный шаблон HTML</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="60"/>
+        <location filename="../FormSelectionDialog.py" line="58"/>
         <source>Chameleon template</source>
         <translation>Шаблон Chameleon</translation>
     </message>
@@ -153,480 +153,480 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="130"/>
+        <location filename="../Project.py" line="126"/>
         <source>Current Pyramid Project</source>
         <translation>Текущий Pyramid проект</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="135"/>
+        <location filename="../Project.py" line="131"/>
         <source>Selects the current Pyramid project</source>
         <translation>Выбор текущего Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="137"/>
+        <location filename="../Project.py" line="133"/>
         <source>&lt;b&gt;Current Pyramid Project&lt;/b&gt;&lt;p&gt;Selects the Pyramid project. Used for multi-project Pyramid projects to switch between the projects.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Текущий Pyramid проект&lt;/b&gt;&lt;p&gt;Выбор Pyramid проекта. Используется в мультипроектных  Pyramid-проектах для переключения между проектами.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1017"/>
+        <location filename="../Project.py" line="906"/>
         <source>Create Pyramid Project</source>
         <translation>Создать Pyramid проект</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="149"/>
+        <location filename="../Project.py" line="145"/>
         <source>Create Pyramid &amp;Project</source>
         <translation>Создать Pyramid &amp;проект</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="154"/>
+        <location filename="../Project.py" line="150"/>
         <source>Creates a new Pyramid project</source>
         <translation>Создание нового Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="156"/>
+        <location filename="../Project.py" line="152"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Создание Pyramid проекта&lt;/b&gt;&lt;p&gt;Создание нового Pyramid-проекта посредством команды &quot;pcreate&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1189"/>
+        <location filename="../Project.py" line="1080"/>
         <source>Run Server</source>
         <translation>Сервер разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="167"/>
+        <location filename="../Project.py" line="163"/>
         <source>Run &amp;Server</source>
         <translation>&amp;Сервер разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="172"/>
+        <location filename="../Project.py" line="168"/>
         <source>Starts the Pyramid Web server</source>
         <translation>Запуск Pyramid Web сервера разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="174"/>
+        <location filename="../Project.py" line="170"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Сервер разработки&lt;/b&gt;&lt;p&gt;Запуск Pyramid Web сервера разработки посредством команды &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with Logging</source>
         <translation>Сервер разработки с ведением журнала</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="182"/>
+        <location filename="../Project.py" line="178"/>
         <source>Run Server with &amp;Logging</source>
         <translation>Сервер разработки с ведением &amp;журнала</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="187"/>
+        <location filename="../Project.py" line="183"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation>Запуск Pyramid Web сервера разработки с ведением журнала</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="189"/>
+        <location filename="../Project.py" line="185"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Сервер с ведением журнала&lt;/b&gt;&lt;p&gt;Запуск Pyramid Web сервера разработки с ведением журнала посредством команды &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Run Web-Browser</source>
         <translation>Запуск Web-браузера для администрирования</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="197"/>
+        <location filename="../Project.py" line="193"/>
         <source>Run &amp;Web-Browser</source>
         <translation>Запуск &amp;Web-браузера</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="202"/>
+        <location filename="../Project.py" line="198"/>
         <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
         <translation>Запуск стандартного Web-браузера с URL Pyramid Web сервера (администрирование)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="205"/>
+        <location filename="../Project.py" line="201"/>
         <source>&lt;b&gt;Run Web-Browser&lt;/b&gt;&lt;p&gt;Starts the default Web-Browser with the URL of the Pyramid Web server.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Запуск Web-браузера&lt;/b&gt;&lt;p&gt;Запуск стандартного Web-браузера с URL Pyramid Web сервера.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1281"/>
+        <location filename="../Project.py" line="1174"/>
         <source>Start Pyramid Python Console</source>
         <translation>Запуск консоли Pyramid Python</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="213"/>
+        <location filename="../Project.py" line="209"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation>Запуск Pyramid &amp;Python консоли</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="218"/>
+        <location filename="../Project.py" line="214"/>
         <source>Starts an interactive Python interpreter</source>
         <translation>Запуск интерактивного интерпретатора Python</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="220"/>
+        <location filename="../Project.py" line="216"/>
         <source>&lt;b&gt;Start Pyramid Python Console&lt;/b&gt;&lt;p&gt;Starts an interactive Python interpreter.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Запуск Pyramid Python консоли&lt;/b&gt;&lt;p&gt;Запуск интерактивного интерпретатора Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1320"/>
+        <location filename="../Project.py" line="1207"/>
         <source>Setup Development Environment</source>
         <translation>Настройка среды разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="231"/>
+        <location filename="../Project.py" line="227"/>
         <source>Setup &amp;Development Environment</source>
         <translation>Настройка среды &amp;разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="236"/>
+        <location filename="../Project.py" line="232"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation>Настройка Pyramid проекта в режиме разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="238"/>
+        <location filename="../Project.py" line="234"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Настройка среды разработки&lt;/b&gt;&lt;p&gt;Настройка Pyramid проекта в режиме разработки посредством &quot;python setup.py develop&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1413"/>
+        <location filename="../Project.py" line="1300"/>
         <source>Initialize Database</source>
         <translation>Инициализация базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="250"/>
+        <location filename="../Project.py" line="246"/>
         <source>Initialize &amp;Database</source>
         <translation>Инициализация &amp;базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="255"/>
+        <location filename="../Project.py" line="251"/>
         <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
         <translation>Инициализация (или ре-инициализация) базы данных текущего Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="258"/>
+        <location filename="../Project.py" line="254"/>
         <source>&lt;b&gt;Initialize Database&lt;/b&gt;&lt;p&gt;Initializes (or re-initializes) the database of the current Pyramid project.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Инициализация базы данных&lt;/b&gt;&lt;p&gt;Инициализация (или ре-инициализация) базы данных текущего Pyramid проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Show Matching Views</source>
         <translation>Показ сопоставленных видов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="270"/>
+        <location filename="../Project.py" line="266"/>
         <source>Show Matching &amp;Views</source>
         <translation>Показ сопоставленных &amp;видов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="275"/>
+        <location filename="../Project.py" line="271"/>
         <source>Show views matching a given URL</source>
         <translation>Показ видов, сопоставленных заданному URL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="277"/>
+        <location filename="../Project.py" line="273"/>
         <source>&lt;b&gt;Show Matching Views&lt;/b&gt;&lt;p&gt;Show views matching a given URL.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Показ сопоставленных видов&lt;/b&gt;&lt;p&gt;Отображение видов, сопоставленных заданным URL.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
+        <location filename="../Project.py" line="1364"/>
         <source>Show Routes</source>
         <translation>Показ маршрутов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="284"/>
+        <location filename="../Project.py" line="280"/>
         <source>Show &amp;Routes</source>
         <translation>Показ &amp;маршрутов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="289"/>
+        <location filename="../Project.py" line="285"/>
         <source>Show all URL dispatch routes used by a Pyramid application</source>
         <translation>Отображение всех URL dispatch маршрутов, используемых Pyramid приложением</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="291"/>
+        <location filename="../Project.py" line="287"/>
         <source>&lt;b&gt;Show Routes&lt;/b&gt;&lt;p&gt;Show all URL dispatch routes used by a Pyramid application in the order in which they are evaluated.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Показ маршрутов&lt;/b&gt;&lt;p&gt;Отображение всех URL dispatch маршрутов, используемых Pyramid приложением, в том порядке, в котором они выполняются.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1499"/>
+        <location filename="../Project.py" line="1386"/>
         <source>Show Tween Objects</source>
         <translation>Показ Tween объектов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="299"/>
+        <location filename="../Project.py" line="295"/>
         <source>Show &amp;Tween Objects</source>
         <translation>Показ &amp;Tween объектов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="304"/>
+        <location filename="../Project.py" line="300"/>
         <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
         <translation>Показ всех явных и неявных tween-объектов, используемых Pyramid приложением</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="307"/>
+        <location filename="../Project.py" line="303"/>
         <source>&lt;b&gt;Show Tween Objects&lt;/b&gt;&lt;p&gt;Show all implicit and explicit tween objects used by a Pyramid application.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Показ Tween объектов&lt;/b&gt;&lt;p&gt;Отображение всех явных и неявных tween-объектов, используемых Pyramid приложением.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build Distribution</source>
         <translation>Создать дистрибутив</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="319"/>
+        <location filename="../Project.py" line="315"/>
         <source>Build &amp;Distribution</source>
         <translation>Создать &amp;дистрибутив</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="324"/>
+        <location filename="../Project.py" line="320"/>
         <source>Builds a distribution file for the Pyramid project</source>
         <translation>Создание файла дистрибутива для Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="326"/>
+        <location filename="../Project.py" line="322"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Создать дистрибутив&lt;/b&gt;&lt;p&gt;Создание файла дистрибутива для Pyramid проекта посредством команды &quot;python setup.py sdist&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>Documentation</source>
         <translation>Документация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="338"/>
+        <location filename="../Project.py" line="334"/>
         <source>D&amp;ocumentation</source>
         <translation>Д&amp;окументация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="343"/>
+        <location filename="../Project.py" line="339"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation>Отображение справочника с документацией Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="345"/>
+        <location filename="../Project.py" line="341"/>
         <source>&lt;b&gt;Documentation&lt;/b&gt;&lt;p&gt;Shows the help viewer with the Pyramid documentation.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Документация&lt;/b&gt;&lt;p&gt;Отображение справочника с документацией Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>About Pyramid</source>
         <translation>О Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="356"/>
+        <location filename="../Project.py" line="352"/>
         <source>About P&amp;yramid</source>
         <translation>О P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="361"/>
+        <location filename="../Project.py" line="357"/>
         <source>Shows some information about Pyramid</source>
         <translation>Отображение информации о Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="363"/>
+        <location filename="../Project.py" line="359"/>
         <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
         <translation>&lt;b&gt;О Pyramid&lt;/b&gt;&lt;p&gt;Отображение информации о Pyramid.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="380"/>
+        <location filename="../Project.py" line="376"/>
         <source>P&amp;yramid</source>
         <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="454"/>
+        <location filename="../Project.py" line="451"/>
         <source>New template...</source>
         <translation>Новый шаблон...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
+        <location filename="../Project.py" line="459"/>
         <source>Extract Messages</source>
         <translation>Извлечь сообщения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="465"/>
+        <location filename="../Project.py" line="462"/>
         <source>Compile All Catalogs</source>
         <translation>Компилировать все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
+        <location filename="../Project.py" line="465"/>
         <source>Compile Selected Catalogs</source>
         <translation>Компилировать выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
+        <location filename="../Project.py" line="468"/>
         <source>Update All Catalogs</source>
         <translation>Обновить все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="474"/>
+        <location filename="../Project.py" line="471"/>
         <source>Update Selected Catalogs</source>
         <translation>Обновить выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="514"/>
+        <location filename="../Project.py" line="511"/>
         <source>Chameleon Templates (*.pt);;Chameleon Text Templates (*.txt);;Mako Templates (*.mako);;Mako Templates (*.mak);;HTML Files (*.html);;HTML Files (*.htm);;All Files (*)</source>
         <translation>Шаблоны Chameleon (*.pt);;Шаблоны Chameleon Text (*.txt);;Шаблоны Mako (*.mako);;Mako Шаблоны (*.mak);;Файлы HTML (*.html);;Файлы HTML (*.htm);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>New Form</source>
         <translation>Новая форма</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="537"/>
+        <location filename="../Project.py" line="534"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Файл уже существует! Переписать его?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select Pyramid Project</source>
         <translation>Выбор Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1076"/>
+        <location filename="../Project.py" line="967"/>
         <source>Select the Pyramid project to work with.</source>
         <translation>Выберите Pyramid проект для работы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1115"/>
+        <location filename="../Project.py" line="1006"/>
         <source>None</source>
         <translation>None</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1118"/>
+        <location filename="../Project.py" line="1009"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation>&amp;Текущий Pyramid проект ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1807"/>
+        <location filename="../Project.py" line="1689"/>
         <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
         <translation>Не выбран текущий Pyramid проект, или Pyramid проект еще не создан.  Отмена...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1217"/>
+        <location filename="../Project.py" line="1108"/>
         <source>The Pyramid server could not be started.</source>
         <translation>Невозможно запустить Pyramid сервер.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1263"/>
+        <location filename="../Project.py" line="1156"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation>Невозможно запустить web-браузер с URL &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1305"/>
+        <location filename="../Project.py" line="1192"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation>Невозможно запустить процесс Pyramid Shell.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1336"/>
+        <location filename="../Project.py" line="1223"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation>Среда разработки Pyramid успешно настроена.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1355"/>
+        <location filename="../Project.py" line="1242"/>
         <source>Build Distribution File</source>
         <translation>Создание файла дистрибутива</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1379"/>
+        <location filename="../Project.py" line="1267"/>
         <source>Python distribution file built successfully.</source>
         <translation>Файл дистрибутива Python успешно создан.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1428"/>
+        <location filename="../Project.py" line="1315"/>
         <source>Database initialized successfully.</source>
         <translation>База данных успешно инициализирована.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1454"/>
+        <location filename="../Project.py" line="1341"/>
         <source>Enter the URL to be matched:</source>
         <translation>Введите URL для сопоставления:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1595"/>
+        <location filename="../Project.py" line="1477"/>
         <source>Extract messages</source>
         <translation>Извлечь сообщения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1635"/>
+        <location filename="../Project.py" line="1517"/>
         <source>
 Messages extracted successfully.</source>
         <translation>
 Сообщения успешно извлечены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1668"/>
+        <location filename="../Project.py" line="1550"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Каталог сообщений успешно инициализирован.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1722"/>
+        <location filename="../Project.py" line="1604"/>
         <source>Compiling message catalogs</source>
         <translation>Компиляция каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1636"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Каталоги сообщений успешно компилированы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1829"/>
+        <location filename="../Project.py" line="1711"/>
         <source>No locales detected. Aborting...</source>
         <translation>Локали не найдены. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1803"/>
+        <location filename="../Project.py" line="1685"/>
         <source>Updating message catalogs</source>
         <translation>Обновление каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1835"/>
+        <location filename="../Project.py" line="1717"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Каталоги сообщений успешно обновлены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1649"/>
+        <location filename="../Project.py" line="1531"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Инициализация каталога сообщений для &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="898"/>
+        <location filename="../Project.py" line="786"/>
         <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Pyramid это высокоуровневый веб-фреймворк, созданный на Python, воодушевляющий к развитому, чистому и практичному дизайну.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Версия:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="440"/>
+        <location filename="../Project.py" line="436"/>
         <source>Open with {0}</source>
         <translation>Открыть с помощью {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1857"/>
+        <location filename="../Project.py" line="1738"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Невозможен запуск редактора переводов ({0}).</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1611"/>
+        <location filename="../Project.py" line="1493"/>
         <source>No setup.cfg found or no &quot;extract_messages&quot; section found in setup.cfg.</source>
         <translation>Не найден файл setup.cfg или не найдена &quot;extract_messages&quot; секция в setup.cfg.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1618"/>
+        <location filename="../Project.py" line="1500"/>
         <source>No &quot;output_file&quot; option found in setup.cfg.</source>
         <translation>Опция &quot;output_file&quot; не найдена в setup.cfg.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="552"/>
+        <location filename="../Project.py" line="549"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br/&gt; Problem: {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>
@@ -634,7 +634,7 @@
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="395"/>
+        <location filename="../../PluginProjectPyramid.py" line="425"/>
         <source>Pyramid</source>
         <translation>Pyramid</translation>
     </message>
@@ -697,12 +697,12 @@
         <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="171"/>
+        <location filename="../PyramidDialog.py" line="167"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
     </message>
@@ -735,74 +735,74 @@
         <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="229"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
         <source>Pyramid Virtual Environment</source>
         <translation>Виртуальное окружение Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="206"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="116"/>
         <source>Enter the path of the Pyramid virtual environment. Leave empty to not use a virtual environment setup.</source>
         <translation>Введите путь виртуального окружения Pyramid. Оставьте пустым если не будете использовать установки виртуального окружения.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="219"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
         <source>Select the virtual environment directory via a selection dialog</source>
         <translation>Выбор директории виртуального окружения посредством диалога выбора</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="253"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
         <source>Pyramid Python Console:</source>
         <translation>Консоль Pyramid Python:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="266"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
         <source>Select the Python console type</source>
         <translation>Выберите тип консоли Python</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Python 2</source>
-        <translation>Python 2</translation>
+        <translation type="obsolete">Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="278"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
         <source>Pyramid Documentation</source>
         <translation>Документация Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="284"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="291"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="201"/>
         <source>Enter the URL of the Pyramid documentation</source>
         <translation>Введите URL документации Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="71"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
         <source>Plain Python</source>
         <translation>Plain Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="72"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
         <source>IPython</source>
         <translation>IPython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="73"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
         <source>bpython</source>
         <translation>bpython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="183"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
         <source>Select Virtual Environment for Python 3</source>
         <translation>Выбор виртуального окружения для Python 3</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
         <source>Select Virtual Environment for Python 2</source>
-        <translation>Выбор виртуального окружения для Python 2</translation>
+        <translation type="obsolete">Выбор виртуального окружения для Python 2</translation>
     </message>
     <message>
         <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
@@ -810,22 +810,22 @@
         <translation>Команды консоли</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>Translations Editor</source>
         <translation>Редактор перевода</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="320"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="230"/>
         <source>Enter the path of an editor to use to do the translations. Leave empty to disable this feature.</source>
         <translation>Введите путь к редактору, который будет использоваться для перевода. Оставьте поле пустым для запрета этой возможности.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="333"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="243"/>
         <source>Select the translations editor via a file selection dialog</source>
         <translation>Выбор редактора для перевода посредством диалога выбора</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="218"/>
+        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
         <source>All Files (*)</source>
         <translation>Все файлы (*)</translation>
     </message>
@@ -845,12 +845,12 @@
         <translation>Внешний web-браузер</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="298"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
         <source>Press to reset the URL to the default URL</source>
         <translation>Сбросить к URL по умолчанию</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="235"/>
+        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
         <source>Select the Virtual Environment to be used with Pyramid</source>
         <translation>Выберите виртуальное окружение для использования с  Pyramid</translation>
     </message>
@@ -908,22 +908,22 @@
         <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="107"/>
+        <location filename="../PyramidRoutesDialog.py" line="104"/>
         <source>No routes found.</source>
         <translation>Маршруты не найдены.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="139"/>
+        <location filename="../PyramidRoutesDialog.py" line="136"/>
         <source>Getting routes...</source>
         <translation>Получение маршрутов...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="169"/>
+        <location filename="../PyramidRoutesDialog.py" line="166"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
     </message>

eric ide

mercurial