--- a/src/eric7/i18n/eric7_en.ts Sat Apr 01 11:09:00 2023 +0200 +++ b/src/eric7/i18n/eric7_en.ts Sat Apr 01 15:38:31 2023 +0200 @@ -48635,6 +48635,39 @@ </message> </context> <context> + <name>LibreTranslateEngine</name> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="169" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="125" /> + <source>LibreTranslate: A valid Language Translator URL is required.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="215" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="146" /> + <source>LibreTranslate: Invalid response received</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="151" /> + <source>LibreTranslate: No translation available.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="214" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="200" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="168" /> + <source>Error Getting Available Translations</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py" line="201" /> + <source>LibreTranslate: The server sent an error indication. + Error: {0}</source> + <translation type="unfinished" /> + </message> + </context> + <context> <name>Listspace</name> <message> <location filename="../Plugins/ViewManagerPlugins/Listspace/Listspace.py" line="261" /> @@ -81187,28 +81220,28 @@ <context> <name>SyntaxCheckerPlugin</name> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="299" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="217" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="198" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="285" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="184" /> <source>Check Syntax</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="299" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="217" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="199" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="285" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="203" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="185" /> <source>&Syntax...</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="205" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="191" /> <source>Check syntax.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/PluginSyntaxChecker.py" line="302" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="220" /> - <location filename="../Plugins/PluginSyntaxChecker.py" line="207" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="288" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="206" /> + <location filename="../Plugins/PluginSyntaxChecker.py" line="193" /> <source><b>Check Syntax...</b><p>This checks Python files for syntax errors.</p></source> <translation type="unfinished" /> </message> @@ -83984,42 +84017,47 @@ <context> <name>TranslatorEngines</name> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="51" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="52" /> <source>DeepL</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="52" /> - <source>Google V.1</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="53" /> - <source>Google V.2</source> + <source>Google V.1</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="54" /> - <source>IBM Watson</source> + <source>Google V.2</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="55" /> - <source>Microsoft</source> + <source>IBM Watson</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="56" /> - <source>MyMemory</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="57" /> - <source>Yandex</source> + <source>LibreTranslate</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="59" /> + <source>Microsoft</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="60" /> + <source>MyMemory</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="61" /> + <source>Yandex</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py" line="64" /> <source>Unknow translation service name ({0})</source> <translation type="unfinished" /> </message> @@ -84290,7 +84328,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="223" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="233" /> <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> <source>Enabled Languages</source> <translation type="unfinished" /> @@ -84385,6 +84423,7 @@ </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> <source>URL:</source> <translation type="unfinished" /> </message> @@ -84395,6 +84434,7 @@ </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> <source>API Key:</source> <translation type="unfinished" /> </message> @@ -84405,6 +84445,21 @@ </message> <message> <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> + <source>LibreTranslate</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> + <source>Enter the URL of your LibreTranslate server.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> + <source>Enter your LibreTranslate API key</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.ui" line="0" /> <source>Microsoft Azure</source> <translation type="unfinished" /> </message> @@ -84474,22 +84529,22 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="63" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="67" /> <source><p>A registration of the text translation service is <b>required</b>. <a href="{0}">Register with Microsoft Azure.</a></p></source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="70" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="74" /> <source><p>A key is <b>optional</b> to use this service. <a href="{0}">Get a free API key.</a></p></source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="76" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="80" /> <source><p>A key is <b>required</b> to use this service. <a href="{0}">Get a free API key.</a></p></source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="224" /> + <location filename="../Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py" line="234" /> <source>At least two languages should be selected to work correctly.</source> <translation type="unfinished" /> </message> @@ -84832,8 +84887,8 @@ <context> <name>UF2FlashDialog</name> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1114" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="1122" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1069" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1077" /> <location filename="../MicroPython/UF2FlashDialog.ui" line="0" /> <source>Flash UF2 Device</source> <translation type="unfinished" /> @@ -84889,127 +84944,126 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="566" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="565" /> <source><h3>CircuitPython Board</h3><p>In order to prepare the board for flashing follow these steps:</p><ol><li>Switch your device to 'bootloader' mode by double-pressing the reset button.</li><li>Wait until the device has entered 'bootloader' mode.</li><li>(If this does not happen, then try shorter or longer pauses between presses.)</li><li>Ensure the boot volume is available (this may require mounting it).</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="623" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="591" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="590" /> <source><h3>Pi Pico (RP2040) Board</h3><p>In order to prepare the board for flashing follow these steps:</p><ol><li>Enter 'bootloader' mode (board <b>without</b> RESET button):<ul><li>Plug in your board while holding the BOOTSEL button.</li></ul>Enter 'bootloader' mode (board <b>with</b> RESET button):<ul><li>hold down RESET</li><li>hold down BOOTSEL</li><li>release RESET</li><li>release BOOTSEL</li></ul></li><li>Wait until the device has entered 'bootloader' mode.</li><li>Ensure the boot volume is available (this may require mounting it).</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1123" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1078" /> <source>Select the Boot Volume of the device:</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="737" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="693" /> <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="805" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="797" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="788" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="760" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="752" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="743" /> <source>Manual Select</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="906" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="874" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="851" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="864" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="832" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="809" /> <source>Reset Instructions:</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="853" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="811" /> <source><h4>No known devices detected.</h4><p>Follow the appropriate instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="877" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="835" /> <source><h4>Flash {0} Firmware</h4><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p><hr/>{1}</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="887" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="845" /> <source><h4>Potentially UF2 capable devices found</h4><p>Found these potentially UF2 capable devices:</p><ul><li>{0}</li></ul><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="908" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="866" /> <source><h4>No known devices detected.</h4><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="920" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="878" /> <source>Flash Instructions:</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="922" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="880" /> <source><h4>Flash method 'manual' selected.</h4><p>Follow the instructions below to flash a device by entering the data manually.</p><ol><li>Change the device to 'bootloader' mode.</li><li>Wait until the device has entered 'bootloader' mode.</li><li>Ensure the boot volume is available (this may require mounting it) and select its path.</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="947" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="905" /> <source>Boot Volume not found:</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="949" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="907" /> <source><h4>No Boot Volume detected.</h4><p>Please ensure that the boot volume of the device to be flashed is available. </source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="955" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="913" /> <source>This volume should be named <b>{0}</b>. Press <b>Refresh</b> when ready.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="960" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="918" /> <source>This volume should have one of these names.</p><ul><li>{0}</li></ul><p>Press <b>Refresh</b> when ready.</p></source> <translation type="unfinished" /> </message> <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="925" /> + <source><h4>Reset Instructions</h4><p>Follow the instructions below to set the board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="944" /> + <source>Multiple Boot Volumes found:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="946" /> + <source><h4>Multiple Boot Volumes were found</h4><p>These volume paths were found.</p><ul><li>{0}</li></ul><p>Please ensure that only one device of a type is ready for flashing. Press <b>Refresh</b> when ready.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="965" /> + <source>Flashing Firmware</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MicroPython/UF2FlashDialog.py" line="967" /> - <source><h4>Reset Instructions</h4><p>Follow the instructions below to set the board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="986" /> - <source>Multiple Boot Volumes found:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="988" /> - <source><h4>Multiple Boot Volumes were found</h4><p>These volume paths were found.</p><ul><li>{0}</li></ul><p>Please ensure that only one device of a type is ready for flashing. Press <b>Refresh</b> when ready.</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1007" /> - <source>Flashing Firmware</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1009" /> <source><p>Flashing the selected firmware to the device. Please wait until the device resets automatically.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1016" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="974" /> <source>Flashing {0}</source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1018" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="976" /> <source><p>Flashing the {0} firmware to the device. Please wait until the device resets automatically.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1115" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1070" /> <source>No UF2 device 'boot' volumes found.</source> <translation type="unfinished" /> </message> @@ -100081,12 +100135,12 @@ <context> <name>eric7_ide</name> <message> - <location filename="../eric7_ide.py" line="387" /> + <location filename="../eric7_ide.py" line="384" /> <source>Starting...</source> <translation type="unfinished" /> </message> <message> - <location filename="../eric7_ide.py" line="393" /> + <location filename="../eric7_ide.py" line="390" /> <source>Generating Main Window...</source> <translation type="unfinished" /> </message>