Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python. release-1.2.0

Mon, 01 Apr 2013 19:40:41 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 01 Apr 2013 19:40:41 +0200
changeset 44
989c961c33ab
parent 43
14e0bd707f16
child 45
f64d57b8eb00

Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.

ChangeLog file | annotate | diff | comparison | revisions
PluginProjectPyramid.py file | annotate | diff | comparison | revisions
PluginProjectPyramid.zip 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.Project.html file | annotate | diff | comparison | revisions
ProjectPyramid/Project.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.ts file | annotate | diff | comparison | revisions
ProjectPyramid/i18n/pyramid_es.ts file | annotate | diff | comparison | revisions
--- a/ChangeLog	Tue Mar 26 16:47:15 2013 +0100
+++ b/ChangeLog	Mon Apr 01 19:40:41 2013 +0200
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 1.2.0
+- bug fixes
+- extended the Python variant detection to only offer the Pyramid project type,
+  if it is found for the respective Python
+
 Version 1.1.1
 - bug fixes
 
--- a/PluginProjectPyramid.py	Tue Mar 26 16:47:15 2013 +0100
+++ b/PluginProjectPyramid.py	Mon Apr 01 19:40:41 2013 +0200
@@ -26,7 +26,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "1.1.1"
+version = "1.2.0"
 className = "ProjectPyramidPlugin"
 packageName = "ProjectPyramid"
 shortDescription = "Project support for Pyramid projects."
@@ -144,6 +144,8 @@
         self.__mainMenu = None
         
         self.__e5project = e5App().getObject("Project")
+        
+        self.__supportedVariants = []
     
     def __checkVersions(self):
         """
@@ -180,18 +182,21 @@
         
         self.__mainMenu = self.__object.initMenu()
         
-        try:
-            self.__e5project.registerProjectType("Pyramid", self.trUtf8("Pyramid"),
-                self.fileTypesCallback,
-                lexerAssociationCallback=self.lexerAssociationCallback,
-                binaryTranslationsCallback=self.binaryTranslationsCallback,
-                progLanguages=["Python2", "Python3"])
-        except TypeError:
-            # for backward compatibility
-            self.__e5project.registerProjectType("Pyramid", self.trUtf8("Pyramid"),
-                self.fileTypesCallback,
-                lexerAssociationCallback=self.lexerAssociationCallback,
-                binaryTranslationsCallback=self.binaryTranslationsCallback)
+        self.__supportedVariants = self.__object.supportedPythonVariants()
+        
+        if self.__supportedVariants:
+            try:
+                self.__e5project.registerProjectType("Pyramid", self.trUtf8("Pyramid"),
+                    self.fileTypesCallback,
+                    lexerAssociationCallback=self.lexerAssociationCallback,
+                    binaryTranslationsCallback=self.binaryTranslationsCallback,
+                    progLanguages=self.__supportedVariants[:])
+            except TypeError:
+                # for backward compatibility
+                self.__e5project.registerProjectType("Pyramid", self.trUtf8("Pyramid"),
+                    self.fileTypesCallback,
+                    lexerAssociationCallback=self.lexerAssociationCallback,
+                    binaryTranslationsCallback=self.binaryTranslationsCallback)
         
         from Project.ProjectBrowser import SourcesBrowserFlag, FormsBrowserFlag, \
             TranslationsBrowserFlag, OthersBrowserFlag
@@ -350,3 +355,31 @@
         @param prefClass preferences class used as the storage area
         """
         Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
+        
+        if key in ["VirtualEnvironmentPy2", "VirtualEnvironmentPy3"]:
+            self.__reregisterProjectType()
+    
+    def __reregisterProjectType(self):
+        """
+        Private method to re-register the project type.
+        """
+        supportedVariants = self.__object.supportedPythonVariants()
+        if supportedVariants != self.__supportedVariants:
+            # step 1: unregister
+            self.__e5project.unregisterProjectType("Pyramid")
+            
+            # step 2: register again with new language settings
+            self.__supportedVariants = supportedVariants
+            if self.__supportedVariants:
+                try:
+                    self.__e5project.registerProjectType("Pyramid",
+                        self.trUtf8("Pyramid"), self.fileTypesCallback,
+                        lexerAssociationCallback=self.lexerAssociationCallback,
+                        binaryTranslationsCallback=self.binaryTranslationsCallback,
+                        progLanguages=self.__supportedVariants[:])
+                except TypeError:
+                    # for backward compatibility
+                    self.__e5project.registerProjectType("Pyramid",
+                        self.trUtf8("Pyramid"), self.fileTypesCallback,
+                        lexerAssociationCallback=self.lexerAssociationCallback,
+                        binaryTranslationsCallback=self.binaryTranslationsCallback)
Binary file PluginProjectPyramid.zip has changed
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.PluginProjectPyramid.html	Mon Apr 01 19:40:41 2013 +0200
@@ -87,6 +87,9 @@
 <td><a href="#ProjectPyramidPlugin.__projectOpened">__projectOpened</a></td>
 <td>Private slot to handle the projectOpened signal.</td>
 </tr><tr>
+<td><a href="#ProjectPyramidPlugin.__reregisterProjectType">__reregisterProjectType</a></td>
+<td>Private method to re-register the project type.</td>
+</tr><tr>
 <td><a href="#ProjectPyramidPlugin.activate">activate</a></td>
 <td>Public method to activate this plugin.</td>
 </tr><tr>
@@ -153,6 +156,11 @@
 <b>__projectOpened</b>(<i></i>)
 <p>
         Private slot to handle the projectOpened signal.
+</p><a NAME="ProjectPyramidPlugin.__reregisterProjectType" ID="ProjectPyramidPlugin.__reregisterProjectType"></a>
+<h4>ProjectPyramidPlugin.__reregisterProjectType</h4>
+<b>__reregisterProjectType</b>(<i></i>)
+<p>
+        Private method to re-register the project type.
 </p><a NAME="ProjectPyramidPlugin.activate" ID="ProjectPyramidPlugin.activate"></a>
 <h4>ProjectPyramidPlugin.activate</h4>
 <b>activate</b>(<i></i>)
--- a/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/Documentation/source/Plugin_Project_Pyramid.ProjectPyramid.Project.html	Mon Apr 01 19:40:41 2013 +0200
@@ -72,6 +72,9 @@
 <td><a href="#Project.__findProjects">__findProjects</a></td>
 <td>Private method to determine the relative path of all Pyramid projects (= top level dirs).</td>
 </tr><tr>
+<td><a href="#Project.__getExecutablePaths">__getExecutablePaths</a></td>
+<td>Private method to build all full path of an executable file from the environment.</td>
+</tr><tr>
 <td><a href="#Project.__getInitDbCommand">__getInitDbCommand</a></td>
 <td>Private method to create the path to the initialization script.</td>
 </tr><tr>
@@ -150,6 +153,9 @@
 <td><a href="#Project.getPyramidCommand">getPyramidCommand</a></td>
 <td>Public method to build a Pyramid command.</td>
 </tr><tr>
+<td><a href="#Project.getPyramidVersion">getPyramidVersion</a></td>
+<td>Public method to get the Pyramid version.</td>
+</tr><tr>
 <td><a href="#Project.getPythonCommand">getPythonCommand</a></td>
 <td>Public method to build the Python command.</td>
 </tr><tr>
@@ -174,6 +180,9 @@
 <td><a href="#Project.projectOpenedHooks">projectOpenedHooks</a></td>
 <td>Public method to add our hook methods.</td>
 </tr><tr>
+<td><a href="#Project.supportedPythonVariants">supportedPythonVariants</a></td>
+<td>Public method to get the supported Python variants.</td>
+</tr><tr>
 <td><a href="#Project.updateCatalogs">updateCatalogs</a></td>
 <td>Public method to update the message catalogs.</td>
 </tr><tr>
@@ -219,6 +228,24 @@
 <dd>
 list of projects (list of string)
 </dd>
+</dl><a NAME="Project.__getExecutablePaths" ID="Project.__getExecutablePaths"></a>
+<h4>Project.__getExecutablePaths</h4>
+<b>__getExecutablePaths</b>(<i>file</i>)
+<p>
+        Private method to build all full path of an executable file from
+        the environment.
+</p><dl>
+<dt><i>file</i></dt>
+<dd>
+filename of the executable (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+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.
+</dd>
 </dl><a NAME="Project.__getInitDbCommand" ID="Project.__getInitDbCommand"></a>
 <h4>Project.__getInitDbCommand</h4>
 <b>__getInitDbCommand</b>(<i></i>)
@@ -246,10 +273,16 @@
 </dd>
 </dl><a NAME="Project.__getVirtualEnvironment" ID="Project.__getVirtualEnvironment"></a>
 <h4>Project.__getVirtualEnvironment</h4>
-<b>__getVirtualEnvironment</b>(<i></i>)
+<b>__getVirtualEnvironment</b>(<i>language=""</i>)
 <p>
         Private method to get the path of the virtual environment.
 </p><dl>
+<dt><i>language</i></dt>
+<dd>
+Python variant to get the virtual environment
+            for (string, one of '', 'Python2' or 'Python3')
+</dd>
+</dl><dl>
 <dt>Returns:</dt>
 <dd>
 path of the virtual environment (string)
@@ -436,19 +469,33 @@
         Public method to extract the messages catalog template file.
 </p><a NAME="Project.getPyramidCommand" ID="Project.getPyramidCommand"></a>
 <h4>Project.getPyramidCommand</h4>
-<b>getPyramidCommand</b>(<i>cmd</i>)
+<b>getPyramidCommand</b>(<i>cmd, language=""</i>)
 <p>
         Public method to build a Pyramid command.
 </p><dl>
 <dt><i>cmd</i></dt>
 <dd>
 command (string)
+</dd><dt><i>language</i></dt>
+<dd>
+Python variant to get the virtual environment
+            for (string, one of '', 'Python2' or 'Python3')
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
 full pyramid command (string)
 </dd>
+</dl><a NAME="Project.getPyramidVersion" ID="Project.getPyramidVersion"></a>
+<h4>Project.getPyramidVersion</h4>
+<b>getPyramidVersion</b>(<i></i>)
+<p>
+        Public method to get the Pyramid version.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+Pyramid version (string)
+</dd>
 </dl><a NAME="Project.getPythonCommand" ID="Project.getPythonCommand"></a>
 <h4>Project.getPythonCommand</h4>
 <b>getPythonCommand</b>(<i></i>)
@@ -516,7 +563,17 @@
 <b>projectOpenedHooks</b>(<i></i>)
 <p>
         Public method to add our hook methods.
-</p><a NAME="Project.updateCatalogs" ID="Project.updateCatalogs"></a>
+</p><a NAME="Project.supportedPythonVariants" ID="Project.supportedPythonVariants"></a>
+<h4>Project.supportedPythonVariants</h4>
+<b>supportedPythonVariants</b>(<i></i>)
+<p>
+        Public method to get the supported Python variants.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+list of supported Python variants (list of strings)
+</dd>
+</dl><a NAME="Project.updateCatalogs" ID="Project.updateCatalogs"></a>
 <h4>Project.updateCatalogs</h4>
 <b>updateCatalogs</b>(<i>filenames</i>)
 <p>
--- a/ProjectPyramid/Project.py	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/Project.py	Mon Apr 01 19:40:41 2013 +0200
@@ -53,6 +53,8 @@
         self.__mainMenu = None
         
         self.__serverProc = None
+        
+        self.__pyramidVersion = ""
     
     def initActions(self):
         """
@@ -441,13 +443,88 @@
             self.__serverProcFinished()
         self.__setCurrentProject(None)
     
-    def __getVirtualEnvironment(self):
+    def __getExecutablePaths(self, file):
+        """
+        Private method to build all full path of an executable file from
+        the environment.
+        
+        @param file filename of the executable (string)
+        @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.
+        """
+        paths = []
+        
+        if os.path.isabs(file):
+            if os.access(file, os.X_OK):
+                return [file]
+            else:
+                return []
+            
+        cur_path = os.path.join(os.curdir, file)
+        if os.path.exists(cur_path):
+            if os.access(cur_path, os.X_OK):
+                paths.append(cur_path)
+
+        path = os.getenv('PATH')
+        
+        # environment variable not defined
+        if path is not None:
+            dirs = path.split(os.pathsep)
+            for dir in dirs:
+                exe = os.path.join(dir, file)
+                if os.access(exe, os.X_OK) and exe not in paths:
+                    paths.append(exe)
+        
+        return paths
+    
+    def supportedPythonVariants(self):
+        """
+        Public method to get the supported Python variants.
+        
+        @return list of supported Python variants (list of strings)
+        """
+        variants = []
+        cmd = "pcreate"
+        
+        for variant in 'Python2', 'Python3':
+            virtEnv = self.__getVirtualEnvironment(variant)
+            if virtEnv:
+                fullCmd = self.getPyramidCommand(cmd, variant)
+                if fullCmd != cmd:
+                    variants.append(variant)
+            else:
+                try:
+                    fullCmds = Utilities.getExecutablePaths(cmd)
+                except AttributeError:
+                    fullCmds = self.__getExecutablePaths(cmd)
+                for fullCmd in fullCmds:
+                    try:
+                        f = open(fullCmd, 'r', encoding='utf-8')
+                        l0 = f.readline()
+                        f.close()
+                    except (IOError, OSError):
+                        l0 = ""
+                    if variant.lower() in l0.lower() or \
+                       "{0}.".format(variant[-1]) in l0 or \
+                       (variant == "Python2" and \
+                        "python3" not in l0.lower() and \
+                        "python" in l0.lower()):
+                        variants.append(variant)
+                        break
+        
+        return variants
+    
+    def __getVirtualEnvironment(self, language=""):
         """
         Private method to get the path of the virtual environment.
         
+        @param language Python variant to get the virtual environment
+            for (string, one of '', 'Python2' or 'Python3')
         @return path of the virtual environment (string)
         """
-        language = self.__e5project.getProjectLanguage()
+        if not language:
+            language = self.__e5project.getProjectLanguage()
         if language == "Python3":
             virtEnv = self.__plugin.getPreferences("VirtualEnvironmentPy3")
         elif language == "Python2":
@@ -458,19 +535,27 @@
             virtEnv = ""
         return virtEnv
     
-    def getPyramidCommand(self, cmd):
+    def getPyramidCommand(self, cmd, language=""):
         """
         Public method to build a Pyramid command.
         
         @param cmd command (string)
+        @param language Python variant to get the virtual environment
+            for (string, one of '', 'Python2' or 'Python3')
         @return full pyramid command (string)
         """
-        virtualEnv = self.__getVirtualEnvironment()
+        virtualEnv = self.__getVirtualEnvironment(language)
         if virtualEnv:
             if isWindowsPlatform():
                 cmd = os.path.join(virtualEnv, "Scripts", cmd)
             else:
-                cmd = os.path.join(virtualEnv, "bin", cmd)
+                fullCmd = os.path.join(virtualEnv, "bin", cmd)
+                if not os.path.exists(fullCmd):
+                    fullCmd = os.path.join(virtualEnv, "local", "bin", cmd)
+                    if not os.path.exists(fullCmd):
+                        # fall back to just cmd
+                        fullCmd = cmd
+                cmd = fullCmd
         return cmd
     
     def getPythonCommand(self):
@@ -505,20 +590,48 @@
         """
         Private slot to show some info about Pyramid.
         """
+        version = self.getPyramidVersion()
         url = "http://www.pylonsproject.org/projects/pyramid/about"
+        
         msgBox = E5MessageBox.E5MessageBox(E5MessageBox.Question,
             self.trUtf8("About Pyramid"),
             self.trUtf8(
                 "<p>Pyramid is a high-level Python Web framework that encourages rapid "
                 "development and clean, pragmatic design.</p>"
-                "<p>URL: <a href=\"{0}\">{0}</a></p>"
-            ).format(url),
+                "<p><table>"
+                "<tr><td>Version:</td><td>{0}</td></tr>"
+                "<tr><td>URL:</td><td><a href=\"{1}\">"
+                "{1}</a></td></tr>"
+                "</table></p>"
+            ).format(version, url),
             modal=True,
             buttons=E5MessageBox.Ok)
         msgBox.setIconPixmap(UI.PixmapCache.getPixmap(
             os.path.join("ProjectPyramid", "icons", "pyramid64.png")))
         msgBox.exec_()
     
+    def getPyramidVersion(self):
+        """
+        Public method to get the Pyramid version.
+        
+        @return Pyramid version (string)
+        """
+        if not self.__pyramidVersion:
+            cmd = self.getPyramidCommand("pcreate")
+            try:
+                f = open(cmd, 'r', encoding="utf-8")
+                lines = f.read().splitlines()
+                f.close()
+                for line in lines:
+                    if line.startswith("__requires__"):
+                        # sample: __requires__ = 'pyramid==1.4'
+                        vers = line.strip().split()[-1][1:-1].split("==")[1]
+                        self.__pyramidVersion = vers
+            except (IOError, OSError):
+                self.__pyramidVersion = ""
+        
+        return self.__pyramidVersion
+    
     def isSpawningConsole(self, consoleCmd):
         """
         Public method to check, if the given console is a spawning console.
Binary file ProjectPyramid/i18n/pyramid_de.qm has changed
--- a/ProjectPyramid/i18n/pyramid_de.ts	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/i18n/pyramid_de.ts	Mon Apr 01 19:40:41 2013 +0200
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de_DE">
+<!DOCTYPE TS><TS version="2.0" language="de_DE" sourcelanguage="">
 <context>
     <name>CreateParametersDialog</name>
     <message>
@@ -148,312 +147,312 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="67"/>
+        <location filename="ProjectPyramid/Project.py" line="65"/>
         <source>Current Pyramid Project</source>
         <translation>Aktuelles Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="71"/>
+        <location filename="ProjectPyramid/Project.py" line="69"/>
         <source>Selects the current Pyramid project</source>
         <translation>Wählt das aktuelle Pyramid Projekt aus</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="73"/>
+        <location filename="ProjectPyramid/Project.py" line="71"/>
         <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="ProjectPyramid/Project.py" line="549"/>
+        <location filename="ProjectPyramid/Project.py" line="673"/>
         <source>Create Pyramid Project</source>
         <translation>Pyramid Projekt erstellen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="85"/>
+        <location filename="ProjectPyramid/Project.py" line="83"/>
         <source>Create Pyramid &amp;Project</source>
         <translation>Pyramid &amp;Projekt erstellen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="89"/>
+        <location filename="ProjectPyramid/Project.py" line="87"/>
         <source>Creates a new Pyramid project</source>
         <translation>Erstellt ein neues Pyramid Projekt</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="91"/>
+        <location filename="ProjectPyramid/Project.py" line="89"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Pyramid Projekt erstellen&lt;/b&gt;&lt;p&gt;Erstellt ein neues Pyramid Projekt mittels &quot;pcreate&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="700"/>
+        <location filename="ProjectPyramid/Project.py" line="824"/>
         <source>Run Server</source>
         <translation>Server starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="102"/>
+        <location filename="ProjectPyramid/Project.py" line="100"/>
         <source>Run &amp;Server</source>
         <translation>&amp;Server starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="106"/>
+        <location filename="ProjectPyramid/Project.py" line="104"/>
         <source>Starts the Pyramid Web server</source>
         <translation>Startet den Pyramid Web Server</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="108"/>
+        <location filename="ProjectPyramid/Project.py" line="106"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Server starten&lt;/b&gt;&lt;p&gt;Startet den Pyramid Web Server mittels &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with Logging</source>
         <translation>Server mit Logging starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with &amp;Logging</source>
         <translation>Server mit &amp;Logging starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="120"/>
+        <location filename="ProjectPyramid/Project.py" line="118"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation>Startet den Pyramid Web Server mit Logging</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="122"/>
+        <location filename="ProjectPyramid/Project.py" line="120"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Server mit Logging starten&lt;/b&gt;&lt;p&gt;Startet den Pyramid Web Server mit Logging mittels &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Run Web-Browser</source>
         <translation>Web-Browser starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="130"/>
+        <location filename="ProjectPyramid/Project.py" line="128"/>
         <source>Run &amp;Web-Browser</source>
         <translation>Web-&amp;Browser starten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="134"/>
+        <location filename="ProjectPyramid/Project.py" line="132"/>
         <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="ProjectPyramid/Project.py" line="136"/>
+        <location filename="ProjectPyramid/Project.py" line="134"/>
         <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="ProjectPyramid/Project.py" line="782"/>
+        <location filename="ProjectPyramid/Project.py" line="906"/>
         <source>Start Pyramid Python Console</source>
         <translation>Starte Pyramid Python Konsole</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="144"/>
+        <location filename="ProjectPyramid/Project.py" line="142"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation>Starte Pyramid &amp;Python Konsole</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="148"/>
+        <location filename="ProjectPyramid/Project.py" line="146"/>
         <source>Starts an interactive Python interpreter</source>
         <translation>Startet einen interaktiven Python Interpreter</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="150"/>
+        <location filename="ProjectPyramid/Project.py" line="148"/>
         <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="ProjectPyramid/Project.py" line="813"/>
+        <location filename="ProjectPyramid/Project.py" line="937"/>
         <source>Setup Development Environment</source>
         <translation>Entwicklungsumgebung einrichten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="161"/>
+        <location filename="ProjectPyramid/Project.py" line="159"/>
         <source>Setup &amp;Development Environment</source>
         <translation>Entwicklungs&amp;umgebung einrichten</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="165"/>
+        <location filename="ProjectPyramid/Project.py" line="163"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation>Richtet das Pyramid Projekt im Entwicklungsmodus ein</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="167"/>
+        <location filename="ProjectPyramid/Project.py" line="165"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Entwicklungsumgebung einrichten&lt;/b&gt;&lt;p&gt;Richtet das Pyramid Projekt im Entwicklungsmodus mittels &quot;python setup.py develop&quot; ein.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="892"/>
+        <location filename="ProjectPyramid/Project.py" line="1018"/>
         <source>Initialize Database</source>
         <translation>Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="179"/>
+        <location filename="ProjectPyramid/Project.py" line="177"/>
         <source>Initialize &amp;Database</source>
         <translation>&amp;Datenbank initialisieren</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="183"/>
+        <location filename="ProjectPyramid/Project.py" line="181"/>
         <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="ProjectPyramid/Project.py" line="186"/>
+        <location filename="ProjectPyramid/Project.py" line="184"/>
         <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="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Show Matching Views</source>
         <translation>Passende Ansichten anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="198"/>
+        <location filename="ProjectPyramid/Project.py" line="196"/>
         <source>Show Matching &amp;Views</source>
         <translation>Passende &amp;Ansichten anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="202"/>
+        <location filename="ProjectPyramid/Project.py" line="200"/>
         <source>Show views matching a given URL</source>
         <translation>Zeigt Ansichten zu einer gegebenen URL an</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="204"/>
+        <location filename="ProjectPyramid/Project.py" line="202"/>
         <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="ProjectPyramid/Project.py" line="953"/>
+        <location filename="ProjectPyramid/Project.py" line="1079"/>
         <source>Show Routes</source>
         <translation>Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="211"/>
+        <location filename="ProjectPyramid/Project.py" line="209"/>
         <source>Show &amp;Routes</source>
         <translation>&amp;Routen anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="215"/>
+        <location filename="ProjectPyramid/Project.py" line="213"/>
         <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="ProjectPyramid/Project.py" line="217"/>
+        <location filename="ProjectPyramid/Project.py" line="215"/>
         <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="ProjectPyramid/Project.py" line="972"/>
+        <location filename="ProjectPyramid/Project.py" line="1100"/>
         <source>Show Tween Objects</source>
         <translation>Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="225"/>
+        <location filename="ProjectPyramid/Project.py" line="223"/>
         <source>Show &amp;Tween Objects</source>
         <translation>&amp;Tween Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="229"/>
+        <location filename="ProjectPyramid/Project.py" line="227"/>
         <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="ProjectPyramid/Project.py" line="231"/>
+        <location filename="ProjectPyramid/Project.py" line="229"/>
         <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="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build Distribution</source>
         <translation>Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build &amp;Distribution</source>
         <translation>&amp;Distribution erzeugen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="247"/>
+        <location filename="ProjectPyramid/Project.py" line="245"/>
         <source>Builds a distribution file for the Pyramid project</source>
         <translation>Erzeugt Dateien zur Distribution eines Pyramid Projektes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="249"/>
+        <location filename="ProjectPyramid/Project.py" line="247"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Distribution erzeugen&lt;/b&gt;&lt;p&gt;Erzeugt Dateien zur Distribution eines Pyramid Projektes mittels &quot;python setup.py sdist&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>Documentation</source>
         <translation>Dokumentation</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>D&amp;ocumentation</source>
         <translation>D&amp;okumentation</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="265"/>
+        <location filename="ProjectPyramid/Project.py" line="263"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation>Zeigt die Hilfeanzeige mit der Pyramid Dokumentation</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="267"/>
+        <location filename="ProjectPyramid/Project.py" line="265"/>
         <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="ProjectPyramid/Project.py" line="500"/>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
         <source>About Pyramid</source>
         <translation>Über Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="278"/>
+        <location filename="ProjectPyramid/Project.py" line="276"/>
         <source>About P&amp;yramid</source>
         <translation>Über P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="282"/>
+        <location filename="ProjectPyramid/Project.py" line="280"/>
         <source>Shows some information about Pyramid</source>
         <translation>Zeigt einige Informationen über Pyramid an</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="284"/>
+        <location filename="ProjectPyramid/Project.py" line="282"/>
         <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="ProjectPyramid/Project.py" line="299"/>
+        <location filename="ProjectPyramid/Project.py" line="297"/>
         <source>P&amp;yramid</source>
         <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="336"/>
+        <location filename="ProjectPyramid/Project.py" line="334"/>
         <source>New template...</source>
         <translation>Neues Template...</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="345"/>
+        <location filename="ProjectPyramid/Project.py" line="343"/>
         <source>Extract Messages</source>
         <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="347"/>
+        <location filename="ProjectPyramid/Project.py" line="345"/>
         <source>Compile All Catalogs</source>
         <translation>Alle Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="349"/>
+        <location filename="ProjectPyramid/Project.py" line="347"/>
         <source>Compile Selected Catalogs</source>
         <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="352"/>
+        <location filename="ProjectPyramid/Project.py" line="350"/>
         <source>Update All Catalogs</source>
         <translation>Alle Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="354"/>
+        <location filename="ProjectPyramid/Project.py" line="352"/>
         <source>Update Selected Catalogs</source>
         <translation>Ausgewählte Kataloge aktualisieren</translation>
     </message>
@@ -478,142 +477,142 @@
         <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="ProjectPyramid/Project.py" line="500"/>
-        <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;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&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;p&gt;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt;&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <source>Select Pyramid Project</source>
         <translation>Pyramid Projekt auswählen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <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="ProjectPyramid/Project.py" line="645"/>
+        <location filename="ProjectPyramid/Project.py" line="769"/>
         <source>None</source>
         <translation>keines</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="648"/>
+        <location filename="ProjectPyramid/Project.py" line="772"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation>&amp;Aktuelles Pyramid Projekt ({0})</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1251"/>
+        <location filename="ProjectPyramid/Project.py" line="1379"/>
         <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="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <source>Process Generation Error</source>
         <translation>Fehler bei der Prozessgenerierung</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="727"/>
+        <location filename="ProjectPyramid/Project.py" line="851"/>
         <source>The Pyramid server could not be started.</source>
         <translation>Der Pyramid Server konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation>Der Web-Browser konnte nicht für die URL &quot;{0}&quot; gestartet werden.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation>Der Pyramid Konsolenprozess konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="828"/>
+        <location filename="ProjectPyramid/Project.py" line="952"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation>Die Pyramid Entwicklungsumgebung wurde erfolgreich eingerichtet.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="842"/>
+        <location filename="ProjectPyramid/Project.py" line="966"/>
         <source>Build Distribution File</source>
         <translation>Distributionsdateien erzeugen</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="862"/>
+        <location filename="ProjectPyramid/Project.py" line="988"/>
         <source>Python distribution file built successfully.</source>
         <translation>Python Distributionsdateien erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="906"/>
+        <location filename="ProjectPyramid/Project.py" line="1032"/>
         <source>Database initialized successfully.</source>
         <translation>Datenbank erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Enter the URL to be matched:</source>
         <translation>Gib die zu überprüfende URL ein:</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1062"/>
+        <location filename="ProjectPyramid/Project.py" line="1190"/>
         <source>Extract messages</source>
         <translation>Texte extrahieren</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1077"/>
+        <location filename="ProjectPyramid/Project.py" line="1205"/>
         <source>
 Messages extracted successfully.</source>
         <translation>Texte erfolgreich extrahiert.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1124"/>
+        <location filename="ProjectPyramid/Project.py" line="1252"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1173"/>
+        <location filename="ProjectPyramid/Project.py" line="1301"/>
         <source>Compiling message catalogs</source>
         <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1202"/>
+        <location filename="ProjectPyramid/Project.py" line="1330"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Textkataloge erfolgreich übersetzt.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1271"/>
+        <location filename="ProjectPyramid/Project.py" line="1399"/>
         <source>No locales detected. Aborting...</source>
         <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1247"/>
+        <location filename="ProjectPyramid/Project.py" line="1375"/>
         <source>Updating message catalogs</source>
         <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1276"/>
+        <location filename="ProjectPyramid/Project.py" line="1404"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1107"/>
+        <location filename="ProjectPyramid/Project.py" line="1235"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Initialisiere Textkatalog für &apos;{0}&apos;</translation>
     </message>
+    <message>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
+        <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>
 </context>
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="PluginProjectPyramid.py" line="184"/>
+        <location filename="PluginProjectPyramid.py" line="382"/>
         <source>Pyramid</source>
         <translation>Pyramid</translation>
     </message>
     <message>
-        <location filename="PluginProjectPyramid.py" line="160"/>
+        <location filename="PluginProjectPyramid.py" line="161"/>
         <source>eric5 version is too old, {0}, {1} or newer needed.</source>
         <translation>Die eric5 Version ist zu alt; {0}, {1} oder neuer wird benötigt.</translation>
     </message>
--- a/ProjectPyramid/i18n/pyramid_en.ts	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/i18n/pyramid_en.ts	Mon Apr 01 19:40:41 2013 +0200
@@ -147,312 +147,312 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="67"/>
+        <location filename="ProjectPyramid/Project.py" line="65"/>
         <source>Current Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="71"/>
+        <location filename="ProjectPyramid/Project.py" line="69"/>
         <source>Selects the current Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="73"/>
+        <location filename="ProjectPyramid/Project.py" line="71"/>
         <source>&lt;b&gt;Current Pyramid Project&lt;/b&gt;&lt;p&gt;Selects the Pyramid project. Used for multi-project Pyramid projects to switch between the projects.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="549"/>
+        <location filename="ProjectPyramid/Project.py" line="673"/>
         <source>Create Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="85"/>
+        <location filename="ProjectPyramid/Project.py" line="83"/>
         <source>Create Pyramid &amp;Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="89"/>
+        <location filename="ProjectPyramid/Project.py" line="87"/>
         <source>Creates a new Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="91"/>
+        <location filename="ProjectPyramid/Project.py" line="89"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="700"/>
+        <location filename="ProjectPyramid/Project.py" line="824"/>
         <source>Run Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="102"/>
+        <location filename="ProjectPyramid/Project.py" line="100"/>
         <source>Run &amp;Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="104"/>
+        <source>Starts the Pyramid Web server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="106"/>
-        <source>Starts the Pyramid Web server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="108"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with Logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with &amp;Logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="120"/>
+        <location filename="ProjectPyramid/Project.py" line="118"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="122"/>
+        <location filename="ProjectPyramid/Project.py" line="120"/>
         <source>&lt;b&gt;Run Server with Logging&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server with logging using &quot;pserve --log-file=server.log --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="130"/>
+        <location filename="ProjectPyramid/Project.py" line="128"/>
         <source>Run &amp;Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="132"/>
+        <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="134"/>
-        <source>Starts the default Web-Browser with the URL of the Pyramid Web server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="136"/>
         <source>&lt;b&gt;Run Web-Browser&lt;/b&gt;&lt;p&gt;Starts the default Web-Browser with the URL of the Pyramid Web server.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="782"/>
+        <location filename="ProjectPyramid/Project.py" line="906"/>
         <source>Start Pyramid Python Console</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="144"/>
+        <location filename="ProjectPyramid/Project.py" line="142"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="146"/>
+        <source>Starts an interactive Python interpreter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="148"/>
-        <source>Starts an interactive Python interpreter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="150"/>
         <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="ProjectPyramid/Project.py" line="813"/>
+        <location filename="ProjectPyramid/Project.py" line="937"/>
         <source>Setup Development Environment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="161"/>
+        <location filename="ProjectPyramid/Project.py" line="159"/>
         <source>Setup &amp;Development Environment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="163"/>
+        <source>Setup the Pyramid project in development mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="165"/>
-        <source>Setup the Pyramid project in development mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="167"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="892"/>
+        <location filename="ProjectPyramid/Project.py" line="1018"/>
         <source>Initialize Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="179"/>
+        <location filename="ProjectPyramid/Project.py" line="177"/>
         <source>Initialize &amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="183"/>
+        <location filename="ProjectPyramid/Project.py" line="181"/>
         <source>Initializes (or re-initializes) the database of the current Pyramid project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="186"/>
+        <location filename="ProjectPyramid/Project.py" line="184"/>
         <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="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Show Matching Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="198"/>
+        <location filename="ProjectPyramid/Project.py" line="196"/>
         <source>Show Matching &amp;Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="200"/>
+        <source>Show views matching a given URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="202"/>
-        <source>Show views matching a given URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="204"/>
         <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="ProjectPyramid/Project.py" line="953"/>
+        <location filename="ProjectPyramid/Project.py" line="1079"/>
         <source>Show Routes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="211"/>
+        <location filename="ProjectPyramid/Project.py" line="209"/>
         <source>Show &amp;Routes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="213"/>
+        <source>Show all URL dispatch routes used by a Pyramid application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="215"/>
-        <source>Show all URL dispatch routes used by a Pyramid application</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="217"/>
         <source>&lt;b&gt;Show Routes&lt;/b&gt;&lt;p&gt;Show all URL dispatch routes used by a Pyramid application in the order in which they are evaluated.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="972"/>
+        <location filename="ProjectPyramid/Project.py" line="1100"/>
         <source>Show Tween Objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="225"/>
+        <location filename="ProjectPyramid/Project.py" line="223"/>
         <source>Show &amp;Tween Objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="229"/>
+        <location filename="ProjectPyramid/Project.py" line="227"/>
         <source>Show all implicit and explicit tween objects used by a Pyramid application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="231"/>
+        <location filename="ProjectPyramid/Project.py" line="229"/>
         <source>&lt;b&gt;Show Tween Objects&lt;/b&gt;&lt;p&gt;Show all implicit and explicit tween objects used by a Pyramid application.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build Distribution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build &amp;Distribution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="245"/>
+        <source>Builds a distribution file for the Pyramid project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="247"/>
-        <source>Builds a distribution file for the Pyramid project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="249"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>D&amp;ocumentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="265"/>
+        <location filename="ProjectPyramid/Project.py" line="263"/>
         <source>Shows the help viewer with the Pyramid documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="267"/>
+        <location filename="ProjectPyramid/Project.py" line="265"/>
         <source>&lt;b&gt;Documentation&lt;/b&gt;&lt;p&gt;Shows the help viewer with the Pyramid documentation.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="500"/>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
         <source>About Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="278"/>
+        <location filename="ProjectPyramid/Project.py" line="276"/>
         <source>About P&amp;yramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="280"/>
+        <source>Shows some information about Pyramid</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="282"/>
-        <source>Shows some information about Pyramid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="284"/>
         <source>&lt;b&gt;About Pyramid&lt;/b&gt;&lt;p&gt;Shows some information about Pyramid.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="299"/>
+        <location filename="ProjectPyramid/Project.py" line="297"/>
         <source>P&amp;yramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="336"/>
+        <location filename="ProjectPyramid/Project.py" line="334"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="343"/>
+        <source>Extract Messages</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="345"/>
-        <source>Extract Messages</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="347"/>
         <source>Compile All Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="349"/>
+        <location filename="ProjectPyramid/Project.py" line="347"/>
         <source>Compile Selected Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="ProjectPyramid/Project.py" line="350"/>
+        <source>Update All Catalogs</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="ProjectPyramid/Project.py" line="352"/>
-        <source>Update All Catalogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="354"/>
         <source>Update Selected Catalogs</source>
         <translation type="unfinished"></translation>
     </message>
@@ -477,139 +477,139 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="500"/>
-        <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;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt;&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <source>Select Pyramid Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <source>Select the Pyramid project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="645"/>
+        <location filename="ProjectPyramid/Project.py" line="769"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="648"/>
+        <location filename="ProjectPyramid/Project.py" line="772"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1251"/>
+        <location filename="ProjectPyramid/Project.py" line="1379"/>
         <source>No current Pyramid project selected or no Pyramid project created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="727"/>
+        <location filename="ProjectPyramid/Project.py" line="851"/>
         <source>The Pyramid server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <source>The Pyramid Shell process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="828"/>
+        <location filename="ProjectPyramid/Project.py" line="952"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="842"/>
+        <location filename="ProjectPyramid/Project.py" line="966"/>
         <source>Build Distribution File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="862"/>
+        <location filename="ProjectPyramid/Project.py" line="988"/>
         <source>Python distribution file built successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="906"/>
+        <location filename="ProjectPyramid/Project.py" line="1032"/>
         <source>Database initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Enter the URL to be matched:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1062"/>
+        <location filename="ProjectPyramid/Project.py" line="1190"/>
         <source>Extract messages</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1077"/>
+        <location filename="ProjectPyramid/Project.py" line="1205"/>
         <source>
 Messages extracted successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1124"/>
+        <location filename="ProjectPyramid/Project.py" line="1252"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1173"/>
+        <location filename="ProjectPyramid/Project.py" line="1301"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1202"/>
+        <location filename="ProjectPyramid/Project.py" line="1330"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1271"/>
+        <location filename="ProjectPyramid/Project.py" line="1399"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1247"/>
+        <location filename="ProjectPyramid/Project.py" line="1375"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1276"/>
+        <location filename="ProjectPyramid/Project.py" line="1404"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1107"/>
+        <location filename="ProjectPyramid/Project.py" line="1235"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
+        <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="PluginProjectPyramid.py" line="184"/>
+        <location filename="PluginProjectPyramid.py" line="382"/>
         <source>Pyramid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="PluginProjectPyramid.py" line="160"/>
+        <location filename="PluginProjectPyramid.py" line="161"/>
         <source>eric5 version is too old, {0}, {1} or newer needed.</source>
         <translation type="unfinished"></translation>
     </message>
--- a/ProjectPyramid/i18n/pyramid_es.ts	Tue Mar 26 16:47:15 2013 +0100
+++ b/ProjectPyramid/i18n/pyramid_es.ts	Mon Apr 01 19:40:41 2013 +0200
@@ -147,312 +147,312 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="67"/>
+        <location filename="ProjectPyramid/Project.py" line="65"/>
         <source>Current Pyramid Project</source>
         <translation>Proyecto Pyramid Actual</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="71"/>
+        <location filename="ProjectPyramid/Project.py" line="69"/>
         <source>Selects the current Pyramid project</source>
         <translation>Selecciona el proyecto Piramid actual</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="73"/>
+        <location filename="ProjectPyramid/Project.py" line="71"/>
         <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="ProjectPyramid/Project.py" line="549"/>
+        <location filename="ProjectPyramid/Project.py" line="673"/>
         <source>Create Pyramid Project</source>
         <translation>Crear Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="85"/>
+        <location filename="ProjectPyramid/Project.py" line="83"/>
         <source>Create Pyramid &amp;Project</source>
         <translation>Crear &amp;Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="89"/>
+        <location filename="ProjectPyramid/Project.py" line="87"/>
         <source>Creates a new Pyramid project</source>
         <translation>Crea un nuevo proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="91"/>
+        <location filename="ProjectPyramid/Project.py" line="89"/>
         <source>&lt;b&gt;Create Pyramid Project&lt;/b&gt;&lt;p&gt;Creates a new Pyramid project using &quot;pcreate&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Crear Proyecto Pyramid &lt;/b&gt;&lt;p&gt;Crea un nuevo proyecto Pyramid usando &quot;pcreate&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="700"/>
+        <location filename="ProjectPyramid/Project.py" line="824"/>
         <source>Run Server</source>
         <translation>Lanzar Servidor</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="102"/>
+        <location filename="ProjectPyramid/Project.py" line="100"/>
         <source>Run &amp;Server</source>
         <translation>Lanzar &amp;Servidor</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="106"/>
+        <location filename="ProjectPyramid/Project.py" line="104"/>
         <source>Starts the Pyramid Web server</source>
         <translation>Inicia el servidor Web de Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="108"/>
+        <location filename="ProjectPyramid/Project.py" line="106"/>
         <source>&lt;b&gt;Run Server&lt;/b&gt;&lt;p&gt;Starts the Pyramid Web server using &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lanzar Servidor&lt;/b&gt;&lt;p&gt;Inicia el servidor Web de Pyramid usando &quot;pserve --reload development.ini&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with Logging</source>
         <translation>Lanzar Servidor con Log</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="116"/>
+        <location filename="ProjectPyramid/Project.py" line="114"/>
         <source>Run Server with &amp;Logging</source>
         <translation>Lanzar Servidor con &amp;Log</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="120"/>
+        <location filename="ProjectPyramid/Project.py" line="118"/>
         <source>Starts the Pyramid Web server with logging</source>
         <translation>Inicia el servidor Web de Pyramid con log</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="122"/>
+        <location filename="ProjectPyramid/Project.py" line="120"/>
         <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="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Run Web-Browser</source>
         <translation>Lanzar Navegador Web</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="130"/>
+        <location filename="ProjectPyramid/Project.py" line="128"/>
         <source>Run &amp;Web-Browser</source>
         <translation>Lanzar Navegador &amp;Web</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="134"/>
+        <location filename="ProjectPyramid/Project.py" line="132"/>
         <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="ProjectPyramid/Project.py" line="136"/>
+        <location filename="ProjectPyramid/Project.py" line="134"/>
         <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="ProjectPyramid/Project.py" line="782"/>
+        <location filename="ProjectPyramid/Project.py" line="906"/>
         <source>Start Pyramid Python Console</source>
         <translation>Iniciar Consola Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="144"/>
+        <location filename="ProjectPyramid/Project.py" line="142"/>
         <source>Start Pyramid &amp;Python Console</source>
         <translation>Iniciar Consola &amp;Python de Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="148"/>
+        <location filename="ProjectPyramid/Project.py" line="146"/>
         <source>Starts an interactive Python interpreter</source>
         <translation>Inicia un intérprete interactivo de Python</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="150"/>
+        <location filename="ProjectPyramid/Project.py" line="148"/>
         <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="ProjectPyramid/Project.py" line="813"/>
+        <location filename="ProjectPyramid/Project.py" line="937"/>
         <source>Setup Development Environment</source>
         <translation>Configurar Entorno de Desarrollo</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="161"/>
+        <location filename="ProjectPyramid/Project.py" line="159"/>
         <source>Setup &amp;Development Environment</source>
         <translation>Configurar Entorno de &amp;Desarrollo</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="165"/>
+        <location filename="ProjectPyramid/Project.py" line="163"/>
         <source>Setup the Pyramid project in development mode</source>
         <translation>Configurar el proyecto Pyramid en modo de desarrollo</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="167"/>
+        <location filename="ProjectPyramid/Project.py" line="165"/>
         <source>&lt;b&gt;Setup Development Environment&lt;/b&gt;&lt;p&gt;Setup the Pyramid project in development mode using &quot;python setup.py develop&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Configurar Entorno de Desarrollo&lt;/b&gt;&lt;p&gt;Configurar el proyecto Pyramid en modo de desarrollo usando &quot;python setup.py develop&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="892"/>
+        <location filename="ProjectPyramid/Project.py" line="1018"/>
         <source>Initialize Database</source>
         <translation>Inicializar Base de Datos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="179"/>
+        <location filename="ProjectPyramid/Project.py" line="177"/>
         <source>Initialize &amp;Database</source>
         <translation>Inicializar Base de &amp;Datos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="183"/>
+        <location filename="ProjectPyramid/Project.py" line="181"/>
         <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="ProjectPyramid/Project.py" line="186"/>
+        <location filename="ProjectPyramid/Project.py" line="184"/>
         <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="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Show Matching Views</source>
         <translation>Mostrar Vistas Concordantes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="198"/>
+        <location filename="ProjectPyramid/Project.py" line="196"/>
         <source>Show Matching &amp;Views</source>
         <translation>Mostrar &amp;Vistas Concordantes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="202"/>
+        <location filename="ProjectPyramid/Project.py" line="200"/>
         <source>Show views matching a given URL</source>
         <translation>Mostrar vistas que concuerdan con una URL dada</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="204"/>
+        <location filename="ProjectPyramid/Project.py" line="202"/>
         <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="ProjectPyramid/Project.py" line="953"/>
+        <location filename="ProjectPyramid/Project.py" line="1079"/>
         <source>Show Routes</source>
         <translation>Mostrar Rutas</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="211"/>
+        <location filename="ProjectPyramid/Project.py" line="209"/>
         <source>Show &amp;Routes</source>
         <translation>Mostrar &amp;Rutas</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="215"/>
+        <location filename="ProjectPyramid/Project.py" line="213"/>
         <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="ProjectPyramid/Project.py" line="217"/>
+        <location filename="ProjectPyramid/Project.py" line="215"/>
         <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="ProjectPyramid/Project.py" line="972"/>
+        <location filename="ProjectPyramid/Project.py" line="1100"/>
         <source>Show Tween Objects</source>
         <translation>Mostrar Objetos Gemelos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="225"/>
+        <location filename="ProjectPyramid/Project.py" line="223"/>
         <source>Show &amp;Tween Objects</source>
         <translation>Mos&amp;trar Objetos Gemelos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="229"/>
+        <location filename="ProjectPyramid/Project.py" line="227"/>
         <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="ProjectPyramid/Project.py" line="231"/>
+        <location filename="ProjectPyramid/Project.py" line="229"/>
         <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="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build Distribution</source>
         <translation>Construir Distribución</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="243"/>
+        <location filename="ProjectPyramid/Project.py" line="241"/>
         <source>Build &amp;Distribution</source>
         <translation>Construir &amp;Distribución</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="247"/>
+        <location filename="ProjectPyramid/Project.py" line="245"/>
         <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="ProjectPyramid/Project.py" line="249"/>
+        <location filename="ProjectPyramid/Project.py" line="247"/>
         <source>&lt;b&gt;Build Distribution&lt;/b&gt;&lt;p&gt;Builds a distribution file for the Pyramid project using &quot;python setup.py sdist&quot;.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Construir Distribución&lt;/b&gt;&lt;p&gt;Construye un archivo de distribución para el proyecto Pyramid usando &quot;python setup.py sdist&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>Documentation</source>
         <translation>Documentación</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="261"/>
+        <location filename="ProjectPyramid/Project.py" line="259"/>
         <source>D&amp;ocumentation</source>
         <translation>D&amp;ocumentación</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="265"/>
+        <location filename="ProjectPyramid/Project.py" line="263"/>
         <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="ProjectPyramid/Project.py" line="267"/>
+        <location filename="ProjectPyramid/Project.py" line="265"/>
         <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="ProjectPyramid/Project.py" line="500"/>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
         <source>About Pyramid</source>
         <translation>Acerca de Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="278"/>
+        <location filename="ProjectPyramid/Project.py" line="276"/>
         <source>About P&amp;yramid</source>
         <translation>Acerca de P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="282"/>
+        <location filename="ProjectPyramid/Project.py" line="280"/>
         <source>Shows some information about Pyramid</source>
         <translation>Muestra información sobre Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="284"/>
+        <location filename="ProjectPyramid/Project.py" line="282"/>
         <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="ProjectPyramid/Project.py" line="299"/>
+        <location filename="ProjectPyramid/Project.py" line="297"/>
         <source>P&amp;yramid</source>
         <translation>P&amp;yramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="336"/>
+        <location filename="ProjectPyramid/Project.py" line="334"/>
         <source>New template...</source>
         <translation>Nueva Plantilla...</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="345"/>
+        <location filename="ProjectPyramid/Project.py" line="343"/>
         <source>Extract Messages</source>
         <translation>Extraer Mensajes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="347"/>
+        <location filename="ProjectPyramid/Project.py" line="345"/>
         <source>Compile All Catalogs</source>
         <translation>Compilar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="349"/>
+        <location filename="ProjectPyramid/Project.py" line="347"/>
         <source>Compile Selected Catalogs</source>
         <translation>Compilar Catálogos Seleccionados</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="352"/>
+        <location filename="ProjectPyramid/Project.py" line="350"/>
         <source>Update All Catalogs</source>
         <translation>Actualizar Todos los Catálogos</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="354"/>
+        <location filename="ProjectPyramid/Project.py" line="352"/>
         <source>Update Selected Catalogs</source>
         <translation>Actualizar Catálogos Seleccionados</translation>
     </message>
@@ -479,137 +479,142 @@
     <message>
         <location filename="ProjectPyramid/Project.py" line="500"/>
         <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;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&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;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt;&lt;/p&gt;</translation>
+        <translation type="obsolete">&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;URL: &lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <source>Select Pyramid Project</source>
         <translation>Seleccionar Proyecto Pyramid</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="607"/>
+        <location filename="ProjectPyramid/Project.py" line="731"/>
         <source>Select the Pyramid project to work with.</source>
         <translation>Seleccionar el proyecto Pyramid con el que trabajar.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="645"/>
+        <location filename="ProjectPyramid/Project.py" line="769"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="648"/>
+        <location filename="ProjectPyramid/Project.py" line="772"/>
         <source>&amp;Current Pyramid Project ({0})</source>
         <translation>Proyecto Pyramid A&amp;ctual ({0})</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1251"/>
+        <location filename="ProjectPyramid/Project.py" line="1379"/>
         <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="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="727"/>
+        <location filename="ProjectPyramid/Project.py" line="851"/>
         <source>The Pyramid server could not be started.</source>
         <translation>No se ha podido iniciar el servidor de Pyramid.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="767"/>
+        <location filename="ProjectPyramid/Project.py" line="891"/>
         <source>Could not start the web-browser for the URL &quot;{0}&quot;.</source>
         <translation>No se ha podido inicialr el navegador web para la URL &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="801"/>
+        <location filename="ProjectPyramid/Project.py" line="925"/>
         <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="ProjectPyramid/Project.py" line="828"/>
+        <location filename="ProjectPyramid/Project.py" line="952"/>
         <source>Pyramid development environment setup successfully.</source>
         <translation>Entorno de desarrollo de Pyramid configurado con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="842"/>
+        <location filename="ProjectPyramid/Project.py" line="966"/>
         <source>Build Distribution File</source>
         <translation>Construir Archivo de Distribución</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="862"/>
+        <location filename="ProjectPyramid/Project.py" line="988"/>
         <source>Python distribution file built successfully.</source>
         <translation>Archivo de distribución Python construido con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="906"/>
+        <location filename="ProjectPyramid/Project.py" line="1032"/>
         <source>Database initialized successfully.</source>
         <translation>Base de Datos inicializada con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="930"/>
+        <location filename="ProjectPyramid/Project.py" line="1056"/>
         <source>Enter the URL to be matched:</source>
         <translation>Introducir la URL a ser concordada:</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1062"/>
+        <location filename="ProjectPyramid/Project.py" line="1190"/>
         <source>Extract messages</source>
         <translation>Extraer mensajes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1077"/>
+        <location filename="ProjectPyramid/Project.py" line="1205"/>
         <source>
 Messages extracted successfully.</source>
         <translation>Mensajes extraídos con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1124"/>
+        <location filename="ProjectPyramid/Project.py" line="1252"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Catálogo de Mensajes inicializado con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1173"/>
+        <location filename="ProjectPyramid/Project.py" line="1301"/>
         <source>Compiling message catalogs</source>
         <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1202"/>
+        <location filename="ProjectPyramid/Project.py" line="1330"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>Catálogo de Mensajes compilado con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1271"/>
+        <location filename="ProjectPyramid/Project.py" line="1399"/>
         <source>No locales detected. Aborting...</source>
         <translation>No se han detectado traducciones. Abortando...</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1247"/>
+        <location filename="ProjectPyramid/Project.py" line="1375"/>
         <source>Updating message catalogs</source>
         <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1276"/>
+        <location filename="ProjectPyramid/Project.py" line="1404"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>Catálogo de Mensajes actualizado con éxito.</translation>
     </message>
     <message>
-        <location filename="ProjectPyramid/Project.py" line="1107"/>
+        <location filename="ProjectPyramid/Project.py" line="1235"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Inicializando catálogo de mensajes para &apos;{0}&apos;</translation>
     </message>
+    <message>
+        <location filename="ProjectPyramid/Project.py" line="596"/>
+        <source>&lt;p&gt;Pyramid is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectPyramidPlugin</name>
     <message>
-        <location filename="PluginProjectPyramid.py" line="192"/>
+        <location filename="PluginProjectPyramid.py" line="382"/>
         <source>Pyramid</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="PluginProjectPyramid.py" line="160"/>
+        <location filename="PluginProjectPyramid.py" line="161"/>
         <source>eric5 version is too old, {0}, {1} or newer needed.</source>
         <translation>La versión de eric5 es demasiado antigua, {0}, es necesaria {1} o más reciente .</translation>
     </message>

eric ide

mercurial