Add Spanish localization (#30)

Other changes include:

* NUSGet.py: add translation file name fallback under Windows to fix a previously unhandled edge case (tested by me, provided by @NinjaCheetah himself).
* NUSGet.py: fix translation key lookups for strings that need to be formatted at runtime.

* ui_AboutDialog.py: fix translation key lookups for strings that need to be formatted at runtime.
* ui_AboutDialog.py: add myself to the list of translation contributors.

* Translations: update source and translation strings across all localization files to reflect the fixes mentioned above.
* Translations: update source string locations and add a new unfinished translation to all localization files (as a result of running update_translations.py).
This commit is contained in:
Pablo Curiel
2025-05-13 23:57:28 +02:00
committed by GitHub
parent c8737ad507
commit 3588b3cc54
10 changed files with 605 additions and 537 deletions

View File

@@ -69,6 +69,11 @@
<source>Romanian (Română): &lt;a href=https://github.com/NotImplementedLife style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;NotImplementedLife&lt;/b&gt;&lt;/a&gt;</source>
<translation>Rumänisch (Română): &lt;a href=https://github.com/NotImplementedLife style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;NotImplementedLife&lt;/b&gt;&lt;/a&gt;</translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="150"/>
<source>Spanish (Español): &lt;a href=https://github.com/DarkMatterCore style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;DarkMatterCore&lt;/b&gt;&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
@@ -87,246 +92,246 @@ Titel, welche in der Liste mit einem Haken markiert sind, haben ein frei verfüg
Standartmäßig werden alle Inhalte und Archive in einen &quot;NUSGet Downloads&quot;-Ordner im Downloads-Order gespeichert.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="157"/>
<location filename="../../NUSGet.py" line="167"/>
<source>Pack installable archive (WAD/TAD)</source>
<translation>Als installierbares Archiv verpacken (WAD/TAD)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="159"/>
<location filename="../../NUSGet.py" line="169"/>
<source>Keep encrypted contents</source>
<translatorcomment>&quot;speichern&quot; is more like &quot;save&quot; than &quot;keep&quot;, but &quot;behalten&quot; would sound stupid</translatorcomment>
<translation>Verschlüsselte Inhalte speichern</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="161"/>
<location filename="../../NUSGet.py" line="171"/>
<source>Create decrypted contents (*.app)</source>
<translatorcomment>Similar situation as with &quot;Keep encrypted contents&quot;, means more like &quot;Decrypt contents&quot; because it sounds better</translatorcomment>
<translation>Inhalte entschlüsseln (*.app)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="162"/>
<location filename="../../NUSGet.py" line="172"/>
<source>Use local files, if they exist</source>
<translation>Vorhandene Dateien nutzen, sofern verfügbar</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="163"/>
<location filename="../../NUSGet.py" line="173"/>
<source>Use the Wii U NUS (faster, only affects Wii/vWii)</source>
<translation>Wii U-NUS benutzen (schneller, betrifft nur Wii/vWii)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="165"/>
<location filename="../../NUSGet.py" line="175"/>
<source>Apply patches to IOS (Applies to WADs only)</source>
<translation>Patches für IOS anwenden (Betrifft nur WADs)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="166"/>
<location filename="../../NUSGet.py" line="176"/>
<source>Re-encrypt title using the Wii Common Key</source>
<translation>Inhalte des Titels mit dem Wii Common-Key neu verschlüsseln</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="167"/>
<location filename="../../NUSGet.py" line="177"/>
<source>Check for updates on startup</source>
<translation>Beim Start nach Updates suchen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="168"/>
<location filename="../../NUSGet.py" line="178"/>
<source>Use a custom download directory</source>
<translation>Benutzerspezifischen Downloads-Ordner nutzen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="232"/>
<location filename="../../NUSGet.py" line="242"/>
<source>NUSGet Update Available</source>
<translation>NUSGet-Update verfügbar</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="233"/>
<location filename="../../NUSGet.py" line="243"/>
<source>&lt;b&gt;There&apos;s a newer version of NUSGet available!&lt;/b&gt;</source>
<translation>&lt;b&gt;Eine neue version von NUSGet ist verfügbar!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="334"/>
<location filename="../../NUSGet.py" line="344"/>
<source>No Output Selected</source>
<translatorcomment>&quot;Output&quot; is quite difficult to translate into anything sensical, so I added &quot;format&quot; to make it specifically refer to the type of output the user wants, which keeps it consistent with the rest of the text</translatorcomment>
<translation>Kein Ausgabeformat ausgewählt</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="335"/>
<location filename="../../NUSGet.py" line="345"/>
<source>You have not selected any format to output the data in!</source>
<translation>Es wurde kein Ausgabeformat für die Inhalte ausgewählt!</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="337"/>
<location filename="../../NUSGet.py" line="347"/>
<source>Please select at least one option for how you would like the download to be saved.</source>
<translation>Bitte wählen Sie mindestens ein Format aus für den herunterzuladenen Titel.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="349"/>
<location filename="../../NUSGet.py" line="553"/>
<location filename="../../NUSGet.py" line="359"/>
<location filename="../../NUSGet.py" line="565"/>
<source>Invalid Download Directory</source>
<translation>Fehlerhafter Downloads-Ordner</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="350"/>
<location filename="../../NUSGet.py" line="360"/>
<source>The specified download directory does not exist!</source>
<translation>Der ausgewählte Downloads-Ordner konnte nicht gefunden werden!</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="353"/>
<location filename="../../NUSGet.py" line="363"/>
<source>Please make sure the specified download directory exists, and that you have permission to access it.</source>
<translation>Bitte stellen Sie sicher, dass der Downloads-Ordner existiert und dass Sie Zugriff auf diesen haben.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="383"/>
<location filename="../../NUSGet.py" line="393"/>
<source>Invalid Title ID</source>
<translation>Fehlerhafte Title-ID</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="384"/>
<location filename="../../NUSGet.py" line="394"/>
<source>&lt;b&gt;The Title ID you have entered is not in a valid format!&lt;/b&gt;</source>
<translation>&lt;b&gt;Die angegebene Title-ID ist fehlerhaft!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="386"/>
<location filename="../../NUSGet.py" line="396"/>
<source>Title IDs must be 16 digit strings of numbers and letters. Please enter a correctly formatted Title ID, or select one from the menu on the left.</source>
<translation>Title-IDs müssen aus 16 alphanumerischen Zeichen bestehen. Bitte geben Sie eine korrekte Title-ID ein oder wählen Sie einen Titel aus der Liste links.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="388"/>
<location filename="../../NUSGet.py" line="398"/>
<source>Title ID/Version Not Found</source>
<translation>Title-ID/Version nicht gefunden</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="389"/>
<location filename="../../NUSGet.py" line="399"/>
<source>&lt;b&gt;No title with the provided Title ID or version could be found!&lt;/b&gt;</source>
<translation>&lt;b&gt;Es konnte kein Titel mit der gegebenen Title-ID bzw. Version gefunden werden!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="391"/>
<location filename="../../NUSGet.py" line="401"/>
<source>Please make sure that you have entered a valid Title ID, or selected one from the title database, and that the provided version exists for the title you are attempting to download.</source>
<translation>Bitte stellen Sie sicher, dass Sie eine korrekte Title-ID eingegeben haben und dass die Version auch existiert. Alternativ können Sie diese auch in der Liste links finden.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="393"/>
<location filename="../../NUSGet.py" line="403"/>
<source>Content Decryption Failed</source>
<translation>Inhaltsentschlüsselung fehlgeschlagen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="394"/>
<location filename="../../NUSGet.py" line="404"/>
<source>&lt;b&gt;Content decryption was not successful! Decrypted contents could not be created.&lt;/b&gt;</source>
<translation>&lt;b&gt;Die Inhalte konnten nicht entschlüsselt werden.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="397"/>
<location filename="../../NUSGet.py" line="407"/>
<source>Your TMD or Ticket may be damaged, or they may not correspond with the content being decrypted. If you have checked &quot;Use local files, if they exist&quot;, try disabling that option before trying the download again to fix potential issues with local data.</source>
<translation>Das TMD oder Ticket könnten wohlmöglich beschädigt sein oder stimmen nicht mit dem ausgewählten Titel überein, sofern &quot;Vorhandene Dateien nutzen, sofern verfügbar&quot; aktiviert wurde. Im letzteren Fall sollten Sie versuchen, diese Option auszuschalten und die Inhalte neu herunterzuladen.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="400"/>
<location filename="../../NUSGet.py" line="410"/>
<source>Ticket Not Available</source>
<translation>Ticket nicht verfügbar</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="401"/>
<location filename="../../NUSGet.py" line="411"/>
<source>&lt;b&gt;No Ticket is Available for the Requested Title!&lt;/b&gt;</source>
<translation>&lt;b&gt;Es konnte kein Ticket für den angegebenen TItel gefunden werden!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="404"/>
<location filename="../../NUSGet.py" line="414"/>
<source>A ticket could not be downloaded for the requested title, but you have selected &quot;Pack installable archive&quot; or &quot;Create decrypted contents&quot;. These options are not available for titles without a ticket. Only encrypted contents have been saved.</source>
<translation>Es konnte kein Ticket für den ausgewählten Titel heruntergeladen werden, jedoch wurde &quot;Als installierbares Archiv verpacken&quot; bzw. &quot;Inhalte entschlüsseln&quot; ausgewählt. Diese Optionen erfordern ein Ticket. Es wurden nur verschlüsselte Inhalte gespeichert.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="406"/>
<location filename="../../NUSGet.py" line="416"/>
<source>Unknown Error</source>
<translation>Unbekannter Fehler</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="407"/>
<location filename="../../NUSGet.py" line="417"/>
<source>&lt;b&gt;An Unknown Error has Occurred!&lt;/b&gt;</source>
<translation>&lt;b&gt;Ein unbekannter Fehler ist aufgetreten!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="409"/>
<location filename="../../NUSGet.py" line="419"/>
<source>Please try again. If this issue persists, please open a new issue on GitHub detailing what you were trying to do when this error occurred.</source>
<translation>Bitte versuchen Sie noch einmal. Sofern das Problem weiter besteht, wenden Sie sich bitte an den Issue-Tracker auf GitHub mit Details dazu, was Sie versucht haben.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="428"/>
<location filename="../../NUSGet.py" line="438"/>
<source>Script Issues Occurred</source>
<translation>Script-Fehler aufgetreten</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="429"/>
<location filename="../../NUSGet.py" line="439"/>
<source>&lt;b&gt;Some issues occurred while running the download script.&lt;/b&gt;</source>
<translation>&lt;b&gt;Fehler sind während der Ausführung von Scripten aufgetreten.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="431"/>
<location filename="../../NUSGet.py" line="441"/>
<source>Check the log for more details about what issues were encountered.</source>
<translation>Bitte schauen Sie im Log nach, welche Fehler aufgetreten sind.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="438"/>
<location filename="../../NUSGet.py" line="448"/>
<source>The following titles could not be downloaded due to an error. Please ensure that the Title ID and version listed in the script are valid.</source>
<translation>Die angegebenen Titel konnten wegen Fehlern nicht heruntergeladen werden. Bitte stellen Sie sicher, dass die Title-IDs und Versionen im Script korrekt sind.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="448"/>
<location filename="../../NUSGet.py" line="458"/>
<source>You enabled &quot;Create decrypted contents&quot; or &quot;Pack installable archive&quot;, but the following titles in the script do not have tickets available. If enabled, encrypted contents were still downloaded.</source>
<translation>Sie haben &quot;Inhalte entschlüsseln&quot; bzw. &quot;Als installierbares Archiv verpacken&quot; ausgewählt, aber die angegebenen Titel im Script haben kein verfügbares Ticket. Sofern &quot;Verschlüsselte Inhalte speichern&quot; aktiv ist, wurden verschlüsselte Daten noch gespeichert.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="467"/>
<location filename="../../NUSGet.py" line="477"/>
<source>Script Download Failed</source>
<translation>Script-Download fehlgeschlagen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="468"/>
<location filename="../../NUSGet.py" line="478"/>
<source>Open NUS Script</source>
<translation>NUS-Script öffnen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="469"/>
<location filename="../../NUSGet.py" line="479"/>
<source>NUS Scripts (*.nus *.json)</source>
<translation>NUS-Scripts (*.nus *.json)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="479"/>
<location filename="../../NUSGet.py" line="489"/>
<source>&lt;b&gt;An error occurred while parsing the script file!&lt;/b&gt;</source>
<translation>&lt;b&gt;Ein Fehler ist beim Lesen des Scripts aufgetreten!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="480"/>
<source>Error encountered at line {e.lineno}, column {e.colno}. Please double-check the script and try again.</source>
<translation>Der Fehler ist bei Linie {e.lineno}, Zeile {e.colno} aufgetreten. Bitte überprüfen Sie ihr Script und versuchen Sie es erneut.</translation>
<location filename="../../NUSGet.py" line="491"/>
<source>Error encountered at line {lineno}, column {colno}. Please double-check the script and try again.</source>
<translation>Der Fehler ist bei Linie {lineno}, Zeile {colno} aufgetreten. Bitte überprüfen Sie ihr Script und versuchen Sie es erneut.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="489"/>
<location filename="../../NUSGet.py" line="500"/>
<source>&lt;b&gt;An error occurred while parsing Title IDs!&lt;/b&gt;</source>
<translation>&lt;b&gt;Ein Fehler ist beim Lesen der Title-IDs aufgetreten!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="490"/>
<source>The title at index {script_data.index(title)} does not have a Title ID!</source>
<translation>Der Titel an Stelle {script_data.index(title)} hat keine Title-ID!</translation>
<location filename="../../NUSGet.py" line="502"/>
<source>The title at index {index} does not have a Title ID!</source>
<translation>Der Titel an Stelle {index} hat keine Title-ID!</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="543"/>
<location filename="../../NUSGet.py" line="555"/>
<source>Open Directory</source>
<translation>Ordner öffnen</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="554"/>
<location filename="../../NUSGet.py" line="566"/>
<source>&lt;b&gt;The specified download directory does not exist!&lt;/b&gt;</source>
<translation>&lt;b&gt;Der angegebene Downloads-Ordner konnte nicht gefunden werden!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="557"/>
<location filename="../../NUSGet.py" line="569"/>
<source>Please make sure the download directory you want to use exists, and that you have permission to access it.</source>
<translation>Bitte stellen Sie sicher, dass der Downloads-Ordner, den Sie nutzen möchten, existiert und dass Sie darauf auch Zugriffen haben.</translation>
</message>
<message>
<location filename="../../modules/core.py" line="60"/>
<location filename="../../modules/core.py" line="68"/>
<source>
Could not check for updates.</source>
@@ -335,7 +340,7 @@ Could not check for updates.</source>
Konnte nicht nach Updates suchen.</translation>
</message>
<message>
<location filename="../../modules/core.py" line="70"/>
<location filename="../../modules/core.py" line="78"/>
<source>
There&apos;s a newer version of NUSGet available!</source>
@@ -344,7 +349,7 @@ There&apos;s a newer version of NUSGet available!</source>
Eine neuere Version von NUSGet ist verfügbar!</translation>
</message>
<message>
<location filename="../../modules/core.py" line="72"/>
<location filename="../../modules/core.py" line="80"/>
<source>
You&apos;re running the latest release of NUSGet.</source>