Modified the pip licenses dialog to not show the package type selection anymore. eric7

Sun, 05 Mar 2023 17:07:49 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 05 Mar 2023 17:07:49 +0100
branch
eric7
changeset 9850
20c49b517679
parent 9849
99782ca569ed
child 9851
ec12090e9cd9

Modified the pip licenses dialog to not show the package type selection anymore.

src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.PipInterface.Pip.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.PipInterface.PipLicensesDialog.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.PipInterface.pipdeptree.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.PipInterface.piplicenses.html file | annotate | diff | comparison | revisions
src/eric7/PipInterface/Pip.py file | annotate | diff | comparison | revisions
src/eric7/PipInterface/PipLicensesDialog.py file | annotate | diff | comparison | revisions
src/eric7/PipInterface/PipLicensesDialog.ui file | annotate | diff | comparison | revisions
src/eric7/PipInterface/piplicenses.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/src/eric7/APIs/Python3/eric7.api	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/APIs/Python3/eric7.api	Sun Mar 05 17:07:49 2023 +0100
@@ -3382,8 +3382,8 @@
 eric7.PipInterface.Pip.Pip.getIndexUrlPypi?4()
 eric7.PipInterface.Pip.Pip.getIndexUrlSearch?4()
 eric7.PipInterface.Pip.Pip.getInstalledPackages?4(envName, localPackages=True, notRequired=False, usersite=False)
-eric7.PipInterface.Pip.Pip.getLicenses?4(envName, localPackages=True, usersite=False, summary=False)
-eric7.PipInterface.Pip.Pip.getLicensesSummary?4(envName, localPackages=True, usersite=False)
+eric7.PipInterface.Pip.Pip.getLicenses?4(envName, summary=False)
+eric7.PipInterface.Pip.Pip.getLicensesSummary?4(envName)
 eric7.PipInterface.Pip.Pip.getNetworkAccessManager?4()
 eric7.PipInterface.Pip.Pip.getOutdatedPackages?4(envName, localPackages=True, notRequired=False, usersite=False, interpreter=None, )
 eric7.PipInterface.Pip.Pip.getPackageDetails?4(name, version)
@@ -3552,11 +3552,13 @@
 eric7.PipInterface.pipdeptree.guess_version?4(pkg_key, default="?")
 eric7.PipInterface.pipdeptree.handle_non_host_target?4(args)
 eric7.PipInterface.pipdeptree.main?4()
+eric7.PipInterface.pipdeptree.mermaid_id?4(key: str)
 eric7.PipInterface.pipdeptree.print_graphviz?4(dump_output)
 eric7.PipInterface.pipdeptree.render_conflicts_text?4(conflicts)
 eric7.PipInterface.pipdeptree.render_cycles_text?4(cycles)
 eric7.PipInterface.pipdeptree.render_json?4(tree, indent)
 eric7.PipInterface.pipdeptree.render_json_tree?4(tree, indent)
+eric7.PipInterface.pipdeptree.render_mermaid?4(tree)
 eric7.PipInterface.pipdeptree.render_text?4(tree, list_all=True, frozen=False)
 eric7.PipInterface.pipdeptree.sorted_tree?4(tree)
 eric7.PipInterface.piplicenses.CompatibleArgumentParser._verify_args?5(args: CustomNamespace)
@@ -3583,6 +3585,8 @@
 eric7.PipInterface.piplicenses.SUMMARY_FIELD_NAMES?7
 eric7.PipInterface.piplicenses.SUMMARY_OUTPUT_FIELDS?7
 eric7.PipInterface.piplicenses.SYSTEM_PACKAGES?7
+eric7.PipInterface.piplicenses.case_insensitive_set_diff?4(set_a, set_b)
+eric7.PipInterface.piplicenses.case_insensitive_set_intersect?4(set_a, set_b)
 eric7.PipInterface.piplicenses.choices_from_enum?4(enum_cls: Type[NoValueEnum])
 eric7.PipInterface.piplicenses.create_licenses_list?4(args: "CustomNamespace", output_fields=DEFAULT_OUTPUT_FIELDS)
 eric7.PipInterface.piplicenses.create_output_string?4(args: "CustomNamespace")
@@ -3592,7 +3596,7 @@
 eric7.PipInterface.piplicenses.enum_key_to_value?4(enum_key: Enum)
 eric7.PipInterface.piplicenses.filter_string?4(item: str)
 eric7.PipInterface.piplicenses.find_license_from_classifier?4(classifiers: list[str])
-eric7.PipInterface.piplicenses.get_installed_distributions?4(local_only=True, user_only=False)
+eric7.PipInterface.piplicenses.get_installed_distributions?4()
 eric7.PipInterface.piplicenses.get_output_fields?4(args: CustomNamespace)
 eric7.PipInterface.piplicenses.get_packages?4(args: CustomNamespace, )
 eric7.PipInterface.piplicenses.get_pkg_included_file?4(pkg, file_names_rgx: str)
@@ -10386,12 +10390,6 @@
 eric7.UI.NumbersWidget.NumbersWidget.on_octOutButton_clicked?4()
 eric7.UI.NumbersWidget.NumbersWidget.on_sizeBox_valueChanged?4(value)
 eric7.UI.NumbersWidget.NumbersWidget?1(parent=None)
-eric7.UI.PixmapCache.addSearchPath?7
-eric7.UI.PixmapCache.getCombinedIcon?7
-eric7.UI.PixmapCache.getIcon?7
-eric7.UI.PixmapCache.getPixmap?7
-eric7.UI.PixmapCache.getSymlinkIcon?7
-eric7.UI.PixmapCache.removeSearchPath?7
 eric7.UI.Previewer.Previewer.hide?4()
 eric7.UI.Previewer.Previewer.preferencesChanged?4()
 eric7.UI.Previewer.Previewer.setSplitter?4(splitter)
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Sun Mar 05 17:07:49 2023 +0100
@@ -11970,7 +11970,7 @@
       <keyword name="PipLicensesDialog (Constructor)" id="PipLicensesDialog (Constructor)" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__init__" />
       <keyword name="PipLicensesDialog (Module)" id="PipLicensesDialog (Module)" ref="eric7.PipInterface.PipLicensesDialog.html" />
       <keyword name="PipLicensesDialog.__filterPackagesByLicense" id="PipLicensesDialog.__filterPackagesByLicense" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__filterPackagesByLicense" />
-      <keyword name="PipLicensesDialog.__refreshLicenses" id="PipLicensesDialog.__refreshLicenses" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__refreshLicenses" />
+      <keyword name="PipLicensesDialog.__populateLicenses" id="PipLicensesDialog.__populateLicenses" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__populateLicenses" />
       <keyword name="PipLicensesDialog.__saveAsCSV" id="PipLicensesDialog.__saveAsCSV" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__saveAsCSV" />
       <keyword name="PipPackageDetailsDialog" id="PipPackageDetailsDialog" ref="eric7.PipInterface.PipPackageDetailsDialog.html#PipPackageDetailsDialog" />
       <keyword name="PipPackageDetailsDialog (Constructor)" id="PipPackageDetailsDialog (Constructor)" ref="eric7.PipInterface.PipPackageDetailsDialog.html#PipPackageDetailsDialog.__init__" />
@@ -19000,6 +19000,8 @@
       <keyword name="break_after_binary_operator" id="break_after_binary_operator" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#break_after_binary_operator" />
       <keyword name="break_before_binary_operator" id="break_before_binary_operator" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#break_before_binary_operator" />
       <keyword name="calculateEndline" id="calculateEndline" ref="eric7.Utilities.ClassBrowsers.pyclbr.html#calculateEndline" />
+      <keyword name="case_insensitive_set_diff" id="case_insensitive_set_diff" ref="eric7.PipInterface.piplicenses.html#case_insensitive_set_diff" />
+      <keyword name="case_insensitive_set_intersect" id="case_insensitive_set_intersect" ref="eric7.PipInterface.piplicenses.html#case_insensitive_set_intersect" />
       <keyword name="certificateValidation (Module)" id="certificateValidation (Module)" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Security.Checks.certificateValidation.html" />
       <keyword name="changeRememberedMaster" id="changeRememberedMaster" ref="eric7.Utilities.crypto.__init__.html#changeRememberedMaster" />
       <keyword name="checkAssertUsed" id="checkAssertUsed" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Security.Checks.assert.html#checkAssertUsed" />
@@ -19761,6 +19763,7 @@
       <keyword name="maximum_doc_length" id="maximum_doc_length" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#maximum_doc_length" />
       <keyword name="maximum_line_length" id="maximum_line_length" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#maximum_line_length" />
       <keyword name="mccabe (Module)" id="mccabe (Module)" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Complexity.mccabe.html" />
+      <keyword name="mermaid_id" id="mermaid_id" ref="eric7.PipInterface.pipdeptree.html#mermaid_id" />
       <keyword name="messageHandler" id="messageHandler" ref="eric7.EricWidgets.EricErrorMessage.html#messageHandler" />
       <keyword name="messageHandlerInstalled" id="messageHandlerInstalled" ref="eric7.EricWidgets.EricErrorMessage.html#messageHandlerInstalled" />
       <keyword name="mimeType" id="mimeType" ref="eric7.Utilities.MimeTypes.html#mimeType" />
@@ -19893,6 +19896,7 @@
       <keyword name="render_cycles_text" id="render_cycles_text" ref="eric7.PipInterface.pipdeptree.html#render_cycles_text" />
       <keyword name="render_json" id="render_json" ref="eric7.PipInterface.pipdeptree.html#render_json" />
       <keyword name="render_json_tree" id="render_json_tree" ref="eric7.PipInterface.pipdeptree.html#render_json_tree" />
+      <keyword name="render_mermaid" id="render_mermaid" ref="eric7.PipInterface.pipdeptree.html#render_mermaid" />
       <keyword name="render_text" id="render_text" ref="eric7.PipInterface.pipdeptree.html#render_text" />
       <keyword name="requestWithoutTimeout (Module)" id="requestWithoutTimeout (Module)" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Security.Checks.requestWithoutTimeout.html" />
       <keyword name="resetInterface" id="resetInterface" ref="eric7.CondaInterface.__init__.html#resetInterface" />
--- a/src/eric7/Documentation/Source/eric7.PipInterface.Pip.html	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.Pip.html	Sun Mar 05 17:07:49 2023 +0100
@@ -529,7 +529,7 @@
 </dl>
 <a NAME="Pip.getLicenses" ID="Pip.getLicenses"></a>
 <h4>Pip.getLicenses</h4>
-<b>getLicenses</b>(<i>envName, localPackages=True, usersite=False, summary=False</i>)
+<b>getLicenses</b>(<i>envName, summary=False</i>)
 
 <p>
         Public method to get the licenses per package for a given environment.
@@ -540,16 +540,6 @@
 <dd>
 name of the environment to get the licenses for
 </dd>
-<dt><i>localPackages</i> (bool)</dt>
-<dd>
-flag indicating to get the licenses for local
-            packages only
-</dd>
-<dt><i>usersite</i> (bool)</dt>
-<dd>
-flag indicating to get the licenses for packages
-            installed in user-site directory only
-</dd>
 <dt><i>summary</i> (bool (optional))</dt>
 <dd>
 flag indicating to get a summary listing (defaults to
@@ -571,7 +561,7 @@
 </dl>
 <a NAME="Pip.getLicensesSummary" ID="Pip.getLicensesSummary"></a>
 <h4>Pip.getLicensesSummary</h4>
-<b>getLicensesSummary</b>(<i>envName, localPackages=True, usersite=False</i>)
+<b>getLicensesSummary</b>(<i>envName</i>)
 
 <p>
         Public method to get a summary of licenses found in a given
@@ -583,16 +573,6 @@
 <dd>
 name of the environment to get the licenses summary for
 </dd>
-<dt><i>localPackages</i> (bool)</dt>
-<dd>
-flag indicating to get the licenses summary for
-            local packages only
-</dd>
-<dt><i>usersite</i> (bool)</dt>
-<dd>
-flag indicating to get the licenses summary for
-            packages installed in user-site directory only
-</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
--- a/src/eric7/Documentation/Source/eric7.PipInterface.PipLicensesDialog.html	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.PipLicensesDialog.html	Sun Mar 05 17:07:49 2023 +0100
@@ -63,8 +63,8 @@
 <td>Private slot to filter the list of packages by license.</td>
 </tr>
 <tr>
-<td><a href="#PipLicensesDialog.__refreshLicenses">__refreshLicenses</a></td>
-<td>Private slot to refresh the license lists.</td>
+<td><a href="#PipLicensesDialog.__populateLicenses">__populateLicenses</a></td>
+<td>Private slot to populate the license lists.</td>
 </tr>
 <tr>
 <td><a href="#PipLicensesDialog.__saveAsCSV">__saveAsCSV</a></td>
@@ -123,12 +123,12 @@
 license name
 </dd>
 </dl>
-<a NAME="PipLicensesDialog.__refreshLicenses" ID="PipLicensesDialog.__refreshLicenses"></a>
-<h4>PipLicensesDialog.__refreshLicenses</h4>
-<b>__refreshLicenses</b>(<i></i>)
+<a NAME="PipLicensesDialog.__populateLicenses" ID="PipLicensesDialog.__populateLicenses"></a>
+<h4>PipLicensesDialog.__populateLicenses</h4>
+<b>__populateLicenses</b>(<i></i>)
 
 <p>
-        Private slot to refresh the license lists.
+        Private slot to populate the license lists.
 </p>
 <a NAME="PipLicensesDialog.__saveAsCSV" ID="PipLicensesDialog.__saveAsCSV"></a>
 <h4>PipLicensesDialog.__saveAsCSV</h4>
--- a/src/eric7/Documentation/Source/eric7.PipInterface.pipdeptree.html	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.pipdeptree.html	Sun Mar 05 17:07:49 2023 +0100
@@ -116,6 +116,10 @@
 <td></td>
 </tr>
 <tr>
+<td><a href="#mermaid_id">mermaid_id</a></td>
+<td>Returns a valid Mermaid node ID from a string.</td>
+</tr>
+<tr>
 <td><a href="#print_graphviz">print_graphviz</a></td>
 <td>Dump the data generated by GraphViz to stdout.</td>
 </tr>
@@ -136,6 +140,10 @@
 <td>Converts the tree into a nested json representation.</td>
 </tr>
 <tr>
+<td><a href="#render_mermaid">render_mermaid</a></td>
+<td>Produce a Mermaid flowchart from the dependency graph.</td>
+</tr>
+<tr>
 <td><a href="#render_text">render_text</a></td>
 <td>Print tree as text on console</td>
 </tr>
@@ -825,6 +833,16 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="mermaid_id" ID="mermaid_id"></a>
+<h2>mermaid_id</h2>
+<b>mermaid_id</b>(<i>key: str</i>)
+
+<p>
+Returns a valid Mermaid node ID from a string.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="print_graphviz" ID="print_graphviz"></a>
 <h2>print_graphviz</h2>
 <b>print_graphviz</b>(<i>dump_output</i>)
@@ -899,6 +917,19 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="render_mermaid" ID="render_mermaid"></a>
+<h2>render_mermaid</h2>
+<b>render_mermaid</b>(<i>tree</i>)
+
+<p>
+Produce a Mermaid flowchart from the dependency graph.
+</p>
+<p>
+    :param dict tree: dependency graph
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="render_text" ID="render_text"></a>
 <h2>render_text</h2>
 <b>render_text</b>(<i>tree, list_all=True, frozen=False</i>)
--- a/src/eric7/Documentation/Source/eric7.PipInterface.piplicenses.html	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.piplicenses.html	Sun Mar 05 17:07:49 2023 +0100
@@ -81,6 +81,14 @@
 <table>
 
 <tr>
+<td><a href="#case_insensitive_set_diff">case_insensitive_set_diff</a></td>
+<td>Same as set.difference() but case-insensitive</td>
+</tr>
+<tr>
+<td><a href="#case_insensitive_set_intersect">case_insensitive_set_intersect</a></td>
+<td>Same as set.intersection() but case-insensitive</td>
+</tr>
+<tr>
 <td><a href="#choices_from_enum">choices_from_enum</a></td>
 <td></td>
 </tr>
@@ -418,6 +426,26 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="case_insensitive_set_diff" ID="case_insensitive_set_diff"></a>
+<h2>case_insensitive_set_diff</h2>
+<b>case_insensitive_set_diff</b>(<i>set_a, set_b</i>)
+
+<p>
+Same as set.difference() but case-insensitive
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="case_insensitive_set_intersect" ID="case_insensitive_set_intersect"></a>
+<h2>case_insensitive_set_intersect</h2>
+<b>case_insensitive_set_intersect</b>(<i>set_a, set_b</i>)
+
+<p>
+Same as set.intersection() but case-insensitive
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="choices_from_enum" ID="choices_from_enum"></a>
 <h2>choices_from_enum</h2>
 <b>choices_from_enum</b>(<i>enum_cls: Type[NoValueEnum]</i>)
@@ -483,36 +511,21 @@
 <hr />
 <a NAME="get_installed_distributions" ID="get_installed_distributions"></a>
 <h2>get_installed_distributions</h2>
-<b>get_installed_distributions</b>(<i>local_only=True, user_only=False</i>)
+<b>get_installed_distributions</b>(<i></i>)
 
 <p>
     Function to get the installed packages via pip.
 </p>
-<p>
-    Note: importlib_metadata.distributions() does not respect
-    'local_only' and 'user_only' keyword parameters.
-</p>
-<dl>
-
-<dt><i>local_only</i> (TYPE (optional))</dt>
-<dd>
-DESCRIPTION (defaults to True)
-</dd>
-<dt><i>user_only</i> (TYPE (optional))</dt>
-<dd>
-DESCRIPTION (defaults to False)
-</dd>
-</dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-DESCRIPTION
+list of installed distributions
 </dd>
 </dl>
 <dl>
 <dt>Return Type:</dt>
 <dd>
-TYPE
+list
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/src/eric7/PipInterface/Pip.py	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/PipInterface/Pip.py	Sun Mar 05 17:07:49 2023 +0100
@@ -1047,18 +1047,12 @@
     ## License handling methods below
     #######################################################################
 
-    def getLicenses(self, envName, localPackages=True, usersite=False, summary=False):
+    def getLicenses(self, envName, summary=False):
         """
         Public method to get the licenses per package for a given environment.
 
         @param envName name of the environment to get the licenses for
         @type str
-        @param localPackages flag indicating to get the licenses for local
-            packages only
-        @type bool
-        @param usersite flag indicating to get the licenses for packages
-            installed in user-site directory only
-        @type bool
         @param summary flag indicating to get a summary listing (defaults to
             False)
         @type bool (optional)
@@ -1080,10 +1074,6 @@
                     "--with-urls",
                     "--with-description",
                 ]
-                if localPackages:
-                    args.append("--local-only")
-                if usersite:
-                    args.append("--user-only")
                 if summary:
                     args.append("--summary-by-license")
 
@@ -1100,23 +1090,15 @@
 
         return licenses
 
-    def getLicensesSummary(self, envName, localPackages=True, usersite=False):
+    def getLicensesSummary(self, envName):
         """
         Public method to get a summary of licenses found in a given
         environment.
 
         @param envName name of the environment to get the licenses summary for
         @type str
-        @param localPackages flag indicating to get the licenses summary for
-            local packages only
-        @type bool
-        @param usersite flag indicating to get the licenses summary for
-            packages installed in user-site directory only
-        @type bool
         @return list of dictionaries containing the license and the count of
             packages
         @rtype dict
         """
-        return self.getLicenses(
-            envName, localPackages=localPackages, usersite=usersite, summary=True
-        )
+        return self.getLicenses(envName, summary=True)
--- a/src/eric7/PipInterface/PipLicensesDialog.py	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/PipInterface/PipLicensesDialog.py	Sun Mar 05 17:07:49 2023 +0100
@@ -66,12 +66,6 @@
 
         self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
 
-        self.localCheckBox.setChecked(localPackages)
-        self.userCheckBox.setChecked(usersite)
-
-        self.localCheckBox.toggled.connect(self.__refreshLicenses)
-        self.userCheckBox.toggled.connect(self.__refreshLicenses)
-
         if environment:
             self.environmentLabel.setText(
                 "<b>{0}</b>".format(self.tr('Licenses of "{0}"').format(environment))
@@ -84,12 +78,12 @@
             self.__filterPackagesByLicense
         )
 
-        self.__refreshLicenses()
+        self.__populateLicenses()
 
     @pyqtSlot()
-    def __refreshLicenses(self):
+    def __populateLicenses(self):
         """
-        Private slot to refresh the license lists.
+        Private slot to populate the license lists.
         """
         with EricOverrideCursor():
             self.licensesList.clear()
@@ -100,11 +94,7 @@
 
             # step 1: show the licenses per package
             self.licensesList.setUpdatesEnabled(False)
-            licenses = self.__pip.getLicenses(
-                self.__environment,
-                localPackages=self.localCheckBox.isChecked(),
-                usersite=self.userCheckBox.isChecked(),
-            )
+            licenses = self.__pip.getLicenses(self.__environment)
             for lic in licenses:
                 QTreeWidgetItem(
                     self.licensesList,
@@ -124,11 +114,7 @@
 
             # step 2: show the licenses summary
             self.summaryList.setUpdatesEnabled(False)
-            licenses = self.__pip.getLicensesSummary(
-                self.__environment,
-                localPackages=self.localCheckBox.isChecked(),
-                usersite=self.userCheckBox.isChecked(),
-            )
+            licenses = self.__pip.getLicensesSummary(self.__environment)
             for lic in licenses:
                 QTreeWidgetItem(
                     self.summaryList,
--- a/src/eric7/PipInterface/PipLicensesDialog.ui	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/PipInterface/PipLicensesDialog.ui	Sun Mar 05 17:07:49 2023 +0100
@@ -52,33 +52,6 @@
     </layout>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QCheckBox" name="localCheckBox">
-       <property name="toolTip">
-        <string>Select to show only licenses of locally installed packages</string>
-       </property>
-       <property name="text">
-        <string>Local packages only</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QCheckBox" name="userCheckBox">
-       <property name="toolTip">
-        <string>Select to show only licenses of packages installed to the user-site</string>
-       </property>
-       <property name="text">
-        <string>User-Site only</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
     <widget class="QTreeWidget" name="licensesList">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
@@ -167,8 +140,6 @@
  </widget>
  <tabstops>
   <tabstop>licenseFilterComboBox</tabstop>
-  <tabstop>localCheckBox</tabstop>
-  <tabstop>userCheckBox</tabstop>
   <tabstop>licensesList</tabstop>
   <tabstop>summaryList</tabstop>
  </tabstops>
--- a/src/eric7/PipInterface/piplicenses.py	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/PipInterface/piplicenses.py	Sun Mar 05 17:07:49 2023 +0100
@@ -61,39 +61,36 @@
     from typing import Iterator, Optional, Sequence
 
 
-def get_installed_distributions(local_only=True, user_only=False):
+def get_installed_distributions():
     """
     Function to get the installed packages via pip.
 
-    Note: importlib_metadata.distributions() does not respect
-    'local_only' and 'user_only' keyword parameters.
-
-    @param local_only DESCRIPTION (defaults to True)
-    @type TYPE (optional)
-    @param user_only DESCRIPTION (defaults to False)
-    @type TYPE (optional)
-    @return DESCRIPTION
-    @rtype TYPE
+    @return list of installed distributions
+    @rtype list
     """
     try:
-        from pip._internal.metadata import get_environment
+        from importlib import metadata as importlib_metadata
+        return importlib_metadata.distributions()
     except ImportError:
-        # For backward compatibility with pip version 20.3.4
-        from pip._internal.utils import misc
-        return misc.get_installed_distributions(
-            local_only=local_only,
-            user_only=user_only
-        )
-    else:
-        from pip._internal.utils.compat import stdlib_pkgs
-        dists = get_environment(None).iter_installed_distributions(
-            local_only=local_only,
-            user_only=user_only,
-            skip=stdlib_pkgs,
-            include_editables=True,
-            editables_only=False,
-        )
-        return [d._dist for d in dists]
+        try:
+            from pip._internal.metadata import get_environment
+        except ImportError:
+            # For backward compatibility with pip version 20.3.4
+            from pip._internal.utils import misc
+            return misc.get_installed_distributions(
+                local_only=True,
+                user_only=False
+            )
+        else:
+            from pip._internal.utils.compat import stdlib_pkgs
+            dists = get_environment(None).iter_installed_distributions(
+                local_only=True,
+                user_only=False,
+                skip=stdlib_pkgs,
+                include_editables=True,
+                editables_only=False,
+            )
+            return [d._dist for d in dists]
 
 
 __pkgname__ = "pip-licenses"
@@ -233,10 +230,7 @@
 
         return pkg_info
 
-    pkgs = get_installed_distributions(
-        local_only=args.local_only,
-        user_only=args.user_only,
-    )
+    pkgs = get_installed_distributions()
     ignore_pkgs_as_lower = [pkg.lower() for pkg in args.ignore_packages]
     pkgs_as_lower = [pkg.lower() for pkg in args.packages]
 
--- a/src/eric7/i18n/eric7_cs.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1840,7 +1840,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -6002,7 +6002,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>Nesprávné kódování '{0}' pro daný text.</translation>
     </message>
@@ -20200,7 +20200,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20251,8 +20251,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20333,7 +20333,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29632,27 +29632,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50246,14 +50246,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50441,7 +50441,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55490,26 +55490,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55540,28 +55520,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -88313,7 +88293,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Můžete použít %-kódy a rezervovaná místa ve stringu. Podporované kódy jsou:&lt;table&gt;&lt;tr&gt;    &lt;td&gt;%C&lt;/td&gt;    &lt;td&gt;sloupec kurzoru v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%D&lt;/td&gt;    &lt;td&gt;adresář v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%F&lt;/td&gt;    &lt;td&gt;jméno souboru v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%H&lt;/td&gt;    &lt;td&gt;home adresář aktuálního uživatele&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%L&lt;/td&gt;    &lt;td&gt;řádek s kurzorem v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%P&lt;/td&gt;    &lt;td&gt;cesta aktuálního projektu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%S&lt;/td&gt;    &lt;td&gt;vybraný text v aktuálním editoru&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%U&lt;/td&gt;    &lt;td&gt;uživatelské jméno aktuálního uživatele&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td&gt;%%&lt;/td&gt;    &lt;td&gt;znak procenta&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1783,7 +1783,7 @@
       <translation>Es wurde ein Fehler ohne nähere Angaben entdeckt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation>Befehl wird nicht unterstützt.</translation>
     </message>
@@ -5942,7 +5942,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>Die Kodierung „{0}“ ist für den übergebenen Text falsch.</translation>
     </message>
@@ -20124,7 +20124,7 @@
       <translation>MicroPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation>Zusätzliche Firmware flashen</translation>
@@ -20175,8 +20175,8 @@
       <translation>Ausgabe von 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation>Ausgabe von 'esptool write_flash'</translation>
@@ -20257,7 +20257,7 @@
       <translation>Ausgabe von 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation>µPy/CPy Firmware flashen</translation>
     </message>
@@ -29530,27 +29530,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation>{0:4.2f} Bytes</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation>{0:4.2f} KiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation>{0:4.2f} MiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation>{0:4.2f} GiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation>{0:4.2f} TiB</translation>
     </message>
@@ -50127,14 +50127,14 @@
       <translation>Eingebaute Module anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation>Paket installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation>Pakete installieren</translation>
@@ -50322,7 +50322,7 @@
       <translation>Zusätzlich alle Module im Dateisystem.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation>Gib die zu installierenden Pakete durch Leerzeichen getrennt ein:</translation>
     </message>
@@ -55376,26 +55376,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation>Auswählen, um nur die Lizenzen für lokal installierte Packete anzuzeigen</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation>Nur lokale Pakete</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation>Auswählen, um nur die Lizenzen für im Nutzerverzeichnis installierte Packete anzuzeigen</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation>Nur Nutzerverzeichnis</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation>Paket</translation>
     </message>
@@ -55426,28 +55406,28 @@
       <translation>Als CSV speichern...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation>Lizenzen für "{0}"</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation>Keine Umgebung angegeben.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation>Als CSV speichern</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation>CSV Dateien (*.csv);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Lizenzinformationen konnten nicht in der Datei &lt;b&gt;{0}&lt;/b&gt; gespeichert werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
@@ -88121,7 +88101,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Sie können %-Codes als Platzhalter in der Eingabe verwenden. Unterstützte Codes sind:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;Spalte des Cursor des aktuellen Editors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;Verzeichnis des aktuellen Editors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;Dateiname des aktuellen Editors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;Home-Verzeichnis des aktullen Nutzers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;Zeile des Cursor des aktuellen Editors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;Pfad des aktuellen Projektes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selektierter Text des aktuellen Editors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;Nutzername des aktuellen Nutzers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;das Prozentzeichen&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1766,7 +1766,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -5891,7 +5891,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation type="unfinished" />
     </message>
@@ -20005,7 +20005,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20056,8 +20056,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20138,7 +20138,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29370,27 +29370,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -49884,14 +49884,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50079,7 +50079,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55122,26 +55122,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55172,28 +55152,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -87530,7 +87510,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1766,7 +1766,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -5899,7 +5899,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation type="unfinished" />
     </message>
@@ -20020,7 +20020,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20071,8 +20071,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20153,7 +20153,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29391,27 +29391,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -49929,14 +49929,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50124,7 +50124,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55169,26 +55169,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55219,28 +55199,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -87585,7 +87565,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1780,7 +1780,7 @@
       <translation>Detectado un error sin indicaciones.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -5950,7 +5950,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>La codificación '{0}' es incorrecta para el texto indicado.</translation>
     </message>
@@ -20141,7 +20141,7 @@
       <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation>Flash Additional Firmware</translation>
@@ -20192,8 +20192,8 @@
       <translation>Salida de 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation>Salida de 'esptool write_flash'</translation>
@@ -20274,7 +20274,7 @@
       <translation>Salida de 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29549,27 +29549,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation>{0:4.2f} Bytes</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation>{0:4.2f} KiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation>{0:4.2f} MiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation>{0:4.2f} GiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation>{0:4.2f} TiB</translation>
     </message>
@@ -50147,14 +50147,14 @@
       <translation>Mostrar Módulos Incorporados</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished">Instalar Packages</translation>
@@ -50342,7 +50342,7 @@
       <translation>Más cualesquiera módulos en el sistema de archivos.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55395,26 +55395,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation>Seleccionar para mostrar licencias solamente de packages instalados localmente</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation>Packages locales solo</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation>Seleccionar para mostrar licencias solamente de packages instalados en el sitio de usuario</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation>Solo Sitio de Usuario</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation>Package</translation>
     </message>
@@ -55445,31 +55425,47 @@
       <translation>Guardar como CSV...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation>Licencias de "{0}"</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation>Entorno no especificado.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation>Guardar como CSV</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation>Archivos CSV (*.csv);;Todos los archivos (*)</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;La información de licencia no se ha podido guardar al archivo CSV &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
+    <message>
+      <source>Select to show only licenses of locally installed packages</source>
+      <translation type="vanished">Seleccionar para mostrar licencias solamente de packages instalados localmente</translation>
+    </message>
+    <message>
+      <source>Local packages only</source>
+      <translation type="vanished">Packages locales solo</translation>
+    </message>
+    <message>
+      <source>Select to show only licenses of packages installed to the user-site</source>
+      <translation type="vanished">Seleccionar para mostrar licencias solamente de packages instalados en el sitio de usuario</translation>
+    </message>
+    <message>
+      <source>User-Site only</source>
+      <translation type="vanished">Solo Sitio de Usuario</translation>
+    </message>
   </context>
   <context>
     <name>PipPackageDetailsDialog</name>
@@ -88116,7 +88112,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Puede utilizar %-códigos como marcadores en la cadena. Los valores sportados son:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;columna del cursos en el editor actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directorio del editor actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;nombre de archivo del editor actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;directorio home del usuario actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;línea del cursor en el editor actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;ruta del proyecto actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;texto seleccionado en el editor actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;nombre de usuario del usuario actual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;signo de porcentaje&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1871,7 +1871,7 @@
       <translation type="unfinished">Supprimer une erreur sans indications.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -6044,7 +6044,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>L'encodage '{0}' n'est pas adapté pour le texte.</translation>
     </message>
@@ -20284,7 +20284,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20335,8 +20335,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20417,7 +20417,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29747,27 +29747,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50383,14 +50383,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished">Installer des packages</translation>
@@ -50578,7 +50578,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55681,26 +55681,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished">Packages locaux uniquement</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished">Package</translation>
     </message>
@@ -55731,31 +55711,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <source>Local packages only</source>
+      <translation type="vanished">Packages locaux uniquement</translation>
+    </message>
   </context>
   <context>
     <name>PipPackageDetailsDialog</name>
@@ -88658,7 +88642,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Vous pouvez utiliser la syntaxe "%-code" dans la chaine de caractères. Les codes supportés sont :&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;colonne du curseur de l'éditeur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;répertoire de l'éditeur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;nom de fichier de l'éditeur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;répertoire 'home' de l'utilisateur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;ligne du curseur de l'éditeur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;chemin du projet courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;texte sélectionné dans l'éditeur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;nom d'utilisateur de l'utilisateur courant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;le signe pourcent&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1844,7 +1844,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -6017,7 +6017,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>La codifica '{0}' è errata per questo testo.</translation>
     </message>
@@ -20246,7 +20246,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20297,8 +20297,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20379,7 +20379,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29684,27 +29684,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50294,14 +50294,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50489,7 +50489,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55539,26 +55539,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55589,28 +55569,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -88419,7 +88399,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Puoi usare i codici % come segnaposti nella stringa. I codici supportati sono: &lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;colonna del cursore nell'editor attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory dell'editor attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;nome file dell'editor corrente&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;directory home dell'utente attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;linea del cursore dell'editor attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;percorso del progetto attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;testo selezionato dell'editor attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username dell'utente attuale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;Segno percentuale&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1854,7 +1854,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -6032,7 +6032,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>A codificação '{0}' é incorreta para o texto indicado.</translation>
     </message>
@@ -20260,7 +20260,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20311,8 +20311,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20393,7 +20393,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29700,27 +29700,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50284,14 +50284,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50479,7 +50479,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55526,26 +55526,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55576,28 +55556,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -88221,7 +88201,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Pode usar códigos % como espaços reservados dentro da string. Os códigos suportados são:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;coluna do cursor do editor atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directório do editor atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;nome do ficheiro do editor atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;diretório home do usuário atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;linha do cursor do editor atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;rota do projeto atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;texto selecionado do editor atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;nome de usuário do usuário atual&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;sinal de percentagem&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1780,7 +1780,7 @@
       <translation>Обнаружена неиндексированная ошибка.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -5961,7 +5961,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>Кодировка '{0}' не подходит для выбранного текста.</translation>
     </message>
@@ -20178,7 +20178,7 @@
       <translation>Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation>Прошить дополнительный микрокод</translation>
@@ -20229,8 +20229,8 @@
       <translation>Вывод команды 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation>Вывод команды 'esptool write_flash'</translation>
@@ -20311,7 +20311,7 @@
       <translation>Вывод команды 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29595,27 +29595,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation>{0:4.2f} байтов</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation>{0:4.2f} KiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation>{0:4.2f} MiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation>{0:4.2f} GiB</translation>
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation>{0:4.2f} TiB</translation>
     </message>
@@ -50217,14 +50217,14 @@
       <translation>Показать встроенные модули</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished">Установить пакеты</translation>
@@ -50412,7 +50412,7 @@
       <translation>Плюс любые модули в файловой системе.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55480,26 +55480,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation>Отображать только лицензии локально установленных пакетов</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation>Только локальные пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation>Отображать только лицензии user-site установленных пакетов</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation>Только User-Site пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation>Пакет</translation>
     </message>
@@ -55530,31 +55510,47 @@
       <translation>Сохранить как CSV...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation>Лицензии "{0}"</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation>Не задана среда окружения.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation>Сохранить как CSV</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation>Файлы CSV (*.csv);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удалось сохранить информацию о лицензии в CSV-файле &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
+    <message>
+      <source>Select to show only licenses of locally installed packages</source>
+      <translation type="vanished">Отображать только лицензии локально установленных пакетов</translation>
+    </message>
+    <message>
+      <source>Local packages only</source>
+      <translation type="vanished">Только локальные пакеты</translation>
+    </message>
+    <message>
+      <source>Select to show only licenses of packages installed to the user-site</source>
+      <translation type="vanished">Отображать только лицензии user-site установленных пакетов</translation>
+    </message>
+    <message>
+      <source>User-Site only</source>
+      <translation type="vanished">Только User-Site пакеты</translation>
+    </message>
   </context>
   <context>
     <name>PipPackageDetailsDialog</name>
@@ -88303,7 +88299,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;Вы можете использовать %-коды как заполнители в строке:
 &lt;table&gt;
--- a/src/eric7/i18n/eric7_tr.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1841,7 +1841,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -5994,7 +5994,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>Verilen metin için '{0}'nun kodlaması hatalı.</translation>
     </message>
@@ -20193,7 +20193,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20244,8 +20244,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20326,7 +20326,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29629,27 +29629,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50231,14 +50231,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50426,7 +50426,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55475,26 +55475,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55525,28 +55505,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -88206,7 +88186,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;%-alanlarda çeşitli kodları kullanabilirsiniz. Tanımlanan kodlar:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;geçerli düzenleyicinin imlecinin sütunu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;geçerli düzenleyicinin dizini&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;geçerli düzenleyicinin dosya adı&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;geçerli kullancının ana dizini&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;geçerli düzenleyicinin imlecinin satırı&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;geçerli projenin yolu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;Geçici kullanıcının kullanıcı adı&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;oran işareti&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Sun Mar 05 12:26:12 2023 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sun Mar 05 17:07:49 2023 +0100
@@ -1869,7 +1869,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="1308" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="1310" />
       <source>Operation not supported.</source>
       <translation type="unfinished" />
     </message>
@@ -6044,7 +6044,7 @@
   <context>
     <name>CodingError</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="246" />
+      <location filename="../Utilities/__init__.py" line="176" />
       <source>The coding '{0}' is wrong for the given text.</source>
       <translation>跟据所给文本,编码 “{0}” 是错误的。</translation>
     </message>
@@ -20253,7 +20253,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1178" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1181" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="170" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
@@ -20304,8 +20304,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1177" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1136" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1180" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1139" />
       <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
@@ -20386,7 +20386,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="1137" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="1140" />
       <source>Flash µPy/CPy Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -29690,27 +29690,27 @@
   <context>
     <name>Globals</name>
     <message>
-      <location filename="../Globals/__init__.py" line="209" />
+      <location filename="../Globals/__init__.py" line="184" />
       <source>{0:4.2f} Bytes</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="212" />
+      <location filename="../Globals/__init__.py" line="187" />
       <source>{0:4.2f} KiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="215" />
+      <location filename="../Globals/__init__.py" line="190" />
       <source>{0:4.2f} MiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="218" />
+      <location filename="../Globals/__init__.py" line="193" />
       <source>{0:4.2f} GiB</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Globals/__init__.py" line="221" />
+      <location filename="../Globals/__init__.py" line="196" />
       <source>{0:4.2f} TiB</source>
       <translation type="unfinished" />
     </message>
@@ -50260,14 +50260,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2061" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2063" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
       <source>Install Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2071" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2068" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2073" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2070" />
       <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
       <source>Install Packages</source>
       <translation type="unfinished" />
@@ -50455,7 +50455,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="2072" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="2074" />
       <source>Enter the packages to be installed separated by whitespace:</source>
       <translation type="unfinished" />
     </message>
@@ -55525,26 +55525,6 @@
     </message>
     <message>
       <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of locally installed packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Local packages only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>Select to show only licenses of packages installed to the user-site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
-      <source>User-Site only</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipLicensesDialog.ui" line="0" />
       <source>Package</source>
       <translation type="unfinished" />
     </message>
@@ -55575,28 +55555,28 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="77" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="71" />
       <source>Licenses of "{0}"</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="81" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="75" />
       <source>No environment specified.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="216" />
-      <location filename="../PipInterface/PipLicensesDialog.py" line="185" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="202" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="171" />
       <source>Save as CSV</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="187" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="173" />
       <source>CSV Files (*.csv);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipLicensesDialog.py" line="217" />
+      <location filename="../PipInterface/PipLicensesDialog.py" line="203" />
       <source>&lt;p&gt;The license information could not be saved into the CSV file &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -88424,7 +88404,7 @@
   <context>
     <name>Utilities</name>
     <message>
-      <location filename="../Utilities/__init__.py" line="1061" />
+      <location filename="../Utilities/__init__.py" line="991" />
       <source>&lt;p&gt;You may use %-codes as placeholders in the string. Supported codes are:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;column of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;directory of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;filename of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;home directory of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;line of the cursor of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;path of the current project&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;selected text of the current editor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;username of the current user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;the percent sign&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;可以在字符串中使用“%-代码”作为占位符。支持的代码有:&lt;table&gt;&lt;tr&gt;&lt;td&gt;%C&lt;/td&gt;&lt;td&gt;当前编辑器的光标所在列&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%D&lt;/td&gt;&lt;td&gt;当前编辑器的文件夹&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%F&lt;/td&gt;&lt;td&gt;当前编辑器的文件名&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%H&lt;/td&gt;&lt;td&gt;当前用户的根目录&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%L&lt;/td&gt;&lt;td&gt;当前编辑器的光标所在行&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%P&lt;/td&gt;&lt;td&gt;当前项目的路径&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%S&lt;/td&gt;&lt;td&gt;当前编辑器中选择的文本&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%U&lt;/td&gt;&lt;td&gt;当前用户的用户名&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;百分比符号&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>

eric ide

mercurial