mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 08:22:32 +00:00
Merge branch 'shadps4-emu:main' into main
This commit is contained in:
commit
649a5c0c0c
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -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
|
||||
|
@ -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<std::filesystem::path> 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<bool>(general, "showSplash", true);
|
||||
isAutoUpdate = toml::find_or<bool>(general, "autoUpdate", false);
|
||||
separateupdatefolder = toml::find_or<bool>(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;
|
||||
|
@ -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);
|
||||
|
@ -2,6 +2,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <algorithm>
|
||||
#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;
|
||||
}
|
||||
|
@ -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") {
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -133,6 +133,9 @@ SettingsDialog::SettingsDialog(std::span<const QString> 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<const QString> 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") {
|
||||
|
@ -134,6 +134,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="separateUpdatesCheckBox">
|
||||
<property name="text">
|
||||
<string>Enable Separate Update Folder</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showSplashCheckBox">
|
||||
<property name="text">
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>...جارٍ التحميل</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - اختر المجلد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Lade...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Wähle Ordner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Cargando...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Elegir carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>...درحال بارگیری</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>ShadPS4 - انتخاب محل نصب بازی</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Chargement...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choisir un répertoire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Betöltés..</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Mappa kiválasztása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Caricamento...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Scegli cartella</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>読み込み中...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - ディレクトリを選択</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Ładowanie...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Wybierz katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Carregando...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Escolha o diretório</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Selecione o diretório em que você deseja instalar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Загрузка...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Выберите папку</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Duke ngarkuar...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Përzgjidh dosjen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Përzgjidh në cilën dosje do që të instalosh.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
@ -427,7 +440,7 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="178"/>
|
||||
<source>Logger</source>
|
||||
<translation>Regjistruesi i të dhënave</translation>
|
||||
<translation>Regjistruesi i ditarit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="199"/>
|
||||
@ -439,36 +452,6 @@
|
||||
<source>Log Filter</source>
|
||||
<translation>Filtri i Ditarit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="595"/>
|
||||
<source>Input</source>
|
||||
<translation>Hyrje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="611"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Kursori</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="635"/>
|
||||
<source>Hide Cursor</source>
|
||||
<translation>Fshih kursorin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="668"/>
|
||||
<source>Hide Cursor Idle Timeout</source>
|
||||
<translation>Koha e pritjes për fshehjen e kursorit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="767"/>
|
||||
<source>Controller</source>
|
||||
<translation>Kontrollues</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="797"/>
|
||||
<source>Back Button Behavior</source>
|
||||
<translation>Sjellja e butonit të kthimit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="595"/>
|
||||
<source>Input</source>
|
||||
@ -489,11 +472,6 @@
|
||||
<source>Hide Cursor Idle Timeout</source>
|
||||
<translation>Koha për fshehjen e kursorit joaktiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="595"/>
|
||||
<source>Input</source>
|
||||
<translation>Hyrja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="767"/>
|
||||
<source>Controller</source>
|
||||
@ -547,7 +525,7 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="1111"/>
|
||||
<source>Paths</source>
|
||||
<translation>Rrugët</translation>
|
||||
<translation>Shtigjet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="1119"/>
|
||||
@ -557,12 +535,12 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="1141"/>
|
||||
<source>Add...</source>
|
||||
<translation>Shtoni...</translation>
|
||||
<translation>Shto...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="1141"/>
|
||||
<source>Remove</source>
|
||||
<translation>Hiqni</translation>
|
||||
<translation>Hiq</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.ui" line="517"/>
|
||||
@ -1091,7 +1069,7 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="438"/>
|
||||
<source>discordRPCCheckbox</source>
|
||||
<translation>Aktivizo Discord Rich Presence:\nShfaq ikonën e emulatorit dhe informacionin përkatës në profilin tuaj në Discord.</translation>
|
||||
<translation>Aktivizo Discord Rich Presence:\nShfaq ikonën e emulatorit dhe informacionin përkatës në profilin tënd në Discord.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="299"/>
|
||||
@ -1111,7 +1089,7 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="305"/>
|
||||
<source>updaterGroupBox</source>
|
||||
<translation>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.</translation>
|
||||
<translation>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.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="306"/>
|
||||
@ -1121,17 +1099,17 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="450"/>
|
||||
<source>hideCursorGroupBox</source>
|
||||
<translation>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.</translation>
|
||||
<translation>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.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="452"/>
|
||||
<source>idleTimeoutGroupBox</source>
|
||||
<translation>Vendosni një kohë për të zhdukur maus pas inaktivitetit.</translation>
|
||||
<translation>Koha për fshehjen e kursorit joaktiv:\nKohëzgjatja (në sekonda) pas së cilës kursori që nuk ka qënë në veprim fshihet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="454"/>
|
||||
<source>backButtonBehaviorGroupBox</source>
|
||||
<translation>Sjellja e butonit mbrapa:\nVendos butonin mbrapa të kontrollorit për të imituar prekjen në pozicionin e caktuar në touchpad-in PS4.</translation>
|
||||
<translation>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.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="70"/>
|
||||
@ -1141,73 +1119,13 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="71"/>
|
||||
<source>Idle</source>
|
||||
<translation>Pasiv</translation>
|
||||
<translation>Joaktiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="72"/>
|
||||
<source>Always</source>
|
||||
<translation>Gjithmonë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="101"/>
|
||||
<source>Touchpad Left</source>
|
||||
<translation>Touchpad Majtas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="102"/>
|
||||
<source>Touchpad Right</source>
|
||||
<translation>Touchpad Djathtas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="103"/>
|
||||
<source>Touchpad Center</source>
|
||||
<translation>Qendra e Touchpad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="104"/>
|
||||
<source>None</source>
|
||||
<translation>Asnjë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="392"/>
|
||||
<source>cursorGroupBox</source>
|
||||
<translation>Kursori:\nNdrysho cilësimet në lidhje me kursorin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="394"/>
|
||||
<source>hideCursorGroupBox</source>
|
||||
<translation>Fshih kursorin:\nCakto sjelljen e fshehjes së kursorit.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="396"/>
|
||||
<source>idleTimeoutGroupBox</source>
|
||||
<translation>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.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="70"/>
|
||||
<source>Never</source>
|
||||
<translation>Kurrë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="71"/>
|
||||
<source>Idle</source>
|
||||
<translation>Pa vepruar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="72"/>
|
||||
<source>Always</source>
|
||||
<translation>Gjithmonë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="330"/>
|
||||
<source>backButtonBehaviorGroupBox</source>
|
||||
<translation>Back Button Behavior:\nAllows setting which part of the touchpad the back button will emulate a touch on.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="330"/>
|
||||
<source>backButtonBehaviorGroupBox</source>
|
||||
<translation>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.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="101"/>
|
||||
<source>Touchpad Left</source>
|
||||
@ -1256,17 +1174,17 @@
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="465"/>
|
||||
<source>gameFoldersBox</source>
|
||||
<translation>Folderët e lojërave:\nLista e folderëve për të kontrolluar lojërat e instaluara.</translation>
|
||||
<translation>Dosjet e lojërave:\nLista e dosjeve për të kontrolluar lojërat e instaluara.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="465"/>
|
||||
<source>addFolderButton</source>
|
||||
<translation>Shto:\nShto një folder në listë.</translation>
|
||||
<translation>Shto:\nShto një dosje në listë.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="465"/>
|
||||
<source>removeFolderButton</source>
|
||||
<translation>Hiq:\nHiq një folder nga lista.</translation>
|
||||
<translation>Hiq:\nHiq një dosje nga lista.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settings_dialog.cpp" line="329"/>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Yükleniyor...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Klasörü Seç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>加载中...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - 选择文件目录</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
@ -52,6 +52,19 @@
|
||||
<translation>Loading...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDirSelect</name>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="30"/>
|
||||
<source>shadPS4 - Choose directory</source>
|
||||
<translation>shadPS4 - Choose directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../install_dir_select.cpp" line="37"/>
|
||||
<source>Select which directory you want to install to.</source>
|
||||
<translation>Select which directory you want to install to.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInstallDialog</name>
|
||||
<message>
|
||||
|
Loading…
Reference in New Issue
Block a user