diff --git a/NUSGet.py b/NUSGet.py index d6a19f4..32d1918 100644 --- a/NUSGet.py +++ b/NUSGet.py @@ -122,7 +122,17 @@ class MainWindow(QMainWindow, Ui_MainWindow): list_view = QListView() list_view.setMouseTracking(True) self.ui.console_select_dropdown.setView(list_view) + dropdown_delegate = ComboBoxItemDelegate() + self.ui.console_select_dropdown.setItemDelegate(dropdown_delegate) self.ui.console_select_dropdown.currentIndexChanged.connect(self.selected_console_changed) + # Fix the annoying background on the help menu items. + self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.FramelessWindowHint) + self.ui.menuHelp.setWindowFlags(self.ui.menuHelp.windowFlags() | Qt.NoDropShadowWindowHint) + self.ui.menuHelp.setAttribute(Qt.WA_TranslucentBackground) + # Load the custom information icon. + icon = QIcon(os.path.join(os.path.dirname(__file__), "resources", "information.svg")) + self.ui.actionAbout.setIcon(icon) + self.ui.actionAbout_Qt.setIcon(icon) # Title tree loading code. Now powered by Models:tm: wii_model = NUSGetTreeModel(wii_database, root_name="Wii Titles") vwii_model = NUSGetTreeModel(vwii_database, root_name="vWii Titles") diff --git a/TRANSLATING.md b/TRANSLATING.md index a5a5337..6b7c891 100644 --- a/TRANSLATING.md +++ b/TRANSLATING.md @@ -1,35 +1,78 @@ # Translating NUSGet -Since v1.2.0, NUSGet has support for loading Qt translation files. If you'd like to translate NUSGet into your language, see the following directions. +To translate NUSGet into your language, first make sure that you have NUSGet's dependencies installed: +- [Git](https://git-scm.com/) +- [Python](https://python.org) (make sure to install a version listed as compatible in the README) -### 1. Get Qt Linguist -The first thing you'll need to get is Qt Linguist. +### Step 1: Fork and Prepare the Repository +To fork the repository, either click the "Fork" button on the repository's main page, or [click here](https://github.com/NinjaCheetah/NUSGet/fork). -For Windows and macOS users, this comes included with a normal Qt install. You'll want to get the official online Qt installer for open-source development, which is free and can be obtained [here](https://www.qt.io/download-qt-installer-oss). You do **not** need the paid/commercial version of Qt, as NUSGet is free software and is developed with the OSS version of Qt. - -For Linux users, you'll likely be able to get Qt's development tools, including Qt Linguist, via your system package manager. You **must** get the Qt 6 version of the development tools, not the Qt 5 version. On Arch, for example, the package you'll need is `qt6-tools`. Depending on how the package is handled, Linguist may not appear in your application menu. If that's the case, you can start it by running `linguist6`. - - -### 2. Load Your Translation -NUSGet's raw translation files are stored in `resources/translations/`. - -If your language doesn't already exist, open up `NUSGet.pyproject` and add a new line for your language. These files must follow the standard two-letter language codes, and you must provide the full path to the file, like with the existing entries. An example entry for Spanish would look like this: -```json -"./resources/translations/nusget_es.ts" +Then, you'll need to clone your new fork locally and enter it: +```shell +git clone https://github.com//NUSGet +cd NUSGet/ ``` -If your language already exists, or if you just added it, run `python update_translations.py` to generate any new translation files and update existing ones. +Then, create and activate a venv (depending on your platform, you may need to specify `python3` rather than `python`): +```shell +python -m venv .venv -Once your translation file is ready, open it up in Qt Linguist. You should see NUSGet's interface on the right, so you have the context of where these strings are being used. +# Windows +.venv\Scripts\activate +# macOS, Linux, and other Unix-likes +source .venv/bin/activate +``` -### 3. Translate -Qt Linguist will show you a list of all strings that need to be translated, along with their status. For strings that are part of the UI, the corresponding UI element will be shown so that you know what you're translating. For strings only present in the code, the code will be shown instead, which can generally be ignored. +Finally, install NUSGet's dependencies: +```shell +pip install --upgrade -r requirements.txt +``` -When you've finished with your translations (or if you just want to test them), head back to the project and run `python build_translations.py`, which will build the translations to QM files in the same directory as the original TS files. These files are packaged as part of the executable when you build NUSGet, and are the actual resources that Qt loads the translations from at runtime. +### Step 2: Add Your Language +Open `NUSGet.pyproject` in your editor of choice, and check for your language in it. If a line for your language doesn't exist, create a new entry following the format `"./resources/translations/nusget_XX.ts"`, where `XX` is the two-letter code that represents your language. +### Step 3: Update Translation Files +To update the `.ts` files that store the translations and to create them for any newly added languages, run: +```shell +python update_translations.py +``` +This ensures that you're working on an up-to-date version of the strings in the app. -### 4. Submit Your Changes -Once you've finished with your translations, open a new pull request on NUSGet's repo with your changes, and make sure to use the `translations` label. Please **do not** submit any unrelated changes as part of a translation pull request. Other changes should be submitted separately. +### Step 4: Launch Qt Linguist and Load the Translations +Qt Linguist is included as part of the `PySide6` package you installed during Step 1. To launch Qt Linguist, use the appropriate command for your platform, replacing `` with the version of Python you installed (for example, `3.12`). +```shell +# Windows +.venv\lib\python\site-packages\PySide6\linguist.exe -If you have any questions about translations, feel free to reach out and ask for help. +# macOS +open .venv/lib/python/site-packages/PySide6/Linguist.app + +# Linux and other Unix-likes +./.venv/lib/python/site-packages/PySide6/linguist +``` +If you have Qt Linguist installed system-wide already, you can use that instead. These steps are included primarily for those who don't, since installing the Qt Platform Tools on Windows or macOS requires having a Qt account. + +Once you've launched Qt Linguist, you can open the `.ts` file for your language in it. + +### Step 5: Translate! + +### Step 6: Test Your Translations +If your current system language is the one you're NUSGet translating into, then you can just run: +```shell +python NUSGet.py +``` +and the app should open in your language. + +If your system language does not match the language you're translating to, you can specify a language override, like this: +```shell +LANG=xx_XX.UTF-8 python NUSGet.py +``` +where `xx` is the two-letter language code, such as `ko` for Korean, and `XX` is the country code, such as `KR` for Korea. All together, that would give you: +```shell +LANG=ko_KR.UTF-8 python NUSGet.py +``` +which would open NUSGet with the Korean translations loaded. + +### Step 7: Push and Merge Your Translations +When you're done translating, commit your translations and push them to GitHub. Then, open a pull request on the original repository, and you're all done! diff --git a/modules/core.py b/modules/core.py index f510d6c..e579075 100644 --- a/modules/core.py +++ b/modules/core.py @@ -8,7 +8,15 @@ import requests from dataclasses import dataclass from typing import List -from PySide6.QtCore import Qt as _Qt +from PySide6.QtCore import Qt, QSize +from PySide6.QtWidgets import QStyledItemDelegate, QSizePolicy + + +# This is required to make the dropdown look correct with the custom styling. A little fuzzy on the why, but it has to +# do with how Qt handles rendering the dropdown items. The sizing has to be overridden so that they don't overlap. +class ComboBoxItemDelegate(QStyledItemDelegate): + def sizeHint(self, option, index): + return QSize(option.rect.width(), 33) @dataclass @@ -42,7 +50,7 @@ class BatchResults: def connect_label_to_checkbox(label, checkbox): def toggle_checkbox(event): - if checkbox.isEnabled() and event.button() == _Qt.LeftButton: + if checkbox.isEnabled() and event.button() == Qt.LeftButton: checkbox.toggle() label.mousePressEvent = toggle_checkbox diff --git a/qt/py/ui_AboutDialog.py b/qt/py/ui_AboutDialog.py index e6f66b7..e4cb010 100644 --- a/qt/py/ui_AboutDialog.py +++ b/qt/py/ui_AboutDialog.py @@ -73,7 +73,7 @@ class AboutNUSGet(QDialog): # Logo logo_label = QLabel() - icon = QIcon(os.path.join(pathlib.Path(os.path.dirname(__file__)).resolve().parent.parent, "resources", "icon.png")) + icon = QIcon(str(pathlib.Path(os.path.dirname(__file__)).parents[1].joinpath("resources", "icon.png"))) logo_pixmap = icon.pixmap(96, 96) logo_label.setPixmap(logo_pixmap) logo_label.setAlignment(Qt.AlignmentFlag.AlignCenter) diff --git a/resources/information.svg b/resources/information.svg new file mode 100644 index 0000000..3a6f437 --- /dev/null +++ b/resources/information.svg @@ -0,0 +1,46 @@ + + + + + + + + + + diff --git a/resources/style.qss b/resources/style.qss index 147b753..d009dea 100644 --- a/resources/style.qss +++ b/resources/style.qss @@ -15,27 +15,38 @@ QMenuBar { } QMenuBar::item:selected { + background-color: rgba(60, 60, 60, 1); + color: white; +} + +QMenuBar::item:pressed { background-color: #6c1ae8; + color: white; } QMenu { - background-color: #222222; + background-color: #2b2b2b; border: 1px solid rgba(70, 70, 70, 1); border-radius: 8px; - padding: 6px 10px; - margin: 4px 0px; + padding: 6px 2px; + margin: 4px 0; + color: white; +} + +QMenu::item { + padding: 6px 2px; + margin: 2px; + border-radius: 4px; + background-color: transparent; } QMenu::item:selected { background-color: #6c1ae8; + color: white; } -QAction { - background-color: #222222; - border: 1px solid rgba(70, 70, 70, 1); - border-radius: 8px; - padding: 6px 10px; - margin: 4px 0px; +QMenu::icon { + padding: 4px; } QRadioButton { @@ -139,6 +150,10 @@ QTreeView QHeaderView::section { font-weight: 500; } +QTreeView::item { + color: white; +} + QTreeView::item:hover { background-color: rgba(60, 60, 60, 1); } @@ -196,6 +211,7 @@ QPushButton:disabled { QComboBox { background-color: transparent; + combobox-popup: 0; border: 1px solid rgba(70, 70, 70, 1); border-radius: 8px; padding: 6px 10px; @@ -230,16 +246,19 @@ QComboBox::down-arrow { } QComboBox QAbstractItemView { - background-color: #222222; - border: 1px solid rgba(70, 70, 70, 1); + background-color: #2b2b2b; + border: 1px solid #444444; border-radius: 8px; - padding: 6px 10px; - outline: 0; - show-decoration-selected: 1; + padding: 4px; + outline: none; } -QComboBox QAbstractItemView::item:selected { - background-color: #6c1ae8; +QComboBox QAbstractItemView::item { + height: 25px; + border-radius: 4px; + padding: 4px 8px; + margin: 2px 0px; + color: white; } QComboBox QAbstractItemView::item:hover { diff --git a/resources/translations/nusget_fr.ts b/resources/translations/nusget_fr.ts index 5e57c17..aecfab9 100644 --- a/resources/translations/nusget_fr.ts +++ b/resources/translations/nusget_fr.ts @@ -6,67 +6,68 @@ About NUSGet - + À propos de NUSGet NUSGet - + Version {nusget_version} - + Using libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} - + Utilise libWiiPy {libwiipy_version} et libTWLPy {libtwlpy_version} © 2024-2025 NinjaCheetah & Contributors - + In French, we need to translate both genders for Contributors, just because. + © 2024-2025 NinjaCheetah, contributeurs et contributrices View Project on GitHub - + Voir le projet sur GitHub Translations - + Traductions French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> - + Français : <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> - + Allemand (Deutsch) : <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> - + Italien (Italiano) : <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> - + Coréen (한국어) : <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> - + Norvégien (Norsk) : <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> - + Roumain (Română) : <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> @@ -94,7 +95,7 @@ Les titres marqués d'une coche sont gratuits et ont un billet disponible, Les titres seront téléchargés dans un dossier "NUSGet Downloads", à l'intérieur de votre dossier de téléchargements. - + NUSGet Update Available Mise à jour NUSGet disponible @@ -109,105 +110,109 @@ Les titres seront téléchargés dans un dossier "NUSGet Downloads", 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 "NUSGet Downloads" inside your downloads folder. - + Choisissez un titre depuis la liste à gauche, ou saisissez un ID de titre pour commencer. + +Les titres marqués d'une coche sont gratuits et ont un billet disponible, et peuvent être décryptés et/ou empaquetés dans un fichier WAD ou TAD. Les titres marqués d'une croix n'ont pas de billets, et seul leur contenu crypté peut être enregistré. + +Les titres seront téléchargés dans un dossier "NUSGet Downloads", à l'intérieur de votre dossier de téléchargements. - + Use the Wii U NUS (faster, only affects Wii/vWii) - + Utiliser le NUS Wii U (plus rapide, n'affecte que Wii / vWii) - + <b>There's a newer version of NUSGet available!</b> - + <b>Une nouvelle version de NUSGet est disponible !</b> - + No Output Selected Aucun format sélectionné - + You have not selected any format to output the data in! Veuillez sélectionner un format de sortie pour les données ! - + Please select at least one option for how you would like the download to be saved. Veuillez sélectionner au moins une option de téléchargement. - - + + Invalid Download Directory - + Dossier de téléchargement invalide - + The specified download directory does not exist! - + Le dossier de téléchargement choisi n'existe pas ! - + Please make sure the specified download directory exists, and that you have permission to access it. - + Assurez-vous que votre dossier de téléchargement existe, et que vous avez les droits suffisants pour y accéder. - + Invalid Title ID ID de titre invalide - + <b>The Title ID you have entered is not in a valid format!</b> - + <b>L'ID de titre que vous avez saisi a un format invalide !</b> - + <b>No title with the provided Title ID or version could be found!</b> - + <b>Aucun titre trouvé pour l'ID ou la version fourni !</b> - + <b>Content decryption was not successful! Decrypted contents could not be created.</b> - - - - - <b>No Ticket is Available for the Requested Title!</b> - + <b>Le décryptage du contenu a échoué ! Le contenu décrypté ne peut être créé.</b> + <b>No Ticket is Available for the Requested Title!</b> + <b>Aucun billet disponible pour le titre demandé !</b> + + + <b>An Unknown Error has Occurred!</b> - + <b>Une erreur inconnue est survenue !</b> - + <b>Some issues occurred while running the download script.</b> - + <b>Des erreurs sont survenues pendant l'exécution du script de téléchargement.</b> - + <b>An error occurred while parsing the script file!</b> - + <b>Une erreur est survenue pendant la lecture du script !</b> - + <b>An error occurred while parsing Title IDs!</b> - + <b>Une erreur est survenue à la lecture d'un ID de titre !</b> The Title ID you have entered is not in a valid format! L'ID de titre que vous avez saisi a un format invalide ! - + 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. Les ID de titre doivent être composés de 16 caractères alphanumériques. Veuillez saisir un ID formaté correctement, ou sélectionnez-en un depuis le menu de gauche. - + Title ID/Version Not Found ID de titre / Version introuvable @@ -216,12 +221,12 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Aucun titre trouvé pour l'ID ou la version fourni ! - + Please make sure that you have entered a valid Title ID, or selected one from the title database, and that the provided version exists for the title you are attempting to download. Veuillez vous assurez que vous avez saisi un ID valide, ou sélectionnez-en un depuis la base de données, et que la version fournie existe pour le titre que vous souhaitez télécharger. - + Content Decryption Failed Échec du décryptage @@ -230,12 +235,12 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Le décryptage du contenu a échoué ! Le contenu décrypté ne peut être créé. - + Your TMD or Ticket may be damaged, or they may not correspond with the content being decrypted. If you have checked "Use local files, if they exist", try disabling that option before trying the download again to fix potential issues with local data. Vos métadonnées (TMD) ou le billet sont probablement endommagés, ou ils ne correspondent pas au contenu décrypté. Si vous avez coché "Utiliser des fichiers locaux, s'ils existent", essayez de désactiver cette option avant d'essayer à nouveau pour résoudre les éventuelles erreurs avec les données locales. - + Ticket Not Available Billet indisponible @@ -244,12 +249,12 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Aucun billet disponible pour le titre demandé ! - + A ticket could not be downloaded for the requested title, but you have selected "Pack installable archive" or "Create decrypted contents". These options are not available for titles without a ticket. Only encrypted contents have been saved. Un billet ne peut être téléchargé pour le titre demandé, mais vous avez sélectionné "Empaqueter une archive d'installation" ou "Décrypter le contenu". Ces options sont indisponibles pour les titres sans billet. Seul le contenu crypté a été enregistré. - + Unknown Error Erreur inconnue @@ -258,12 +263,12 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Une erreur inconnue est survenue ! - + Please try again. If this issue persists, please open a new issue on GitHub detailing what you were trying to do when this error occurred. Veuillez essayer à nouveau. Si le problème persiste, déclarez un problème sur GitHub en décrivant les actions qui ont provoqué l'erreur. - + Script Issues Occurred Erreurs survenues dans le script @@ -272,32 +277,32 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Des erreurs sont survenues pendant l'exécution du script de téléchargement. - + Check the log for more details about what issues were encountered. Vérifiez le journal pour plus de détails à propos des erreurs rencontrées. - + The following titles could not be downloaded due to an error. Please ensure that the Title ID and version listed in the script are valid. Le téléchargement des titres suivants a échoué. Assurez-vous que les ID de titre et version du script soient valides. - + You enabled "Create decrypted contents" or "Pack installable archive", but the following titles in the script do not have tickets available. If enabled, encrypted contents were still downloaded. Vous avez activé "Décrypter le contenu" ou "Empaqueter une archive d'installation", mais les billets des titres suivants sont indisponibles. Si activé(s), le contenu crypté a été téléchargé. - + Script Download Failed Échec du script de téléchargement - + Open NUS Script Ouvrir un script NUS - + NUS Scripts (*.nus *.json) Scripts NUS (*.nus *.json) @@ -306,7 +311,7 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Une erreur est survenue pendant la lecture du script ! - + Error encountered at line {e.lineno}, column {e.colno}. Please double-check the script and try again. Erreur recontrée ligne {e.lineno}, colonne {e.colno}. Vérifiez le script et réessayez. @@ -315,24 +320,24 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Une erreur est survenue à la lecture d'un ID de titre ! - + The title at index {script_data.index(title)} does not have a Title ID! Le titre à l'index {script_data.index(title)} n'a pas d'ID ! - + Open Directory - + Ouvrir un dossier - + <b>The specified download directory does not exist!</b> - + <b>Le dossier de téléchargement choisi n'existe pas !</b> - + Please make sure the download directory you want to use exists, and that you have permission to access it. - + Assurez-vous que votre dossier de téléchargement existe, et que vous avez les droits suffisants pour y accéder. @@ -409,15 +414,15 @@ li.unchecked::marker { content: "\2610"; } li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> - + About NUSGet - + À propos de NUSGet - + Pack installable archive (WAD/TAD) Empaqueter une archive d'installation (WAD / TAD) @@ -427,17 +432,17 @@ li.checked::marker { content: "\2612"; } Nom du fichier - + Keep encrypted contents Conserver le contenu crypté - + Create decrypted contents (*.app) Décrypter le contenu (*.app) - + Use local files, if they exist Utiliser des fichiers locaux, s'ils existent @@ -446,7 +451,7 @@ li.checked::marker { content: "\2612"; } Utiliser le NUS Wii U (plus rapide, n'affecte que Wii / vWii) - + Apply patches to IOS (Applies to WADs only) Appliquer des modifications aux IOS (WAD uniquement) @@ -456,47 +461,47 @@ li.checked::marker { content: "\2612"; } Titres vWii - + Re-encrypt title using the Wii Common Key Encrypter le titre avec la clé commune Wii App Settings - + Paramètres - + Check for updates on startup - + Vérifier les mises à jour au démarrage - + Use a custom download directory - + Utiliser un dossier de téléchargement différent Select... - + Choisir Help - + Aide About Qt - + À propos de Qt Output Path - + Dossier de téléchargement - + Could not check for updates. @@ -505,7 +510,7 @@ Could not check for updates. Impossible de vérifier les mises à jour. - + There's a newer version of NUSGet available! @@ -514,7 +519,7 @@ There's a newer version of NUSGet available! Une nouvelle version de NUSGet est disponible ! - + You're running the latest release of NUSGet. diff --git a/resources/translations/nusget_nb.ts b/resources/translations/nusget_nb.ts index 0281ec7..953c8c0 100644 --- a/resources/translations/nusget_nb.ts +++ b/resources/translations/nusget_nb.ts @@ -6,67 +6,67 @@ About NUSGet - + Om NUSGet NUSGet - + NUSGet Version {nusget_version} - + Versjon {nusget_version} Using libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} - + Bruker libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} © 2024-2025 NinjaCheetah & Contributors - + © 2024-2025 NinjaCheetah & Contributors View Project on GitHub - + Se Prosjektet på GitHub Translations - + Oversettelser French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> - + Fransk (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> - + Tysk (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> - + Italiensk (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> - + Koreansk 한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> - + Norsk (Bokmål): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> - + Rumensk (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> @@ -143,7 +143,7 @@ About NUSGet - + Om NUSGet @@ -187,22 +187,22 @@ App Settings - + Appinstillinger Check for updates on startup - + Sjekk for oppdateringer ved oppstart Use a custom download directory - + Bruke en egendefinert nedlastingsmappe Select... - + Velg... @@ -214,22 +214,30 @@ li.unchecked::marker { content: "\2610"; } li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> Help - + Hjelp About Qt - + Om Qt Output Path - + Utgangsbane + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -308,7 +316,7 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl <b>There's a newer version of NUSGet available!</b> - + <b>Det finnes en nyere versjon av NUSGet tilgjengelig!</b> @@ -329,17 +337,17 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl Invalid Download Directory - + Ugyldig Nedlastingsmappe The specified download directory does not exist! - + Den angitte nedlastingsmappen finnes ikke! Please make sure the specified download directory exists, and that you have permission to access it. - + Kontroller at den angitte nedlastingsmappen finnes, og at du har tillatelse fil å få tilgang til den. @@ -349,42 +357,42 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl <b>The Title ID you have entered is not in a valid format!</b> - + <b>Tittel IDen du har angitt er ikke i et gyldig format!</b> <b>No title with the provided Title ID or version could be found!</b> - + <b>Ingen tittel med oppgitt Tittel ID eller versjon ble funnet!</b> <b>Content decryption was not successful! Decrypted contents could not be created.</b> - + <b>Dekryptering av innhold var ikke vellykket! Dekryptert innhold kunne ikke opprettes.</b> <b>No Ticket is Available for the Requested Title!</b> - + <b>Ingen billett er tilgjengelig for den forespurte tittelen!</b> <b>An Unknown Error has Occurred!</b> - + <b>En ukjent feil har oppstått!</b> <b>Some issues occurred while running the download script.</b> - + <b>Noen feil oppstod under kjøring av nedlastingsskriptet.</b> <b>An error occurred while parsing the script file!</b> - + <b>Det oppstod en feil under parsing av skriptfilen!</b> <b>An error occurred while parsing Title IDs!</b> - + <b>Det oppstod en feil under parsing av Tittel IDer!</b> The Title ID you have entered is not in a valid format! @@ -511,17 +519,17 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl Open Directory - + Åpen Mappe <b>The specified download directory does not exist!</b> - + <b>Den angitte nedlastingsmappen finnes ikke!</b> Please make sure the download directory you want to use exists, and that you have permission to access it. - + Kontroller at den angitte nedlastingsmappen finnes, og at du har tillatelse fil å få tilgang til den. @@ -535,12 +543,16 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl 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 "NUSGet Downloads" inside your downloads folder. - + Velg en tittel fra listen til venstre, eller skriv inn en Tittel ID for å begynne. + +Titler merket med en hake er fri og har en billett tilgjengelig, og kan dekrypteres og/eller pakkes inn i en WAD eller TAD. Titler med en X ikke har en billett, og bare det krypterte innholdet kan lagres. + +Som standard, lastes titler ned til en mappe med navnet "NUSGet Downloads" i nedlastingsmappen din. Use the Wii U NUS (faster, only affects Wii/vWii) - + Bruk Wii U NUS (raskere, påvirker bare Wii/vWii) diff --git a/resources/translations/nusget_no.ts b/resources/translations/nusget_no.ts index 0281ec7..953c8c0 100644 --- a/resources/translations/nusget_no.ts +++ b/resources/translations/nusget_no.ts @@ -6,67 +6,67 @@ About NUSGet - + Om NUSGet NUSGet - + NUSGet Version {nusget_version} - + Versjon {nusget_version} Using libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} - + Bruker libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} © 2024-2025 NinjaCheetah & Contributors - + © 2024-2025 NinjaCheetah & Contributors View Project on GitHub - + Se Prosjektet på GitHub Translations - + Oversettelser French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> - + Fransk (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> - + Tysk (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> - + Italiensk (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> - + Koreansk 한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> - + Norsk (Bokmål): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> - + Rumensk (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> @@ -143,7 +143,7 @@ About NUSGet - + Om NUSGet @@ -187,22 +187,22 @@ App Settings - + Appinstillinger Check for updates on startup - + Sjekk for oppdateringer ved oppstart Use a custom download directory - + Bruke en egendefinert nedlastingsmappe Select... - + Velg... @@ -214,22 +214,30 @@ li.unchecked::marker { content: "\2610"; } li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> Help - + Hjelp About Qt - + Om Qt Output Path - + Utgangsbane + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -308,7 +316,7 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl <b>There's a newer version of NUSGet available!</b> - + <b>Det finnes en nyere versjon av NUSGet tilgjengelig!</b> @@ -329,17 +337,17 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl Invalid Download Directory - + Ugyldig Nedlastingsmappe The specified download directory does not exist! - + Den angitte nedlastingsmappen finnes ikke! Please make sure the specified download directory exists, and that you have permission to access it. - + Kontroller at den angitte nedlastingsmappen finnes, og at du har tillatelse fil å få tilgang til den. @@ -349,42 +357,42 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl <b>The Title ID you have entered is not in a valid format!</b> - + <b>Tittel IDen du har angitt er ikke i et gyldig format!</b> <b>No title with the provided Title ID or version could be found!</b> - + <b>Ingen tittel med oppgitt Tittel ID eller versjon ble funnet!</b> <b>Content decryption was not successful! Decrypted contents could not be created.</b> - + <b>Dekryptering av innhold var ikke vellykket! Dekryptert innhold kunne ikke opprettes.</b> <b>No Ticket is Available for the Requested Title!</b> - + <b>Ingen billett er tilgjengelig for den forespurte tittelen!</b> <b>An Unknown Error has Occurred!</b> - + <b>En ukjent feil har oppstått!</b> <b>Some issues occurred while running the download script.</b> - + <b>Noen feil oppstod under kjøring av nedlastingsskriptet.</b> <b>An error occurred while parsing the script file!</b> - + <b>Det oppstod en feil under parsing av skriptfilen!</b> <b>An error occurred while parsing Title IDs!</b> - + <b>Det oppstod en feil under parsing av Tittel IDer!</b> The Title ID you have entered is not in a valid format! @@ -511,17 +519,17 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl Open Directory - + Åpen Mappe <b>The specified download directory does not exist!</b> - + <b>Den angitte nedlastingsmappen finnes ikke!</b> Please make sure the download directory you want to use exists, and that you have permission to access it. - + Kontroller at den angitte nedlastingsmappen finnes, og at du har tillatelse fil å få tilgang til den. @@ -535,12 +543,16 @@ Titler er lastes ned til en mappe med navnet "NUSGet Downloads" i nedl 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 "NUSGet Downloads" inside your downloads folder. - + Velg en tittel fra listen til venstre, eller skriv inn en Tittel ID for å begynne. + +Titler merket med en hake er fri og har en billett tilgjengelig, og kan dekrypteres og/eller pakkes inn i en WAD eller TAD. Titler med en X ikke har en billett, og bare det krypterte innholdet kan lagres. + +Som standard, lastes titler ned til en mappe med navnet "NUSGet Downloads" i nedlastingsmappen din. Use the Wii U NUS (faster, only affects Wii/vWii) - + Bruk Wii U NUS (raskere, påvirker bare Wii/vWii) diff --git a/resources/translations/nusget_ro.ts b/resources/translations/nusget_ro.ts index 18a91d8..947a0f2 100644 --- a/resources/translations/nusget_ro.ts +++ b/resources/translations/nusget_ro.ts @@ -6,67 +6,67 @@ About NUSGet - + Despre NUSGet NUSGet - + NUSGet Version {nusget_version} - + Versiunea {nusget_version} Using libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} - + Folosește libWiiPy {libwiipy_version} & libTWLPy {libtwlpy_version} © 2024-2025 NinjaCheetah & Contributors - + © 2024-2025 NinjaCheetah & Contributors View Project on GitHub - + Vedeți proiectul pe GitHub Translations - + Traduceri French (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> - + Franceză (Français): <a href=https://github.com/rougets style='color: #4a86e8; text-decoration: none;'><b>rougets</b></a> German (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> - + Germană (Deutsch): <a href=https://github.com/yeah-its-gloria style='color: #4a86e8; text-decoration: none;'><b>yeah-its-gloria</b></a> Italian (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> - + Italiană (Italiano): <a href=https://github.com/LNLenost style='color: #4a86e8; text-decoration: none;'><b>LNLenost</b></a> Korean (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> - + Coreană (한국어): <a href=https://github.com/DDinghoya style='color: #4a86e8; text-decoration: none;'><b>DDinghoya</b></a> Norwegian (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> - + Norvegiană (Norsk): <a href=https://github.com/rolfiee style='color: #4a86e8; text-decoration: none;'><b>rolfiee</b></a> Romanian (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> - + Română (Română): <a href=https://github.com/NotImplementedLife style='color: #4a86e8; text-decoration: none;'><b>NotImplementedLife</b></a> @@ -131,17 +131,21 @@ Titlurile vor fi descărcate într-un folder numit „NUSGet Downloads” în fi 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 "NUSGet Downloads" inside your downloads folder. - + Selectați un titlu din lista din stânga, sau introduceți un Title ID pentru a începe. + +Titlurile marcate cu bifă sunt libere și au un tichet valabil, ele pot fi decriptate și/sau împachetate într-un WAD sau TAD. Titlurile cu X nu au tichet, și doar conținutul lor criptat poate fi salvat. + +Implicit, titlurile vor fi descărcate într-un folder numit „NUSGet Downloads” în folderul dvs. de descărcări. Use the Wii U NUS (faster, only affects Wii/vWii) - + Folosiți Wii U NUS (mai rapid, afectează doar Wii/vWii) <b>There's a newer version of NUSGet available!</b> - + <b>O nouă versiune de NUSGet este valabilă!</b> @@ -162,17 +166,17 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Invalid Download Directory - + Director de descărcare invalid The specified download directory does not exist! - + Directorul de descărcare specificat nu există! Please make sure the specified download directory exists, and that you have permission to access it. - + Vă rugăm să vă asigurați că directorul de descărcare specificat există, și că aveți permisiuni pentru a-l accesa. @@ -182,42 +186,42 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q <b>The Title ID you have entered is not in a valid format!</b> - + <b> Title ID pe care l-ați introdus nu este într-un format valid!</b> <b>No title with the provided Title ID or version could be found!</b> - + <b>Nu s-a găsit niciun titlu cu Title ID sau versiunea introdusă!</b> <b>Content decryption was not successful! Decrypted contents could not be created.</b> - + <b>Decriptarea conținutului a eșuat! Nu s-a putut crea conținutul decriptat.</b> <b>No Ticket is Available for the Requested Title!</b> - + <b>Nu există tichet valabil pentru titlul cerut!</b> <b>An Unknown Error has Occurred!</b> - + <b>S-a produs o eroare necunoscută!</b> <b>Some issues occurred while running the download script.</b> - + <b>Au apărut câteva probleme la rularea scriptului de descărcare.</b> <b>An error occurred while parsing the script file!</b> - + <b>A apărut o eroare la procesarea fișierului script!</b> <b>An error occurred while parsing Title IDs!</b> - + <b>A apărut o eroare la procesarea Title ID-urilor!</b> The Title ID you have entered is not in a valid format! @@ -344,17 +348,17 @@ By default, titles will be downloaded to a folder named "NUSGet Downloads&q Open Directory - + Deschideți folder <b>The specified download directory does not exist!</b> - + <b>Directorul de descărcare specificat nu există!</b> Please make sure the download directory you want to use exists, and that you have permission to access it. - + Vă rugăm să vă asigurați că directorul de descărcare pe care vreți să il folosiți există, și că aveți permisiunea de a-l accesa. Open NUS script @@ -447,12 +451,12 @@ li.unchecked::marker { content: "\2610"; } li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html> - + About NUSGet - + Despre NUSGet @@ -501,37 +505,37 @@ li.checked::marker { content: "\2612"; } App Settings - + Setări aplicație Check for updates on startup - + Verificați dacă există actualizări la startup Use a custom download directory - + Folosiți un director de descărcare propriu Select... - + Selectează... Help - + Ajutor About Qt - + Despre Qt Output Path - + Cale de ieșire