diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee09163fd..6b87ec418 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -368,7 +368,7 @@ jobs: run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel3 - name: Run AppImage packaging script run: ./.github/linux-appimage-qt.sh diff --git a/src/common/config.cpp b/src/common/config.cpp index 17862e6aa..1dde7223c 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -60,6 +60,7 @@ static bool vkMarkers = false; static bool vkCrashDiagnostic = false; static s16 cursorState = HideCursorState::Idle; static int cursorHideTimeout = 5; // 5 seconds (default) +static bool separateupdatefolder = false; // Gui std::vector settings_install_dirs = {}; @@ -207,6 +208,10 @@ bool vkCrashDiagnosticEnabled() { return vkCrashDiagnostic; } +bool getSeparateUpdateEnabled() { + return separateupdatefolder; +} + void setGpuId(s32 selectedGpuId) { gpuId = selectedGpuId; } @@ -319,6 +324,10 @@ void setSpecialPadClass(int type) { specialPadClass = type; } +void setSeparateUpdateEnabled(bool use) { + separateupdatefolder = use; +} + void setMainWindowGeometry(u32 x, u32 y, u32 w, u32 h) { main_window_geometry_x = x; main_window_geometry_y = y; @@ -483,6 +492,7 @@ void load(const std::filesystem::path& path) { } isShowSplash = toml::find_or(general, "showSplash", true); isAutoUpdate = toml::find_or(general, "autoUpdate", false); + separateupdatefolder = toml::find_or(general, "separateUpdateEnabled", false); } if (data.contains("Input")) { @@ -597,6 +607,7 @@ void save(const std::filesystem::path& path) { data["General"]["updateChannel"] = updateChannel; data["General"]["showSplash"] = isShowSplash; data["General"]["autoUpdate"] = isAutoUpdate; + data["General"]["separateUpdateEnabled"] = separateupdatefolder; data["Input"]["cursorState"] = cursorState; data["Input"]["cursorHideTimeout"] = cursorHideTimeout; data["Input"]["backButtonBehavior"] = backButtonBehavior; diff --git a/src/common/config.h b/src/common/config.h index 591d6dced..9c71c96a8 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -19,6 +19,7 @@ bool isFullscreenMode(); bool getPlayBGM(); int getBGMvolume(); bool getEnableDiscordRPC(); +bool getSeparateUpdateEnabled(); std::string getLogFilter(); std::string getLogType(); @@ -62,6 +63,7 @@ void setLanguage(u32 language); void setNeoMode(bool enable); void setUserName(const std::string& type); void setUpdateChannel(const std::string& type); +void setSeparateUpdateEnabled(bool use); void setCursorState(s16 cursorState); void setCursorHideTimeout(int newcursorHideTimeout); diff --git a/src/core/file_sys/fs.cpp b/src/core/file_sys/fs.cpp index 3b060dd83..8e6d74622 100644 --- a/src/core/file_sys/fs.cpp +++ b/src/core/file_sys/fs.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include +#include "common/config.h" #include "common/string_util.h" #include "core/file_sys/fs.h" @@ -53,7 +54,14 @@ std::filesystem::path MntPoints::GetHostPath(std::string_view guest_directory, b // Remove device (e.g /app0) from path to retrieve relative path. pos = mount->mount.size() + 1; const auto rel_path = std::string_view(corrected_path).substr(pos); - const auto host_path = mount->host_path / rel_path; + std::filesystem::path host_path = mount->host_path / rel_path; + + std::filesystem::path patch_path = mount->host_path; + patch_path += "-UPDATE"; + if (corrected_path.starts_with("/app0/") && std::filesystem::exists(patch_path / rel_path)) { + host_path = patch_path / rel_path; + } + if (!NeedsCaseInsensitiveSearch) { return host_path; } diff --git a/src/emulator.cpp b/src/emulator.cpp index 67aaa0492..46bcfea37 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -114,7 +114,10 @@ void Emulator::Run(const std::filesystem::path& file) { std::string app_version; u32 fw_version; - std::filesystem::path sce_sys_folder = file.parent_path() / "sce_sys"; + std::filesystem::path game_patch_folder = file.parent_path().concat("-UPDATE"); + bool use_game_patch = std::filesystem::exists(game_patch_folder / "sce_sys"); + std::filesystem::path sce_sys_folder = + use_game_patch ? game_patch_folder / "sce_sys" : file.parent_path() / "sce_sys"; if (std::filesystem::is_directory(sce_sys_folder)) { for (const auto& entry : std::filesystem::directory_iterator(sce_sys_folder)) { if (entry.path().filename() == "param.sfo") { diff --git a/src/qt_gui/game_info.cpp b/src/qt_gui/game_info.cpp index d82f43f20..48643f8ed 100644 --- a/src/qt_gui/game_info.cpp +++ b/src/qt_gui/game_info.cpp @@ -17,7 +17,7 @@ void GameInfoClass::GetGameInfo(QWidget* parent) { QDir parentFolder(installDir); QFileInfoList fileList = parentFolder.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); for (const auto& fileInfo : fileList) { - if (fileInfo.isDir()) { + if (fileInfo.isDir() && !fileInfo.filePath().endsWith("-UPDATE")) { filePaths.append(fileInfo.absoluteFilePath()); } } diff --git a/src/qt_gui/game_info.h b/src/qt_gui/game_info.h index 8f65803bf..640b25e49 100644 --- a/src/qt_gui/game_info.h +++ b/src/qt_gui/game_info.h @@ -25,9 +25,15 @@ public: static GameInfo readGameInfo(const std::filesystem::path& filePath) { GameInfo game; game.path = filePath; + std::filesystem::path sce_folder_path = filePath / "sce_sys" / "param.sfo"; + std::filesystem::path game_update_path = + std::filesystem::path(filePath.string() + "-UPDATE"); + if (std::filesystem::exists(game_update_path / "sce_sys" / "param.sfo")) { + sce_folder_path = game_update_path / "sce_sys" / "param.sfo"; + } PSF psf; - if (psf.Open(game.path / "sce_sys" / "param.sfo")) { + if (psf.Open(sce_folder_path)) { game.icon_path = game.path / "sce_sys" / "icon0.png"; QString iconpath; Common::FS::PathToQString(iconpath, game.icon_path); diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h index 4eb657572..fba8616af 100644 --- a/src/qt_gui/gui_context_menus.h +++ b/src/qt_gui/gui_context_menus.h @@ -68,6 +68,18 @@ public: menu.addMenu(copyMenu); + // "Delete..." submenu. + QMenu* deleteMenu = new QMenu(tr("Delete..."), widget); + QAction* deleteGame = new QAction(tr("Delete Game"), widget); + QAction* deleteUpdate = new QAction(tr("Delete Update"), widget); + QAction* deleteDLC = new QAction(tr("Delete DLC"), widget); + + deleteMenu->addAction(deleteGame); + deleteMenu->addAction(deleteUpdate); + deleteMenu->addAction(deleteDLC); + + menu.addMenu(deleteMenu); + // Show menu. auto selected = menu.exec(global_pos); if (!selected) { @@ -82,7 +94,13 @@ public: if (selected == &openSfoViewer) { PSF psf; - if (psf.Open(std::filesystem::path(m_games[itemID].path) / "sce_sys" / "param.sfo")) { + QString game_update_path; + Common::FS::PathToQString(game_update_path, m_games[itemID].path.concat("-UPDATE")); + std::filesystem::path game_folder_path = m_games[itemID].path; + if (std::filesystem::exists(Common::FS::PathFromQString(game_update_path))) { + game_folder_path = Common::FS::PathFromQString(game_update_path); + } + if (psf.Open(game_folder_path / "sce_sys" / "param.sfo")) { int rows = psf.GetEntries().size(); QTableWidget* tableWidget = new QTableWidget(rows, 2); tableWidget->setAttribute(Qt::WA_DeleteOnClose); @@ -269,6 +287,55 @@ public: .arg(QString::fromStdString(m_games[itemID].size)); clipboard->setText(combinedText); } + + if (selected == deleteGame || selected == deleteUpdate || selected == deleteDLC) { + bool error = false; + QString folder_path, game_update_path; + Common::FS::PathToQString(folder_path, m_games[itemID].path); + Common::FS::PathToQString(game_update_path, m_games[itemID].path.concat("-UPDATE")); + QString message_type = tr("Game"); + if (selected == deleteUpdate) { + if (!Config::getSeparateUpdateEnabled()) { + QMessageBox::critical( + nullptr, tr("Error"), + QString(tr("This feature requires the 'Enable Separate Update Folder' " + "config option " + "to work. If you want to use this feature, please enable it."))); + error = true; + } else if (!std::filesystem::exists(m_games[itemID].path.concat("-UPDATE"))) { + QMessageBox::critical(nullptr, tr("Error"), + QString(tr("This game has no update to delete!"))); + error = true; + } else { + folder_path = game_update_path; + message_type = tr("Update"); + } + } else if (selected == deleteDLC) { + std::filesystem::path addon_path = + Config::getAddonInstallDir() / + Common::FS::PathFromQString(folder_path).parent_path().filename(); + if (!std::filesystem::exists(addon_path)) { + QMessageBox::critical(nullptr, tr("Error"), + QString(tr("This game has no DLC to delete!"))); + error = true; + } else { + folder_path = QString::fromStdString(addon_path.string()); + message_type = tr("DLC"); + } + } + if (!error) { + QString gameName = QString::fromStdString(m_games[itemID].name); + QDir dir(folder_path); + QMessageBox::StandardButton reply = QMessageBox::question( + nullptr, QString(tr("Delete %1")).arg(message_type), + QString(tr("Are you sure you want to delete %1's %2 directory?")) + .arg(gameName, message_type), + QMessageBox::Yes | QMessageBox::No); + if (reply == QMessageBox::Yes) { + dir.removeRecursively(); + } + } + } } int GetRowIndex(QTreeWidget* treeWidget, QTreeWidgetItem* item) { diff --git a/src/qt_gui/install_dir_select.h b/src/qt_gui/install_dir_select.h index fdadf2fe0..e3e81575a 100644 --- a/src/qt_gui/install_dir_select.h +++ b/src/qt_gui/install_dir_select.h @@ -12,6 +12,8 @@ class QLineEdit; class InstallDirSelect final : public QDialog { + Q_OBJECT + public: InstallDirSelect(); ~InstallDirSelect(); @@ -20,9 +22,6 @@ public: return selected_dir; } -private slots: - void BrowseGamesDirectory(); - private: QWidget* SetupInstallDirList(); QWidget* SetupDialogActions(); diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 025749dd4..d80102ff4 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -676,10 +676,17 @@ void MainWindow::InstallDragDropPkg(std::filesystem::path file, int pkgNum, int InstallDirSelect ids; ids.exec(); auto game_install_dir = ids.getSelectedDirectory(); - auto extract_path = game_install_dir / pkg.GetTitleID(); + auto game_folder_path = game_install_dir / pkg.GetTitleID(); QString pkgType = QString::fromStdString(pkg.GetPkgFlags()); + bool use_game_update = pkgType.contains("Patch") && Config::getSeparateUpdateEnabled(); + auto game_update_path = use_game_update + ? game_install_dir / (std::string(pkg.GetTitleID()) + "-UPDATE") + : game_folder_path; + if (!std::filesystem::exists(game_update_path)) { + std::filesystem::create_directory(game_update_path); + } QString gameDirPath; - Common::FS::PathToQString(gameDirPath, extract_path); + Common::FS::PathToQString(gameDirPath, game_folder_path); QDir game_dir(gameDirPath); if (game_dir.exists()) { QMessageBox msgBox; @@ -715,7 +722,11 @@ void MainWindow::InstallDragDropPkg(std::filesystem::path file, int pkgNum, int QMessageBox::critical(this, tr("PKG ERROR"), "PSF file there is no APP_VER"); return; } - psf.Open(extract_path / "sce_sys" / "param.sfo"); + std::filesystem::path sce_folder_path = + std::filesystem::exists(game_update_path / "sce_sys" / "param.sfo") + ? game_update_path / "sce_sys" / "param.sfo" + : game_folder_path / "sce_sys" / "param.sfo"; + psf.Open(sce_folder_path); QString game_app_version; if (auto app_ver = psf.GetString("APP_VER"); app_ver.has_value()) { game_app_version = QString::fromStdString(std::string{*app_ver}); @@ -764,7 +775,7 @@ void MainWindow::InstallDragDropPkg(std::filesystem::path file, int pkgNum, int addonMsgBox.setDefaultButton(QMessageBox::No); int result = addonMsgBox.exec(); if (result == QMessageBox::Yes) { - extract_path = addon_extract_path; + game_update_path = addon_extract_path; } else { return; } @@ -775,12 +786,14 @@ void MainWindow::InstallDragDropPkg(std::filesystem::path file, int pkgNum, int msgBox.setDefaultButton(QMessageBox::No); int result = msgBox.exec(); if (result == QMessageBox::Yes) { - extract_path = addon_extract_path; + game_update_path = addon_extract_path; } else { return; } } } else { + QString gameDirPath; + Common::FS::PathToQString(gameDirPath, game_folder_path); msgBox.setText(QString(tr("Game already installed") + "\n" + gameDirPath + "\n" + tr("Would you like to overwrite?"))); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); @@ -801,8 +814,7 @@ void MainWindow::InstallDragDropPkg(std::filesystem::path file, int pkgNum, int } // what else? } - - if (!pkg.Extract(file, extract_path, failreason)) { + if (!pkg.Extract(file, game_update_path, failreason)) { QMessageBox::critical(this, tr("PKG ERROR"), QString::fromStdString(failreason)); } else { int nfiles = pkg.GetNumberOfFiles(); diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp index b63f14c05..77701f221 100644 --- a/src/qt_gui/settings_dialog.cpp +++ b/src/qt_gui/settings_dialog.cpp @@ -133,6 +133,9 @@ SettingsDialog::SettingsDialog(std::span physical_devices, QWidge connect(ui->ps4proCheckBox, &QCheckBox::stateChanged, this, [](int val) { Config::setNeoMode(val); }); + connect(ui->separateUpdatesCheckBox, &QCheckBox::stateChanged, this, + [](int val) { Config::setSeparateUpdateEnabled(val); }); + connect(ui->logTypeComboBox, &QComboBox::currentTextChanged, this, [](const QString& text) { Config::setLogType(text.toStdString()); }); @@ -270,6 +273,7 @@ SettingsDialog::SettingsDialog(std::span physical_devices, QWidge ui->showSplashCheckBox->installEventFilter(this); ui->ps4proCheckBox->installEventFilter(this); ui->discordRPCCheckbox->installEventFilter(this); + ui->separateUpdatesCheckBox->installEventFilter(this); ui->userName->installEventFilter(this); ui->logTypeGroupBox->installEventFilter(this); ui->logFilter->installEventFilter(this); @@ -328,6 +332,7 @@ void SettingsDialog::LoadValuesFromConfig() { ui->logTypeComboBox->setCurrentText(QString::fromStdString(Config::getLogType())); ui->logFilterLineEdit->setText(QString::fromStdString(Config::getLogFilter())); ui->userNameLineEdit->setText(QString::fromStdString(Config::getUserName())); + ui->separateUpdatesCheckBox->setChecked(Config::getSeparateUpdateEnabled()); ui->debugDump->setChecked(Config::debugDump()); ui->vkValidationCheckBox->setChecked(Config::vkValidationEnabled()); @@ -437,6 +442,8 @@ void SettingsDialog::updateNoteTextEdit(const QString& elementName) { text = tr("ps4proCheckBox"); } else if (elementName == "discordRPCCheckbox") { text = tr("discordRPCCheckbox"); + } else if (elementName == "separateUpdatesCheckBox") { + text = tr("separateUpdatesCheckBox"); } else if (elementName == "userName") { text = tr("userName"); } else if (elementName == "logTypeGroupBox") { diff --git a/src/qt_gui/settings_dialog.ui b/src/qt_gui/settings_dialog.ui index b98fe228d..5d1225a1e 100644 --- a/src/qt_gui/settings_dialog.ui +++ b/src/qt_gui/settings_dialog.ui @@ -134,6 +134,13 @@ + + + + Enable Separate Update Folder + + + diff --git a/src/qt_gui/translations/ar.ts b/src/qt_gui/translations/ar.ts index 8efacc063..463fd9716 100644 --- a/src/qt_gui/translations/ar.ts +++ b/src/qt_gui/translations/ar.ts @@ -52,6 +52,19 @@ ...جارٍ التحميل + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - اختر المجلد + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter مرشح السجل - + Input إدخال - + Cursor مؤشر @@ -509,7 +522,7 @@ Enable NULL GPU تمكين وحدة معالجة الرسومات الفارغة - + Paths المسارات @@ -1083,7 +1096,7 @@ GUIgroupBox تشغيل موسيقى العنوان:\nإذا كانت اللعبة تدعم ذلك، قم بتمكين تشغيل موسيقى خاصة عند اختيار اللعبة في واجهة المستخدم. - + hideCursorGroupBox إخفاء المؤشر:\nاختر متى سيختفي المؤشر:\nأبداً: سترى الفأرة دائماً.\nعاطل: حدد وقتاً لاختفائه بعد أن يكون غير مستخدم.\nدائماً: لن ترى الفأرة أبداً. @@ -1289,7 +1302,7 @@ Update Available تحديث متاح - + Update Channel قناة التحديث diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts index 9abe22c3d..b3a6b9001 100644 --- a/src/qt_gui/translations/da_DK.ts +++ b/src/qt_gui/translations/da_DK.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Indtastning - + Cursor Markør @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Stier @@ -1083,7 +1096,7 @@ GUIgroupBox Titelsmusikafspilning:\nHvis spillet understøtter det, aktiver speciel musik, når spillet vælges i brugergrænsefladen. - + hideCursorGroupBox Skjul Cursor:\nVælg hvornår cursoren skal forsvinde:\nAldrig: Du vil altid se musen.\nInaktiv: Indstil en tid for, hvornår den skal forsvinde efter at være inaktiv.\nAltid: du vil aldrig se musen. @@ -1289,7 +1302,7 @@ Update Available Opdatering tilgængelig - + Update Channel Opdateringskanal diff --git a/src/qt_gui/translations/de.ts b/src/qt_gui/translations/de.ts index a6904d9a1..75a14b348 100644 --- a/src/qt_gui/translations/de.ts +++ b/src/qt_gui/translations/de.ts @@ -52,6 +52,19 @@ Lade... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Wähle Ordner + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log-Filter - + Input Eingabe - + Cursor Cursor @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPU aktivieren - + Paths Pfad @@ -1083,7 +1096,7 @@ GUIgroupBox Wiedergabe der Titelmusik:\nWenn das Spiel dies unterstützt, wird beim Auswählen des Spiels in der Benutzeroberfläche spezielle Musik abgespielt. - + hideCursorGroupBox Maus ausblenden:\nWählen Sie, wann der Cursor verschwinden soll:\nNie: Sie sehen die Maus immer.\nInaktiv: Legen Sie eine Zeit fest, nach der sie nach Inaktivität verschwindet.\nImmer: Sie sehen die Maus niemals. @@ -1289,7 +1302,7 @@ Update Available Aktualisierung verfügbar - + Update Channel Update-Kanal diff --git a/src/qt_gui/translations/el.ts b/src/qt_gui/translations/el.ts index 963ca0ab1..871709297 100644 --- a/src/qt_gui/translations/el.ts +++ b/src/qt_gui/translations/el.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Είσοδος - + Cursor Δείκτης @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Διαδρομές @@ -1083,7 +1096,7 @@ GUIgroupBox Αναπαραγωγή Μουσικής Τίτλων:\nΕάν το παιχνίδι το υποστηρίζει, ενεργοποιεί ειδική μουσική κατά την επιλογή του παιχνιδιού από τη διεπαφή χρήστη. - + hideCursorGroupBox Απόκρυψη Κέρσορα:\nΕπιλέξτε πότε θα εξαφανιστεί ο κέρσορας:\nΠοτέ: θα βλέπετε πάντα το ποντίκι.\nΑδρανές: ορίστε έναν χρόνο για να εξαφανιστεί μετά από αδράνεια.\nΠάντα: δεν θα δείτε ποτέ το ποντίκι. @@ -1289,7 +1302,7 @@ Update Available Διαθέσιμη Ενημέρωση - + Update Channel Κανάλι Ενημέρωσης diff --git a/src/qt_gui/translations/en.ts b/src/qt_gui/translations/en.ts index d781bc2fe..7c44fbdf4 100644 --- a/src/qt_gui/translations/en.ts +++ b/src/qt_gui/translations/en.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Paths @@ -1289,7 +1302,7 @@ Update Available Update Available - + Update Channel Update Channel diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts index 1095cd9cd..1a5a8c887 100644 --- a/src/qt_gui/translations/es_ES.ts +++ b/src/qt_gui/translations/es_ES.ts @@ -52,6 +52,19 @@ Cargando... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Elegir carpeta + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Filtro de registro - + Input Entrada - + Cursor Cursor @@ -509,7 +522,7 @@ Enable NULL GPU Habilitar GPU NULL - + Paths Rutas @@ -1083,7 +1096,7 @@ GUIgroupBox Reproducir Música del Título:\nSi un juego lo admite, habilita la reproducción de música especial al seleccionar el juego en la interfaz gráfica. - + hideCursorGroupBox Ocultar Cursor:\nElija cuándo desaparecerá el cursor:\nNunca: Siempre verá el mouse.\nInactivo: Establezca un tiempo para que desaparezca después de estar inactivo.\nSiempre: nunca verá el mouse. @@ -1289,7 +1302,7 @@ Update Available Actualización disponible - + Update Channel Canal de Actualización diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts index e86001b9a..0a6b21916 100644 --- a/src/qt_gui/translations/fa_IR.ts +++ b/src/qt_gui/translations/fa_IR.ts @@ -52,6 +52,19 @@ ...درحال بارگیری + + InstallDirSelect + + + shadPS4 - Choose directory + ShadPS4 - انتخاب محل نصب بازی + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log فیلتر - + Input ورودی - + Cursor نشانگر @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPU فعال کردن - + Paths مسیرها @@ -1083,7 +1096,7 @@ GUIgroupBox Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - + hideCursorGroupBox پنهان کردن نشانگر:\nانتخاب کنید که نشانگر چه زمانی ناپدید شود:\nهرگز: شما همیشه ماوس را خواهید دید.\nغیرفعال: زمانی را برای ناپدید شدن بعد از غیرفعالی تعیین کنید.\nهمیشه: شما هرگز ماوس را نخواهید دید. @@ -1289,7 +1302,7 @@ Update Available به روز رسانی موجود است - + Update Channel کانال بروزرسانی diff --git a/src/qt_gui/translations/fi.ts b/src/qt_gui/translations/fi.ts index fe972de9a..98efe9c8f 100644 --- a/src/qt_gui/translations/fi.ts +++ b/src/qt_gui/translations/fi.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Syöttö - + Cursor Kursori @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Polut @@ -1083,7 +1096,7 @@ GUIgroupBox Soita Otsikkomusiikkia:\nJos peli tukee sitä, ota käyttöön erityisen musiikin soittaminen pelin valinnan yhteydessä käyttöliittymässä. - + hideCursorGroupBox Piilota kursori:\nValitse, milloin kursori häviää:\nEi koskaan: Näet hiiren aina.\nAktiivinen: Aseta aika, jolloin se häviää oltuaan aktiivinen.\nAina: et koskaan näe hiirtä. @@ -1289,7 +1302,7 @@ Update Available Päivitys saatavilla - + Update Channel Päivityskanava diff --git a/src/qt_gui/translations/fr.ts b/src/qt_gui/translations/fr.ts index 95158d73e..8e371908b 100644 --- a/src/qt_gui/translations/fr.ts +++ b/src/qt_gui/translations/fr.ts @@ -52,6 +52,19 @@ Chargement... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choisir un répertoire + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Filtre - + Input Entrée - + Cursor Curseur @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPU - + Paths Chemins @@ -1083,7 +1096,7 @@ GUIgroupBox Jouer de la musique de titre:\nSi le jeu le prend en charge, cela active la musique spéciale lorsque vous sélectionnez le jeu dans l'interface utilisateur. - + hideCursorGroupBox Masquer le curseur:\nChoisissez quand le curseur disparaîtra:\nJamais: Vous verrez toujours la souris.\nInactif: Définissez un temps pour qu'il disparaisse après inactivité.\nToujours: vous ne verrez jamais la souris. @@ -1289,7 +1302,7 @@ Update Available Mise à jour disponible - + Update Channel Canal de Mise à Jour diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts index 7337b54c9..8104a3d98 100644 --- a/src/qt_gui/translations/hu_HU.ts +++ b/src/qt_gui/translations/hu_HU.ts @@ -52,6 +52,19 @@ Betöltés.. + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Mappa kiválasztása + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Naplózási Filter - + Input Bemenet - + Cursor Kurzor @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPU Engedélyezése - + Paths Útvonalak @@ -1083,7 +1096,7 @@ GUIgroupBox Játék címzene lejátszása:\nHa a játék támogatja, engedélyezze a speciális zene lejátszását, amikor a játékot kiválasztja a GUI-ban. - + hideCursorGroupBox Akurátor elrejtése:\nVálassza ki, mikor tűnjön el az egérkurzor:\nSoha: Az egér mindig látható.\nInaktív: Állítson be egy időt, amikor inaktív állapotban eltűnik.\nMindig: soha nem látja az egeret. @@ -1289,7 +1302,7 @@ Update Available Frissítés elérhető - + Update Channel Frissítési Csatorna diff --git a/src/qt_gui/translations/id.ts b/src/qt_gui/translations/id.ts index f64762671..288149346 100644 --- a/src/qt_gui/translations/id.ts +++ b/src/qt_gui/translations/id.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Masukan - + Cursor Kursor @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Jalur @@ -1083,7 +1096,7 @@ GUIgroupBox Putar Musik Judul Permainan:\nJika permainan mendukungnya, aktifkan pemutaran musik khusus saat memilih permainan di GUI. - + hideCursorGroupBox Sembunyikan Kursor:\nPilih kapan kursor akan menghilang:\nTidak Pernah: Anda akan selalu melihat mouse.\nTidak Aktif: Tetapkan waktu untuk menghilang setelah tidak aktif.\nSelalu: Anda tidak akan pernah melihat mouse. @@ -1289,7 +1302,7 @@ Update Available Pembaruan Tersedia - + Update Channel Saluran Pembaruan diff --git a/src/qt_gui/translations/it.ts b/src/qt_gui/translations/it.ts index 1da50ec5b..47000d57f 100644 --- a/src/qt_gui/translations/it.ts +++ b/src/qt_gui/translations/it.ts @@ -52,6 +52,19 @@ Caricamento... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Scegli cartella + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Filtro Log - + Input Input - + Cursor Cursore @@ -509,7 +522,7 @@ Enable NULL GPU Abilita NULL GPU - + Paths Percorsi @@ -1083,7 +1096,7 @@ GUIgroupBox Riproduci Musica del Titolo:\nSe un gioco lo supporta, attiva la riproduzione di musica speciale quando selezioni il gioco nell'interfaccia grafica. - + hideCursorGroupBox Nascondi cursore:\nScegli quando il cursore scomparirà:\nMai: Vedrai sempre il mouse.\nInattivo: Imposta un tempo per farlo scomparire dopo essere stato inattivo.\nSempre: non vedrai mai il mouse. @@ -1289,7 +1302,7 @@ Update Available Aggiornamento disponibile - + Update Channel Canale di Aggiornamento diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts index 4fd819452..952ceb5ab 100644 --- a/src/qt_gui/translations/ja_JP.ts +++ b/src/qt_gui/translations/ja_JP.ts @@ -52,6 +52,19 @@ 読み込み中... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - ディレクトリを選択 + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter ログフィルター - + Input 入力 - + Cursor カーソル @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPUを有効にする - + Paths パス @@ -1083,7 +1096,7 @@ GUIgroupBox タイトルミュージックを再生:\nゲームがそれをサポートしている場合、GUIでゲームを選択したときに特別な音楽を再生することを有効にします。 - + hideCursorGroupBox カーソルを隠す:\nカーソルが消えるタイミングを選択してください:\n決して: いつでもマウスが見えます。\nアイドル: アイダルの後に消えるまでの時間を設定します。\n常に: マウスは決して見えません。 @@ -1289,7 +1302,7 @@ Update Available アップデートがあります - + Update Channel アップデートチャネル diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts index 74d307c3e..d7d200672 100644 --- a/src/qt_gui/translations/ko_KR.ts +++ b/src/qt_gui/translations/ko_KR.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Input - + Cursor Cursor @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Paths @@ -1289,7 +1302,7 @@ Update Available Update Available - + Update Channel Update Channel diff --git a/src/qt_gui/translations/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts index 2924d65ba..f82a20a9d 100644 --- a/src/qt_gui/translations/lt_LT.ts +++ b/src/qt_gui/translations/lt_LT.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Įvestis - + Cursor Žymeklis @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Keliai @@ -1083,7 +1096,7 @@ GUIgroupBox Groti antraščių muziką:\nJei žaidimas tai palaiko, įjungia specialios muzikos grojimą, kai pasirinkite žaidimą GUI. - + hideCursorGroupBox Slėpti žymeklį:\nPasirinkite, kada žymeklis dings:\nNiekuomet: Visada matysite pelę.\nNeaktyvus: Nustatykite laiką, po kurio ji dings, kai bus neaktyvi.\nVisada: niekada nematysite pelės. @@ -1289,7 +1302,7 @@ Update Available Prieinama atnaujinimas - + Update Channel Atnaujinimo Kanalas diff --git a/src/qt_gui/translations/nb.ts b/src/qt_gui/translations/nb.ts index c224c4f8f..6fdf5ff8e 100644 --- a/src/qt_gui/translations/nb.ts +++ b/src/qt_gui/translations/nb.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Inndata - + Cursor Markør @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Stier @@ -1083,7 +1096,7 @@ GUIgroupBox Spille tittelmusikk:\nHvis et spill støtter det, aktiverer det å spille spesiell musikk når du velger spillet i GUI. - + hideCursorGroupBox Skjul musepeker:\nVelg når musepekeren skal forsvinne:\nAldri: Du vil alltid se musen.\nInaktiv: Sett en tid for at den skal forsvinne etter å ha vært inaktiv.\nAlltid: du vil aldri se musen. @@ -1289,7 +1302,7 @@ Update Available Oppdatering tilgjengelig - + Update Channel Oppdateringskanal diff --git a/src/qt_gui/translations/nl.ts b/src/qt_gui/translations/nl.ts index b733610d1..f99ad54da 100644 --- a/src/qt_gui/translations/nl.ts +++ b/src/qt_gui/translations/nl.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Invoer - + Cursor Cursor @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Pad @@ -1083,7 +1096,7 @@ GUIgroupBox Speel titelsong:\nAls een game dit ondersteunt, wordt speciale muziek afgespeeld wanneer je het spel in de GUI selecteert. - + hideCursorGroupBox Verberg cursor:\nKies wanneer de cursor verdwijnt:\nNooit: Je ziet altijd de muis.\nInactief: Stel een tijd in waarna deze verdwijnt na inactiviteit.\nAltijd: je ziet de muis nooit. @@ -1289,7 +1302,7 @@ Update Available Update beschikbaar - + Update Channel Updatekanaal diff --git a/src/qt_gui/translations/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts index f81647f35..a1fd3dc6a 100644 --- a/src/qt_gui/translations/pl_PL.ts +++ b/src/qt_gui/translations/pl_PL.ts @@ -52,6 +52,19 @@ Ładowanie... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Wybierz katalog + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Filtrowanie dziennika - + Input Wejście - + Cursor Kursor @@ -509,7 +522,7 @@ Enable NULL GPU Wyłącz kartę graficzną - + Paths Ścieżki @@ -1083,7 +1096,7 @@ GUIgroupBox Odtwórz muzykę tytułową:\nJeśli gra to obsługuje, aktywuje odtwarzanie specjalnej muzyki podczas wybierania gry w GUI. - + hideCursorGroupBox Ukryj kursor:\nWybierz, kiedy kursor zniknie:\nNigdy: Zawsze będziesz widział myszkę.\nNieaktywny: Ustaw czas, po którym zniknie po bezczynności.\nZawsze: nigdy nie zobaczysz myszki. @@ -1289,7 +1302,7 @@ Update Available Dostępna aktualizacja - + Update Channel Kanał Aktualizacji diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts index cf673b298..50c575623 100644 --- a/src/qt_gui/translations/pt_BR.ts +++ b/src/qt_gui/translations/pt_BR.ts @@ -52,6 +52,19 @@ Carregando... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Escolha o diretório + + + + Select which directory you want to install to. + Selecione o diretório em que você deseja instalar. + + GameInstallDialog diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts index 33a57792f..ba2952976 100644 --- a/src/qt_gui/translations/ro_RO.ts +++ b/src/qt_gui/translations/ro_RO.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Introducere - + Cursor Cursor @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Trasee @@ -1083,7 +1096,7 @@ GUIgroupBox Redă muzica titlului:\nDacă un joc o suportă, activează redarea muzicii speciale când selectezi jocul în GUI. - + hideCursorGroupBox Ascunde cursorul:\nAlegeți când va dispărea cursorul:\nNiciodată: Vei vedea întotdeauna mouse-ul.\nInactiv: Setează un timp pentru a dispărea după inactivitate.\nÎntotdeauna: nu vei vedea niciodată mouse-ul. @@ -1289,7 +1302,7 @@ Update Available Actualizare disponibilă - + Update Channel Canal de Actualizare diff --git a/src/qt_gui/translations/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts index e53ec2bc8..5b29bf7c7 100644 --- a/src/qt_gui/translations/ru_RU.ts +++ b/src/qt_gui/translations/ru_RU.ts @@ -52,6 +52,19 @@ Загрузка... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Выберите папку + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Фильтр логов - + Input Ввод - + Cursor Курсор @@ -509,7 +522,7 @@ Enable NULL GPU Включить NULL GPU - + Paths Пути @@ -1083,7 +1096,7 @@ GUIgroupBox Воспроизведение заглавной музыки:\nЕсли игра это поддерживает, включает воспроизведение специальной музыки при выборе игры в интерфейсе. - + hideCursorGroupBox Скрыть курсор:\nВыберите, когда курсор исчезнет:\nНикогда: Вы всегда будете видеть мышь.\nНеактивный: Yстановите время, через которое она исчезнет после бездействия.\nВсегда: вы никогда не увидите мышь. @@ -1289,7 +1302,7 @@ Update Available Доступно обновление - + Update Channel Канал обновления diff --git a/src/qt_gui/translations/sq.ts b/src/qt_gui/translations/sq.ts index 09f1714e1..fabc79cca 100644 --- a/src/qt_gui/translations/sq.ts +++ b/src/qt_gui/translations/sq.ts @@ -52,6 +52,19 @@ Duke ngarkuar... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Përzgjidh dosjen + + + + Select which directory you want to install to. + Përzgjidh në cilën dosje do që të instalosh. + + GameInstallDialog @@ -427,7 +440,7 @@ Logger - Regjistruesi i të dhënave + Regjistruesi i ditarit @@ -439,36 +452,6 @@ Log Filter Filtri i Ditarit - - - Input - Hyrje - - - - Cursor - Kursori - - - - Hide Cursor - Fshih kursorin - - - - Hide Cursor Idle Timeout - Koha e pritjes për fshehjen e kursorit - - - - Controller - Kontrollues - - - - Back Button Behavior - Sjellja e butonit të kthimit - Input @@ -489,11 +472,6 @@ Hide Cursor Idle Timeout Koha për fshehjen e kursorit joaktiv - - - Input - Hyrja - Controller @@ -544,10 +522,10 @@ Enable NULL GPU Aktivizo GPU-në NULL - + Paths - Rrugët + Shtigjet @@ -557,12 +535,12 @@ Add... - Shtoni... + Shto... Remove - Hiqni + Hiq @@ -1091,7 +1069,7 @@ discordRPCCheckbox - Aktivizo Discord Rich Presence:\nShfaq ikonën e emulatorit dhe informacionin përkatës në profilin tuaj në Discord. + Aktivizo Discord Rich Presence:\nShfaq ikonën e emulatorit dhe informacionin përkatës në profilin tënd në Discord. @@ -1111,27 +1089,27 @@ updaterGroupBox - Aktualizimi:\nRelease: Versionet zyrtare të lëshuara çdo muaj që mund të jenë shumë të vjetra, por janë më të besueshme dhe të provuara.\nNightly: Versionet e zhvillimit që kanë të gjitha veçoritë dhe rregullimet më të fundit, por mund të përmbajnë gabime dhe janë më pak të qëndrueshme. + Përditësimi:\nRelease: Versionet zyrtare të lëshuara çdo muaj që mund të jenë shumë të vjetra, por janë më të besueshme dhe të provuara.\nNightly: Versionet e zhvillimit që kanë të gjitha veçoritë dhe rregullimet më të fundit, por mund të përmbajnë gabime dhe janë më pak të qëndrueshme. GUIgroupBox Luaj muzikën e titullit:\nNëse një lojë e mbështet, aktivizohet luajtja e muzikës të veçantë kur të zgjidhësh lojën në GUI. - + hideCursorGroupBox - Fsheh kursori:\nZgjidhni kur do të zhduket kursori:\nKurrë: Do ta shihni gjithmonë maus.\nInaktiv: Vendosni një kohë për të zhdukur pas inaktivitetit.\nGjithmonë: nuk do ta shihni kurrë maus. + Fsheh kursorin:\nZgjidh kur do të fshihet kursori:\nKurrë: Do ta shohësh gjithmonë miun.\nInaktiv: Vendos një kohë për ta fshehur pas mosveprimit.\nGjithmonë: nuk do ta shohësh kurrë miun. idleTimeoutGroupBox - Vendosni një kohë për të zhdukur maus pas inaktivitetit. + Koha për fshehjen e kursorit joaktiv:\nKohëzgjatja (në sekonda) pas së cilës kursori që nuk ka qënë në veprim fshihet. backButtonBehaviorGroupBox - Sjellja e butonit mbrapa:\nVendos butonin mbrapa të kontrollorit për të imituar prekjen në pozicionin e caktuar në touchpad-in PS4. + Sjellja e butonit mbrapa:\nLejon të përcaktohet se në cilën pjesë të tastierës prekëse do të imitojë një prekje butoni mprapa. @@ -1141,73 +1119,13 @@ Idle - Pasiv + Joaktiv Always Gjithmonë - - - Touchpad Left - Touchpad Majtas - - - - Touchpad Right - Touchpad Djathtas - - - - Touchpad Center - Qendra e Touchpad - - - - None - Asnjë - - - - cursorGroupBox - Kursori:\nNdrysho cilësimet në lidhje me kursorin. - - - - hideCursorGroupBox - Fshih kursorin:\nCakto sjelljen e fshehjes së kursorit. - - - - idleTimeoutGroupBox - Koha për fshehjen e kursorit joaktiv:\Kohëzgjatja (në sekonda) pas së cilës kursori që ka nuk ka qënë në veprim fshihet. - - - - Never - Kurrë - - - - Idle - Pa vepruar - - - - Always - Gjithmonë - - - - backButtonBehaviorGroupBox - Back Button Behavior:\nAllows setting which part of the touchpad the back button will emulate a touch on. - - - - backButtonBehaviorGroupBox - Sjellja e butonit mbrapa:\nLejon të përcaktohet se në cilën pjesë të tastierës prekëse do të imitojë një prekje butoni prapa. - Touchpad Left @@ -1256,17 +1174,17 @@ gameFoldersBox - Folderët e lojërave:\nLista e folderëve për të kontrolluar lojërat e instaluara. + Dosjet e lojërave:\nLista e dosjeve për të kontrolluar lojërat e instaluara. addFolderButton - Shto:\nShto një folder në listë. + Shto:\nShto një dosje në listë. removeFolderButton - Hiq:\nHiq një folder nga lista. + Hiq:\nHiq një dosje nga lista. @@ -1384,7 +1302,7 @@ Update Available Ofrohet një përditësim - + Update Channel Kanali i përditësimit @@ -1465,4 +1383,4 @@ Krijimi i skedarit skript të përditësimit dështoi - \ No newline at end of file + diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts index d00f5fcf9..91ede7319 100644 --- a/src/qt_gui/translations/tr_TR.ts +++ b/src/qt_gui/translations/tr_TR.ts @@ -52,6 +52,19 @@ Yükleniyor... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Klasörü Seç + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Kayıt Filtresi - + Input Girdi - + Cursor İmleç @@ -509,7 +522,7 @@ Enable NULL GPU NULL GPU'yu Etkinleştir - + Paths Yollar @@ -1083,7 +1096,7 @@ GUIgroupBox Başlık Müziklerini Çal:\nEğer bir oyun bunu destekliyorsa, GUI'de oyunu seçtiğinizde özel müziklerin çalmasını etkinleştirir. - + hideCursorGroupBox İmleci gizle:\nİmlecin ne zaman kaybolacağını seçin:\nAsla: Fareyi her zaman göreceksiniz.\nPasif: Hareketsiz kaldıktan sonra kaybolması için bir süre belirleyin.\nHer zaman: fareyi asla göremeyeceksiniz. @@ -1289,7 +1302,7 @@ Update Available Güncelleme Mevcut - + Update Channel Güncelleme Kanalı diff --git a/src/qt_gui/translations/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts index cf58ee5ba..ebdee76e5 100644 --- a/src/qt_gui/translations/vi_VN.ts +++ b/src/qt_gui/translations/vi_VN.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input Đầu vào - + Cursor Con trỏ @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths Đường dẫn @@ -1083,7 +1096,7 @@ GUIgroupBox Phát nhạc tiêu đề trò chơi:\nNếu một trò chơi hỗ trợ điều này, hãy kích hoạt phát nhạc đặc biệt khi bạn chọn trò chơi trong GUI. - + hideCursorGroupBox Ẩn con trỏ:\nChọn khi nào con trỏ sẽ biến mất:\nKhông bao giờ: Bạn sẽ luôn thấy chuột.\nKhông hoạt động: Đặt một khoảng thời gian để nó biến mất sau khi không hoạt động.\nLuôn luôn: bạn sẽ không bao giờ thấy chuột. @@ -1289,7 +1302,7 @@ Update Available Có bản cập nhật - + Update Channel Kênh Cập Nhật diff --git a/src/qt_gui/translations/zh_CN.ts b/src/qt_gui/translations/zh_CN.ts index ac4117edc..8533c5456 100644 --- a/src/qt_gui/translations/zh_CN.ts +++ b/src/qt_gui/translations/zh_CN.ts @@ -52,6 +52,19 @@ 加载中... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - 选择文件目录 + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter 日志过滤 - + Input 输入 - + Cursor 光标 @@ -509,7 +522,7 @@ Enable NULL GPU 启用 NULL GPU - + Paths 路径 @@ -1083,7 +1096,7 @@ GUIgroupBox 播放标题音乐:\n如果游戏支持,在图形界面选择游戏时启用播放特殊音乐。 - + hideCursorGroupBox 隐藏光标:\n选择光标何时消失:\n从不: 您将始终看到鼠标。\n空闲: 设置光标在空闲后消失的时间。\n始终: 您将永远看不到鼠标。 @@ -1289,7 +1302,7 @@ Update Available 可用更新 - + Update Channel 更新频道 diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts index c114c69c7..f3db48971 100644 --- a/src/qt_gui/translations/zh_TW.ts +++ b/src/qt_gui/translations/zh_TW.ts @@ -52,6 +52,19 @@ Loading... + + InstallDirSelect + + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + + Select which directory you want to install to. + Select which directory you want to install to. + + GameInstallDialog @@ -439,12 +452,12 @@ Log Filter Log Filter - + Input 輸入 - + Cursor 游標 @@ -509,7 +522,7 @@ Enable NULL GPU Enable NULL GPU - + Paths 路徑 @@ -1083,7 +1096,7 @@ GUIgroupBox 播放標題音樂:\n如果遊戲支持,啟用在GUI中選擇遊戲時播放特殊音樂。 - + hideCursorGroupBox 隱藏游標:\n選擇游標何時消失:\n從不: 您將始終看到滑鼠。\n閒置: 設定在閒置後消失的時間。\n始終: 您將永遠看不到滑鼠。 @@ -1289,7 +1302,7 @@ Update Available 可用更新 - + Update Channel 更新頻道