diff --git a/ExportThread.cpp b/ExportThread.cpp index 1187985..aad9c29 100755 --- a/ExportThread.cpp +++ b/ExportThread.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include ExportThread::ExportThread(QMap profileMap, QString exportDirectory, bool pictureCopyEnabled, bool pictureExportEnabled, int exportCount, QObject *parent) : QThread(parent), @@ -85,6 +86,10 @@ void ExportThread::run() if (pictureExportEnabled) { QString exportFileName = PictureExport::getPictureFileName(picture); + if (exportFileName.right(4) != ".jpg" && exportFileName.right(4) != ".png") + { + exportFileName.append(".jpg"); + } intExportProgress++; emit exportStringUpdate(ProfileInterface::tr("Export file %1 of %2 files").arg(QString::number(intExportProgress), QString::number(exportCount))); @@ -119,14 +124,11 @@ void ExportThread::run() } if (pictureCopyEnabled) { - QString originalFileName = picWidget->getPicturePath(); - QString adjustedFileName = originalFileName; - if (adjustedFileName.right(7) == ".hidden") // for the hidden file system + QString exportFileName = PictureExport::getPictureFileName(picture); + if (exportFileName.right(4) != ".g5e") { - adjustedFileName.remove(adjustedFileName.length() - 7, 7); + exportFileName.append(".g5e"); } - QFileInfo adjustedFileInfo(adjustedFileName); - QString exportFileName = adjustedFileInfo.fileName(); intExportProgress++; emit exportStringUpdate(ProfileInterface::tr("Export file %1 of %2 files").arg(QString::number(intExportProgress), QString::number(exportCount))); @@ -134,7 +136,7 @@ void ExportThread::run() QString exportFilePath = exportDirectory + "/" + exportFileName; if (QFile::exists(exportFilePath)) {QFile::remove(exportFilePath);} - if (!QFile::copy(originalFileName, exportFilePath)) + if (!picture->exportPicture(exportDirectory + "/" + exportFileName, true)) { failedCopyPictures.append(exportFileName); } diff --git a/PictureCopy.cpp b/PictureCopy.cpp index de9a8c2..cf99d75 100755 --- a/PictureCopy.cpp +++ b/PictureCopy.cpp @@ -16,6 +16,7 @@ * along with this program. If not, see . *****************************************************************************/ +#include "config.h" #include "PictureCopy.h" #include "PictureDialog.h" #include "StandardPaths.h" @@ -29,9 +30,9 @@ PictureCopy::PictureCopy() } -void PictureCopy::copyPicture(QWidget *parent, QString picPath) +void PictureCopy::copyPicture(QWidget *parent, QString picPath, SnapmaticPicture *picture) { - QSettings settings("Syping", "gta5sync"); + QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); settings.beginGroup("FileDialogs"); settings.beginGroup("PictureCopy"); @@ -49,23 +50,25 @@ fileDialogPreSave: fileDialog.setAcceptMode(QFileDialog::AcceptSave); fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); fileDialog.setOption(QFileDialog::DontConfirmOverwrite, true); - fileDialog.setDefaultSuffix(""); + fileDialog.setDefaultSuffix(".rem"); fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint); fileDialog.setWindowTitle(PictureDialog::tr("Export as GTA Snapmatic...")); fileDialog.setLabelText(QFileDialog::Accept, PictureDialog::tr("&Export")); QStringList filters; + filters << PictureDialog::tr("GTA V Export (*.g5e)"); + filters << PictureDialog::tr("GTA V Raw Export (*.auto)"); filters << PictureDialog::tr("Snapmatic pictures (PGTA*)"); - filters << PictureDialog::tr("All files (**)"); fileDialog.setNameFilters(filters); QList sidebarUrls = SidebarGenerator::generateSidebarUrls(fileDialog.sidebarUrls()); fileDialog.setSidebarUrls(sidebarUrls); fileDialog.setDirectory(settings.value("Directory", StandardPaths::documentsLocation()).toString()); - fileDialog.selectFile(sgdFileInfo.fileName()); + fileDialog.selectFile(QString(picture->getExportPictureFileName() + ".g5e")); fileDialog.restoreGeometry(settings.value(parent->objectName() + "+Geomtery", "").toByteArray()); + if (fileDialog.exec()) { QStringList selectedFiles = fileDialog.selectedFiles(); @@ -89,11 +92,39 @@ fileDialogPreSave: } } - bool isCopied = QFile::copy(picPath, selectedFile); - if (!isCopied) + if (selectedFile.right(4) == ".g5e") { - QMessageBox::warning(parent, PictureDialog::tr("Export as GTA Snapmatic"), PictureDialog::tr("Failed to copy current Snapmatic picture")); - goto fileDialogPreSave; + bool isExported = picture->exportPicture(selectedFile, true); + if (!isExported) + { + QMessageBox::warning(parent, PictureDialog::tr("Export as GTA Snapmatic"), PictureDialog::tr("Failed to export current Snapmatic picture")); + goto fileDialogPreSave; + } + } + else + { + bool isAutoExt = false; + if (selectedFile.right(5) == ".auto") + { + isAutoExt = true; + QString dirPath = QFileInfo(selectedFile).dir().path(); + QString stockFileName = sgdFileInfo.fileName(); + selectedFile = dirPath + "/" + stockFileName; + } + else if (selectedFile.right(4) == ".rem") + { + selectedFile.remove(".rem"); + } + bool isCopied = picture->exportPicture(selectedFile, false); + if (!isCopied) + { + QMessageBox::warning(parent, PictureDialog::tr("Export as GTA Snapmatic"), PictureDialog::tr("Failed to export current Snapmatic picture")); + goto fileDialogPreSave; + } + else + { + if (isAutoExt) QMessageBox::information(parent, PictureDialog::tr("Export as GTA Snapmatic"), PictureDialog::tr("Exported Snapmatic to \"%1\" because of using the .auto extension.").arg(selectedFile)); + } } } else diff --git a/PictureCopy.h b/PictureCopy.h index 68b7ef2..850b438 100755 --- a/PictureCopy.h +++ b/PictureCopy.h @@ -19,6 +19,7 @@ #ifndef PICTURECOPY_H #define PICTURECOPY_H +#include "SnapmaticPicture.h" #include #include @@ -26,7 +27,7 @@ class PictureCopy { public: PictureCopy(); - static void copyPicture(QWidget *parent, QString picPath); + static void copyPicture(QWidget *parent, QString picPath, SnapmaticPicture *picture); }; #endif // PICTURECOPY_H diff --git a/PictureDialog.cpp b/PictureDialog.cpp index 0868b7c..40d4cc8 100755 --- a/PictureDialog.cpp +++ b/PictureDialog.cpp @@ -521,11 +521,11 @@ void PictureDialog::copySnapmaticPicture() { if (rqfullscreen && fullscreenWidget) { - PictureCopy::copyPicture(fullscreenWidget, picPath); + PictureCopy::copyPicture(fullscreenWidget, picPath, smpic); } else { - PictureCopy::copyPicture(this, picPath); + PictureCopy::copyPicture(this, picPath, smpic); } } diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp index 188dd87..847d072 100755 --- a/ProfileInterface.cpp +++ b/ProfileInterface.cpp @@ -227,9 +227,9 @@ void ProfileInterface::dialogNextPictureRequested(QWidget *dialog) { QString newWidgetKey = pictureKeyList.at(picIndex); SnapmaticWidget *picWidget = (SnapmaticWidget*)widgets.key(newWidgetKey); - picDialog->setMaximumSize(picDialog->width(), QWIDGETSIZE_MAX); + //picDialog->setMaximumHeight(QWIDGETSIZE_MAX); picDialog->setSnapmaticPicture(picWidget->getPicture(), picIndex); - //picDialog->adaptNewDialogSize(); + //picDialog->setMaximumHeight(picDialog->height()); } } } @@ -262,8 +262,9 @@ void ProfileInterface::dialogPreviousPictureRequested(QWidget *dialog) picIndex--; QString newWidgetKey = pictureKeyList.at(picIndex ); SnapmaticWidget *picWidget = (SnapmaticWidget*)widgets.key(newWidgetKey); + //picDialog->setMaximumHeight(QWIDGETSIZE_MAX); picDialog->setSnapmaticPicture(picWidget->getPicture(), picIndex); - //picDialog->adaptNewDialogSize(); + //picDialog->setMaximumHeight(picDialog->height()); } } } @@ -362,7 +363,8 @@ fileDialogPreOpen: fileDialog.setLabelText(QFileDialog::Accept, tr("Import")); QStringList filters; - filters << tr("All profile files (SGTA* PGTA*)"); + filters << tr("All profile files (*.g5e SGTA* PGTA*)"); + filters << tr("GTA V Export (*.g5e)"); filters << tr("Savegames files (SGTA*)"); filters << tr("Snapmatic pictures (PGTA*)"); filters << tr("All files (**)"); @@ -421,7 +423,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool warn) QString selectedFileName = QFileInfo(selectedFile).fileName(); if (QFile::exists(selectedFile)) { - if (selectedFileName.left(4) == "PGTA") + if (selectedFileName.left(4) == "PGTA" || selectedFileName.right(4) == ".g5e") { SnapmaticPicture *picture = new SnapmaticPicture(selectedFile); if (picture->readingPicture()) @@ -493,6 +495,10 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString QFileInfo picFileInfo(picPath); QString picFileName = picFileInfo.fileName(); QString adjustedFileName = picFileName; + if (adjustedFileName.right(4) == ".g5e") + { + adjustedFileName = picture->getPictureFileName(); + } if (adjustedFileName.right(7) == ".hidden") // for the hidden file system { adjustedFileName.remove(adjustedFileName.length() - 7, 7); @@ -501,9 +507,9 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString { adjustedFileName.remove(adjustedFileName.length() - 4, 4); } - if (picFileName.left(4) != "PGTA") + if (picFileName.left(4) != "PGTA" && picFileName.right(4) != ".g5e") { - if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, file not begin with 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")) @@ -511,7 +517,7 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString 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 (QFile::copy(picPath, profileFolder + QDir::separator() + adjustedFileName)) + else if (picture->exportPicture(profileFolder + QDir::separator() + adjustedFileName, false)) { picture->setPicFileName(profileFolder + QDir::separator() + adjustedFileName); pictureLoaded_f(picture, profileFolder + QDir::separator() + adjustedFileName, true); diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index 2109d48..98c044c 100755 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -85,9 +86,72 @@ bool SnapmaticPicture::readingPicture(bool writeEnabled_, bool cacheEnabled_) delete picFile; return false; } - rawPicContent = picFile->read(snapmaticFileMaxSize); - picFile->close(); - delete picFile; + + if (picFileName.right(4) != ".g5e") + { + rawPicContent = picFile->read(snapmaticFileMaxSize); + picFile->close(); + delete picFile; + } + else + { + QByteArray g5eContent = picFile->read(snapmaticFileMaxSize + 1024); + picFile->close(); + delete picFile; + + // Reading g5e Content + g5eContent.remove(0, 1); + if (g5eContent.left(3) == "G5E") + { + g5eContent.remove(0, 3); + if (g5eContent.left(2).toHex() == "1000") + { + g5eContent.remove(0, 2); + if (g5eContent.left(3) == "LEN") + { + g5eContent.remove(0, 3); + int fileNameLength = g5eContent.left(1).toHex().toInt(); + g5eContent.remove(0, 1); + if (g5eContent.left(3) == "FIL") + { + g5eContent.remove(0, 3); + picFileName = g5eContent.left(fileNameLength); + g5eContent.remove(0, fileNameLength); + if (g5eContent.left(3) == "COM") + { + g5eContent.remove(0, 3); + rawPicContent = qUncompress(g5eContent); + } + else + { + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",4,G5E_FORMATERROR"; + return false; + } + } + else + { + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",3,G5E_FORMATERROR"; + return false; + } + } + else + { + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",2,G5E_FORMATERROR"; + return false; + } + } + else + { + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",1,G5E_NOTCOMPATIBLE"; + return false; + } + } + else + { + lastStep = "2;/3,ReadingFile," + StringParser::convertDrawStringForLog(picFileName) + ",1,G5E_FORMATERROR"; + return false; + } + } picStream = new QBuffer(&rawPicContent); picStream->open(QIODevice::ReadWrite); @@ -270,7 +334,7 @@ void SnapmaticPicture::parseSnapmaticExportAndSortString() cmpPicTitl.replace("?", ""); cmpPicTitl.replace(".", ""); sortStr = yearStr + monthStr + dayStr + timeStr; - picExportFileName = sortStr + "_" + cmpPicTitl + ".jpg"; + picExportFileName = sortStr + "_" + cmpPicTitl; } } } @@ -342,14 +406,44 @@ bool SnapmaticPicture::setPicture(const QImage &picture) return false; } -bool SnapmaticPicture::exportPicture(const QString &fileName) +bool SnapmaticPicture::exportPicture(const QString &fileName, bool customFormat) { QFile *picFile = new QFile(fileName); if (picFile->open(QIODevice::WriteOnly)) { - picFile->write(rawPicContent); - picFile->close(); - picFile->deleteLater(); + if (!customFormat) + { + // Classic straight export + picFile->write(rawPicContent); + picFile->close(); + picFile->deleteLater(); + } + else + { + // Modern compressed export + QString stockFileName = QFileInfo(picFileName).fileName(); + QByteArray stockFileNameUTF8 = stockFileName.toUtf8(); + QByteArray numberLength = QByteArray::number(stockFileNameUTF8.length()); + if (numberLength.length() == 1) + { + numberLength.insert(0, "0"); + } + else if (numberLength.length() != 2) + { + numberLength == "00"; + } + picFile->write(QByteArray::fromHex("00")); // First Null Byte + picFile->write("G5E"); // GTA 5 Export + picFile->write(QByteArray::fromHex("1000")); // 2 byte GTA 5 Export Version + picFile->write("LEN"); // Before Length + picFile->write(QByteArray::fromHex(numberLength)); // Length in HEX before Compressed + picFile->write("FIL"); // Before File Name + picFile->write(stockFileNameUTF8); // File Name + picFile->write("COM"); // Before Compressed + picFile->write(qCompress(rawPicContent, 9)); // Compressed Snapmatic + picFile->close(); + picFile->deleteLater(); + } return true; } else diff --git a/SnapmaticPicture.h b/SnapmaticPicture.h index cc1b215..33785c9 100755 --- a/SnapmaticPicture.h +++ b/SnapmaticPicture.h @@ -65,7 +65,7 @@ public: QString getExportPictureFileName(); QDateTime getCreatedDateTime(); bool setPicture(const QImage &picture); - bool exportPicture(const QString &fileName); + bool exportPicture(const QString &fileName, bool customFormat = false); void setPicFileName(QString picFileName_); // JSON diff --git a/SnapmaticWidget.cpp b/SnapmaticWidget.cpp index 560881a..4f5060a 100755 --- a/SnapmaticWidget.cpp +++ b/SnapmaticWidget.cpp @@ -133,7 +133,7 @@ void SnapmaticWidget::on_cmdView_clicked() void SnapmaticWidget::on_cmdCopy_clicked() { - PictureCopy::copyPicture(this, picPath); + PictureCopy::copyPicture(this, picPath, smpic); } void SnapmaticWidget::on_cmdExport_clicked() diff --git a/UserInterface.cpp b/UserInterface.cpp index 678fc0b..647f3ac 100755 --- a/UserInterface.cpp +++ b/UserInterface.cpp @@ -306,7 +306,8 @@ fileDialogPreOpen: fileDialog.setWindowTitle(tr("Open File...")); QStringList filters; - filters << ProfileInterface::tr("All profile files (SGTA* PGTA*)"); + filters << ProfileInterface::tr("All profile files (*.g5e SGTA* PGTA*)"); + filters << ProfileInterface::tr("GTA V Export (*.g5e)"); filters << ProfileInterface::tr("Savegames files (SGTA*)"); filters << ProfileInterface::tr("Snapmatic pictures (PGTA*)"); filters << ProfileInterface::tr("All files (**)"); @@ -338,7 +339,7 @@ bool UserInterface::openFile(QString selectedFile, bool warn) QString selectedFileName = QFileInfo(selectedFile).fileName(); if (QFile::exists(selectedFile)) { - if (selectedFileName.left(4) == "PGTA") + if (selectedFileName.left(4) == "PGTA" || selectedFileName.right(4) == ".g5e") { SnapmaticPicture *picture = new SnapmaticPicture(selectedFile); if (picture->readingPicture()) diff --git a/config.h b/config.h index 18e4092..e8e7b12 100755 --- a/config.h +++ b/config.h @@ -50,7 +50,7 @@ #ifndef GTA5SYNC_APPVER #ifndef GTA5SYNC_DAILYB -#define GTA5SYNC_APPVER "1.2.0dev" +#define GTA5SYNC_APPVER "1.0.0" #else #define GTA5SYNC_APPVER QString("%1").arg(GTA5SYNC_DAILYB) #endif diff --git a/main.cpp b/main.cpp index e58c35b..ae44fb5 100755 --- a/main.cpp +++ b/main.cpp @@ -402,8 +402,9 @@ int main(int argc, char *argv[]) { QString argumentFileName = argumentFileInfo.fileName(); QString argumentFileType = argumentFileName.left(4); + QString argumentFileExt = argumentFileName.right(4); - if (argumentFileType == "PGTA") + if (argumentFileType == "PGTA" || argumentFileExt == ".g5e") { arg1 = currentArg; selectedAction = "showpic"; diff --git a/res/gta5sync_de.qm b/res/gta5sync_de.qm index 9e85a0e..485658e 100755 Binary files a/res/gta5sync_de.qm and b/res/gta5sync_de.qm differ diff --git a/res/gta5sync_de.ts b/res/gta5sync_de.ts index c1ff875..12eb105 100755 --- a/res/gta5sync_de.ts +++ b/res/gta5sync_de.ts @@ -531,7 +531,7 @@ Grand Theft Auto V Snapmatic Bilder und Spielständen Exportiere als &GTA Snapmatic... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -540,19 +540,19 @@ Taste 2 - Overlay umschalten Pfeiltasten - Navigieren - - + + Snapmatic Picture Viewer Snapmatic Bildansicht - - + + Failed at %1 Fehlgeschlagen bei %1 - + Avatar Preview Mode Press 1 for Default View Avatar Vorschaumodus @@ -589,19 +589,19 @@ Drücke A für Standardansicht Avatar Vorschaumodus<br>Drücke A für Standardansicht + - No player Keine Spieler - - + + No crew Keine Crew - + Unknown Location Unbekannter Standort @@ -633,30 +633,43 @@ Drücke A für Standardansicht Exportiere als JPG Bild - + Overwrite %1 with current Snapmatic picture? Überschreibe %1 mit aktuellen Snapmatic Bild? - - - - + + + + + + Export as GTA Snapmatic Exportiere als GTA Snapmatic - + Failed to overwrite %1 with current Snapmatic picture Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild + + Failed to export current Snapmatic picture Fehlgeschlagen beim Exportieren vom aktuellen Snapmatic Bild + + + Exported Snapmatic to "%1" because of using the .auto extension. + Snapmatic wurde wegen Benutzung der .auto Erweiterung zu "%1" exportiert. + + + Exported Snapmatic to "%1" because of using the .auto extension + Snapmatic wurde wegen Benutzung der .auto Erweiterung zu "%1" exportiert + Copy picture Bild kopieren @@ -672,18 +685,26 @@ Drücke A für Standardansicht + GTA V Export (*.g5e) + GTA V Export (*.g5e) + + + + GTA V Raw Export (*.auto) + GTA V Roher Export (*.auto) + + + Snapmatic pictures (PGTA*) Snapmatic Bilder (PGTA*) - All files (**) - Alle Dateien (**) + Alle Dateien (**) - Failed to copy current Snapmatic picture - Fehlgeschlagen beim Kopieren vom Snapmatic Bild + Fehlgeschlagen beim Kopieren vom Snapmatic Bild Failed to save current picture @@ -707,7 +728,7 @@ 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 @@ -779,46 +800,44 @@ Drücke A für Standardansicht - - - - - - - - - - - + + + + + + + + + + + Import Importieren - - All profile files (SGTA* PGTA*) - Alle Profildateien (SGTA* PGTA*) - - - - - Savegames files (SGTA*) - Spielstanddateien (SGTA*) + Alle Profildateien (SGTA* PGTA*) - Snapmatic pictures (PGTA*) - Snapmatic Bilder (PGTA*) + Savegames files (SGTA*) + Spielstanddateien (SGTA*) + Snapmatic pictures (PGTA*) + Snapmatic Bilder (PGTA*) + + + + All files (**) Alle Dateien (**) - + Import failed with... %1 @@ -827,36 +846,41 @@ 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 of not valid file format 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 @@ -866,40 +890,39 @@ Drücke A für Standardansicht Aktivierte Bilder: %1 von %2 - Failed to import the Snapmatic picture, file not begin with PGTA - Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA + 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 @@ -918,25 +941,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 @@ -957,10 +980,10 @@ Exportieren als: Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist - - - - + + + + Export selected Auswahl exportieren @@ -981,12 +1004,12 @@ Exportieren als: Wie sollen wir mit den Snapmatic Bilder umgehen? - + Export selected... Auswahl exportieren... - + Initializing export... Initialisiere Export... @@ -995,7 +1018,7 @@ Exportieren als: Initialisierung... - + Export failed with... %1 @@ -1024,6 +1047,18 @@ Exportieren als: Export file %1 of %2 files Exportiere Datei %1 von %2 Dateien + + + + All profile files (*.g5e SGTA* PGTA*) + Alle Profildateien (*.g5e SGTA* PGTA*) + + + + + GTA V Export (*.g5e) + GTA V Export (*.g5e) + QApplication @@ -1867,7 +1902,7 @@ Exportieren als: - + Select GTA V Folder... Wähle GTA V Ordner... @@ -1897,15 +1932,15 @@ Exportieren als: &Über %1 - - - - + + + + Open File Datei öffnen - + Can't open %1 because of not valid file format Kann nicht %1 öffnen weil Dateiformat nicht gültig ist diff --git a/res/gta5sync_fr.ts b/res/gta5sync_fr.ts index aa9099e..35373df 100644 --- a/res/gta5sync_fr.ts +++ b/res/gta5sync_fr.ts @@ -394,41 +394,56 @@ et les fichiers de sauvegarde de Grand Theft Auto V + GTA V Export (*.g5e) + + + + + GTA V Raw Export (*.auto) + + + + Snapmatic pictures (PGTA*) Fichiers GTA Snapmatic (PGTA*) - - All files (**) - Tous les fichiers (**) + + Exported Snapmatic to "%1" because of using the .auto extension. + - - - - + All files (**) + Tous les fichiers (**) + + + + + + + + Export as GTA Snapmatic Exporter comme GTA Snapmatic - + Overwrite %1 with current Snapmatic picture? %1 existe déjà. Vous-vous le remplacer ? - + Failed to overwrite %1 with current Snapmatic picture Echec du remplacement de %1 - Failed to copy current Snapmatic picture - Echec de la copie + Echec de la copie - + No valid file is selected Fichier invalide @@ -444,26 +459,26 @@ et les fichiers de sauvegarde de Grand Theft Auto V Exporter comme &GTA Snapmatic... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate - - + + Snapmatic Picture Viewer Visionneuse de photo Snapmatic - - + + Failed at %1 Echec de %1 - + Avatar Preview Mode Press 1 for Default View @@ -473,19 +488,19 @@ Press 1 for Default View Aperçu avatar<br>Appuyer sur A pour la vue par défaut + - No player Aucun joueur - - + + No crew Aucun crew - + Unknown Location Emplacement inconnu @@ -518,6 +533,8 @@ Press 1 for Default View Exporter comme image JPG + + Failed to export current Snapmatic picture Échec de l'export de la photo Snapmatic @@ -584,46 +601,44 @@ Press 1 for Default View - - - - - - - - - - - + + + + + + + + + + + Import Importer - - All profile files (SGTA* PGTA*) - Fichiers de profil GTA (SGTA* PGTA*) - - - - - Savegames files (SGTA*) - Fichiers de sauvegarde GTA (SGTA*) + Fichiers de profil GTA (SGTA* PGTA*) - Snapmatic pictures (PGTA*) - Photos Snapmatic (PGTA*) + Savegames files (SGTA*) + Fichiers de sauvegarde GTA (SGTA*) + Snapmatic pictures (PGTA*) + Photos Snapmatic (PGTA*) + + + + All files (**) Tous les fichiers (**) - + Import failed with... %1 @@ -632,97 +647,101 @@ Press 1 for Default View %1 - - - + + + No valid file is selected Fichier invalide - - + + Failed to read Snapmatic picture Impossible d'ouvrir la photo Snapmatic - - + + Failed to read Savegame file Impossible de lire le fichier de sauvegarde - + Can't import %1 because of not valid file format Impossible d'importer %1, format invalide - Failed to import the Snapmatic picture, file not begin with PGTA - Impossible d'importer la photo Snapmatic,nom de fichier incorrect (PGTA*) + Impossible d'importer la photo Snapmatic,nom de fichier incorrect (PGTA*) - + + 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 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... - + Initializing export... Initialisation de l'export... - + Export failed with... %1 @@ -731,28 +750,40 @@ Press 1 for Default View %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 + + + + All profile files (*.g5e SGTA* PGTA*) + + + + + + GTA V Export (*.g5e) + + QApplication @@ -1331,7 +1362,7 @@ Press 1 for Default View - + Select GTA V Folder... Modifier l'emplacement de GTA V... @@ -1389,15 +1420,15 @@ Press 1 for Default View Ouvrir... - - - - + + + + Open File Ouvrir - + Can't open %1 because of not valid file format Impossible d'ouvrir %1, format invalide