From 4169e86f3162edf6518d5e06a47b2e5090d73768 Mon Sep 17 00:00:00 2001 From: Syping Date: Thu, 12 Oct 2017 22:21:45 +0200 Subject: [PATCH] latest changes from gta5sync --- CrewDatabase.cpp | 2 +- OptionsDialog.cpp | 20 ++- OptionsDialog.h | 2 +- PictureExport.cpp | 83 ++++++----- ProfileDatabase.cpp | 2 +- ProfileInterface.cpp | 65 ++++----- ProfileInterface.h | 2 +- ProfileLoader.cpp | 6 +- SavegameCopy.cpp | 14 +- SavegameWidget.cpp | 4 +- SnapmaticEditor.cpp | 14 +- SnapmaticPicture.cpp | 100 +++++++++++-- SnapmaticPicture.h | 2 + StringParser.cpp | 33 ++--- StringParser.h | 4 +- TranslationClass.cpp | 48 +++---- UserInterface.cpp | 13 +- UserInterface.h | 2 +- config.h | 7 +- gta5view.pro | 9 +- res/gta5sync_de.qm | Bin 32293 -> 32872 bytes res/gta5sync_de.ts | 326 +++++++++++++++++++++++------------------- res/gta5sync_en_US.qm | Bin 18703 -> 18413 bytes res/gta5sync_en_US.ts | 322 +++++++++++++++++++++-------------------- res/gta5sync_fr.qm | Bin 27241 -> 26687 bytes res/gta5sync_fr.ts | 318 +++++++++++++++++++++------------------- res/gta5sync_ru.qm | Bin 27502 -> 26894 bytes res/gta5sync_ru.ts | 318 +++++++++++++++++++++------------------- 28 files changed, 943 insertions(+), 773 deletions(-) diff --git a/CrewDatabase.cpp b/CrewDatabase.cpp index a1b4919..69e4b06 100755 --- a/CrewDatabase.cpp +++ b/CrewDatabase.cpp @@ -31,7 +31,7 @@ CrewDatabase::CrewDatabase(QObject *parent) : QObject(parent) dir.mkpath(StandardPaths::dataLocation()); dir.setPath(StandardPaths::dataLocation()); QString dirPath = dir.absolutePath(); - QString defaultConfPath = dirPath % QDir::separator() % "crews.ini"; + QString defaultConfPath = dirPath % "/crews.ini"; QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); confPathSettings.beginGroup("Database"); diff --git a/OptionsDialog.cpp b/OptionsDialog.cpp index 76f1105..b907978 100755 --- a/OptionsDialog.cpp +++ b/OptionsDialog.cpp @@ -171,17 +171,17 @@ void OptionsDialog::setupRadioButtons() if (contentModeOk) { - if (contentMode == 0) + switch (contentMode) { + case 0: ui->rbOpenWithSC->setChecked(true); - } - else if (contentMode == 1) - { + break; + case 1: ui->rbOpenWithDC->setChecked(true); - } - else if (contentMode == 2) - { + break; + case 2: ui->rbSelectWithSC->setChecked(true); + break; } } } @@ -267,11 +267,7 @@ void OptionsDialog::applySettings() TCInstance->loadTranslation(qApp); } -#if QT_VERSION >= 0x050000 - emit settingsApplied(newContentMode, ui->cbLanguage->currentData().toString()); -#else - emit settingsApplied(newContentMode, ui->cbLanguage->itemData(ui->cbLanguage->currentIndex()).toString()); -#endif + emit settingsApplied(newContentMode, languageChanged); if ((forceCustomFolder && ui->txtFolder->text() != currentCFolder) || (forceCustomFolder != currentFFolder && forceCustomFolder)) { diff --git a/OptionsDialog.h b/OptionsDialog.h index 763d1df..d48ab85 100755 --- a/OptionsDialog.h +++ b/OptionsDialog.h @@ -48,7 +48,7 @@ private slots: void on_cmdExploreFolder_clicked(); signals: - void settingsApplied(int contentMode, QString language); + void settingsApplied(int contentMode, bool languageChanged); private: ProfileDatabase *profileDB; diff --git a/PictureExport.cpp b/PictureExport.cpp index d3fb040..41d0f0c 100755 --- a/PictureExport.cpp +++ b/PictureExport.cpp @@ -30,6 +30,10 @@ #include #include +#if QT_VERSION >= 0x050000 +#include +#endif + PictureExport::PictureExport() { @@ -76,6 +80,7 @@ void PictureExport::exportAsPicture(QWidget *parent, SnapmaticPicture *picture) // End Picture Settings settings.beginGroup("FileDialogs"); + bool dontUseNativeDialog = settings.value("DontUseNativeDialog", false).toBool(); settings.beginGroup("ExportAsPicture"); fileDialogPreSave: //Work? @@ -83,7 +88,7 @@ fileDialogPreSave: //Work? fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setAcceptMode(QFileDialog::AcceptSave); - fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); + fileDialog.setOption(QFileDialog::DontUseNativeDialog, dontUseNativeDialog); fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true); fileDialog.setDefaultSuffix("suffix"); fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint); @@ -99,7 +104,7 @@ fileDialogPreSave: //Work? fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setDirectory(settings.value("Directory", StandardPaths::picturesLocation()).toString()); - fileDialog.restoreGeometry(settings.value(parent->objectName() % "+Geomtery", "").toByteArray()); + fileDialog.restoreGeometry(settings.value(parent->objectName() % "+Geometry", "").toByteArray()); QString newPictureFileName = getPictureFileName(picture) % defaultExportFormat; fileDialog.selectFile(newPictureFileName); @@ -142,15 +147,7 @@ fileDialogPreSave: //Work? if (QFile::exists(selectedFile)) { - if (QMessageBox::Yes == QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Overwrite %1 with current Snapmatic picture?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) - { - if (!QFile::remove(selectedFile)) - { - QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to overwrite %1 with current Snapmatic picture").arg("\""+selectedFile+"\"")); - goto fileDialogPreSave; //Work? - } - } - else + if (QMessageBox::No == QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Overwrite %1 with current Snapmatic picture?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) { goto fileDialogPreSave; //Work? } @@ -168,19 +165,51 @@ fileDialogPreSave: //Work? exportPicture = exportPicture.scaled(cusExportSize, aspectRatio, Qt::SmoothTransformation); } - bool isSaved; - if (useCustomQuality) + int errorId = 0; + bool isSaved = false; +#if QT_VERSION >= 0x050000 + QSaveFile *picFile = new QSaveFile(selectedFile); +#else + QFile *picFile = new QFile(selectedFile); +#endif + if (picFile->open(QIODevice::WriteOnly)) { - isSaved = exportPicture.save(selectedFile, saveFileFormat.toStdString().c_str(), customQuality); + isSaved = exportPicture.save(picFile, saveFileFormat.toStdString().c_str(), useCustomQuality ? customQuality : defaultQuality); +#if QT_VERSION >= 0x050000 + if (isSaved) + { + isSaved = picFile->commit(); + } + else + { + errorId = 1; + } +#else + picFile->close(); +#endif } else { - isSaved = exportPicture.save(selectedFile, saveFileFormat.toStdString().c_str(), 100); + errorId = 2; } + delete picFile; if (!isSaved) { - QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to export current Snapmatic picture")); + switch (errorId) + { + case 0: + QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to export the picture because the system occurred a write failure")); + break; + case 1: + QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to export the picture because the format detection failures")); + break; + case 2: + QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to export the picture because the file can't be written")); + break; + default: + QMessageBox::warning(parent, PictureDialog::tr("Export as Picture"), PictureDialog::tr("Failed to export the picture because of an unknown reason")); + } goto fileDialogPreSave; //Work? } } @@ -201,13 +230,10 @@ void PictureExport::exportAsSnapmatic(QWidget *parent, SnapmaticPicture *picture { QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); settings.beginGroup("FileDialogs"); + bool dontUseNativeDialog = settings.value("DontUseNativeDialog", false).toBool(); settings.beginGroup("ExportAsSnapmatic"); - QString adjustedPicPath = picture->getPictureFileName(); - if (adjustedPicPath.right(7) == ".hidden") // for the hidden file system - { - adjustedPicPath.remove(adjustedPicPath.length() - 7, 7); - } + QString adjustedPicPath = picture->getOriginalPictureFileName(); fileDialogPreSave: //Work? QFileInfo sgdFileInfo(adjustedPicPath); @@ -215,7 +241,7 @@ fileDialogPreSave: //Work? fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setAcceptMode(QFileDialog::AcceptSave); - fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); + fileDialog.setOption(QFileDialog::DontUseNativeDialog, dontUseNativeDialog); fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true); fileDialog.setDefaultSuffix(".rem"); fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint); @@ -232,9 +258,8 @@ fileDialogPreSave: //Work? fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setDirectory(settings.value("Directory", StandardPaths::documentsLocation()).toString()); + fileDialog.restoreGeometry(settings.value(parent->objectName() % "+Geometry", "").toByteArray()); fileDialog.selectFile(QString(picture->getExportPictureFileName() % ".g5e")); - fileDialog.restoreGeometry(settings.value(parent->objectName() % "+Geomtery", "").toByteArray()); - if (fileDialog.exec()) { @@ -257,15 +282,7 @@ fileDialogPreSave: //Work? if (QFile::exists(selectedFile)) { - if (QMessageBox::Yes == QMessageBox::warning(parent, PictureDialog::tr("Export as Snapmatic"), PictureDialog::tr("Overwrite %1 with current Snapmatic picture?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) - { - if (!QFile::remove(selectedFile)) - { - QMessageBox::warning(parent, PictureDialog::tr("Export as Snapmatic"), PictureDialog::tr("Failed to overwrite %1 with current Snapmatic picture").arg("\""+selectedFile+"\"")); - goto fileDialogPreSave; //Work? - } - } - else + if (QMessageBox::No == QMessageBox::warning(parent, PictureDialog::tr("Export as Snapmatic"), PictureDialog::tr("Overwrite %1 with current Snapmatic picture?").arg("\""+selectedFile+"\""), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) { goto fileDialogPreSave; //Work? } diff --git a/ProfileDatabase.cpp b/ProfileDatabase.cpp index 9d4e814..4f7e870 100755 --- a/ProfileDatabase.cpp +++ b/ProfileDatabase.cpp @@ -31,7 +31,7 @@ ProfileDatabase::ProfileDatabase(QObject *parent) : QObject(parent) dir.mkpath(StandardPaths::dataLocation()); dir.setPath(StandardPaths::dataLocation()); QString dirPath = dir.absolutePath(); - QString defaultConfPath = dirPath % QDir::separator() % "players.ini"; + QString defaultConfPath = dirPath % "/players.ini"; QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); confPathSettings.beginGroup("Database"); diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp index 1507a90..176353e 100755 --- a/ProfileInterface.cpp +++ b/ProfileInterface.cpp @@ -414,6 +414,7 @@ void ProfileInterface::on_cmdImport_clicked() { QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); settings.beginGroup("FileDialogs"); + bool dontUseNativeDialog = settings.value("DontUseNativeDialog", false).toBool(); settings.beginGroup("ImportCopy"); fileDialogPreOpen: //Work? @@ -421,7 +422,7 @@ fileDialogPreOpen: //Work? fileDialog.setFileMode(QFileDialog::ExistingFiles); fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setAcceptMode(QFileDialog::AcceptOpen); - fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); + fileDialog.setOption(QFileDialog::DontUseNativeDialog, dontUseNativeDialog); fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint); fileDialog.setWindowTitle(tr("Import...")); fileDialog.setLabelText(QFileDialog::Accept, tr("Import")); @@ -634,16 +635,16 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple) SnapmaticProperties spJson = picture->getSnapmaticProperties(); spJson.uid = QString(currentTime + QString::number(QDate::currentDate().dayOfYear())).toInt(); - bool fExists = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid)); - bool fExistsHidden = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid) % ".hidden"); + bool fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid)); + bool fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden"); int cEnough = 0; while ((fExists || fExistsHidden) && cEnough < 5000) { currentTime = QString::number(currentTime.toInt() - 1); spJson.uid = QString(currentTime + QString::number(QDate::currentDate().dayOfYear())).toInt(); - fExists = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid)); - fExistsHidden = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid) % ".hidden"); + fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid)); + fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden"); cEnough++; } spJson.createdDateTime = QDateTime::currentDateTime(); @@ -689,16 +690,16 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple) SnapmaticProperties spJson = picture->getSnapmaticProperties(); spJson.uid = QString(currentTime + QString::number(QDate::currentDate().dayOfYear())).toInt(); - bool fExists = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid)); - bool fExistsHidden = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid) % ".hidden"); + bool fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid)); + bool fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden"); int cEnough = 0; while ((fExists || fExistsHidden) && cEnough < 25) { currentTime = QString::number(currentTime.toInt() - 1); spJson.uid = QString(currentTime + QString::number(QDate::currentDate().dayOfYear())).toInt(); - fExists = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid)); - fExistsHidden = QFile::exists(profileFolder % QDir::separator() % "PGTA5" % QString::number(spJson.uid) % ".hidden"); + fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid)); + fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden"); cEnough++; } spJson.createdDateTime = QDateTime::currentDateTime(); @@ -764,28 +765,20 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple) bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, bool warn) { QString picFileName = picture->getPictureFileName(); - QString adjustedFileName = picFileName; - if (adjustedFileName.right(7) == ".hidden") // for the hidden file system - { - adjustedFileName.remove(adjustedFileName.length() - 7, 7); - } - if (adjustedFileName.right(4) == ".bak") // for the backup file system - { - adjustedFileName.remove(adjustedFileName.length() - 4, 4); - } + QString adjustedFileName = picture->getOriginalPictureFileName(); if (picFileName.left(4) != "PGTA") { if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e")); return false; } - else if (QFile::exists(profileFolder % QDir::separator() % adjustedFileName) || QFile::exists(profileFolder % QDir::separator() % adjustedFileName % ".hidden")) + else if (QFile::exists(profileFolder % "/" % adjustedFileName) || QFile::exists(profileFolder % "/" % adjustedFileName % ".hidden")) { if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, the picture is already in the game")); return false; } - else if (picture->exportPicture(profileFolder % QDir::separator() % adjustedFileName, SnapmaticFormat::PGTA_Format)) + else if (picture->exportPicture(profileFolder % "/" % adjustedFileName, SnapmaticFormat::PGTA_Format)) { - picture->setPicFilePath(profileFolder % QDir::separator() % adjustedFileName); + picture->setPicFilePath(profileFolder % "/" % adjustedFileName); pictureLoaded(picture, true); return true; } @@ -811,7 +804,7 @@ bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPat } sgdFileName = "SGTA500" % sgdNumber; - if (!QFile::exists(profileFolder % QDir::separator() % sgdFileName)) + if (!QFile::exists(profileFolder % "/" % sgdFileName)) { foundFree = true; } @@ -820,10 +813,10 @@ bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPat if (foundFree) { - if (QFile::copy(sgdPath, profileFolder % QDir::separator() % sgdFileName)) + if (QFile::copy(sgdPath, profileFolder % "/" % sgdFileName)) { - savegame->setSavegameFileName(profileFolder % QDir::separator() % sgdFileName); - savegameLoaded(savegame, profileFolder % QDir::separator() % sgdFileName, true); + savegame->setSavegameFileName(profileFolder % "/" % sgdFileName); + savegameLoaded(savegame, profileFolder % "/" % sgdFileName, true); return true; } else @@ -896,6 +889,7 @@ void ProfileInterface::exportSelected() QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); settings.beginGroup("FileDialogs"); + //bool dontUseNativeDialog = settings.value("DontUseNativeDialog", false).toBool(); settings.beginGroup("ExportDirectory"); QString exportDirectory = QFileDialog::getExistingDirectory(this, tr("Export selected"), settings.value(profileName, profileFolder).toString()); if (exportDirectory != "") @@ -1085,24 +1079,17 @@ void ProfileInterface::importFiles() on_cmdImport_clicked(); } -void ProfileInterface::settingsApplied(int _contentMode, QString _language) +void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged) { - bool translationUpdated = false; - if (language != _language) - { - retranslateUi(); - language = _language; - translationUpdated = true; - } + if (languageChanged) retranslateUi(); contentMode = _contentMode; - if (contentMode == 2) { foreach(ProfileWidget *widget, widgets.keys()) { widget->setSelectionMode(true); widget->setContentMode(contentMode); - if (translationUpdated) widget->retranslate(); + if (languageChanged) widget->retranslate(); } } else @@ -1114,7 +1101,7 @@ void ProfileInterface::settingsApplied(int _contentMode, QString _language) widget->setSelectionMode(false); } widget->setContentMode(contentMode); - if (translationUpdated) widget->retranslate(); + if (languageChanged) widget->retranslate(); } } } @@ -1184,10 +1171,10 @@ void ProfileInterface::contextMenuTriggeredPIC(QContextMenuEvent *ev) { editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), picWidget, SLOT(makePictureHiddenSlot())); } - editMenu.addAction(SnapmaticWidget::tr("&Edit Properties..."), picWidget, SLOT(editSnapmaticProperties())); + editMenu.addAction(PictureDialog::tr("&Edit Properties..."), picWidget, SLOT(editSnapmaticProperties())); QMenu exportMenu(SnapmaticWidget::tr("&Export"), this); - exportMenu.addAction(SnapmaticWidget::tr("Export as &Picture..."), picWidget, SLOT(on_cmdExport_clicked())); - exportMenu.addAction(SnapmaticWidget::tr("Export as &Snapmatic..."), picWidget, SLOT(on_cmdCopy_clicked())); + exportMenu.addAction(PictureDialog::tr("Export as &Picture..."), picWidget, SLOT(on_cmdExport_clicked())); + exportMenu.addAction(PictureDialog::tr("Export as &Snapmatic..."), picWidget, SLOT(on_cmdCopy_clicked())); contextMenu.addAction(SnapmaticWidget::tr("&View"), picWidget, SLOT(on_cmdView_clicked())); contextMenu.addMenu(&editMenu); contextMenu.addMenu(&exportMenu); diff --git a/ProfileInterface.h b/ProfileInterface.h index a45ed9e..f93297c 100755 --- a/ProfileInterface.h +++ b/ProfileInterface.h @@ -45,7 +45,7 @@ class ProfileInterface : public QWidget public: explicit ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, DatabaseThread *threadDB, QWidget *parent = 0); void setProfileFolder(QString folder, QString profile); - void settingsApplied(int contentMode, QString language); + void settingsApplied(int contentMode, bool languageChanged); void setupProfileInterface(); void disableSelected(); void enableSelected(); diff --git a/ProfileLoader.cpp b/ProfileLoader.cpp index 243721e..d5349ea 100755 --- a/ProfileLoader.cpp +++ b/ProfileLoader.cpp @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include @@ -61,7 +63,7 @@ void ProfileLoader::run() foreach(const QString &SavegameFile, SavegameFiles) { emit loadingProgress(curFile, maximumV); - QString sgdPath = profileFolder % QDir::separator() % SavegameFile; + QString sgdPath = profileFolder % "/" % SavegameFile; SavegameData *savegame = new SavegameData(sgdPath); if (savegame->readingSavegame()) { @@ -72,7 +74,7 @@ void ProfileLoader::run() foreach(const QString &SnapmaticPic, SnapmaticPics) { emit loadingProgress(curFile, maximumV); - QString picturePath = profileFolder % QDir::separator() % SnapmaticPic; + QString picturePath = profileFolder % "/" % SnapmaticPic; SnapmaticPicture *picture = new SnapmaticPicture(picturePath); if (picture->readingPicture(true, true, true)) { diff --git a/SavegameCopy.cpp b/SavegameCopy.cpp index 2bcad1f..b0f8064 100755 --- a/SavegameCopy.cpp +++ b/SavegameCopy.cpp @@ -18,8 +18,10 @@ #include "SidebarGenerator.h" #include "SavegameWidget.h" +#include "StandardPaths.h" #include "SavegameCopy.h" #include "config.h" +#include #include #include #include @@ -32,7 +34,10 @@ SavegameCopy::SavegameCopy() void SavegameCopy::copySavegame(QWidget *parent, QString sgdPath) { QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); + settings.beginGroup("FileDialogs"); + bool dontUseNativeDialog = settings.value("DontUseNativeDialog", false).toBool(); + settings.beginGroup("SavegameCopy"); fileDialogPreSave: //Work? QFileInfo sgdFileInfo(sgdPath); @@ -40,7 +45,7 @@ fileDialogPreSave: //Work? fileDialog.setFileMode(QFileDialog::AnyFile); fileDialog.setViewMode(QFileDialog::Detail); fileDialog.setAcceptMode(QFileDialog::AcceptSave); - fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); + fileDialog.setOption(QFileDialog::DontUseNativeDialog, dontUseNativeDialog); fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true); fileDialog.setDefaultSuffix(""); fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint); @@ -55,7 +60,8 @@ fileDialogPreSave: //Work? QList sidebarUrls = SidebarGenerator::generateSidebarUrls(fileDialog.sidebarUrls()); fileDialog.setSidebarUrls(sidebarUrls); - fileDialog.restoreState(settings.value("CopySavegame","").toByteArray()); + fileDialog.setDirectory(settings.value("Directory", StandardPaths::picturesLocation()).toString()); + fileDialog.restoreGeometry(settings.value(parent->objectName() % "+Geometry", "").toByteArray()); fileDialog.selectFile(sgdFileInfo.fileName()); if (fileDialog.exec()) @@ -95,6 +101,8 @@ fileDialogPreSave: //Work? } } - settings.setValue("CopySavegame", fileDialog.saveState()); + settings.setValue(parent->objectName() % "+Geometry", fileDialog.saveGeometry()); + settings.setValue("Directory", fileDialog.directory().absolutePath()); + settings.endGroup(); settings.endGroup(); } diff --git a/SavegameWidget.cpp b/SavegameWidget.cpp index ce21f46..7d81d92 100755 --- a/SavegameWidget.cpp +++ b/SavegameWidget.cpp @@ -128,7 +128,7 @@ void SavegameWidget::on_cmdCopy_clicked() void SavegameWidget::on_cmdDelete_clicked() { - int uchoice = QMessageBox::question(this, tr("Delete savegame"), tr("Are you sure to delete %1 from your savegames?").arg("\""+sgdStr+"\""), QMessageBox::No | QMessageBox::Yes, QMessageBox::No); + int uchoice = QMessageBox::question(this, tr("Delete Savegame"), tr("Are you sure to delete %1 from your savegames?").arg("\""+sgdStr+"\""), QMessageBox::No | QMessageBox::Yes, QMessageBox::No); if (uchoice == QMessageBox::Yes) { if (!QFile::exists(sgdPath)) @@ -141,7 +141,7 @@ void SavegameWidget::on_cmdDelete_clicked() } else { - QMessageBox::warning(this, tr("Delete savegame"), tr("Failed at deleting %1 from your savegames").arg("\""+sgdStr+"\"")); + QMessageBox::warning(this, tr("Delete Savegame"), tr("Failed at deleting %1 from your savegames").arg("\""+sgdStr+"\"")); } } } diff --git a/SnapmaticEditor.cpp b/SnapmaticEditor.cpp index 10239a3..7cdbcfa 100644 --- a/SnapmaticEditor.cpp +++ b/SnapmaticEditor.cpp @@ -225,22 +225,18 @@ void SnapmaticEditor::on_cmdApply_clicked() localSpJson.isMeme = ui->cbMeme->isChecked(); if (smpic) { - QString originalFileName = smpic->getPictureFilePath(); - QString adjustedFileName = originalFileName; - if (adjustedFileName.right(7) == ".hidden") // for the hidden file system - { - adjustedFileName.remove(adjustedFileName.length() - 7, 7); - } - QString backupFileName = adjustedFileName % ".bak"; + QString currentFilePath = smpic->getPictureFilePath(); + QString originalFilePath = smpic->getOriginalPictureFilePath(); + QString backupFileName = originalFilePath % ".bak"; if (!QFile::exists(backupFileName)) { - QFile::copy(adjustedFileName, backupFileName); + QFile::copy(currentFilePath, backupFileName); } SnapmaticProperties fallbackProperties = smpic->getSnapmaticProperties(); QString fallbackTitle = smpic->getPictureTitle(); smpic->setSnapmaticProperties(localSpJson); smpic->setPictureTitle(snapmaticTitle); - if (!smpic->exportPicture(originalFileName)) + if (!smpic->exportPicture(currentFilePath)) { QMessageBox::warning(this, tr("Snapmatic Properties"), tr("Patching of Snapmatic Properties failed because of I/O Error")); smpic->setSnapmaticProperties(fallbackProperties); diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index 3a209bd..7fa186a 100755 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -33,6 +33,12 @@ #include #include +#if QT_VERSION >= 0x050000 +#include +#else +#include "StandardPaths.h" +#endif + // PARSER ALLOCATIONS #define snapmaticHeaderLength 278 #define snapmaticUsefulLength 260 @@ -546,6 +552,34 @@ QString SnapmaticPicture::getExportPictureFileName() return picExportFileName; } +QString SnapmaticPicture::getOriginalPictureFileName() +{ + QString newPicFileName = picFileName; + if (picFileName.right(4) == ".bak") + { + newPicFileName = QString(picFileName).remove(picFileName.length() - 4, 4); + } + if (picFileName.right(7) == ".hidden") + { + newPicFileName = QString(picFileName).remove(picFileName.length() - 7, 7); + } + return newPicFileName; +} + +QString SnapmaticPicture::getOriginalPictureFilePath() +{ + QString newPicFilePath = picFilePath; + if (picFilePath.right(4) == ".bak") + { + newPicFilePath = QString(picFilePath).remove(picFilePath.length() - 4, 4); + } + if (picFilePath.right(7) == ".hidden") + { + newPicFilePath = QString(picFilePath).remove(picFilePath.length() - 7, 7); + } + return newPicFilePath; +} + QString SnapmaticPicture::getPictureFileName() { return picFileName; @@ -887,7 +921,13 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, SnapmaticFormat fo } } - QFile *picFile = new QFile(fileName); + bool saveSuccess = false; + bool writeFailure = false; +#if QT_VERSION >= 0x050000 + QSaveFile *picFile = new QSaveFile(fileName); +#else + QFile *picFile = new QFile(StandardPaths::tempLocation() % "/" % QFileInfo(fileName).fileName() % ".tmp"); +#endif if (picFile->open(QIODevice::WriteOnly)) { if (format == SnapmaticFormat::G5E_Format) @@ -913,16 +953,22 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, SnapmaticFormat fo g5eHeader += QByteArray("FIL"); // Before File Name g5eHeader += stockFileNameUTF8; // File Name g5eHeader += QByteArray("COM"); // Before Compressed - picFile->write(g5eHeader); + if (picFile->write(g5eHeader) == -1) { writeFailure = true; } if (!lowRamMode) { - picFile->write(qCompress(rawPicContent, 9)); // Compressed Snapmatic + if (picFile->write(qCompress(rawPicContent, 9)) == -1) { writeFailure = true; } // Compressed Snapmatic } else { - picFile->write(rawPicContent); + if (picFile->write(rawPicContent) == -1) { writeFailure = true; } } +#if QT_VERSION >= 0x050000 + if (writeFailure) { picFile->cancelWriting(); } + else { saveSuccess = picFile->commit(); } +#else + if (!writeFailure) { saveSuccess = true; } picFile->close(); +#endif delete picFile; } else if (format == SnapmaticFormat::JPEG_Format) @@ -937,9 +983,15 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, SnapmaticFormat fo { jpegRawContent = jpegRawContent.left(jpegRawContentSizeE); } - picFile->write(jpegRawContent); + if (picFile->write(jpegRawContent) == -1) { writeFailure = true; } +#if QT_VERSION >= 0x050000 + if (writeFailure) { picFile->cancelWriting(); } + else { saveSuccess = picFile->commit(); } +#else + if (!writeFailure) { saveSuccess = true; } + picFile->close(); +#endif } - picFile->close(); delete picFile; } else @@ -947,21 +999,49 @@ bool SnapmaticPicture::exportPicture(const QString &fileName, SnapmaticFormat fo // Classic straight export if (!lowRamMode) { - picFile->write(rawPicContent); + if (picFile->write(rawPicContent) == -1) { writeFailure = true; } } else { - picFile->write(qUncompress(rawPicContent)); + if (picFile->write(qUncompress(rawPicContent)) == -1) { writeFailure = true; } } +#if QT_VERSION >= 0x050000 + if (writeFailure) { picFile->cancelWriting(); } + else { saveSuccess = picFile->commit(); } +#else + if (!writeFailure) { saveSuccess = true; } picFile->close(); +#endif delete picFile; } - return true; +#if QT_VERSION <= 0x050000 + if (saveSuccess) + { + bool tempBakCreated = false; + if (QFile::exists(fileName)) + { + if (!QFile::rename(fileName, fileName % ".tmp")) + { + QFile::remove(StandardPaths::tempLocation() % "/" % QFileInfo(fileName).fileName() % ".tmp"); + return false; + } + tempBakCreated = true; + } + if (!QFile::rename(StandardPaths::tempLocation() % "/" % QFileInfo(fileName).fileName() % ".tmp", fileName)) + { + QFile::remove(StandardPaths::tempLocation() % "/" % QFileInfo(fileName).fileName() % ".tmp"); + if (tempBakCreated) { QFile::rename(fileName % ".tmp", fileName); } + return false; + } + if (tempBakCreated) { QFile::remove(fileName % ".tmp"); } + } +#endif + return saveSuccess; } else { delete picFile; - return false; + return saveSuccess; } } diff --git a/SnapmaticPicture.h b/SnapmaticPicture.h index 706dc3b..e0db134 100755 --- a/SnapmaticPicture.h +++ b/SnapmaticPicture.h @@ -70,6 +70,8 @@ public: QString getPictureFileName(); QString getPictureFilePath(); QString getExportPictureFileName(); + QString getOriginalPictureFileName(); + QString getOriginalPictureFilePath(); int getContentMaxLength(); bool setImage(const QImage &picture); bool setPictureTitl(const QString &newTitle); diff --git a/StringParser.cpp b/StringParser.cpp index 1854c88..b93fda5 100755 --- a/StringParser.cpp +++ b/StringParser.cpp @@ -17,12 +17,8 @@ *****************************************************************************/ #include "StringParser.h" -#include "config.h" #include #include -#ifndef GTA5VIEW_CMD -#include -#endif #include #include #include @@ -30,6 +26,11 @@ #include #include +#ifdef GTA5SYNC_PROJECT +#include +#include "config.h" +#endif + StringParser::StringParser() { @@ -46,16 +47,25 @@ QString StringParser::parseTitleString(const QByteArray &commitBytes, int maxLen QString StringParser::convertDrawStringForLog(const QString &inputStr) { QString outputStr = inputStr; - return outputStr.replace("&","&u;").replace(",","&c;"); + return outputStr.replace("&","&u;").replace(",", "&c;"); } QString StringParser::convertLogStringForDraw(const QString &inputStr) { QString outputStr = inputStr; - return outputStr.replace("&c;",",").replace("&u;","&"); + return outputStr.replace("&c;",",").replace("&u;", "&"); } -#ifndef GTA5VIEW_CMD +QString StringParser::escapeString(const QString &toEscape) +{ +#if QT_VERSION >= 0x050000 + return toEscape.toHtmlEscaped(); +#else + return Qt::escape(toEscape); +#endif +} + +#ifdef GTA5SYNC_PROJECT QString StringParser::convertBuildedString(const QString &buildedStr) { QString outputStr = buildedStr; @@ -69,12 +79,3 @@ QString StringParser::convertBuildedString(const QString &buildedStr) return outputStr; } #endif - -QString StringParser::escapeString(const QString &toEscape) -{ -#if QT_VERSION >= 0x050000 - return toEscape.toHtmlEscaped(); -#else - return Qt::escape(toEscape); -#endif -} diff --git a/StringParser.h b/StringParser.h index 0b5d7e3..f15b537 100755 --- a/StringParser.h +++ b/StringParser.h @@ -29,10 +29,10 @@ public: static QString parseTitleString(const QByteArray &commitBytes, int maxLength); static QString convertDrawStringForLog(const QString &inputStr); static QString convertLogStringForDraw(const QString &inputStr); -#ifndef GTA5VIEW_CMD + static QString escapeString(const QString &toEscape); +#ifdef GTA5SYNC_PROJECT static QString convertBuildedString(const QString &buildedStr); #endif - static QString escapeString(const QString &toEscape); }; #endif // STRINGPARSER_H diff --git a/TranslationClass.cpp b/TranslationClass.cpp index ccd67d1..e3b8e8f 100644 --- a/TranslationClass.cpp +++ b/TranslationClass.cpp @@ -301,14 +301,14 @@ bool TranslationClass::loadSystemTranslation_p(const QString &langPath, QTransla if (langList.length() == 2) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); #endif isEnglishMode = false; currentLanguage = languageName; @@ -317,14 +317,14 @@ bool TranslationClass::loadSystemTranslation_p(const QString &langPath, QTransla } } #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif isEnglishMode = false; currentLanguage = languageName; @@ -356,14 +356,14 @@ bool TranslationClass::loadSystemTranslation_p(const QString &langPath, QTransla else if (langList.length() == 1) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif isEnglishMode = false; currentLanguage = languageName; @@ -390,28 +390,28 @@ bool TranslationClass::loadUserTranslation_p(const QString &langPath, QTranslato if (langList.length() == 2) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % "_" % langList.at(1) % ".qm"); #endif currentLanguage = languageName; return true; } } #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif currentLanguage = languageName; return true; @@ -421,14 +421,14 @@ bool TranslationClass::loadUserTranslation_p(const QString &langPath, QTranslato else if (langList.length() == 1) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFile" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFile" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif - if (QFile::exists(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (QFile::exists(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { - if (appTranslator->load(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm")) + if (appTranslator->load(langPath % "/gta5sync_" % langList.at(0) % ".qm")) { #ifdef GTA5SYNC_DEBUG - qDebug() << "loadLanguageFileSuccess" << QString(langPath % QDir::separator() % "gta5sync_" % langList.at(0) % ".qm"); + qDebug() << "loadLanguageFileSuccess" << QString(langPath % "/gta5sync_" % langList.at(0) % ".qm"); #endif currentLanguage = languageName; return true; diff --git a/UserInterface.cpp b/UserInterface.cpp index e6c4cf0..ded69dd 100755 --- a/UserInterface.cpp +++ b/UserInterface.cpp @@ -132,7 +132,7 @@ void UserInterface::setupDirEnv() if (folderExists) { QDir GTAV_ProfilesDir; - GTAV_ProfilesFolder = GTAV_Folder % QDir::separator() % "Profiles"; + GTAV_ProfilesFolder = GTAV_Folder % "/Profiles"; GTAV_ProfilesDir.setPath(GTAV_ProfilesFolder); GTAV_Profiles = GTAV_ProfilesDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::NoSort); @@ -213,7 +213,7 @@ void UserInterface::openProfile(const QString &profileName_) ui->swProfile->addWidget(profileUI); ui->swProfile->setCurrentWidget(profileUI); profileUI->setProfileFolder(GTAV_ProfilesFolder % QDir::separator() % profileName, profileName); - profileUI->settingsApplied(contentMode, language); + profileUI->settingsApplied(contentMode, false); profileUI->setupProfileInterface(); QObject::connect(profileUI, SIGNAL(profileClosed()), this, SLOT(closeProfile())); QObject::connect(profileUI, SIGNAL(profileLoaded()), this, SLOT(profileLoaded())); @@ -323,7 +323,7 @@ void UserInterface::on_actionOptions_triggered() OptionsDialog *optionsDialog = new OptionsDialog(profileDB, this); optionsDialog->setWindowIcon(windowIcon()); optionsDialog->commitProfiles(GTAV_Profiles); - QObject::connect(optionsDialog, SIGNAL(settingsApplied(int, QString)), this, SLOT(settingsApplied(int, QString))); + QObject::connect(optionsDialog, SIGNAL(settingsApplied(int, bool)), this, SLOT(settingsApplied(int, bool))); optionsDialog->setModal(true); #ifdef Q_OS_ANDROID @@ -494,17 +494,16 @@ void UserInterface::openSavegameFile(SavegameData *savegame) sgdDialog.exec(); } -void UserInterface::settingsApplied(int _contentMode, QString _language) +void UserInterface::settingsApplied(int _contentMode, bool languageChanged) { - if (language != _language) + if (languageChanged) { retranslateUi(); - language = _language; } contentMode = _contentMode; if (profileOpen) { - profileUI->settingsApplied(contentMode, language); + profileUI->settingsApplied(contentMode, languageChanged); } } diff --git a/UserInterface.h b/UserInterface.h index 0ce9e7c..29bce56 100755 --- a/UserInterface.h +++ b/UserInterface.h @@ -62,7 +62,7 @@ private slots: void on_actionSelect_GTA_Folder_triggered(); void on_action_Enable_In_game_triggered(); void on_action_Disable_In_game_triggered(); - void settingsApplied(int contentMode, QString language); + void settingsApplied(int contentMode, bool languageChanged); protected: void closeEvent(QCloseEvent *ev); diff --git a/config.h b/config.h index 5e52fdf..b68e57c 100755 --- a/config.h +++ b/config.h @@ -1,5 +1,5 @@ /***************************************************************************** -* gta5view Grand Theft Auto V Profile Viewer +* gta5sync GRAND THEFT AUTO V SYNC * Copyright (C) 2016-2017 Syping * * This program is free software: you can redistribute it and/or modify @@ -18,7 +18,6 @@ #ifndef CONFIG_H #define CONFIG_H -#include #include #ifndef GTA5SYNC_APPVENDOR @@ -95,12 +94,12 @@ #ifdef GTA5SYNC_DAILYB #ifndef GTA5SYNC_BUILDTYPE -#define GTA5SYNC_BUILDTYPE "Daily Build" +#define GTA5SYNC_BUILDTYPE QT_TRANSLATE_NOOP("AboutDialog", "Daily Build") #endif #endif #ifndef GTA5SYNC_BUILDTYPE -#define GTA5SYNC_BUILDTYPE "Custom" +#define GTA5SYNC_BUILDTYPE QT_TRANSLATE_NOOP("AboutDialog", "Custom") #endif #ifdef GTA5SYNC_QCONF diff --git a/gta5view.pro b/gta5view.pro index e2a3418..d1812a9 100755 --- a/gta5view.pro +++ b/gta5view.pro @@ -21,13 +21,10 @@ QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): greaterThan(QT_MINOR_VERSION, 1): win32: QT += winextras -DEFINES += GTA5SYNC_DISABLED - DEPLOYMENT.display_name = gta5view TARGET = gta5view TEMPLATE = app -DEFINES += GTA5SYNC_CSDF # Not assisting at proper usage of SnapmaticPicture class HEADERS += config.h PRECOMPILED_HEADER += config.h @@ -136,6 +133,12 @@ DISTFILES += res/app.rc \ INCLUDEPATH += ./uimod +# GTA5SYNC/GTA5VIEW ONLY + +DEFINES += GTA5SYNC_DISABLED +DEFINES += GTA5SYNC_PROJECT # Enable exclusive gta5sync/gta5view functions +DEFINES += GTA5SYNC_CSDF # Not assisting at proper usage of SnapmaticPicture class + # WINDOWS ONLY win32: DEFINES += GTA5SYNC_WIN diff --git a/res/gta5sync_de.qm b/res/gta5sync_de.qm index 8b620e235c46595c44bc1cd69094c173ea6a9d75..fe43ac6480a12c41bfce3f14865614d3cf43cb0f 100755 GIT binary patch delta 3117 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 Oa6K)f&DV=}=>HAvyz5Q? diff --git a/res/gta5sync_de.ts b/res/gta5sync_de.ts index 6fcde10..3a76041 100755 --- a/res/gta5sync_de.ts +++ b/res/gta5sync_de.ts @@ -219,35 +219,41 @@ Pictures and Savegames Grand Theft Auto V Snapmatic Bilder und Spielständen - + Release Release - + Release Candidate Release Candidate - + + Daily Build Daily Build - + Developer Entwickler - + Beta Beta - + Alpha Alpha + + + Custom + Eigener + CrewDatabase @@ -667,7 +673,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! %1 (%2 wenn verfügbar) - + %1 %1 %1 @@ -693,7 +699,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! System - + The new Custom Folder will initialise after you restart %1. Der eigene Ordner wird initialisiert sobald du %1 neugestartet hast. @@ -702,15 +708,15 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! Die Änderung der Sprache nimmt Effekt sobald du %1 neugestartet hast. - + No Profile No Profile, as default Kein Profil - - - + + + Profile: %1 Profil: %1 @@ -806,8 +812,8 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! <span style=" font-weight:600;">Crew ID: </span>%5 - - + + Export Exportieren @@ -825,8 +831,9 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! + Export as &Picture... - Exportiere als &Bild... + Als &Bild exportieren... Export as &GTA Snapmatic... @@ -834,8 +841,9 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! + Export as &Snapmatic... - Exportiere als &Snapmatic... + Als &Snapmatic exportieren... Edi&t @@ -848,6 +856,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! + &Edit Properties... Eigenschaften bearb&eiten... @@ -956,7 +965,7 @@ Drücke A für Standardansicht JPEG Bild (*.jpg) - + Portable Network Graphics (*.png) Portable Network Graphics (*.png) @@ -965,8 +974,8 @@ Drücke A für Standardansicht Exportiere als JPG Bild - - + + Overwrite %1 with current Snapmatic picture? Überschreibe %1 mit aktuellen Snapmatic Bild? @@ -975,53 +984,71 @@ Drücke A für Standardansicht Exportiere als GTA Snapmatic - - Failed to overwrite %1 with current Snapmatic picture - Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild + Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild - + Export as Picture... - Exportiere als Bild... + Als Bild exportieren... - + JPEG Graphics (*.jpg *.jpeg) JPEG Graphics (*.jpg *.jpeg) - - - - + + + + + + Export as Picture - Exportiere als Bild + Als Bild exportieren - - - + + Failed to export the picture because the system occurred a write failure + Fehlgeschlagen beim Exportieren weil das System ein Schreibfehler ausgelöst hat + + + + Failed to export the picture because the format detection failures + Fehlgeschlagen beim Exportieren weil die Formaterkennung fehlschlägt + + + + Failed to export the picture because the file can't be written + Fehlgeschlagen beim Exportieren weil die Datei nicht beschrieben werden kann + + + + Failed to export the picture because of an unknown reason + Fehlgeschlagen beim Exportieren wegen einen unbekannten Grund + + + + Failed to export current Snapmatic picture Fehlgeschlagen beim Exportieren vom aktuellen Snapmatic Bild - + Export as Snapmatic... - Exportiere als Snapmatic... + Als Snapmatic exportieren... - - - - - - + + + + + Export as Snapmatic - Export as Snapmatic + Als Snapmatic exportieren - + Exported Snapmatic to "%1" because of using the .auto extension. Snapmatic wurde wegen Benutzung der .auto Erweiterung zu "%1" exportiert. @@ -1042,17 +1069,17 @@ Drücke A für Standardansicht Exportiere als GTA Snapmatic... - + GTA V Export (*.g5e) GTA V Export (*.g5e) - + GTA V Raw Export (*.auto) GTA V Roher Export (*.auto) - + Snapmatic pictures (PGTA*) Snapmatic Bilder (PGTA*) @@ -1085,8 +1112,8 @@ Drücke A für Standardansicht Beim Speichern des Bildes ist ein Fehler aufgetreten - - + + No valid file is selected Keine gültige Datei wurde ausgewählt @@ -1155,25 +1182,25 @@ Drücke A für Standardansicht Lade... - - + + Import... Importieren... - - - - - - - - - - - - - + + + + + + + + + + + + + Import Importieren @@ -1186,13 +1213,13 @@ Drücke A für Standardansicht Importfähige Dateien (*.g5e *.jpg *.png SGTA* PGTA*) - + Savegames files (SGTA*) Spielstanddateien (SGTA*) - + Snapmatic pictures (PGTA*) Snapmatic Bilder (PGTA*) @@ -1202,29 +1229,29 @@ Drücke A für Standardansicht Alle Bilddateien (*.jpg *.png) - + Importable files (%1) Importfähige Dateien (%1) - + All image files (%1) Alle Bilddateien (%1) - + All files (**) Alle Dateien (**) - - + + Import file %1 of %2 files Importiere Datei %1 von %2 Dateien - + Import failed with... %1 @@ -1233,29 +1260,29 @@ Drücke A für Standardansicht %1 - + Failed to read Snapmatic picture Fehler beim Lesen vom Snapmatic Bild - + Failed to read Savegame file Fehler beim Lesen von Spielstanddatei - + Can't import %1 because file can't be parsed properly Kann %1 nicht importieren weil die Datei nicht richtig gelesen werden kann - + Can't import %1 because file format can't be detected Kann %1 nicht importieren weil das Dateiformat nicht erkannt werden kann - + Initialising export... Initialisiere Export... @@ -1264,23 +1291,23 @@ Drücke A für Standardansicht Kann %1 nicht importieren weil das Dateiformat nicht gültig ist - + Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA oder endet mit .g5e - + Failed to import the Snapmatic picture, the picture is already in the game Fehlgeschlagen beim Importieren vom Snapmatic Bild, dieses Bild ist bereits im Spiel - + %1Export Snapmatic pictures%2<br><br>JPG pictures make it possible to open the picture with a Image Viewer<br>GTA Snapmatic make it possible to import the picture into the game<br><br>Export as: %1Exportiere Snapmatic Bilder%2<br><br>JPG Bilder machen es möglich sie mit ein Bildansicht Programm zu öffnen<br>Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren<br><br>Exportieren als: - - + + No valid file is selected Keine gültige Datei wurde ausgewählt @@ -1295,35 +1322,35 @@ Drücke A für Standardansicht Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA - + Failed to import the Snapmatic picture, can't copy the file into profile Fehlgeschlagen beim Importieren vom Snapmatic Bild, kann Snapmatic Bild nicht ins Profil kopieren - + Failed to import the Savegame, can't copy the file into profile Fehlgeschlagen beim Importieren vom Spielstand, kann Spielstanddatei nicht ins Profil kopieren - + Failed to import the Savegame, no Savegame slot is left Fehlgeschlagen beim Importieren vom Spielstand, kein Spielstandslot mehr frei - - + + JPG pictures and GTA Snapmatic JPG Bilder und GTA Snapmatic - - + + JPG pictures only Nur JPG Bilder - - + + GTA Snapmatic only Nur GTA Snapmatic @@ -1342,25 +1369,25 @@ Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren Exportieren als: - - + + No Snapmatic pictures or Savegames files are selected Keine Snapmatic Bilder oder Spielstände ausgewählt - + + - Remove selected Auswahl löschen - + You really want remove the selected Snapmatic picutres and Savegame files? Möchtest du wirklich die ausgewählten Snapmatic Bilder und Spielstanddateien löschen? - + Failed at remove the complete selected Snapmatic pictures and/or Savegame files Fehlgeschlagen beim kompletten entfernen der ausgewählten Snapmatic Bilder und/oder der Spielstanddateien @@ -1381,10 +1408,10 @@ Exportieren als: Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist - - - - + + + + Export selected Auswahl exportieren @@ -1405,7 +1432,7 @@ Exportieren als: Wie sollen wir mit den Snapmatic Bilder umgehen? - + Export selected... Auswahl exportieren... @@ -1418,7 +1445,7 @@ Exportieren als: Initialisierung... - + Export failed with... %1 @@ -1453,7 +1480,7 @@ Exportieren als: Alle Profildateien (*.g5e SGTA* PGTA*) - + GTA V Export (*.g5e) GTA V Export (*.g5e) @@ -1541,7 +1568,7 @@ Exportieren als: - + Export Exportieren @@ -1556,8 +1583,6 @@ Exportieren als: - - Delete savegame Savegame löschen @@ -1607,38 +1632,44 @@ Exportieren als: Are you sure to delete %1 from your savegames? Bist du sicher %1 von deinen Spielständen zu löschen? + + + + Delete Savegame + Savegame löschen + Failed at deleting %1 from your savegames Fehlgeschlagen beim Löschen %1 von deinen Spielständen - + &View A&nsehen - + &Remove Entfe&rnen - + &Select Au&swählen - + &Deselect A&bwählen - + Select &All &Alles auswählen - + &Deselect All Alles a&bwählen @@ -1677,40 +1708,40 @@ Exportieren als: Spielstand kopieren - + &Export &Exportieren - + Savegame files (SGTA*) Spielstanddateien (SGTA*) - + All files (**) Alle Dateien (**) - - - + + + Export Savegame Spielstand exportieren - + Overwrite %1 with current Savegame? Überschreibe %1 mit aktuellen Spielstand? - + Failed to overwrite %1 with current Savegame Fehlgeschlagen beim Überschrieben von %1 mit aktuellen Spielstand - + Failed to export current Savegame Fehlgeschlagen beim Exportieren vom aktuellen Spielstand @@ -1735,7 +1766,7 @@ Exportieren als: Beim Kopieren vom Spielstand ist ein Fehler aufgetreten - + No valid file is selected Keine gültige Datei wurde ausgewählt @@ -1753,7 +1784,7 @@ Exportieren als: - + Snapmatic Properties Snapmatic Eigenschaften @@ -1797,7 +1828,7 @@ Exportieren als: Meme - + Snapmatic Title Snapmatic Titel @@ -1877,22 +1908,22 @@ Exportieren als: Nein - + Patching of Snapmatic Properties failed because of I/O Error Patchen von Snapmatic Eigenschaften fehlgeschlagen wegen I/O Fehler - + New Snapmatic title: Neuer Snapmatic Titel: - + Snapmatic Crew Snapmatic Crew - + New Snapmatic crew: Neue Snapmatic Crew: @@ -1900,7 +1931,7 @@ Exportieren als: SnapmaticPicture - + PHOTO - %1 FOTO - %1 @@ -1950,7 +1981,7 @@ Exportieren als: Bist du sicher %1 von deine Snapmatic Bilder zu löschen? - + Edi&t Bearbei&ten @@ -1963,7 +1994,7 @@ Exportieren als: &Im Spiel deaktivieren - + &Export &Exportieren @@ -1976,12 +2007,12 @@ Exportieren als: Exportiere als &GTA Snapmatic - + Show &In-game &Im Spiel anzeigen - + Hide &In-game &Im Spiel ausblenden @@ -1994,55 +2025,52 @@ Exportieren als: FOTO - %1 - &Edit Properties... - &Eigenschaften bearbeiten... + &Eigenschaften bearbeiten... Export as &JPG picture... Exportiere als &JPG Bild... - Export as &Picture... - Exportiere als &Bild... + Exportiere als &Bild... Export as &GTA Snapmatic... Exportiere als &GTA Snapmatic... - Export as &Snapmatic... - Exportiere als &Snapmatic... + Exportiere als &Snapmatic... - + &View A&nsehen - + &Remove Entfe&rnen - + &Select Au&swählen - + &Deselect A&bwählen - + Select &All Alles &auswählen - + &Deselect All Alles a&bwählen @@ -2382,15 +2410,15 @@ Exportieren als: - + Select Profile Profil auswählen - + - + Select GTA V Folder... Wähle GTA V Ordner... @@ -2416,7 +2444,7 @@ Exportieren als: - + &About %1 &Über %1 diff --git a/res/gta5sync_en_US.qm b/res/gta5sync_en_US.qm index a7fe0365dd97100a27318bb3caf55c4bfcc03940..a017ab7fb6f68d45df27e8578c6f80bd1e12bf79 100644 GIT binary patch delta 2102 zcmXAqdsI~Q7RUFT`3-YkGsg!sAPhPnG{6jR7)ZcJp%Fo9s7uR26z`<~EyeC_Ef`E& zY0iaU?nn>JFfgo0cwFN#?~&e4F>nJ^b^TbI$L#f8V|LcmJrZ z*IcR91Y~rr2>g1a(R0EQa=5VR;MrM3{H3~pNG`6cE;BA+3o%y{5m!%a*FTApA0yVy zh+B1-*^_@?M< z2NXRPBrTGn`y;^DDEjw!a5u#q%po$FC}u2<)ul4&3(8E(Cb9%mcJXPV^o=y{Rx-P}v0{gw9LslY*R z(a>pZ^m~IY?a&d$XVD+!`9wk2HR4Y;qKD6^Ofsr;^lQw!!;o04X63?BqH$+6Ym%-L z*;i^R8=oV0n`Xkiahj`!PoecLXX$nm1-#A8wGHE_`P{Q#VM}r;SN3`V(IbJ}%kS?d z3Yo*X;_zNbnXHH`(dn_N01{zz&s;7H;pdA)=@fuA?J` zD8`@b^oA2fZ{!ZKC?ss=j&D_n0;EkpXE%>xy&&W+w7@qZrXOp+RiqOf0{@fV6Hb|1pV*qUrTBTf2_6U4@C2V zsNW;Mf!H@K1H1{=fVaU;@Bw&^wbo)+h99T_V?iyrknOeYL>b;u=}c~9pKMr!hWfE? zsR(u0!47RtCW;GXzIFeG>;{!l*Hxxin6GOC)_ub+E$xPJ1a@nnkH|Q{?j1;huzDRE z+h^(5`L{Gcc8kiuXx);NUL-iAEBjzMk$I2K8M}ajN!02ZZOA0Srfa%WKs4E=YhJ$? zmhE&KSm=bbJiqx%Bk+3EZ#lOL4*toV$xKmBy*Rp-XzFJwW0vdv*+)c~Hof&;4^+LY zw|@)N^IK5&e0+*9&hLiuJ$bVLIilyl!?cdc2x9_r?;1n)#V`no&DDKkFJs-%-Fn+2SKg z8s_uckdkpBU)J;?rYx+4Uv;DyX6xsxEkD9Mi}^!dOj&}4_jVzmwwCWbisGB?{75$h zNyh}!;UierCYa97z=2GNycG_!RSHr6KpekkR2n=&>gH^iEnS$?P=o8BU&yOFj^{yP zslFX$xGEGiB$JbDPYR`v!#<8mp>!q4WeYFgOvJcW3v27q6;>&{Ir|*CeOPeCrr@Al zq4`KY?DCgze1;Qt2^9LDeFCn?5e8!&SQjje3?lQa<={@xC2B51Sd>>Z1cVXUOyZP0 z#2@#V7*U;r0728l_+*sUHY844*$D1enL1NtX0ezzoP+mO;-V2F8rdf<>#V{-H^dc$ zN+~nMw{x)1?`M@#q)Pi?u`471t-2}pU9NzT4)L2}7$c-fJTVKtj~o?!>zw4Yuf;N%6kZN3zL*mDiN=ERF_C}sEoakviy8UBi-851-$UeeC+ zM+NUoLHl~Ku2@Q&GYZfAA}#qA8C&;B8;q#bxJi;Lr2w9KMshi458*?as2{kLNCvbqWTIuORHK&|W`cHPC`fz(-2VO)Ye@V344G@MoL(>d58gCK{{R30 delta 2214 zcmXAqdsGzX8OGn8o!QyB>@Fzx`$cXGEY}58Kv2;b1S18FNld}GSfW6pVA`IV#b9D> zCNZYQ0nwJ=$PwP%)+#o#Ci`%p&*{SE{wwo|1Z}-*C=+X_Pm77WL2OMk5z|0y>u-n>M~UrY ziA-M*>j2ZLh#k)-3f)Iss+lMzr~V^%YcX+-b41CPN!y%9q#K~{_;-lBwkS-AA>;HW zvsGlA-eh(-883!_+sJq?7VMzN{v|~2WfVERPx!wTCgxIFN)}PzM#{2WBAW9aEq)ga z*+$PLU5Ch0%I?6k)%+e=S1uQtrXz&BlTbr+Vt^Ok5r+3Hiy+naN5nzntz-FM-Q^enbDhD+|U5~&I`zC(Isf0-t4bqG#%K{W6oAN>jF(a!&JeK!O@;!83S zX`x7A&@+Dhbv%2Y;L9&tZy+LL{LVd<=(v@)kJzC!fp0m32+U#mquJk~aEHQ#-F)|G zBGIfKeqaC*(^>dyIXL9=YI^*239QA*cR4QE;@d zn(u-`_k}f$Xe4UCVBPTC_fTjRHWY(Qmay?rJW<$Xp`rn^Ww!`_SoAN1=CnfdS3-@+ zjDk5r%b8qQPQv*Nj4+~HxcJKR$k1M4+?0&<-onH<9GGVT4}i6z>MjHtJw=^s5DJ%x z0XeASw9qPsR4u^>8pPN{SRI`z&Mj^N^$L?0C`?}`=G?)$s4;QngdT;5#iE|KQRtz< zq#5E`f^&up@q;D!UUOBU6spkVCieQc;=arkFWjw!pyT4-EXb0N^|3fSAIB+dsp!~z zjEKuq7#5^3+@dgHSackOmBRbtxPJkWIbZy;{Q+jrh&MZ7?JQ^U&IN=uctlc73!AlF zQfIip(VryGV?$VHkx~{iu*)**!K@~-l0%Vme~)paIuWZ!d)o#zbdUSEhl}OHU|6Z{kvC<70R!@m1$OK+OKyzDGxw$3q+%gZP?(S+ zw-_Kiq*p#Uu?Y=N$bG6!wkbZ?`Km5F8Sxi)>x^Gxhj@2ewAS4^sGGm_5>8WwF5d;C z_cAC9`9XKQe--{tQWOS$ryE@5ibIm8yIF=)<=3HSr|(^Vf4%qTINjoG{jtIl9QWG_ zBhvN#Wq9wg+~D;(^aLI^q(49cOqqr?Z%*P5VZ=~2+6m)g&4xE>F&XZ+hJDWp5Z($y z$1n;Q-Y^XI!ok2e!^M$qI38n|{F4dqTMbinuOiFNs5bALE=HJelg*2YN;X*522_*> vl-rIbdf7aKoVqUhTYYSO-X1n{nt#`_RGG0ke7&Y0Y#KkGpMQKgy+Qat3_M}g diff --git a/res/gta5sync_en_US.ts b/res/gta5sync_en_US.ts index 7720a27..0d7e70e 100644 --- a/res/gta5sync_en_US.ts +++ b/res/gta5sync_en_US.ts @@ -74,35 +74,41 @@ Pictures and Savegames - + Release - + Release Candidate - + + Daily Build - + Developer - + Beta - + Alpha + + + Custom + + CrewDatabase @@ -438,26 +444,26 @@ When you want to use it as Avatar the image will be detached! - + %1 %1 - + The new Custom Folder will initialise after you restart %1. The new Custom Folder will initialize after you restart %1. - + No Profile No Profile, as default - - - + + + Profile: %1 @@ -499,11 +505,13 @@ When you want to use it as Avatar the image will be detached! + Export as &Picture... + Export as &Snapmatic... @@ -514,6 +522,7 @@ When you want to use it as Avatar the image will be detached! + &Edit Properties... @@ -560,91 +569,105 @@ Press 1 for Default View - + Export as Picture... - - + + Export - + JPEG Graphics (*.jpg *.jpeg) - + Portable Network Graphics (*.png) - - - - + + + + + + Export as Picture - - + + Overwrite %1 with current Snapmatic picture? - - - Failed to overwrite %1 with current Snapmatic picture - - - - - - + + Failed to export current Snapmatic picture - - + + No valid file is selected - + + Failed to export the picture because the system occurred a write failure + + + + + Failed to export the picture because the format detection failures + + + + + Failed to export the picture because the file can't be written + + + + + Failed to export the picture because of an unknown reason + + + + Export as Snapmatic... - + GTA V Export (*.g5e) - + GTA V Raw Export (*.auto) - + Snapmatic pictures (PGTA*) - - - - - - + + + + + Export as Snapmatic - + Exported Snapmatic to "%1" because of using the .auto extension. @@ -704,197 +727,197 @@ Press 1 for Default View - - + + Import... - - - - - - - - - - - - - + + + + + + + + + + + + + Import - + Importable files (%1) - + GTA V Export (*.g5e) - + Savegames files (SGTA*) - + Snapmatic pictures (PGTA*) - + All image files (%1) - + All files (**) - - + + No valid file is selected - - + + Import file %1 of %2 files - + Import failed with... %1 - + Failed to read Snapmatic picture - + Failed to read Savegame file - + Can't import %1 because file can't be parsed properly - + Can't import %1 because file format can't be detected - + Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e - + Failed to import the Snapmatic picture, the picture is already in the game - + Failed to import the Snapmatic picture, can't copy the file into profile - + Failed to import the Savegame, can't copy the file into profile - + Failed to import the Savegame, no Savegame slot is left - - - - + + + + Export selected - - + + JPG pictures and GTA Snapmatic - - + + JPG pictures only - - + + GTA Snapmatic only - + %1Export Snapmatic pictures%2<br><br>JPG pictures make it possible to open the picture with a Image Viewer<br>GTA Snapmatic make it possible to import the picture into the game<br><br>Export as: - + Export selected... - + Initialising export... Initializing export... - + Export failed with... %1 - - + + No Snapmatic pictures or Savegames files are selected - + + - Remove selected - + You really want remove the selected Snapmatic picutres and Savegame files? - + Failed at remove the complete selected Snapmatic pictures and/or Savegame files @@ -975,14 +998,12 @@ Press 1 for Default View - + Export - - Delete savegame @@ -992,75 +1013,75 @@ Press 1 for Default View - + &View - + &Export - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All - + Savegame files (SGTA*) - + All files (**) - - - + + + Export Savegame - + Overwrite %1 with current Savegame? - + Failed to overwrite %1 with current Savegame - + Failed to export current Savegame - + No valid file is selected @@ -1099,6 +1120,12 @@ Press 1 for Default View Are you sure to delete %1 from your savegames? + + + + Delete Savegame + + Failed at deleting %1 from your savegames @@ -1110,7 +1137,7 @@ Press 1 for Default View - + Snapmatic Properties @@ -1217,27 +1244,27 @@ Press 1 for Default View - + Patching of Snapmatic Properties failed because of I/O Error - + Snapmatic Title - + New Snapmatic title: - + Snapmatic Crew - + New Snapmatic crew: @@ -1245,7 +1272,7 @@ Press 1 for Default View SnapmaticPicture - + PHOTO - %1 @@ -1305,67 +1332,52 @@ Press 1 for Default View - + Edi&t - + Show &In-game - + Hide &In-game - - &Edit Properties... - - - - + &Export - - Export as &Picture... - - - - - Export as &Snapmatic... - - - - + &View - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All @@ -1447,7 +1459,7 @@ Press 1 for Default View - + &About %1 @@ -1559,9 +1571,9 @@ Press 1 for Default View - + - + Select GTA V Folder... @@ -1593,7 +1605,7 @@ Press 1 for Default View - + Select Profile diff --git a/res/gta5sync_fr.qm b/res/gta5sync_fr.qm index affe051b68b31e35db7fe008f38fc898fa6add59..1750a3e81909b81a84f8b685ddb765cde1b67899 100644 GIT binary patch delta 2104 zcmXAqdsGzn70183JG-+pvkw+`iwY=8Q655g2ndRTh+sejWkm^yF+#Ko!~iCqJ{Ds= z(UhRkZ0TvpQ3x6%v>E~936T^KQ(|N-r9@*|8>=Q9dc+seVouX9oxeW6nYq8a_wl`V zM}{dj z%=AUrq`yViRIYL%X+au;RghLP1Q*tYBYiJ3jW-~(h0INYD?b--Sn-=vgN(cw$2Qx5 zgdnu;?*qg_d^Ax_$NO-5i1vyfzH8D0D?Y&e@@xk9o<{z99B#0@8GvUp8z2{6)<@^M^q6yV}CfXpmE+E!)ddtzW1;x-p91Z>UWC zLVMzs1m4Tho{Vz?nk<#Zw^UAjN#&fgDidB;>3m+>`uuHRah$fJBNj-B(w^;c1p>)) zwOv98GxgT?|JDl3I;8dNph01a_C|juBTdxaJZ=Zp+|xddoWkA;I_db|fYr6S*y?d0 zuT&e%rIRyP{TyT3xYvm#byKwu}>3$pFShRr_g@cDIsUU5n!p8u+L>% zLs4xJYTsaQO*4cy3+gCD2rYH@fr2pd5m`*~V!>tdG4R|H@;_uH`6Kzh&~kvcp1V$J z7`TDD(+w$G|>QA3M5BMC^-@L z@mgD8SX~qZMC2P@&{lAKoQ5qp;%3>UiA?3wz%yZzL+y6R(yFAnB5^BJW|aJ7m4lxH;{i;Z0;^6 zE5#2p?*dbgiyedWf!Lj5PY<{re(-&;(=3L^Dg>WL)~7 zky`o2n03MftU6=NKEq15yuUJ*HNFSLIE)qDB^2ZP#+q5zD6#@$R}aT8bAz$(0xJ^y zbK_Vi1F`Iod_L{w_b(-%zb8|KH>5dF0!ghD@+$AkU#qljlhW(!7;uPGB(jo@)zYSV z2AmorZO@>#oKvOkrT01i2EFw1<7m#SO{zM?UKzcl+K5>0fj>&k-Pu404e%!>Dt$H-4)%_sv{+%KCQv)S_jIbbFIIxfmVHC#lqBjw2X ztlY8;d0}Y-1NnZEbi5{8eNnVqUO7U;)LnA^m<8C7D{lrXV9$_$w}KaxLn_TTRi@R+ z=lmQ%T$6lhw3-1tlrJx(`V%H(&(3y0dQoLUm&!%HDzm%f;h9eEmv7~(CtVL%(r@Kk zXZnHpx$?**iYn%+qB;93_BLFZ*51dS9#snd!c3ABWsijwaJ-?^#^$lKca_@Zx4ByL zRc1d`>i+A;F+Hptz%7oWMsfRaQ9XM{X$bo@?c6F?B`RHI^jjRFbh*mtV8dnQ!r~EN zu3Pa`@rR2BmBDvQfUM7zzq+}*GcPIMcYei;ZmG1cH3`2@qn&J$M#q8hM3epXDV*yS zCjU>S^UrFgDJ=LQ6FOz8%w%PrDKqU)b@RU2R3FY~d9JBJBe3PWOs@YQvZtGxt&B9j z)b#OKCC72X)TtrOI@1@KK3uUiX5SHtG;5kU^g117?J~#j=NOuDReHZ@PBv4N!S~Ed zcMoySubcDiY-M1W%J@6xkIr+$jE3o2tWxcQAKXXR-W4YjDI$0rXGIFYnEt8t*)%9C_B7EvbX)q c(&E)t5%Ad1_HeGRqis*po#}1E>kixg2a)k_ z>SDJk#cgS=U366FR7KP+t5yWNt`{u2Zg;y@>xd&`U8^m&wT|wKXSS0`o|FIl|98I2 z`+do=^P0hnnm7I3Hvy~zlo*vG9e{QNVA2A@MZi}B=;j0SqJarkuCE0mZQQ?ErRg#d z>&@>6ReBqM~UEk+Ga+u0RsW5EM0eseD!lYM$ut=4Qx)CvKcrg$$Y&yb4xuB8%GZC1%Qsn|!W&UnW z(C$!R#41hsq9F#_rm2bh!Oci_Xlv8%x}aB> z$>5WM)&0wK)^xcLKZggCbA<&{w*hlIg?gWb6kCL_`S+~3a#i?4K_dkUp{?;QuyiK* z1G$FexusXgAA!Pb@@KM+d`$jDXxqY5g||rxd07bQMdk_Z6L$a!af18FMa~i7la2YT zWt7mRl(6P5;pn!>K$@@6_rlvOO|{B|b1E0UF7zGV$bId?&B89g?_=So{?lZl@bFVB zOLa>p44;d8OXt6<888H@47si=IM)q48>p-Nu$0Q(>ejVPWCWShb=x200#WbiS~n~K z3byI??m5C*=jg88phNnv^}6^D!0RP_P%qnUafLpoFbw$Z8~Rdh6)^3Aeq|mrCbWy< zfG;qzQIv;VEZqu~@q;SoE)gd@JV9~4D@J`xhPp$<<1F8cVP?YH40pQdkawIEc%Xe;N#XHx6&EKa$F(y0Wt?`)@Ze(5}FrBJ#Q9S@8-AlmoH@uz zmJ}@K-|+^DO64*z1OBqSHI4g~T$QF)l__!Z;V}UmXesjPTeU!mPClDR_1m_|eJ>mU zq;QqCQqs+ZnV+c(3(m`z#^!P0{49UD=N?nKTfV;k6bI6MdGIvFWqn!E9DD_s(yxp< z(94>ZCaK!&o}noIHW*CBa;b|0$DHYtsd#;{FyC|huy?dYd81#)0z zY*Jd>k+0FfbfsmO*%`{wN*XSCdk1=w>_Y5G{Sd-4o#Jq2G zH_UCK`umK{QCyG)jV&61o(HR(f6Ulwrl->siW1Dc7H+eC9co(>A$HhmNq{$KF;M z7i&7PB!H@}G+lSnaO8P!VR%$d-0Xdz$iYmMtDNm)9=(c=O*&(qb&s`8ahjd|`}s3n zU|!wG5=f=yj~?f7l#AxJv$W%1W~v);cOGEDoo`ho@nQ%1!WlaqnhsS4GHvoXV;tf++Uw+^(;#Z z^V|;~;aNRR=-4_wI>0m?X>`=_B#>fHOjw8~YP=yd8hrhF?5VW>d*pDgu-MnFuBvu< a)=UcOIBB~v+Vi$$vBzEz(9yog et les fichiers de sauvegarde de Grand Theft Auto V - + Release - + Release Candidate - + + Daily Build - + Developer - + Beta - + Alpha + + + Custom + Personnalisé + CrewDatabase @@ -573,13 +579,13 @@ When you want to use it as Avatar the image will be detached! Système - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. @@ -592,15 +598,15 @@ When you want to use it as Avatar the image will be detached! Le changement de langue sera actif au prochain lancement de %1. - + No Profile No Profile, as default Aucun profil - - - + + + Profile: %1 Profil : %1 @@ -660,37 +666,56 @@ When you want to use it as Avatar the image will be detached! Exporter comme Snapmatic... - + + Failed to export the picture because the system occurred a write failure + + + + + Failed to export the picture because the format detection failures + + + + + Failed to export the picture because the file can't be written + + + + + Failed to export the picture because of an unknown reason + + + + Export as Snapmatic... - + GTA V Export (*.g5e) GTA V Export (*.g5e) - + GTA V Raw Export (*.auto) GTA V Export Brut (*.g5e) - + Snapmatic pictures (PGTA*) Fichiers GTA Snapmatic (PGTA*) - - - - - - + + + + + Export as Snapmatic - + Exported Snapmatic to "%1" because of using the .auto extension. Exporté comme "%1" avec l'utilisation de l'extension .auto. @@ -703,42 +728,42 @@ When you want to use it as Avatar the image will be detached! Exporter comme GTA Snapmatic - - + + Overwrite %1 with current Snapmatic picture? %1 existe déjà. Vous-vous le remplacer ? - + Export as Picture... - + JPEG Graphics (*.jpg *.jpeg) - - - - + + + + + + Export as Picture - - Failed to overwrite %1 with current Snapmatic picture - Echec du remplacement de %1 + Echec du remplacement de %1 Failed to copy current Snapmatic picture Echec de la copie - - + + No valid file is selected Fichier invalide @@ -748,6 +773,7 @@ When you want to use it as Avatar the image will be detached! + Export as &Picture... @@ -757,6 +783,7 @@ When you want to use it as Avatar the image will be detached! + Export as &Snapmatic... @@ -771,6 +798,7 @@ When you want to use it as Avatar the image will be detached! + &Edit Properties... Modifier les &propriétés... @@ -836,8 +864,8 @@ Appuyer sur 1 pour le mode par défaut Exporter comme image JPG... - - + + Export Exporter @@ -846,7 +874,7 @@ Appuyer sur 1 pour le mode par défaut Image JPEG (*.jpg) - + Portable Network Graphics (*.png) Portable Network Graphics (*.png) @@ -855,9 +883,8 @@ Appuyer sur 1 pour le mode par défaut Exporter comme image JPG - - - + + Failed to export current Snapmatic picture Échec de l'export de la photo Snapmatic @@ -921,25 +948,25 @@ Appuyer sur 1 pour le mode par défaut Chargement... - - + + Import... Importer... - - - - - - - - - - - - - + + + + + + + + + + + + + Import Importer @@ -948,36 +975,36 @@ Appuyer sur 1 pour le mode par défaut Fichiers de profil GTA (SGTA* PGTA*) - + Savegames files (SGTA*) Fichiers de sauvegarde GTA (SGTA*) - + Snapmatic pictures (PGTA*) Photos Snapmatic (PGTA*) - + All image files (%1) - + All files (**) Tous les fichiers (**) - - + + Import file %1 of %2 files Importation du fichier %1 sur %2 - + Import failed with... %1 @@ -986,25 +1013,25 @@ Appuyer sur 1 pour le mode par défaut %1 - - + + No valid file is selected Fichier invalide - + Importable files (%1) - + Failed to read Snapmatic picture Impossible d'ouvrir la photo Snapmatic - + Failed to read Savegame file Impossible de lire le fichier de sauvegarde @@ -1026,78 +1053,78 @@ Appuyer sur 1 pour le mode par défaut Tous les fichiers image (*.jpg *.png) - + Can't import %1 because file can't be parsed properly - + Can't import %1 because file format can't be detected - + Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e Impossible d'importer la photo Snapmatic,nom de fichier incorrect (PGTA*, *.g5e) - + Failed to import the Snapmatic picture, the picture is already in the game Impossible d'importer la photo Snapmatic, un fichier du même nom existe déjà - + Failed to import the Snapmatic picture, can't copy the file into profile Impossible d'importer la photo Snapmatic, impossible de copier le fichier dans le profil - + Failed to import the Savegame, can't copy the file into profile Impossible d'importer la sauvegarde, impossible de copier le fichier dans le profil - + Failed to import the Savegame, no Savegame slot is left Impossible d'importer la sauvegarde, aucun emplacement libre - - - - + + + + Export selected Exporter la sélection - - + + JPG pictures and GTA Snapmatic Images JPG et GTA Snapmatic - - + + JPG pictures only Images JPG seulement - - + + GTA Snapmatic only GTA Snapmatic seulement - + %1Export Snapmatic pictures%2<br><br>JPG pictures make it possible to open the picture with a Image Viewer<br>GTA Snapmatic make it possible to import the picture into the game<br><br>Export as: %1Exporter les photos Snapmatic%2<br><br>Les fichiers JPG permettent d'ouvrir les photos avec une visionneuse d'images<br>Les GTA Snapmatic permettent d'importer les photos dans le jeu<br><br>Exporter comme : - + Export selected... Exporter la sélection... - + Initialising export... @@ -1106,7 +1133,7 @@ Appuyer sur 1 pour le mode par défaut Initialisation de l'export... - + Export failed with... %1 @@ -1115,25 +1142,25 @@ Appuyer sur 1 pour le mode par défaut %1 - - + + No Snapmatic pictures or Savegames files are selected Aucun fichier de sauvegarde ou photo Snapmatic sélectionné - + + - Remove selected Supprimer la sélection - + You really want remove the selected Snapmatic picutres and Savegame files? Supprimer la sélection ? - + Failed at remove the complete selected Snapmatic pictures and/or Savegame files Impossible de supprimer la sélection @@ -1143,7 +1170,7 @@ Appuyer sur 1 pour le mode par défaut Tous les fichiers de profil (*.g5e SGTA* PGTA*) - + GTA V Export (*.g5e) GTA V Export (*.g5e) @@ -1220,14 +1247,12 @@ Appuyer sur 1 pour le mode par défaut - + Export Exporter - - Delete savegame Supprimer la sauvegarde @@ -1237,45 +1262,45 @@ Appuyer sur 1 pour le mode par défaut Supprimer - + &Export &Exporter - + Savegame files (SGTA*) Fichiers de sauvegarde GTA (SGTA*) - + All files (**) Tous les fichiers (**) - - - + + + Export Savegame Exporter la sauvegarde - + Overwrite %1 with current Savegame? Remplacer %1 ? - + Failed to overwrite %1 with current Savegame Impossible de remplacer %1 - + Failed to export current Savegame Impossible d'exporter la sauvegarde - + No valid file is selected Fichier invalide @@ -1316,38 +1341,44 @@ Appuyer sur 1 pour le mode par défaut Are you sure to delete %1 from your savegames? Supprimer %1 ? + + + + Delete Savegame + + Failed at deleting %1 from your savegames Impossible de supprimer %1 - + &View &Voir - + &Remove &Supprimer - + &Select &Sélectionner - + &Deselect &Déselectionner - + Select &All Sélectionner to&ut - + &Deselect All &Déselectionner tout @@ -1357,7 +1388,7 @@ Appuyer sur 1 pour le mode par défaut - + Snapmatic Properties Propriétés Snapmatic @@ -1401,7 +1432,7 @@ Appuyer sur 1 pour le mode par défaut Meme - + Snapmatic Title Titre Snapmatic @@ -1475,22 +1506,22 @@ Appuyer sur 1 pour le mode par défaut Non - + Patching of Snapmatic Properties failed because of I/O Error La modification des propriétés Snapmatic a échoué : erreur d'entrée/sortie - + New Snapmatic title: Nouveau titre Snapmatic : - + Snapmatic Crew Crew Snapmatic - + New Snapmatic crew: Nouveau crew Snapmatic : @@ -1498,7 +1529,7 @@ Appuyer sur 1 pour le mode par défaut SnapmaticPicture - + PHOTO - %1 PHOTO - %1 @@ -1568,27 +1599,26 @@ Appuyer sur 1 pour le mode par défaut Impossible de supprimer %1 - + Edi&t Édi&ter - + Show &In-game &Visible en jeu - + Hide &In-game &Invisible en jeu - &Edit Properties... - Modifier les &propriétés... + Modifier les &propriétés... - + &Export &Exporter @@ -1596,47 +1626,37 @@ Appuyer sur 1 pour le mode par défaut Export as &JPG picture... Exporter comme image &JPG... - - - Export as &Picture... - - Export as &GTA Snapmatic... Exporter comme &GTA Snapmatic... - - Export as &Snapmatic... - - - - + &View &Voir - + &Remove S&upprimer - + &Select &Sélectionner - + &Deselect &Déselectionner - + Select &All Sélectionner &tout - + &Deselect All &Déselectionner tout @@ -1810,9 +1830,9 @@ Appuyer sur 1 pour le mode par défaut - + - + Select GTA V Folder... Modifier l'emplacement de GTA V... @@ -1855,14 +1875,14 @@ Appuyer sur 1 pour le mode par défaut - + &About %1 &À propos de %1 - + Select Profile Sélectionner un profil diff --git a/res/gta5sync_ru.qm b/res/gta5sync_ru.qm index ebb1842d4ba233af9c2e6d19771f73ac68e93d5c..7fe9420cb62e0958f89e55e8761dfed2419a3dac 100644 GIT binary patch delta 1975 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 G*#7{MbYZ~& diff --git a/res/gta5sync_ru.ts b/res/gta5sync_ru.ts index 1518d41..0db3db5 100644 --- a/res/gta5sync_ru.ts +++ b/res/gta5sync_ru.ts @@ -143,35 +143,41 @@ Pictures and Savegames Grand Theft Auto V Snapmatic картинок и сохранений - + Release - + Release Candidate - + + Daily Build - + Developer - + Beta - + Alpha + + + Custom + + CrewDatabase @@ -536,13 +542,13 @@ When you want to use it as Avatar the image will be detached! Система - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. @@ -555,15 +561,15 @@ When you want to use it as Avatar the image will be detached! Язык изменится после перезапуска %1. - + No Profile No Profile, as default Нет профиля - - - + + + Profile: %1 Профиль: %1 @@ -625,8 +631,8 @@ When you want to use it as Avatar the image will be detached! &Закрыть - - + + Export Экспортировать @@ -644,6 +650,7 @@ When you want to use it as Avatar the image will be detached! + Export as &Picture... @@ -653,6 +660,7 @@ When you want to use it as Avatar the image will be detached! + Export as &Snapmatic... @@ -667,6 +675,7 @@ When you want to use it as Avatar the image will be detached! + &Edit Properties... &Изменить свойства... @@ -732,7 +741,7 @@ Press 1 for Default View Картинка JPEG (*.jpg) - + Portable Network Graphics (*.png) Картинка Portable Network Graphics (*.png) @@ -741,8 +750,8 @@ Press 1 for Default View Экспортировать как картинку JPG - - + + Overwrite %1 with current Snapmatic picture? Перезаписать %1 текущей картинкой Snapmatic? @@ -751,59 +760,77 @@ Press 1 for Default View Экспортировать как GTA Snapmatic - - Failed to overwrite %1 with current Snapmatic picture - Не удалось перезаписать %1 картинкой Snapmatic + Не удалось перезаписать %1 картинкой Snapmatic - + Export as Picture... - + JPEG Graphics (*.jpg *.jpeg) - - - - + + + + + + Export as Picture - - - + + Failed to export the picture because the system occurred a write failure + + + + + Failed to export the picture because the format detection failures + + + + + Failed to export the picture because the file can't be written + + + + + Failed to export the picture because of an unknown reason + + + + + Failed to export current Snapmatic picture Не удалось экспортировать текущую картинку Snapmatic - + Export as Snapmatic... - - - - - - + + + + + Export as Snapmatic - + Exported Snapmatic to "%1" because of using the .auto extension. Snapmatic был экспортирован как "%1" из-за расширеня файла. - - + + No valid file is selected Выбранный файл неверен @@ -816,17 +843,17 @@ Press 1 for Default View Экспортировать как GTA Snapmatic... - + GTA V Export (*.g5e) GTA V Export (*.g5e) - + GTA V Raw Export (*.auto) GTA V Экспорт Исходника (*.auto) - + Snapmatic pictures (PGTA*) Картинки Snapmatic (PGTA*) @@ -894,25 +921,25 @@ Press 1 for Default View Загрузка... - - + + Import... Импортировать... - - - - - - - - - - - - - + + + + + + + + + + + + + Import Импортировать @@ -921,31 +948,31 @@ Press 1 for Default View Все файлы профиля (SGTA* PGTA*) - + Savegames files (SGTA*) Файлы сохранения (SGTA*) - + Snapmatic pictures (PGTA*) Картинка Snapmatic (PGTA*) - + All files (**) Все файлы (**) - - + + Import file %1 of %2 files Импортируются файлы %1 из %2 - + Import failed with... %1 @@ -954,13 +981,13 @@ Press 1 for Default View %1 - + Failed to read Snapmatic picture Не удалось загрузить картинку Snapmatic - + Failed to read Savegame file Не удалось загрузить файл сохранения @@ -970,8 +997,8 @@ Press 1 for Default View Не получилось импортировать %1 из-за неправильного формата файла - - + + No valid file is selected Выбранный файл неверен @@ -990,93 +1017,93 @@ Press 1 for Default View Все изображения (*.jpg *.png) - + Importable files (%1) - + All image files (%1) - + Can't import %1 because file can't be parsed properly - + Can't import %1 because file format can't be detected - + Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e Не удалось импортировать картинку Snapmatic, название не начинается с PGTA или не заканчивается с .g5e - + Failed to import the Snapmatic picture, the picture is already in the game Не удалось импортировать картинку Snapmatic, картинка уже в игре - + Failed to import the Snapmatic picture, can't copy the file into profile Не удалось импортировать картинку Snapmatic, не получилось скопировать файл в профиль - + Failed to import the Savegame, can't copy the file into profile Не удалось импортировать сохранение, не получилось скопировать файл в профиль - + Failed to import the Savegame, no Savegame slot is left Не удалось импортировать сохранение, нет пустых ячеек под сохранения - - + + JPG pictures and GTA Snapmatic Картинки JPG и GTA Snapmatic - - + + JPG pictures only Только картинки JPG - - + + GTA Snapmatic only Только GTA Snapmatic - + Initialising export... - - + + No Snapmatic pictures or Savegames files are selected Не выделены ни один Snapmatic или сохранение - + + - Remove selected Снять выделение - + You really want remove the selected Snapmatic picutres and Savegame files? Точно ли хочешь удалить выбранные картинки Snapmatic и файлы сохранений? - + Failed at remove the complete selected Snapmatic pictures and/or Savegame files Не удалось удалить полностью выбранные картинки Snapmatic и/или файлы сохранений @@ -1097,20 +1124,20 @@ Press 1 for Default View Не получилось имортировать копию сохранения, потому что не осталось свободных под них слотов - - - - + + + + Export selected Экспортировать выделенное - + %1Export Snapmatic pictures%2<br><br>JPG pictures make it possible to open the picture with a Image Viewer<br>GTA Snapmatic make it possible to import the picture into the game<br><br>Export as: %1Эскпортировать картинки Snapmatic%2<br><br>Картинки JPG можно открыть любым просмотрщиком<br>Картинки формата GTA Snapmatic можно снова импортировать в игру<br><br>Экспортировать как: - + Export selected... Экпортировать выделенное... @@ -1119,7 +1146,7 @@ Press 1 for Default View Подготавливаю эскпорт... - + Export failed with... %1 @@ -1140,7 +1167,7 @@ Press 1 for Default View Все файлы профиля (*.g5e SGTA* PGTA*) - + GTA V Export (*.g5e) GTA V Export (*.g5e) @@ -1219,7 +1246,7 @@ Press 1 for Default View - + Export Экспорт @@ -1234,8 +1261,6 @@ Press 1 for Default View - - Delete savegame Удалить сохранение @@ -1281,38 +1306,44 @@ Press 1 for Default View Are you sure to delete %1 from your savegames? Вы уверены, что хотите удалить сохранение %1? + + + + Delete Savegame + + Failed at deleting %1 from your savegames Не удалось удалить сохранение %1 - + &View &Просмотр - + &Remove &Удалить - + &Select &Выбрать - + &Deselect Сн&ять выбор - + Select &All В&ыбрать все - + &Deselect All Снять выбо&р со всех @@ -1322,40 +1353,40 @@ Press 1 for Default View Копировать сохранение - + &Export &Экспортировать - + Savegame files (SGTA*) Файлы сохранений (SGTA*) - + All files (**) Все файлы (**) - - - + + + Export Savegame Экспортировать сохранение - + Overwrite %1 with current Savegame? Перезаписать %1 текущим сохранением? - + Failed to overwrite %1 with current Savegame Не удалось переписать %1 текущим сохранением - + Failed to export current Savegame Не удалось экспортировать текущее сохранение @@ -1372,7 +1403,7 @@ Press 1 for Default View Не удалось скопировать текущее сохранение - + No valid file is selected Выбранный файл неверен @@ -1382,7 +1413,7 @@ Press 1 for Default View - + Snapmatic Properties Свойства Snapmatic @@ -1433,7 +1464,7 @@ Press 1 for Default View Meme - + Snapmatic Title Заголовок Snapmatic @@ -1494,22 +1525,22 @@ Press 1 for Default View Нет - + Patching of Snapmatic Properties failed because of I/O Error Не удалось измененить свойства Snapmatic из-за проблемы ввода/вывода - + New Snapmatic title: Новый заголовок Snapmatic: - + Snapmatic Crew Банда на Snapmatic - + New Snapmatic crew: Новая банда на Snapmatic: @@ -1517,7 +1548,7 @@ Press 1 for Default View SnapmaticPicture - + PHOTO - %1 ФОТО - %1 @@ -1577,27 +1608,26 @@ Press 1 for Default View Не удалось удалить %1 из колелкции картинок Snapmatic - + Edi&t &Правка - + Show &In-game Показывать в &игре - + Hide &In-game Ск&рыть в игре - &Edit Properties... - &Изменить свойства... + &Изменить свойства... - + &Export &Экспорт @@ -1605,47 +1635,37 @@ Press 1 for Default View Export as &JPG picture... Эксп&ортировать как картинку JPG... - - - Export as &Picture... - - Export as &GTA Snapmatic... Экс&портировать как GTA Snapmatic... - - Export as &Snapmatic... - - - - + &View По&казать - + &Remove У&далить - + &Select &Выделить - + &Deselect Сн&ять выделение - + Select &All В&ыбрать все - + &Deselect All Снять выбо&р со всех @@ -1867,15 +1887,15 @@ Press 1 for Default View - + Select Profile Выбор профиля - + - + Select GTA V Folder... Выбрать папку GTA V... @@ -1888,7 +1908,7 @@ Press 1 for Default View - + &About %1 &О %1