Ported the plug-in to PyQt6 for eric7. eric7

Tue, 01 Jun 2021 19:37:46 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 01 Jun 2021 19:37:46 +0200
branch
eric7
changeset 147
eb28b4b6f7f5
parent 146
7d955b1995d5
child 148
dcbd3a96f03c

Ported the plug-in to PyQt6 for eric7.
(But it needs rework for recent Pyramid version.)

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
PluginProjectPyramid.py file | annotate | diff | comparison | revisions
PluginPyramid.e4p file | annotate | diff | comparison | revisions
PluginPyramid.epj 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.CreateParametersDialog.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.DistributionTypeSelectionDialog.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.FormSelectionDialog.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidDialog.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidRoutesDialog.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.ProjectPyramid.html file | annotate | diff | comparison | revisions
ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.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/__init__.py file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_de.qm file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_de.ts file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_en.qm 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/.hgignore	Sat May 29 15:05:16 2021 +0200
+++ b/.hgignore	Tue Jun 01 19:37:46 2021 +0200
@@ -1,11 +1,6 @@
+glob:.eric7project
 glob:.eric6project
-glob:_eric6project
-glob:.eric5project
-glob:_eric5project
-glob:.eric4project
-glob:_eric4project
 glob:.ropeproject
-glob:_ropeproject
 glob:.directory
 glob:**.pyc
 glob:**.pyo
--- a/ChangeLog	Sat May 29 15:05:16 2021 +0200
+++ b/ChangeLog	Tue Jun 01 19:37:46 2021 +0200
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 1.0.0:
+- first release of the eric7 variant
+
+************************************************************
+
 Version 4.0.0:
 - removed support for obsolete eric6 versions
 - implemented some code simplifications
--- a/PluginProjectPyramid.py	Sat May 29 15:05:16 2021 +0200
+++ b/PluginProjectPyramid.py	Tue Jun 01 19:37:46 2021 +0200
@@ -11,9 +11,9 @@
 import glob
 import fnmatch
 
-from PyQt5.QtCore import QCoreApplication, QObject, QTranslator
+from PyQt6.QtCore import QCoreApplication, QObject, QTranslator
 
-from E5Gui.E5Application import e5App
+from EricWidgets.EricApplication import ericApp
 
 import Preferences
 
@@ -26,7 +26,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "4.0.0"
+version = "1.0.0"
 className = "ProjectPyramidPlugin"
 packageName = "ProjectPyramid"
 shortDescription = "Project support for Pyramid projects."
@@ -47,7 +47,9 @@
     Module function to create the Pyramid configuration page.
     
     @param configDlg reference to the configuration dialog
+    @type ConfigurationWidget
     @return reference to the configuration page
+    @rtype PyramidPage
     """
     global pyramidPluginObject
     from ProjectPyramid.ConfigurationPage.PyramidPage import PyramidPage
@@ -59,15 +61,9 @@
     Module function returning data as required by the configuration dialog.
     
     @return dictionary containing the relevant data
+    @rtype dict
     """
-    try:
-        usesDarkPalette = e5App().usesDarkPalette()
-    except AttributeError:
-        # code for eric < 20.4
-        from PyQt5.QtGui import QPalette
-        palette = e5App().palette()
-        lightness = palette.color(QPalette.Window).lightness()
-        usesDarkPalette = lightness <= 128
+    usesDarkPalette = ericApp().usesDarkPalette()
     iconSuffix = "dark" if usesDarkPalette else "light"
     
     return {
@@ -83,8 +79,10 @@
     """
     Module function to return the API files made available by this plugin.
     
-    @param language language to get APIs for (string)
-    @return list of API filenames (list of string)
+    @param language language to get APIs for
+    @type str
+    @return list of API filenames
+    @rtype list of str
     """
     if language == "Python3":
         apisDir = os.path.join(os.path.dirname(__file__),
@@ -120,7 +118,8 @@
         """
         Constructor
         
-        @param ui reference to the user interface object (UI.UserInterface)
+        @param ui reference to the user interface object
+        @type UserInterface
         """
         QObject.__init__(self, ui)
         self.__ui = ui
@@ -158,7 +157,7 @@
         self.__mainAct = None
         self.__separatorAct = None
         
-        self.__e5project = e5App().getObject("Project")
+        self.__ericProject = ericApp().getObject("Project")
         
         self.__supportedVariants = []
     
@@ -166,31 +165,25 @@
         """
         Public method to activate this plugin.
         
-        @return tuple of None and activation status (boolean)
+        @return tuple of None and activation status
+        @rtype (None, bool)
         """
         global pyramidPluginObject
         pyramidPluginObject = self
         
-        try:
-            usesDarkPalette = e5App().usesDarkPalette()
-        except AttributeError:
-            # code for eric < 20.4
-            from PyQt5.QtGui import QPalette
-            palette = e5App().palette()
-            lightness = palette.color(QPalette.Window).lightness()
-            usesDarkPalette = lightness <= 128
+        usesDarkPalette = ericApp().usesDarkPalette()
         iconSuffix = "dark" if usesDarkPalette else "light"
         
         self.__object = Project(self, iconSuffix, self.__ui)
         self.__object.initActions()
-        e5App().registerPluginObject("ProjectPyramid", self.__object)
+        ericApp().registerPluginObject("ProjectPyramid", self.__object)
         
         self.__mainMenu = self.__object.initMenu()
         
         self.__supportedVariants = self.__object.supportedPythonVariants()
         
         if self.__supportedVariants:
-            self.__e5project.registerProjectType(
+            self.__ericProject.registerProjectType(
                 "Pyramid", self.tr("Pyramid"),
                 self.fileTypesCallback,
                 lexerAssociationCallback=self.lexerAssociationCallback,
@@ -207,22 +200,22 @@
             TranslationsBrowserFlag | OthersBrowserFlag,
         )
         
-        if self.__e5project.isOpen():
+        if self.__ericProject.isOpen():
             self.__projectOpened()
             self.__object.projectOpenedHooks()
         
-        e5App().getObject("Project").projectOpened.connect(
+        ericApp().getObject("Project").projectOpened.connect(
             self.__projectOpened)
-        e5App().getObject("Project").projectClosed.connect(
+        ericApp().getObject("Project").projectClosed.connect(
             self.__projectClosed)
-        e5App().getObject("Project").newProject.connect(
+        ericApp().getObject("Project").newProject.connect(
             self.__projectOpened)
         
-        e5App().getObject("Project").projectOpenedHooks.connect(
+        ericApp().getObject("Project").projectOpenedHooks.connect(
             self.__object.projectOpenedHooks)
-        e5App().getObject("Project").projectClosedHooks.connect(
+        ericApp().getObject("Project").projectClosedHooks.connect(
             self.__object.projectClosedHooks)
-        e5App().getObject("Project").newProjectHooks.connect(
+        ericApp().getObject("Project").newProjectHooks.connect(
             self.__object.projectOpenedHooks)
         
         return None, True
@@ -231,23 +224,23 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().unregisterPluginObject("ProjectPyramid")
+        ericApp().unregisterPluginObject("ProjectPyramid")
         
-        e5App().getObject("Project").projectOpened.disconnect(
+        ericApp().getObject("Project").projectOpened.disconnect(
             self.__projectOpened)
-        e5App().getObject("Project").projectClosed.disconnect(
+        ericApp().getObject("Project").projectClosed.disconnect(
             self.__projectClosed)
-        e5App().getObject("Project").newProject.disconnect(
+        ericApp().getObject("Project").newProject.disconnect(
             self.__projectOpened)
         
-        e5App().getObject("Project").projectOpenedHooks.disconnect(
+        ericApp().getObject("Project").projectOpenedHooks.disconnect(
             self.__object.projectOpenedHooks)
-        e5App().getObject("Project").projectClosedHooks.disconnect(
+        ericApp().getObject("Project").projectClosedHooks.disconnect(
             self.__object.projectClosedHooks)
-        e5App().getObject("Project").newProjectHooks.disconnect(
+        ericApp().getObject("Project").newProjectHooks.disconnect(
             self.__object.projectOpenedHooks)
         
-        self.__e5project.unregisterProjectType("Pyramid")
+        self.__ericProject.unregisterProjectType("Pyramid")
         
         self.__object.projectClosedHooks()
         self.__projectClosed()
@@ -268,7 +261,7 @@
                 loaded = translator.load(translation, locale_dir)
                 if loaded:
                     self.__translator = translator
-                    e5App().installTranslator(self.__translator)
+                    ericApp().installTranslator(self.__translator)
                 else:
                     print("Warning: translation file '{0}' could not be"    # __IGNORE_WARNING__
                           " loaded.".format(translation))
@@ -278,20 +271,13 @@
         """
         Private slot to handle the projectOpened signal.
         """
-        if self.__e5project.getProjectType() == "Pyramid":
+        if self.__ericProject.getProjectType() == "Pyramid":
             projectToolsMenu = self.__ui.getMenu("project_tools")
-            if projectToolsMenu is not None:
-                insertBeforeAct = projectToolsMenu.actions()[0]
-                self.__mainAct = projectToolsMenu.insertMenu(
-                    insertBeforeAct, self.__mainMenu)
-                self.__separatorAct = projectToolsMenu.insertSeparator(
-                    insertBeforeAct)
-            else:
-                projectAct = self.__ui.getMenuBarAction("project")
-                actions = self.__ui.menuBar().actions()
-                insertBeforeAct = actions[actions.index(projectAct) + 1]
-                self.__mainAct = self.__ui.menuBar().insertMenu(
-                    insertBeforeAct, self.__mainMenu)
+            insertBeforeAct = projectToolsMenu.actions()[0]
+            self.__mainAct = projectToolsMenu.insertMenu(
+                insertBeforeAct, self.__mainMenu)
+            self.__separatorAct = projectToolsMenu.insertSeparator(
+                insertBeforeAct)
     
     def __projectClosed(self):
         """
@@ -299,14 +285,10 @@
         """
         if self.__mainAct is not None:
             projectToolsMenu = self.__ui.getMenu("project_tools")
-            if projectToolsMenu is not None:
-                projectToolsMenu.removeAction(self.__separatorAct)
-                projectToolsMenu.removeAction(self.__mainAct)
-                self.__mainAct = None
-                self.__separatorAct = None
-            else:
-                self.__ui.menuBar().removeAction(self.__mainAct)
-                self.__mainAct = None
+            projectToolsMenu.removeAction(self.__separatorAct)
+            projectToolsMenu.removeAction(self.__mainAct)
+            self.__mainAct = None
+            self.__separatorAct = None
             self.__object.projectClosed()
     
     def fileTypesCallback(self):
@@ -315,8 +297,9 @@
         type.
         
         @return dictionary with file type associations
+        @rtype dict
         """
-        if self.__e5project.getProjectType() == "Pyramid":
+        if self.__ericProject.getProjectType() == "Pyramid":
             return {
                 "*.mako": "FORMS",
                 "*.mak": "FORMS",
@@ -336,9 +319,11 @@
         Public method to get the lexer association of the Pyramid project type
         for a file.
         
-        @param filename name of the file (string)
-        @return name of the lexer (string) (Pygments lexers are prefixed with
+        @param filename name of the file
+        @type str
+        @return name of the lexer (Pygments lexers are prefixed with
             'Pygments|')
+        @rtype str
         """
         for pattern, language in self.lexerAssociations.items():
             if fnmatch.fnmatch(filename, pattern):
@@ -351,8 +336,10 @@
         Public method to determine the filename of a compiled translation file
         given the translation source file.
         
-        @param filename name of the translation source file (string)
-        @return name of the binary translation file (string)
+        @param filename name of the translation source file
+        @type str
+        @return name of the binary translation file
+        @rtype str
         """
         if filename.endswith(".po"):
             return filename.replace(".po", ".mo")
@@ -363,8 +350,10 @@
         """
         Public method to get the default value for a setting.
         
-        @param key the key of the value to get
-        @return the requested setting
+        @param key key of the value to get
+        @type str
+        @return value of the requested setting
+        @rtype Any
         """
         return self.__defaults[key]
     
@@ -372,8 +361,10 @@
         """
         Public method to retrieve the various settings.
         
-        @param key the key of the value to get
-        @return the requested setting
+        @param key key of the value to get
+        @type str
+        @return value of the requested setting
+        @rtype Any
         """
         if key in ["UseExternalBrowser"]:
             return Preferences.toBool(Preferences.Prefs.settings.value(
@@ -386,8 +377,10 @@
         """
         Public method to store the various settings.
         
-        @param key the key of the setting to be set (string)
-        @param value the value to be set
+        @param key key of the setting to be set
+        @type str
+        @param value value to be set
+        @type Any
         """
         Preferences.Prefs.settings.setValue(
             self.PreferencesKey + "/" + key, value)
@@ -404,12 +397,12 @@
         supportedVariants = self.__object.supportedPythonVariants()
         if supportedVariants != self.__supportedVariants:
             # step 1: unregister
-            self.__e5project.unregisterProjectType("Pyramid")
+            self.__ericProject.unregisterProjectType("Pyramid")
             
             # step 2: register again with new language settings
             self.__supportedVariants = supportedVariants
             if self.__supportedVariants:
-                self.__e5project.registerProjectType(
+                self.__ericProject.registerProjectType(
                     "Pyramid",
                     self.tr("Pyramid"), self.fileTypesCallback,
                     lexerAssociationCallback=self.lexerAssociationCallback,
@@ -420,9 +413,11 @@
         """
         Public method to get a reference to the requested menu.
         
-        @param name name of the menu (string)
-        @return reference to the menu (QMenu) or None, if no
-            menu with the given name exists
+        @param name name of the menu
+        @type str
+        @return reference to the menu or None, if no menu with the given
+            name exists
+        @rtype QMenu
         """
         if self.__object is not None:
             return self.__object.getMenu(name)
@@ -433,7 +428,8 @@
         """
         Public method to get the names of all menus.
         
-        @return menu names (list of string)
+        @return menu names
+        @rtype list of str
         """
         if self.__object is not None:
             return list(self.__menus.keys())
--- a/PluginPyramid.e4p	Sat May 29 15:05:16 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,539 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
-<!-- eric project file for project PluginPyramid -->
-<!-- Copyright (C) 2020 Detlev Offenbach, detlev@die-offenbachs.de -->
-<Project version="5.1">
-  <Language>en_US</Language>
-  <Hash>16b809c49f4985b2bd6959b37c5612f6b30e89b4</Hash>
-  <ProgLanguage mixed="0">Python3</ProgLanguage>
-  <ProjectType>E6Plugin</ProjectType>
-  <Description>Plugin implementing support for Pyramid projects.</Description>
-  <Version>2.x</Version>
-  <Author>Detlev Offenbach</Author>
-  <Email>detlev@die-offenbachs.de</Email>
-  <TranslationPattern>ProjectPyramid/i18n/pyramid_%language%.ts</TranslationPattern>
-  <Eol index="1"/>
-  <Sources>
-    <Source>PluginProjectPyramid.py</Source>
-    <Source>ProjectPyramid/ConfigurationPage/PyramidPage.py</Source>
-    <Source>ProjectPyramid/ConfigurationPage/__init__.py</Source>
-    <Source>ProjectPyramid/CreateParametersDialog.py</Source>
-    <Source>ProjectPyramid/DistributionTypeSelectionDialog.py</Source>
-    <Source>ProjectPyramid/FormSelectionDialog.py</Source>
-    <Source>ProjectPyramid/Project.py</Source>
-    <Source>ProjectPyramid/PyramidDialog.py</Source>
-    <Source>ProjectPyramid/PyramidRoutesDialog.py</Source>
-    <Source>ProjectPyramid/__init__.py</Source>
-    <Source>__init__.py</Source>
-  </Sources>
-  <Forms>
-    <Form>ProjectPyramid/ConfigurationPage/PyramidPage.ui</Form>
-    <Form>ProjectPyramid/CreateParametersDialog.ui</Form>
-    <Form>ProjectPyramid/DistributionTypeSelectionDialog.ui</Form>
-    <Form>ProjectPyramid/FormSelectionDialog.ui</Form>
-    <Form>ProjectPyramid/PyramidDialog.ui</Form>
-    <Form>ProjectPyramid/PyramidRoutesDialog.ui</Form>
-  </Forms>
-  <Translations>
-    <Translation>ProjectPyramid/i18n/pyramid_de.qm</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_de.ts</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_en.qm</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_en.ts</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_es.qm</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_es.ts</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_ru.qm</Translation>
-    <Translation>ProjectPyramid/i18n/pyramid_ru.ts</Translation>
-  </Translations>
-  <Others>
-    <Other>.hgignore</Other>
-    <Other>ChangeLog</Other>
-    <Other>PKGLIST</Other>
-    <Other>PluginProjectPyramid.zip</Other>
-    <Other>PluginPyramid.e4p</Other>
-    <Other>ProjectPyramid/APIs/Chameleon-2.9.2.api</Other>
-    <Other>ProjectPyramid/APIs/Chameleon-2.9.2.bas</Other>
-    <Other>ProjectPyramid/APIs/Mako-0.7.2.api</Other>
-    <Other>ProjectPyramid/APIs/Mako-0.7.bas</Other>
-    <Other>ProjectPyramid/APIs/MarkupSafe-0.15.api</Other>
-    <Other>ProjectPyramid/APIs/MarkupSafe-0.bas</Other>
-    <Other>ProjectPyramid/APIs/PasteDeploy-1.5.0.api</Other>
-    <Other>ProjectPyramid/APIs/PasteDeploy-1.5.bas</Other>
-    <Other>ProjectPyramid/APIs/Pyramid-1.3.3.api</Other>
-    <Other>ProjectPyramid/APIs/Pyramid-1.3.bas</Other>
-    <Other>ProjectPyramid/APIs/Translationstring-1.1.api</Other>
-    <Other>ProjectPyramid/APIs/Translationstring-1.bas</Other>
-    <Other>ProjectPyramid/APIs/Venusian-1.0a6.api</Other>
-    <Other>ProjectPyramid/APIs/Venusian-1.bas</Other>
-    <Other>ProjectPyramid/APIs/WebOb-1.2.2.api</Other>
-    <Other>ProjectPyramid/APIs/WebOb-1.2.bas</Other>
-    <Other>ProjectPyramid/Documentation/LICENSE.GPL3</Other>
-    <Other>ProjectPyramid/Documentation/source</Other>
-    <Other>ProjectPyramid/icons/pyramid-dark.svg</Other>
-    <Other>ProjectPyramid/icons/pyramid-light.svg</Other>
-    <Other>ProjectPyramid/icons/pyramid64-dark.svg</Other>
-    <Other>ProjectPyramid/icons/pyramid64-light.svg</Other>
-  </Others>
-  <MainScript>PluginProjectPyramid.py</MainScript>
-  <Vcs>
-    <VcsType>Mercurial</VcsType>
-    <VcsOptions>
-      <dict>
-        <key>
-          <string>add</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>checkout</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>commit</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>diff</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>export</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>global</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>history</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>log</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>remove</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>status</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>tag</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>update</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-      </dict>
-    </VcsOptions>
-  </Vcs>
-  <FiletypeAssociations>
-    <FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
-    <FiletypeAssociation pattern="*.py" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.py3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.qrc" type="RESOURCES"/>
-    <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.ui" type="FORMS"/>
-    <FiletypeAssociation pattern="*.ui.h" type="FORMS"/>
-    <FiletypeAssociation pattern="Ui_*.py" type="__IGNORE__"/>
-  </FiletypeAssociations>
-  <Documentation>
-    <DocumentationParams>
-      <dict>
-        <key>
-          <string>ERIC4DOC</string>
-        </key>
-        <value>
-          <dict>
-            <key>
-              <string>cssFile</string>
-            </key>
-            <value>
-              <string>%PYTHON%/eric6/CSSs/default.css</string>
-            </value>
-            <key>
-              <string>ignoreDirectories</string>
-            </key>
-            <value>
-              <list>
-                <string>.eric5project</string>
-                <string>.hg</string>
-                <string>.ropeproject</string>
-                <string>.eric6project</string>
-              </list>
-            </value>
-            <key>
-              <string>ignoreFilePatterns</string>
-            </key>
-            <value>
-              <list>
-                <string>Ui_*</string>
-              </list>
-            </value>
-            <key>
-              <string>outputDirectory</string>
-            </key>
-            <value>
-              <string>ProjectPyramid/Documentation/source</string>
-            </value>
-            <key>
-              <string>qtHelpEnabled</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>useRecursion</string>
-            </key>
-            <value>
-              <bool>True</bool>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </DocumentationParams>
-  </Documentation>
-  <Checkers>
-    <CheckersParams>
-      <dict>
-        <key>
-          <string>Pep8Checker</string>
-        </key>
-        <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>
-              <tuple>
-                <int>2</int>
-                <int>1</int>
-              </tuple>
-            </value>
-            <key>
-              <string>BuiltinsChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>bytes</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-                <key>
-                  <string>chr</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unichr</string>
-                  </list>
-                </value>
-                <key>
-                  <string>str</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-              </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>
-              <string></string>
-            </value>
-            <key>
-              <string>CopyrightMinFileSize</string>
-            </key>
-            <value>
-              <int>0</int>
-            </value>
-            <key>
-              <string>DocstringType</string>
-            </key>
-            <value>
-              <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>
-              <string>*/Ui_*.py, */*_rc.py</string>
-            </value>
-            <key>
-              <string>ExcludeMessages</string>
-            </key>
-            <value>
-              <string>C101,E265,E266,E305,E402,M201,M811,N802,N803,N807,N808,N821,W293,W504</string>
-            </value>
-            <key>
-              <string>FixCodes</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>FixIssues</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>FutureChecker</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>HangClosing</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>IncludeMessages</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>LineComplexity</string>
-            </key>
-            <value>
-              <int>20</int>
-            </value>
-            <key>
-              <string>LineComplexityScore</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxCodeComplexity</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxDocLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>MaxLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>NoFixCodes</string>
-            </key>
-            <value>
-              <string>E501</string>
-            </value>
-            <key>
-              <string>RepeatMessages</string>
-            </key>
-            <value>
-              <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>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>ValidEncodings</string>
-            </key>
-            <value>
-              <string>latin-1, utf-8</string>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </CheckersParams>
-  </Checkers>
-</Project>
--- a/PluginPyramid.epj	Sat May 29 15:05:16 2021 +0200
+++ b/PluginPyramid.epj	Tue Jun 01 19:37:46 2021 +0200
@@ -113,12 +113,12 @@
     "DOCSTRING": "",
     "DOCUMENTATIONPARMS": {
       "ERIC4DOC": {
-        "cssFile": "%PYTHON%/eric6/CSSs/default.css",
+        "cssFile": "%PYTHON%/eric7/CSSs/default.css",
         "ignoreDirectories": [
-          ".eric5project",
           ".hg",
           ".ropeproject",
-          ".eric6project"
+          ".eric6project",
+          ".eric7project"
         ],
         "ignoreFilePatterns": [
           "Ui_*"
@@ -131,17 +131,25 @@
     "EMAIL": "detlev@die-offenbachs.de",
     "EOL": 1,
     "FILETYPES": {
+      "*.epj": "OTHERS",
       "*.idl": "INTERFACES",
+      "*.md": "OTHERS",
+      "*.proto": "PROTOCOLS",
       "*.py": "SOURCES",
       "*.py3": "SOURCES",
       "*.pyw": "SOURCES",
       "*.pyw3": "SOURCES",
       "*.qm": "TRANSLATIONS",
-      "*.qrc": "RESOURCES",
+      "*.rst": "OTHERS",
       "*.ts": "TRANSLATIONS",
+      "*.txt": "OTHERS",
       "*.ui": "FORMS",
-      "*.ui.h": "FORMS",
-      "Ui_*.py": "__IGNORE__"
+      "GNUmakefile": "OTHERS",
+      "Makefile": "OTHERS",
+      "README": "OTHERS",
+      "README.*": "OTHERS",
+      "Ui_*.py": "__IGNORE__",
+      "makefile": "OTHERS"
     },
     "FORMS": [
       "ProjectPyramid/ConfigurationPage/PyramidPage.ui",
@@ -174,7 +182,6 @@
       "ChangeLog",
       "PKGLIST",
       "PluginProjectPyramid.zip",
-      "PluginPyramid.e4p",
       "ProjectPyramid/APIs/Chameleon-2.9.2.api",
       "ProjectPyramid/APIs/Chameleon-2.9.2.bas",
       "ProjectPyramid/APIs/Mako-0.7.2.api",
@@ -202,7 +209,7 @@
     "OTHERTOOLSPARMS": {},
     "PACKAGERSPARMS": {},
     "PROGLANGUAGE": "Python3",
-    "PROJECTTYPE": "E6Plugin",
+    "PROJECTTYPE": "E7Plugin",
     "PROJECTTYPESPECIFICDATA": {},
     "PROTOCOLS": [],
     "RCCPARAMS": {
@@ -286,6 +293,6 @@
       ]
     },
     "VCSOTHERDATA": {},
-    "VERSION": "2.x"
+    "VERSION": ""
   }
 }
\ No newline at end of file
--- a/ProjectPyramid/ConfigurationPage/PyramidPage.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/ConfigurationPage/PyramidPage.py	Tue Jun 01 19:37:46 2021 +0200
@@ -7,18 +7,16 @@
 Module implementing the Pyramid configuration page.
 """
 
-from PyQt5.QtCore import pyqtSlot
+from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui import E5FileDialog
-from E5Gui.E5Application import e5App
+from EricWidgets.EricApplication import ericApp
+from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from Preferences.ConfigurationPages.ConfigurationPageBase import (
     ConfigurationPageBase
 )
 from .Ui_PyramidPage import Ui_PyramidPage
 
-import Utilities
 import UI.PixmapCache
 
 from Globals import isWindowsPlatform, isMacPlatform
@@ -33,6 +31,7 @@
         Constructor
         
         @param plugin reference to the plugin object
+        @type ProjectPyramidPlugin
         """
         super().__init__()
         self.setupUi(self)
@@ -48,28 +47,27 @@
             consoleList.append("/opt/X11/bin/xterm -e")
         else:
             consoleList.append("@konsole --workdir . -e")
-            # KDE4/5 konsole spawns
+            # KDE 5 konsole spawns
             consoleList.append("gnome-terminal -e")
             consoleList.append("mate-terminal -e")
             consoleList.append("xfce4-terminal -e")
             consoleList.append("xterm -e")
         self.consoleCommandCombo.addItems(consoleList)
         
-        self.virtualEnvPy3Button.setIcon(UI.PixmapCache.getIcon("open"))
-        self.translationsButton.setIcon(UI.PixmapCache.getIcon("open"))
         self.urlResetButton.setIcon(UI.PixmapCache.getIcon("editUndo"))
         
-        self.virtualEnvPy3Completer = E5DirCompleter(self.virtualEnvPy3Edit)
-        
         self.py3ShellCombo.addItem(self.tr("Plain Python"), "python")
         self.py3ShellCombo.addItem(self.tr("IPython"), "ipython")
         self.py3ShellCombo.addItem(self.tr("bpython"), "bpython")
         
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         
         self.py3VenvNameComboBox.addItems(
             [""] + sorted(venvManager.getVirtualenvNames()))
-        self.pyramidVirtualEnvPy3Group.hide()
+        
+        self.translationsEditorPicker.setMode(
+            EricPathPickerModes.OPEN_FILE_MODE)
+        self.translationsEditorPicker.setFilters(self.tr("All Files (*)"))
         
         # set initial values
         self.consoleCommandCombo.setEditText(
@@ -91,7 +89,7 @@
         self.urlEdit.setText(
             self.__plugin.getPreferences("PyramidDocUrl"))
         
-        self.translationsEdit.setText(
+        self.translationsEditorPicker.setText(
             self.__plugin.getPreferences("TranslationsEditor"))
     
     def save(self):
@@ -115,40 +113,7 @@
             "PyramidDocUrl", self.urlEdit.text())
         
         self.__plugin.setPreferences(
-            "TranslationsEditor", self.translationsEdit.text())
-    
-    @pyqtSlot()
-    def on_virtualEnvPy3Button_clicked(self):
-        """
-        Private slot to select the virtual environment for Python 3 via a
-        directory selection dialog.
-        """
-        vDir = self.virtualEnvPy3Edit.text()
-        if not vDir:
-            vDir = Utilities.getHomeDir()
-        virtualEnv = E5FileDialog.getExistingDirectory(
-            self,
-            self.tr("Select Virtual Environment for Python 3"),
-            vDir,
-            E5FileDialog.Options(E5FileDialog.Option(0)))
-        
-        if virtualEnv:
-            self.virtualEnvPy3Edit.setText(Utilities.toNativeSeparators(
-                virtualEnv))
-    
-    @pyqtSlot()
-    def on_translationsButton_clicked(self):
-        """
-        Private slot to select the translations editor via a file selection
-        dialog.
-        """
-        editor = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Translations Editor"),
-            self.translationsEdit.text(),
-            self.tr("All Files (*)"))
-        if editor:
-            self.translationsEdit.setText(Utilities.toNativeSeparators(editor))
+            "TranslationsEditor", self.translationsEditorPicker.text())
     
     @pyqtSlot()
     def on_urlResetButton_clicked(self):
--- a/ProjectPyramid/ConfigurationPage/PyramidPage.ui	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/ConfigurationPage/PyramidPage.ui	Tue Jun 01 19:37:46 2021 +0200
@@ -99,41 +99,6 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
-       <widget class="QGroupBox" name="pyramidVirtualEnvPy3Group">
-        <property name="title">
-         <string>Pyramid Virtual Environment</string>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_4">
-         <item row="0" column="0" colspan="2">
-          <widget class="QLabel" name="label_3">
-           <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="virtualEnvPy3Edit"/>
-         </item>
-         <item row="1" column="1">
-          <widget class="QToolButton" name="virtualEnvPy3Button">
-           <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="pyramidVirtualEnvironmentPy3Group">
         <property name="title">
          <string>Pyramid Virtual Environment</string>
@@ -217,8 +182,8 @@
      <property name="title">
       <string>Translations Editor</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_6">
-      <item row="0" column="0" colspan="2">
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
        <widget class="QLabel" name="label_10">
         <property name="minimumSize">
          <size>
@@ -234,13 +199,19 @@
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
-       <widget class="QLineEdit" name="translationsEdit"/>
-      </item>
-      <item row="1" column="1">
-       <widget class="QToolButton" name="translationsButton">
+      <item>
+       <widget class="EricPathPicker" name="translationsEditorPicker" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
+        </property>
         <property name="toolTip">
-         <string>Select the translations editor via a file selection dialog</string>
+         <string>Enter the path of the translations editor</string>
         </property>
        </widget>
       </item>
@@ -262,17 +233,21 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>EricPathPicker</class>
+   <extends>QWidget</extends>
+   <header>EricWidgets/EricPathPicker.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>consoleCommandCombo</tabstop>
   <tabstop>externalBrowserCheckBox</tabstop>
-  <tabstop>virtualEnvPy3Edit</tabstop>
-  <tabstop>virtualEnvPy3Button</tabstop>
   <tabstop>py3VenvNameComboBox</tabstop>
   <tabstop>py3ShellCombo</tabstop>
   <tabstop>urlEdit</tabstop>
   <tabstop>urlResetButton</tabstop>
-  <tabstop>translationsEdit</tabstop>
-  <tabstop>translationsButton</tabstop>
  </tabstops>
  <resources/>
  <connections/>
--- a/ProjectPyramid/CreateParametersDialog.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/CreateParametersDialog.py	Tue Jun 01 19:37:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a dialog for entering the create parameters.
 """
 
-from PyQt5.QtCore import pyqtSlot, QProcess
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+from PyQt6.QtCore import pyqtSlot, QProcess
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from EricWidgets import EricMessageBox
 
 from .Ui_CreateParametersDialog import Ui_CreateParametersDialog
 
@@ -25,13 +25,16 @@
         """
         Constructor
         
-        @param project reference to the project object (Project)
-        @param parent reference to the parent widget (QWidget)
+        @param project reference to the project object
+        @type Project
+        @param parent reference to the parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
         
-        self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok)
+        self.__okButton = self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok)
         self.__okButton.setEnabled(False)
         
         errMsg = ""
@@ -61,7 +64,7 @@
                     self.__prepareScaffoldString(line))
             self.scaffoldCombo.setCurrentIndex(0)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr('Process Generation Error'),
                 errMsg)
@@ -74,16 +77,18 @@
         """
         Private slot to handle changes of the site name.
         
-        @param text text of the site entry (string)
+        @param text text of the site entry
+        @type str
         """
         self.__updateUi()
     
     @pyqtSlot(str)
-    def on_scaffoldCombo_currentIndexChanged(self, text):
+    def on_scaffoldCombo_currentTextChanged(self, text):
         """
         Private slot to handle changes of the selected scaffold.
         
-        @param text text of the combo box (string)
+        @param text text of the combo box
+        @type str
         """
         self.__updateUi()
     
@@ -114,9 +119,10 @@
         """
         Public method to get the data.
         
-        @return tuple giving the scaffold (string), the project name (string),
-            a flag indicating to overwrite existing files (boolean) and a flag
-            indicating to simulate the creation (boolean)
+        @return tuple giving the scaffold, the project name, a flag indicating
+            to overwrite existing files and a flag indicating to simulate the
+            creation
+        @rtype tuple of (str, str, bool, bool)
         """
         return (
             self.scaffoldCombo.currentText().split(":")[0],
--- a/ProjectPyramid/DistributionTypeSelectionDialog.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/DistributionTypeSelectionDialog.py	Tue Jun 01 19:37:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a dialog to select the distribution file formats.
 """
 
-from PyQt5.QtCore import Qt, QProcess
-from PyQt5.QtWidgets import QDialog, QListWidgetItem
+from PyQt6.QtCore import Qt, QProcess
+from PyQt6.QtWidgets import QDialog, QListWidgetItem
 
-from E5Gui import E5MessageBox
+from EricWidgets import EricMessageBox
 
 from .Ui_DistributionTypeSelectionDialog import (
     Ui_DistributionTypeSelectionDialog
@@ -29,9 +29,11 @@
         Constructor
         
         @param project reference to the project object
-            (ProjectPyramid.Project.Project)
-        @param projectPath path of the Pyramid project (string)
-        @param parent reference to the parent widget (QWidget)
+        @type Project
+        @param projectPath path of the Pyramid project
+        @type str
+        @param parent reference to the parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -68,10 +70,10 @@
                     itm = QListWidgetItem(
                         "{0} ({1})".format(fileFormat, description),
                         self.formatsList)
-                    itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
-                    itm.setCheckState(Qt.Unchecked)
+                    itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable)
+                    itm.setCheckState(Qt.CheckState.Unchecked)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr('Process Generation Error'),
                 errMsg)
@@ -80,12 +82,13 @@
         """
         Public method to retrieve the checked formats.
         
-        @return list of selected formats (list of string)
+        @return list of selected formats
+        @rtype list of str
         """
         formats = []
         for row in range(self.formatsList.count()):
             itm = self.formatsList.item(row)
-            if itm.checkState() == Qt.Checked:
+            if itm.checkState() == Qt.CheckState.Checked:
                 fileFormat = itm.text().split(None, 1)[0].strip()
                 if fileFormat:
                     formats.append(fileFormat)
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Tue Jun 01 19:37:46 2021 +0200
@@ -164,9 +164,9 @@
 </p>
 <dl>
 
-<dt><i>ui</i></dt>
+<dt><i>ui</i> (UserInterface)</dt>
 <dd>
-reference to the user interface object (UI.UserInterface)
+reference to the user interface object
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.__initialize" ID="ProjectPyramidPlugin.__initialize"></a>
@@ -214,7 +214,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-tuple of None and activation status (boolean)
+tuple of None and activation status
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+(None, bool)
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.binaryTranslationsCallback" ID="ProjectPyramidPlugin.binaryTranslationsCallback"></a>
@@ -227,15 +233,21 @@
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
+<dt><i>filename</i> (str)</dt>
 <dd>
-name of the translation source file (string)
+name of the translation source file
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of the binary translation file (string)
+name of the binary translation file
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.deactivate" ID="ProjectPyramidPlugin.deactivate"></a>
@@ -259,6 +271,12 @@
 dictionary with file type associations
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
 <a NAME="ProjectPyramidPlugin.getDefaultPreference" ID="ProjectPyramidPlugin.getDefaultPreference"></a>
 <h4>ProjectPyramidPlugin.getDefaultPreference</h4>
 <b>getDefaultPreference</b>(<i>key</i>)
@@ -268,15 +286,21 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the value to get
+key of the value to get
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-the requested setting
+value of the requested setting
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+Any
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.getMenu" ID="ProjectPyramidPlugin.getMenu"></a>
@@ -288,16 +312,22 @@
 </p>
 <dl>
 
-<dt><i>name</i></dt>
+<dt><i>name</i> (str)</dt>
 <dd>
-name of the menu (string)
+name of the menu
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-reference to the menu (QMenu) or None, if no
-            menu with the given name exists
+reference to the menu or None, if no menu with the given
+            name exists
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.getMenuNames" ID="ProjectPyramidPlugin.getMenuNames"></a>
@@ -310,7 +340,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-menu names (list of string)
+menu names
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.getPreferences" ID="ProjectPyramidPlugin.getPreferences"></a>
@@ -322,15 +358,21 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the value to get
+key of the value to get
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-the requested setting
+value of the requested setting
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+Any
 </dd>
 </dl>
 <a NAME="ProjectPyramidPlugin.lexerAssociationCallback" ID="ProjectPyramidPlugin.lexerAssociationCallback"></a>
@@ -343,18 +385,24 @@
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
+<dt><i>filename</i> (str)</dt>
 <dd>
-name of the file (string)
+name of the file
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-name of the lexer (string) (Pygments lexers are prefixed with
+name of the lexer (Pygments lexers are prefixed with
             'Pygments|')
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="ProjectPyramidPlugin.setPreferences" ID="ProjectPyramidPlugin.setPreferences"></a>
 <h4>ProjectPyramidPlugin.setPreferences</h4>
 <b>setPreferences</b>(<i>key, value</i>)
@@ -364,13 +412,13 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the setting to be set (string)
+key of the setting to be set
 </dd>
-<dt><i>value</i></dt>
+<dt><i>value</i> (Any)</dt>
 <dd>
-the value to be set
+value to be set
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -385,15 +433,21 @@
 </p>
 <dl>
 
-<dt><i>language</i></dt>
+<dt><i>language</i> (str)</dt>
 <dd>
-language to get APIs for (string)
+language to get APIs for
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-list of API filenames (list of string)
+list of API filenames
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -408,7 +462,7 @@
 </p>
 <dl>
 
-<dt><i>configDlg</i></dt>
+<dt><i>configDlg</i> (ConfigurationWidget)</dt>
 <dd>
 reference to the configuration dialog
 </dd>
@@ -419,6 +473,12 @@
 reference to the configuration page
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+PyramidPage
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
@@ -435,6 +495,12 @@
 dictionary containing the relevant data
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.ConfigurationPage.PyramidPage.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.ConfigurationPage.PyramidPage.html	Tue Jun 01 19:37:46 2021 +0200
@@ -73,18 +73,10 @@
 <td>Constructor</td>
 </tr>
 <tr>
-<td><a href="#PyramidPage.on_translationsButton_clicked">on_translationsButton_clicked</a></td>
-<td>Private slot to select the translations editor via a file selection dialog.</td>
-</tr>
-<tr>
 <td><a href="#PyramidPage.on_urlResetButton_clicked">on_urlResetButton_clicked</a></td>
 <td>Private slot to reset the Pyramid documentation URL.</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>
-<tr>
 <td><a href="#PyramidPage.save">save</a></td>
 <td>Public slot to save the Pyramid configuration.</td>
 </tr>
@@ -104,19 +96,11 @@
 </p>
 <dl>
 
-<dt><i>plugin</i></dt>
+<dt><i>plugin</i> (ProjectPyramidPlugin)</dt>
 <dd>
 reference to the plugin object
 </dd>
 </dl>
-<a NAME="PyramidPage.on_translationsButton_clicked" ID="PyramidPage.on_translationsButton_clicked"></a>
-<h4>PyramidPage.on_translationsButton_clicked</h4>
-<b>on_translationsButton_clicked</b>(<i></i>)
-
-<p>
-        Private slot to select the translations editor via a file selection
-        dialog.
-</p>
 <a NAME="PyramidPage.on_urlResetButton_clicked" ID="PyramidPage.on_urlResetButton_clicked"></a>
 <h4>PyramidPage.on_urlResetButton_clicked</h4>
 <b>on_urlResetButton_clicked</b>(<i></i>)
@@ -124,14 +108,6 @@
 <p>
         Private slot to reset the Pyramid documentation URL.
 </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>)
-
-<p>
-        Private slot to select the virtual environment for Python 3 via a
-        directory selection dialog.
-</p>
 <a NAME="PyramidPage.save" ID="PyramidPage.save"></a>
 <h4>PyramidPage.save</h4>
 <b>save</b>(<i></i>)
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.CreateParametersDialog.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.CreateParametersDialog.html	Tue Jun 01 19:37:46 2021 +0200
@@ -89,7 +89,7 @@
 <td>Private slot to handle changes of the site name.</td>
 </tr>
 <tr>
-<td><a href="#CreateParametersDialog.on_scaffoldCombo_currentIndexChanged">on_scaffoldCombo_currentIndexChanged</a></td>
+<td><a href="#CreateParametersDialog.on_scaffoldCombo_currentTextChanged">on_scaffoldCombo_currentTextChanged</a></td>
 <td>Private slot to handle changes of the selected scaffold.</td>
 </tr>
 </table>
@@ -108,13 +108,13 @@
 </p>
 <dl>
 
-<dt><i>project</i></dt>
+<dt><i>project</i> (Project)</dt>
 <dd>
-reference to the project object (Project)
+reference to the project object
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl>
 <a NAME="CreateParametersDialog.__prepareScaffoldString" ID="CreateParametersDialog.__prepareScaffoldString"></a>
@@ -161,9 +161,15 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-tuple giving the scaffold (string), the project name (string),
-            a flag indicating to overwrite existing files (boolean) and a flag
-            indicating to simulate the creation (boolean)
+tuple giving the scaffold, the project name, a flag indicating
+            to overwrite existing files and a flag indicating to simulate the
+            creation
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str, bool, bool)
 </dd>
 </dl>
 <a NAME="CreateParametersDialog.on_nameEdit_textChanged" ID="CreateParametersDialog.on_nameEdit_textChanged"></a>
@@ -175,23 +181,23 @@
 </p>
 <dl>
 
-<dt><i>text</i></dt>
+<dt><i>text</i> (str)</dt>
 <dd>
-text of the site entry (string)
+text of the site entry
 </dd>
 </dl>
-<a NAME="CreateParametersDialog.on_scaffoldCombo_currentIndexChanged" ID="CreateParametersDialog.on_scaffoldCombo_currentIndexChanged"></a>
-<h4>CreateParametersDialog.on_scaffoldCombo_currentIndexChanged</h4>
-<b>on_scaffoldCombo_currentIndexChanged</b>(<i>text</i>)
+<a NAME="CreateParametersDialog.on_scaffoldCombo_currentTextChanged" ID="CreateParametersDialog.on_scaffoldCombo_currentTextChanged"></a>
+<h4>CreateParametersDialog.on_scaffoldCombo_currentTextChanged</h4>
+<b>on_scaffoldCombo_currentTextChanged</b>(<i>text</i>)
 
 <p>
         Private slot to handle changes of the selected scaffold.
 </p>
 <dl>
 
-<dt><i>text</i></dt>
+<dt><i>text</i> (str)</dt>
 <dd>
-text of the combo box (string)
+text of the combo box
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.DistributionTypeSelectionDialog.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.DistributionTypeSelectionDialog.html	Tue Jun 01 19:37:46 2021 +0200
@@ -92,18 +92,17 @@
 </p>
 <dl>
 
-<dt><i>project</i></dt>
+<dt><i>project</i> (Project)</dt>
 <dd>
 reference to the project object
-            (ProjectPyramid.Project.Project)
 </dd>
-<dt><i>projectPath</i></dt>
+<dt><i>projectPath</i> (str)</dt>
 <dd>
-path of the Pyramid project (string)
+path of the Pyramid project
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl>
 <a NAME="DistributionTypeSelectionDialog.getFormats" ID="DistributionTypeSelectionDialog.getFormats"></a>
@@ -116,7 +115,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-list of selected formats (list of string)
+list of selected formats
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.FormSelectionDialog.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.FormSelectionDialog.html	Tue Jun 01 19:37:46 2021 +0200
@@ -96,9 +96,9 @@
 </p>
 <dl>
 
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl>
 <a NAME="FormSelectionDialog.getTemplateText" ID="FormSelectionDialog.getTemplateText"></a>
@@ -111,7 +111,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-text of the template (string)
+text of the template
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="FormSelectionDialog.on_typeCombo_currentIndexChanged" ID="FormSelectionDialog.on_typeCombo_currentIndexChanged"></a>
@@ -123,9 +129,9 @@
 </p>
 <dl>
 
-<dt><i>index</i></dt>
+<dt><i>index</i> (int)</dt>
 <dd>
-selected index (integer)
+selected index
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Tue Jun 01 19:37:46 2021 +0200
@@ -353,7 +353,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-list of projects (list of string)
+list of projects
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="Project.__getDebugEnvironment" ID="Project.__getDebugEnvironment"></a>
@@ -365,16 +371,22 @@
 </p>
 <dl>
 
-<dt><i>language</i></dt>
+<dt><i>language</i> (str)</dt>
 <dd>
 Python variant to get the debugger environment
-            for (string, one of '' or 'Python3')
+            for (one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-path of the debugger environment (string)
+path of the debugger environment
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.__getExecutablePaths" ID="Project.__getExecutablePaths"></a>
@@ -387,9 +399,9 @@
 </p>
 <dl>
 
-<dt><i>file</i></dt>
+<dt><i>file</i> (str)</dt>
 <dd>
-filename of the executable (string)
+filename of the executable
 </dd>
 </dl>
 <dl>
@@ -400,6 +412,12 @@
             variable, or an empty list otherwise.
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl>
 <a NAME="Project.__getInitDbCommand" ID="Project.__getInitDbCommand"></a>
 <h4>Project.__getInitDbCommand</h4>
 <b>__getInitDbCommand</b>(<i></i>)
@@ -410,7 +428,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-path to the initialization script (string)
+path to the initialization script
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.__getLocale" ID="Project.__getLocale"></a>
@@ -422,15 +446,21 @@
 </p>
 <dl>
 
-<dt><i>filename</i></dt>
+<dt><i>filename</i> (str)</dt>
 <dd>
-name of the file used for extraction (string)
+name of the file used for extraction
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-extracted locale (string) or None
+extracted locale or None
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.__getVirtualEnvironment" ID="Project.__getVirtualEnvironment"></a>
@@ -442,16 +472,22 @@
 </p>
 <dl>
 
-<dt><i>language</i></dt>
+<dt><i>language</i> (str)</dt>
 <dd>
 Python variant to get the virtual environment
-            for (string, one of '' or 'Python3')
+            for (one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-path of the virtual environment (string)
+path of the virtual environment
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.__initializeDatabase" ID="Project.__initializeDatabase"></a>
@@ -501,15 +537,21 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
-list of file names to normalize (list of string)
+list of file names to normalize
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-normalized file names (list of string)
+normalized file names
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="Project.__project" ID="Project.__project"></a>
@@ -522,7 +564,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-name of the project (string)
+name of the project
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <dl>
@@ -542,15 +590,21 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
-list of file names to be filtered (list of string)
+list of file names to be filtered
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-file names belonging to the current site (list of string)
+file names belonging to the current site
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="Project.__projectLanguageAdded" ID="Project.__projectLanguageAdded"></a>
@@ -562,9 +616,9 @@
 </p>
 <dl>
 
-<dt><i>code</i></dt>
+<dt><i>code</i> (str)</dt>
 <dd>
-language code of the new language (string)
+language code of the new language
 </dd>
 </dl>
 <a NAME="Project.__projectPath" ID="Project.__projectPath"></a>
@@ -577,7 +631,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-path of the project (string)
+path of the project
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <dl>
@@ -625,9 +685,9 @@
 </p>
 <dl>
 
-<dt><i>logging</i></dt>
+<dt><i>logging</i> (bool)</dt>
 <dd>
-flag indicating to enable logging (boolean)
+flag indicating to enable logging
 </dd>
 </dl>
 <a NAME="Project.__selectProject" ID="Project.__selectProject"></a>
@@ -653,9 +713,9 @@
 </p>
 <dl>
 
-<dt><i>project</i></dt>
+<dt><i>project</i> (str)</dt>
 <dd>
-name of the project (string)
+name of the project
 </dd>
 </dl>
 <a NAME="Project.__setupDevelop" ID="Project.__setupDevelop"></a>
@@ -703,7 +763,7 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
 list of filenames (not used)
 </dd>
@@ -717,9 +777,9 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
-list of file names (list of string)
+list of file names
 </dd>
 </dl>
 <a NAME="Project.extractMessages" ID="Project.extractMessages"></a>
@@ -738,16 +798,22 @@
 </p>
 <dl>
 
-<dt><i>name</i></dt>
+<dt><i>name</i> (str)</dt>
 <dd>
-name of the menu (string)
+name of the menu
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-reference to the menu (QMenu) or None, if no
-            menu with the given name exists
+reference to the menu or None, if no menu with the given
+            name exists
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu
 </dd>
 </dl>
 <a NAME="Project.getMenuNames" ID="Project.getMenuNames"></a>
@@ -760,7 +826,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-menu names (list of string)
+menu names
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="Project.getPyramidCommand" ID="Project.getPyramidCommand"></a>
@@ -772,20 +844,26 @@
 </p>
 <dl>
 
-<dt><i>cmd</i></dt>
+<dt><i>cmd</i> (str)</dt>
 <dd>
-command (string)
+command
 </dd>
-<dt><i>language</i></dt>
+<dt><i>language</i> (str)</dt>
 <dd>
 Python variant to get the virtual environment
-            for (string, one of '' or 'Python3')
+            for (one of '' or 'Python3')
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-full pyramid command (string)
+full pyramid command
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.getPyramidVersion" ID="Project.getPyramidVersion"></a>
@@ -836,7 +914,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-python command (string)
+python command
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.initActions" ID="Project.initActions"></a>
@@ -856,7 +940,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-the menu generated (QMenu)
+the menu generated
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+QMenu
 </dd>
 </dl>
 <a NAME="Project.isSpawningConsole" ID="Project.isSpawningConsole"></a>
@@ -868,9 +958,9 @@
 </p>
 <dl>
 
-<dt><i>consoleCmd</i></dt>
+<dt><i>consoleCmd</i> (str)</dt>
 <dd>
-console command (string)
+console command
 </dd>
 </dl>
 <dl>
@@ -878,7 +968,12 @@
 <dd>
 tuple of two entries giving an indication, if the console
             is spawning (boolean) and the (possibly) cleaned console command
-            (string)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="Project.newForm" ID="Project.newForm"></a>
@@ -890,9 +985,9 @@
 </p>
 <dl>
 
-<dt><i>path</i></dt>
+<dt><i>path</i> (str)</dt>
 <dd>
-full directory path for the new form file (string)
+full directory path for the new form file
 </dd>
 </dl>
 <a NAME="Project.openPOEditor" ID="Project.openPOEditor"></a>
@@ -904,9 +999,9 @@
 </p>
 <dl>
 
-<dt><i>poFile</i></dt>
+<dt><i>poFile</i> (str)</dt>
 <dd>
-name of the .po file (string)
+name of the .po file
 </dd>
 </dl>
 <a NAME="Project.projectClosed" ID="Project.projectClosed"></a>
@@ -948,7 +1043,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-list of supported Python variants (list of strings)
+list of supported Python variants
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
 </dd>
 </dl>
 <a NAME="Project.updateCatalogs" ID="Project.updateCatalogs"></a>
@@ -960,7 +1061,7 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
 list of filenames (not used)
 </dd>
@@ -974,7 +1075,7 @@
 </p>
 <dl>
 
-<dt><i>filenames</i></dt>
+<dt><i>filenames</i> (list of str)</dt>
 <dd>
 list of filenames
 </dd>
@@ -1053,7 +1154,7 @@
 
 <a NAME="QProcess.start" ID="QProcess.start"></a>
 <h4>QProcess.start</h4>
-<b>start</b>(<i>cmd, args=None, mode=QProcessPyQt.ReadWrite</i>)
+<b>start</b>(<i>cmd, args=None, mode=QIODeviceBase.OpenModeFlag.ReadWrite</i>)
 
 <p>
         Public method to start the given program (cmd) in a new process, if
@@ -1061,17 +1162,17 @@
 </p>
 <dl>
 
-<dt><i>cmd</i></dt>
+<dt><i>cmd</i> (str)</dt>
 <dd>
-start the given program cmd (string)
+start the given program cmd
 </dd>
-<dt><i>args=</i></dt>
+<dt><i>args</i> (list of str)</dt>
 <dd>
-list of parameters (list of strings)
+list of parameters
 </dd>
-<dt><i>mode=</i></dt>
+<dt><i>mode</i> (QIODeviceBase.OpenMode)</dt>
 <dd>
-access mode (QIODevice.OpenMode)
+access mode
 </dd>
 </dl>
 <a NAME="QProcess.startDetached" ID="QProcess.startDetached"></a>
@@ -1084,23 +1185,29 @@
 </p>
 <dl>
 
-<dt><i>cmd</i></dt>
+<dt><i>cmd</i> (str)</dt>
 <dd>
-start the given program cmd (string)
+start the given program cmd
 </dd>
-<dt><i>args=</i></dt>
+<dt><i>args</i> (list of str)</dt>
 <dd>
-list of parameters (list of strings)
+list of parameters
 </dd>
-<dt><i>path=</i></dt>
+<dt><i>path</i> (str)</dt>
 <dd>
-new working directory (string)
+new working directory
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-tuple of successful start and process id (boolean, integer)
+tuple of successful start and process id
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (bool, int)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidDialog.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidDialog.html	Tue Jun 01 19:37:46 2021 +0200
@@ -145,31 +145,29 @@
 </p>
 <dl>
 
-<dt><i>text</i></dt>
+<dt><i>text</i> (str)</dt>
 <dd>
-text to be shown by the label (string)
+text to be shown by the label
 </dd>
-<dt><i>fixed=</i></dt>
+<dt><i>fixed</i> (bool)</dt>
 <dd>
-flag indicating a fixed font should be used (boolean)
+flag indicating a fixed font should be used
 </dd>
-<dt><i>linewrap=</i></dt>
+<dt><i>linewrap</i> (bool)</dt>
 <dd>
-flag indicating to wrap long lines (boolean)
+flag indicating to wrap long lines
 </dd>
-<dt><i>msgSuccess=</i></dt>
+<dt><i>msgSuccess</i> (str)</dt>
 <dd>
 optional string to show upon successful execution
-            (string)
 </dd>
-<dt><i>msgError=</i></dt>
+<dt><i>msgError</i> (str)</dt>
 <dd>
 optional string to show upon unsuccessful execution
-            (string)
 </dd>
-<dt><i>parent=</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget (QWidget)
+parent widget
 </dd>
 </dl>
 <a NAME="PyramidDialog.__procFinished" ID="PyramidDialog.__procFinished"></a>
@@ -181,13 +179,13 @@
 </p>
 <dl>
 
-<dt><i>exitCode</i></dt>
+<dt><i>exitCode</i> (int)</dt>
 <dd>
-exit code of the process (integer)
+exit code of the process
 </dd>
-<dt><i>exitStatus</i></dt>
+<dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
 <dd>
-exit status of the process (QProcess.ExitStatus)
+exit status of the process
 </dd>
 </dl>
 <a NAME="PyramidDialog.__readStderr" ID="PyramidDialog.__readStderr"></a>
@@ -229,9 +227,9 @@
 </p>
 <dl>
 
-<dt><i>evt</i></dt>
+<dt><i>evt</i> (QKeyEvent)</dt>
 <dd>
-the key press event (QKeyEvent)
+the key press event
 </dd>
 </dl>
 <a NAME="PyramidDialog.normalExit" ID="PyramidDialog.normalExit"></a>
@@ -244,7 +242,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-flag indicating normal process termination (boolean)
+flag indicating normal process termination
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl>
 <a NAME="PyramidDialog.normalExitWithoutErrors" ID="PyramidDialog.normalExitWithoutErrors"></a>
@@ -258,7 +262,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-flag indicating normal process termination (boolean)
+flag indicating normal process termination
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl>
 <a NAME="PyramidDialog.on_buttonBox_clicked" ID="PyramidDialog.on_buttonBox_clicked"></a>
@@ -270,9 +280,9 @@
 </p>
 <dl>
 
-<dt><i>button</i></dt>
+<dt><i>button</i> (QAbstractButton)</dt>
 <dd>
-button that was clicked (QAbstractButton)
+button that was clicked
 </dd>
 </dl>
 <a NAME="PyramidDialog.on_input_returnPressed" ID="PyramidDialog.on_input_returnPressed"></a>
@@ -291,9 +301,9 @@
 </p>
 <dl>
 
-<dt><i>isOn</i></dt>
+<dt><i>isOn</i> (bool)</dt>
 <dd>
-flag indicating the status of the check box (boolean)
+flag indicating the status of the check box
 </dd>
 </dl>
 <a NAME="PyramidDialog.on_sendButton_clicked" ID="PyramidDialog.on_sendButton_clicked"></a>
@@ -312,21 +322,25 @@
 </p>
 <dl>
 
-<dt><i>argsLists</i></dt>
+<dt><i>argsLists</i> (list of list of str)</dt>
 <dd>
 list of lists of arguments for the processes
-            (list of list of string)
 </dd>
-<dt><i>workingDir</i></dt>
+<dt><i>workingDir</i> (str)</dt>
 <dd>
-working directory for the process (string)
+working directory for the process
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
 flag indicating a successful start of the first process
-            (boolean)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
 </dd>
 </dl>
 <a NAME="PyramidDialog.startProcess" ID="PyramidDialog.startProcess"></a>
@@ -338,21 +352,21 @@
 </p>
 <dl>
 
-<dt><i>command</i></dt>
+<dt><i>command</i> (str)</dt>
 <dd>
-command to start (string)
+command to start
 </dd>
-<dt><i>args</i></dt>
+<dt><i>args</i> (list of str)</dt>
 <dd>
-list of arguments for the process (list of strings)
+list of arguments for the process
 </dd>
-<dt><i>workingDir=</i></dt>
+<dt><i>workingDir</i> (str)</dt>
 <dd>
-working directory for the process (string)
+working directory for the process
 </dd>
-<dt><i>showArgs=</i></dt>
+<dt><i>showArgs</i> (bool)</dt>
 <dd>
-flag indicating to show the arguments (boolean)
+flag indicating to show the arguments
 </dd>
 </dl>
 <dl>
@@ -361,6 +375,12 @@
 flag indicating a successful start of the process
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidRoutesDialog.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.PyramidRoutesDialog.html	Tue Jun 01 19:37:46 2021 +0200
@@ -132,14 +132,13 @@
 </p>
 <dl>
 
-<dt><i>project</i></dt>
+<dt><i>project</i> (Project)</dt>
 <dd>
 reference to the project object
-            (ProjectPyramid.Project.Project)
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl>
 <a NAME="PyramidRoutesDialog.__procFinished" ID="PyramidRoutesDialog.__procFinished"></a>
@@ -151,13 +150,13 @@
 </p>
 <dl>
 
-<dt><i>exitCode</i></dt>
+<dt><i>exitCode</i> (int)</dt>
 <dd>
-exit code of the process (integer)
+exit code of the process
 </dd>
-<dt><i>exitStatus</i></dt>
+<dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
 <dd>
-exit status of the process (QProcess.ExitStatus)
+exit status of the process
 </dd>
 </dl>
 <a NAME="PyramidRoutesDialog.__processBuffer" ID="PyramidRoutesDialog.__processBuffer"></a>
@@ -206,9 +205,9 @@
 </p>
 <dl>
 
-<dt><i>evt</i></dt>
+<dt><i>evt</i> (QKeyEvent)</dt>
 <dd>
-the key press event (QKeyEvent)
+the key press event
 </dd>
 </dl>
 <a NAME="PyramidRoutesDialog.on_buttonBox_clicked" ID="PyramidRoutesDialog.on_buttonBox_clicked"></a>
@@ -241,9 +240,9 @@
 </p>
 <dl>
 
-<dt><i>isOn</i></dt>
+<dt><i>isOn</i> (bool)</dt>
 <dd>
-flag indicating the status of the check box (boolean)
+flag indicating the status of the check box
 </dd>
 </dl>
 <a NAME="PyramidRoutesDialog.on_sendButton_clicked" ID="PyramidRoutesDialog.on_sendButton_clicked"></a>
@@ -262,9 +261,9 @@
 </p>
 <dl>
 
-<dt><i>projectPath</i></dt>
+<dt><i>projectPath</i> (str)</dt>
 <dd>
-path to the Pyramid project (string)
+path to the Pyramid project
 </dd>
 </dl>
 <dl>
@@ -273,6 +272,12 @@
 flag indicating a successful start of the process
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.ProjectPyramid.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.ProjectPyramid.html	Tue Jun 01 19:37:46 2021 +0200
@@ -22,7 +22,7 @@
 <h1>Plugin_Project_Pyramid.ProjectPyramid</h1>
 
 <p>
-Package implementing project support for eric6 Pyramid projects.
+Package implementing project support for eric7 Pyramid projects.
 </p>
 
 <h3>Packages</h3>
--- a/ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.html	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Documentation/source/index-Plugin_Project_Pyramid.html	Tue Jun 01 19:37:46 2021 +0200
@@ -30,7 +30,7 @@
 
 <tr>
 <td><a href="index-Plugin_Project_Pyramid.ProjectPyramid.html">ProjectPyramid</a></td>
-<td>Package implementing project support for eric6 Pyramid projects.</td>
+<td>Package implementing project support for eric7 Pyramid projects.</td>
 </tr>
 </table>
 
--- a/ProjectPyramid/FormSelectionDialog.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/FormSelectionDialog.py	Tue Jun 01 19:37:46 2021 +0200
@@ -7,8 +7,8 @@
 Module implementing a dialog to select the template type.
 """
 
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+from PyQt6.QtCore import pyqtSlot
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
 from .Ui_FormSelectionDialog import Ui_FormSelectionDialog
 
@@ -21,7 +21,8 @@
         """
         Constructor
         
-        @param parent reference to the parent widget (QWidget)
+        @param parent reference to the parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -144,7 +145,8 @@
             ],
         }
         
-        self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok)
+        self.__okButton = self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok)
         self.__okButton.setEnabled(False)
         
         templates = {}
@@ -161,7 +163,8 @@
         """
         Private slot to act upon a change of the selected template type.
         
-        @param index selected index (integer)
+        @param index selected index
+        @type int
         """
         templateType = self.typeCombo.itemData(index)
         if templateType:
@@ -175,7 +178,8 @@
         """
         Public method to get the template text.
         
-        @return text of the template (string)
+        @return text of the template
+        @rtype str
         """
         templateType = self.typeCombo.itemData(self.typeCombo.currentIndex())
         return self.__templates[templateType][1]
--- a/ProjectPyramid/Project.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/Project.py	Tue Jun 01 19:37:46 2021 +0200
@@ -12,14 +12,14 @@
 import configparser
 import contextlib
 
-from PyQt5.QtCore import QObject, QFileInfo, QTimer, QUrl
-from PyQt5.QtGui import QDesktopServices
-from PyQt5.QtWidgets import QMenu, QDialog, QInputDialog, QLineEdit
-from PyQt5.QtCore import QProcess as QProcessPyQt
+from PyQt6.QtCore import QObject, QFileInfo, QTimer, QUrl, QIODeviceBase
+from PyQt6.QtGui import QDesktopServices
+from PyQt6.QtWidgets import QMenu, QDialog, QInputDialog, QLineEdit
+from PyQt6.QtCore import QProcess as QProcessPyQt
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Action import E5Action
+from EricWidgets.EricApplication import ericApp
+from EricWidgets import EricMessageBox, EricFileDialog
+from EricGui.EricAction import EricAction
 
 from .PyramidDialog import PyramidDialog
 
@@ -40,14 +40,17 @@
     """
     Class transforming the call arguments in case of gnome-terminal.
     """
-    def start(self, cmd, args=None, mode=QProcessPyQt.ReadWrite):
+    def start(self, cmd, args=None, mode=QIODeviceBase.OpenModeFlag.ReadWrite):
         """
         Public method to start the given program (cmd) in a new process, if
         none is already running, passing the command line arguments in args.
         
-        @param cmd start the given program cmd (string)
-        @keyparam args list of parameters (list of strings)
-        @keyparam mode access mode (QIODevice.OpenMode)
+        @param cmd start the given program cmd
+        @type str
+        @param args list of parameters
+        @type list of str
+        @param mode access mode
+        @type QIODeviceBase.OpenMode
         """
         if args is None:
             args = []
@@ -69,10 +72,14 @@
         Public static method to start the given program (cmd) in a new process,
         if none is already running, passing the command line arguments in args.
         
-        @param cmd start the given program cmd (string)
-        @keyparam args list of parameters (list of strings)
-        @keyparam path new working directory (string)
-        @return tuple of successful start and process id (boolean, integer)
+        @param cmd start the given program cmd
+        @type str
+        @param args list of parameters
+        @type list of str
+        @param path new working directory
+        @type str
+        @return tuple of successful start and process id
+        @rtype tuple of (bool, int)
         """
         if args is None:
             args = []
@@ -109,11 +116,8 @@
         self.__plugin = plugin
         self.__iconSuffix = iconSuffix
         self.__ui = parent
-        self.__e5project = e5App().getObject("Project")
-        try:
-            self.__virtualEnvManager = e5App().getObject("VirtualEnvManager")
-        except KeyError:
-            self.__virtualEnvManager = None
+        self.__ericProject = ericApp().getObject("Project")
+        self.__virtualEnvManager = ericApp().getObject("VirtualEnvManager")
         self.__hooksInstalled = False
         
         self.__menus = {}   # dictionary with references to menus
@@ -128,7 +132,7 @@
         """
         self.actions = []
     
-        self.selectProjectAct = E5Action(
+        self.selectProjectAct = EricAction(
             self.tr('Current Pyramid Project'),
             "",
             0, 0,
@@ -147,7 +151,7 @@
         ## create actions below      ##
         ###############################
         
-        self.createProjectAct = E5Action(
+        self.createProjectAct = EricAction(
             self.tr('Create Pyramid Project'),
             self.tr('Create Pyramid &Project'),
             0, 0,
@@ -165,7 +169,7 @@
         ## run actions below        ##
         ##############################
         
-        self.runServerAct = E5Action(
+        self.runServerAct = EricAction(
             self.tr('Run Server'),
             self.tr('Run &Server'),
             0, 0,
@@ -180,7 +184,7 @@
         self.runServerAct.triggered.connect(self.__runServer)
         self.actions.append(self.runServerAct)
         
-        self.runLoggingServerAct = E5Action(
+        self.runLoggingServerAct = EricAction(
             self.tr('Run Server with Logging'),
             self.tr('Run Server with &Logging'),
             0, 0,
@@ -195,7 +199,7 @@
         self.runLoggingServerAct.triggered.connect(self.__runLoggingServer)
         self.actions.append(self.runLoggingServerAct)
         
-        self.runBrowserAct = E5Action(
+        self.runBrowserAct = EricAction(
             self.tr('Run Web-Browser'),
             self.tr('Run &Web-Browser'),
             0, 0,
@@ -211,7 +215,7 @@
         self.runBrowserAct.triggered.connect(self.__runBrowser)
         self.actions.append(self.runBrowserAct)
     
-        self.runPythonShellAct = E5Action(
+        self.runPythonShellAct = EricAction(
             self.tr('Start Pyramid Python Console'),
             self.tr('Start Pyramid &Python Console'),
             0, 0,
@@ -229,7 +233,7 @@
         ## setup actions below      ##
         ##############################
         
-        self.setupDevelopAct = E5Action(
+        self.setupDevelopAct = EricAction(
             self.tr('Setup Development Environment'),
             self.tr('Setup &Development Environment'),
             0, 0,
@@ -248,7 +252,7 @@
         ## database actions below    ##
         ###############################
         
-        self.initializeDbAct = E5Action(
+        self.initializeDbAct = EricAction(
             self.tr('Initialize Database'),
             self.tr('Initialize &Database'),
             0, 0,
@@ -268,7 +272,7 @@
         ## show actions below        ##
         ###############################
         
-        self.showViewsAct = E5Action(
+        self.showViewsAct = EricAction(
             self.tr('Show Matching Views'),
             self.tr('Show Matching &Views'),
             0, 0,
@@ -282,7 +286,7 @@
         self.showViewsAct.triggered.connect(self.__showMatchingViews)
         self.actions.append(self.showViewsAct)
         
-        self.showRoutesAct = E5Action(
+        self.showRoutesAct = EricAction(
             self.tr('Show Routes'),
             self.tr('Show &Routes'),
             0, 0,
@@ -297,7 +301,7 @@
         self.showRoutesAct.triggered.connect(self.__showRoutes)
         self.actions.append(self.showRoutesAct)
         
-        self.showTweensAct = E5Action(
+        self.showTweensAct = EricAction(
             self.tr('Show Tween Objects'),
             self.tr('Show &Tween Objects'),
             0, 0,
@@ -317,7 +321,7 @@
         ## distribution actions below   ##
         ##################################
         
-        self.buildDistroAct = E5Action(
+        self.buildDistroAct = EricAction(
             self.tr('Build Distribution'),
             self.tr('Build &Distribution'),
             0, 0,
@@ -336,7 +340,7 @@
         ## documentation action below   ##
         ##################################
         
-        self.documentationAct = E5Action(
+        self.documentationAct = EricAction(
             self.tr('Documentation'),
             self.tr('D&ocumentation'),
             0, 0,
@@ -354,7 +358,7 @@
         ## about action below       ##
         ##############################
         
-        self.aboutPyramidAct = E5Action(
+        self.aboutPyramidAct = EricAction(
             self.tr('About Pyramid'),
             self.tr('About P&yramid'),
             0, 0,
@@ -374,7 +378,8 @@
         """
         Public slot to initialize the Pyramid menu.
         
-        @return the menu generated (QMenu)
+        @return the menu generated
+        @rtype QMenu
         """
         self.__menus = {}   # clear menus references
         
@@ -413,9 +418,11 @@
         """
         Public method to get a reference to the requested menu.
         
-        @param name name of the menu (string)
-        @return reference to the menu (QMenu) or None, if no
-            menu with the given name exists
+        @param name name of the menu
+        @type str
+        @return reference to the menu or None, if no menu with the given
+            name exists
+        @rtype QMenu
         """
         if name in self.__menus:
             return self.__menus[name]
@@ -426,7 +433,8 @@
         """
         Public method to get the names of all menus.
         
-        @return menu names (list of string)
+        @return menu names
+        @rtype list of str
         """
         return list(self.__menus.keys())
     
@@ -449,17 +457,17 @@
         """
         Public method to add our hook methods.
         """
-        if self.__e5project.getProjectType() == "Pyramid":
+        if self.__ericProject.getProjectType() == "Pyramid":
             self.__formsBrowser = (
-                e5App().getObject("ProjectBrowser")
+                ericApp().getObject("ProjectBrowser")
                 .getProjectBrowser("forms"))
             self.__formsBrowser.addHookMethodAndMenuEntry(
                 "newForm", self.newForm, self.tr("New template..."))
             
-            self.__e5project.projectLanguageAddedByCode.connect(
+            self.__ericProject.projectLanguageAddedByCode.connect(
                 self.__projectLanguageAdded)
             self.__translationsBrowser = (
-                e5App().getObject("ProjectBrowser")
+                ericApp().getObject("ProjectBrowser")
                 .getProjectBrowser("translations"))
             self.__translationsBrowser.addHookMethodAndMenuEntry(
                 "extractMessages", self.extractMessages,
@@ -489,7 +497,7 @@
             self.__formsBrowser.removeHookMethod("newForm")
             self.__formsBrowser = None
             
-            self.__e5project.projectLanguageAddedByCode.disconnect(
+            self.__ericProject.projectLanguageAddedByCode.disconnect(
                 self.__projectLanguageAdded)
             self.__translationsBrowser.removeHookMethod("extractMessages")
             self.__translationsBrowser.removeHookMethod("releaseAll")
@@ -505,12 +513,13 @@
         """
         Public method to create a new form.
         
-        @param path full directory path for the new form file (string)
+        @param path full directory path for the new form file
+        @type str
         """
         from .FormSelectionDialog import FormSelectionDialog
         
         dlg = FormSelectionDialog()
-        if dlg.exec() == QDialog.Accepted:
+        if dlg.exec() == QDialog.DialogCode.Accepted:
             template = dlg.getTemplateText()
             
             fileFilters = self.tr(
@@ -521,13 +530,13 @@
                 "HTML Files (*.html);;"
                 "HTML Files (*.htm);;"
                 "All Files (*)")
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self.__ui,
                 self.tr("New Form"),
                 path,
                 fileFilters,
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -536,12 +545,12 @@
                         fname += ex
             
                 if os.path.exists(fname):
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self.__ui,
                         self.tr("New Form"),
                         self.tr("""The file already exists! Overwrite"""
                                 """ it?"""),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         # user selected to not overwrite
                         return
@@ -550,7 +559,7 @@
                     with open(fname, "w", encoding="utf-8") as f:
                         f.write(template)
                 except OSError as e:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.__ui,
                         self.tr("New Form"),
                         self.tr("<p>The new form file <b>{0}</b> could"
@@ -558,7 +567,7 @@
                         .format(fname, e))
                     return
                 
-                self.__e5project.appendFile(fname)
+                self.__ericProject.appendFile(fname)
                 self.__formsBrowser.sourceFile.emit(fname)
 
     ##################################################################
@@ -578,10 +587,12 @@
         Private method to build all full paths of an executable file from
         the environment.
         
-        @param file filename of the executable (string)
+        @param file filename of the executable
+        @type str
         @return list of full executable names, if the executable file is
             accessible via the searchpath defined by the PATH environment
             variable, or an empty list otherwise.
+        @rtype list of str
         """
         paths = []
         
@@ -611,9 +622,11 @@
         """
         Public method to get the supported Python variants.
         
-        @return list of supported Python variants (list of strings)
+        @return list of supported Python variants
+        @rtype list of str
         """
         variants = []
+        # TODO: that doesn't exist anymore
         cmd = "pcreate"
         
         for variant in ['Python3']:
@@ -669,11 +682,13 @@
         Private method to get the path of the virtual environment.
         
         @param language Python variant to get the virtual environment
-            for (string, one of '' or 'Python3')
-        @return path of the virtual environment (string)
+            for (one of '' or 'Python3')
+        @type str
+        @return path of the virtual environment
+        @rtype str
         """
         if not language:
-            language = self.__e5project.getProjectLanguage()
+            language = self.__ericProject.getProjectLanguage()
         if self.__virtualEnvManager:
             if language == "Python3":
                 venvName = self.__plugin.getPreferences(
@@ -701,11 +716,13 @@
         Private method to get the path of the debugger environment.
         
         @param language Python variant to get the debugger environment
-            for (string, one of '' or 'Python3')
-        @return path of the debugger environment (string)
+            for (one of '' or 'Python3')
+        @type str
+        @return path of the debugger environment
+        @rtype str
         """
         if not language:
-            language = self.__e5project.getProjectLanguage()
+            language = self.__ericProject.getProjectLanguage()
         if self.__virtualEnvManager:
             debugEnv = self.__getVirtualEnvironment(language)
             if not debugEnv:
@@ -724,13 +741,16 @@
         """
         Public method to build a Pyramid command.
         
-        @param cmd command (string)
+        @param cmd command
+        @type str
         @param language Python variant to get the virtual environment
-            for (string, one of '' or 'Python3')
-        @return full pyramid command (string)
+            for (one of '' or 'Python3')
+        @type str
+        @return full pyramid command
+        @rtype str
         """
         if not language:
-            language = self.__e5project.getProjectLanguage()
+            language = self.__ericProject.getProjectLanguage()
         
         virtualEnv = self.__getVirtualEnvironment(language)
         if isWindowsPlatform() and not virtualEnv:
@@ -760,9 +780,10 @@
         """
         Public method to build the Python command.
         
-        @return python command (string)
+        @return python command
+        @rtype str
         """
-        language = self.__e5project.getProjectLanguage()
+        language = self.__ericProject.getProjectLanguage()
         if self.__virtualEnvManager:
             if language == "Python3":
                 venvName = self.__plugin.getPreferences(
@@ -785,8 +806,8 @@
         version = self.getPyramidVersionString()
         url = "http://www.pylonsproject.org/projects/pyramid/about"
         
-        msgBox = E5MessageBox.E5MessageBox(
-            E5MessageBox.Question,
+        msgBox = EricMessageBox.EricMessageBox(
+            EricMessageBox.Question,
             self.tr("About Pyramid"),
             self.tr(
                 "<p>Pyramid is a high-level Python Web framework that"
@@ -799,7 +820,7 @@
                 "</table></p>"
             ).format(version, url),
             modal=True,
-            buttons=E5MessageBox.Ok)
+            buttons=EricMessageBox.Ok)
         msgBox.setIconPixmap(UI.PixmapCache.getPixmap(
             os.path.join("ProjectPyramid", "icons",
                          "pyramid64-{0}".format(self.__iconSuffix))
@@ -814,6 +835,7 @@
         @rtype str
         """
         if not self.__pyramidVersion:
+            # TODO: that doesn't exist anymore
             cmd = self.getPyramidCommand("pcreate")
             if isWindowsPlatform():
                 cmd = os.path.join(os.path.dirname(cmd), "pcreate-script.py")
@@ -852,10 +874,11 @@
         """
         Public method to check, if the given console is a spawning console.
         
-        @param consoleCmd console command (string)
+        @param consoleCmd console command
+        @type str
         @return tuple of two entries giving an indication, if the console
             is spawning (boolean) and the (possibly) cleaned console command
-            (string)
+        @rtype str
         """
         if consoleCmd and consoleCmd[0] == '@':
             return (True, consoleCmd[1:])
@@ -891,9 +914,10 @@
         from .CreateParametersDialog import CreateParametersDialog
         
         dlg = CreateParametersDialog(self)
-        if dlg.exec() == QDialog.Accepted:
+        if dlg.exec() == QDialog.DialogCode.Accepted:
             scaffold, project, overwrite, simulate = dlg.getData()
             
+            # TODO: that doesn't exist anymore
             cmd = self.getPyramidCommand("pcreate")
             args = []
             if overwrite:
@@ -906,24 +930,26 @@
             args.append(project)
             dlg = PyramidDialog(self.tr("Create Pyramid Project"),
                                 linewrap=False, parent=self.__ui)
-            if dlg.startProcess(cmd, args, self.__e5project.getProjectPath()):
+            if dlg.startProcess(
+                cmd, args, self.__ericProject.getProjectPath()
+            ):
                 dlg.exec()
                 if dlg.normalExit() and not simulate:
                     # search for files created by pcreate and add them to the
                     # project
                     projectPath = os.path.join(
-                        self.__e5project.getProjectPath(), project)
+                        self.__ericProject.getProjectPath(), project)
                     for entry in os.walk(projectPath):
                         for fileName in entry[2]:
                             fullName = os.path.join(entry[0], fileName)
-                            self.__e5project.appendFile(fullName)
+                            self.__ericProject.appendFile(fullName)
                     
                     # create the base directory for translations
                     i18nPath = os.path.join(
                         projectPath, project.lower(), "i18n")
                     if not os.path.exists(i18nPath):
                         os.makedirs(i18nPath)
-                    self.__e5project.setDirty(True)
+                    self.__ericProject.setDirty(True)
                     
                     self.__setCurrentProject(project)
     
@@ -936,10 +962,11 @@
         Private method to determine the relative path of all Pyramid
         projects (= top level dirs).
         
-        @return list of projects (list of string)
+        @return list of projects
+        @rtype list of str
         """
         projects = []
-        ppath = self.__e5project.getProjectPath()
+        ppath = self.__ericProject.getProjectPath()
         for entry in os.listdir(ppath):
             if (
                 entry[0] not in "._" and
@@ -979,9 +1006,10 @@
         """
         Private method to calculate the full path of the Pyramid project.
         
+        @return path of the project
+        @rtype str
         @exception PyramidNoProjectSelectedException raised, if no project is
             selected
-        @return path of the project (string)
         """
         if self.__currentProject is None:
             self.__selectProject()
@@ -989,14 +1017,15 @@
         if self.__currentProject is None:
             raise PyramidNoProjectSelectedException
         else:
-            return os.path.join(self.__e5project.getProjectPath(),
+            return os.path.join(self.__ericProject.getProjectPath(),
                                 self.__currentProject)
     
     def __setCurrentProject(self, project):
         """
         Private slot to set the current project.
         
-        @param project name of the project (string)
+        @param project name of the project
+        @type str
         """
         if project is not None and len(project) == 0:
             self.__currentProject = None
@@ -1012,7 +1041,7 @@
             self.tr('&Current Pyramid Project ({0})').format(curProject))
         
         if self.__currentProject is None:
-            self.__e5project.setTranslationPattern("")
+            self.__ericProject.setTranslationPattern("")
         else:
             lowerProject = self.__project().lower()
             config = configparser.ConfigParser()
@@ -1025,7 +1054,7 @@
                 domain = config.get("init_catalog", "domain")
             except (configparser.NoOptionError, configparser.NoSectionError):
                 domain = lowerProject
-            self.__e5project.setTranslationPattern(
+            self.__ericProject.setTranslationPattern(
                 os.path.join(project, outputDir, "%language%",
                              "LC_MESSAGES", "{0}.po".format(domain))
             )
@@ -1040,9 +1069,10 @@
         """
         Private method to get the name of the current Pyramid project.
         
+        @return name of the project
+        @rtype str
         @exception PyramidNoProjectSelectedException raised, if no project is
             selected
-        @return name of the project (string)
         """
         if self.__currentProject is None:
             self.__selectProject()
@@ -1060,7 +1090,8 @@
         """
         Private slot to start the Pyramid Web server.
         
-        @param logging flag indicating to enable logging (boolean)
+        @param logging flag indicating to enable logging
+        @type bool
         """
         consoleCmd = self.isSpawningConsole(
             self.__plugin.getPreferences("ConsoleCommand"))[1]
@@ -1068,7 +1099,7 @@
             try:
                 projectPath = self.__projectPath()
             except PyramidNoProjectSelectedException:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.__ui,
                     self.tr('Run Server'),
                     self.tr('No current Pyramid project selected or no'
@@ -1096,7 +1127,7 @@
                 self.__serverProc.start(args[0], args[1:])
                 serverProcStarted = self.__serverProc.waitForStarted()
             if not serverProcStarted:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr('Process Generation Error'),
                     self.tr('The Pyramid server could not be started.'))
@@ -1113,7 +1144,7 @@
         """
         if (
             self.__serverProc is not None and
-            self.__serverProc.state() != QProcess.NotRunning
+            self.__serverProc.state() != QProcess.ProcessState.NotRunning
         ):
             self.__serverProc.terminate()
             QTimer.singleShot(2000, self.__serverProc.kill)
@@ -1127,7 +1158,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 self.tr('Run Web-Browser'),
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1144,7 +1175,7 @@
         if self.__plugin.getPreferences("UseExternalBrowser"):
             res = QDesktopServices.openUrl(QUrl(url))
             if not res:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr('Run Web-Browser'),
                     self.tr('Could not start the web-browser for the URL'
@@ -1162,7 +1193,7 @@
             try:
                 projectPath = self.__projectPath()
             except PyramidNoProjectSelectedException:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.__ui,
                     self.tr('Start Pyramid Python Console'),
                     self.tr('No current Pyramid project selected or no'
@@ -1180,7 +1211,7 @@
             started, pid = QProcess.startDetached(
                 args[0], args[1:], projectPath)
             if not started:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr('Process Generation Error'),
                     self.tr('The Pyramid Shell process could not be'
@@ -1199,7 +1230,7 @@
         try:
             wd = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1234,7 +1265,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1246,7 +1277,7 @@
         )
         
         dlg = DistributionTypeSelectionDialog(self, projectPath, self.__ui)
-        if dlg.exec() == QDialog.Accepted:
+        if dlg.exec() == QDialog.DialogCode.Accepted:
             formats = dlg.getFormats()
             cmd = self.getPythonCommand()
             args = []
@@ -1271,13 +1302,14 @@
         """
         Private method to create the path to the initialization script.
         
-        @return path to the initialization script (string)
+        @return path to the initialization script
+        @rtype str
         """
         try:
             cmd = "initialize_{0}_db".format(self.__project())
             return self.getPyramidCommand(cmd)
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 self.tr("Initialize Database"),
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1292,7 +1324,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1322,7 +1354,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1333,7 +1365,7 @@
             self.__ui,
             self.tr("Show Matching Views"),
             self.tr("Enter the URL to be matched:"),
-            QLineEdit.Normal,
+            QLineEdit.EchoMode.Normal,
             "/")
         if not ok or url == "":
             return
@@ -1356,7 +1388,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1378,7 +1410,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1413,14 +1445,16 @@
         """
         Private method to extract the locale out of a file name.
         
-        @param filename name of the file used for extraction (string)
-        @return extracted locale (string) or None
+        @param filename name of the file used for extraction
+        @type str
+        @return extracted locale or None
+        @rtype str
         """
-        if self.__e5project.getTranslationPattern():
+        if self.__ericProject.getTranslationPattern():
             # On Windows, path typically contains backslashes. This leads
             # to an invalid search pattern '...\(' because the opening bracket
             # will be escaped.
-            pattern = self.__e5project.getTranslationPattern()
+            pattern = self.__ericProject.getTranslationPattern()
             pattern = os.path.normpath(pattern)
             pattern = pattern.replace("%language%", "(.*?)")
             pattern = pattern.replace('\\', '\\\\')
@@ -1434,8 +1468,10 @@
         """
         Private method to normalize a list of file names.
         
-        @param filenames list of file names to normalize (list of string)
-        @return normalized file names (list of string)
+        @param filenames list of file names to normalize
+        @type list of str
+        @return normalized file names
+        @rtype list of str
         """
         nfilenames = []
         for filename in filenames:
@@ -1450,8 +1486,10 @@
         """
         Private method to filter a list of file names by Pyramid project.
         
-        @param filenames list of file names to be filtered (list of string)
-        @return file names belonging to the current site (list of string)
+        @param filenames list of file names to be filtered
+        @type list of str
+        @return file names belonging to the current site
+        @rtype list of str
         """
         project = self.__project()
         nfilenames = []
@@ -1469,7 +1507,7 @@
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1481,14 +1519,14 @@
         try:
             potFile = config.get("extract_messages", "output_file")
         except configparser.NoSectionError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No setup.cfg found or no "extract_messages"'
                         ' section found in setup.cfg.'))
             return
         except configparser.NoOptionError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No "output_file" option found in setup.cfg.'))
@@ -1509,20 +1547,21 @@
         res = dia.startProcess(cmd, args, projectPath)
         if res:
             dia.exec()
-            self.__e5project.appendFile(os.path.join(projectPath, potFile))
+            self.__ericProject.appendFile(os.path.join(projectPath, potFile))
             
     def __projectLanguageAdded(self, code):
         """
         Private slot handling the addition of a new language.
         
-        @param code language code of the new language (string)
+        @param code language code of the new language
+        @type str
         """
         title = self.tr(
             "Initializing message catalog for '{0}'").format(code)
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1544,21 +1583,22 @@
         if res:
             dia.exec()
             
-            langFile = self.__e5project.getTranslationPattern().replace(
+            langFile = self.__ericProject.getTranslationPattern().replace(
                 "%language%", code)
-            self.__e5project.appendFile(langFile)
+            self.__ericProject.appendFile(langFile)
     
     def compileCatalogs(self, filenames):
         """
         Public method to compile the message catalogs.
         
         @param filenames list of filenames (not used)
+        @type list of str
         """
         title = self.tr("Compiling message catalogs")
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1582,19 +1622,20 @@
                 for fileName in entry[2]:
                     fullName = os.path.join(entry[0], fileName)
                     if fullName.endswith('.mo'):
-                        self.__e5project.appendFile(fullName)
+                        self.__ericProject.appendFile(fullName)
     
     def compileSelectedCatalogs(self, filenames):
         """
         Public method to update the message catalogs.
         
-        @param filenames list of file names (list of string)
+        @param filenames list of file names
+        @type list of str
         """
         title = self.tr("Compiling message catalogs")
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1616,7 +1657,7 @@
                 argsLists.append(args)
         
         if len(argsLists) == 0:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No locales detected. Aborting...'))
@@ -1634,19 +1675,20 @@
                 for fileName in entry[2]:
                     fullName = os.path.join(entry[0], fileName)
                     if fullName.endswith('.mo'):
-                        self.__e5project.appendFile(fullName)
+                        self.__ericProject.appendFile(fullName)
     
     def updateCatalogs(self, filenames):
         """
         Public method to update the message catalogs.
         
         @param filenames list of filenames (not used)
+        @type list of str
         """
         title = self.tr("Updating message catalogs")
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1670,12 +1712,13 @@
         Public method to update the message catalogs.
         
         @param filenames list of filenames
+        @type list of str
         """
         title = self.tr("Updating message catalogs")
         try:
             projectPath = self.__projectPath()
         except PyramidNoProjectSelectedException:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No current Pyramid project selected or no Pyramid'
@@ -1697,7 +1740,7 @@
                 argsLists.append(args)
         
         if len(argsLists) == 0:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.__ui,
                 title,
                 self.tr('No locales detected. Aborting...'))
@@ -1714,7 +1757,8 @@
         """
         Public method to edit the given file in an external .po editor.
         
-        @param poFile name of the .po file (string)
+        @param poFile name of the .po file
+        @type str
         """
         editor = self.__plugin.getPreferences("TranslationsEditor")
         if poFile.endswith(".po") and editor:
@@ -1724,7 +1768,7 @@
                 wd = ""
             started, pid = QProcess.startDetached(editor, [poFile], wd)
             if not started:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     self.tr('Process Generation Error'),
                     self.tr('The translations editor process ({0}) could'
--- a/ProjectPyramid/PyramidDialog.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/PyramidDialog.py	Tue Jun 01 19:37:46 2021 +0200
@@ -9,10 +9,10 @@
 
 import os
 
-from PyQt5.QtCore import QProcess, QTimer, pyqtSlot, Qt, QCoreApplication
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QLineEdit, QTextEdit
+from PyQt6.QtCore import QProcess, QTimer, pyqtSlot, Qt, QCoreApplication
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLineEdit, QTextEdit
 
-from E5Gui import E5MessageBox
+from EricWidgets import EricMessageBox
 
 from .Ui_PyramidDialog import Ui_PyramidDialog
 
@@ -34,20 +34,26 @@
         """
         Constructor
         
-        @param text text to be shown by the label (string)
-        @keyparam fixed flag indicating a fixed font should be used (boolean)
-        @keyparam linewrap flag indicating to wrap long lines (boolean)
-        @keyparam msgSuccess optional string to show upon successful execution
-            (string)
-        @keyparam msgError optional string to show upon unsuccessful execution
-            (string)
-        @keyparam parent parent widget (QWidget)
+        @param text text to be shown by the label
+        @type str
+        @param fixed flag indicating a fixed font should be used
+        @type bool
+        @param linewrap flag indicating to wrap long lines
+        @type bool
+        @param msgSuccess optional string to show upon successful execution
+        @type str
+        @param msgError optional string to show upon unsuccessful execution
+        @type str
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
         
         self.proc = None
         self.argsLists = []
@@ -66,7 +72,7 @@
                 self.resultbox.setFontFamily("Monospace")
         
         if not linewrap:
-            self.resultbox.setLineWrapMode(QTextEdit.NoWrap)
+            self.resultbox.setLineWrapMode(QTextEdit.LineWrapMode.NoWrap)
         
         self.show()
         QCoreApplication.processEvents()
@@ -78,7 +84,7 @@
         """
         if (
             self.proc is not None and
-            self.proc.state() != QProcess.NotRunning
+            self.proc.state() != QProcess.ProcessState.NotRunning
         ):
             self.proc.terminate()
             QTimer.singleShot(2000, self.proc.kill)
@@ -89,11 +95,15 @@
         
         self.proc = None
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
-        self.buttonBox.button(QDialogButtonBox.Close).setFocus(
-            Qt.OtherFocusReason)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setFocus(
+                Qt.FocusReason.OtherFocusReason)
         
         if self.argsLists:
             args = self.argsLists[0][:]
@@ -104,21 +114,31 @@
         """
         Private slot called by a button of the button box clicked.
         
-        @param button button that was clicked (QAbstractButton)
+        @param button button that was clicked
+        @type QAbstractButton
         """
-        if button == self.buttonBox.button(QDialogButtonBox.Close):
+        if button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close
+        ):
             self.close()
-        elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel
+        ):
             self.finish()
     
     def __procFinished(self, exitCode, exitStatus):
         """
         Private slot connected to the finished signal.
         
-        @param exitCode exit code of the process (integer)
-        @param exitStatus exit status of the process (QProcess.ExitStatus)
+        @param exitCode exit code of the process
+        @type int
+        @param exitStatus exit status of the process
+        @type QProcess.ExitStatus
         """
-        self.normal = (exitStatus == QProcess.NormalExit) and (exitCode == 0)
+        self.normal = (
+            exitStatus == QProcess.ExitStatus.NormalExit and
+            exitCode == 0
+        )
         self.finish()
         
         if self.normal and self.msgSuccess:
@@ -131,21 +151,30 @@
         """
         Public slot used to start the process.
         
-        @param command command to start (string)
-        @param args list of arguments for the process (list of strings)
-        @keyparam workingDir working directory for the process (string)
-        @keyparam showArgs flag indicating to show the arguments (boolean)
+        @param command command to start
+        @type str
+        @param args list of arguments for the process
+        @type list of str
+        @param workingDir working directory for the process
+        @type str
+        @param showArgs flag indicating to show the arguments
+        @type bool
         @return flag indicating a successful start of the process
+        @rtype bool
         """
         self.errorGroup.hide()
         self.normal = False
         self.intercept = False
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setFocus(
-            Qt.OtherFocusReason)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setFocus(
+                Qt.FocusReason.OtherFocusReason)
         
         if showArgs:
             self.resultbox.append(command + ' ' + ' '.join(args))
@@ -164,7 +193,7 @@
         if not procStarted:
             self.buttonBox.setFocus()
             self.inputGroup.setEnabled(False)
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -181,10 +210,11 @@
         Public slot used to start a batch of processes.
         
         @param argsLists list of lists of arguments for the processes
-            (list of list of string)
-        @param workingDir working directory for the process (string)
+        @type list of list of str
+        @param workingDir working directory for the process
+        @type str
         @return flag indicating a successful start of the first process
-            (boolean)
+        @rtype bool
         """
         self.argsLists = argsLists[:]
         self.workingDir = workingDir
@@ -202,7 +232,8 @@
         """
         Public method to check for a normal process termination.
         
-        @return flag indicating normal process termination (boolean)
+        @return flag indicating normal process termination
+        @rtype bool
         """
         return self.normal
     
@@ -211,7 +242,8 @@
         Public method to check for a normal process termination without
         error messages.
         
-        @return flag indicating normal process termination (boolean)
+        @return flag indicating normal process termination
+        @rtype bool
         """
         return self.normal and self.errors.toPlainText() == ""
     
@@ -252,12 +284,13 @@
         """
         Private slot to handle the password checkbox toggled.
         
-        @param isOn flag indicating the status of the check box (boolean)
+        @param isOn flag indicating the status of the check box
+        @type bool
         """
         if isOn:
-            self.input.setEchoMode(QLineEdit.Password)
+            self.input.setEchoMode(QLineEdit.EchoMode.Password)
         else:
-            self.input.setEchoMode(QLineEdit.Normal)
+            self.input.setEchoMode(QLineEdit.EchoMode.Normal)
     
     @pyqtSlot()
     def on_sendButton_clicked(self):
@@ -290,7 +323,8 @@
         """
         Protected slot to handle a key press event.
         
-        @param evt the key press event (QKeyEvent)
+        @param evt the key press event
+        @type QKeyEvent
         """
         if self.intercept:
             self.intercept = False
--- a/ProjectPyramid/PyramidRoutesDialog.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/PyramidRoutesDialog.py	Tue Jun 01 19:37:46 2021 +0200
@@ -9,12 +9,12 @@
 
 import os
 
-from PyQt5.QtCore import QProcess, QTimer, pyqtSlot, Qt, QCoreApplication
-from PyQt5.QtWidgets import (
+from PyQt6.QtCore import pyqtSlot, Qt, QProcess, QTimer, QCoreApplication
+from PyQt6.QtWidgets import (
     QDialog, QDialogButtonBox, QLineEdit, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from EricWidgets import EricMessageBox
 
 from .Ui_PyramidRoutesDialog import Ui_PyramidRoutesDialog
 
@@ -31,14 +31,17 @@
         Constructor
         
         @param project reference to the project object
-            (ProjectPyramid.Project.Project)
-        @param parent reference to the parent widget (QWidget)
+        @type Project
+        @param parent reference to the parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
         
         self.__project = project
         self.proc = None
@@ -54,7 +57,7 @@
         """
         if (
             self.proc is not None and
-            self.proc.state() != QProcess.NotRunning
+            self.proc.state() != QProcess.ProcessState.NotRunning
         ):
             self.proc.terminate()
             QTimer.singleShot(2000, self.proc.kill)
@@ -67,11 +70,15 @@
         
         self.__processBuffer()
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
-        self.buttonBox.button(QDialogButtonBox.Close).setFocus(
-            Qt.OtherFocusReason)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setFocus(
+                Qt.FocusReason.OtherFocusReason)
     
     def on_buttonBox_clicked(self, button):
         """
@@ -79,19 +86,28 @@
         
         @param button button that was clicked (QAbstractButton)
         """
-        if button == self.buttonBox.button(QDialogButtonBox.Close):
+        if button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close
+        ):
             self.close()
-        elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel
+        ):
             self.finish()
     
     def __procFinished(self, exitCode, exitStatus):
         """
         Private slot connected to the finished signal.
         
-        @param exitCode exit code of the process (integer)
-        @param exitStatus exit status of the process (QProcess.ExitStatus)
+        @param exitCode exit code of the process
+        @type int
+        @param exitStatus exit status of the process
+        @type QProcess.ExitStatus
         """
-        self.normal = (exitStatus == QProcess.NormalExit) and (exitCode == 0)
+        self.normal = (
+            exitStatus == QProcess.ExitStatus.NormalExit and
+            exitCode == 0
+        )
         self.finish()
     
     def __processBuffer(self):
@@ -130,8 +146,10 @@
         """
         Public slot used to start the process.
         
-        @param projectPath path to the Pyramid project (string)
+        @param projectPath path to the Pyramid project
+        @type str
         @return flag indicating a successful start of the process
+        @rtype bool
         """
         QTreeWidgetItem(self.routes, [self.tr("Getting routes...")])
         self.routes.setHeaderHidden(True)
@@ -140,11 +158,15 @@
         self.normal = False
         self.intercept = False
         
-        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
-        self.buttonBox.button(QDialogButtonBox.Cancel).setFocus(
-            Qt.OtherFocusReason)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setFocus(
+                Qt.FocusReason.OtherFocusReason)
         
         self.proc = QProcess()
         
@@ -163,7 +185,7 @@
         if not procStarted:
             self.buttonBox.setFocus()
             self.inputGroup.setEnabled(False)
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -209,12 +231,13 @@
         """
         Private slot to handle the password checkbox toggled.
         
-        @param isOn flag indicating the status of the check box (boolean)
+        @param isOn flag indicating the status of the check box
+        @type bool
         """
         if isOn:
-            self.input.setEchoMode(QLineEdit.Password)
+            self.input.setEchoMode(QLineEdit.EchoMode.Password)
         else:
-            self.input.setEchoMode(QLineEdit.Normal)
+            self.input.setEchoMode(QLineEdit.EchoMode.Normal)
     
     @pyqtSlot()
     def on_sendButton_clicked(self):
@@ -244,7 +267,8 @@
         """
         Protected slot to handle a key press event.
         
-        @param evt the key press event (QKeyEvent)
+        @param evt the key press event
+        @type QKeyEvent
         """
         if self.intercept:
             self.intercept = False
--- a/ProjectPyramid/__init__.py	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/__init__.py	Tue Jun 01 19:37:46 2021 +0200
@@ -4,5 +4,5 @@
 #
 
 """
-Package implementing project support for eric6 Pyramid projects.
+Package implementing project support for eric7 Pyramid projects.
 """
Binary file ProjectPyramid/i18n/pyramid_de.qm has changed
--- a/ProjectPyramid/i18n/pyramid_de.ts	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/i18n/pyramid_de.ts	Tue Jun 01 19:37:46 2021 +0200
@@ -1,931 +1,946 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de_DE" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+  <context>
     <name>CreateParametersDialog</name>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="14"/>
-        <source>Create Parameters</source>
-        <translation>Parameter für Erstellung</translation>
+      <location filename="../CreateParametersDialog.py" line="55" />
+      <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.ui" line="23"/>
-        <source>Project &amp;Name:</source>
-        <translation>Projekt&amp;name:</translation>
+      <location filename="../CreateParametersDialog.py" line="58" />
+      <source>Could not start the pcreate executable.</source>
+      <translation>Der pcreate Prozess konnte nicht gestartet werden.</translation>
+    </message>
+    <message>
+      <location filename="../CreateParametersDialog.py" line="69" />
+      <source>Process Generation Error</source>
+      <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="33"/>
-        <source>Enter the name of the Pyramid project to create</source>
-        <translation>Gib den Namen des zu erstellenden Pyramid Projektes ein</translation>
+      <location filename="../CreateParametersDialog.py" line="115" />
+      <source>{0} ({1})</source>
+      <comment>scaffold name, explanatory text</comment>
+      <translation>{0} ({1})</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="40"/>
-        <source>&amp;Scaffold:</source>
-        <translation>&amp;Vorlage:</translation>
-    </message>
-    <message>
-        <location filename="../CreateParametersDialog.ui" line="50"/>
-        <source>Select the scaffold to be used</source>
-        <translation>Wähle die zu verwendende Vorlage aus</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Create Parameters</source>
+      <translation>Parameter für Erstellung</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="57"/>
-        <source>Select to overwrite existing files</source>
-        <translation>Auswählen, um existierende Dateien zu überschreiben</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Project &amp;Name:</source>
+      <translation>Projekt&amp;name:</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="60"/>
-        <source>Overwrite existing files</source>
-        <translation>Existierende Dateien überschreiben</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Enter the name of the Pyramid project to create</source>
+      <translation>Gib den Namen des zu erstellenden Pyramid Projektes ein</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="67"/>
-        <source>Select to simulate the creation</source>
-        <translation>Auswählen, um die Erstellung zu simulieren</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>&amp;Scaffold:</source>
+      <translation>&amp;Vorlage:</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="70"/>
-        <source>Simulate Pyramid project creation</source>
-        <translation>Pyramid Projekterstellung simulieren</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select the scaffold to be used</source>
+      <translation>Wähle die zu verwendende Vorlage aus</translation>
     </message>
     <message>
-        <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>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to overwrite existing files</source>
+      <translation>Auswählen, um existierende Dateien zu überschreiben</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="55"/>
-        <source>Could not start the pcreate executable.</source>
-        <translation>Der pcreate Prozess konnte nicht gestartet werden.</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Overwrite existing files</source>
+      <translation>Existierende Dateien überschreiben</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="64"/>
-        <source>Process Generation Error</source>
-        <translation>Fehler bei der Prozessgenerierung</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to simulate the creation</source>
+      <translation>Auswählen, um die Erstellung zu simulieren</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="110"/>
-        <source>{0} ({1})</source>
-        <comment>scaffold name, explanatory text</comment>
-        <translation>{0} ({1})</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Simulate Pyramid project creation</source>
+      <translation>Pyramid Projekterstellung simulieren</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>DistributionTypeSelectionDialog</name>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="14"/>
-        <source>Distribution Type</source>
-        <translation>Distributionstyp</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Distribution Type</source>
+      <translation>Distributionstyp</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="23"/>
-        <source>Select the distribution file formats below:</source>
-        <translation>Wähle die Dateiformate für die Distribution:</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Select the distribution file formats below:</source>
+      <translation>Wähle die Dateiformate für die Distribution:</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="30"/>
-        <source>Check the distribution file formats that should be generated</source>
-        <translation>Wähle die zu erzeugenden Dateiformate für die Distribution an</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Check the distribution file formats that should be generated</source>
+      <translation>Wähle die zu erzeugenden Dateiformate für die Distribution an</translation>
     </message>
     <message>
-        <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>
+      <location filename="../DistributionTypeSelectionDialog.py" line="59" />
+      <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="61"/>
-        <source>Could not start the python executable.</source>
-        <translation>Der python Prozess konnte nicht gestartet werden.</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="63" />
+      <source>Could not start the python executable.</source>
+      <translation>Der python Prozess konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
-        <source>Process Generation Error</source>
-        <translation>Fehler bei der Prozessgenerierung</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="78" />
+      <source>Process Generation Error</source>
+      <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>FormSelectionDialog</name>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="14"/>
-        <source>Template Type Selection</source>
-        <translation>Templatetypauswahl</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template Type Selection</source>
+      <translation>Templatetypauswahl</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="23"/>
-        <source>Template &amp;Type:</source>
-        <translation>&amp;Templatetyp:</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template &amp;Type:</source>
+      <translation>&amp;Templatetyp:</translation>
+    </message>
+    <message>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Select the template type</source>
+      <translation>Wähle den Templatetyp</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="39"/>
-        <source>Select the template type</source>
-        <translation>Wähle den Templatetyp</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Preview:</source>
+      <translation>Vorschau:</translation>
+    </message>
+    <message>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Shows the text of the selected template</source>
+      <translation>Zeigt den Text des ausgewählten Templates</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="46"/>
-        <source>Preview:</source>
-        <translation>Vorschau:</translation>
+      <location filename="../FormSelectionDialog.py" line="32" />
+      <source>Standard HTML 5 template</source>
+      <translation>Standard HTML 5 Template</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="53"/>
-        <source>Shows the text of the selected template</source>
-        <translation>Zeigt den Text des ausgewählten Templates</translation>
+      <location filename="../FormSelectionDialog.py" line="45" />
+      <source>Standard HTML template</source>
+      <translation>Standard HTML Template</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="31"/>
-        <source>Standard HTML 5 template</source>
-        <translation>Standard HTML 5 Template</translation>
+      <location filename="../FormSelectionDialog.py" line="59" />
+      <source>Chameleon template</source>
+      <translation>Chameleon Template</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="114"/>
-        <source>Mako template with sections</source>
-        <translation>Mako Template mit Abschnitten</translation>
+      <location filename="../FormSelectionDialog.py" line="115" />
+      <source>Mako template with sections</source>
+      <translation>Mako Template mit Abschnitten</translation>
+    </message>
+  </context>
+  <context>
+    <name>Project</name>
+    <message>
+      <location filename="../Project.py" line="136" />
+      <source>Current Pyramid Project</source>
+      <translation>Aktuelles Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="44"/>
-        <source>Standard HTML template</source>
-        <translation>Standard HTML Template</translation>
+      <location filename="../Project.py" line="140" />
+      <source>Selects the current Pyramid project</source>
+      <translation>Wählt das aktuelle Pyramid Projekt aus</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="58"/>
-        <source>Chameleon template</source>
-        <translation>Chameleon Template</translation>
-    </message>
-</context>
-<context>
-    <name>Project</name>
-    <message>
-        <location filename="../Project.py" line="126"/>
-        <source>Current Pyramid Project</source>
-        <translation>Aktuelles Pyramid Projekt</translation>
+      <location filename="../Project.py" line="142" />
+      <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="131"/>
-        <source>Selects the current Pyramid project</source>
-        <translation>Wählt das aktuelle Pyramid Projekt aus</translation>
+      <location filename="../Project.py" line="931" />
+      <location filename="../Project.py" line="155" />
+      <source>Create Pyramid Project</source>
+      <translation>Pyramid Projekt erstellen</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="156" />
+      <source>Create Pyramid &amp;Project</source>
+      <translation>Pyramid &amp;Projekt erstellen</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="159" />
+      <source>Creates a new Pyramid project</source>
+      <translation>Erstellt ein neues Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="906"/>
-        <source>Create Pyramid Project</source>
-        <translation>Pyramid Projekt erstellen</translation>
+      <location filename="../Project.py" line="161" />
+      <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using "pcreate".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Pyramid Projekt erstellen&lt;/b&gt;&lt;p&gt;Erstellt ein neues Pyramid Projekt mittels "pcreate".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="145"/>
-        <source>Create Pyramid &amp;Project</source>
-        <translation>Pyramid &amp;Projekt erstellen</translation>
+      <location filename="../Project.py" line="1104" />
+      <location filename="../Project.py" line="173" />
+      <source>Run Server</source>
+      <translation>Server starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="150"/>
-        <source>Creates a new Pyramid project</source>
-        <translation>Erstellt ein neues Pyramid Projekt</translation>
+      <location filename="../Project.py" line="174" />
+      <source>Run &amp;Server</source>
+      <translation>&amp;Server starten</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="177" />
+      <source>Starts the Pyramid Web server</source>
+      <translation>Startet den Pyramid Web Server</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="179" />
+      <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using "pserve --reload development.ini".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Server starten&lt;/b&gt;&lt;p&gt;Startet den Pyramid Web Server mittels "pserve --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1080"/>
-        <source>Run Server</source>
-        <translation>Server starten</translation>
+      <location filename="../Project.py" line="188" />
+      <source>Run Server with Logging</source>
+      <translation>Server mit Logging starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="163"/>
-        <source>Run &amp;Server</source>
-        <translation>&amp;Server starten</translation>
+      <location filename="../Project.py" line="189" />
+      <source>Run Server with &amp;Logging</source>
+      <translation>Server mit &amp;Logging starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="168"/>
-        <source>Starts the Pyramid Web server</source>
-        <translation>Startet den Pyramid Web Server</translation>
+      <location filename="../Project.py" line="192" />
+      <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="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>
+      <location filename="../Project.py" line="194" />
+      <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using "pserve --log-file=server.log --reload development.ini".&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 "pserve --log-file=server.log --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with Logging</source>
-        <translation>Server mit Logging starten</translation>
+      <location filename="../Project.py" line="1180" />
+      <location filename="../Project.py" line="1163" />
+      <location filename="../Project.py" line="203" />
+      <source>Run Web-Browser</source>
+      <translation>Web-Browser starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with &amp;Logging</source>
-        <translation>Server mit &amp;Logging starten</translation>
+      <location filename="../Project.py" line="204" />
+      <source>Run &amp;Web-Browser</source>
+      <translation>Web-&amp;Browser starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="183"/>
-        <source>Starts the Pyramid Web server with logging</source>
-        <translation>Startet den Pyramid Web Server mit Logging</translation>
+      <location filename="../Project.py" line="207" />
+      <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="210" />
+      <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="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>
+      <location filename="../Project.py" line="1198" />
+      <location filename="../Project.py" line="219" />
+      <source>Start Pyramid Python Console</source>
+      <translation>Starte Pyramid Python Konsole</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1156"/>
-        <source>Run Web-Browser</source>
-        <translation>Web-Browser starten</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="193"/>
-        <source>Run &amp;Web-Browser</source>
-        <translation>Web-&amp;Browser starten</translation>
+      <location filename="../Project.py" line="220" />
+      <source>Start Pyramid &amp;Python Console</source>
+      <translation>Starte Pyramid &amp;Python Konsole</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="223" />
+      <source>Starts an interactive Python interpreter</source>
+      <translation>Startet einen interaktiven Python Interpreter</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="225" />
+      <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="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>
+      <location filename="../Project.py" line="1229" />
+      <location filename="../Project.py" line="237" />
+      <source>Setup Development Environment</source>
+      <translation>Entwicklungsumgebung einrichten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1174"/>
-        <source>Start Pyramid Python Console</source>
-        <translation>Starte Pyramid Python Konsole</translation>
+      <location filename="../Project.py" line="238" />
+      <source>Setup &amp;Development Environment</source>
+      <translation>Entwicklungs&amp;umgebung einrichten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="209"/>
-        <source>Start Pyramid &amp;Python Console</source>
-        <translation>Starte Pyramid &amp;Python Konsole</translation>
+      <location filename="../Project.py" line="241" />
+      <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="214"/>
-        <source>Starts an interactive Python interpreter</source>
-        <translation>Startet einen interaktiven Python Interpreter</translation>
+      <location filename="../Project.py" line="243" />
+      <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using "python setup.py develop".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Entwicklungsumgebung einrichten&lt;/b&gt;&lt;p&gt;Richtet das Pyramid Projekt im Entwicklungsmodus mittels "python setup.py develop" ein.&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1323" />
+      <location filename="../Project.py" line="1314" />
+      <location filename="../Project.py" line="256" />
+      <source>Initialize Database</source>
+      <translation>Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1207"/>
-        <source>Setup Development Environment</source>
-        <translation>Entwicklungsumgebung einrichten</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="227"/>
-        <source>Setup &amp;Development Environment</source>
-        <translation>Entwicklungs&amp;umgebung einrichten</translation>
+      <location filename="../Project.py" line="257" />
+      <source>Initialize &amp;Database</source>
+      <translation>&amp;Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="232"/>
-        <source>Setup the Pyramid project in development mode</source>
-        <translation>Richtet das Pyramid Projekt im Entwicklungsmodus ein</translation>
+      <location filename="../Project.py" line="260" />
+      <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="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>
+      <location filename="../Project.py" line="263" />
+      <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="1300"/>
-        <source>Initialize Database</source>
-        <translation>Datenbank initialisieren</translation>
+      <location filename="../Project.py" line="1366" />
+      <location filename="../Project.py" line="1353" />
+      <location filename="../Project.py" line="276" />
+      <source>Show Matching Views</source>
+      <translation>Passende Ansichten anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="246"/>
-        <source>Initialize &amp;Database</source>
-        <translation>&amp;Datenbank initialisieren</translation>
+      <location filename="../Project.py" line="277" />
+      <source>Show Matching &amp;Views</source>
+      <translation>Passende &amp;Ansichten anzeigen</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="280" />
+      <source>Show views matching a given URL</source>
+      <translation>Zeigt Ansichten zu einer gegebenen URL an</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="282" />
+      <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="1341"/>
-        <source>Show Matching Views</source>
-        <translation>Passende Ansichten anzeigen</translation>
+      <location filename="../Project.py" line="1387" />
+      <location filename="../Project.py" line="290" />
+      <source>Show Routes</source>
+      <translation>Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="266"/>
-        <source>Show Matching &amp;Views</source>
-        <translation>Passende &amp;Ansichten anzeigen</translation>
+      <location filename="../Project.py" line="291" />
+      <source>Show &amp;Routes</source>
+      <translation>&amp;Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="271"/>
-        <source>Show views matching a given URL</source>
-        <translation>Zeigt Ansichten zu einer gegebenen URL an</translation>
+      <location filename="../Project.py" line="294" />
+      <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="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>
+      <location filename="../Project.py" line="296" />
+      <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="1409" />
+      <location filename="../Project.py" line="305" />
+      <source>Show Tween Objects</source>
+      <translation>Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1364"/>
-        <source>Show Routes</source>
-        <translation>Routen anzeigen</translation>
+      <location filename="../Project.py" line="306" />
+      <source>Show &amp;Tween Objects</source>
+      <translation>&amp;Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="280"/>
-        <source>Show &amp;Routes</source>
-        <translation>&amp;Routen anzeigen</translation>
+      <location filename="../Project.py" line="309" />
+      <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="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>
+      <location filename="../Project.py" line="312" />
+      <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="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>
+      <location filename="../Project.py" line="325" />
+      <source>Build Distribution</source>
+      <translation>Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1386"/>
-        <source>Show Tween Objects</source>
-        <translation>Tween Objekte anzeigen</translation>
+      <location filename="../Project.py" line="326" />
+      <source>Build &amp;Distribution</source>
+      <translation>&amp;Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="295"/>
-        <source>Show &amp;Tween Objects</source>
-        <translation>&amp;Tween Objekte anzeigen</translation>
+      <location filename="../Project.py" line="329" />
+      <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="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>
+      <location filename="../Project.py" line="331" />
+      <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using "python setup.py sdist".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Distribution erzeugen&lt;/b&gt;&lt;p&gt;Erzeugt Dateien zur Distribution eines Pyramid Projektes mittels "python setup.py sdist".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="344" />
+      <source>Documentation</source>
+      <translation>Dokumentation</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build Distribution</source>
-        <translation>Distribution erzeugen</translation>
+      <location filename="../Project.py" line="345" />
+      <source>D&amp;ocumentation</source>
+      <translation>D&amp;okumentation</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build &amp;Distribution</source>
-        <translation>&amp;Distribution erzeugen</translation>
+      <location filename="../Project.py" line="348" />
+      <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="320"/>
-        <source>Builds a distribution file for the Pyramid project</source>
-        <translation>Erzeugt Dateien zur Distribution eines Pyramid Projektes</translation>
+      <location filename="../Project.py" line="350" />
+      <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="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>
+      <location filename="../Project.py" line="811" />
+      <location filename="../Project.py" line="362" />
+      <source>About Pyramid</source>
+      <translation>Über Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>Documentation</source>
-        <translation>Dokumentation</translation>
+      <location filename="../Project.py" line="363" />
+      <source>About P&amp;yramid</source>
+      <translation>Über P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>D&amp;ocumentation</source>
-        <translation>D&amp;okumentation</translation>
+      <location filename="../Project.py" line="366" />
+      <source>Shows some information about Pyramid</source>
+      <translation>Zeigt einige Informationen über Pyramid an</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="368" />
+      <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="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>
+      <location filename="../Project.py" line="386" />
+      <source>P&amp;yramid</source>
+      <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="786"/>
-        <source>About Pyramid</source>
-        <translation>Über Pyramid</translation>
+      <location filename="../Project.py" line="451" />
+      <source>Open with {0}</source>
+      <translation>Mit {0} öffnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="352"/>
-        <source>About P&amp;yramid</source>
-        <translation>Über P&amp;yramid</translation>
+      <location filename="../Project.py" line="465" />
+      <source>New template...</source>
+      <translation>Neues Template...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="357"/>
-        <source>Shows some information about Pyramid</source>
-        <translation>Zeigt einige Informationen über Pyramid an</translation>
+      <location filename="../Project.py" line="474" />
+      <source>Extract Messages</source>
+      <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="477" />
+      <source>Compile All Catalogs</source>
+      <translation>Alle Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="376"/>
-        <source>P&amp;yramid</source>
-        <translation>P&amp;yramid</translation>
+      <location filename="../Project.py" line="480" />
+      <source>Compile Selected Catalogs</source>
+      <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="451"/>
-        <source>New template...</source>
-        <translation>Neues Template...</translation>
+      <location filename="../Project.py" line="483" />
+      <source>Update All Catalogs</source>
+      <translation>Alle Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="459"/>
-        <source>Extract Messages</source>
-        <translation>Texte extrahieren</translation>
+      <location filename="../Project.py" line="486" />
+      <source>Update Selected Catalogs</source>
+      <translation>Ausgewählte Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
-        <source>Compile All Catalogs</source>
-        <translation>Alle Kataloge übersetzen</translation>
+      <location filename="../Project.py" line="525" />
+      <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="465"/>
-        <source>Compile Selected Catalogs</source>
-        <translation>Ausgewählte Kataloge übersetzen</translation>
+      <location filename="../Project.py" line="564" />
+      <location filename="../Project.py" line="550" />
+      <location filename="../Project.py" line="535" />
+      <source>New Form</source>
+      <translation>Neues Formular</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
-        <source>Update All Catalogs</source>
-        <translation>Alle Kataloge aktualisieren</translation>
+      <location filename="../Project.py" line="551" />
+      <source>The file already exists! Overwrite it?</source>
+      <translation>Die Datei existiert bereits. Überschreiben?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
-        <source>Update Selected Catalogs</source>
-        <translation>Ausgewählte Kataloge aktualisieren</translation>
+      <location filename="../Project.py" line="565" />
+      <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>
     <message>
-        <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>
+      <location filename="../Project.py" line="812" />
+      <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="{1}"&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="{1}"&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="549"/>
-        <source>New Form</source>
-        <translation>Neues Formular</translation>
+      <location filename="../Project.py" line="997" />
+      <source>Select Pyramid Project</source>
+      <translation>Pyramid Projekt auswählen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="534"/>
-        <source>The file already exists! Overwrite it?</source>
-        <translation>Die Datei existiert bereits. Überschreiben?</translation>
+      <location filename="../Project.py" line="998" />
+      <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="967"/>
-        <source>Select Pyramid Project</source>
-        <translation>Pyramid Projekt auswählen</translation>
+      <location filename="../Project.py" line="1036" />
+      <source>None</source>
+      <translation>keines</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1041" />
+      <source>&amp;Current Pyramid Project ({0})</source>
+      <translation>&amp;Aktuelles Pyramid Projekt ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
-        <source>None</source>
-        <translation>keines</translation>
-    </message>
-    <message>
-        <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="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>
+      <location filename="../Project.py" line="1724" />
+      <location filename="../Project.py" line="1694" />
+      <location filename="../Project.py" line="1641" />
+      <location filename="../Project.py" line="1604" />
+      <location filename="../Project.py" line="1567" />
+      <location filename="../Project.py" line="1513" />
+      <location filename="../Project.py" line="1416" />
+      <location filename="../Project.py" line="1394" />
+      <location filename="../Project.py" line="1360" />
+      <location filename="../Project.py" line="1330" />
+      <location filename="../Project.py" line="1315" />
+      <location filename="../Project.py" line="1271" />
+      <location filename="../Project.py" line="1236" />
+      <location filename="../Project.py" line="1199" />
+      <location filename="../Project.py" line="1164" />
+      <location filename="../Project.py" line="1105" />
+      <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="1738"/>
-        <source>Process Generation Error</source>
-        <translation>Fehler bei der Prozessgenerierung</translation>
+      <location filename="../Project.py" line="1773" />
+      <location filename="../Project.py" line="1216" />
+      <location filename="../Project.py" line="1132" />
+      <source>Process Generation Error</source>
+      <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1108"/>
-        <source>The Pyramid server could not be started.</source>
-        <translation>Der Pyramid Server konnte nicht gestartet werden.</translation>
+      <location filename="../Project.py" line="1133" />
+      <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="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>
+      <location filename="../Project.py" line="1181" />
+      <source>Could not start the web-browser for the URL "{0}".</source>
+      <translation>Der Web-Browser konnte nicht für die URL "{0}" gestartet werden.</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1217" />
+      <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="1223"/>
-        <source>Pyramid development environment setup successfully.</source>
-        <translation>Die Pyramid Entwicklungsumgebung wurde erfolgreich eingerichtet.</translation>
+      <location filename="../Project.py" line="1247" />
+      <source>Pyramid development environment setup successfully.</source>
+      <translation>Die Pyramid Entwicklungsumgebung wurde erfolgreich eingerichtet.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1242"/>
-        <source>Build Distribution File</source>
-        <translation>Distributionsdateien erzeugen</translation>
+      <location filename="../Project.py" line="1264" />
+      <source>Build Distribution File</source>
+      <translation>Distributionsdateien erzeugen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1267"/>
-        <source>Python distribution file built successfully.</source>
-        <translation>Python Distributionsdateien erfolgreich erzeugt.</translation>
+      <location filename="../Project.py" line="1291" />
+      <source>Python distribution file built successfully.</source>
+      <translation>Python Distributionsdateien erfolgreich erzeugt.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1340" />
+      <source>Database initialized successfully.</source>
+      <translation>Datenbank erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1315"/>
-        <source>Database initialized successfully.</source>
-        <translation>Datenbank erfolgreich initialisiert.</translation>
+      <location filename="../Project.py" line="1367" />
+      <source>Enter the URL to be matched:</source>
+      <translation>Gib die zu überprüfende URL ein:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1341"/>
-        <source>Enter the URL to be matched:</source>
-        <translation>Gib die zu überprüfende URL ein:</translation>
+      <location filename="../Project.py" line="1506" />
+      <source>Extract messages</source>
+      <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
-        <source>Extract messages</source>
-        <translation>Texte extrahieren</translation>
+      <location filename="../Project.py" line="1525" />
+      <source>No setup.cfg found or no "extract_messages" section found in setup.cfg.</source>
+      <translation>Keine setup.cfg gefunden bzw. keine Sektion "extract_messages" in setup.cfg vorhanden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1517"/>
-        <source>
+      <location filename="../Project.py" line="1532" />
+      <source>No "output_file" option found in setup.cfg.</source>
+      <translation>Keine Option "output_file" in setup.cfg vorhanden.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1546" />
+      <source>
 Messages extracted successfully.</source>
-        <translation>
+      <translation>
 Texte erfolgreich extrahiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1550"/>
-        <source>
+      <location filename="../Project.py" line="1559" />
+      <source>Initializing message catalog for '{0}'</source>
+      <translation>Initialisiere Textkatalog für '{0}'</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1580" />
+      <source>
 Message catalog initialized successfully.</source>
-        <translation>
+      <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1604"/>
-        <source>Compiling message catalogs</source>
-        <translation>Übersetze Textkataloge</translation>
+      <location filename="../Project.py" line="1634" />
+      <location filename="../Project.py" line="1597" />
+      <source>Compiling message catalogs</source>
+      <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1636"/>
-        <source>
+      <location filename="../Project.py" line="1668" />
+      <location filename="../Project.py" line="1615" />
+      <source>
 Message catalogs compiled successfully.</source>
-        <translation>
+      <translation>
 Textkataloge erfolgreich übersetzt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1711"/>
-        <source>No locales detected. Aborting...</source>
-        <translation>Keine Sprachen erkannt. Abbruch...</translation>
+      <location filename="../Project.py" line="1746" />
+      <location filename="../Project.py" line="1663" />
+      <source>No locales detected. Aborting...</source>
+      <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1685"/>
-        <source>Updating message catalogs</source>
-        <translation>Aktualisiere Textkataloge</translation>
+      <location filename="../Project.py" line="1717" />
+      <location filename="../Project.py" line="1687" />
+      <source>Updating message catalogs</source>
+      <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1717"/>
-        <source>
+      <location filename="../Project.py" line="1751" />
+      <location filename="../Project.py" line="1705" />
+      <source>
 Message catalogs updated successfully.</source>
-        <translation>
+      <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <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="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="436"/>
-        <source>Open with {0}</source>
-        <translation>Mit {0} öffnen</translation>
+      <location filename="../Project.py" line="1774" />
+      <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="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="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="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="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>
-</context>
-<context>
+  </context>
+  <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="425"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../../PluginProjectPyramid.py" line="407" />
+      <location filename="../../PluginProjectPyramid.py" line="187" />
+      <location filename="../../PluginProjectPyramid.py" line="71" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>PyramidDialog</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../PyramidDialog.py" line="198" />
+      <source>Process Generation Error</source>
+      <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="29"/>
-        <source>Output</source>
-        <translation>Ausgabe</translation>
+      <location filename="../PyramidDialog.py" line="199" />
+      <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>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Fehler</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Output</source>
+      <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="73"/>
-        <source>Input</source>
-        <translation>Eingabe</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="95"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Drücken, um die Eingabe an den Pyramid Prozess zu senden</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Eingabe</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="98"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Senden</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Drücken, um die Eingabe an den Pyramid Prozess zu senden</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="101"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Senden</translation>
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="108"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Gib die an den Pyramid Prozess zu sendenden Daten ein</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Gib die an den Pyramid Prozess zu sendenden Daten ein</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="115"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Auswählen, um das Eingabefeld in den Kennwortmodus umzuschalten</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Auswählen, um das Eingabefeld in den Kennwortmodus umzuschalten</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="118"/>
-        <source>&amp;Password Mode</source>
-        <translation>&amp;Kennwortmodus</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>&amp;Kennwortmodus</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="121"/>
-        <source>Alt+P</source>
-        <translation>Alt+K</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+K</translation>
     </message>
+  </context>
+  <context>
+    <name>PyramidPage</name>
     <message>
-        <location filename="../PyramidDialog.py" line="167"/>
-        <source>Process Generation Error</source>
-        <translation>Fehler bei der Prozessgenerierung</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Pyramid einstellen&lt;/b&gt;</translation>
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>PyramidPage</name>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Pyramid einstellen&lt;/b&gt;</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command</source>
+      <translation>Konsole</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="43"/>
-        <source>Console Command:</source>
-        <translation>Konsole:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command:</source>
+      <translation>Konsole:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="56"/>
-        <source>Enter the console command</source>
-        <translation>Gib den Befehl für das Konsolenfenster ein</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the console command</source>
+      <translation>Gib den Befehl für das Konsolenfenster ein</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="66"/>
-        <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an &apos;@&apos; character.</source>
-        <translation>&lt;b&gt;Hinweis:&lt;/b&gt; Der Konsolenbefehl für eine Konsole, die verzweigt (d.h. sie wird beendet bevor das Fenster geschlossen wurde), muss mit einem &apos;@&apos;-Zeichen beginnen.</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="98"/>
-        <source>Python 3</source>
-        <translation>Python 3</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an '@' character.</source>
+      <translation>&lt;b&gt;Hinweis:&lt;/b&gt; Der Konsolenbefehl für eine Konsole, die verzweigt (d.h. sie wird beendet bevor das Fenster geschlossen wurde), muss mit einem '@'-Zeichen beginnen.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
-        <source>Pyramid Virtual Environment</source>
-        <translation>Virtuelle Pyramid Umgebung</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Web-Browser</source>
+      <translation>Web-Browser</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select to use an external web-browser</source>
+      <translation>Auswählen, um einen externen Web-Browser zu benutzen</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Use external web-browser</source>
+      <translation>Externen Web-Browser benutzen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
-        <source>Pyramid Python Console:</source>
-        <translation>Pyramid Python Konsole:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Python 3</source>
+      <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
-        <source>Select the Python console type</source>
-        <translation>Wähle den Typ der Python Konsole</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Virtual Environment</source>
+      <translation>Virtuelle Pyramid Umgebung</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Python 2</source>
-        <translation type="obsolete">Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Virtual Environment to be used with Pyramid</source>
+      <translation>Wähle die mit Pyramid zu verwendende virtuelle Umgebung</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Pyramid Documentation</source>
-        <translation>Pyramid Dokumentation</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
-        <source>URL:</source>
-        <translation>URL:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Python Console:</source>
+      <translation>Pyramid Python Konsole:</translation>
     </message>
     <message>
-        <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="64"/>
-        <source>Plain Python</source>
-        <translation>Normales Python</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Python console type</source>
+      <translation>Wähle den Typ der Python Konsole</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
-        <source>IPython</source>
-        <translation>IPython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Documentation</source>
+      <translation>Pyramid Dokumentation</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
-        <source>bpython</source>
-        <translation>bpython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>URL:</source>
+      <translation>URL:</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="202"/>
-        <source>Select Virtual Environment for Python 2</source>
-        <translation type="obsolete">Wähle die virtuelle Umgebung für Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="37"/>
-        <source>Console Command</source>
-        <translation>Konsole</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Translations Editor</source>
+      <translation>Übersetzungseditor</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>Translations Editor</source>
-        <translation>Übersetzungseditor</translation>
-    </message>
-    <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="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="145"/>
-        <source>All Files (*)</source>
-        <translation>Alle Dateien (*)</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the path of the translations editor</source>
+      <translation>Gib den Pfad des Übersetzungseditors ein</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="79"/>
-        <source>Web-Browser</source>
-        <translation>Web-Browser</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="59" />
+      <source>Plain Python</source>
+      <translation>Normales Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="85"/>
-        <source>Select to use an external web-browser</source>
-        <translation>Auswählen, um einen externen Web-Browser zu benutzen</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="60" />
+      <source>IPython</source>
+      <translation>IPython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="88"/>
-        <source>Use external web-browser</source>
-        <translation>Externen Web-Browser benutzen</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="61" />
+      <source>bpython</source>
+      <translation>bpython</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="70" />
+      <source>All Files (*)</source>
+      <translation>Alle Dateien (*)</translation>
+    </message>
+  </context>
+  <context>
+    <name>PyramidRoutesDialog</name>
+    <message>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>PyramidRoutesDialog</name>
-    <message>
-        <location filename="../PyramidRoutesDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Fehler</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Eingabe</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="79"/>
-        <source>Input</source>
-        <translation>Eingabe</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Drücken, um die Eingabe an den Pyramid Prozess zu senden</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="101"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Drücken, um die Eingabe an den Pyramid Prozess zu senden</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Senden</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="104"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Senden</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="107"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Gib die an den Pyramid Prozess zu sendenden Daten ein</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="114"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Gib die an den Pyramid Prozess zu sendenden Daten ein</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Auswählen, um das Eingabefeld in den Kennwortmodus umzuschalten</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="121"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Auswählen, um das Eingabefeld in den Kennwortmodus umzuschalten</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>&amp;Kennwortmodus</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="124"/>
-        <source>&amp;Password Mode</source>
-        <translation>&amp;Kennwortmodus</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+K</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="127"/>
-        <source>Alt+P</source>
-        <translation>Alt+K</translation>
+      <location filename="../PyramidRoutesDialog.py" line="120" />
+      <source>No routes found.</source>
+      <translation>Keine Routen gefunden.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="104"/>
-        <source>No routes found.</source>
-        <translation>Keine Routen gefunden.</translation>
+      <location filename="../PyramidRoutesDialog.py" line="154" />
+      <source>Getting routes...</source>
+      <translation>Ermittle Routen...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="136"/>
-        <source>Getting routes...</source>
-        <translation>Ermittle Routen...</translation>
+      <location filename="../PyramidRoutesDialog.py" line="190" />
+      <source>Process Generation Error</source>
+      <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="166"/>
-        <source>Process Generation Error</source>
-        <translation>Fehler bei der Prozessgenerierung</translation>
+      <location filename="../PyramidRoutesDialog.py" line="191" />
+      <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>
-    <message>
-        <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>
-</context>
+  </context>
 </TS>
Binary file ProjectPyramid/i18n/pyramid_en.qm has changed
--- a/ProjectPyramid/i18n/pyramid_en.ts	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/i18n/pyramid_en.ts	Tue Jun 01 19:37:46 2021 +0200
@@ -1,917 +1,942 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="en_US" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US" sourcelanguage="">
+  <context>
     <name>CreateParametersDialog</name>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="14"/>
-        <source>Create Parameters</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.py" line="55" />
+      <source>The pcreate command did not finish within 30s.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="23"/>
-        <source>Project &amp;Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.py" line="58" />
+      <source>Could not start the pcreate executable.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="33"/>
-        <source>Enter the name of the Pyramid project to create</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CreateParametersDialog.ui" line="40"/>
-        <source>&amp;Scaffold:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.py" line="69" />
+      <source>Process Generation Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="50"/>
-        <source>Select the scaffold to be used</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.py" line="115" />
+      <source>{0} ({1})</source>
+      <comment>scaffold name, explanatory text</comment>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="57"/>
-        <source>Select to overwrite existing files</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Create Parameters</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="60"/>
-        <source>Overwrite existing files</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Project &amp;Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="67"/>
-        <source>Select to simulate the creation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Enter the name of the Pyramid project to create</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="70"/>
-        <source>Simulate Pyramid project creation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>&amp;Scaffold:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="52"/>
-        <source>The pcreate command did not finish within 30s.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select the scaffold to be used</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="55"/>
-        <source>Could not start the pcreate executable.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to overwrite existing files</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="64"/>
-        <source>Process Generation Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Overwrite existing files</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="110"/>
-        <source>{0} ({1})</source>
-        <comment>scaffold name, explanatory text</comment>
-        <translation type="unfinished"></translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to simulate the creation</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+    <message>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Simulate Pyramid project creation</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>DistributionTypeSelectionDialog</name>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="14"/>
-        <source>Distribution Type</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Distribution Type</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="23"/>
-        <source>Select the distribution file formats below:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Select the distribution file formats below:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="30"/>
-        <source>Check the distribution file formats that should be generated</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Check the distribution file formats that should be generated</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
-        <source>The python setup.py command did not finish within 30s.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="59" />
+      <source>The python setup.py command did not finish within 30s.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
-        <source>Could not start the python executable.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="63" />
+      <source>Could not start the python executable.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="74"/>
-        <source>Process Generation Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="78" />
+      <source>Process Generation Error</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>FormSelectionDialog</name>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="14"/>
-        <source>Template Type Selection</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template Type Selection</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="23"/>
-        <source>Template &amp;Type:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template &amp;Type:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="39"/>
-        <source>Select the template type</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Select the template type</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="46"/>
-        <source>Preview:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Preview:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="53"/>
-        <source>Shows the text of the selected template</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Shows the text of the selected template</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="31"/>
-        <source>Standard HTML 5 template</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.py" line="32" />
+      <source>Standard HTML 5 template</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="114"/>
-        <source>Mako template with sections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.py" line="45" />
+      <source>Standard HTML template</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="44"/>
-        <source>Standard HTML template</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.py" line="59" />
+      <source>Chameleon template</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="58"/>
-        <source>Chameleon template</source>
-        <translation type="unfinished"></translation>
+      <location filename="../FormSelectionDialog.py" line="115" />
+      <source>Mako template with sections</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="126"/>
-        <source>Current Pyramid Project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="136" />
+      <source>Current Pyramid Project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="131"/>
-        <source>Selects the current Pyramid project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="140" />
+      <source>Selects the current Pyramid project</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="142" />
+      <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" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="931" />
+      <location filename="../Project.py" line="155" />
+      <source>Create Pyramid Project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="906"/>
-        <source>Create Pyramid Project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="156" />
+      <source>Create Pyramid &amp;Project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="145"/>
-        <source>Create Pyramid &amp;Project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="159" />
+      <source>Creates a new Pyramid project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="150"/>
-        <source>Creates a new Pyramid project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="161" />
+      <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using "pcreate".&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1104" />
+      <location filename="../Project.py" line="173" />
+      <source>Run Server</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1080"/>
-        <source>Run Server</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="174" />
+      <source>Run &amp;Server</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="163"/>
-        <source>Run &amp;Server</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="177" />
+      <source>Starts the Pyramid Web server</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="168"/>
-        <source>Starts the Pyramid Web server</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="179" />
+      <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using "pserve --reload development.ini".&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="188" />
+      <source>Run Server with Logging</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with Logging</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="189" />
+      <source>Run Server with &amp;Logging</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with &amp;Logging</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="192" />
+      <source>Starts the Pyramid Web server with logging</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="183"/>
-        <source>Starts the Pyramid Web server with logging</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="194" />
+      <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using "pserve --log-file=server.log --reload development.ini".&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1180" />
+      <location filename="../Project.py" line="1163" />
+      <location filename="../Project.py" line="203" />
+      <source>Run Web-Browser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1156"/>
-        <source>Run Web-Browser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="204" />
+      <source>Run &amp;Web-Browser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="193"/>
-        <source>Run &amp;Web-Browser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="207" />
+      <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="210" />
+      <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" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1198" />
+      <location filename="../Project.py" line="219" />
+      <source>Start Pyramid Python Console</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1174"/>
-        <source>Start Pyramid Python Console</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="220" />
+      <source>Start Pyramid &amp;Python Console</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="209"/>
-        <source>Start Pyramid &amp;Python Console</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="223" />
+      <source>Starts an interactive Python interpreter</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="225" />
+      <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" />
     </message>
     <message>
-        <location filename="../Project.py" line="214"/>
-        <source>Starts an interactive Python interpreter</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1229" />
+      <location filename="../Project.py" line="237" />
+      <source>Setup Development Environment</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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="1207"/>
-        <source>Setup Development Environment</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="238" />
+      <source>Setup &amp;Development Environment</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="227"/>
-        <source>Setup &amp;Development Environment</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="241" />
+      <source>Setup the Pyramid project in development mode</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="232"/>
-        <source>Setup the Pyramid project in development mode</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="243" />
+      <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using "python setup.py develop".&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1323" />
+      <location filename="../Project.py" line="1314" />
+      <location filename="../Project.py" line="256" />
+      <source>Initialize Database</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1300"/>
-        <source>Initialize Database</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="257" />
+      <source>Initialize &amp;Database</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="246"/>
-        <source>Initialize &amp;Database</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="260" />
+      <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="251"/>
-        <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="263" />
+      <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" />
     </message>
     <message>
-        <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="1341"/>
-        <source>Show Matching Views</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1366" />
+      <location filename="../Project.py" line="1353" />
+      <location filename="../Project.py" line="276" />
+      <source>Show Matching Views</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="266"/>
-        <source>Show Matching &amp;Views</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="277" />
+      <source>Show Matching &amp;Views</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="280" />
+      <source>Show views matching a given URL</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="271"/>
-        <source>Show views matching a given URL</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="282" />
+      <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" />
     </message>
     <message>
-        <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="1364"/>
-        <source>Show Routes</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1387" />
+      <location filename="../Project.py" line="290" />
+      <source>Show Routes</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="280"/>
-        <source>Show &amp;Routes</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="291" />
+      <source>Show &amp;Routes</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="285"/>
-        <source>Show all URL dispatch routes used by a Pyramid application</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="294" />
+      <source>Show all URL dispatch routes used by a Pyramid application</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="296" />
+      <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" />
     </message>
     <message>
-        <location filename="../Project.py" line="1386"/>
-        <source>Show Tween Objects</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1409" />
+      <location filename="../Project.py" line="305" />
+      <source>Show Tween Objects</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="295"/>
-        <source>Show &amp;Tween Objects</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="306" />
+      <source>Show &amp;Tween Objects</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="300"/>
-        <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="309" />
+      <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="312" />
+      <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" />
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build Distribution</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="325" />
+      <source>Build Distribution</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build &amp;Distribution</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="326" />
+      <source>Build &amp;Distribution</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="320"/>
-        <source>Builds a distribution file for the Pyramid project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="329" />
+      <source>Builds a distribution file for the Pyramid project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="331" />
+      <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using "python setup.py sdist".&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>Documentation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="344" />
+      <source>Documentation</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>D&amp;ocumentation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="345" />
+      <source>D&amp;ocumentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="348" />
+      <source>Shows the help viewer with the Pyramid documentation</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="339"/>
-        <source>Shows the help viewer with the Pyramid documentation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="350" />
+      <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" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="811" />
+      <location filename="../Project.py" line="362" />
+      <source>About Pyramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="786"/>
-        <source>About Pyramid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="352"/>
-        <source>About P&amp;yramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="363" />
+      <source>About P&amp;yramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="357"/>
-        <source>Shows some information about Pyramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="366" />
+      <source>Shows some information about Pyramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="368" />
+      <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="376"/>
-        <source>P&amp;yramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="386" />
+      <source>P&amp;yramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="451"/>
-        <source>New template...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="451" />
+      <source>Open with {0}</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="459"/>
-        <source>Extract Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="465" />
+      <source>New template...</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
-        <source>Compile All Catalogs</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="474" />
+      <source>Extract Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="465"/>
-        <source>Compile Selected Catalogs</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="477" />
+      <source>Compile All Catalogs</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
-        <source>Update All Catalogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="471"/>
-        <source>Update Selected Catalogs</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="480" />
+      <source>Compile Selected Catalogs</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="483" />
+      <source>Update All Catalogs</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="549"/>
-        <source>New Form</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="486" />
+      <source>Update Selected Catalogs</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="534"/>
-        <source>The file already exists! Overwrite it?</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="525" />
+      <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" />
     </message>
     <message>
-        <location filename="../Project.py" line="967"/>
-        <source>Select Pyramid Project</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="564" />
+      <location filename="../Project.py" line="550" />
+      <location filename="../Project.py" line="535" />
+      <source>New Form</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="967"/>
-        <source>Select the Pyramid project to work with.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="551" />
+      <source>The file already exists! Overwrite it?</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
-        <source>None</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="565" />
+      <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" />
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
-        <source>&amp;Current Pyramid Project ({0})</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="812" />
+      <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="{1}"&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1689"/>
-        <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="997" />
+      <source>Select Pyramid Project</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1738"/>
-        <source>Process Generation Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="998" />
+      <source>Select the Pyramid project to work with.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1108"/>
-        <source>The Pyramid server could not be started.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1036" />
+      <source>None</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1156"/>
-        <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1041" />
+      <source>&amp;Current Pyramid Project ({0})</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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="1223"/>
-        <source>Pyramid development environment setup successfully.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="1242"/>
-        <source>Build Distribution File</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1724" />
+      <location filename="../Project.py" line="1694" />
+      <location filename="../Project.py" line="1641" />
+      <location filename="../Project.py" line="1604" />
+      <location filename="../Project.py" line="1567" />
+      <location filename="../Project.py" line="1513" />
+      <location filename="../Project.py" line="1416" />
+      <location filename="../Project.py" line="1394" />
+      <location filename="../Project.py" line="1360" />
+      <location filename="../Project.py" line="1330" />
+      <location filename="../Project.py" line="1315" />
+      <location filename="../Project.py" line="1271" />
+      <location filename="../Project.py" line="1236" />
+      <location filename="../Project.py" line="1199" />
+      <location filename="../Project.py" line="1164" />
+      <location filename="../Project.py" line="1105" />
+      <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1267"/>
-        <source>Python distribution file built successfully.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1773" />
+      <location filename="../Project.py" line="1216" />
+      <location filename="../Project.py" line="1132" />
+      <source>Process Generation Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1315"/>
-        <source>Database initialized successfully.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="1341"/>
-        <source>Enter the URL to be matched:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1133" />
+      <source>The Pyramid server could not be started.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
-        <source>Extract messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1181" />
+      <source>Could not start the web-browser for the URL "{0}".</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1517"/>
-        <source>
-Messages extracted successfully.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1217" />
+      <source>The Pyramid Shell process could not be started.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1550"/>
-        <source>
-Message catalog initialized successfully.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1247" />
+      <source>Pyramid development environment setup successfully.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="1264" />
+      <source>Build Distribution File</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1604"/>
-        <source>Compiling message catalogs</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1291" />
+      <source>Python distribution file built successfully.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1636"/>
-        <source>
-Message catalogs compiled successfully.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1340" />
+      <source>Database initialized successfully.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1711"/>
-        <source>No locales detected. Aborting...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1367" />
+      <source>Enter the URL to be matched:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1685"/>
-        <source>Updating message catalogs</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1506" />
+      <source>Extract messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1717"/>
-        <source>
-Message catalogs updated successfully.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1525" />
+      <source>No setup.cfg found or no "extract_messages" section found in setup.cfg.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1531"/>
-        <source>Initializing message catalog for &apos;{0}&apos;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1532" />
+      <source>No "output_file" option found in setup.cfg.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1546" />
+      <source>
+Messages extracted successfully.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="1559" />
+      <source>Initializing message catalog for '{0}'</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="436"/>
-        <source>Open with {0}</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1580" />
+      <source>
+Message catalog initialized successfully.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../Project.py" line="1738"/>
-        <source>The translations editor process ({0}) could not be started.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1634" />
+      <location filename="../Project.py" line="1597" />
+      <source>Compiling message catalogs</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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="1500"/>
-        <source>No &quot;output_file&quot; option found in setup.cfg.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1668" />
+      <location filename="../Project.py" line="1615" />
+      <source>
+Message catalogs compiled successfully.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>ProjectPyramidPlugin</name>
-    <message>
-        <location filename="../../PluginProjectPyramid.py" line="425"/>
-        <source>Pyramid</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>PyramidDialog</name>
-    <message>
-        <location filename="../PyramidDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1746" />
+      <location filename="../Project.py" line="1663" />
+      <source>No locales detected. Aborting...</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="29"/>
-        <source>Output</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1717" />
+      <location filename="../Project.py" line="1687" />
+      <source>Updating message catalogs</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Project.py" line="1751" />
+      <location filename="../Project.py" line="1705" />
+      <source>
+Message catalogs updated successfully.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation type="unfinished"></translation>
+      <location filename="../Project.py" line="1774" />
+      <source>The translations editor process ({0}) could not be started.</source>
+      <translation type="unfinished" />
     </message>
+  </context>
+  <context>
+    <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="73"/>
-        <source>Input</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginProjectPyramid.py" line="407" />
+      <location filename="../../PluginProjectPyramid.py" line="187" />
+      <location filename="../../PluginProjectPyramid.py" line="71" />
+      <source>Pyramid</source>
+      <translation type="unfinished" />
     </message>
+  </context>
+  <context>
+    <name>PyramidDialog</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="95"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.py" line="198" />
+      <source>Process Generation Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="98"/>
-        <source>&amp;Send</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.py" line="199" />
+      <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="101"/>
-        <source>Alt+S</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="108"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Output</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="115"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="118"/>
-        <source>&amp;Password Mode</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Input</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="121"/>
-        <source>Alt+P</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="167"/>
-        <source>Process Generation Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PyramidPage</name>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="43"/>
-        <source>Console Command:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="56"/>
-        <source>Enter the console command</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="66"/>
-        <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an &apos;@&apos; character.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="98"/>
-        <source>Python 3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
-        <source>Pyramid Virtual Environment</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the console command</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
-        <source>Select the virtual environment directory via a selection dialog</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an '@' character.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
-        <source>Pyramid Python Console:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Web-Browser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
-        <source>Select the Python console type</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select to use an external web-browser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Pyramid Documentation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Use external web-browser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
-        <source>URL:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Python 3</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="201"/>
-        <source>Enter the URL of the Pyramid documentation</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Virtual Environment</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
-        <source>Plain Python</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Virtual Environment to be used with Pyramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
-        <source>IPython</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Python Console:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
-        <source>bpython</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Python console type</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
-        <source>Select Virtual Environment for Python 3</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Documentation</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
-        <source>Console Command</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>URL:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>Translations Editor</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the URL of the Pyramid documentation</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Press to reset the URL to the default URL</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="243"/>
-        <source>Select the translations editor via a file selection dialog</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Translations Editor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the path of an editor to use to do the translations. Leave empty to disable this feature.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="79"/>
-        <source>Web-Browser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the path of the translations editor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="85"/>
-        <source>Select to use an external web-browser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="59" />
+      <source>Plain Python</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="88"/>
-        <source>Use external web-browser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="60" />
+      <source>IPython</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
-        <source>Press to reset the URL to the default URL</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="61" />
+      <source>bpython</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
-        <source>Select the Virtual Environment to be used with Pyramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="70" />
+      <source>All Files (*)</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>PyramidRoutesDialog</name>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="79"/>
-        <source>Input</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Input</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="101"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="104"/>
-        <source>&amp;Send</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="107"/>
-        <source>Alt+S</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="114"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="121"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="124"/>
-        <source>&amp;Password Mode</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="127"/>
-        <source>Alt+P</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="104"/>
-        <source>No routes found.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.py" line="120" />
+      <source>No routes found.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="136"/>
-        <source>Getting routes...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.py" line="154" />
+      <source>Getting routes...</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="166"/>
-        <source>Process Generation Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../PyramidRoutesDialog.py" line="190" />
+      <source>Process Generation Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <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>
+      <location filename="../PyramidRoutesDialog.py" line="191" />
+      <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
+      <translation type="unfinished" />
     </message>
-</context>
+  </context>
 </TS>
--- a/ProjectPyramid/i18n/pyramid_es.ts	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/i18n/pyramid_es.ts	Tue Jun 01 19:37:46 2021 +0200
@@ -1,928 +1,943 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="es_ES" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_ES" sourcelanguage="">
+  <context>
     <name>CreateParametersDialog</name>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="14"/>
-        <source>Create Parameters</source>
-        <translation>Crear Parámetros</translation>
+      <location filename="../CreateParametersDialog.py" line="55" />
+      <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.ui" line="23"/>
-        <source>Project &amp;Name:</source>
-        <translation>&amp;Nombre del Proyecto:</translation>
+      <location filename="../CreateParametersDialog.py" line="58" />
+      <source>Could not start the pcreate executable.</source>
+      <translation>No se ha podido iniciar el ejecutable de pcreate.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="33"/>
-        <source>Enter the name of the Pyramid project to create</source>
-        <translation>Introducir el nombre del proyecto Piramid a crear</translation>
-    </message>
-    <message>
-        <location filename="../CreateParametersDialog.ui" line="40"/>
-        <source>&amp;Scaffold:</source>
-        <translation>&amp;Scaffold:</translation>
+      <location filename="../CreateParametersDialog.py" line="69" />
+      <source>Process Generation Error</source>
+      <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="50"/>
-        <source>Select the scaffold to be used</source>
-        <translation>Seleccionar el scaffold a utilizar</translation>
+      <location filename="../CreateParametersDialog.py" line="115" />
+      <source>{0} ({1})</source>
+      <comment>scaffold name, explanatory text</comment>
+      <translation>{0} ({1})</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="57"/>
-        <source>Select to overwrite existing files</source>
-        <translation>Seleccionar para sobreescribir archivos existentes</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Create Parameters</source>
+      <translation>Crear Parámetros</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="60"/>
-        <source>Overwrite existing files</source>
-        <translation>Sobreescribir archivos existentes</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Project &amp;Name:</source>
+      <translation>&amp;Nombre del Proyecto:</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="67"/>
-        <source>Select to simulate the creation</source>
-        <translation>Seleccionar para simular la creación</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Enter the name of the Pyramid project to create</source>
+      <translation>Introducir el nombre del proyecto Piramid a crear</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="70"/>
-        <source>Simulate Pyramid project creation</source>
-        <translation>Simular creación de proyecto Piramid</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>&amp;Scaffold:</source>
+      <translation>&amp;Scaffold:</translation>
     </message>
     <message>
-        <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>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select the scaffold to be used</source>
+      <translation>Seleccionar el scaffold a utilizar</translation>
     </message>
     <message>
-        <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>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to overwrite existing files</source>
+      <translation>Seleccionar para sobreescribir archivos existentes</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="64"/>
-        <source>Process Generation Error</source>
-        <translation>Error de Generación de Proceso</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Overwrite existing files</source>
+      <translation>Sobreescribir archivos existentes</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="110"/>
-        <source>{0} ({1})</source>
-        <comment>scaffold name, explanatory text</comment>
-        <translation>{0} ({1})</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to simulate the creation</source>
+      <translation>Seleccionar para simular la creación</translation>
     </message>
-</context>
-<context>
+    <message>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Simulate Pyramid project creation</source>
+      <translation>Simular creación de proyecto Piramid</translation>
+    </message>
+  </context>
+  <context>
     <name>DistributionTypeSelectionDialog</name>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="14"/>
-        <source>Distribution Type</source>
-        <translation>Tipo de Distribución</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Distribution Type</source>
+      <translation>Tipo de Distribución</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="23"/>
-        <source>Select the distribution file formats below:</source>
-        <translation>Seleccionar los formatos de archivo de distribución debajo:</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Select the distribution file formats below:</source>
+      <translation>Seleccionar los formatos de archivo de distribución debajo:</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="30"/>
-        <source>Check the distribution file formats that should be generated</source>
-        <translation>Comprobar los formatos de archivo de distribución que deberían ser generados</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Check the distribution file formats that should be generated</source>
+      <translation>Comprobar los formatos de archivo de distribución que deberían ser generados</translation>
     </message>
     <message>
-        <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>
+      <location filename="../DistributionTypeSelectionDialog.py" line="59" />
+      <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="61"/>
-        <source>Could not start the python executable.</source>
-        <translation>No se ha podido iniciar el ejecutable de python.</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="63" />
+      <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="74"/>
-        <source>Process Generation Error</source>
-        <translation>Error de Generación de Proceso</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="78" />
+      <source>Process Generation Error</source>
+      <translation>Error de Generación de Proceso</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>FormSelectionDialog</name>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="14"/>
-        <source>Template Type Selection</source>
-        <translation>Selección de Tipo de Plantilla</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template Type Selection</source>
+      <translation>Selección de Tipo de Plantilla</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="23"/>
-        <source>Template &amp;Type:</source>
-        <translation>&amp;Tipo de Plantilla:</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template &amp;Type:</source>
+      <translation>&amp;Tipo de Plantilla:</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="39"/>
-        <source>Select the template type</source>
-        <translation>Seleccionar el tipo de plantilla</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Select the template type</source>
+      <translation>Seleccionar el tipo de plantilla</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="46"/>
-        <source>Preview:</source>
-        <translation>Vista previa:</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Preview:</source>
+      <translation>Vista previa:</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="53"/>
-        <source>Shows the text of the selected template</source>
-        <translation>Muestra el texto de la plantilla seleccionada</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Shows the text of the selected template</source>
+      <translation>Muestra el texto de la plantilla seleccionada</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="31"/>
-        <source>Standard HTML 5 template</source>
-        <translation>Plantilla Estándar HTML 5</translation>
+      <location filename="../FormSelectionDialog.py" line="32" />
+      <source>Standard HTML 5 template</source>
+      <translation>Plantilla Estándar HTML 5</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="114"/>
-        <source>Mako template with sections</source>
-        <translation>Plantilla Mako con secciones</translation>
+      <location filename="../FormSelectionDialog.py" line="45" />
+      <source>Standard HTML template</source>
+      <translation>Plantilla Estándar HTML</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="44"/>
-        <source>Standard HTML template</source>
-        <translation>Plantilla Estándar HTML</translation>
+      <location filename="../FormSelectionDialog.py" line="59" />
+      <source>Chameleon template</source>
+      <translation>Plantilla Chameleon</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="58"/>
-        <source>Chameleon template</source>
-        <translation>Plantilla Chameleon</translation>
+      <location filename="../FormSelectionDialog.py" line="115" />
+      <source>Mako template with sections</source>
+      <translation>Plantilla Mako con secciones</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="126"/>
-        <source>Current Pyramid Project</source>
-        <translation>Proyecto Pyramid Actual</translation>
+      <location filename="../Project.py" line="136" />
+      <source>Current Pyramid Project</source>
+      <translation>Proyecto Pyramid Actual</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="131"/>
-        <source>Selects the current Pyramid project</source>
-        <translation>Selecciona el proyecto Piramid actual</translation>
+      <location filename="../Project.py" line="140" />
+      <source>Selects the current Pyramid project</source>
+      <translation>Selecciona el proyecto Piramid actual</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="142" />
+      <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="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>
+      <location filename="../Project.py" line="931" />
+      <location filename="../Project.py" line="155" />
+      <source>Create Pyramid Project</source>
+      <translation>Crear Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="906"/>
-        <source>Create Pyramid Project</source>
-        <translation>Crear Proyecto Pyramid</translation>
+      <location filename="../Project.py" line="156" />
+      <source>Create Pyramid &amp;Project</source>
+      <translation>Crear &amp;Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="145"/>
-        <source>Create Pyramid &amp;Project</source>
-        <translation>Crear &amp;Proyecto Pyramid</translation>
+      <location filename="../Project.py" line="159" />
+      <source>Creates a new Pyramid project</source>
+      <translation>Crea un nuevo proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="150"/>
-        <source>Creates a new Pyramid project</source>
-        <translation>Crea un nuevo proyecto Pyramid</translation>
+      <location filename="../Project.py" line="161" />
+      <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using "pcreate".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Crear Proyecto Pyramid &lt;/b&gt;&lt;p&gt;Crea un nuevo proyecto Pyramid usando "pcreate".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1104" />
+      <location filename="../Project.py" line="173" />
+      <source>Run Server</source>
+      <translation>Lanzar Servidor</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1080"/>
-        <source>Run Server</source>
-        <translation>Lanzar Servidor</translation>
+      <location filename="../Project.py" line="174" />
+      <source>Run &amp;Server</source>
+      <translation>Lanzar &amp;Servidor</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="163"/>
-        <source>Run &amp;Server</source>
-        <translation>Lanzar &amp;Servidor</translation>
+      <location filename="../Project.py" line="177" />
+      <source>Starts the Pyramid Web server</source>
+      <translation>Inicia el servidor Web de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="168"/>
-        <source>Starts the Pyramid Web server</source>
-        <translation>Inicia el servidor Web de Pyramid</translation>
+      <location filename="../Project.py" line="179" />
+      <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using "pserve --reload development.ini".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Lanzar Servidor&lt;/b&gt;&lt;p&gt;Inicia el servidor Web de Pyramid usando "pserve --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="188" />
+      <source>Run Server with Logging</source>
+      <translation>Lanzar Servidor con Log</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with Logging</source>
-        <translation>Lanzar Servidor con Log</translation>
+      <location filename="../Project.py" line="189" />
+      <source>Run Server with &amp;Logging</source>
+      <translation>Lanzar Servidor con &amp;Log</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with &amp;Logging</source>
-        <translation>Lanzar Servidor con &amp;Log</translation>
+      <location filename="../Project.py" line="192" />
+      <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="183"/>
-        <source>Starts the Pyramid Web server with logging</source>
-        <translation>Inicia el servidor Web de Pyramid con log</translation>
+      <location filename="../Project.py" line="194" />
+      <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using "pserve --log-file=server.log --reload development.ini".&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 "pserve --log-file=server.log --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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="1156"/>
-        <source>Run Web-Browser</source>
-        <translation>Lanzar Navegador Web</translation>
+      <location filename="../Project.py" line="1180" />
+      <location filename="../Project.py" line="1163" />
+      <location filename="../Project.py" line="203" />
+      <source>Run Web-Browser</source>
+      <translation>Lanzar Navegador Web</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="193"/>
-        <source>Run &amp;Web-Browser</source>
-        <translation>Lanzar Navegador &amp;Web</translation>
+      <location filename="../Project.py" line="204" />
+      <source>Run &amp;Web-Browser</source>
+      <translation>Lanzar Navegador &amp;Web</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="207" />
+      <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="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>
+      <location filename="../Project.py" line="210" />
+      <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="1174"/>
-        <source>Start Pyramid Python Console</source>
-        <translation>Iniciar Consola Python de Pyramid</translation>
+      <location filename="../Project.py" line="1198" />
+      <location filename="../Project.py" line="219" />
+      <source>Start Pyramid Python Console</source>
+      <translation>Iniciar Consola Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="209"/>
-        <source>Start Pyramid &amp;Python Console</source>
-        <translation>Iniciar Consola &amp;Python de Pyramid</translation>
+      <location filename="../Project.py" line="220" />
+      <source>Start Pyramid &amp;Python Console</source>
+      <translation>Iniciar Consola &amp;Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="214"/>
-        <source>Starts an interactive Python interpreter</source>
-        <translation>Inicia un intérprete interactivo de Python</translation>
+      <location filename="../Project.py" line="223" />
+      <source>Starts an interactive Python interpreter</source>
+      <translation>Inicia un intérprete interactivo de Python</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="225" />
+      <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="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>
+      <location filename="../Project.py" line="1229" />
+      <location filename="../Project.py" line="237" />
+      <source>Setup Development Environment</source>
+      <translation>Configurar Entorno de Desarrollo</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1207"/>
-        <source>Setup Development Environment</source>
-        <translation>Configurar Entorno de Desarrollo</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="227"/>
-        <source>Setup &amp;Development Environment</source>
-        <translation>Configurar Entorno de &amp;Desarrollo</translation>
+      <location filename="../Project.py" line="238" />
+      <source>Setup &amp;Development Environment</source>
+      <translation>Configurar Entorno de &amp;Desarrollo</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="241" />
+      <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="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>
+      <location filename="../Project.py" line="243" />
+      <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using "python setup.py develop".&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 "python setup.py develop".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1300"/>
-        <source>Initialize Database</source>
-        <translation>Inicializar Base de Datos</translation>
+      <location filename="../Project.py" line="1323" />
+      <location filename="../Project.py" line="1314" />
+      <location filename="../Project.py" line="256" />
+      <source>Initialize Database</source>
+      <translation>Inicializar Base de Datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="246"/>
-        <source>Initialize &amp;Database</source>
-        <translation>Inicializar Base de &amp;Datos</translation>
+      <location filename="../Project.py" line="257" />
+      <source>Initialize &amp;Database</source>
+      <translation>Inicializar Base de &amp;Datos</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="260" />
+      <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="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>
+      <location filename="../Project.py" line="263" />
+      <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="1341"/>
-        <source>Show Matching Views</source>
-        <translation>Mostrar Vistas Concordantes</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="266"/>
-        <source>Show Matching &amp;Views</source>
-        <translation>Mostrar &amp;Vistas Concordantes</translation>
+      <location filename="../Project.py" line="1366" />
+      <location filename="../Project.py" line="1353" />
+      <location filename="../Project.py" line="276" />
+      <source>Show Matching Views</source>
+      <translation>Mostrar Vistas Concordantes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="271"/>
-        <source>Show views matching a given URL</source>
-        <translation>Mostrar vistas que concuerdan con una URL dada</translation>
+      <location filename="../Project.py" line="277" />
+      <source>Show Matching &amp;Views</source>
+      <translation>Mostrar &amp;Vistas Concordantes</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="280" />
+      <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="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>
+      <location filename="../Project.py" line="282" />
+      <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="1364"/>
-        <source>Show Routes</source>
-        <translation>Mostrar Rutas</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="280"/>
-        <source>Show &amp;Routes</source>
-        <translation>Mostrar &amp;Rutas</translation>
+      <location filename="../Project.py" line="1387" />
+      <location filename="../Project.py" line="290" />
+      <source>Show Routes</source>
+      <translation>Mostrar Rutas</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="291" />
+      <source>Show &amp;Routes</source>
+      <translation>Mostrar &amp;Rutas</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="294" />
+      <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="1386"/>
-        <source>Show Tween Objects</source>
-        <translation>Mostrar Objetos Gemelos</translation>
+      <location filename="../Project.py" line="296" />
+      <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="295"/>
-        <source>Show &amp;Tween Objects</source>
-        <translation>Mos&amp;trar Objetos Gemelos</translation>
+      <location filename="../Project.py" line="1409" />
+      <location filename="../Project.py" line="305" />
+      <source>Show Tween Objects</source>
+      <translation>Mostrar Objetos Gemelos</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="306" />
+      <source>Show &amp;Tween Objects</source>
+      <translation>Mos&amp;trar Objetos Gemelos</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="309" />
+      <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="315"/>
-        <source>Build Distribution</source>
-        <translation>Construir Distribución</translation>
+      <location filename="../Project.py" line="312" />
+      <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="315"/>
-        <source>Build &amp;Distribution</source>
-        <translation>Construir &amp;Distribución</translation>
+      <location filename="../Project.py" line="325" />
+      <source>Build Distribution</source>
+      <translation>Construir Distribución</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="326" />
+      <source>Build &amp;Distribution</source>
+      <translation>Construir &amp;Distribución</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="329" />
+      <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="334"/>
-        <source>Documentation</source>
-        <translation>Documentación</translation>
+      <location filename="../Project.py" line="331" />
+      <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using "python setup.py sdist".&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 "python setup.py sdist".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>D&amp;ocumentation</source>
-        <translation>D&amp;ocumentación</translation>
+      <location filename="../Project.py" line="344" />
+      <source>Documentation</source>
+      <translation>Documentación</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="345" />
+      <source>D&amp;ocumentation</source>
+      <translation>D&amp;ocumentación</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="348" />
+      <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="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>
+      <location filename="../Project.py" line="350" />
+      <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="786"/>
-        <source>About Pyramid</source>
-        <translation>Acerca de Pyramid</translation>
+      <location filename="../Project.py" line="811" />
+      <location filename="../Project.py" line="362" />
+      <source>About Pyramid</source>
+      <translation>Acerca de Pyramid</translation>
     </message>
     <message>
-        <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="357"/>
-        <source>Shows some information about Pyramid</source>
-        <translation>Muestra información sobre Pyramid</translation>
+      <location filename="../Project.py" line="363" />
+      <source>About P&amp;yramid</source>
+      <translation>Acerca de P&amp;yramid</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="366" />
+      <source>Shows some information about Pyramid</source>
+      <translation>Muestra información sobre Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="376"/>
-        <source>P&amp;yramid</source>
-        <translation>P&amp;yramid</translation>
+      <location filename="../Project.py" line="368" />
+      <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="451"/>
-        <source>New template...</source>
-        <translation>Nueva Plantilla...</translation>
+      <location filename="../Project.py" line="386" />
+      <source>P&amp;yramid</source>
+      <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="459"/>
-        <source>Extract Messages</source>
-        <translation>Extraer Mensajes</translation>
+      <location filename="../Project.py" line="451" />
+      <source>Open with {0}</source>
+      <translation>Abrir con {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
-        <source>Compile All Catalogs</source>
-        <translation>Compilar Todos los Catálogos</translation>
+      <location filename="../Project.py" line="465" />
+      <source>New template...</source>
+      <translation>Nueva Plantilla...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="465"/>
-        <source>Compile Selected Catalogs</source>
-        <translation>Compilar Catálogos Seleccionados</translation>
+      <location filename="../Project.py" line="474" />
+      <source>Extract Messages</source>
+      <translation>Extraer Mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
-        <source>Update All Catalogs</source>
-        <translation>Actualizar Todos los Catálogos</translation>
+      <location filename="../Project.py" line="477" />
+      <source>Compile All Catalogs</source>
+      <translation>Compilar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
-        <source>Update Selected Catalogs</source>
-        <translation>Actualizar Catálogos Seleccionados</translation>
-    </message>
-    <message>
-        <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>
+      <location filename="../Project.py" line="480" />
+      <source>Compile Selected Catalogs</source>
+      <translation>Compilar Catálogos Seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="549"/>
-        <source>New Form</source>
-        <translation>Nuevo Formulario</translation>
+      <location filename="../Project.py" line="483" />
+      <source>Update All Catalogs</source>
+      <translation>Actualizar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="534"/>
-        <source>The file already exists! Overwrite it?</source>
-        <translation>¡El archivo ya existe!¿Sobreescribirlo?</translation>
+      <location filename="../Project.py" line="486" />
+      <source>Update Selected Catalogs</source>
+      <translation>Actualizar Catálogos Seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="967"/>
-        <source>Select Pyramid Project</source>
-        <translation>Seleccionar Proyecto Pyramid</translation>
+      <location filename="../Project.py" line="525" />
+      <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="967"/>
-        <source>Select the Pyramid project to work with.</source>
-        <translation>Seleccionar el proyecto Pyramid con el que trabajar.</translation>
+      <location filename="../Project.py" line="564" />
+      <location filename="../Project.py" line="550" />
+      <location filename="../Project.py" line="535" />
+      <source>New Form</source>
+      <translation>Nuevo Formulario</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
-        <source>None</source>
-        <translation>Ninguno</translation>
+      <location filename="../Project.py" line="551" />
+      <source>The file already exists! Overwrite it?</source>
+      <translation>¡El archivo ya existe!¿Sobreescribirlo?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
-        <source>&amp;Current Pyramid Project ({0})</source>
-        <translation>Proyecto Pyramid A&amp;ctual ({0})</translation>
+      <location filename="../Project.py" line="565" />
+      <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>
     <message>
-        <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>
+      <location filename="../Project.py" line="812" />
+      <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="{1}"&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="{1}"&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="1738"/>
-        <source>Process Generation Error</source>
-        <translation>Error de Generación de Proceso</translation>
+      <location filename="../Project.py" line="997" />
+      <source>Select Pyramid Project</source>
+      <translation>Seleccionar Proyecto Pyramid</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="998" />
+      <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="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>
+      <location filename="../Project.py" line="1036" />
+      <source>None</source>
+      <translation>Ninguno</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1041" />
+      <source>&amp;Current Pyramid Project ({0})</source>
+      <translation>Proyecto Pyramid A&amp;ctual ({0})</translation>
     </message>
     <message>
-        <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="1242"/>
-        <source>Build Distribution File</source>
-        <translation>Construir Archivo de Distribución</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="1267"/>
-        <source>Python distribution file built successfully.</source>
-        <translation>Archivo de distribución Python construido con éxito.</translation>
+      <location filename="../Project.py" line="1724" />
+      <location filename="../Project.py" line="1694" />
+      <location filename="../Project.py" line="1641" />
+      <location filename="../Project.py" line="1604" />
+      <location filename="../Project.py" line="1567" />
+      <location filename="../Project.py" line="1513" />
+      <location filename="../Project.py" line="1416" />
+      <location filename="../Project.py" line="1394" />
+      <location filename="../Project.py" line="1360" />
+      <location filename="../Project.py" line="1330" />
+      <location filename="../Project.py" line="1315" />
+      <location filename="../Project.py" line="1271" />
+      <location filename="../Project.py" line="1236" />
+      <location filename="../Project.py" line="1199" />
+      <location filename="../Project.py" line="1164" />
+      <location filename="../Project.py" line="1105" />
+      <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="1315"/>
-        <source>Database initialized successfully.</source>
-        <translation>Base de Datos inicializada con éxito.</translation>
+      <location filename="../Project.py" line="1773" />
+      <location filename="../Project.py" line="1216" />
+      <location filename="../Project.py" line="1132" />
+      <source>Process Generation Error</source>
+      <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <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="1477"/>
-        <source>Extract messages</source>
-        <translation>Extraer mensajes</translation>
+      <location filename="../Project.py" line="1133" />
+      <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="1517"/>
-        <source>
-Messages extracted successfully.</source>
-        <translation>Mensajes extraídos con éxito.</translation>
+      <location filename="../Project.py" line="1181" />
+      <source>Could not start the web-browser for the URL "{0}".</source>
+      <translation>No se ha podido inicialr el navegador web para la URL "{0}".</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1550"/>
-        <source>
-Message catalog initialized successfully.</source>
-        <translation>Catálogo de Mensajes inicializado con éxito.</translation>
+      <location filename="../Project.py" line="1217" />
+      <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="1604"/>
-        <source>Compiling message catalogs</source>
-        <translation>Compilando catálogos de mensajes</translation>
+      <location filename="../Project.py" line="1247" />
+      <source>Pyramid development environment setup successfully.</source>
+      <translation>Entorno de desarrollo de Pyramid configurado con éxito.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1264" />
+      <source>Build Distribution File</source>
+      <translation>Construir Archivo de Distribución</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1636"/>
-        <source>
-Message catalogs compiled successfully.</source>
-        <translation>Catálogo de Mensajes compilado con éxito.</translation>
+      <location filename="../Project.py" line="1291" />
+      <source>Python distribution file built successfully.</source>
+      <translation>Archivo de distribución Python construido con éxito.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1340" />
+      <source>Database initialized successfully.</source>
+      <translation>Base de Datos inicializada con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1711"/>
-        <source>No locales detected. Aborting...</source>
-        <translation>No se han detectado traducciones. Abortando...</translation>
+      <location filename="../Project.py" line="1367" />
+      <source>Enter the URL to be matched:</source>
+      <translation>Introducir la URL a ser concordada:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1685"/>
-        <source>Updating message catalogs</source>
-        <translation>Actualizando catálogos de mensajes</translation>
+      <location filename="../Project.py" line="1506" />
+      <source>Extract messages</source>
+      <translation>Extraer mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1717"/>
-        <source>
-Message catalogs updated successfully.</source>
-        <translation>Catálogo de Mensajes actualizado con éxito.</translation>
+      <location filename="../Project.py" line="1525" />
+      <source>No setup.cfg found or no "extract_messages" section found in setup.cfg.</source>
+      <translation>No se ha encontrado setup.cfg o no se ha encontrado la sección 'extract_messages' de setup.cfg.</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1532" />
+      <source>No "output_file" option found in setup.cfg.</source>
+      <translation>No se ha encontrado opción "output_file" en setup.cfg.</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1546" />
+      <source>
+Messages extracted successfully.</source>
+      <translation>Mensajes extraídos con éxito.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1559" />
+      <source>Initializing message catalog for '{0}'</source>
+      <translation>Inicializando catálogo de mensajes para '{0}'</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="436"/>
-        <source>Open with {0}</source>
-        <translation>Abrir con {0}</translation>
+      <location filename="../Project.py" line="1580" />
+      <source>
+Message catalog initialized successfully.</source>
+      <translation>Catálogo de Mensajes inicializado con éxito.</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1634" />
+      <location filename="../Project.py" line="1597" />
+      <source>Compiling message catalogs</source>
+      <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <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="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>
+      <location filename="../Project.py" line="1668" />
+      <location filename="../Project.py" line="1615" />
+      <source>
+Message catalogs compiled successfully.</source>
+      <translation>Catálogo de Mensajes compilado con éxito.</translation>
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>ProjectPyramidPlugin</name>
-    <message>
-        <location filename="../../PluginProjectPyramid.py" line="425"/>
-        <source>Pyramid</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>PyramidDialog</name>
-    <message>
-        <location filename="../PyramidDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../Project.py" line="1746" />
+      <location filename="../Project.py" line="1663" />
+      <source>No locales detected. Aborting...</source>
+      <translation>No se han detectado traducciones. Abortando...</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="29"/>
-        <source>Output</source>
-        <translation>Salida</translation>
+      <location filename="../Project.py" line="1717" />
+      <location filename="../Project.py" line="1687" />
+      <source>Updating message catalogs</source>
+      <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Errores</translation>
+      <location filename="../Project.py" line="1751" />
+      <location filename="../Project.py" line="1705" />
+      <source>
+Message catalogs updated successfully.</source>
+      <translation>Catálogo de Mensajes actualizado con éxito.</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="73"/>
-        <source>Input</source>
-        <translation>Entrada</translation>
+      <location filename="../Project.py" line="1774" />
+      <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>
+  </context>
+  <context>
+    <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="95"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Pulsar para enviar la entrada al proceso de Pyramid</translation>
+      <location filename="../../PluginProjectPyramid.py" line="407" />
+      <location filename="../../PluginProjectPyramid.py" line="187" />
+      <location filename="../../PluginProjectPyramid.py" line="71" />
+      <source>Pyramid</source>
+      <translation />
     </message>
+  </context>
+  <context>
+    <name>PyramidDialog</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="98"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Enviar</translation>
+      <location filename="../PyramidDialog.py" line="198" />
+      <source>Process Generation Error</source>
+      <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="101"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidDialog.py" line="199" />
+      <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>
     <message>
-        <location filename="../PyramidDialog.ui" line="108"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Introducir los datos a enviar al proceso Pyramid</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="115"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Seleccionar para conmutar el campo de entrada a modo contraseña</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Output</source>
+      <translation>Salida</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="118"/>
-        <source>&amp;Password Mode</source>
-        <translation>Modo &amp;Contraseña</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Errores</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="121"/>
-        <source>Alt+P</source>
-        <translation>Alt+P</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Entrada</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.py" line="167"/>
-        <source>Process Generation Error</source>
-        <translation>Error de Generación de Proceso</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Pulsar para enviar la entrada al proceso de Pyramid</translation>
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>PyramidPage</name>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Configurar Pyramid&lt;/b&gt;</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Enviar</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="43"/>
-        <source>Console Command:</source>
-        <translation>Comando de Consola:</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Introducir los datos a enviar al proceso Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="56"/>
-        <source>Enter the console command</source>
-        <translation>Introducir el comando de consola</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Seleccionar para conmutar el campo de entrada a modo contraseña</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="66"/>
-        <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an &apos;@&apos; character.</source>
-        <translation>&lt;b&gt;Nota:&lt;/b&gt; El comando de consola para una consola que ya está en ejecución debe llevar como prefijo un carácter &apos;@&apos;.</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>Modo &amp;Contraseña</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="98"/>
-        <source>Python 3</source>
-        <translation>Python 3</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+P</translation>
+    </message>
+  </context>
+  <context>
+    <name>PyramidPage</name>
+    <message>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Configurar Pyramid&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
-        <source>Pyramid Virtual Environment</source>
-        <translation>Entorno Virtual de Pyramid</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command</source>
+      <translation>Comando de Consola</translation>
     </message>
     <message>
-        <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="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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command:</source>
+      <translation>Comando de Consola:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
-        <source>Pyramid Python Console:</source>
-        <translation>Consola Python de Pyramid:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the console command</source>
+      <translation>Introducir el comando de consola</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
-        <source>Select the Python console type</source>
-        <translation>Seleccionar el tipo de consola de Python</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an '@' character.</source>
+      <translation>&lt;b&gt;Nota:&lt;/b&gt; El comando de consola para una consola que ya está en ejecución debe llevar como prefijo un carácter '@'.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Python 2</source>
-        <translation type="obsolete">Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Web-Browser</source>
+      <translation>Navegador Web</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Pyramid Documentation</source>
-        <translation>Documentación de Pyramid</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select to use an external web-browser</source>
+      <translation>Seleccionar para utilizar un navegador web externo</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
-        <source>URL:</source>
-        <translation>URL:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Use external web-browser</source>
+      <translation>Usar navegador web externo</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Python 3</source>
+      <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="64"/>
-        <source>Plain Python</source>
-        <translation>Python normal</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Virtual Environment</source>
+      <translation>Entorno Virtual de Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
-        <source>IPython</source>
-        <translation>IPython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Virtual Environment to be used with Pyramid</source>
+      <translation>Seleccionar el Entorno Virtual a utilizar con Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
-        <source>bpython</source>
-        <translation>bpython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Python Console:</source>
+      <translation>Consola Python de Pyramid:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
-        <source>Select Virtual Environment for Python 3</source>
-        <translation>Seleccionar Entorno Virtual para Python 3</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Python console type</source>
+      <translation>Seleccionar el tipo de consola de Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
-        <source>Select Virtual Environment for Python 2</source>
-        <translation type="obsolete">Seleccionar Entorno Virtual para Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Documentation</source>
+      <translation>Documentación de Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
-        <source>Console Command</source>
-        <translation>Comando de Consola</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>URL:</source>
+      <translation>URL:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>Translations Editor</source>
-        <translation>Editor de Traducciones</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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.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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Translations Editor</source>
+      <translation>Editor de Traducciones</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>All Files (*)</source>
-        <translation>Todos los Archivos (*)</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="79"/>
-        <source>Web-Browser</source>
-        <translation>Navegador Web</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the path of the translations editor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="85"/>
-        <source>Select to use an external web-browser</source>
-        <translation>Seleccionar para utilizar un navegador web externo</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="59" />
+      <source>Plain Python</source>
+      <translation>Python normal</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="88"/>
-        <source>Use external web-browser</source>
-        <translation>Usar navegador web externo</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="60" />
+      <source>IPython</source>
+      <translation>IPython</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="61" />
+      <source>bpython</source>
+      <translation>bpython</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="70" />
+      <source>All Files (*)</source>
+      <translation>Todos los Archivos (*)</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>PyramidRoutesDialog</name>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Errores</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Errores</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="79"/>
-        <source>Input</source>
-        <translation>Entrada</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Entrada</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="101"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Pulsar para enviar la entrada al proceso de Pyramid</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Pulsar para enviar la entrada al proceso de Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="104"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Enviar</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Enviar</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="107"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="114"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Introducir los datos a enviar al proceso Pyramid</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Introducir los datos a enviar al proceso Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="121"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Seleccionar para conmutar el campo de entrada a modo contraseña</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Seleccionar para conmutar el campo de entrada a modo contraseña</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="124"/>
-        <source>&amp;Password Mode</source>
-        <translation>Modo &amp;Contraseña</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>Modo &amp;Contraseña</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="127"/>
-        <source>Alt+P</source>
-        <translation>Alt+P</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="104"/>
-        <source>No routes found.</source>
-        <translation>No se han hallado rutas.</translation>
+      <location filename="../PyramidRoutesDialog.py" line="120" />
+      <source>No routes found.</source>
+      <translation>No se han hallado rutas.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="136"/>
-        <source>Getting routes...</source>
-        <translation>Obteniendo rutas...</translation>
+      <location filename="../PyramidRoutesDialog.py" line="154" />
+      <source>Getting routes...</source>
+      <translation>Obteniendo rutas...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="166"/>
-        <source>Process Generation Error</source>
-        <translation>Error de Generación de Proceso</translation>
+      <location filename="../PyramidRoutesDialog.py" line="190" />
+      <source>Process Generation Error</source>
+      <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <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>
+      <location filename="../PyramidRoutesDialog.py" line="191" />
+      <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>
-</context>
+  </context>
 </TS>
--- a/ProjectPyramid/i18n/pyramid_ru.ts	Sat May 29 15:05:16 2021 +0200
+++ b/ProjectPyramid/i18n/pyramid_ru.ts	Tue Jun 01 19:37:46 2021 +0200
@@ -1,931 +1,946 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ru_RU" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru_RU" sourcelanguage="">
+  <context>
     <name>CreateParametersDialog</name>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="14"/>
-        <source>Create Parameters</source>
-        <translation>Создать параметры</translation>
+      <location filename="../CreateParametersDialog.py" line="55" />
+      <source>The pcreate command did not finish within 30s.</source>
+      <translation>Команда pcreate не завершилась за 30 сек.</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="23"/>
-        <source>Project &amp;Name:</source>
-        <translation>&amp;Имя проекта:</translation>
+      <location filename="../CreateParametersDialog.py" line="58" />
+      <source>Could not start the pcreate executable.</source>
+      <translation>Не удается запустить исполняемый файл pcreate.</translation>
+    </message>
+    <message>
+      <location filename="../CreateParametersDialog.py" line="69" />
+      <source>Process Generation Error</source>
+      <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="33"/>
-        <source>Enter the name of the Pyramid project to create</source>
-        <translation>Введите имя Pyramid проекта для его создания</translation>
+      <location filename="../CreateParametersDialog.py" line="115" />
+      <source>{0} ({1})</source>
+      <comment>scaffold name, explanatory text</comment>
+      <translation>{0} ({1})</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="40"/>
-        <source>&amp;Scaffold:</source>
-        <translation>&amp;Каркас:</translation>
-    </message>
-    <message>
-        <location filename="../CreateParametersDialog.ui" line="50"/>
-        <source>Select the scaffold to be used</source>
-        <translation>Выберите каркас представления для использования</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Create Parameters</source>
+      <translation>Создать параметры</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="57"/>
-        <source>Select to overwrite existing files</source>
-        <translation>Разрешить переписывать существующие файлы</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Project &amp;Name:</source>
+      <translation>&amp;Имя проекта:</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="60"/>
-        <source>Overwrite existing files</source>
-        <translation>Переписывать существующие файлы</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Enter the name of the Pyramid project to create</source>
+      <translation>Введите имя Pyramid проекта для его создания</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="67"/>
-        <source>Select to simulate the creation</source>
-        <translation>Разрешить имитацию создания проекта</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>&amp;Scaffold:</source>
+      <translation>&amp;Каркас:</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.ui" line="70"/>
-        <source>Simulate Pyramid project creation</source>
-        <translation>Имитировать создание Pyramid проекта</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select the scaffold to be used</source>
+      <translation>Выберите каркас представления для использования</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="52"/>
-        <source>The pcreate command did not finish within 30s.</source>
-        <translation>Команда pcreate не завершилась за 30 сек.</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to overwrite existing files</source>
+      <translation>Разрешить переписывать существующие файлы</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="55"/>
-        <source>Could not start the pcreate executable.</source>
-        <translation>Не удается запустить исполняемый файл pcreate.</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Overwrite existing files</source>
+      <translation>Переписывать существующие файлы</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="64"/>
-        <source>Process Generation Error</source>
-        <translation>Ошибка при запуске процесса</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Select to simulate the creation</source>
+      <translation>Разрешить имитацию создания проекта</translation>
     </message>
     <message>
-        <location filename="../CreateParametersDialog.py" line="110"/>
-        <source>{0} ({1})</source>
-        <comment>scaffold name, explanatory text</comment>
-        <translation>{0} ({1})</translation>
+      <location filename="../CreateParametersDialog.ui" line="0" />
+      <source>Simulate Pyramid project creation</source>
+      <translation>Имитировать создание Pyramid проекта</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>DistributionTypeSelectionDialog</name>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="14"/>
-        <source>Distribution Type</source>
-        <translation>Тип дистрибутива</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Distribution Type</source>
+      <translation>Тип дистрибутива</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="23"/>
-        <source>Select the distribution file formats below:</source>
-        <translation>Выберите форматы файла дистрибутива:</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Select the distribution file formats below:</source>
+      <translation>Выберите форматы файла дистрибутива:</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.ui" line="30"/>
-        <source>Check the distribution file formats that should be generated</source>
-        <translation>Выберите форматы создаваемого файла дистрибутива</translation>
+      <location filename="../DistributionTypeSelectionDialog.ui" line="0" />
+      <source>Check the distribution file formats that should be generated</source>
+      <translation>Выберите форматы создаваемого файла дистрибутива</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="57"/>
-        <source>The python setup.py command did not finish within 30s.</source>
-        <translation>Команда Python setup.py не завершилась в течении 30 сек.</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="59" />
+      <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="74"/>
-        <source>Process Generation Error</source>
-        <translation>Ошибка при запуске процесса</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="63" />
+      <source>Could not start the python executable.</source>
+      <translation>Не удается запустить исполняемый файл python.</translation>
     </message>
     <message>
-        <location filename="../DistributionTypeSelectionDialog.py" line="61"/>
-        <source>Could not start the python executable.</source>
-        <translation>Не удается запустить исполняемый файл python.</translation>
+      <location filename="../DistributionTypeSelectionDialog.py" line="78" />
+      <source>Process Generation Error</source>
+      <translation>Ошибка при запуске процесса</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>FormSelectionDialog</name>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="14"/>
-        <source>Template Type Selection</source>
-        <translation>Выбор типа шаблона</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template Type Selection</source>
+      <translation>Выбор типа шаблона</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="23"/>
-        <source>Template &amp;Type:</source>
-        <translation>&amp;Тип шаблона:</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Template &amp;Type:</source>
+      <translation>&amp;Тип шаблона:</translation>
+    </message>
+    <message>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Select the template type</source>
+      <translation>Выбор типа шаблона</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="39"/>
-        <source>Select the template type</source>
-        <translation>Выбор типа шаблона</translation>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Preview:</source>
+      <translation>Просмотр:</translation>
+    </message>
+    <message>
+      <location filename="../FormSelectionDialog.ui" line="0" />
+      <source>Shows the text of the selected template</source>
+      <translation>Отображение текста выбранного шаблона</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="46"/>
-        <source>Preview:</source>
-        <translation>Просмотр:</translation>
+      <location filename="../FormSelectionDialog.py" line="32" />
+      <source>Standard HTML 5 template</source>
+      <translation>Стандартный шаблон HTML 5</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.ui" line="53"/>
-        <source>Shows the text of the selected template</source>
-        <translation>Отображение текста выбранного шаблона</translation>
+      <location filename="../FormSelectionDialog.py" line="45" />
+      <source>Standard HTML template</source>
+      <translation>Стандартный шаблон HTML</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="31"/>
-        <source>Standard HTML 5 template</source>
-        <translation>Стандартный шаблон HTML 5</translation>
+      <location filename="../FormSelectionDialog.py" line="59" />
+      <source>Chameleon template</source>
+      <translation>Шаблон Chameleon</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="114"/>
-        <source>Mako template with sections</source>
-        <translation>Шаблон Mako с секциями</translation>
+      <location filename="../FormSelectionDialog.py" line="115" />
+      <source>Mako template with sections</source>
+      <translation>Шаблон Mako с секциями</translation>
+    </message>
+  </context>
+  <context>
+    <name>Project</name>
+    <message>
+      <location filename="../Project.py" line="136" />
+      <source>Current Pyramid Project</source>
+      <translation>Текущий Pyramid проект</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="44"/>
-        <source>Standard HTML template</source>
-        <translation>Стандартный шаблон HTML</translation>
+      <location filename="../Project.py" line="140" />
+      <source>Selects the current Pyramid project</source>
+      <translation>Выбор текущего Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../FormSelectionDialog.py" line="58"/>
-        <source>Chameleon template</source>
-        <translation>Шаблон Chameleon</translation>
-    </message>
-</context>
-<context>
-    <name>Project</name>
-    <message>
-        <location filename="../Project.py" line="126"/>
-        <source>Current Pyramid Project</source>
-        <translation>Текущий Pyramid проект</translation>
+      <location filename="../Project.py" line="142" />
+      <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="131"/>
-        <source>Selects the current Pyramid project</source>
-        <translation>Выбор текущего Pyramid проекта</translation>
+      <location filename="../Project.py" line="931" />
+      <location filename="../Project.py" line="155" />
+      <source>Create Pyramid Project</source>
+      <translation>Создать Pyramid проект</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="156" />
+      <source>Create Pyramid &amp;Project</source>
+      <translation>Создать Pyramid &amp;проект</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="159" />
+      <source>Creates a new Pyramid project</source>
+      <translation>Создание нового Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="906"/>
-        <source>Create Pyramid Project</source>
-        <translation>Создать Pyramid проект</translation>
+      <location filename="../Project.py" line="161" />
+      <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using "pcreate".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Создание Pyramid проекта&lt;/b&gt;&lt;p&gt;Создание нового Pyramid-проекта посредством команды "pcreate".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="145"/>
-        <source>Create Pyramid &amp;Project</source>
-        <translation>Создать Pyramid &amp;проект</translation>
+      <location filename="../Project.py" line="1104" />
+      <location filename="../Project.py" line="173" />
+      <source>Run Server</source>
+      <translation>Сервер разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="150"/>
-        <source>Creates a new Pyramid project</source>
-        <translation>Создание нового Pyramid проекта</translation>
+      <location filename="../Project.py" line="174" />
+      <source>Run &amp;Server</source>
+      <translation>&amp;Сервер разработки</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="177" />
+      <source>Starts the Pyramid Web server</source>
+      <translation>Запуск Pyramid Web сервера разработки</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="179" />
+      <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using "pserve --reload development.ini".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Сервер разработки&lt;/b&gt;&lt;p&gt;Запуск Pyramid Web сервера разработки посредством команды "pserve --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1080"/>
-        <source>Run Server</source>
-        <translation>Сервер разработки</translation>
+      <location filename="../Project.py" line="188" />
+      <source>Run Server with Logging</source>
+      <translation>Сервер разработки с ведением журнала</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="163"/>
-        <source>Run &amp;Server</source>
-        <translation>&amp;Сервер разработки</translation>
+      <location filename="../Project.py" line="189" />
+      <source>Run Server with &amp;Logging</source>
+      <translation>Сервер разработки с ведением &amp;журнала</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="168"/>
-        <source>Starts the Pyramid Web server</source>
-        <translation>Запуск Pyramid Web сервера разработки</translation>
+      <location filename="../Project.py" line="192" />
+      <source>Starts the Pyramid Web server with logging</source>
+      <translation>Запуск Pyramid Web сервера разработки с ведением журнала</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="194" />
+      <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using "pserve --log-file=server.log --reload development.ini".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Сервер с ведением журнала&lt;/b&gt;&lt;p&gt;Запуск Pyramid Web сервера разработки с ведением журнала посредством команды "pserve --log-file=server.log --reload development.ini".&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with Logging</source>
-        <translation>Сервер разработки с ведением журнала</translation>
+      <location filename="../Project.py" line="1180" />
+      <location filename="../Project.py" line="1163" />
+      <location filename="../Project.py" line="203" />
+      <source>Run Web-Browser</source>
+      <translation>Запуск Web-браузера для администрирования</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="178"/>
-        <source>Run Server with &amp;Logging</source>
-        <translation>Сервер разработки с ведением &amp;журнала</translation>
+      <location filename="../Project.py" line="204" />
+      <source>Run &amp;Web-Browser</source>
+      <translation>Запуск &amp;Web-браузера</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="183"/>
-        <source>Starts the Pyramid Web server with logging</source>
-        <translation>Запуск Pyramid Web сервера разработки с ведением журнала</translation>
+      <location filename="../Project.py" line="207" />
+      <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="210" />
+      <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="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>
+      <location filename="../Project.py" line="1198" />
+      <location filename="../Project.py" line="219" />
+      <source>Start Pyramid Python Console</source>
+      <translation>Запуск консоли Pyramid Python</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1156"/>
-        <source>Run Web-Browser</source>
-        <translation>Запуск Web-браузера для администрирования</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="193"/>
-        <source>Run &amp;Web-Browser</source>
-        <translation>Запуск &amp;Web-браузера</translation>
+      <location filename="../Project.py" line="220" />
+      <source>Start Pyramid &amp;Python Console</source>
+      <translation>Запуск Pyramid &amp;Python консоли</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="223" />
+      <source>Starts an interactive Python interpreter</source>
+      <translation>Запуск интерактивного интерпретатора Python</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="225" />
+      <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="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>
+      <location filename="../Project.py" line="1229" />
+      <location filename="../Project.py" line="237" />
+      <source>Setup Development Environment</source>
+      <translation>Настройка среды разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1174"/>
-        <source>Start Pyramid Python Console</source>
-        <translation>Запуск консоли Pyramid Python</translation>
+      <location filename="../Project.py" line="238" />
+      <source>Setup &amp;Development Environment</source>
+      <translation>Настройка среды &amp;разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="209"/>
-        <source>Start Pyramid &amp;Python Console</source>
-        <translation>Запуск Pyramid &amp;Python консоли</translation>
+      <location filename="../Project.py" line="241" />
+      <source>Setup the Pyramid project in development mode</source>
+      <translation>Настройка Pyramid проекта в режиме разработки</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="214"/>
-        <source>Starts an interactive Python interpreter</source>
-        <translation>Запуск интерактивного интерпретатора Python</translation>
+      <location filename="../Project.py" line="243" />
+      <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using "python setup.py develop".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Настройка среды разработки&lt;/b&gt;&lt;p&gt;Настройка Pyramid проекта в режиме разработки посредством "python setup.py develop".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1323" />
+      <location filename="../Project.py" line="1314" />
+      <location filename="../Project.py" line="256" />
+      <source>Initialize Database</source>
+      <translation>Инициализация базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1207"/>
-        <source>Setup Development Environment</source>
-        <translation>Настройка среды разработки</translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="227"/>
-        <source>Setup &amp;Development Environment</source>
-        <translation>Настройка среды &amp;разработки</translation>
+      <location filename="../Project.py" line="257" />
+      <source>Initialize &amp;Database</source>
+      <translation>Инициализация &amp;базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="232"/>
-        <source>Setup the Pyramid project in development mode</source>
-        <translation>Настройка Pyramid проекта в режиме разработки</translation>
+      <location filename="../Project.py" line="260" />
+      <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
+      <translation>Инициализация (или ре-инициализация) базы данных текущего Pyramid проекта</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="263" />
+      <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="1300"/>
-        <source>Initialize Database</source>
-        <translation>Инициализация базы данных</translation>
+      <location filename="../Project.py" line="1366" />
+      <location filename="../Project.py" line="1353" />
+      <location filename="../Project.py" line="276" />
+      <source>Show Matching Views</source>
+      <translation>Показ сопоставленных видов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="246"/>
-        <source>Initialize &amp;Database</source>
-        <translation>Инициализация &amp;базы данных</translation>
+      <location filename="../Project.py" line="277" />
+      <source>Show Matching &amp;Views</source>
+      <translation>Показ сопоставленных &amp;видов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="251"/>
-        <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
-        <translation>Инициализация (или ре-инициализация) базы данных текущего Pyramid проекта</translation>
+      <location filename="../Project.py" line="280" />
+      <source>Show views matching a given URL</source>
+      <translation>Показ видов, сопоставленных заданному URL</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="282" />
+      <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="1341"/>
-        <source>Show Matching Views</source>
-        <translation>Показ сопоставленных видов</translation>
+      <location filename="../Project.py" line="1387" />
+      <location filename="../Project.py" line="290" />
+      <source>Show Routes</source>
+      <translation>Показ маршрутов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="266"/>
-        <source>Show Matching &amp;Views</source>
-        <translation>Показ сопоставленных &amp;видов</translation>
+      <location filename="../Project.py" line="291" />
+      <source>Show &amp;Routes</source>
+      <translation>Показ &amp;маршрутов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="271"/>
-        <source>Show views matching a given URL</source>
-        <translation>Показ видов, сопоставленных заданному URL</translation>
+      <location filename="../Project.py" line="294" />
+      <source>Show all URL dispatch routes used by a Pyramid application</source>
+      <translation>Отображение всех URL dispatch маршрутов, используемых Pyramid приложением</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="296" />
+      <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="1409" />
+      <location filename="../Project.py" line="305" />
+      <source>Show Tween Objects</source>
+      <translation>Показ Tween объектов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1364"/>
-        <source>Show Routes</source>
-        <translation>Показ маршрутов</translation>
+      <location filename="../Project.py" line="306" />
+      <source>Show &amp;Tween Objects</source>
+      <translation>Показ &amp;Tween объектов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="280"/>
-        <source>Show &amp;Routes</source>
-        <translation>Показ &amp;маршрутов</translation>
+      <location filename="../Project.py" line="309" />
+      <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="285"/>
-        <source>Show all URL dispatch routes used by a Pyramid application</source>
-        <translation>Отображение всех URL dispatch маршрутов, используемых Pyramid приложением</translation>
+      <location filename="../Project.py" line="312" />
+      <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="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>
+      <location filename="../Project.py" line="325" />
+      <source>Build Distribution</source>
+      <translation>Создать дистрибутив</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1386"/>
-        <source>Show Tween Objects</source>
-        <translation>Показ Tween объектов</translation>
+      <location filename="../Project.py" line="326" />
+      <source>Build &amp;Distribution</source>
+      <translation>Создать &amp;дистрибутив</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="295"/>
-        <source>Show &amp;Tween Objects</source>
-        <translation>Показ &amp;Tween объектов</translation>
+      <location filename="../Project.py" line="329" />
+      <source>Builds a distribution file for the Pyramid project</source>
+      <translation>Создание файла дистрибутива для Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="300"/>
-        <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
-        <translation>Показ всех явных и неявных tween-объектов, используемых Pyramid приложением</translation>
+      <location filename="../Project.py" line="331" />
+      <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using "python setup.py sdist".&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Создать дистрибутив&lt;/b&gt;&lt;p&gt;Создание файла дистрибутива для Pyramid проекта посредством команды "python setup.py sdist".&lt;/p&gt;</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="344" />
+      <source>Documentation</source>
+      <translation>Документация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build Distribution</source>
-        <translation>Создать дистрибутив</translation>
+      <location filename="../Project.py" line="345" />
+      <source>D&amp;ocumentation</source>
+      <translation>Д&amp;окументация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="315"/>
-        <source>Build &amp;Distribution</source>
-        <translation>Создать &amp;дистрибутив</translation>
+      <location filename="../Project.py" line="348" />
+      <source>Shows the help viewer with the Pyramid documentation</source>
+      <translation>Отображение справочника с документацией Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="320"/>
-        <source>Builds a distribution file for the Pyramid project</source>
-        <translation>Создание файла дистрибутива для Pyramid проекта</translation>
+      <location filename="../Project.py" line="350" />
+      <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="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>
+      <location filename="../Project.py" line="811" />
+      <location filename="../Project.py" line="362" />
+      <source>About Pyramid</source>
+      <translation>О Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>Documentation</source>
-        <translation>Документация</translation>
+      <location filename="../Project.py" line="363" />
+      <source>About P&amp;yramid</source>
+      <translation>О P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="334"/>
-        <source>D&amp;ocumentation</source>
-        <translation>Д&amp;окументация</translation>
+      <location filename="../Project.py" line="366" />
+      <source>Shows some information about Pyramid</source>
+      <translation>Отображение информации о Pyramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="339"/>
-        <source>Shows the help viewer with the Pyramid documentation</source>
-        <translation>Отображение справочника с документацией Pyramid</translation>
+      <location filename="../Project.py" line="368" />
+      <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="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>
+      <location filename="../Project.py" line="386" />
+      <source>P&amp;yramid</source>
+      <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="786"/>
-        <source>About Pyramid</source>
-        <translation>О Pyramid</translation>
+      <location filename="../Project.py" line="451" />
+      <source>Open with {0}</source>
+      <translation>Открыть с помощью {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="352"/>
-        <source>About P&amp;yramid</source>
-        <translation>О P&amp;yramid</translation>
+      <location filename="../Project.py" line="465" />
+      <source>New template...</source>
+      <translation>Новый шаблон...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="357"/>
-        <source>Shows some information about Pyramid</source>
-        <translation>Отображение информации о Pyramid</translation>
+      <location filename="../Project.py" line="474" />
+      <source>Extract Messages</source>
+      <translation>Извлечь сообщения</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="477" />
+      <source>Compile All Catalogs</source>
+      <translation>Компилировать все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="376"/>
-        <source>P&amp;yramid</source>
-        <translation>P&amp;yramid</translation>
+      <location filename="../Project.py" line="480" />
+      <source>Compile Selected Catalogs</source>
+      <translation>Компилировать выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="451"/>
-        <source>New template...</source>
-        <translation>Новый шаблон...</translation>
+      <location filename="../Project.py" line="483" />
+      <source>Update All Catalogs</source>
+      <translation>Обновить все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="459"/>
-        <source>Extract Messages</source>
-        <translation>Извлечь сообщения</translation>
+      <location filename="../Project.py" line="486" />
+      <source>Update Selected Catalogs</source>
+      <translation>Обновить выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="462"/>
-        <source>Compile All Catalogs</source>
-        <translation>Компилировать все каталоги</translation>
+      <location filename="../Project.py" line="525" />
+      <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="465"/>
-        <source>Compile Selected Catalogs</source>
-        <translation>Компилировать выбранные каталоги</translation>
+      <location filename="../Project.py" line="564" />
+      <location filename="../Project.py" line="550" />
+      <location filename="../Project.py" line="535" />
+      <source>New Form</source>
+      <translation>Новая форма</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="468"/>
-        <source>Update All Catalogs</source>
-        <translation>Обновить все каталоги</translation>
+      <location filename="../Project.py" line="551" />
+      <source>The file already exists! Overwrite it?</source>
+      <translation>Файл уже существует! Переписать его?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="471"/>
-        <source>Update Selected Catalogs</source>
-        <translation>Обновить выбранные каталоги</translation>
+      <location filename="../Project.py" line="565" />
+      <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>
     <message>
-        <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>
+      <location filename="../Project.py" line="812" />
+      <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="{1}"&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="{1}"&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="549"/>
-        <source>New Form</source>
-        <translation>Новая форма</translation>
+      <location filename="../Project.py" line="997" />
+      <source>Select Pyramid Project</source>
+      <translation>Выбор Pyramid проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="534"/>
-        <source>The file already exists! Overwrite it?</source>
-        <translation>Файл уже существует! Переписать его?</translation>
+      <location filename="../Project.py" line="998" />
+      <source>Select the Pyramid project to work with.</source>
+      <translation>Выберите Pyramid проект для работы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="967"/>
-        <source>Select Pyramid Project</source>
-        <translation>Выбор Pyramid проекта</translation>
+      <location filename="../Project.py" line="1036" />
+      <source>None</source>
+      <translation>None</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="967"/>
-        <source>Select the Pyramid project to work with.</source>
-        <translation>Выберите Pyramid проект для работы.</translation>
+      <location filename="../Project.py" line="1041" />
+      <source>&amp;Current Pyramid Project ({0})</source>
+      <translation>&amp;Текущий Pyramid проект ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
-        <source>None</source>
-        <translation>None</translation>
-    </message>
-    <message>
-        <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="1689"/>
-        <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
-        <translation>Не выбран текущий Pyramid проект, или Pyramid проект еще не создан.  Отмена...</translation>
+      <location filename="../Project.py" line="1724" />
+      <location filename="../Project.py" line="1694" />
+      <location filename="../Project.py" line="1641" />
+      <location filename="../Project.py" line="1604" />
+      <location filename="../Project.py" line="1567" />
+      <location filename="../Project.py" line="1513" />
+      <location filename="../Project.py" line="1416" />
+      <location filename="../Project.py" line="1394" />
+      <location filename="../Project.py" line="1360" />
+      <location filename="../Project.py" line="1330" />
+      <location filename="../Project.py" line="1315" />
+      <location filename="../Project.py" line="1271" />
+      <location filename="../Project.py" line="1236" />
+      <location filename="../Project.py" line="1199" />
+      <location filename="../Project.py" line="1164" />
+      <location filename="../Project.py" line="1105" />
+      <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="1738"/>
-        <source>Process Generation Error</source>
-        <translation>Ошибка при запуске процесса</translation>
+      <location filename="../Project.py" line="1773" />
+      <location filename="../Project.py" line="1216" />
+      <location filename="../Project.py" line="1132" />
+      <source>Process Generation Error</source>
+      <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1108"/>
-        <source>The Pyramid server could not be started.</source>
-        <translation>Невозможно запустить Pyramid сервер.</translation>
+      <location filename="../Project.py" line="1133" />
+      <source>The Pyramid server could not be started.</source>
+      <translation>Невозможно запустить Pyramid сервер.</translation>
     </message>
     <message>
-        <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>
+      <location filename="../Project.py" line="1181" />
+      <source>Could not start the web-browser for the URL "{0}".</source>
+      <translation>Невозможно запустить web-браузер с URL "{0}".</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1192"/>
-        <source>The Pyramid Shell process could not be started.</source>
-        <translation>Невозможно запустить процесс Pyramid Shell.</translation>
+      <location filename="../Project.py" line="1217" />
+      <source>The Pyramid Shell process could not be started.</source>
+      <translation>Невозможно запустить процесс Pyramid Shell.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1223"/>
-        <source>Pyramid development environment setup successfully.</source>
-        <translation>Среда разработки Pyramid успешно настроена.</translation>
+      <location filename="../Project.py" line="1247" />
+      <source>Pyramid development environment setup successfully.</source>
+      <translation>Среда разработки Pyramid успешно настроена.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1242"/>
-        <source>Build Distribution File</source>
-        <translation>Создание файла дистрибутива</translation>
+      <location filename="../Project.py" line="1264" />
+      <source>Build Distribution File</source>
+      <translation>Создание файла дистрибутива</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1267"/>
-        <source>Python distribution file built successfully.</source>
-        <translation>Файл дистрибутива Python успешно создан.</translation>
+      <location filename="../Project.py" line="1291" />
+      <source>Python distribution file built successfully.</source>
+      <translation>Файл дистрибутива Python успешно создан.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1340" />
+      <source>Database initialized successfully.</source>
+      <translation>База данных успешно инициализирована.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1315"/>
-        <source>Database initialized successfully.</source>
-        <translation>База данных успешно инициализирована.</translation>
+      <location filename="../Project.py" line="1367" />
+      <source>Enter the URL to be matched:</source>
+      <translation>Введите URL для сопоставления:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1341"/>
-        <source>Enter the URL to be matched:</source>
-        <translation>Введите URL для сопоставления:</translation>
+      <location filename="../Project.py" line="1506" />
+      <source>Extract messages</source>
+      <translation>Извлечь сообщения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1477"/>
-        <source>Extract messages</source>
-        <translation>Извлечь сообщения</translation>
+      <location filename="../Project.py" line="1525" />
+      <source>No setup.cfg found or no "extract_messages" section found in setup.cfg.</source>
+      <translation>Не найден файл setup.cfg или не найдена "extract_messages" секция в setup.cfg.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1517"/>
-        <source>
+      <location filename="../Project.py" line="1532" />
+      <source>No "output_file" option found in setup.cfg.</source>
+      <translation>Опция "output_file" не найдена в setup.cfg.</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1546" />
+      <source>
 Messages extracted successfully.</source>
-        <translation>
+      <translation>
 Сообщения успешно извлечены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1550"/>
-        <source>
+      <location filename="../Project.py" line="1559" />
+      <source>Initializing message catalog for '{0}'</source>
+      <translation>Инициализация каталога сообщений для '{0}'</translation>
+    </message>
+    <message>
+      <location filename="../Project.py" line="1580" />
+      <source>
 Message catalog initialized successfully.</source>
-        <translation>
+      <translation>
 Каталог сообщений успешно инициализирован.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1604"/>
-        <source>Compiling message catalogs</source>
-        <translation>Компиляция каталогов сообщений</translation>
+      <location filename="../Project.py" line="1634" />
+      <location filename="../Project.py" line="1597" />
+      <source>Compiling message catalogs</source>
+      <translation>Компиляция каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1636"/>
-        <source>
+      <location filename="../Project.py" line="1668" />
+      <location filename="../Project.py" line="1615" />
+      <source>
 Message catalogs compiled successfully.</source>
-        <translation>
+      <translation>
 Каталоги сообщений успешно компилированы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1711"/>
-        <source>No locales detected. Aborting...</source>
-        <translation>Локали не найдены. Прерывание выполнения...</translation>
+      <location filename="../Project.py" line="1746" />
+      <location filename="../Project.py" line="1663" />
+      <source>No locales detected. Aborting...</source>
+      <translation>Локали не найдены. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1685"/>
-        <source>Updating message catalogs</source>
-        <translation>Обновление каталогов сообщений</translation>
+      <location filename="../Project.py" line="1717" />
+      <location filename="../Project.py" line="1687" />
+      <source>Updating message catalogs</source>
+      <translation>Обновление каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1717"/>
-        <source>
+      <location filename="../Project.py" line="1751" />
+      <location filename="../Project.py" line="1705" />
+      <source>
 Message catalogs updated successfully.</source>
-        <translation>
+      <translation>
 Каталоги сообщений успешно обновлены.</translation>
     </message>
     <message>
-        <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="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="436"/>
-        <source>Open with {0}</source>
-        <translation>Открыть с помощью {0}</translation>
+      <location filename="../Project.py" line="1774" />
+      <source>The translations editor process ({0}) could not be started.</source>
+      <translation>Невозможен запуск редактора переводов ({0}).</translation>
     </message>
-    <message>
-        <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="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="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="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>
-</context>
-<context>
+  </context>
+  <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="../../PluginProjectPyramid.py" line="425"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../../PluginProjectPyramid.py" line="407" />
+      <location filename="../../PluginProjectPyramid.py" line="187" />
+      <location filename="../../PluginProjectPyramid.py" line="71" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>PyramidDialog</name>
     <message>
-        <location filename="../PyramidDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../PyramidDialog.py" line="198" />
+      <source>Process Generation Error</source>
+      <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="29"/>
-        <source>Output</source>
-        <translation>Вывод</translation>
+      <location filename="../PyramidDialog.py" line="199" />
+      <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
+      <translation>Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Ошибки</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Output</source>
+      <translation>Вывод</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="73"/>
-        <source>Input</source>
-        <translation>Ввод</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Ошибки</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="95"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Отправить данные ввода в Pyramid процесс</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Ввод</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="98"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Отправить</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Отправить данные ввода в Pyramid процесс</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="101"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Отправить</translation>
+    </message>
+    <message>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="108"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Введите данные для отправки в Pyramid процесс</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Введите данные для отправки в Pyramid процесс</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="115"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Задать режим ввода пароля</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Задать режим ввода пароля</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="118"/>
-        <source>&amp;Password Mode</source>
-        <translation>&amp;Режим пароля</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>&amp;Режим пароля</translation>
     </message>
     <message>
-        <location filename="../PyramidDialog.ui" line="121"/>
-        <source>Alt+P</source>
-        <translation>Alt+P</translation>
+      <location filename="../PyramidDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+P</translation>
     </message>
+  </context>
+  <context>
+    <name>PyramidPage</name>
     <message>
-        <location filename="../PyramidDialog.py" line="167"/>
-        <source>Process Generation Error</source>
-        <translation>Ошибка при запуске процесса</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Настройка поддержки Pyramid&lt;/b&gt;</translation>
     </message>
     <message>
-        <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>
-</context>
-<context>
-    <name>PyramidPage</name>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Pyramid&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Настройка поддержки Pyramid&lt;/b&gt;</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command</source>
+      <translation>Команды консоли</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="43"/>
-        <source>Console Command:</source>
-        <translation>Команда консоли (с закрытием окна):</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Console Command:</source>
+      <translation>Команда консоли (с закрытием окна):</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="56"/>
-        <source>Enter the console command</source>
-        <translation>Введите команду</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the console command</source>
+      <translation>Введите команду</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="66"/>
-        <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an &apos;@&apos; character.</source>
-        <translation>&lt;b&gt;Примечание:&lt;/b&gt; Консольная команда, которая должна завершиться до того, как окно консоли закроется, должна предваряться символом &apos;@&apos;.</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="98"/>
-        <source>Python 3</source>
-        <translation>Python 3</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an '@' character.</source>
+      <translation>&lt;b&gt;Примечание:&lt;/b&gt; Консольная команда, которая должна завершиться до того, как окно консоли закроется, должна предваряться символом '@'.</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="139"/>
-        <source>Pyramid Virtual Environment</source>
-        <translation>Виртуальное окружение Pyramid</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Web-Browser</source>
+      <translation>Web-браузер</translation>
     </message>
     <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select to use an external web-browser</source>
+      <translation>Разрешить использовать внешний web-браузер</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="129"/>
-        <source>Select the virtual environment directory via a selection dialog</source>
-        <translation>Выбор директории виртуального окружения посредством диалога выбора</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Use external web-browser</source>
+      <translation>Внешний web-браузер</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="163"/>
-        <source>Pyramid Python Console:</source>
-        <translation>Консоль Pyramid Python:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Python 3</source>
+      <translation>Python 3</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="176"/>
-        <source>Select the Python console type</source>
-        <translation>Выберите тип консоли Python</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Virtual Environment</source>
+      <translation>Виртуальное окружение Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Python 2</source>
-        <translation type="obsolete">Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Virtual Environment to be used with Pyramid</source>
+      <translation>Выберите виртуальное окружение для использования с  Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="188"/>
-        <source>Pyramid Documentation</source>
-        <translation>Документация Pyramid</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="194"/>
-        <source>URL:</source>
-        <translation>URL:</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Python Console:</source>
+      <translation>Консоль Pyramid Python:</translation>
     </message>
     <message>
-        <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="64"/>
-        <source>Plain Python</source>
-        <translation>Plain Python</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Select the Python console type</source>
+      <translation>Выберите тип консоли Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="65"/>
-        <source>IPython</source>
-        <translation>IPython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Pyramid Documentation</source>
+      <translation>Документация Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="66"/>
-        <source>bpython</source>
-        <translation>bpython</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>URL:</source>
+      <translation>URL:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="129"/>
-        <source>Select Virtual Environment for Python 3</source>
-        <translation>Выбор виртуального окружения для Python 3</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the URL of the Pyramid documentation</source>
+      <translation>Введите URL документации Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="202"/>
-        <source>Select Virtual Environment for Python 2</source>
-        <translation type="obsolete">Выбор виртуального окружения для Python 2</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Press to reset the URL to the default URL</source>
+      <translation>Сбросить к URL по умолчанию</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="37"/>
-        <source>Console Command</source>
-        <translation>Команды консоли</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Translations Editor</source>
+      <translation>Редактор перевода</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>Translations Editor</source>
-        <translation>Редактор перевода</translation>
-    </message>
-    <message>
-        <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>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <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="243"/>
-        <source>Select the translations editor via a file selection dialog</source>
-        <translation>Выбор редактора для перевода посредством диалога выбора</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/PyramidPage.py" line="145"/>
-        <source>All Files (*)</source>
-        <translation>Все файлы (*)</translation>
+      <location filename="../ConfigurationPage/PyramidPage.ui" line="0" />
+      <source>Enter the path of the translations editor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="79"/>
-        <source>Web-Browser</source>
-        <translation>Web-браузер</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="59" />
+      <source>Plain Python</source>
+      <translation>Plain Python</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="85"/>
-        <source>Select to use an external web-browser</source>
-        <translation>Разрешить использовать внешний web-браузер</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="60" />
+      <source>IPython</source>
+      <translation>IPython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="88"/>
-        <source>Use external web-browser</source>
-        <translation>Внешний web-браузер</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="61" />
+      <source>bpython</source>
+      <translation>bpython</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="208"/>
-        <source>Press to reset the URL to the default URL</source>
-        <translation>Сбросить к URL по умолчанию</translation>
+      <location filename="../ConfigurationPage/PyramidPage.py" line="70" />
+      <source>All Files (*)</source>
+      <translation>Все файлы (*)</translation>
+    </message>
+  </context>
+  <context>
+    <name>PyramidRoutesDialog</name>
+    <message>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Pyramid</source>
+      <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/PyramidPage.ui" line="145"/>
-        <source>Select the Virtual Environment to be used with Pyramid</source>
-        <translation>Выберите виртуальное окружение для использования с  Pyramid</translation>
-    </message>
-</context>
-<context>
-    <name>PyramidRoutesDialog</name>
-    <message>
-        <location filename="../PyramidRoutesDialog.ui" line="14"/>
-        <source>Pyramid</source>
-        <translation>Pyramid</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Errors</source>
+      <translation>Ошибки</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="54"/>
-        <source>Errors</source>
-        <translation>Ошибки</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Input</source>
+      <translation>Ввод</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="79"/>
-        <source>Input</source>
-        <translation>Ввод</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Press to send the input to the Pyramid process</source>
+      <translation>Отправить данные ввода в Pyramid процесс</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="101"/>
-        <source>Press to send the input to the Pyramid process</source>
-        <translation>Отправить данные ввода в Pyramid процесс</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Send</source>
+      <translation>&amp;Отправить</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="104"/>
-        <source>&amp;Send</source>
-        <translation>&amp;Отправить</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+S</source>
+      <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="107"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Enter data to be sent to the Pyramid process</source>
+      <translation>Введите данные для отправки в Pyramid процесс</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="114"/>
-        <source>Enter data to be sent to the Pyramid process</source>
-        <translation>Введите данные для отправки в Pyramid процесс</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Select to switch the input field to password mode</source>
+      <translation>Задать режим ввода пароля</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="121"/>
-        <source>Select to switch the input field to password mode</source>
-        <translation>Задать режим ввода пароля</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>&amp;Password Mode</source>
+      <translation>&amp;Режим пароля</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="124"/>
-        <source>&amp;Password Mode</source>
-        <translation>&amp;Режим пароля</translation>
+      <location filename="../PyramidRoutesDialog.ui" line="0" />
+      <source>Alt+P</source>
+      <translation>Alt+P</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.ui" line="127"/>
-        <source>Alt+P</source>
-        <translation>Alt+P</translation>
+      <location filename="../PyramidRoutesDialog.py" line="120" />
+      <source>No routes found.</source>
+      <translation>Маршруты не найдены.</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="104"/>
-        <source>No routes found.</source>
-        <translation>Маршруты не найдены.</translation>
+      <location filename="../PyramidRoutesDialog.py" line="154" />
+      <source>Getting routes...</source>
+      <translation>Получение маршрутов...</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="136"/>
-        <source>Getting routes...</source>
-        <translation>Получение маршрутов...</translation>
+      <location filename="../PyramidRoutesDialog.py" line="190" />
+      <source>Process Generation Error</source>
+      <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../PyramidRoutesDialog.py" line="166"/>
-        <source>Process Generation Error</source>
-        <translation>Ошибка при запуске процесса</translation>
+      <location filename="../PyramidRoutesDialog.py" line="191" />
+      <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
+      <translation>Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
     </message>
-    <message>
-        <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>
-</context>
+  </context>
 </TS>

eric ide

mercurial