30 Commits

Author SHA1 Message Date
72b7ae5789 merge upstream 2025-05-18 23:51:04 -04:00
db3947a100 Fix some remaining blue 2025-05-12 19:26:08 -04:00
c2e17bece7 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	resources/style.qss
2025-05-12 19:20:20 -04:00
47431c8834 merge upstream 2025-05-09 13:03:18 -04:00
ce099365cd merge upstream 2025-05-09 11:16:16 -04:00
0b6551d50d Merge remote-tracking branch 'origin/main' 2025-05-08 22:32:57 -04:00
9a9775348b After Dark color scheme B) 2025-05-08 22:32:20 -04:00
e1f8a23919 Merge remote-tracking branch 'refs/remotes/upstream/main' 2025-05-08 22:31:12 -04:00
ee5012383f Merge remote-tracking branch 'upstream/main' 2025-05-08 22:26:27 -04:00
45616f7f57 Merge remote-tracking branch 'upstream/main' 2025-05-07 08:55:41 -04:00
7feeeefc87 Merge remote-tracking branch 'upstream/main' 2025-05-04 19:23:08 -04:00
6689eaae70 Merge remote-tracking branch 'upstream/main' 2025-04-22 21:53:52 -04:00
d63acba656 Merge remote-tracking branch 'upstream/main' 2025-04-21 23:34:34 -04:00
0f96dc75a2 Merge remote-tracking branch 'upstream/main' 2025-02-23 19:33:48 -05:00
220fcc5e91 Merge remote-tracking branch 'upstream/main' 2025-02-18 21:31:54 -05:00
ab28a7bf1a Merge remote-tracking branch 'origin/main' 2025-02-18 21:31:06 -05:00
0bb87bf75f Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	README.md
#	modules/download_wii.py
2025-02-18 21:27:16 -05:00
92bfeb2374 Merge remote-tracking branch 'upstream/main' 2025-01-13 14:24:38 -05:00
86da2d62b0 Merge remote-tracking branch 'upstream/main' 2025-01-05 01:31:20 -05:00
1e88c22f7c Merge remote-tracking branch 'upstream/main' 2024-12-23 18:04:18 -05:00
c4ed6e6ee6 Merge remote-tracking branch 'origin/main' 2024-12-23 12:56:45 -05:00
b337be8c08 Merge remote-tracking branch 'upstream/main' 2024-12-23 12:56:27 -05:00
76911db12d Merge remote-tracking branch 'upstream/main' 2024-12-22 21:53:12 -05:00
a361a45314 Merge remote-tracking branch 'upstream/main' 2024-12-22 17:16:37 -05:00
724c7e554b Merge remote-tracking branch 'upstream/main' 2024-12-21 20:08:03 -05:00
469cd96392 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	README.md
2024-12-19 20:34:19 -05:00
398654609b Merge changes from upstream 2024-12-18 16:43:35 -05:00
78f98b2c73 Fix minor issue with Ticket forging 2024-12-13 23:17:20 -05:00
5872ca4676 Merge major improvements from upstream 2024-12-13 23:09:23 -05:00
147e72c8c9 Added Title Key generation code 2024-12-13 16:56:15 -05:00
26 changed files with 284 additions and 924 deletions

View File

@@ -30,7 +30,6 @@ from qt.py.ui_AboutDialog import AboutNUSGet
from qt.py.ui_MainMenu import Ui_MainWindow from qt.py.ui_MainMenu import Ui_MainWindow
from modules.core import * from modules.core import *
from modules.theme import is_dark_theme
from modules.tree import NUSGetTreeModel, TIDFilterProxyModel from modules.tree import NUSGetTreeModel, TIDFilterProxyModel
from modules.download_batch import run_nus_download_batch from modules.download_batch import run_nus_download_batch
from modules.download_wii import run_nus_download_wii from modules.download_wii import run_nus_download_wii
@@ -130,13 +129,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.FramelessWindowHint) self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.FramelessWindowHint)
self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.NoDropShadowWindowHint) self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.NoDropShadowWindowHint)
self.ui.menuHelp.setAttribute(Qt.WA_TranslucentBackground) self.ui.menuHelp.setAttribute(Qt.WA_TranslucentBackground)
# Save some light/dark theme values for later, including the appropriately colored info icon. # Load the custom information icon.
if is_dark_theme(): icon = QIcon(os.path.join(os.path.dirname(__file__), "resources", "information.svg"))
bg_color = "#2b2b2b"
icon = QIcon(os.path.join(os.path.dirname(__file__), "resources", "information_white.svg"))
else:
bg_color = "#e3e3e3"
icon = QIcon(os.path.join(os.path.dirname(__file__), "resources", "information_black.svg"))
self.ui.actionAbout.setIcon(icon) self.ui.actionAbout.setIcon(icon)
self.ui.actionAbout_Qt.setIcon(icon) self.ui.actionAbout_Qt.setIcon(icon)
# Title tree loading code. Now powered by Models:tm: # Title tree loading code. Now powered by Models:tm:
@@ -163,7 +157,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.trees[tree].setStyleSheet(self.trees[tree].styleSheet() + f""" self.trees[tree].setStyleSheet(self.trees[tree].styleSheet() + f"""
QTreeView QScrollBar::sub-line:vertical {{ QTreeView QScrollBar::sub-line:vertical {{
border: 0; border: 0;
background: {bg_color}; background: #2b2b2b;
height: {self.trees[tree].header().sizeHint().height()}px; height: {self.trees[tree].header().sizeHint().height()}px;
}}""") }}""")
# Prevent resizing. # Prevent resizing.
@@ -656,18 +650,7 @@ if __name__ == "__main__":
# Load Fusion because that's objectively the best base theme, and then load the fancy stylesheet on top to make # Load Fusion because that's objectively the best base theme, and then load the fancy stylesheet on top to make
# NUSGet look nice and pretty. # NUSGet look nice and pretty.
app.setStyle("fusion") app.setStyle("fusion")
theme_sheet = "style_dark.qss" stylesheet = open(os.path.join(os.path.dirname(__file__), "resources", "style.qss")).read()
try:
# Check for an environment variable overriding the theme. This is mostly for theme testing but would also allow
# you to force a theme.
if os.environ["THEME"].lower() == "light":
theme_sheet = "style_light.qss"
except KeyError:
if is_dark_theme():
theme_sheet = "style_dark.qss"
else:
theme_sheet = "style_light.qss"
stylesheet = open(os.path.join(os.path.dirname(__file__), "resources", theme_sheet)).read()
image_path_prefix = pathlib.Path(os.path.join(os.path.dirname(__file__), "resources")).resolve().as_posix() image_path_prefix = pathlib.Path(os.path.join(os.path.dirname(__file__), "resources")).resolve().as_posix()
stylesheet = stylesheet.replace("{IMAGE_PREFIX}", image_path_prefix) stylesheet = stylesheet.replace("{IMAGE_PREFIX}", image_path_prefix)
app.setStyleSheet(stylesheet) app.setStyleSheet(stylesheet)

View File

@@ -1,3 +1,5 @@
# NUSGet After Dark
A modern and supercharged NUS downloader built with Python and Qt6. Powered by libWiiPy and libTWLPy. Fork with features not acceptable for prod.
<div align="center"> <div align="center">
<img src="https://github.com/user-attachments/assets/156eb949-93aa-4453-b7a0-99b784ec0c8c" alt="The icon for NUSGet" width=256 height=256> <img src="https://github.com/user-attachments/assets/156eb949-93aa-4453-b7a0-99b784ec0c8c" alt="The icon for NUSGet" width=256 height=256>
<h1>NUSGet</h1> <h1>NUSGet</h1>
@@ -17,11 +19,12 @@ NUSGet also offers the ability to create vWii WADs that can be installed from wi
The following features are available for all supported consoles: The following features are available for all supported consoles:
- Downloading encrypted contents (files like `00000000`, `00000001`, etc.) directly from the update servers for any title. - Downloading encrypted contents (files like `00000000`, `00000001`, etc.) directly from the update servers for any title.
- Creating decrypted contents (*.app files) from the encrypted contents on the servers. Only supported for free titles. - Creating decrypted contents (*.app files) from the encrypted contents on the servers.
- Scripting support, allowing you to perform batch downloads of any titles for the Wii, vWii, or DSi in one script. (See `example-script.json` for an example of the scripting format.) - Scripting support, allowing you to perform batch downloads of any titles for the Wii, vWii, or DSi in one script. (See `example-script.json` for an example of the scripting format.)
**For Wii and vWii titles only:** **For Wii and vWii titles only:**
- "Pack installable archive (WAD/TAD)": Pack the encrypted contents, TMD, and Ticket into a WAD file that can be installed on a Wii or in Dolphin Emulator. Only supported for free titles. - "Pack installable archive (WAD/TAD)": Pack the encrypted contents, TMD, and Ticket into a WAD file that can be installed on a Wii or in Dolphin Emulator.
- Forging Tickets for titles without a common Ticket available on the NUS by using the Title Key algorithm to derive the key needed to decrypt the title.
**For vWii titles only:** **For vWii titles only:**
- "Re-encrypt title using the Wii Common Key": Re-encrypt the Title Key in a vWii title's Ticket before packing the WAD, so that the WAD can be installed via a normal WAD manager on the vWii, and can be extracted with legacy tools. **This also creates WADs that can be installed directly in Dolphin, allowing for running the vWii System Menu in Dolphin without a vWii NAND dump!** - "Re-encrypt title using the Wii Common Key": Re-encrypt the Title Key in a vWii title's Ticket before packing the WAD, so that the WAD can be installed via a normal WAD manager on the vWii, and can be extracted with legacy tools. **This also creates WADs that can be installed directly in Dolphin, allowing for running the vWii System Menu in Dolphin without a vWii NAND dump!**

View File

@@ -54,7 +54,6 @@ def connect_label_to_checkbox(label, checkbox):
checkbox.toggle() checkbox.toggle()
label.mousePressEvent = toggle_checkbox label.mousePressEvent = toggle_checkbox
def connect_is_enabled_to_checkbox(items, chkbox): def connect_is_enabled_to_checkbox(items, chkbox):
for item in items: for item in items:
if chkbox.isChecked(): if chkbox.isChecked():
@@ -62,7 +61,6 @@ def connect_is_enabled_to_checkbox(items, chkbox):
else: else:
item.setEnabled(False) item.setEnabled(False)
def check_nusget_updates(app, current_version: str, progress_callback=None) -> str | None: def check_nusget_updates(app, current_version: str, progress_callback=None) -> str | None:
# Simple function to make a request to the GitHub API and then check if the latest available version is newer. # Simple function to make a request to the GitHub API and then check if the latest available version is newer.
gh_api_request = requests.get(url="https://api.github.com/repos/NinjaCheetah/NUSGet/releases/latest", stream=True) gh_api_request = requests.get(url="https://api.github.com/repos/NinjaCheetah/NUSGet/releases/latest", stream=True)
@@ -82,7 +80,6 @@ def check_nusget_updates(app, current_version: str, progress_callback=None) -> s
progress_callback.emit(app.translate("MainWindow", "\n\nYou're running the latest release of NUSGet.")) progress_callback.emit(app.translate("MainWindow", "\n\nYou're running the latest release of NUSGet."))
return None return None
def get_config_file() -> pathlib.Path: def get_config_file() -> pathlib.Path:
config_dir = pathlib.Path(os.path.join( config_dir = pathlib.Path(os.path.join(
os.environ.get('APPDATA') or os.environ.get('APPDATA') or
@@ -93,13 +90,11 @@ def get_config_file() -> pathlib.Path:
config_dir.mkdir(exist_ok=True) config_dir.mkdir(exist_ok=True)
return config_dir.joinpath("config.json") return config_dir.joinpath("config.json")
def save_config(config_data: dict) -> None: def save_config(config_data: dict) -> None:
config_file = get_config_file() config_file = get_config_file()
print(f"writing data: {config_data}") print(f"writing data: {config_data}")
open(config_file, "w").write(json.dumps(config_data)) open(config_file, "w").write(json.dumps(config_data))
def update_setting(config_data: dict, setting: str, value: any) -> None: def update_setting(config_data: dict, setting: str, value: any) -> None:
config_data[setting] = value config_data[setting] = value
save_config(config_data) save_config(config_data)

View File

@@ -104,10 +104,6 @@ def run_nus_download_dsi(out_folder: pathlib.Path, tid: str, version: str, pack_
tad_file_name += ".tad" tad_file_name += ".tad"
else: else:
tad_file_name = f"{tid}-v{title_version}.tad" tad_file_name = f"{tid}-v{title_version}.tad"
# Certain special characters are prone to breaking things, so strip them from the file name before actually
# opening the file for writing. On some platforms (like macOS), invalid characters get replaced automatically,
# but on Windows the file will just fail to be written out at all.
tad_file_name = tad_file_name.translate({ord(c): None for c in '/\\:*"?<>|'})
# Have libTWLPy dump the TAD, and write that data out. # Have libTWLPy dump the TAD, and write that data out.
version_dir.joinpath(tad_file_name).write_bytes(title.dump_tad()) version_dir.joinpath(tad_file_name).write_bytes(title.dump_tad())
progress_callback.emit("Download complete!") progress_callback.emit("Download complete!")

View File

@@ -2,8 +2,10 @@
# Copyright 2024-2025 NinjaCheetah & Contributors # Copyright 2024-2025 NinjaCheetah & Contributors
import pathlib import pathlib
from typing import List, Tuple
from .tkey import find_tkey
import libWiiPy import libWiiPy
from libWiiPy.title.ticket import _TitleLimit
def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_wad_chkbox: bool, keep_enc_chkbox: bool, def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_wad_chkbox: bool, keep_enc_chkbox: bool,
@@ -51,6 +53,7 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
# Write out the TMD to a file. # Write out the TMD to a file.
version_dir.joinpath(f"tmd.{title_version}").write_bytes(title.tmd.dump()) version_dir.joinpath(f"tmd.{title_version}").write_bytes(title.tmd.dump())
# Use a local ticket, if one exists and "use local files" is enabled. # Use a local ticket, if one exists and "use local files" is enabled.
forge_ticket = False
if use_local_chkbox and version_dir.joinpath("tik").exists(): if use_local_chkbox and version_dir.joinpath("tik").exists():
progress_callback.emit(" - Parsing local copy of Ticket...") progress_callback.emit(" - Parsing local copy of Ticket...")
title.load_ticket(version_dir.joinpath("tik").read_bytes()) title.load_ticket(version_dir.joinpath("tik").read_bytes())
@@ -60,11 +63,10 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
title.load_ticket(libWiiPy.title.download_ticket(tid, wiiu_endpoint=wiiu_nus_enabled)) title.load_ticket(libWiiPy.title.download_ticket(tid, wiiu_endpoint=wiiu_nus_enabled))
version_dir.joinpath("tik").write_bytes(title.ticket.dump()) version_dir.joinpath("tik").write_bytes(title.ticket.dump())
except ValueError: except ValueError:
# If libWiiPy returns an error, then no ticket is available. Log this, and disable options requiring a # If libWiiPy returns an error, then no ticket is available. Try to forge a ticket after we download the
# ticket so that they aren't attempted later. # content.
progress_callback.emit(" - No Ticket is available!") progress_callback.emit(" - No Ticket is available! Will try forging a Ticket.")
pack_wad_enabled = False forge_ticket = True
decrypt_contents_enabled = False
# Load the content records from the TMD, and begin iterating over the records. # Load the content records from the TMD, and begin iterating over the records.
title.load_content_records() title.load_content_records()
content_list = [] content_list = []
@@ -86,6 +88,39 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
if keep_enc_chkbox is True: if keep_enc_chkbox is True:
version_dir.joinpath(content_file_name).write_bytes(content_list[content]) version_dir.joinpath(content_file_name).write_bytes(content_list[content])
title.content.content_list = content_list title.content.content_list = content_list
# Try to forge a Ticket, if a common one wasn't available.
if forge_ticket is True:
progress_callback.emit(" - Attempting to forge Ticket...")
try:
title_key = find_tkey(tid, title.content.content_list[0], title.tmd.content_records[0])
title_key_enc = libWiiPy.title.encrypt_title_key(title_key, 0, tid)
ticket = libWiiPy.title.Ticket()
ticket.common_key_index = 0
ticket.console_id = 0
ticket.content_access_permissions = b'\xff' * 64
ticket.ecdh_data = b'\x00' * 60
ticket.permit_mask = b'\x00' * 4
ticket.permitted_titles = b'\x00' * 4
ticket.signature = b'\x00' * 256
ticket.signature_issuer = "Root-CA00000001-XS00000003" + ("\x00" * 38)
ticket.signature_type = b'\x00\x01' * 2
ticket.ticket_id = b'\x00' * 8
ticket.ticket_version = 0
ticket.title_export_allowed = 0
ticket.title_id = tid.encode()
ticket.title_key_enc = title_key_enc
ticket.title_limits_list = [_TitleLimit(0, 0) for _ in range(0, 8)]
ticket.title_version = 0
ticket.unknown1 = b'\xff' * 2
ticket.unknown2 = b'\x00' * 48
ticket.fakesign()
title.ticket = ticket
version_dir.joinpath("tik").write_bytes(title.ticket.dump())
progress_callback.emit(" - Successfully forged Ticket!")
except Exception:
progress_callback.emit(" - Ticket could not be forged!")
pack_wad_enabled = False
decrypt_contents_enabled = False
# If decrypt local contents is still true, decrypt each content and write out the decrypted file. # If decrypt local contents is still true, decrypt each content and write out the decrypted file.
if decrypt_contents_enabled is True: if decrypt_contents_enabled is True:
try: try:
@@ -134,10 +169,6 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
title = ios_patcher.dump() title = ios_patcher.dump()
# Append "-PATCHED" to the end of the WAD file name to make it clear that it was modified. # Append "-PATCHED" to the end of the WAD file name to make it clear that it was modified.
wad_file_name = wad_file_name[:-4] + "-PATCHED" + wad_file_name[-4:] wad_file_name = wad_file_name[:-4] + "-PATCHED" + wad_file_name[-4:]
# Certain special characters are prone to breaking things, so strip them from the file name before actually
# opening the file for writing. On some platforms (like macOS), invalid characters get replaced automatically,
# but on Windows the file will just fail to be written out at all.
wad_file_name = wad_file_name.translate({ord(c): None for c in '/\\:*"?<>|'})
# Have libWiiPy dump the WAD, and write that data out. # Have libWiiPy dump the WAD, and write that data out.
version_dir.joinpath(wad_file_name).write_bytes(title.dump_wad()) version_dir.joinpath(wad_file_name).write_bytes(title.dump_wad())
progress_callback.emit("Download complete!") progress_callback.emit("Download complete!")

View File

@@ -1,52 +0,0 @@
# "modules/theme.py", licensed under the MIT license
# Copyright 2024-2025 NinjaCheetah & Contributors
import platform
import subprocess
def is_dark_theme_windows():
# This has to be here so that Python doesn't try to import it on non-Windows.
import winreg
try:
registry = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)
key = winreg.OpenKey(registry, r"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize")
# This value is "AppsUseLightTheme" so a "1" is light and a "0" is dark. Side note: I hate the Windows registry.
value, _ = winreg.QueryValueEx(key, "AppsUseLightTheme")
return value == 0
except Exception:
return False
def is_dark_theme_macos():
# macOS is weird. If the dark theme is on, then `defaults read -g AppleInterfaceStyle` returns "Dark". If the light
# theme is on, then trying to read this key fails and returns an error instead.
try:
result = subprocess.run(
["defaults", "read", "-g", "AppleInterfaceStyle"],
capture_output=True, text=True
)
return "Dark" in result.stdout
except Exception:
return False
def is_dark_theme_linux():
try:
import subprocess
result = subprocess.run(
["gsettings", "get", "org.gnome.desktop.interface", "gtk-theme"],
capture_output=True, text=True
)
# Looking for *not* "Light", because I want any theme that isn't light to be dark. An example of this is my own
# KDE Plasma setup on my desktop, where I use the "Breeze" GTK theme and want dark NUSGet to be used in that
# case.
return not "light" in result.stdout.lower()
except Exception:
return False
def is_dark_theme():
system = platform.system()
if system == "Windows":
return is_dark_theme_windows()
elif system == "Darwin":
return is_dark_theme_macos()
else:
return is_dark_theme_linux()

53
modules/tkey.py Normal file
View File

@@ -0,0 +1,53 @@
# "tkey-gen.py", licensed under the MIT license
# Copyright 2024 NinjaCheetah
import binascii
import hashlib
import libWiiPy
from libWiiPy.types import _ContentRecord
def _secret(start, length):
ret = b''
add = start + length
for _ in range(length):
unsigned_start = start & 0xFF # Compensates for how Python handles negative values vs PHP.
ret += bytes.fromhex(f"{unsigned_start:02x}"[-2:])
nxt = start + add
add = start
start = nxt
return ret
def _mungetid(tid):
# Remove leading zeroes from the TID.
while tid.startswith("00"):
tid = tid[2:]
if tid == "":
tid = "00"
# In PHP, the last character just gets dropped if you make a hex string from an odd-length input, so this
# replicates that functionality.
if len(tid) % 2 != 0:
tid = tid[:-1]
return bytes.fromhex(tid)
def _derive_key(tid, passwd):
key_secret = _secret(-3, 10)
salt = hashlib.md5(key_secret + _mungetid(tid)).digest()
# Had to reduce the length here from 32 to 16 when converting to get the same length keys.
return hashlib.pbkdf2_hmac("sha1", passwd.encode(), salt, 20, 16).hex()
def find_tkey(tid: str, banner_enc: bytes, content_record: _ContentRecord) -> bytes:
# Find a working Title Key by generating a key with a password, then decrypting content 0 and comparing it to the
# expected hash. If the hash matches, then we generated the correct key.
passwds = ["nintendo", "mypass"]
for passwd in passwds:
key = binascii.unhexlify(_derive_key(tid, passwd).encode())
banner_dec = libWiiPy.title.decrypt_content(banner_enc, key, content_record.index, content_record.content_size)
banner_dec_hash = hashlib.sha1(banner_dec).hexdigest()
content_record_hash = content_record.content_hash.decode()
if banner_dec_hash == content_record_hash:
return key
raise Exception("Valid Title Key could not be generated")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -17,6 +17,56 @@ class AboutNUSGet(QDialog):
self.setFixedWidth(450) self.setFixedWidth(450)
self.setFixedHeight(500) self.setFixedHeight(500)
# Set background color to match main app
self.setStyleSheet("""
Credits {
background-color: #222222;
color: #ffffff;
}
QLabel {
color: #ffffff;
}
QLabel[class="title"] {
font-size: 20px;
font-weight: bold;
color: #ffffff;
}
QLabel[class="version"] {
font-size: 13px;
color: #aaaaaa;
}
QLabel[class="copyright"] {
font-size: 12px;
color: #888888;
}
QLabel[class="header"] {
font-size: 14px;
font-weight: bold;
border-bottom: 1px solid #444444;
padding-bottom: 4px;
margin-top: 8px;
}
QPushButton {
outline: 0;
show-decoration-selected: 1;
background-color: transparent;
border: 1px solid rgba(70, 70, 70, 1);
border-radius: 8px;
padding: 6px 10px;
margin: 4px 0px;
font-size: 13px;
font-weight: 500;
color: #ffffff;
}
QPushButton:hover {
background-color: rgba(60, 60, 60, 1);
border-color: #9c4ae8;
}
QPushButton:pressed {
background-color: rgba(26, 115, 232, 0.15);
border: 1px solid #6c1ae8;
}""")
# Create main layout # Create main layout
self.layout = QVBoxLayout() self.layout = QVBoxLayout()
self.layout.setSpacing(4) self.layout.setSpacing(4)

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
sodipodi:docname="down_arrow_black.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:showpageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="57.72"
inkscape:cx="8.0128205"
inkscape:cy="8.3939709"
inkscape:window-width="1512"
inkscape:window-height="834"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.154168;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path1"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="5.0945272"
sodipodi:cy="5.9900498"
sodipodi:r1="1.9104478"
sodipodi:r2="0.95522392"
sodipodi:arg1="1.5707963"
sodipodi:arg2="2.6179939"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 5.0945273,7.9004977 4.2672791,6.4676618 3.4400309,5.034826 l 1.6544964,-10e-8 1.6544963,0 -0.8272482,1.4328359 z"
inkscape:transform-center-y="0.68257261"
transform="matrix(2.3912596,0,0,1.4291353,-4.1823371,-1.2431638)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg1"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
sodipodi:docname="information_black.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:showpageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="25.125"
inkscape:cx="16.139303"
inkscape:cy="16.835821"
inkscape:window-width="1920"
inkscape:window-height="1012"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path1"
style="fill:#000000;stroke:#000000;stroke-width:1.306;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="M 16 1.6523438 A 14.346852 14.346854 0 0 0 1.6523438 16 A 14.346852 14.346854 0 0 0 16 30.347656 A 14.346852 14.346854 0 0 0 30.347656 16 A 14.346852 14.346854 0 0 0 16 1.6523438 z M 15.992188 4.7265625 C 16.642424 4.7265625 17.197259 4.94079 17.65625 5.3710938 C 18.124803 5.8013975 18.359375 6.3235594 18.359375 6.9355469 C 18.359375 7.5475344 18.124803 8.0677432 17.65625 8.4980469 C 17.197259 8.9283506 16.642424 9.1445312 15.992188 9.1445312 C 15.341951 9.1445312 14.787116 8.9283506 14.328125 8.4980469 C 13.869134 8.0677432 13.640625 7.5475344 13.640625 6.9355469 C 13.640625 6.3235594 13.869134 5.8013975 14.328125 5.3710938 C 14.787116 4.94079 15.341951 4.7265625 15.992188 4.7265625 z M 13.841797 11.238281 L 18.144531 11.238281 L 18.144531 27.273438 L 13.841797 27.273438 L 13.841797 11.238281 z " />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
sodipodi:docname="right_arrow_black.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:showpageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="57.72"
inkscape:cx="6.8866944"
inkscape:cy="7.52772"
inkscape:window-width="1512"
inkscape:window-height="834"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.154168;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path1"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="5.0945272"
sodipodi:cy="5.9900498"
sodipodi:r1="1.9104478"
sodipodi:r2="0.95522392"
sodipodi:arg1="1.5707963"
sodipodi:arg2="2.6179939"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 5.0945273,7.9004977 4.2672791,6.4676618 3.4400309,5.034826 l 1.6544964,-10e-8 1.6544963,0 -0.8272482,1.4328359 z"
transform="matrix(0,-2.3912596,1.4291353,0,-0.56059112,19.499764)"
inkscape:transform-center-x="-0.68257261" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
sodipodi:docname="right_arrow.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:showpageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="57.72"
inkscape:cx="6.8693694"
inkscape:cy="7.52772"
inkscape:window-width="1512"
inkscape:window-height="836"
inkscape:window-x="0"
inkscape:window-y="38"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="star"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.154168;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path1"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="5.0945272"
sodipodi:cy="5.9900498"
sodipodi:r1="1.9104478"
sodipodi:r2="0.95522392"
sodipodi:arg1="1.5707963"
sodipodi:arg2="2.6179939"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 5.0945273,7.9004977 4.2672791,6.4676618 3.4400309,5.034826 l 1.6544964,-10e-8 1.6544963,0 -0.8272482,1.4328359 z"
transform="matrix(0,-2.3912596,1.4291353,0,-0.56059112,19.499764)"
inkscape:transform-center-x="-0.68257261" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -10,33 +10,6 @@ QMainWindow QLabel {
color: #ffffff; color: #ffffff;
} }
QDialog QLabel {
color: #ffffff;
}
QDialog QLabel[class="title"] {
font-size: 20px;
font-weight: bold;
}
QDialog QLabel[class="version"] {
font-size: 13px;
color: #aaaaaa;
}
QDialog QLabel[class="copyright"] {
font-size: 12px;
color: #888888;
}
QDialog QLabel[class="header"] {
font-size: 14px;
font-weight: bold;
border-bottom: 1px solid #444444;
padding-bottom: 4px;
margin-top: 8px;
}
QMenuBar { QMenuBar {
background-color: #2b2b2b; background-color: #2b2b2b;
} }
@@ -47,7 +20,7 @@ QMenuBar::item:selected {
} }
QMenuBar::item:pressed { QMenuBar::item:pressed {
background-color: #1a73e8; background-color: #6c1ae8;
color: white; color: white;
} }
@@ -68,7 +41,7 @@ QMenu::item {
} }
QMenu::item:selected { QMenu::item:selected {
background-color: #1a73e8; background-color: #6c1ae8;
color: white; color: white;
} }
@@ -88,13 +61,13 @@ QRadioButton {
QRadioButton:hover { QRadioButton:hover {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
QRadioButton:checked { QRadioButton:checked {
background-color: rgba(26, 115, 232, 0.08); background-color: rgba(26, 115, 232, 0.08);
border: 1px solid #1a73e8; border: 1px solid #6c1ae8;
color: #1a73e8; color: #6c1ae8;
} }
QRadioButton::indicator { QRadioButton::indicator {
@@ -107,13 +80,13 @@ QRadioButton::indicator {
} }
QRadioButton::indicator:checked { QRadioButton::indicator:checked {
background-color: #1a73e8; background-color: #6c1ae8;
border: 1px solid #1a73e8; border: 1px solid #6c1ae8;
image: url("{IMAGE_PREFIX}/rounded_square.svg"); image: url("{IMAGE_PREFIX}/rounded_square.svg");
} }
QRadioButton::indicator:hover { QRadioButton::indicator:hover {
border-color: #1a73e8; border-color: #6c1ae8;
} }
QLineEdit { QLineEdit {
@@ -124,11 +97,11 @@ QLineEdit {
margin: 4px 0px; margin: 4px 0px;
font-size: 13px; font-size: 13px;
color: #ffffff; color: #ffffff;
selection-background-color: #1a73e8; selection-background-color: #6c1ae8;
} }
QLineEdit:focus { QLineEdit:focus {
border-color: #1a73e8; border-color: #6c1ae8;
} }
QLineEdit:disabled { QLineEdit:disabled {
@@ -172,7 +145,6 @@ QTreeView {
} }
QTreeView QHeaderView::section { QTreeView QHeaderView::section {
color: white;
background-color: #2b2b2b; background-color: #2b2b2b;
border: 0; border: 0;
font-weight: 500; font-weight: 500;
@@ -187,31 +159,20 @@ QTreeView::item:hover {
} }
QTreeView::item:focus { QTreeView::item:focus {
background-color: rgba(26, 115, 232, 0.08); background-color: rgba(64, 26, 232, 0.15);
} }
QTreeView::item:selected { QTreeView::item:selected {
background-color: #1a73e8; background-color: #6c1ae8;
} }
QTreeView QScrollBar:vertical { QTreeView QScrollBar:vertical {
margin-top: 16px; margin-top: 16px;
} }
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
image: url("{IMAGE_PREFIX}/right_arrow_white.svg");
}
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings {
image: url("{IMAGE_PREFIX}/down_arrow_white.svg");
}
QTextBrowser { QTextBrowser {
color: white;
background-color: #1a1a1a; background-color: #1a1a1a;
selection-background-color: #1a73e8; selection-background-color: #6c1ae8;
} }
QPushButton { QPushButton {
@@ -229,17 +190,17 @@ QPushButton {
QPushButton:hover { QPushButton:hover {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
QPushButton:focus { QPushButton:focus {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
QPushButton:pressed { QPushButton:pressed {
background-color: rgba(26, 115, 232, 0.15); background-color: rgba(64, 26, 232, 0.15);
border: 1px solid #1a73e8; border: 1px solid #6c1ae8;
} }
QPushButton:disabled { QPushButton:disabled {
@@ -261,18 +222,18 @@ QComboBox {
} }
QComboBox:on { QComboBox:on {
background-color: rgba(26, 115, 232, 0.15); background-color: rgba(64, 26, 232, 0.15);
border: 1px solid #1a73e8; border: 1px solid #6c1ae8;
} }
QComboBox:hover { QComboBox:hover {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
QComboBox:focus { QComboBox:focus {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
QComboBox::drop-down { QComboBox::drop-down {
@@ -281,7 +242,7 @@ QComboBox::drop-down {
} }
QComboBox::down-arrow { QComboBox::down-arrow {
image: url("{IMAGE_PREFIX}/down_arrow_white.svg"); image: url("{IMAGE_PREFIX}/down_arrow.svg");
} }
QComboBox QAbstractItemView { QComboBox QAbstractItemView {
@@ -301,7 +262,7 @@ QComboBox QAbstractItemView::item {
} }
QComboBox QAbstractItemView::item:hover { QComboBox QAbstractItemView::item:hover {
background-color: #1a73e8; background-color: #6c1ae8;
} }
QScrollBar:vertical { QScrollBar:vertical {
@@ -320,7 +281,7 @@ QScrollBar::handle:vertical {
} }
QScrollBar::handle:vertical:hover { QScrollBar::handle:vertical:hover {
background-color: rgba(26, 115, 232, 0.4); background-color: rgba(71, 26, 232, 0.4);
} }
QScrollBar::add-line:vertical { QScrollBar::add-line:vertical {
@@ -350,7 +311,7 @@ QScrollBar::handle:horizontal {
} }
QScrollBar::handle:horizontal:hover { QScrollBar::handle:horizontal:hover {
background-color: rgba(26, 115, 232, 0.4); background-color: rgba(71, 26, 232, 0.4);
} }
QScrollBar::add-line:horizontal { QScrollBar::add-line:horizontal {
@@ -365,10 +326,6 @@ QScrollBar::sub-line:horizontal {
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QMessageBox QLabel {
color: white;
}
WrapCheckboxWidget { WrapCheckboxWidget {
show-decoration-selected: 1; show-decoration-selected: 1;
outline: 0; outline: 0;
@@ -383,7 +340,7 @@ WrapCheckboxWidget {
WrapCheckboxWidget:hover { WrapCheckboxWidget:hover {
background-color: rgba(60, 60, 60, 1); background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8; border-color: #9c4ae8;
} }
WrapCheckboxWidget:disabled { WrapCheckboxWidget:disabled {
@@ -403,16 +360,20 @@ WrapCheckboxWidget QCheckBox::indicator {
border: 1px solid #5f6368; border: 1px solid #5f6368;
} }
WrapCheckboxWidget QCheckBox::indicator::focus {
background-color: rgba(64, 26, 232, 0.15);
}
WrapCheckboxWidget QCheckBox::indicator:checked { WrapCheckboxWidget QCheckBox::indicator:checked {
background-color: #1a73e8; background-color: #6c1ae8;
border: 1px solid #1a73e8; border: 1px solid #6c1ae8;
image: url("{IMAGE_PREFIX}/check.svg"); image: url("{IMAGE_PREFIX}/check.svg");
} }
WrapCheckboxWidget QCheckBox::indicator:hover { WrapCheckboxWidget QCheckBox::indicator:hover {
border-color: #1a73e8; border-color: #6c1ae8;
} }
WrapCheckboxWidget QCheckBox:checked { WrapCheckboxWidget QCheckBox:checked {
color: #1a73e8; color: #6c1ae8;
} }

View File

@@ -1,426 +0,0 @@
/* "resources/style.qss" from NUSGet by NinjaCheetah & Contributors */
/* Much of this QSS was written by Alex (https://github.com/Humanoidear) */
/* from WiiLink for the fancy new WiiLink Patcher GUI. Used with permission. */
QMainWindow, QDialog {
background-color: #ffffff;
}
QMainWindow QLabel {
color: #000000;
}
QDialog QLabel {
color: #000000;
}
QDialog QLabel[class="title"] {
font-size: 20px;
font-weight: bold;
}
QDialog QLabel[class="version"] {
font-size: 13px;
color: #777777;
}
QDialog QLabel[class="copyright"] {
font-size: 12px;
color: #444444;
}
QDialog QLabel[class="header"] {
font-size: 14px;
font-weight: bold;
border-bottom: 1px solid #111111;
padding-bottom: 4px;
margin-top: 8px;
}
QMenuBar {
background-color: #e3e3e3;
color: #000000;
}
QMenuBar::item:selected {
background-color: rgb(195, 195, 195);
color: #000000;
}
QMenuBar::item:pressed {
background-color: #1a73e8;
color: #ffffff;
}
QMenu {
background-color: #ffffff;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 6px 2px;
margin: 4px 0;
color: #000000;
}
QMenu::item {
padding: 6px 2px;
margin: 2px;
border-radius: 4px;
background-color: transparent;
}
QMenu::item:selected {
background-color: #1a73e8;
color: #ffffff;
}
QMenu::icon {
padding: 4px;
}
QRadioButton {
background-color: transparent;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 8px 10px;
font-size: 13px;
font-weight: 500;
color: #ffffff;
}
QRadioButton:hover {
background-color: rgba(60, 60, 60, 1);
border-color: #4a86e8;
}
QRadioButton:checked {
background-color: rgba(26, 115, 232, 0.08);
border: 1px solid #1a73e8;
color: #1a73e8;
}
QRadioButton::indicator {
width: 18px;
height: 18px;
border-radius: 5px;
border: 1px solid #5f6368;
margin-right: 8px;
subcontrol-position: left center;
}
QRadioButton::indicator:checked {
background-color: #1a73e8;
border: 1px solid #1a73e8;
image: url("{IMAGE_PREFIX}/rounded_square.svg");
}
QRadioButton::indicator:hover {
border-color: #1a73e8;
}
QLineEdit {
background-color: transparent;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 6px 10px;
margin: 4px 0px;
font-size: 13px;
color: #000000;
selection-background-color: #1a73e8;
}
QLineEdit:focus {
border-color: #1a73e8;
}
QLineEdit:disabled {
background-color: rgba(182, 182, 182, 0.5);
border: 1px solid rgba(100, 100, 100, 0.3);
color: rgba(143, 143, 143, 0.3);
}
QTabWidget::pane {
border: 1px solid rgb(163, 163, 163);
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
border-bottom-left-radius: 8px;
background-color: #e3e3e3;
top: -1px;
}
QTabBar::tab {
background-color: transparent;
border-top: 1px solid rgb(163, 163, 163);
border-left: 1px solid rgb(163, 163, 163);
border-right: 1px solid rgb(163, 163, 163);
border-top-left-radius: 6px;
border-top-right-radius: 6px;
padding: 6px 10px;
font-size: 13px;
font-weight: 500;
color: #000000;
}
QTabBar::tab:selected, QTabBar::tab:hover {
background-color: #e3e3e3;
}
QTreeView {
show-decoration-selected: 1;
outline: 0;
background-color: #ffffff;
border: 0;
border-radius: 8px;
}
QTreeView QHeaderView::section {
color: #000000;
background-color: #e3e3e3;
border: 0;
font-weight: 500;
}
QTreeView::item {
color: #000000;
}
QTreeView::item:hover {
background-color: rgb(195, 195, 195);
}
QTreeView::item:focus {
background-color: rgba(26, 115, 232, 0.08);
}
QTreeView::item:selected {
background-color: rgb(127, 182, 255);
}
QTreeView::branch:selected {
background-color: rgb(127, 182, 255);
}
QTreeView QScrollBar:vertical {
margin-top: 16px;
}
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
image: url("{IMAGE_PREFIX}/right_arrow_black.svg");
}
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings {
image: url("{IMAGE_PREFIX}/down_arrow_black.svg");
}
QTextBrowser {
color: #000000;
background-color: #ececec;
selection-background-color: #1a73e8;
selection-color: #ffffff;
}
QPushButton {
outline: 0;
show-decoration-selected: 1;
background-color: transparent;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 6px 10px;
margin: 4px 0px;
font-size: 13px;
font-weight: 500;
color: #000000;
}
QPushButton:hover {
background-color: rgb(195, 195, 195);
border-color: #4a86e8;
}
QPushButton:focus {
background-color: rgb(195, 195, 195);
border-color: #4a86e8;
}
QPushButton:pressed {
background-color: rgba(26, 115, 232, 0.15);
border: 1px solid #1a73e8;
}
QPushButton:disabled {
background-color: rgba(182, 182, 182, 0.5);
border: 1px solid rgba(100, 100, 100, 0.3);
color: rgba(143, 143, 143, 0.3);
}
QComboBox {
background-color: transparent;
combobox-popup: 0;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 6px 10px;
margin: 4px 0px;
font-size: 13px;
font-weight: 500;
color: #000000;
}
QComboBox:on {
background-color: rgba(26, 115, 232, 0.15);
border: 1px solid #1a73e8;
}
QComboBox:hover {
background-color: rgb(195, 195, 195);
border-color: #4a86e8;
}
QComboBox:focus {
background-color: rgb(195, 195, 195);
border-color: #4a86e8;
}
QComboBox::drop-down {
border: 0;
width: 24px;
}
QComboBox::down-arrow {
image: url("{IMAGE_PREFIX}/down_arrow_black.svg");
}
QComboBox QAbstractItemView {
background-color: #ffffff;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 4px;
outline: none;
}
QComboBox QAbstractItemView::item {
height: 25px;
border-radius: 4px;
padding: 4px 8px;
margin: 2px 0px;
color: #000000;
}
QComboBox QAbstractItemView::item:hover {
background-color: #1a73e8;
color: #ffffff;
}
QScrollBar:vertical {
border: 0;
border-radius: 8px;
padding: 2px 0 2px 0;
background-color: #f1f1f1;
}
QScrollBar::handle:vertical {
background-color: #e3e3e3;
margin: 0 2px 0 2px;
width: 10px;
border: 1px solid rgb(163, 163, 163);
border-radius: 4px;
}
QScrollBar::handle:vertical:hover {
background-color: rgba(26, 115, 232, 0.4);
}
QScrollBar::add-line:vertical {
height: 0;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
height: 0;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar:horizontal {
border: 0;
border-radius: 8px;
padding: 2px 0 2px 0;
background-color: #f1f1f1;
}
QScrollBar::handle:horizontal {
background-color: #e3e3e3;
border: 1px solid rgb(163, 163, 163);
margin: 0px 2px 0px 2px;
border: 1px solid rgb(163, 163, 163);
border-radius: 4px;
}
QScrollBar::handle:horizontal:hover {
background-color: rgba(26, 115, 232, 0.4);
}
QScrollBar::add-line:horizontal {
height: 0;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal {
height: 0;
subcontrol-position: top;
subcontrol-origin: margin;
}
QMessageBox QLabel {
color: #000000;
}
WrapCheckboxWidget {
show-decoration-selected: 1;
outline: 0;
background-color: transparent;
border: 1px solid rgb(163, 163, 163);
border-radius: 8px;
padding: 12px 10px;
font-size: 13px;
font-weight: 500;
color: #000000;
}
WrapCheckboxWidget:hover {
background-color: rgb(195, 195, 195);
border-color: #4a86e8;
}
WrapCheckboxWidget:disabled {
background-color: rgba(182, 182, 182, 0.5);
border: 1px solid rgba(100, 100, 100, 0.3);
color: rgba(255, 255, 255, 0.3);
}
WrapCheckboxWidget QLabel:disabled {
color: rgba(143, 143, 143, 0.3);
}
WrapCheckboxWidget QCheckBox::indicator {
width: 16px;
height: 16px;
border-radius: 4px;
border: 1px solid #5f6368;
}
WrapCheckboxWidget QCheckBox::indicator:checked {
background-color: #1a73e8;
border: 1px solid #1a73e8;
image: url("{IMAGE_PREFIX}/check.svg");
}
WrapCheckboxWidget QCheckBox::indicator:hover {
border-color: #1a73e8;
}
WrapCheckboxWidget QCheckBox:checked {
color: #1a73e8;
}

View File

@@ -439,17 +439,17 @@ Sie nutzen bereits die neuste Version von NUSGet.</translation>
<translation>App-Einstellungen</translation> <translation>App-Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation>Downloads-Ordner</translation> <translation>Downloads-Ordner</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Auswählen...</translation> <translation>Auswählen...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -468,17 +468,17 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> &lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Hilfe</translation> <translation>Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Über NUSGet</translation> <translation type="unfinished">Über NUSGet</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Über Qt</translation> <translation>Über Qt</translation>
</message> </message>

View File

@@ -147,7 +147,7 @@
<translation>Configuración general</translation> <translation>Configuración general</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -159,7 +159,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Acerca de NUSGet</translation> <translation>Acerca de NUSGet</translation>
</message> </message>
@@ -214,22 +214,22 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Usar ruta de descarga personalizada</translation> <translation>Usar ruta de descarga personalizada</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Seleccionar...</translation> <translation>Seleccionar...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Ayuda</translation> <translation>Ayuda</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Acerca de Qt</translation> <translation>Acerca de Qt</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation>Ruta de descarga</translation> <translation>Ruta de descarga</translation>
</message> </message>

View File

@@ -410,7 +410,7 @@ Les titres seront téléchargés dans un dossier &quot;NUSGet Downloads&quot;,
<translation>Configuration</translation> <translation>Configuration</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -422,7 +422,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>À propos de NUSGet</translation> <translation>À propos de NUSGet</translation>
</message> </message>
@@ -486,22 +486,22 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Utiliser un dossier de téléchargement différent</translation> <translation>Utiliser un dossier de téléchargement différent</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Choisir</translation> <translation>Choisir</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>À propos de Qt</translation> <translation>À propos de Qt</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation>Dossier de téléchargement</translation> <translation>Dossier de téléchargement</translation>
</message> </message>

View File

@@ -6,72 +6,72 @@
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="16"/> <location filename="../../qt/py/ui_AboutDialog.py" line="16"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Info su NUSGet</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="82"/> <location filename="../../qt/py/ui_AboutDialog.py" line="82"/>
<source>NUSGet</source> <source>NUSGet</source>
<translation>NUSGet</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="87"/> <location filename="../../qt/py/ui_AboutDialog.py" line="87"/>
<source>Version {nusget_version}</source> <source>Version {nusget_version}</source>
<translation>Versione {nusget_version}</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="93"/> <location filename="../../qt/py/ui_AboutDialog.py" line="93"/>
<source>Using libWiiPy {libwiipy_version} &amp; libTWLPy {libtwlpy_version}</source> <source>Using libWiiPy {libwiipy_version} &amp; libTWLPy {libtwlpy_version}</source>
<translation>Versione libWiiPy {libwiipy_version} &amp; libTWLPy {libtwlpy_version}</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="98"/> <location filename="../../qt/py/ui_AboutDialog.py" line="98"/>
<source>© 2024-2025 NinjaCheetah &amp; Contributors</source> <source>© 2024-2025 NinjaCheetah &amp; Contributors</source>
<translation>© 2024-2025 NinjaCheetah &amp; Contributori</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="114"/> <location filename="../../qt/py/ui_AboutDialog.py" line="114"/>
<source>View Project on GitHub</source> <source>View Project on GitHub</source>
<translation>Vedi il progetto su GitHub</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="130"/> <location filename="../../qt/py/ui_AboutDialog.py" line="130"/>
<source>Translations</source> <source>Translations</source>
<translation>Traduzioni</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="138"/> <location filename="../../qt/py/ui_AboutDialog.py" line="138"/>
<source>French (Français): &lt;a href=https://github.com/rougets style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;rougets&lt;/b&gt;&lt;/a&gt;</source> <source>French (Français): &lt;a href=https://github.com/rougets style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;rougets&lt;/b&gt;&lt;/a&gt;</source>
<translation>Francese (Français): &lt;a href=https://github.com/rougets style=&apos;color: #4a86e8; text-decoration: none;&apos;&gt;&lt;b&gt;rougets&lt;/b&gt;&lt;/a&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="140"/> <location filename="../../qt/py/ui_AboutDialog.py" line="140"/>
<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> <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>Tedesco (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;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="142"/> <location filename="../../qt/py/ui_AboutDialog.py" line="142"/>
<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> <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>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;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="144"/> <location filename="../../qt/py/ui_AboutDialog.py" line="144"/>
<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> <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>Coreano (): &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;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="146"/> <location filename="../../qt/py/ui_AboutDialog.py" line="146"/>
<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> <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>Norvegese (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;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="148"/> <location filename="../../qt/py/ui_AboutDialog.py" line="148"/>
<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> <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>Rumeno (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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/py/ui_AboutDialog.py" line="150"/> <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> <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>Spagnolo (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;</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -146,9 +146,9 @@
<translation>Impostazioni generali</translation> <translation>Impostazioni generali</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Info su NUSGet</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="167"/> <location filename="../../NUSGet.py" line="167"/>
@@ -192,25 +192,25 @@
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="343"/> <location filename="../../qt/ui/MainMenu.ui" line="343"/>
<source>App Settings</source> <source>App Settings</source>
<translation>Impostazioni app</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="177"/> <location filename="../../NUSGet.py" line="177"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Controlla aggiornamenti all&apos;avvio</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="178"/> <location filename="../../NUSGet.py" line="178"/>
<source>Use a custom download directory</source> <source>Use a custom download directory</source>
<translation>Usa una cartella di download personalizzata</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Seleziona...</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -219,29 +219,22 @@ li.unchecked::marker { content: &quot;\2610&quot;; }
li.checked::marker { content: &quot;\2612&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;/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;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> &lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <translation type="unfinished"></translation>
&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;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Aiuto</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Info su Qt</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation>Cartella output</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<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; <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;
@@ -302,21 +295,17 @@ I titoli verranno scaricati nella cartella &quot;NUSGet Downloads&quot; all&apos
Titles marked with a checkmark are free and have a ticket available, and can be decrypted and/or packed into a WAD or TAD. Titles with an X do not have a ticket, and only their encrypted contents can be saved. Titles marked with a checkmark are free and have a ticket available, and can be decrypted and/or packed into a WAD or TAD. Titles with an X do not have a ticket, and only their encrypted contents can be saved.
By default, titles will be downloaded to a folder named &quot;NUSGet Downloads&quot; inside your downloads folder.</source> By default, titles will be downloaded to a folder named &quot;NUSGet Downloads&quot; inside your downloads folder.</source>
<translation>Scegli un titolo dalla lista a sinistra o inserisci un ID Titolo per iniziare. <translation type="unfinished"></translation>
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 &quot;NUSGet Downloads&quot; all&apos;interno della cartella Download.</translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="173"/> <location filename="../../NUSGet.py" line="173"/>
<source>Use the Wii U NUS (faster, only affects Wii/vWii)</source> <source>Use the Wii U NUS (faster, only affects Wii/vWii)</source>
<translation>Usa il NUS di Wii U (più veloce, influisce solo su Wii/vWii)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="243"/> <location filename="../../NUSGet.py" line="243"/>
<source>&lt;b&gt;There&apos;s a newer version of NUSGet available!&lt;/b&gt;</source> <source>&lt;b&gt;There&apos;s a newer version of NUSGet available!&lt;/b&gt;</source>
<translation>&lt;b&gt;È disponibile una nuova versione di NUSGet!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="344"/> <location filename="../../NUSGet.py" line="344"/>
@@ -337,17 +326,17 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella &quot;N
<location filename="../../NUSGet.py" line="359"/> <location filename="../../NUSGet.py" line="359"/>
<location filename="../../NUSGet.py" line="565"/> <location filename="../../NUSGet.py" line="565"/>
<source>Invalid Download Directory</source> <source>Invalid Download Directory</source>
<translation>Cartella di download non valida</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="360"/> <location filename="../../NUSGet.py" line="360"/>
<source>The specified download directory does not exist!</source> <source>The specified download directory does not exist!</source>
<translation>La cartella di download specificata non esiste!</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="363"/> <location filename="../../NUSGet.py" line="363"/>
<source>Please make sure the specified download directory exists, and that you have permission to access it.</source> <source>Please make sure the specified download directory exists, and that you have permission to access it.</source>
<translation>Assicurati che la cartella di download specificata esista e che tu abbia i permessi per accedervi.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="393"/> <location filename="../../NUSGet.py" line="393"/>
@@ -357,52 +346,52 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella &quot;N
<message> <message>
<location filename="../../NUSGet.py" line="394"/> <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> <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 Titolo che hai inserito non è in un formato valido!&lt;/b&gt;</translation>
</message>
<message>
<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 type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="399"/> <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> <source>&lt;b&gt;No title with the provided Title ID or version could be found!&lt;/b&gt;</source>
<translation>&lt;b&gt;Non è stato trovato alcun titolo con l&apos;ID Titolo o la versione forniti!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="404"/> <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> <source>&lt;b&gt;Content decryption was not successful! Decrypted contents could not be created.&lt;/b&gt;</source>
<translation>&lt;b&gt;La decriptazione dei contenuti non è riuscita! Non è stato possibile creare i contenuti decriptati.&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="411"/> <location filename="../../NUSGet.py" line="411"/>
<source>&lt;b&gt;No Ticket is Available for the Requested Title!&lt;/b&gt;</source> <source>&lt;b&gt;No Ticket is Available for the Requested Title!&lt;/b&gt;</source>
<translation>&lt;b&gt;Nessun ticket disponibile per il titolo richiesto!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="417"/> <location filename="../../NUSGet.py" line="417"/>
<source>&lt;b&gt;An Unknown Error has Occurred!&lt;/b&gt;</source> <source>&lt;b&gt;An Unknown Error has Occurred!&lt;/b&gt;</source>
<translation>&lt;b&gt;Si è verificato un errore sconosciuto!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="439"/> <location filename="../../NUSGet.py" line="439"/>
<source>&lt;b&gt;Some issues occurred while running the download script.&lt;/b&gt;</source> <source>&lt;b&gt;Some issues occurred while running the download script.&lt;/b&gt;</source>
<translation>&lt;b&gt;Si sono verificati alcuni problemi durante l&apos;esecuzione dello script di download.&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="489"/> <location filename="../../NUSGet.py" line="489"/>
<source>&lt;b&gt;An error occurred while parsing the script file!&lt;/b&gt;</source> <source>&lt;b&gt;An error occurred while parsing the script file!&lt;/b&gt;</source>
<translation>&lt;b&gt;Si è verificato un errore durante l&apos;analisi del file script!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="500"/> <location filename="../../NUSGet.py" line="500"/>
<source>&lt;b&gt;An error occurred while parsing Title IDs!&lt;/b&gt;</source> <source>&lt;b&gt;An error occurred while parsing Title IDs!&lt;/b&gt;</source>
<translation>&lt;b&gt;Si è verificato un errore durante l&apos;analisi degli ID Titolo!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>The Title ID you have entered is not in a valid format!</source> <source>The Title ID you have entered is not in a valid format!</source>
<translation type="vanished">L&apos; ID Titolo che hai inserito non è in un formato valido!</translation> <translation type="vanished">L&apos; ID Titolo che hai inserito non è in un formato valido!</translation>
</message> </message>
<message>
<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>Gli ID Titolo sono un codice di 16 caratteri tra numeri e lettere. Per favore inserisci in ID Titolo formattato correttamente, o scegline uno dal menù a sinistra.</translation>
</message>
<message> <message>
<location filename="../../NUSGet.py" line="398"/> <location filename="../../NUSGet.py" line="398"/>
<source>Title ID/Version Not Found</source> <source>Title ID/Version Not Found</source>
@@ -481,7 +470,7 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella &quot;N
<message> <message>
<location filename="../../NUSGet.py" line="458"/> <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> <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>Hai abilitato &quot;Crea contenuto decriptato&quot; o &quot;Archivio installabile&quot;, ma i seguenti titoli nello script non hanno ticket disponibili. Se abilitati, i contenuti criptati sono stati comunque scaricati.</translation> <translation>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.</translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="477"/> <location filename="../../NUSGet.py" line="477"/>
@@ -505,7 +494,7 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella &quot;N
<message> <message>
<location filename="../../NUSGet.py" line="491"/> <location filename="../../NUSGet.py" line="491"/>
<source>Error encountered at line {lineno}, column {colno}. Please double-check the script and try again.</source> <source>Error encountered at line {lineno}, column {colno}. Please double-check the script and try again.</source>
<translation>Errore riscontrato alla riga {lineno}, colonna {colno}. Controlla nuovamente lo script e riprova.</translation> <translation>Error encountered at line {lineno}, column {colno}. Please double-check the script and try again.</translation>
</message> </message>
<message> <message>
<source>An error occurred while parsing Title IDs!</source> <source>An error occurred while parsing Title IDs!</source>
@@ -514,22 +503,22 @@ Per impostazione predefinita, i titoli verranno scaricati nella cartella &quot;N
<message> <message>
<location filename="../../NUSGet.py" line="502"/> <location filename="../../NUSGet.py" line="502"/>
<source>The title at index {index} does not have a Title ID!</source> <source>The title at index {index} does not have a Title ID!</source>
<translation>Il titolo all&apos;indice {index} non ha un ID Titolo!</translation> <translation>The title at index {index} does not have a Title ID!</translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="555"/> <location filename="../../NUSGet.py" line="555"/>
<source>Open Directory</source> <source>Open Directory</source>
<translation>Apri cartella</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="566"/> <location filename="../../NUSGet.py" line="566"/>
<source>&lt;b&gt;The specified download directory does not exist!&lt;/b&gt;</source> <source>&lt;b&gt;The specified download directory does not exist!&lt;/b&gt;</source>
<translation>&lt;b&gt;La cartella di download specificata non esiste!&lt;/b&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="569"/> <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> <source>Please make sure the download directory you want to use exists, and that you have permission to access it.</source>
<translation>Assicurati che la cartella di download che desideri utilizzare esista e che tu abbia i permessi per accedervi.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Open NUS script</source> <source>Open NUS script</source>

View File

@@ -146,9 +146,9 @@
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>NUSGet </translation> <translation type="unfinished">NUSGet </translation>
</message> </message>
<message> <message>
<location filename="../../NUSGet.py" line="167"/> <location filename="../../NUSGet.py" line="167"/>
@@ -205,12 +205,12 @@
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -222,7 +222,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation></translation> <translation></translation>
</message> </message>
@@ -231,12 +231,12 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Qt </translation> <translation>Qt </translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation> </translation> <translation> </translation>
</message> </message>

View File

@@ -146,7 +146,7 @@
<translation>Generelle Instillinger</translation> <translation>Generelle Instillinger</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Om NUSGet</translation> <translation>Om NUSGet</translation>
</message> </message>
@@ -205,12 +205,12 @@
<translation>Bruke en egendefinert nedlastingsmappe</translation> <translation>Bruke en egendefinert nedlastingsmappe</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Velg...</translation> <translation>Velg...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -229,17 +229,17 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> &lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Hjelp</translation> <translation>Hjelp</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Om Qt</translation> <translation>Om Qt</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translatorcomment>Utgangsbane</translatorcomment> <translatorcomment>Utgangsbane</translatorcomment>
<translation></translation> <translation></translation>

View File

@@ -146,7 +146,7 @@
<translation>Generelle Instillinger</translation> <translation>Generelle Instillinger</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Om NUSGet</translation> <translation>Om NUSGet</translation>
</message> </message>
@@ -205,12 +205,12 @@
<translation>Bruke en egendefinert nedlastingsmappe</translation> <translation>Bruke en egendefinert nedlastingsmappe</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Velg...</translation> <translation>Velg...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -229,17 +229,17 @@ li.checked::marker { content: &quot;\2612&quot;; }
&lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> &lt;p style=&quot;-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:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Hjelp</translation> <translation>Hjelp</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Om Qt</translation> <translation>Om Qt</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translatorcomment>Utgangsbane</translatorcomment> <translatorcomment>Utgangsbane</translatorcomment>
<translation></translation> <translation></translation>

View File

@@ -447,7 +447,7 @@ Implicit, titlurile vor fi descărcate într-un folder numit „NUSGet Downloads
<translation>Setări Generale</translation> <translation>Setări Generale</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="432"/> <location filename="../../qt/ui/MainMenu.ui" line="425"/>
<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; <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; &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; } p, li { white-space: pre-wrap; }
@@ -459,7 +459,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="471"/> <location filename="../../qt/ui/MainMenu.ui" line="464"/>
<source>About NUSGet</source> <source>About NUSGet</source>
<translation>Despre NUSGet</translation> <translation>Despre NUSGet</translation>
</message> </message>
@@ -523,22 +523,22 @@ li.checked::marker { content: &quot;\2612&quot;; }
<translation>Folosiți un director de descărcare propriu</translation> <translation>Folosiți un director de descărcare propriu</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="378"/> <location filename="../../qt/ui/MainMenu.ui" line="371"/>
<source>Select...</source> <source>Select...</source>
<translation>Selectează...</translation> <translation>Selectează...</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="458"/> <location filename="../../qt/ui/MainMenu.ui" line="451"/>
<source>Help</source> <source>Help</source>
<translation>Ajutor</translation> <translation>Ajutor</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="482"/> <location filename="../../qt/ui/MainMenu.ui" line="475"/>
<source>About Qt</source> <source>About Qt</source>
<translation>Despre Qt</translation> <translation>Despre Qt</translation>
</message> </message>
<message> <message>
<location filename="../../qt/ui/MainMenu.ui" line="368"/> <location filename="../../qt/ui/MainMenu.ui" line="361"/>
<source>Output Path</source> <source>Output Path</source>
<translation>Cale de ieșire</translation> <translation>Cale de ieșire</translation>
</message> </message>