From 9b4addc8a530f1aad85cab553432665059b248e7 Mon Sep 17 00:00:00 2001
From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com>
Date: Tue, 20 May 2025 09:08:07 -0400
Subject: [PATCH] Remove illegal characters from WAD names on Windows
---
NUSGet.py | 4 +++
resources/translations/nusget_de.ts | 14 ++++-----
resources/translations/nusget_es.ts | 12 ++++----
resources/translations/nusget_fr.ts | 12 ++++----
resources/translations/nusget_it.ts | 47 ++++++++++++++++-------------
resources/translations/nusget_ko.ts | 14 ++++-----
resources/translations/nusget_nb.ts | 12 ++++----
resources/translations/nusget_no.ts | 12 ++++----
resources/translations/nusget_ro.ts | 12 ++++----
9 files changed, 74 insertions(+), 65 deletions(-)
diff --git a/NUSGet.py b/NUSGet.py
index 888c8e0..783a4b6 100644
--- a/NUSGet.py
+++ b/NUSGet.py
@@ -279,6 +279,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if selected_title.category.find("System") != -1 or selected_title.category == "IOS":
archive_name += "-Wii"
archive_name += ".wad"
+ # On Windows, we need to strip characters that aren't allowed on NTFS. APFS and Linux filesystems aren't nearly
+ # as picky, but some titles contain characters that NTFS dislikes which will break downloads.
+ if os.name == "nt":
+ archive_name = archive_name.translate({ord(c): None for c in '/\\:*"?<>|'})
self.ui.archive_file_entry.setText(archive_name)
danger_text = selected_title.danger
# Add warning text to the log if the selected title has no ticket.
diff --git a/resources/translations/nusget_de.ts b/resources/translations/nusget_de.ts
index c9e419e..781a3db 100644
--- a/resources/translations/nusget_de.ts
+++ b/resources/translations/nusget_de.ts
@@ -439,17 +439,17 @@ Sie nutzen bereits die neuste Version von NUSGet.
App-Einstellungen
-
+ Output PathDownloads-Ordner
-
+ Select...Auswählen...
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -468,17 +468,17 @@ li.checked::marker { content: "\2612"; }
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html>
-
+ HelpHilfe
-
+ About NUSGet
- Über NUSGet
+ Über NUSGet
-
+ About QtÜber Qt
diff --git a/resources/translations/nusget_es.ts b/resources/translations/nusget_es.ts
index 4c4c2b1..34151b4 100644
--- a/resources/translations/nusget_es.ts
+++ b/resources/translations/nusget_es.ts
@@ -147,7 +147,7 @@
Configuración general
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -159,7 +159,7 @@ li.checked::marker { content: "\2612"; }
-
+ About NUSGetAcerca de NUSGet
@@ -214,22 +214,22 @@ li.checked::marker { content: "\2612"; }
Usar ruta de descarga personalizada
-
+ Select...Seleccionar...
-
+ HelpAyuda
-
+ About QtAcerca de Qt
-
+ Output PathRuta de descarga
diff --git a/resources/translations/nusget_fr.ts b/resources/translations/nusget_fr.ts
index 78e8b28..6dbf8b6 100644
--- a/resources/translations/nusget_fr.ts
+++ b/resources/translations/nusget_fr.ts
@@ -410,7 +410,7 @@ Les titres seront téléchargés dans un dossier "NUSGet Downloads",
Configuration
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -422,7 +422,7 @@ li.checked::marker { content: "\2612"; }
-
+ About NUSGetÀ propos de NUSGet
@@ -486,22 +486,22 @@ li.checked::marker { content: "\2612"; }
Utiliser un dossier de téléchargement différent
-
+ Select...Choisir
-
+ HelpAide
-
+ About QtÀ propos de Qt
-
+ Output PathDossier de téléchargement
diff --git a/resources/translations/nusget_it.ts b/resources/translations/nusget_it.ts
index a2e6ef0..0d294ef 100644
--- a/resources/translations/nusget_it.ts
+++ b/resources/translations/nusget_it.ts
@@ -41,37 +41,37 @@
French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a>
- French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a>
+ Francese (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a>German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a>
- German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a>
+ Tedesco (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a>Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a>
- Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a>
+ Italiano: <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a>Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a>
- Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a>
+ Coreano (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a>Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a>
- Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a>
+ Norvegese (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a>Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a>
- Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a>
+ Rumeno (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a>Spanish (Español): <a href=https://github.com/DarkMatterCore style='color: #4a86e8; text-decoration: none;'><b>DarkMatterCore</b></a>
- Spanish (Español): <a href=https://github.com/DarkMatterCore style='color: #4a86e8; text-decoration: none;'><b>DarkMatterCore</b></a>
+ Spagnolo (Español): <a href=https://github.com/DarkMatterCore style='color: #4a86e8; text-decoration: none;'><b>DarkMatterCore</b></a>
@@ -146,7 +146,7 @@
Impostazioni generali
-
+ About NUSGetInfo su NUSGet
@@ -205,12 +205,12 @@
Usa una cartella di download personalizzata
-
+ Select...Seleziona...
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -229,17 +229,17 @@ li.checked::marker { content: "\2612"; }
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html>
-
+ HelpAiuto
-
+ About QtInfo su Qt
-
+ Output PathCartella output
@@ -306,7 +306,7 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q
I titoli marcati da una spunta sono disponibili e hanno un ticket libero, e possono essere decriptati e/o convertiti in WAD o TAD. I titoli con una X non hanno un ticket e solo il contenuto criptato può essere salvato.
-Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet Downloads" all'interno della cartella Download.
+Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet Downloads" all'interno della cartella Download.
@@ -357,12 +357,17 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet
<b>The Title ID you have entered is not in a valid format!</b>
- <b>L'ID Titolo che hai inserito non è in un formato valido!</b>
+ <b>L'ID Titolo che hai inserito non è in un formato valido!</b>
+
+
+
+ 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.
+ <b>No title with the provided Title ID or version could be found!</b>
- <b>Non è stato trovato alcun titolo con l'ID Titolo o la versione forniti!</b>
+ <b>Non è stato trovato alcun titolo con l'ID Titolo o la versione forniti!</b>
@@ -382,17 +387,17 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet
<b>Some issues occurred while running the download script.</b>
- <b>Si sono verificati alcuni problemi durante l'esecuzione dello script di download.</b>
+ <b>Si sono verificati alcuni problemi durante l'esecuzione dello script di download.</b><b>An error occurred while parsing the script file!</b>
- <b>Si è verificato un errore durante l'analisi del file script!</b>
+ <b>Si è verificato un errore durante l'analisi del file script!</b><b>An error occurred while parsing Title IDs!</b>
- <b>Si è verificato un errore durante l'analisi degli ID Titolo!</b>
+ <b>Si è verificato un errore durante l'analisi degli ID Titolo!</b>The Title ID you have entered is not in a valid format!
@@ -476,7 +481,7 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet
You enabled "Create decrypted contents" or "Pack installable archive", but the following titles in the script do not have tickets available. If enabled, encrypted contents were still downloaded.
- Hai abilitato "Crea contenuto decriptato" o "Archivio installabile", ma i seguenti titoli nello script non hanno ticket disponibili. Se abilitati, i contenuti criptati sono stati comunque scaricati.
+ Hai abilitato "Crea contenuto decriptato" o "Archivio installabile", ma i seguenti titoli nello script non hanno ticket disponibili. Se abilitati, i contenuti criptati sono stati comunque scaricati.
@@ -509,7 +514,7 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella "NUSGet
The title at index {index} does not have a Title ID!
- Il titolo all'indice {index} non ha un ID Titolo!
+ Il titolo all'indice {index} non ha un ID Titolo!
diff --git a/resources/translations/nusget_ko.ts b/resources/translations/nusget_ko.ts
index ee40843..34c666e 100644
--- a/resources/translations/nusget_ko.ts
+++ b/resources/translations/nusget_ko.ts
@@ -146,9 +146,9 @@
일반 설정
-
+ About NUSGet
- NUSGet 정보
+ NUSGet 정보
@@ -205,12 +205,12 @@
커스텀 다운로드 디렉터리 사용
-
+ Select...선택...
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -222,7 +222,7 @@ li.checked::marker { content: "\2612"; }
-
+ Help도움말
@@ -231,12 +231,12 @@ li.checked::marker { content: "\2612"; }
정보
-
+ About QtQt 정보
-
+ Output Path출력 경로
diff --git a/resources/translations/nusget_nb.ts b/resources/translations/nusget_nb.ts
index 480f799..a286499 100644
--- a/resources/translations/nusget_nb.ts
+++ b/resources/translations/nusget_nb.ts
@@ -146,7 +146,7 @@
Generelle Instillinger
-
+ About NUSGetOm NUSGet
@@ -205,12 +205,12 @@
Bruke en egendefinert nedlastingsmappe
-
+ Select...Velg...
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -229,17 +229,17 @@ li.checked::marker { content: "\2612"; }
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html>
-
+ HelpHjelp
-
+ About QtOm Qt
-
+ Output PathUtgangsbane
diff --git a/resources/translations/nusget_no.ts b/resources/translations/nusget_no.ts
index 480f799..a286499 100644
--- a/resources/translations/nusget_no.ts
+++ b/resources/translations/nusget_no.ts
@@ -146,7 +146,7 @@
Generelle Instillinger
-
+ About NUSGetOm NUSGet
@@ -205,12 +205,12 @@
Bruke en egendefinert nedlastingsmappe
-
+ Select...Velg...
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -229,17 +229,17 @@ li.checked::marker { content: "\2612"; }
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html>
-
+ HelpHjelp
-
+ About QtOm Qt
-
+ Output PathUtgangsbane
diff --git a/resources/translations/nusget_ro.ts b/resources/translations/nusget_ro.ts
index bc37607..063cf09 100644
--- a/resources/translations/nusget_ro.ts
+++ b/resources/translations/nusget_ro.ts
@@ -447,7 +447,7 @@ Implicit, titlurile vor fi descărcate într-un folder numit „NUSGet Downloads
Setări Generale
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -459,7 +459,7 @@ li.checked::marker { content: "\2612"; }
-
+ About NUSGetDespre NUSGet
@@ -523,22 +523,22 @@ li.checked::marker { content: "\2612"; }
Folosiți un director de descărcare propriu
-
+ Select...Selectează...
-
+ HelpAjutor
-
+ About QtDespre Qt
-
+ Output PathCale de ieșire