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>Roumain (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>
@@ -95,7 +100,7 @@ Les titres marqués d&apos;une coche sont gratuits et ont un billet disponible,
Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;, à l&apos;intérieur de votre dossier de téléchargements.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="238"/>
<location filename="../../NUSGet.py" line="242"/>
<source>NUSGet Update Available</source>
<translation>Mise à jour NUSGet disponible</translation>
</message>
@@ -117,88 +122,88 @@ Les titres marqués d&apos;une coche sont gratuits et ont un billet disponible,
Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;, à l&apos;intérieur de votre dossier de téléchargements.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="169"/>
<location filename="../../NUSGet.py" line="173"/>
<source>Use the Wii U NUS (faster, only affects Wii/vWii)</source>
<translation>Utiliser le NUS Wii U (plus rapide, n&apos;affecte que Wii / vWii)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="239"/>
<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;Une nouvelle version de NUSGet est disponible !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="340"/>
<location filename="../../NUSGet.py" line="344"/>
<source>No Output Selected</source>
<translation>Aucun format sélectionné</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="341"/>
<location filename="../../NUSGet.py" line="345"/>
<source>You have not selected any format to output the data in!</source>
<translation>Veuillez sélectionner un format de sortie pour les données !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="343"/>
<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>Veuillez sélectionner au moins une option de téléchargement.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="355"/>
<location filename="../../NUSGet.py" line="559"/>
<location filename="../../NUSGet.py" line="359"/>
<location filename="../../NUSGet.py" line="565"/>
<source>Invalid Download Directory</source>
<translation>Dossier de téléchargement invalide</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="356"/>
<location filename="../../NUSGet.py" line="360"/>
<source>The specified download directory does not exist!</source>
<translation>Le dossier de téléchargement choisi n&apos;existe pas !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="359"/>
<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>Assurez-vous que votre dossier de téléchargement existe, et que vous avez les droits suffisants pour y accéder.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="389"/>
<location filename="../../NUSGet.py" line="393"/>
<source>Invalid Title ID</source>
<translation>ID de titre invalide</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="390"/>
<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;L&apos;ID de titre que vous avez saisi a un format invalide !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="395"/>
<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;Aucun titre trouvé pour l&apos;ID ou la version fourni !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="400"/>
<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;Le décryptage du contenu a échoué ! Le contenu décrypté ne peut être créé.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="407"/>
<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;Aucun billet disponible pour le titre demandé !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="413"/>
<location filename="../../NUSGet.py" line="417"/>
<source>&lt;b&gt;An Unknown Error has Occurred!&lt;/b&gt;</source>
<translation>&lt;b&gt;Une erreur inconnue est survenue !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="435"/>
<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;Des erreurs sont survenues pendant l&apos;exécution du script de téléchargement.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="485"/>
<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;Une erreur est survenue pendant la lecture du script !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="495"/>
<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;Une erreur est survenue à la lecture d&apos;un ID de titre !&lt;/b&gt;</translation>
</message>
@@ -207,12 +212,12 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">L&apos;ID de titre que vous avez saisi a un format invalide !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="392"/>
<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>Les ID de titre doivent être composés de 16 caractères alphanumériques. Veuillez saisir un ID formaté correctement, ou sélectionnez-en un depuis le menu de gauche.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="394"/>
<location filename="../../NUSGet.py" line="398"/>
<source>Title ID/Version Not Found</source>
<translation>ID de titre / Version introuvable</translation>
</message>
@@ -221,12 +226,12 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Aucun titre trouvé pour l&apos;ID ou la version fourni !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="397"/>
<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>Veuillez vous assurez que vous avez saisi un ID valide, ou sélectionnez-en un depuis la base de données, et que la version fournie existe pour le titre que vous souhaitez télécharger.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="399"/>
<location filename="../../NUSGet.py" line="403"/>
<source>Content Decryption Failed</source>
<translation>Échec du décryptage</translation>
</message>
@@ -235,12 +240,12 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Le décryptage du contenu a échoué ! Le contenu décrypté ne peut être créé.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="403"/>
<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>Vos métadonnées (TMD) ou le billet sont probablement endommagés, ou ils ne correspondent pas au contenu décrypté. Si vous avez coché &quot;Utiliser des fichiers locaux, s&apos;ils existent&quot;, essayez de désactiver cette option avant d&apos;essayer à nouveau pour résoudre les éventuelles erreurs avec les données locales.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="406"/>
<location filename="../../NUSGet.py" line="410"/>
<source>Ticket Not Available</source>
<translation>Billet indisponible</translation>
</message>
@@ -249,12 +254,12 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Aucun billet disponible pour le titre demandé !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="410"/>
<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>Un billet ne peut être téléchargé pour le titre demandé, mais vous avez sélectionné &quot;Empaqueter une archive d&apos;installation&quot; ou &quot;Décrypter le contenu&quot;. Ces options sont indisponibles pour les titres sans billet. Seul le contenu crypté a é enregistré.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="412"/>
<location filename="../../NUSGet.py" line="416"/>
<source>Unknown Error</source>
<translation>Erreur inconnue</translation>
</message>
@@ -263,12 +268,12 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Une erreur inconnue est survenue !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="415"/>
<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>Veuillez essayer à nouveau. Si le problème persiste, déclarez un problème sur GitHub en décrivant les actions qui ont provoqué l&apos;erreur.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="434"/>
<location filename="../../NUSGet.py" line="438"/>
<source>Script Issues Occurred</source>
<translation>Erreurs survenues dans le script</translation>
</message>
@@ -277,32 +282,32 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Des erreurs sont survenues pendant l&apos;exécution du script de téléchargement.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="437"/>
<location filename="../../NUSGet.py" line="441"/>
<source>Check the log for more details about what issues were encountered.</source>
<translation>Vérifiez le journal pour plus de détails à propos des erreurs rencontrées.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="444"/>
<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>Le téléchargement des titres suivants a échoué. Assurez-vous que les ID de titre et version du script soient valides.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="454"/>
<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>Vous avez activé &quot;Décrypter le contenu&quot; ou &quot;Empaqueter une archive d&apos;installation&quot;, mais les billets des titres suivants sont indisponibles. Si activé(s), le contenu crypté a é téléchargé.</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="473"/>
<location filename="../../NUSGet.py" line="477"/>
<source>Script Download Failed</source>
<translation>Échec du script de téléchargement</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="474"/>
<location filename="../../NUSGet.py" line="478"/>
<source>Open NUS Script</source>
<translation>Ouvrir un script NUS</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="475"/>
<location filename="../../NUSGet.py" line="479"/>
<source>NUS Scripts (*.nus *.json)</source>
<translation>Scripts NUS (*.nus *.json)</translation>
</message>
@@ -311,31 +316,31 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation type="vanished">Une erreur est survenue pendant la lecture du script !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="486"/>
<source>Error encountered at line {e.lineno}, column {e.colno}. Please double-check the script and try again.</source>
<translation>Erreur recontrée ligne {e.lineno}, colonne {e.colno}. Vérifiez le script et réessayez.</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>Erreur recontrée ligne {lineno}, colonne {colno}. Vérifiez le script et réessayez.</translation>
</message>
<message>
<source>An error occurred while parsing Title IDs!</source>
<translation type="vanished">Une erreur est survenue à la lecture d&apos;un ID de titre !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="496"/>
<source>The title at index {script_data.index(title)} does not have a Title ID!</source>
<translation>Le titre à l&apos;index {script_data.index(title)} n&apos;a pas d&apos;ID !</translation>
<location filename="../../NUSGet.py" line="502"/>
<source>The title at index {index} does not have a Title ID!</source>
<translation>Le titre à l&apos;index {index} n&apos;a pas d&apos;ID !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="549"/>
<location filename="../../NUSGet.py" line="555"/>
<source>Open Directory</source>
<translation>Ouvrir un dossier</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="560"/>
<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;Le dossier de téléchargement choisi n&apos;existe pas !&lt;/b&gt;</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="563"/>
<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>Assurez-vous que votre dossier de téléchargement existe, et que vous avez les droits suffisants pour y accéder.</translation>
</message>
@@ -422,7 +427,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>À propos de NUSGet</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="163"/>
<location filename="../../NUSGet.py" line="167"/>
<source>Pack installable archive (WAD/TAD)</source>
<translation>Empaqueter une archive d&apos;installation (WAD / TAD)</translation>
</message>
@@ -432,17 +437,17 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Nom du fichier</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="165"/>
<location filename="../../NUSGet.py" line="169"/>
<source>Keep encrypted contents</source>
<translation>Conserver le contenu crypté</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="167"/>
<location filename="../../NUSGet.py" line="171"/>
<source>Create decrypted contents (*.app)</source>
<translation>Décrypter le contenu (*.app)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="168"/>
<location filename="../../NUSGet.py" line="172"/>
<source>Use local files, if they exist</source>
<translation>Utiliser des fichiers locaux, s&apos;ils existent</translation>
</message>
@@ -451,7 +456,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation type="vanished">Utiliser le NUS Wii U (plus rapide, n&apos;affecte que Wii / vWii)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="171"/>
<location filename="../../NUSGet.py" line="175"/>
<source>Apply patches to IOS (Applies to WADs only)</source>
<translation>Appliquer des modifications aux IOS (WAD uniquement)</translation>
</message>
@@ -461,7 +466,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Titres vWii</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="172"/>
<location filename="../../NUSGet.py" line="176"/>
<source>Re-encrypt title using the Wii Common Key</source>
<translation>Encrypter le titre avec la clé commune Wii</translation>
</message>
@@ -471,12 +476,12 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Paramètres</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="173"/>
<location filename="../../NUSGet.py" line="177"/>
<source>Check for updates on startup</source>
<translation>Vérifier les mises à jour au démarrage</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="174"/>
<location filename="../../NUSGet.py" line="178"/>
<source>Use a custom download directory</source>
<translation>Utiliser un dossier de téléchargement différent</translation>
</message>