Sun, 13 Nov 2022 14:10:57 +0100
CycloneDX Interface
- addad capability to generate readable (prettified) output
--- a/docs/changelog.md Sat Nov 12 17:49:08 2022 +0100 +++ b/docs/changelog.md Sun Nov 13 14:10:57 2022 +0100 @@ -8,6 +8,8 @@ - Code Style Checker - added a few imports style options and added a sorting function iaw. the 'isort' utility +- CycloneDX Interface + - addad capability to generate readable (prettified) output - MicroPython - introduced a configuration option to enable manual selection of devices (e.g. for unknown devices or inside the Linux container of ChromeOS)
--- a/src/eric7/APIs/Python3/eric7.api Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/APIs/Python3/eric7.api Sun Nov 13 14:10:57 2022 +0100 @@ -226,6 +226,8 @@ eric7.CycloneDXInterface.CycloneDXUtilities.CycloneDXEnvironmentParser?1(venvName) eric7.CycloneDXInterface.CycloneDXUtilities._addCycloneDXDependency?5(dependency, components) eric7.CycloneDXInterface.CycloneDXUtilities._amendMetaData?5(bomMetaData, metadataDict) +eric7.CycloneDXInterface.CycloneDXUtilities._prettifyJSON?5(inputStr) +eric7.CycloneDXInterface.CycloneDXUtilities._prettifyXML?5(inputStr) eric7.CycloneDXInterface.CycloneDXUtilities.addCycloneDXDependencies?4(parser, venvName) eric7.CycloneDXInterface.CycloneDXUtilities.addCycloneDXVulnerabilities?4(parser) eric7.CycloneDXInterface.CycloneDXUtilities.createCycloneDXFile?4(venvName)
--- a/src/eric7/CycloneDXInterface/CycloneDXConfigDialog.py Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/CycloneDXInterface/CycloneDXConfigDialog.py Sun Nov 13 14:10:57 2022 +0100 @@ -189,9 +189,9 @@ @return tuple containing the input source, the input file name, the file format, the schema version, the path of the SBOM file to be written, a flag indicating to include vulnerability information, - a flag indicating to include dependency information and a - dictionary containing the SBOM meta data - @rtype tuple of (str, str, str, str, str, bool, bool, dict) + a flag indicating to include dependency information, a flag indicating + to generate readable output and a dictionary containing the SBOM meta data + @rtype tuple of (str, str, str, str, str, bool, bool, bool, dict) """ if self.environmentButton.isChecked(): inputSource = "environment" @@ -237,5 +237,6 @@ sbomFile, self.vulnerabilityCheckBox.isChecked(), self.dependenciesCheckBox.isChecked(), + self.readableCheckBox.isChecked(), self.__metadata, )
--- a/src/eric7/CycloneDXInterface/CycloneDXConfigDialog.ui Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/CycloneDXInterface/CycloneDXConfigDialog.ui Sun Nov 13 14:10:57 2022 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>650</width> - <height>338</height> + <height>368</height> </rect> </property> <property name="windowTitle"> @@ -99,40 +99,6 @@ <string>SBOM Output</string> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="3" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Schema Version:</string> - </property> - </widget> - </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>File Name:</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QComboBox" name="schemaVersionComboBox"> - <property name="toolTip"> - <string>Select the SBOM schema version of the SBOM file</string> - </property> - </widget> - </item> - <item row="2" column="2"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>413</width> - <height>20</height> - </size> - </property> - </spacer> - </item> <item row="2" column="1"> <widget class="QComboBox" name="fileFormatComboBox"> <property name="toolTip"> @@ -150,23 +116,6 @@ </item> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>File Format:</string> - </property> - </widget> - </item> - <item row="4" column="1" colspan="2"> - <widget class="EricPathPicker" name="filePicker" native="true"> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the file path for the SBOM file (leave empty for default)</string> - </property> - </widget> - </item> <item row="0" column="0" colspan="3"> <widget class="QCheckBox" name="vulnerabilityCheckBox"> <property name="toolTip"> @@ -193,6 +142,67 @@ </property> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>File Format:</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QComboBox" name="schemaVersionComboBox"> + <property name="toolTip"> + <string>Select the SBOM schema version of the SBOM file</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>413</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="5" column="1" colspan="2"> + <widget class="EricPathPicker" name="filePicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the file path for the SBOM file (leave empty for default)</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>File Name:</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Schema Version:</string> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QCheckBox" name="readableCheckBox"> + <property name="toolTip"> + <string>Select to generate non-compact, readable output</string> + </property> + <property name="text"> + <string>Generate Readable Output</string> + </property> + </widget> + </item> </layout> </widget> </item> @@ -225,6 +235,7 @@ <tabstop>dependenciesCheckBox</tabstop> <tabstop>fileFormatComboBox</tabstop> <tabstop>schemaVersionComboBox</tabstop> + <tabstop>readableCheckBox</tabstop> <tabstop>filePicker</tabstop> </tabstops> <resources/>
--- a/src/eric7/CycloneDXInterface/CycloneDXUtilities.py Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/CycloneDXInterface/CycloneDXUtilities.py Sun Nov 13 14:10:57 2022 +0100 @@ -7,8 +7,12 @@ Module implementing the interface to CycloneDX. """ +import contextlib +import json import os +from xml.etree import ElementTree + from cyclonedx.model import ( ExternalReference, ExternalReferenceType, @@ -91,6 +95,7 @@ sbomFile, withVulnerabilities, withDependencies, + readableOutput, metadataDict, ) = dlg.getData() @@ -162,16 +167,68 @@ "V{0}".format(schemaVersion.replace(".", "_")) ], ) - output.output_to_file(filename=sbomFile, allow_overwrite=True) + outputStr = output.output_as_string() + if readableOutput: + if fileFormat == "XML": + outputStr = _prettifyXML(outputStr) + elif fileFormat == "JSON": + outputStr = _prettifyJSON(outputStr) + + try: + with open(sbomFile, "w", encoding="utf-8") as f: + f.write(outputStr) + EricMessageBox.information( + None, + QCoreApplication.translate("CycloneDX", "CycloneDX - SBOM Creation"), + QCoreApplication.translate( + "CycloneDX", "<p>The SBOM data was written to file <b>{0}</b>.</p>" + ).format(sbomFile), + ) + except OSError as err: + EricMessageBox.critical( + None, + QCoreApplication.translate("CycloneDX", "CycloneDX - SBOM Creation"), + QCoreApplication.translate( + "CycloneDX", + "<p>The SBOM file <b>{0}</b> could not be written.</p>" + "<p>Reason: {1}</p>", + ).format(sbomFile, str(err)), + ) + - EricMessageBox.information( - None, - QCoreApplication.translate("CycloneDX", "CycloneDX - SBOM Creation"), - QCoreApplication.translate( - "CycloneDX", "<p>The SBOM data was written to file <b>{0}</b>.</p>" - ).format(sbomFile), +def _prettifyXML(inputStr): + """ + Function to prettify the SBOM XML output generated by CycloneDX. + + Note: Prettifying an XML tree works only with Python 3.9 and above! + + @param inputStr output generated by CycloneDX + @type str + @return prettified SBOM string + @rtype str + """ + tree = ElementTree.fromstring(inputStr) + with contextlib.suppress(AttributeError): + ElementTree.indent(tree) + return '<?xml version="1.0" encoding="UTF-8"?>\n' + ElementTree.tostring( + tree, encoding="unicode" ) + return inputStr + + +def _prettifyJSON(inputStr): + """ + Function to prettify the SBOM JSON output generated by CycloneDX. + + @param inputStr output generated by CycloneDX + @type str + @return prettified SBOM string + @rtype str + """ + sbom = json.loads(inputStr) + return json.dumps(sbom, indent=" ") + def addCycloneDXVulnerabilities(parser): """
--- a/src/eric7/Documentation/Help/source.qhp Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/Documentation/Help/source.qhp Sun Nov 13 14:10:57 2022 +0100 @@ -18498,6 +18498,8 @@ <keyword name="_main" id="_main" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_main" /> <keyword name="_parse_multi_options" id="_parse_multi_options" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_parse_multi_options" /> <keyword name="_percentReplacementFunc" id="_percentReplacementFunc" ref="eric7.Utilities.__init__.html#_percentReplacementFunc" /> + <keyword name="_prettifyJSON" id="_prettifyJSON" ref="eric7.CycloneDXInterface.CycloneDXUtilities.html#_prettifyJSON" /> + <keyword name="_prettifyXML" id="_prettifyXML" ref="eric7.CycloneDXInterface.CycloneDXUtilities.html#_prettifyXML" /> <keyword name="_shallPatch" id="_shallPatch" ref="eric7.DebugClients.Python.MultiProcessDebugExtension.html#_shallPatch" /> <keyword name="_statIsDangerous" id="_statIsDangerous" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Security.Checks.generalFilePermissions.html#_statIsDangerous" /> <keyword name="_stylesheet" id="_stylesheet" ref="eric7.UI.CodeDocumentationViewerTemplate.html#_stylesheet" />
--- a/src/eric7/Documentation/Source/eric7.CycloneDXInterface.CycloneDXConfigDialog.html Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/Documentation/Source/eric7.CycloneDXInterface.CycloneDXConfigDialog.html Sun Nov 13 14:10:57 2022 +0100 @@ -126,14 +126,14 @@ tuple containing the input source, the input file name, the file format, the schema version, the path of the SBOM file to be written, a flag indicating to include vulnerability information, - a flag indicating to include dependency information and a - dictionary containing the SBOM meta data + a flag indicating to include dependency information, a flag indicating + to generate readable output and a dictionary containing the SBOM meta data </dd> </dl> <dl> <dt>Return Type:</dt> <dd> -tuple of (str, str, str, str, str, bool, bool, dict) +tuple of (str, str, str, str, str, bool, bool, bool, dict) </dd> </dl> <a NAME="CycloneDXConfigDialog.on_fileFormatComboBox_currentTextChanged" ID="CycloneDXConfigDialog.on_fileFormatComboBox_currentTextChanged"></a>
--- a/src/eric7/Documentation/Source/eric7.CycloneDXInterface.CycloneDXUtilities.html Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/Documentation/Source/eric7.CycloneDXInterface.CycloneDXUtilities.html Sun Nov 13 14:10:57 2022 +0100 @@ -38,6 +38,14 @@ <td>Function to amend the SBOM meta data according the given data.</td> </tr> <tr> +<td><a href="#_prettifyJSON">_prettifyJSON</a></td> +<td>Function to prettify the SBOM JSON output generated by CycloneDX.</td> +</tr> +<tr> +<td><a href="#_prettifyXML">_prettifyXML</a></td> +<td>Function to prettify the SBOM XML output generated by CycloneDX.</td> +</tr> +<tr> <td><a href="#addCycloneDXDependencies">addCycloneDXDependencies</a></td> <td>Function to add dependency data to the list of created components.</td> </tr> @@ -166,6 +174,67 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> +<a NAME="_prettifyJSON" ID="_prettifyJSON"></a> +<h2>_prettifyJSON</h2> +<b>_prettifyJSON</b>(<i>inputStr</i>) + +<p> + Function to prettify the SBOM JSON output generated by CycloneDX. +</p> +<dl> + +<dt><i>inputStr</i> (str)</dt> +<dd> +output generated by CycloneDX +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +prettified SBOM string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> +<a NAME="_prettifyXML" ID="_prettifyXML"></a> +<h2>_prettifyXML</h2> +<b>_prettifyXML</b>(<i>inputStr</i>) + +<p> + Function to prettify the SBOM XML output generated by CycloneDX. +</p> +<p> + Note: Prettifying an XML tree works only with Python 3.9 and above! +</p> +<dl> + +<dt><i>inputStr</i> (str)</dt> +<dd> +output generated by CycloneDX +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +prettified SBOM string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +<hr /> <a NAME="addCycloneDXDependencies" ID="addCycloneDXDependencies"></a> <h2>addCycloneDXDependencies</h2> <b>addCycloneDXDependencies</b>(<i>parser, venvName</i>)
--- a/src/eric7/i18n/eric7_cs.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_cs.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5555,7 +5555,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>Nesprávné kódování '{0}' pro daný text.</translation> </message> @@ -7781,27 +7781,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7867,21 +7873,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7897,16 +7888,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7926,6 +7907,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78352,28 +78368,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Zobrazit</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation>Stisknout pro zobrazení všech souborů, které obsahují problém</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished">Chyby</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation type="unfinished">Chyby: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>Žádné problémy nenalezeny.</translation> </message> @@ -78381,28 +78397,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Kontrola syntaxe</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Syntaxe...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Kontrola syntaxe.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Kontrola Syntaxe...</b><p>Zkontroluje všechny Python soubory na syntaktické chyby.</p></translation> </message> @@ -85621,7 +85637,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Můžete použít %-kódy a rezervovaná místa ve stringu. Podporované kódy jsou:<table><tr> <td>%C</td> <td>sloupec kurzoru v aktuálním editoru</td></tr><tr> <td>%D</td> <td>adresář v aktuálním editoru</td></tr><tr> <td>%F</td> <td>jméno souboru v aktuálním editoru</td></tr><tr> <td>%H</td> <td>home adresář aktuálního uživatele</td></tr><tr> <td>%L</td> <td>řádek s kurzorem v aktuálním editoru</td></tr><tr> <td>%P</td> <td>cesta aktuálního projektu</td></tr><tr> <td>%S</td> <td>vybraný text v aktuálním editoru</td></tr><tr> <td>%U</td> <td>uživatelské jméno aktuálního uživatele</td></tr><tr> <td>%%</td> <td>znak procenta</td></tr></table></p></translation> </message> @@ -91463,54 +91479,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished">{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished">{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_de.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_de.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5563,7 +5563,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210"/> + <location filename="../Utilities/__init__.py" line="206"/> <source>The coding '{0}' is wrong for the given text.</source> <translation>Die Kodierung „{0}“ ist für den übergebenen Text falsch.</translation> </message> @@ -7796,27 +7796,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169"/> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146"/> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115"/> <source>CycloneDX - SBOM Creation</source> <translation>CyccloneDX - STL Erzeugung</translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118"/> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation><p>Die konfigurierte Eingabedatei <b>{0}</b> existiert nicht. Abbruch...</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152"/> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation><p>Einige der Abhängigkeiten haben keine feste Versionsnummer.<ul>{0}</ul>Die oben aufgeführten Pakete werden NICHT in der erzeugten CycloneDX STL Datei enthalten sein, da die Version ein Pflichtfeld ist.</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170"/> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183"/> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation><p>Die STL Daten wurden in die Datei <b>{0}</b> geschrieben.</p></translation> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191"/> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation><p>Die SBOM Datei <b>{0}</b> konnte nicht geschrieben werden.</p><p>Ursache: {1}</p></translation> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7882,21 +7888,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> - <source>Schema Version:</source> - <translation>Schemaversion:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> - <source>File Name:</source> - <translation>Dateiname:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> - <source>Select the SBOM schema version of the SBOM file</source> - <translation>Wähle die STL Schemaversion der STL Datei</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> <source>Select the format of the SBOM file</source> <translation>Wähle das Format der STL Datei</translation> </message> @@ -7912,16 +7903,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> - <source>File Format:</source> - <translation>Dateiformat:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation>Gib den Dateipfad für die STL Datei ein (leer lassen für Standardwert)</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation>Auswählen, um Verwundbarkeitsdaten in der erzeugten STL aufzunehmen (erfordert Schema 1.4 oder neuer)</translation> </message> @@ -7941,6 +7922,41 @@ <translation>Abhängigkeiten aufnehmen</translation> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>File Format:</source> + <translation>Dateiformat:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>Select the SBOM schema version of the SBOM file</source> + <translation>Wähle die STL Schemaversion der STL Datei</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation>Gib den Dateipfad für die STL Datei ein (leer lassen für Standardwert)</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>File Name:</source> + <translation>Dateiname:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>Schema Version:</source> + <translation>Schemaversion:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>Select to generate non-compact, readable output</source> + <translation>Auswählen, um eine lesbare Ausgabe zu erzeugen</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0"/> + <source>Generate Readable Output</source> + <translation>Erzeuge lesbare Ausgabe</translation> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110"/> <source>Edit Metadata...</source> <translation>Metadaten bearbeiten...</translation> @@ -78568,28 +78584,28 @@ <translation>%v/%m Dateien</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53"/> <source>Show</source> <translation>Zeige</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56"/> <source>Press to show all files containing an issue</source> <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105"/> <source>Errors</source> <translation>Fehler</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304"/> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -78597,28 +78613,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196"/> <source>Check Syntax</source> <translation>Syntax prüfen</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197"/> <source>&Syntax...</source> <translation>&Syntax...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203"/> <source>Check syntax.</source> <translation>Syntax prüfen.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216"/> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218"/> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205"/> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Syntax prüfen...</b><p>Dies überprüft Python-Dateien auf Syntaxfehler.</p></translation> </message> @@ -85863,7 +85879,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605"/> + <location filename="../Utilities/__init__.py" line="1616"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Sie können %-Codes als Platzhalter in der Eingabe verwenden. Unterstützte Codes sind:<table><tr><td>%C</td><td>Spalte des Cursor des aktuellen Editors</td></tr><tr><td>%D</td><td>Verzeichnis des aktuellen Editors</td></tr><tr><td>%F</td><td>Dateiname des aktuellen Editors</td></tr><tr><td>%H</td><td>Home-Verzeichnis des aktullen Nutzers</td></tr><tr><td>%L</td><td>Zeile des Cursor des aktuellen Editors</td></tr><tr><td>%P</td><td>Pfad des aktuellen Projektes</td></tr><tr><td>%S</td><td>selektierter Text des aktuellen Editors</td></tr><tr><td>%U</td><td>Nutzername des aktuellen Nutzers</td></tr><tr><td>%%</td><td>das Prozentzeichen</td></tr></table></p></translation> </message> @@ -91709,54 +91725,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304"/> <source>Add Virtual Environment</source> <translation>Virtuelle Umgebung hinzufügen</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305"/> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation>Eine virtuelle Umgebung mit Namen <b>{0}</b> existiert bereits. Soll sie ersetzt werden?</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377"/> <source>Change Virtual Environment</source> <translation>Virtuelle Umgebung ändern</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434"/> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378"/> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation>Eine virtuelle Umgebung mit Namen <b>{0}</b> existiert nicht. Abbruch!</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441"/> <source>Rename Virtual Environment</source> <translation>Virtuelle Umgebung umbenennen</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532"/> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467"/> - <source>{0} - {1}</source> - <translation>{0} – {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474"/> - <source>Delete Virtual Environments</source> - <translation>Virtuelle Umgebung löschen</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475"/> - <source>Do you really want to delete these virtual environments?</source> - <translation>Sollen diese virtuellen Umgebungen wirklich gelöscht werden?</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539"/> - <source>Remove Virtual Environments</source> - <translation>Virtuelle Umgebung entfernen</translation> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540"/> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475"/> + <source>{0} - {1}</source> + <translation>{0} – {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482"/> + <source>Delete Virtual Environments</source> + <translation>Virtuelle Umgebung löschen</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483"/> + <source>Do you really want to delete these virtual environments?</source> + <translation>Sollen diese virtuellen Umgebungen wirklich gelöscht werden?</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547"/> + <source>Remove Virtual Environments</source> + <translation>Virtuelle Umgebung entfernen</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548"/> <source>Do you really want to remove these virtual environments?</source> <translation>Sollen diese virtuellen Umgebungen wirklich entfernt werden?</translation> </message>
--- a/src/eric7/i18n/eric7_empty.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_empty.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5512,7 +5512,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation type="unfinished" /> </message> @@ -7737,27 +7737,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7823,21 +7829,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7853,16 +7844,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7882,6 +7863,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78022,28 +78038,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation type="unfinished" /> </message> @@ -78051,28 +78067,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation type="unfinished" /> </message> @@ -85277,7 +85293,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation type="unfinished" /> </message> @@ -91084,54 +91100,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_en.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_en.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5520,7 +5520,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation type="unfinished" /> </message> @@ -7745,27 +7745,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7831,21 +7837,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7861,16 +7852,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7890,6 +7871,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78071,28 +78087,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation type="unfinished" /> </message> @@ -78100,28 +78116,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation type="unfinished" /> </message> @@ -85330,7 +85346,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation type="unfinished" /> </message> @@ -91137,54 +91153,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_es.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_es.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5582,7 +5582,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>La codificación '{0}' es incorrecta para el texto indicado.</translation> </message> @@ -7815,27 +7815,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation>CycloneDX - Creation de SBOM</translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation><p>El archivo de input configurado <b>{0}</b> no existe. Abortando...</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation><p>Algunas de las dependencias no tienen establecidos números de versión.<ul>{0}</ul>Los packages listados arriba NO se incluirán en el archivo CycloneDX SBOM generado puesto que la versión es un campo obligatorio.</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation><p>Los datos de SBOM se han escrito al archivo <b>{0}</b>.</p></translation> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7901,21 +7907,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation>Versión de Schema:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation>Nombre de Archivo:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation>Seleccionar la versión de schema de SBOM del archivo SBOM</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation>Seleccionar el formato del archivo SBOM</translation> </message> @@ -7931,16 +7922,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation>Formato de Archivo:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation>Introducir la ruta de archivo para el archivo SBOM (dejar en blanco para valor por defecto)</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation>Seleccionar para incluir datos de vulnerabilidad en el SBOM generado (necesita Schema 1.4 o mayor)</translation> </message> @@ -7960,6 +7941,41 @@ <translation>Incluir Dependencias</translation> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation>Formato de Archivo:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation>Seleccionar la versión de schema de SBOM del archivo SBOM</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation>Introducir la ruta de archivo para el archivo SBOM (dejar en blanco para valor por defecto)</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation>Nombre de Archivo:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation>Versión de Schema:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation>Editar Metadatos...</translation> @@ -78594,28 +78610,28 @@ <translation>%v/%m Archivos</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Mostrar</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation>Pulsar para mostrar todos los archivos con algún problema</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation>Errores</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation>Error: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>No se han encontrado problemas.</translation> </message> @@ -78623,28 +78639,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Verificar sintaxis</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Sintaxis...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Verificar sintaxis.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Verificar Sintaxis...</b><p>Chequea archivos de Python buscando errores sintácticos.</p></translation> </message> @@ -85888,7 +85904,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Puede utilizar %-códigos como marcadores en la cadena. Los valores sportados son:<table><tr><td>%C</td><td>columna del cursos en el editor actual</td></tr><tr><td>%D</td><td>directorio del editor actual</td></tr><tr><td>%F</td><td>nombre de archivo del editor actual</td></tr><tr><td>%H</td><td>directorio home del usuario actual</td></tr><tr><td>%L</td><td>línea del cursor en el editor actual</td></tr><tr><td>%P</td><td>ruta del proyecto actual</td></tr><tr><td>%S</td><td>texto seleccionado en el editor actual</td></tr><tr><td>%U</td><td>nombre de usuario del usuario actual</td></tr><tr><td>%%</td><td>signo de porcentaje</td></tr></table></p></translation> </message> @@ -91734,54 +91750,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation>Añadir Entorno Virtual</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation>Un entorno virtual llamado <b>{0}</b> ya existe. ¿Desea reemplazarlo?</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation>Cambiar Entorno Virtual</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation>Un entorno virtual llamado <b>{0}</b> no existe. ¡Abortando!</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation>Renombrar Entorno Virtual</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation>{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation>Borrar Entornos Virtuales</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation>¿Desea borrar estos entornos virtuales?</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation>Eliminar Entornos Virtuales</translation> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation>{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation>Borrar Entornos Virtuales</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation>¿Desea borrar estos entornos virtuales?</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation>Eliminar Entornos Virtuales</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation>¿Desea eliminar estos entornos virtuales?</translation> </message>
--- a/src/eric7/i18n/eric7_fr.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_fr.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5585,7 +5585,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>L'encodage '{0}' n'est pas adapté pour le texte.</translation> </message> @@ -7816,27 +7816,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7902,21 +7908,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished">Nom de fichier :</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7932,16 +7923,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7961,6 +7942,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished">Nom de fichier :</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78525,28 +78541,28 @@ <translation>Fichiers %v/%m</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Afficher</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation>Cliquer pour afficher tous les fichiers contenant une issue</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation>Erreurs</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation>Erreur : {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>Pas d'issue trouvée.</translation> </message> @@ -78562,28 +78578,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Vérification de la syntaxe</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Syntaxe...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Vérification de la syntaxe.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Vérification de la syntaxe...</b><p>Vérifie les erreurs de syntaxe des fichiers Python.</p></translation> </message> @@ -85820,7 +85836,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Vous pouvez utiliser la syntaxe "%-code" dans la chaine de caractères. Les codes supportés sont :<table><tr><td>%C</td><td>colonne du curseur de l'éditeur courant</td></tr><tr><td>%D</td><td>répertoire de l'éditeur courant</td></tr><tr><td>%F</td><td>nom de fichier de l'éditeur courant</td></tr><tr><td>%H</td><td>répertoire 'home' de l'utilisateur courant</td></tr><tr><td>%L</td><td>ligne du curseur de l'éditeur courant</td></tr><tr><td>%P</td><td>chemin du projet courant</td></tr><tr><td>%S</td><td>texte sélectionné dans l'éditeur courant</td></tr><tr><td>%U</td><td>nom d'utilisateur de l'utilisateur courant</td></tr><tr><td>%%</td><td>le signe pourcent</td></tr></table></p></translation> </message> @@ -91678,54 +91694,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation>Ajouter environnement virtuel</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation>Un environnement virtuel nommé <b>{0}</b> existe déjà. Faut il le remplacer ?</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation>Modifier l'environnement virtuel</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation>Renommer l'environnement virtuel</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation>{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation>Supprimer les environnements virtuels</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation>Voulez-vous vraiment supprimer ces environnements virtuels ?</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation>Supprimer les environnements virtuels</translation> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation>{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation>Supprimer les environnements virtuels</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation>Voulez-vous vraiment supprimer ces environnements virtuels ?</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation>Supprimer les environnements virtuels</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation>Voulez-vous vraiment supprimer ces environnements virtuels ?</translation> </message>
--- a/src/eric7/i18n/eric7_it.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_it.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5570,7 +5570,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>La codifica '{0}' è errata per questo testo.</translation> </message> @@ -7797,27 +7797,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7883,21 +7889,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7913,16 +7904,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7942,6 +7923,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78435,28 +78451,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Mostra</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation>Premi per mostrare tutti i file che contengono errori di sintassi</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished">Errori</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation>Errore: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>Nessun problema trovato.</translation> </message> @@ -78464,28 +78480,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Controlla sintassi</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Sintassi...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Controlla sintassi.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Controlla sintassi...</b><p>Controlla i file Python per errori di sintassi.</p></translation> </message> @@ -85719,7 +85735,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Puoi usare i codici % come segnaposti nella stringa. I codici supportati sono: <table><tr><td>%C</td><td>colonna del cursore nell'editor attuale</td></tr><tr><td>%D</td><td>directory dell'editor attuale</td></tr><tr><td>%F</td><td>nome file dell'editor corrente</td></tr><tr><td>%H</td><td>directory home dell'utente attuale</td></tr><tr><td>%L</td><td>linea del cursore dell'editor attuale</td></tr><tr><td>%P</td><td>percorso del progetto attuale</td></tr><tr><td>%S</td><td>testo selezionato dell'editor attuale</td></tr><tr><td>%U</td><td>username dell'utente attuale</td></tr><tr><td>%%</td><td>Segno percentuale</td></tr></table></p></translation> </message> @@ -91542,54 +91558,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished">{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished">{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_pt.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_pt.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5585,7 +5585,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>A codificação '{0}' é incorreta para o texto indicado.</translation> </message> @@ -7812,27 +7812,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7898,21 +7904,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7928,16 +7919,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7957,6 +7938,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78281,28 +78297,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Mostrar</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation type="unfinished">Pressionar para mostrar todos os ficheiros que tenham algum problema</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished">Erros</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation type="unfinished">Erro: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation type="unfinished">Não se encontraram problemas.</translation> </message> @@ -78318,28 +78334,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Verificar Sintaxe</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Sintaxe...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Verificar sintaxe.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Verificar Sintaxe...</b><b>Verifica erros de sintaxe nos ficheiros Python.</p></translation> </message> @@ -85569,7 +85585,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Pode usar códigos % como espaços reservados dentro da string. Os códigos suportados são:<table><tr><td>%C</td><td>coluna do cursor do editor atual</td></tr><tr><td>%D</td><td>directório do editor atual</td></tr><tr><td>%F</td><td>nome do ficheiro do editor atual</td></tr><tr><td>%H</td><td>diretório home do usuário atual</td></tr><tr><td>%L</td><td>linha do cursor do editor atual</td></tr><tr><td>%P</td><td>rota do projeto atual</td></tr><tr><td>%S</td><td>texto selecionado do editor atual</td></tr><tr><td>%U</td><td>nome de usuário do usuário atual</td></tr><tr><td>%%</td><td>sinal de percentagem</td></tr></table></p></translation> </message> @@ -91376,54 +91392,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_ru.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_ru.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5593,7 +5593,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>Кодировка '{0}' не подходит для выбранного текста.</translation> </message> @@ -7827,27 +7827,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation>Создание SBOM - CycloneDX</translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation><p>Конфигурированный файл ввода <b>{0}</b> не существует. Прерывание...</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation><p>Некоторые зависимости не имеют закрепленных номеров версий.<ul>{0}</ul>Перечисленные выше пакеты НЕ будут включены в сгенерированный файл CycloneDX SBOM, поскольку версия является обязательным полем.</p></translation> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation><p>Данные SBOM были записаны в файл <b>{0}</b>.</p></translation> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7913,21 +7919,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation>Версия схемы:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation>Имя файла:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation>Выберите версию схемы SBOM файла SBOM</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation>Выберите формат файла SBOM</translation> </message> @@ -7943,16 +7934,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation>Формат файла:</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation>Укажите путь к файлу SBOM (оставьте пустым по умолчанию)</translation> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation>Разрешить включать данные об уязвимостях в сгенерированный SBOM (требуется схема 1.4 или новее)</translation> </message> @@ -7972,6 +7953,41 @@ <translation>Включать зависимости</translation> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation>Формат файла:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation>Выберите версию схемы SBOM файла SBOM</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation>Укажите путь к файлу SBOM (оставьте пустым по умолчанию)</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation>Имя файла:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation>Версия схемы:</translation> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation>Правка метаданных...</translation> @@ -78762,28 +78778,28 @@ <translation>%v из %m файла(ов)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Показать</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation>Показать все файлы, содержащие ошибки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation>Ошибки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation>Ошибка: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>Проблем со стилем не найдено.</translation> </message> @@ -78791,28 +78807,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Проверить синтаксис</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Синтаксис...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Проверить синтаксис.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Проверить синтаксис...</b><p>Проверка файлов Python на синтаксические ошибки.</p></translation> </message> @@ -86073,7 +86089,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Вы можете использовать %-коды как заполнители в строке: <table> @@ -91966,54 +91982,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation>Добавить виртуальное окружение</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation>Виртуальное окружение с именем <b>{0}</b> уже существует.Заменить его?</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation>Изменить виртуальное окружение</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation>Виртуальное окружение с именем <b>{0}</b> не существует. Прерывание!</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation>Переименовать виртуальное окружение</translation> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation>{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation>Удалить виртуальные окружения</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation>Вы действительно хотите удалить эти виртуальные окружения?</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation>Убрать виртуальные окружения из списка</translation> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation>{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation>Удалить виртуальные окружения</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation>Вы действительно хотите удалить эти виртуальные окружения?</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation>Убрать виртуальные окружения из списка</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation>Вы действительно хотите убрать эти виртуальные окружения из списка?</translation> </message>
--- a/src/eric7/i18n/eric7_tr.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_tr.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5547,7 +5547,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>Verilen metin için '{0}'nun kodlaması hatalı.</translation> </message> @@ -7773,27 +7773,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7859,21 +7865,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7889,16 +7880,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7918,6 +7899,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78233,28 +78249,28 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>Göster</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation type="unfinished">Hatalar</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation>Hata: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation>Sorun bulunamadı.</translation> </message> @@ -78262,28 +78278,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>Sözdizimi Kontrolü</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>&Sözdizimi...</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>Sözdizimini kontrol et.</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>Sözdizimini Kontrol Et...</b><p>Bu kontrol Python dosyalarını sözdizimi hatalarına karşı yapılır.</p></translation> </message> @@ -85506,7 +85522,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>%-alanlarda çeşitli kodları kullanabilirsiniz. Tanımlanan kodlar:<table><tr><td>%C</td><td>geçerli düzenleyicinin imlecinin sütunu</td></tr><tr><td>%D</td><td>geçerli düzenleyicinin dizini</td></tr><tr><td>%F</td><td>geçerli düzenleyicinin dosya adı</td></tr><tr><td>%H</td><td>geçerli kullancının ana dizini</td></tr><tr><td>%L</td><td>geçerli düzenleyicinin imlecinin satırı</td></tr><tr><td>%P</td><td>geçerli projenin yolu</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>Geçici kullanıcının kullanıcı adı</td></tr><tr><td>%%</td><td>oran işareti</td></tr></table></p></translation> </message> @@ -91316,54 +91332,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished">{0} - {1}</translation> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished">{0} - {1}</translation> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts Sat Nov 12 17:49:08 2022 +0100 +++ b/src/eric7/i18n/eric7_zh_CN.ts Sun Nov 13 14:10:57 2022 +0100 @@ -5585,7 +5585,7 @@ <context> <name>CodingError</name> <message> - <location filename="../Utilities/__init__.py" line="210" /> + <location filename="../Utilities/__init__.py" line="206" /> <source>The coding '{0}' is wrong for the given text.</source> <translation>跟据所给文本,编码 “{0}” 是错误的。</translation> </message> @@ -7816,27 +7816,33 @@ <context> <name>CycloneDX</name> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="169" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="146" /> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="110" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="190" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="182" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="151" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="115" /> <source>CycloneDX - SBOM Creation</source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="113" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="118" /> <source><p>The configured input file <b>{0}</b> does not exist. Aborting...</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="147" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="152" /> <source><p>Some of the dependencies do not have pinned version numbers.<ul>{0}</ul>The above listed packages will NOT be included in the generated CycloneDX SBOM file as version is a mandatory field.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="170" /> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="183" /> <source><p>The SBOM data was written to file <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXUtilities.py" line="191" /> + <source><p>The SBOM file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> </context> <context> <name>CycloneDXConfigDialog</name> @@ -7902,21 +7908,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Schema Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Select the SBOM schema version of the SBOM file</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select the format of the SBOM file</source> <translation type="unfinished" /> </message> @@ -7932,16 +7923,6 @@ </message> <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>File Format:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> - <source>Enter the file path for the SBOM file (leave empty for default)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> <source>Select to include vulnerability data in the generated SBOM (requires Schema 1.4 or newer)</source> <translation type="unfinished" /> </message> @@ -7961,6 +7942,41 @@ <translation type="unfinished" /> </message> <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Format:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select the SBOM schema version of the SBOM file</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Enter the file path for the SBOM file (leave empty for default)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>File Name:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Schema Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Select to generate non-compact, readable output</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CycloneDXInterface/CycloneDXConfigDialog.ui" line="0" /> + <source>Generate Readable Output</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../CycloneDXInterface/CycloneDXConfigDialog.py" line="110" /> <source>Edit Metadata...</source> <translation type="unfinished" /> @@ -78387,28 +78403,28 @@ <translation type="unfinished">%v/%m 文件</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="52" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="53" /> <source>Show</source> <translation>显示</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="55" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="56" /> <source>Press to show all files containing an issue</source> <translation type="unfinished">按下以统计所有有问题的文件</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="105" /> <source>Errors</source> <translation>错误</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="304" /> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="311" /> <source>Error: {0}</source> <translation type="unfinished">错误:{0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="416" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="460" /> <source>No issues found.</source> <translation type="unfinished">未发现问题。</translation> </message> @@ -78424,28 +78440,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="194" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="196" /> <source>Check Syntax</source> <translation>检查语法</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="295" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="213" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="195" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="297" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="215" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="197" /> <source>&Syntax...</source> <translation>语法(&S)…</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="201" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> <source>Check syntax.</source> <translation>检查语法。</translation> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="298" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="216" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="300" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="218" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation><b>检查语法…</b><p>检查 Python 文件的语法错误。</p></translation> </message> @@ -85676,7 +85692,7 @@ <context> <name>Utilities</name> <message> - <location filename="../Utilities/__init__.py" line="1605" /> + <location filename="../Utilities/__init__.py" line="1616" /> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>可以在字符串中使用“%-代码”作为占位符。支持的代码有:<table><tr><td>%C</td><td>当前编辑器的光标所在列</td></tr><tr><td>%D</td><td>当前编辑器的文件夹</td></tr><tr><td>%F</td><td>当前编辑器的文件名</td></tr><tr><td>%H</td><td>当前用户的根目录</td></tr><tr><td>%L</td><td>当前编辑器的光标所在行</td></tr><tr><td>%P</td><td>当前项目的路径</td></tr><tr><td>%S</td><td>当前编辑器中选择的文本</td></tr><tr><td>%U</td><td>当前用户的用户名</td></tr><tr><td>%%</td><td>百分比符号</td></tr></table></p></translation> </message> @@ -91499,54 +91515,54 @@ <context> <name>VirtualenvManager</name> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="296" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="304" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="297" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="305" /> <source>A virtual environment named <b>{0}</b> exists already. Shall it be replaced?</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="369" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="377" /> <source>Change Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="434" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="370" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="442" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="378" /> <source>A virtual environment named <b>{0}</b> does not exist. Aborting!</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="433" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="441" /> <source>Rename Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="532" /> - <location filename="../VirtualEnv/VirtualenvManager.py" line="467" /> - <source>{0} - {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="474" /> - <source>Delete Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> - <source>Do you really want to delete these virtual environments?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../VirtualEnv/VirtualenvManager.py" line="539" /> - <source>Remove Virtual Environments</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../VirtualEnv/VirtualenvManager.py" line="540" /> + <location filename="../VirtualEnv/VirtualenvManager.py" line="475" /> + <source>{0} - {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="482" /> + <source>Delete Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="483" /> + <source>Do you really want to delete these virtual environments?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="547" /> + <source>Remove Virtual Environments</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../VirtualEnv/VirtualenvManager.py" line="548" /> <source>Do you really want to remove these virtual environments?</source> <translation type="unfinished" /> </message>