Added custom QSS to make NUSGet look nice and pretty (still WIP)

Massive thanks to Isla and Alex from WiiLink for making all the styling I'm using here.
This commit is contained in:
2025-05-05 21:53:52 -04:00
parent 5a42cc5bd7
commit 249ba861ff
19 changed files with 1746 additions and 1575 deletions

View File

@@ -4,40 +4,58 @@
<context>
<name>AboutNUSGet</name>
<message>
<location filename="../../qt/ui/AboutNUSGet.ui" line="14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/AboutNUSGet.ui" line="63"/>
<location filename="../../qt/py/ui_AboutDialog.py" line="16"/>
<source>About NUSGet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/AboutNUSGet.ui" line="75"/>
<source>Placeholder Version String</source>
<location filename="../../qt/py/ui_AboutDialog.py" line="82"/>
<source>NUSGet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/AboutNUSGet.ui" line="82"/>
<source>Copyright (c) 2024-2025 NinjaCheetah &amp; Contributors</source>
<location filename="../../qt/py/ui_AboutDialog.py" line="87"/>
<source>{version_str}</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/AboutNUSGet.ui" line="92"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
hr { height: 1px; border-width: 0; }
li.unchecked::marker { content: &quot;\2610&quot;; }
li.checked::marker { content: &quot;\2612&quot;; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;.AppleSystemUIFont&apos;; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Translations&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;German (Deutsch): &lt;a href=&quot;https://github.com/yeah-its-gloria&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#3586ff;&quot;&gt;yeah-its-gloria&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Italian (Italiano): &lt;a href=&quot;https://github.com/LNLenost&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#3586ff;&quot;&gt;LNLenost&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Korean (): &lt;a href=&quot;https://github.com/DDinghoya&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#3586ff;&quot;&gt;DDinghoya&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Norwegian (Norsk): &lt;a href=&quot;https://github.com/rolfiee&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#3586ff;&quot;&gt;rolfiee&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Romanian (Română): &lt;a href=&quot;https://github.com/NotImplementedLife&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#3586ff;&quot;&gt;NotImplementedLife&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<location filename="../../qt/py/ui_AboutDialog.py" line="92"/>
<source>© 2024-2025 NinjaCheetah &amp; Contributors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="107"/>
<source>View Project on GitHub</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="123"/>
<source>Translations</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="131"/>
<source>German (Deutsch): &lt;a href=https://github.com/yeah-its-gloria style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;yeah-its-gloria&lt;/b&gt;&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="133"/>
<source>Italian (Italiano): &lt;a href=https://github.com/LNLenost style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;LNLenost&lt;/b&gt;&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="135"/>
<source>Korean (): &lt;a href=https://github.com/DDinghoya style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;DDinghoya&lt;/b&gt;&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="137"/>
<source>Norwegian (Norsk): &lt;a href=https://github.com/rolfiee style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;rolfiee&lt;/b&gt;&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/py/ui_AboutDialog.py" line="139"/>
<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 type="unfinished"></translation>
</message>
</context>
@@ -113,87 +131,87 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation> </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="272"/>
<location filename="../../NUSGet.py" line="154"/>
<source>Pack installable archive (WAD/TAD)</source>
<translation> (WAD/TAD) </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="287"/>
<location filename="../../qt/ui/MainMenu.ui" line="251"/>
<source>File Name</source>
<translation> </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="321"/>
<location filename="../../NUSGet.py" line="156"/>
<source>Keep encrypted contents</source>
<translation> </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="357"/>
<location filename="../../NUSGet.py" line="158"/>
<source>Create decrypted contents (*.app)</source>
<translation> (*.app) </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="396"/>
<location filename="../../NUSGet.py" line="159"/>
<source>Use local files, if they exist</source>
<translation> </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="441"/>
<location filename="../../NUSGet.py" line="160"/>
<source>Use the Wii U NUS (faster, only effects Wii/vWii)</source>
<translation>Wii U NUS ( Wii/vWii에만 )</translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="539"/>
<location filename="../../qt/ui/MainMenu.ui" line="321"/>
<source>vWii Title Settings</source>
<translation>vWii </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="573"/>
<location filename="../../NUSGet.py" line="162"/>
<source>Re-encrypt title using the Wii Common Key</source>
<translation>Wii </translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="590"/>
<location filename="../../qt/ui/MainMenu.ui" line="340"/>
<source>App Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="612"/>
<location filename="../../NUSGet.py" line="163"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="636"/>
<location filename="../../NUSGet.py" line="164"/>
<source>Use a custom download directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="660"/>
<location filename="../../qt/ui/MainMenu.ui" line="368"/>
<source>Select...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="740"/>
<location filename="../../qt/ui/MainMenu.ui" line="448"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="753"/>
<location filename="../../qt/ui/MainMenu.ui" line="461"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="761"/>
<location filename="../../qt/ui/MainMenu.ui" line="469"/>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="650"/>
<location filename="../../qt/ui/MainMenu.ui" line="358"/>
<source>Output Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="714"/>
<location filename="../../qt/ui/MainMenu.ui" line="422"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
@@ -257,7 +275,7 @@ DSi 지원 : libTWLPy {libtwlpy_version}에서 제공
&quot;NUSGet Downloads&quot; .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="124"/>
<location filename="../../NUSGet.py" line="123"/>
<source>NUSGet v{nusget_version}
Developed by NinjaCheetah
Powered by libWiiPy {libwiipy_version}
@@ -271,179 +289,220 @@ By default, titles will be downloaded to a folder named &quot;NUSGet Downloads&q
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="329"/>
<location filename="../../NUSGet.py" line="229"/>
<source>&lt;b&gt;There&apos;s a newer version of NUSGet available!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="330"/>
<source>No Output Selected</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="330"/>
<location filename="../../NUSGet.py" line="331"/>
<source>You have not selected any format to output the data in!</source>
<translation> !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="332"/>
<location filename="../../NUSGet.py" line="333"/>
<source>Please select at least one option for how you would like the download to be saved.</source>
<translation> .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="344"/>
<location filename="../../NUSGet.py" line="548"/>
<location filename="../../NUSGet.py" line="345"/>
<location filename="../../NUSGet.py" line="549"/>
<source>Invalid Download Directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="345"/>
<location filename="../../NUSGet.py" line="549"/>
<location filename="../../NUSGet.py" line="346"/>
<source>The specified download directory does not exist!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="348"/>
<location filename="../../NUSGet.py" line="349"/>
<source>Please make sure the specified download directory exists, and that you have permission to access it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="378"/>
<location filename="../../NUSGet.py" line="379"/>
<source>Invalid Title ID</source>
<translation> ID</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="379"/>
<source>The Title ID you have entered is not in a valid format!</source>
<translation> ID의 !</translation>
<location filename="../../NUSGet.py" line="380"/>
<source>&lt;b&gt;The Title ID you have entered is not in a valid format!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="381"/>
<location filename="../../NUSGet.py" line="385"/>
<source>&lt;b&gt;No title with the provided Title ID or version could be found!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="390"/>
<source>&lt;b&gt;Content decryption was not successful! Decrypted contents could not be created.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="397"/>
<source>&lt;b&gt;No Ticket is Available for the Requested Title!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="403"/>
<source>&lt;b&gt;An Unknown Error has Occurred!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="425"/>
<source>&lt;b&gt;Some issues occurred while running the download script.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="475"/>
<source>&lt;b&gt;An error occurred while parsing the script file!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="485"/>
<source>&lt;b&gt;An error occurred while parsing Title IDs!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The Title ID you have entered is not in a valid format!</source>
<translation type="vanished"> ID의 !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="382"/>
<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> ID는 16 . ID를 .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="383"/>
<location filename="../../NUSGet.py" line="384"/>
<source>Title ID/Version Not Found</source>
<translation> ID/ </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="384"/>
<source>No title with the provided Title ID or version could be found!</source>
<translation> ID !</translation>
<translation type="vanished"> ID !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="386"/>
<location filename="../../NUSGet.py" line="387"/>
<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> ID를 , .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="388"/>
<location filename="../../NUSGet.py" line="389"/>
<source>Content Decryption Failed</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="389"/>
<source>Content decryption was not successful! Decrypted contents could not be created.</source>
<translation> ! .</translation>
<translation type="vanished"> ! .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="392"/>
<location filename="../../NUSGet.py" line="393"/>
<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>TMD . &quot; &quot; , .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="395"/>
<location filename="../../NUSGet.py" line="396"/>
<source>Ticket Not Available</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="396"/>
<source>No Ticket is Available for the Requested Title!</source>
<translation> !</translation>
<translation type="vanished"> !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="399"/>
<location filename="../../NUSGet.py" line="400"/>
<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> &quot; &quot; &quot; &quot; . . .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="401"/>
<location filename="../../NUSGet.py" line="402"/>
<source>Unknown Error</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="402"/>
<source>An Unknown Error has Occurred!</source>
<translation> !</translation>
<translation type="vanished"> !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="404"/>
<location filename="../../NUSGet.py" line="405"/>
<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> . GitHub에서 .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="423"/>
<location filename="../../NUSGet.py" line="424"/>
<source>Script Issues Occurred</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="424"/>
<source>Some issues occurred while running the download script.</source>
<translation> .</translation>
<translation type="vanished"> .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="426"/>
<location filename="../../NUSGet.py" line="427"/>
<source>Check the log for more details about what issues were encountered.</source>
<translation> .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="433"/>
<location filename="../../NUSGet.py" line="434"/>
<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> . ID와 .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="443"/>
<location filename="../../NUSGet.py" line="444"/>
<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>&quot; &quot; &quot; &quot; . .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="462"/>
<location filename="../../NUSGet.py" line="463"/>
<source>Script Download Failed</source>
<translation> </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="463"/>
<location filename="../../NUSGet.py" line="464"/>
<source>Open NUS Script</source>
<translation>NUS </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="464"/>
<location filename="../../NUSGet.py" line="465"/>
<source>NUS Scripts (*.nus *.json)</source>
<translation>NUS (*.nus *.json)</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="474"/>
<source>An error occurred while parsing the script file!</source>
<translation> !</translation>
<translation type="vanished"> !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="475"/>
<location filename="../../NUSGet.py" line="476"/>
<source>Error encountered at line {e.lineno}, column {e.colno}. Please double-check the script and try again.</source>
<translation>{e.lineno} , {e.colno} . .</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="484"/>
<source>An error occurred while parsing Title IDs!</source>
<translation> ID를 !</translation>
<translation type="vanished"> ID를 !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="485"/>
<location filename="../../NUSGet.py" line="486"/>
<source>The title at index {script_data.index(title)} does not have a Title ID!</source>
<translation>{script_data.index(title)} ID가 !</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="538"/>
<location filename="../../NUSGet.py" line="539"/>
<source>Open Directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="552"/>
<location filename="../../NUSGet.py" line="550"/>
<source>&lt;b&gt;The specified download directory does not exist!&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../NUSGet.py" line="553"/>
<source>Please make sure the download directory you want to use exists, and that you have permission to access it.</source>
<translation type="unfinished"></translation>
</message>
@@ -486,19 +545,18 @@ DSi 지원 : libTWLPy {libtwlpy_version}에서 제공
&quot;NUSBet&quot; .</translation>
</message>
<message>
<location filename="../../qt/ui/MainMenu.ui" line="483"/>
<location filename="../../NUSGet.py" line="161"/>
<source>Apply patches to IOS (Applies to WADs only)</source>
<translation>IOS에 (WAD에만 )</translation>
</message>
<message>
<location filename="../../NUSGet.py" line="227"/>
<location filename="../../NUSGet.py" line="228"/>
<source>NUSGet Update Available</source>
<translation>NUSGet </translation>
</message>
<message>
<location filename="../../NUSGet.py" line="228"/>
<source>There&apos;s a newer version of NUSGet available!</source>
<translation>NUSBet의 !</translation>
<translation type="vanished">NUSBet의 !</translation>
</message>
<message>
<location filename="../../modules/core.py" line="60"/>
@@ -510,7 +568,7 @@ Could not check for updates.</source>
.</translation>
</message>
<message>
<location filename="../../modules/core.py" line="68"/>
<location filename="../../modules/core.py" line="70"/>
<source>
There&apos;s a newer version of NUSGet available!</source>
@@ -519,7 +577,7 @@ There&apos;s a newer version of NUSGet available!</source>
NUSBet의 !</translation>
</message>
<message>
<location filename="../../modules/core.py" line="70"/>
<location filename="../../modules/core.py" line="72"/>
<source>
You&apos;re running the latest release of NUSGet.</source>