diff --git a/JsonEditorDialog.cpp b/JsonEditorDialog.cpp index a6a564f..f1e4f99 100644 --- a/JsonEditorDialog.cpp +++ b/JsonEditorDialog.cpp @@ -70,9 +70,18 @@ JsonEditorDialog::JsonEditorDialog(SnapmaticPicture *picture, QWidget *parent) : #if QT_VERSION >= 0x050200 ui->txtJSON->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont)); +#else + QFont jsonFont = ui->txtJSON->font(); + jsonFont.setStyleHint(QFont::Monospace); + jsonFont.setFixedPitch(true); + ui->txtJSON->setFont(jsonFont); #endif QFontMetrics fontMetrics(ui->txtJSON->font()); +#if QT_VERSION >= 0x050B00 + ui->txtJSON->setTabStopDistance(fontMetrics.horizontalAdvance(" ")); +#else ui->txtJSON->setTabStopWidth(fontMetrics.width(" ")); +#endif QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonCode.toUtf8()); ui->txtJSON->setStyleSheet("QPlainTextEdit{background-color: rgb(46, 47, 48); color: rgb(238, 231, 172);}"); diff --git a/MapLocationDialog.cpp b/MapLocationDialog.cpp index 7c1b7ba..730818b 100644 --- a/MapLocationDialog.cpp +++ b/MapLocationDialog.cpp @@ -60,40 +60,10 @@ MapLocationDialog::~MapLocationDialog() void MapLocationDialog::drawPointOnMap(double xpos_d, double ypos_d) { - qreal screenRatio = AppEnv::screenRatio(); - qreal screenRatioPR = AppEnv::screenRatioPR(); - int pointMakerSize = 8 * screenRatio * screenRatioPR; - QPixmap pointMakerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMakerSize, pointMakerSize)); - QSize mapPixelSize = QSize(width() * screenRatioPR, height() * screenRatioPR); - - int pointMakerHalfSize = pointMakerSize / 2; - long xpos_ms = qRound(xpos_d); - long ypos_ms = qRound(ypos_d); - double xpos_ma = xpos_ms + 4000; - double ypos_ma = ypos_ms + 4000; - double xrat = (double)mapPixelSize.width() / 10000; - double yrat = (double)mapPixelSize.height() / 12000; - long xpos_mp = qRound(xpos_ma * xrat); - long ypos_mp = qRound(ypos_ma * yrat); - long xpos_pr = xpos_mp - pointMakerHalfSize; - long ypos_pr = ypos_mp + pointMakerHalfSize; - - QPixmap mapPixmap(mapPixelSize); - QPainter mapPainter(&mapPixmap); - mapPainter.drawPixmap(0, 0, mapPixelSize.width(), mapPixelSize.height(), QPixmap(":/img/mappreview.jpg").scaled(mapPixelSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - mapPainter.drawPixmap(xpos_pr, mapPixelSize.height() - ypos_pr, pointMakerSize, pointMakerSize, pointMakerPixmap); - mapPainter.end(); -#if QT_VERSION >= 0x050600 - mapPixmap.setDevicePixelRatio(screenRatioPR); -#endif - - QPalette backgroundPalette; - backgroundPalette.setBrush(backgroundRole(), QBrush(mapPixmap)); - setPalette(backgroundPalette); - + ui->labPos->setText(tr("X: %1\nY: %2", "X and Y position").arg(QString::number(xpos_d), QString::number(ypos_d))); xpos_new = xpos_d; ypos_new = ypos_d; - ui->labPos->setText(tr("X: %1\nY: %2", "X and Y position").arg(QString::number(xpos_d), QString::number(ypos_d))); + repaint(); } void MapLocationDialog::on_cmdChange_clicked() @@ -139,6 +109,48 @@ void MapLocationDialog::updatePosFromEvent(int x, int y) drawPointOnMap(xpos_fp, ypos_fp); } +void MapLocationDialog::paintEvent(QPaintEvent *ev) +{ + QPainter painter(this); + qreal screenRatio = AppEnv::screenRatio(); + qreal screenRatioPR = AppEnv::screenRatioPR(); + + // Paint Map + QSize mapPixelSize = QSize(width() * screenRatioPR, height() * screenRatioPR); + painter.drawPixmap(0, 0, width(), height(), QPixmap(":/img/mappreview.jpg").scaled(mapPixelSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + + // Paint Marker + int pointMarkerSize = 8 * screenRatio; + int pointMarkerHalfSize = pointMarkerSize / 2; + long xpos_ms = qRound(xpos_new); + long ypos_ms = qRound(ypos_new); + double xpos_ma = xpos_ms + 4000; + double ypos_ma = ypos_ms + 4000; + double xrat = (double)width() / 10000; + double yrat = (double)height() / 12000; + long xpos_mp = qRound(xpos_ma * xrat); + long ypos_mp = qRound(ypos_ma * yrat); + long xpos_pr; + long ypos_pr; + if (screenRatioPR != 1) { +#ifdef GTA5SYNC_WIN + xpos_pr = xpos_mp - pointMarkerHalfSize; + ypos_pr = ypos_mp + pointMarkerHalfSize; +#else + xpos_pr = xpos_mp - pointMarkerHalfSize + screenRatioPR; + ypos_pr = ypos_mp + pointMarkerHalfSize - screenRatioPR; +#endif + } + else { + xpos_pr = xpos_mp - pointMarkerHalfSize; + ypos_pr = ypos_mp + pointMarkerHalfSize; + } + QPixmap mapMarkerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMarkerSize, pointMarkerSize)); + painter.drawPixmap(xpos_pr, height() - ypos_pr, pointMarkerSize, pointMarkerSize, mapMarkerPixmap); + + QDialog::paintEvent(ev); +} + void MapLocationDialog::mouseMoveEvent(QMouseEvent *ev) { if (!changeMode) { ev->ignore(); } diff --git a/MapLocationDialog.h b/MapLocationDialog.h index f499601..46d91fe 100644 --- a/MapLocationDialog.h +++ b/MapLocationDialog.h @@ -39,6 +39,7 @@ public: ~MapLocationDialog(); protected: + void paintEvent(QPaintEvent *ev); void mouseMoveEvent(QMouseEvent *ev); void mouseReleaseEvent(QMouseEvent *ev); diff --git a/MapLocationDialog.ui b/MapLocationDialog.ui index cd46742..06da9ed 100644 --- a/MapLocationDialog.ui +++ b/MapLocationDialog.ui @@ -25,6 +25,11 @@ Snapmatic Map Viewer + + QDialog#MapLocationDialog { + background-color: transparent; +} + 0 diff --git a/OptionsDialog.cpp b/OptionsDialog.cpp index fd1fdac..951566f 100644 --- a/OptionsDialog.cpp +++ b/OptionsDialog.cpp @@ -136,24 +136,33 @@ OptionsDialog::~OptionsDialog() void OptionsDialog::setupTreeWidget() { - for (QString playerIDStr : profileDB->getPlayers()) - { - bool ok; - int playerID = playerIDStr.toInt(&ok); - if (ok) + const QStringList players = profileDB->getPlayers(); + if (players.length() != 0) { + QStringList::const_iterator it = players.constBegin(); + QStringList::const_iterator end = players.constEnd(); + while (it != end) { - QString playerName = profileDB->getPlayerName(playerID); + bool ok; + int playerID = it->toInt(&ok); + if (ok) + { + QString playerName = profileDB->getPlayerName(playerID); - QStringList playerTreeViewList; - playerTreeViewList += playerIDStr; - playerTreeViewList += playerName; + QStringList playerTreeViewList; + playerTreeViewList += *it; + playerTreeViewList += playerName; - QTreeWidgetItem *playerItem = new QTreeWidgetItem(playerTreeViewList); - ui->twPlayers->addTopLevelItem(playerItem); - playerItems += playerItem; + QTreeWidgetItem *playerItem = new QTreeWidgetItem(playerTreeViewList); + ui->twPlayers->addTopLevelItem(playerItem); + playerItems += playerItem; + } + it++; } + ui->twPlayers->sortItems(1, Qt::AscendingOrder); + } + else { + ui->tabWidget->removeTab(ui->tabWidget->indexOf(ui->tabPlayers)); } - ui->twPlayers->sortItems(1, Qt::AscendingOrder); } void OptionsDialog::setupLanguageBox() @@ -362,6 +371,8 @@ void OptionsDialog::applySettings() #if QT_VERSION >= 0x050200 settings->setValue("NavigationBar", ui->cbSnapmaticNavigationBar->isChecked()); #endif +#else + settings->setValue("NavigationBar", ui->cbSnapmaticNavigationBar->isChecked()); #endif settings->endGroup(); @@ -722,8 +733,9 @@ void OptionsDialog::setupSnapmaticPictureViewer() ui->gbSnapmaticPictureViewer->setVisible(false); #endif #else - ui->cbSnapmaticNavigationBar->setVisible(false); - ui->gbSnapmaticPictureViewer->setVisible(false); + settings->beginGroup("Interface"); + ui->cbSnapmaticNavigationBar->setChecked(settings->value("NavigationBar", true).toBool()); + settings->endGroup(); #endif } diff --git a/PictureDialog.cpp b/PictureDialog.cpp index c6225ac..bddb82c 100644 --- a/PictureDialog.cpp +++ b/PictureDialog.cpp @@ -135,12 +135,15 @@ void PictureDialog::setupPictureDialog() smpic = nullptr; crewStr = ""; + // Get Snapmatic Resolution + QSize snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); + // Avatar area qreal screenRatio = AppEnv::screenRatio(); qreal screenRatioPR = AppEnv::screenRatioPR(); if (screenRatio != 1 || screenRatioPR != 1) { - avatarAreaPicture = QImage(":/img/avatararea.png").scaledToHeight(536 * screenRatio * screenRatioPR, Qt::FastTransformation); + avatarAreaPicture = QImage(":/img/avatararea.png").scaledToHeight(snapmaticResolution.height() * screenRatio * screenRatioPR, Qt::FastTransformation); } else { @@ -151,7 +154,7 @@ void PictureDialog::setupPictureDialog() avatarSize = 470; // DPI calculation (picture) - ui->labPicture->setFixedSize(960 * screenRatio, 536 * screenRatio); + ui->labPicture->setFixedSize(snapmaticResolution.width() * screenRatio, snapmaticResolution.height() * screenRatio); ui->labPicture->setFocusPolicy(Qt::StrongFocus); ui->labPicture->setScaledContents(true); @@ -199,8 +202,8 @@ void PictureDialog::setupPictureDialog() ui->jsonLayout->setContentsMargins(4 * screenRatio, 10 * screenRatio, 4 * screenRatio, 4 * screenRatio); // Pre-adapt window for DPI - setFixedWidth(960 * screenRatio); - setFixedHeight(536 * screenRatio); + setFixedWidth(snapmaticResolution.width() * screenRatio); + setFixedHeight(snapmaticResolution.height() * screenRatio); } PictureDialog::~PictureDialog() @@ -216,6 +219,15 @@ PictureDialog::~PictureDialog() delete layout()->menuBar(); } #endif +#else + if (naviEnabled) + { + for (QObject *obj : layout()->menuBar()->children()) + { + delete obj; + } + delete layout()->menuBar(); + } #endif for (QObject *obj : manageMenu->children()) { @@ -236,18 +248,31 @@ void PictureDialog::closeEvent(QCloseEvent *ev) void PictureDialog::addPreviousNextButtons() { - // Windows Vista additions #ifdef GTA5SYNC_WIN #if QT_VERSION >= 0x050200 QToolBar *uiToolbar = new QToolBar("Picture Toolbar", this); uiToolbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - uiToolbar->setObjectName("uiToolbar"); + uiToolbar->setObjectName("UiToolbar"); uiToolbar->addAction(QIcon(":/img/back.svgz"), "", this, SLOT(previousPictureRequestedSlot())); uiToolbar->addAction(QIcon(":/img/next.svgz"), "", this, SLOT(nextPictureRequestedSlot())); layout()->setMenuBar(uiToolbar); - naviEnabled = true; #endif +#else + QToolBar *uiToolbar = new QToolBar("Picture Toolbar", this); +#if QT_VERSION < 0x050600 + qreal screenRatio = AppEnv::screenRatio(); + if (screenRatio != 1) { + QSize iconSize = uiToolbar->iconSize(); + uiToolbar->setIconSize(QSize(iconSize.width() * screenRatio, iconSize.height() * screenRatio)); + } +#endif + uiToolbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + uiToolbar->setObjectName("UiToolbar"); + uiToolbar->addAction(QIcon(":/img/back.svgz"), "", this, SLOT(previousPictureRequestedSlot())); + uiToolbar->addAction(QIcon(":/img/next.svgz"), "", this, SLOT(nextPictureRequestedSlot())); + layout()->setMenuBar(uiToolbar); + naviEnabled = true; #endif } @@ -368,7 +393,11 @@ void PictureDialog::resizeEvent(QResizeEvent *event) void PictureDialog::adaptNewDialogSize(QSize newLabelSize) { Q_UNUSED(newLabelSize) +#if QT_VERSION >= 0x050F00 + int newDialogHeight = SnapmaticPicture::getSnapmaticResolution().height(); +#else int newDialogHeight = (ui->labPicture->pixmap()->height() / AppEnv::screenRatioPR()); +#endif newDialogHeight = newDialogHeight + ui->jsonFrame->height(); if (naviEnabled) newDialogHeight = newDialogHeight + layout()->menuBar()->height(); setMaximumSize(width(), newDialogHeight); @@ -686,10 +715,11 @@ void PictureDialog::renderPicture() { if (overlayEnabled) { - QPixmap shownImagePixmap(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR); + QSize snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); + QPixmap shownImagePixmap(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR); shownImagePixmap.fill(Qt::transparent); QPainter shownImagePainter(&shownImagePixmap); - shownImagePainter.drawImage(0, 0, snapmaticPicture.scaled(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + shownImagePainter.drawImage(0, 0, snapmaticPicture.scaled(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); shownImagePainter.drawImage(3 * screenRatio * screenRatioPR, 3 * screenRatio * screenRatioPR, overlayTempImage); shownImagePainter.end(); #if QT_VERSION >= 0x050600 @@ -699,10 +729,11 @@ void PictureDialog::renderPicture() } else { - QPixmap shownImagePixmap(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR); + QSize snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); + QPixmap shownImagePixmap(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR); shownImagePixmap.fill(Qt::transparent); QPainter shownImagePainter(&shownImagePixmap); - shownImagePainter.drawImage(0, 0, snapmaticPicture.scaled(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + shownImagePainter.drawImage(0, 0, snapmaticPicture.scaled(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); shownImagePainter.end(); #if QT_VERSION >= 0x050600 shownImagePixmap.setDevicePixelRatio(screenRatioPR); @@ -713,15 +744,16 @@ void PictureDialog::renderPicture() else { // Generating Avatar Preview - QPixmap avatarPixmap(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR); + QSize snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); + QPixmap avatarPixmap(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR); QPainter snapPainter(&avatarPixmap); QFont snapPainterFont; snapPainterFont.setPixelSize(12 * screenRatio * screenRatioPR); - snapPainter.drawImage(0, 0, snapmaticPicture.scaled(960 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + snapPainter.drawImage(0, 0, snapmaticPicture.scaled(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); snapPainter.drawImage(0, 0, avatarAreaPicture); snapPainter.setPen(QColor::fromRgb(255, 255, 255, 255)); snapPainter.setFont(snapPainterFont); - snapPainter.drawText(QRect(3 * screenRatio * screenRatioPR, 3 * screenRatio * screenRatioPR, 140 * screenRatio * screenRatioPR, 536 * screenRatio * screenRatioPR), Qt::AlignLeft | Qt::TextWordWrap, tr("Avatar Preview Mode\nPress 1 for Default View")); + snapPainter.drawText(QRect(3 * screenRatio * screenRatioPR, 3 * screenRatio * screenRatioPR, 140 * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR), Qt::AlignLeft | Qt::TextWordWrap, tr("Avatar Preview Mode\nPress 1 for Default View")); snapPainter.end(); #if QT_VERSION >= 0x050600 avatarPixmap.setDevicePixelRatio(screenRatioPR); diff --git a/PlayerListDialog.cpp b/PlayerListDialog.cpp index 2f7c758..3656d24 100644 --- a/PlayerListDialog.cpp +++ b/PlayerListDialog.cpp @@ -73,12 +73,32 @@ PlayerListDialog::PlayerListDialog(QStringList players, ProfileDatabase *profile // Set Icon for Manage Buttons if (QIcon::hasThemeIcon("go-previous") && QIcon::hasThemeIcon("go-next") && QIcon::hasThemeIcon("list-add")) { +#if QT_VERSION < 0x050600 + qreal screenRatio = AppEnv::screenRatio(); + if (screenRatio != 1) { + QSize iconSize = ui->cmdMakeAv->iconSize(); + iconSize = QSize(iconSize.width() * screenRatio, iconSize.height() * screenRatio); + ui->cmdMakeAv->setIconSize(iconSize); + ui->cmdMakeSe->setIconSize(iconSize); + ui->cmdMakeAd->setIconSize(iconSize); + } +#endif ui->cmdMakeAv->setIcon(QIcon::fromTheme("go-previous")); ui->cmdMakeSe->setIcon(QIcon::fromTheme("go-next")); ui->cmdMakeAd->setIcon(QIcon::fromTheme("list-add")); } else { +#if QT_VERSION < 0x050600 + qreal screenRatio = AppEnv::screenRatio(); + if (screenRatio != 1) { + QSize iconSize = ui->cmdMakeAv->iconSize(); + iconSize = QSize(iconSize.width() * screenRatio, iconSize.height() * screenRatio); + ui->cmdMakeAv->setIconSize(iconSize); + ui->cmdMakeSe->setIconSize(iconSize); + ui->cmdMakeAd->setIconSize(iconSize); + } +#endif ui->cmdMakeAv->setIcon(QIcon(":/img/back.svgz")); ui->cmdMakeSe->setIcon(QIcon(":/img/next.svgz")); ui->cmdMakeAd->setIcon(QIcon(":/img/add.svgz")); diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp index 6af7fbd..0049c8b 100644 --- a/ProfileInterface.cpp +++ b/ProfileInterface.cpp @@ -264,7 +264,11 @@ void ProfileInterface::insertSnapmaticIPI(QWidget *widget) QStringList widgetsKeyList = widgets.values(); QStringList pictureKeyList = widgetsKeyList.filter("PIC", Qt::CaseSensitive); #if QT_VERSION >= 0x050600 +#if QT_VERSION >= 0x050F00 + std::sort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#else qSort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#endif #else qSort(pictureKeyList.begin(), pictureKeyList.end(), qGreater()); #endif @@ -284,7 +288,11 @@ void ProfileInterface::insertSavegameIPI(QWidget *widget) QString widgetKey = widgets[proWidget]; QStringList widgetsKeyList = widgets.values(); QStringList savegameKeyList = widgetsKeyList.filter("SGD", Qt::CaseSensitive); +#if QT_VERSION >= 0x050F00 + std::sort(savegameKeyList.begin(), savegameKeyList.end()); +#else qSort(savegameKeyList.begin(), savegameKeyList.end()); +#endif int sgdIndex = savegameKeyList.indexOf(QRegExp(widgetKey)); ui->vlSavegame->insertWidget(sgdIndex, proWidget); @@ -303,7 +311,11 @@ void ProfileInterface::dialogNextPictureRequested(QWidget *dialog) QStringList widgetsKeyList = widgets.values(); QStringList pictureKeyList = widgetsKeyList.filter("PIC", Qt::CaseSensitive); #if QT_VERSION >= 0x050600 +#if QT_VERSION >= 0x050F00 + std::sort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#else qSort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#endif #else qSort(pictureKeyList.begin(), pictureKeyList.end(), qGreater()); #endif @@ -338,7 +350,11 @@ void ProfileInterface::dialogPreviousPictureRequested(QWidget *dialog) QStringList widgetsKeyList = widgets.values(); QStringList pictureKeyList = widgetsKeyList.filter("PIC", Qt::CaseSensitive); #if QT_VERSION >= 0x050600 +#if QT_VERSION >= 0x050F00 + std::sort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#else qSort(pictureKeyList.rbegin(), pictureKeyList.rend()); +#endif #else qSort(pictureKeyList.begin(), pictureKeyList.end(), qGreater()); #endif @@ -369,7 +385,12 @@ void ProfileInterface::sortingProfileInterface() ui->vlSnapmatic->setEnabled(false); QStringList widgetsKeyList = widgets.values(); + +#if QT_VERSION >= 0x050F00 + std::sort(widgetsKeyList.begin(), widgetsKeyList.end()); +#else qSort(widgetsKeyList.begin(), widgetsKeyList.end()); +#endif for (QString widgetKey : widgetsKeyList) { @@ -1627,7 +1648,7 @@ void ProfileInterface::contextMenuTriggeredPIC(QContextMenuEvent *ev) contextMenuOpened = true; contextMenu.exec(ev->globalPos()); contextMenuOpened = false; - hoverProfileWidgetCheck(); + QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); } void ProfileInterface::contextMenuTriggeredSGD(QContextMenuEvent *ev) @@ -1660,7 +1681,7 @@ void ProfileInterface::contextMenuTriggeredSGD(QContextMenuEvent *ev) contextMenuOpened = true; contextMenu.exec(ev->globalPos()); contextMenuOpened = false; - hoverProfileWidgetCheck(); + QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); } void ProfileInterface::on_saProfileContent_dropped(const QMimeData *mimeData) @@ -1781,19 +1802,23 @@ bool ProfileInterface::eventFilter(QObject *watched, QEvent *event) return true; } } - else if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::WindowActivate) + else if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease) { if ((watched->objectName() == "SavegameWidget" || watched->objectName() == "SnapmaticWidget") && isProfileLoaded) { ProfileWidget *pWidget = nullptr; - for (ProfileWidget *widget : widgets.keys()) + QMap::const_iterator it = widgets.constBegin(); + QMap::const_iterator end = widgets.constEnd(); + while (it != end) { + ProfileWidget *widget = it.key(); QPoint mousePos = widget->mapFromGlobal(QCursor::pos()); if (widget->rect().contains(mousePos)) { pWidget = widget; break; } + it++; } if (pWidget != nullptr) { @@ -1827,7 +1852,7 @@ bool ProfileInterface::eventFilter(QObject *watched, QEvent *event) } else if (event->type() == QEvent::WindowDeactivate && isProfileLoaded) { - if (previousWidget != nullptr) + if (previousWidget != nullptr && watched == previousWidget) { previousWidget->setStyleSheet(QLatin1String("")); previousWidget = nullptr; @@ -1863,13 +1888,17 @@ bool ProfileInterface::eventFilter(QObject *watched, QEvent *event) void ProfileInterface::hoverProfileWidgetCheck() { ProfileWidget *pWidget = nullptr; - for (ProfileWidget *widget : widgets.keys()) + QMap::const_iterator it = widgets.constBegin(); + QMap::const_iterator end = widgets.constEnd(); + while (it != end) { + ProfileWidget *widget = it.key(); if (widget->underMouse()) { pWidget = widget; break; } + it++; } if (pWidget != nullptr) { diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index a45ce2a..c10b9c3 100644 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -433,8 +433,8 @@ QString SnapmaticPicture::getSnapmaticHeaderString(const QByteArray &snapmaticHe QString SnapmaticPicture::getSnapmaticJSONString(const QByteArray &jsonBytes) { QByteArray jsonUsefulBytes = jsonBytes; - jsonUsefulBytes.replace('\x00', QString()); - jsonUsefulBytes.replace('\x0c', QString()); + jsonUsefulBytes.replace('\x00', ""); + jsonUsefulBytes.replace('\x0c', ""); return QString::fromUtf8(jsonUsefulBytes.trimmed()); } @@ -1339,7 +1339,8 @@ bool SnapmaticPicture::setPictureVisible() QSize SnapmaticPicture::getSnapmaticResolution() { - return snapmaticResolution; + // keep old UI size for now + return QSize(960, 536); } // SNAPMATIC DEFAULTS diff --git a/SnapmaticPicture.h b/SnapmaticPicture.h index decf070..745c511 100644 --- a/SnapmaticPicture.h +++ b/SnapmaticPicture.h @@ -120,7 +120,7 @@ public: bool setVisible() { return setPictureVisible(); } // Please use setPictureVisible instead // PREDEFINED PROPERTIES - QSize getSnapmaticResolution(); + static QSize getSnapmaticResolution(); // SNAPMATIC DEFAULTS bool isSnapmaticDefaultsEnforced(); diff --git a/anpro/imagecropper.cpp b/anpro/imagecropper.cpp index 7881c85..3d80f71 100644 --- a/anpro/imagecropper.cpp +++ b/anpro/imagecropper.cpp @@ -20,6 +20,7 @@ #include "imagecropper.h" #include "AppEnv.h" +#include #include #include diff --git a/config.h b/config.h index 0971474..71ba2ca 100644 --- a/config.h +++ b/config.h @@ -44,7 +44,7 @@ #endif #ifndef GTA5SYNC_APPVER -#define GTA5SYNC_APPVER "0.2.0" +#define GTA5SYNC_APPVER "0.3.0" #endif #if __cplusplus diff --git a/qjson4/QJsonDocument.cpp b/qjson4/QJsonDocument.cpp index 9d503c3..7f8ad18 100644 --- a/qjson4/QJsonDocument.cpp +++ b/qjson4/QJsonDocument.cpp @@ -39,45 +39,45 @@ QJsonDocument::QJsonDocument() : root_(0) { // Name: QJsonDocument //------------------------------------------------------------------------------ QJsonDocument::QJsonDocument(const QJsonObject &object) : root_(0) { - setObject(object); + setObject(object); } //------------------------------------------------------------------------------ // Name: QJsonDocument //------------------------------------------------------------------------------ QJsonDocument::QJsonDocument(const QJsonArray &array) : root_(0) { - setArray(array); + setArray(array); } //------------------------------------------------------------------------------ // Name: QJsonDocument //------------------------------------------------------------------------------ QJsonDocument::QJsonDocument(const QJsonDocument &other) : root_(0) { - if(other.root_) { - root_ = other.root_->clone(); - } + if(other.root_) { + root_ = other.root_->clone(); + } } //------------------------------------------------------------------------------ // Name: ~QJsonDocument //------------------------------------------------------------------------------ QJsonDocument::~QJsonDocument() { - delete root_; + delete root_; } //------------------------------------------------------------------------------ // Name: operator= //------------------------------------------------------------------------------ QJsonDocument &QJsonDocument::operator=(const QJsonDocument &other) { - QJsonDocument(other).swap(*this); - return *this; + QJsonDocument(other).swap(*this); + return *this; } //------------------------------------------------------------------------------ // Name: operator!= //------------------------------------------------------------------------------ bool QJsonDocument::operator!=(const QJsonDocument &other) const { - return !(*this == other); + return !(*this == other); } //------------------------------------------------------------------------------ @@ -85,30 +85,30 @@ bool QJsonDocument::operator!=(const QJsonDocument &other) const { //------------------------------------------------------------------------------ bool QJsonDocument::operator==(const QJsonDocument &other) const { - if(isArray() && other.isArray()) { - return array() == other.array(); - } + if(isArray() && other.isArray()) { + return array() == other.array(); + } - if(isObject() && other.isObject()) { - return object() == other.object(); - } + if(isObject() && other.isObject()) { + return object() == other.object(); + } - if(isEmpty() && other.isEmpty()) { - return true; - } + if(isEmpty() && other.isEmpty()) { + return true; + } - if(isNull() && other.isNull()) { - return true; - } + if(isNull() && other.isNull()) { + return true; + } - return false; + return false; } //------------------------------------------------------------------------------ // Name: isArray //------------------------------------------------------------------------------ bool QJsonDocument::isArray() const { - return root_ && root_->toArray(); + return root_ && root_->toArray(); } //------------------------------------------------------------------------------ @@ -116,56 +116,56 @@ bool QJsonDocument::isArray() const { //------------------------------------------------------------------------------ bool QJsonDocument::isEmpty() const { - // TODO(eteran): figure out the rules here that Qt5 uses - // it *looks* like they define empty as being NULL - // which is obviously different than this + // TODO(eteran): figure out the rules here that Qt5 uses + // it *looks* like they define empty as being NULL + // which is obviously different than this - return !root_; + return !root_; } //------------------------------------------------------------------------------ // Name: isNull //------------------------------------------------------------------------------ bool QJsonDocument::isNull() const { - return !root_; + return !root_; } //------------------------------------------------------------------------------ // Name: isObject //------------------------------------------------------------------------------ bool QJsonDocument::isObject() const { - return root_ && root_->toObject(); + return root_ && root_->toObject(); } //------------------------------------------------------------------------------ // Name: setArray //------------------------------------------------------------------------------ void QJsonDocument::setArray(const QJsonArray &array) { - setRoot(array); + setRoot(array); } //------------------------------------------------------------------------------ // Name: setObject //------------------------------------------------------------------------------ void QJsonDocument::setObject(const QJsonObject &object) { - setRoot(object); + setRoot(object); } //------------------------------------------------------------------------------ // Name: setRoot //------------------------------------------------------------------------------ void QJsonDocument::setRoot(const QJsonRoot &root) { - delete root_; - root_ = root.clone(); + delete root_; + root_ = root.clone(); } //------------------------------------------------------------------------------ // Name: toBinaryData //------------------------------------------------------------------------------ QByteArray QJsonDocument::toBinaryData() const { - QByteArray r; - // TODO(eteran): implement this - return r; + QByteArray r; + // TODO(eteran): implement this + return r; } //------------------------------------------------------------------------------ @@ -173,100 +173,107 @@ QByteArray QJsonDocument::toBinaryData() const { //------------------------------------------------------------------------------ QString QJsonDocument::escapeString(const QString &s) const { - QString r; + QString r; - Q_FOREACH(QChar ch, s) { - switch(ch.toLatin1()) { - case '\"': r.append("\\\""); break; - case '\\': r.append("\\\\"); break; - #if 0 - case '/': r.append("\\/"); break; - #endif - case '\b': r.append("\\b"); break; - case '\f': r.append("\\f"); break; - case '\n': r.append("\\n"); break; - case '\r': r.append("\\r"); break; - case '\t': r.append("\\t"); break; - default: - r += ch; - break; - } - } + Q_FOREACH(QChar ch, s) { + switch(ch.toLatin1()) { + case '\"': r.append("\\\""); break; + case '\\': r.append("\\\\"); break; +#if 0 + case '/': r.append("\\/"); break; +#endif + case '\b': r.append("\\b"); break; + case '\f': r.append("\\f"); break; + case '\n': r.append("\\n"); break; + case '\r': r.append("\\r"); break; + case '\t': r.append("\\t"); break; + default: + r += ch; + break; + } + } - return r; + return r; } //------------------------------------------------------------------------------ // Name: toJson //------------------------------------------------------------------------------ -QString QJsonDocument::toJson(const QJsonValue &v, JsonFormat format) const { +QString QJsonDocument::toJson(const QJsonValue &v, JsonFormat format, int indent) const { - QString b; - QTextStream ss(&b, QIODevice::WriteOnly | QIODevice::Text); + QString b; + QTextStream ss(&b, QIODevice::WriteOnly | QIODevice::Text); + bool compact = (format == JsonFormat::Compact); - switch(v.type()) { - case QJsonValue::Null: - ss << "null"; - break; - case QJsonValue::Bool: - ss << (v.toBool() ? "true" : "false"); - break; - case QJsonValue::Double: - { - double d = v.toDouble (); - if (qIsFinite(d)) { - // +2 to format to ensure the expected precision - ss << QByteArray::number(d, 'g', 15 + 2); // ::digits10 is 15 - } else { - ss << "null"; // +INF || -INF || NaN (see RFC4627#section2.4) - } - } - break; - case QJsonValue::String: - ss << '"' << escapeString(v.toString()) << '"'; - break; - case QJsonValue::Array: - { - const QJsonArray a = v.toArray(); - ss << "["; - if(!a.empty()) { - QJsonArray::const_iterator it = a.begin(); - QJsonArray::const_iterator e = a.end(); + switch(v.type()) { + case QJsonValue::Null: + ss << "null"; + break; + case QJsonValue::Bool: + ss << (v.toBool() ? "true" : "false"); + break; + case QJsonValue::Double: + { + double d = v.toDouble (); + if (qIsFinite(d)) { + // +2 to format to ensure the expected precision + ss << QByteArray::number(d, 'g', 15 + 2); // ::digits10 is 15 + } else { + ss << "null"; // +INF || -INF || NaN (see RFC4627#section2.4) + } + } + break; + case QJsonValue::String: + ss << '"' << escapeString(v.toString()) << '"'; + break; + case QJsonValue::Array: + { + const QJsonArray a = v.toArray(); + ss << (compact ? "[" : "[\n"); + if(!a.empty()) { + QJsonArray::const_iterator it = a.begin(); + QJsonArray::const_iterator e = a.end(); - ss << toJson(*it++, format); + if (!compact) ss << QByteArray(4*indent, ' '); + ss << toJson(*it++, format, indent+1); - for(;it != e; ++it) { - ss << ','; - ss << toJson(*it, format); - } - } - ss << "]"; - } - break; - case QJsonValue::Object: - { - const QJsonObject o = v.toObject(); - ss << "{"; - if(!o.empty()) { - QJsonObject::const_iterator it = o.begin(); - QJsonObject::const_iterator e = o.end(); + for(;it != e; ++it) { + ss << (compact ? "," : ",\n"); + if (!compact) ss << QByteArray(4*indent, ' '); + ss << toJson(*it, format, indent+1); + } + } + indent--; + ss << (compact ? "]" : QString("\n%1]").arg(QString(4*indent, ' '))); + } + break; + case QJsonValue::Object: + { + const QJsonObject o = v.toObject(); + ss << (compact ? "{" : "{\n"); + if(!o.empty()) { + QJsonObject::const_iterator it = o.begin(); + QJsonObject::const_iterator e = o.end(); - ss << '"' << escapeString(it.key()) << "\": " << toJson(it.value(), format); - ++it; - for(;it != e; ++it) { - ss << ','; - ss << '"' << escapeString(it.key()) << "\": " << toJson(it.value(), format); - } - } - ss << "}"; - } - break; - case QJsonValue::Undefined: - Q_ASSERT(0); - break; - } + if (!compact) ss << QByteArray(4*indent, ' '); + ss << '"' << escapeString(it.key()) << (compact ? "\":" : "\": ") << toJson(it.value(), format, indent+1); + ++it; + for(;it != e; ++it) { + ss << (compact ? "," : ",\n"); + if (!compact) ss << QByteArray(4*indent, ' '); + ss << '"' << escapeString(it.key()) << (compact ? "\":" : "\": ") << toJson(it.value(), format, indent+1); + } + } + indent--; + ss << (compact ? "}" : QString("\n%1}").arg(QString(4*indent, ' '))); + } + break; + case QJsonValue::Undefined: + Q_ASSERT(0); + break; + } - return b; + return b; } //------------------------------------------------------------------------------ @@ -274,19 +281,19 @@ QString QJsonDocument::toJson(const QJsonValue &v, JsonFormat format) const { //------------------------------------------------------------------------------ QByteArray QJsonDocument::toJson(JsonFormat format) const { - Q_UNUSED(format); + Q_UNUSED(format); - if(isArray()) { - QString s = toJson(array(), format); - return s.toUtf8(); - } + if(isArray()) { + QString s = toJson(array(), format); + return s.toUtf8(); + } - if(isObject()) { - QString s = toJson(object(), format); - return s.toUtf8(); - } + if(isObject()) { + QString s = toJson(object(), format); + return s.toUtf8(); + } - return QByteArray(); + return QByteArray(); } //------------------------------------------------------------------------------ @@ -294,17 +301,17 @@ QByteArray QJsonDocument::toJson(JsonFormat format) const { //------------------------------------------------------------------------------ QVariant QJsonDocument::toVariant() const { - if(!isEmpty()) { - if(QJsonObject *const object = root_->toObject()) { - return object->toVariantMap(); - } + if(!isEmpty()) { + if(QJsonObject *const object = root_->toObject()) { + return object->toVariantMap(); + } - if(QJsonArray *const array = root_->toArray()) { - return array->toVariantList(); - } - } + if(QJsonArray *const array = root_->toArray()) { + return array->toVariantList(); + } + } - return QVariant(); + return QVariant(); } //------------------------------------------------------------------------------ @@ -312,13 +319,13 @@ QVariant QJsonDocument::toVariant() const { //------------------------------------------------------------------------------ QJsonArray QJsonDocument::array() const { - if(!isEmpty()) { - if(QJsonArray *const array = root_->toArray()) { - return *array; - } - } + if(!isEmpty()) { + if(QJsonArray *const array = root_->toArray()) { + return *array; + } + } - return QJsonArray(); + return QJsonArray(); } //------------------------------------------------------------------------------ @@ -326,54 +333,54 @@ QJsonArray QJsonDocument::array() const { //------------------------------------------------------------------------------ QJsonObject QJsonDocument::object() const { - if(!isEmpty()) { - if(QJsonObject *const object = root_->toObject()) { - return *object; - } - } + if(!isEmpty()) { + if(QJsonObject *const object = root_->toObject()) { + return *object; + } + } - return QJsonObject(); + return QJsonObject(); } //------------------------------------------------------------------------------ // Name: rawData //------------------------------------------------------------------------------ const char *QJsonDocument::rawData(int *size) const { - Q_UNUSED(size); - // TODO(eteran): implement this - return 0; + Q_UNUSED(size); + // TODO(eteran): implement this + return 0; } //------------------------------------------------------------------------------ // Name: fromBinaryData //------------------------------------------------------------------------------ QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidation validation) { - Q_UNUSED(data); - Q_UNUSED(validation); + Q_UNUSED(data); + Q_UNUSED(validation); - QJsonDocument doc; - // TODO(eteran): implement this - return doc; + QJsonDocument doc; + // TODO(eteran): implement this + return doc; } //------------------------------------------------------------------------------ // Name: fromJson //------------------------------------------------------------------------------ QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error) { - QJsonDocument doc; + QJsonDocument doc; - const char *const begin = json.constData(); - const char *const end = begin + json.size(); + const char *const begin = json.constData(); + const char *const end = begin + json.size(); - QJsonParser parser(begin, end); + QJsonParser parser(begin, end); - doc.root_ = parser.parse(); + doc.root_ = parser.parse(); - if(error) { - *error = parser.state(); - } + if(error) { + *error = parser.state(); + } - return doc; + return doc; } //------------------------------------------------------------------------------ @@ -381,10 +388,10 @@ QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *e //------------------------------------------------------------------------------ QJsonDocument QJsonDocument::fromRawData(const char *data, int size, DataValidation validation) { - // data has to be aligned to a 4 byte boundary. - Q_ASSERT(!(reinterpret_cast(data) % 3)); + // data has to be aligned to a 4 byte boundary. + Q_ASSERT(!(reinterpret_cast(data) % 3)); - return fromBinaryData(QByteArray::fromRawData(data, size), validation); + return fromBinaryData(QByteArray::fromRawData(data, size), validation); } //------------------------------------------------------------------------------ @@ -392,26 +399,26 @@ QJsonDocument QJsonDocument::fromRawData(const char *data, int size, DataValidat //------------------------------------------------------------------------------ QJsonDocument QJsonDocument::fromVariant(const QVariant &variant) { - QJsonDocument doc; + QJsonDocument doc; - if (variant.type() == QVariant::Map) { - doc.setObject(QJsonObject::fromVariantMap(variant.toMap())); - } else if (variant.type() == QVariant::Hash) { - doc.setObject(QJsonObject::fromVariantHash(variant.toHash())); - } else if (variant.type() == QVariant::List) { - doc.setArray(QJsonArray::fromVariantList(variant.toList())); - } else if (variant.type() == QVariant::StringList) { - doc.setArray(QJsonArray::fromStringList(variant.toStringList())); - } + if (variant.type() == QVariant::Map) { + doc.setObject(QJsonObject::fromVariantMap(variant.toMap())); + } else if (variant.type() == QVariant::Hash) { + doc.setObject(QJsonObject::fromVariantHash(variant.toHash())); + } else if (variant.type() == QVariant::List) { + doc.setArray(QJsonArray::fromVariantList(variant.toList())); + } else if (variant.type() == QVariant::StringList) { + doc.setArray(QJsonArray::fromStringList(variant.toStringList())); + } - return doc; + return doc; } //------------------------------------------------------------------------------ // Name: swap //------------------------------------------------------------------------------ void QJsonDocument::swap(QJsonDocument &other) { - qSwap(root_, other.root_); + qSwap(root_, other.root_); } #endif diff --git a/qjson4/QJsonDocument.h b/qjson4/QJsonDocument.h index 5b1e17a..3731f62 100644 --- a/qjson4/QJsonDocument.h +++ b/qjson4/QJsonDocument.h @@ -36,66 +36,66 @@ class QJsonRoot; class QJsonDocument { public: - enum DataValidation { - Validate = 0, - BypassValidation = 1 - }; + enum DataValidation { + Validate = 0, + BypassValidation = 1 + }; - enum JsonFormat { - Indented, - Compact - }; + enum JsonFormat { + Indented, + Compact + }; public: - QJsonDocument(); - QJsonDocument(const QJsonObject &object); - QJsonDocument(const QJsonArray &array); - QJsonDocument(const QJsonDocument &other); - ~QJsonDocument(); + QJsonDocument(); + QJsonDocument(const QJsonObject &object); + QJsonDocument(const QJsonArray &array); + QJsonDocument(const QJsonDocument &other); + ~QJsonDocument(); public: - QJsonDocument &operator=(const QJsonDocument &other); + QJsonDocument &operator=(const QJsonDocument &other); public: - bool operator!=(const QJsonDocument &other) const; - bool operator==(const QJsonDocument &other) const; + bool operator!=(const QJsonDocument &other) const; + bool operator==(const QJsonDocument &other) const; public: - bool isArray() const; - bool isEmpty() const; - bool isNull() const; - bool isObject() const; + bool isArray() const; + bool isEmpty() const; + bool isNull() const; + bool isObject() const; public: - QByteArray toBinaryData() const; - QByteArray toJson(JsonFormat format = Indented) const; - QVariant toVariant() const; + QByteArray toBinaryData() const; + QByteArray toJson(JsonFormat format = Indented) const; + QVariant toVariant() const; public: - QJsonArray array() const; - QJsonObject object() const; - const char *rawData(int *size) const; + QJsonArray array() const; + QJsonObject object() const; + const char *rawData(int *size) const; public: - void setArray(const QJsonArray &array); - void setObject(const QJsonObject &object); + void setArray(const QJsonArray &array); + void setObject(const QJsonObject &object); public: - static QJsonDocument fromBinaryData(const QByteArray &data, DataValidation validation = Validate); - static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = 0); - static QJsonDocument fromRawData(const char *data, int size, DataValidation validation = Validate); - static QJsonDocument fromVariant(const QVariant &variant); + static QJsonDocument fromBinaryData(const QByteArray &data, DataValidation validation = Validate); + static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = 0); + static QJsonDocument fromRawData(const char *data, int size, DataValidation validation = Validate); + static QJsonDocument fromVariant(const QVariant &variant); private: - void setRoot(const QJsonRoot &root); - QString toJson(const QJsonValue &v, JsonFormat format) const; - QString escapeString(const QString &s) const; + void setRoot(const QJsonRoot &root); + QString toJson(const QJsonValue &v, JsonFormat format, int indent = 1) const; + QString escapeString(const QString &s) const; private: - void swap(QJsonDocument &other); + void swap(QJsonDocument &other); private: - QJsonRoot *root_; + QJsonRoot *root_; }; #endif diff --git a/res/gta5sync.ts b/res/gta5sync.ts index 4ec67af..7c0108e 100644 --- a/res/gta5sync.ts +++ b/res/gta5sync.ts @@ -191,21 +191,21 @@ Pictures and Savegames - - + + Snapmatic Image Editor - + Patching of Snapmatic Image failed because of I/O Error - + Patching of Snapmatic Image failed because of Image Error @@ -343,14 +343,14 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! - + Custom Picture Custom Picture Description in SC, don't use Special Character! @@ -489,7 +489,7 @@ When you want to use it as Avatar the image will be detached! - + JSON Error @@ -502,57 +502,57 @@ When you want to use it as Avatar the image will be detached! - + Close viewer - + &Close - + Apply new position - + &Apply - + Revert old position - + &Revert - + Select new position - + &Select - + Quit select position - + &Done - + X: %1 Y: %2 X and Y position @@ -705,26 +705,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 - - - - - - - - + + + + + + + + Language: %1 @@ -745,7 +745,7 @@ Y: %2 - + Participate in %1 User Statistics @@ -781,8 +781,8 @@ Y: %2 - - + + Participation ID: %1 @@ -804,8 +804,8 @@ Y: %2 - - + + Current: %1 @@ -862,95 +862,95 @@ Y: %2 - + System System in context of System default - + %1 (Game language) Next closest language compared to the Game settings - - + + %1 (Closest to Interface) Next closest language compared to the Interface - - - + + + Auto Automatic language choice. - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". - + %1 %1 - + The new Custom Folder will initialise after you restart %1. - + No Profile No Profile, as default - - - + + + Profile: %1 - + View %1 User Statistics Online - + Not registered - - - - + + + + Yes - - + + No - - + + OS defined - - + + Steam defined @@ -991,80 +991,80 @@ Y: %2 - - + + Export as &Picture... - - + + Export as &Snapmatic... - - + + &Edit Properties... - - + + &Overwrite Image... - - + + Open &Map Viewer... - - + + Open &JSON Editor... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate - - + + Snapmatic Picture Viewer - - + + Failed at %1 - - + + No Players - - + + No Crew - + Unknown Location - + Avatar Preview Mode Press 1 for Default View @@ -1201,28 +1201,28 @@ Press 1 for Default View - + Add Players... - + Failed to add more Players because the limit of Players are %1! - - + + Add Player... - + Enter Social Club Player ID - + Failed to add Player %1 because Player %1 is already added! @@ -1274,23 +1274,23 @@ Press 1 for Default View - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... @@ -1307,14 +1307,14 @@ Press 1 for Default View - + All image files (%1) - + All files (**) @@ -1322,14 +1322,14 @@ Press 1 for Default View - + Can't import %1 because file can't be open - + Can't import %1 because file can't be parsed properly @@ -1344,189 +1344,189 @@ Press 1 for Default View - + Snapmatic Loader - + <h4>Following Snapmatic Pictures got repaired</h4>%1 - + Importable files (%1) - - + + 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 format can't be detected - + Prepare Content for Import... - + RDR 2 Export (*.r5e) - + Savegames files (SRDR*) - + Snapmatic pictures (PRDR*) - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? - + 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: - + Initialising 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 to remove all selected Snapmatic pictures and/or Savegame files - - - - - - + + + + + + No Snapmatic pictures are selected - - - - - - + + + + + + %1 failed with... %2 @@ -1534,81 +1534,81 @@ Press 1 for Default View - - + + Qualify as Avatar - - - - + + + + Patch selected... - - - - - - - - + + + + + + + + Patch file %1 of %2 files - + Qualify %1 failed with... - - + + Change Players... - + Change Players %1 failed with... - - - + + + Change Crew... - + Failed to enter a valid Snapmatic Crew ID - + Change Crew %1 failed with... - - - + + + Change Title... - + Failed to enter a valid Snapmatic title - + Change Title %1 failed with... @@ -1710,37 +1710,37 @@ Press 1 for Default View - + &View - + &Export - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All @@ -1834,11 +1834,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1920,48 +1920,48 @@ Press 1 for Default View - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? - + Patching of Snapmatic Properties failed because of %1 - - + + Patching of Snapmatic Properties failed because of I/O Error - + Patching of Snapmatic Properties failed because of JSON Error - + Snapmatic Crew - + New Snapmatic crew: - + Snapmatic Title - + New Snapmatic title: @@ -2017,19 +2017,19 @@ Press 1 for Default View SnapmaticPicture - + JSON is incomplete and malformed - + JSON is incomplete - + JSON is malformed @@ -2136,52 +2136,52 @@ Press 1 for Default View - + Edi&t - + Show &In-game - + Hide &In-game - + &Export - + &View - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All @@ -2363,7 +2363,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2400,15 +2400,15 @@ Press 1 for Default View - - + + Show In-game - - + + Hide In-game diff --git a/res/gta5sync_de.ts b/res/gta5sync_de.ts index 97a0a1d..c45f6fc 100644 --- a/res/gta5sync_de.ts +++ b/res/gta5sync_de.ts @@ -176,8 +176,8 @@ Snapmatic Bilder und Spielständen ImageEditorDialog - - + + Snapmatic Image Editor @@ -209,13 +209,13 @@ Snapmatic Bilder und Spielständen S&chließen - + Patching of Snapmatic Image failed because of I/O Error Patchen von Snapmatic Bild fehlgeschlagen wegen I/O Fehler - + Patching of Snapmatic Image failed because of Image Error Patchen von Snapmatic Bild fehlgeschlagen wegen Bild Fehler @@ -359,14 +359,14 @@ Snapmatic Bilder und Spielständen - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! Eigener Avatar - + Custom Picture Custom Picture Description in SC, don't use Special Character! Eigenes Bild @@ -500,7 +500,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! S&chließen - + JSON Error JSON Fehler @@ -513,57 +513,57 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt! Snapmatic Kartenansicht - + Close viewer Ansicht schließen - + &Close S&chließen - + Apply new position Neue Position festlegen - + &Apply &Übernehmen - + Revert old position Alte Position wiederherstellen - + &Revert &Zurücksetzen - + Select new position Neue Position auswählen - + &Select Au&swählen - + Quit select position Position auswählen verlassen - + &Done &Fertig - + X: %1 Y: %2 X and Y position @@ -717,26 +717,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 Gefunden: %1 - - - - - - - - + + + + + + + + Language: %1 Sprache: %1 @@ -757,7 +757,7 @@ Y: %2 - + Participate in %1 User Statistics An %1 Benutzerstatistik teilnehmen @@ -788,8 +788,8 @@ Y: %2 - - + + Participation ID: %1 Teilnahme ID: %1 @@ -846,8 +846,8 @@ Y: %2 - - + + Current: %1 Aktuell: %1 @@ -874,95 +874,95 @@ Y: %2 Abbre&chen - + %1 %1 %1 - + System System in context of System default System - + %1 (Game language) Next closest language compared to the Game settings %1 (Spielsprache) - - + + %1 (Closest to Interface) Next closest language compared to the Interface %1 (Näheste zur Oberfläche) - - - + + + Auto Automatic language choice. Automatisch - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (Sprachenpriorität) - + The new Custom Folder will initialise after you restart %1. Der eigene Ordner wird initialisiert sobald du %1 neugestartet hast. - + View %1 User Statistics Online %1 Benutzerstatistik Online ansehen - + Not registered Nicht registriert - - - - + + + + Yes Ja - - + + No Nein - - + + OS defined OS-defined - - + + Steam defined Steam-definiert - + No Profile No Profile, as default Kein Profil - - - + + + Profile: %1 Profil: %1 @@ -1012,37 +1012,37 @@ Y: %2 Exportieren - - + + Export as &Picture... Als &Bild exportieren... - - + + Export as &Snapmatic... Als &Snapmatic exportieren... - - + + &Edit Properties... Eigenschaften bearb&eiten... - - + + &Overwrite Image... Bild &überschreiben... - - + + Open &Map Viewer... &Kartenansicht öffnen... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1051,39 +1051,39 @@ Taste 2 - Overlay umschalten Pfeiltasten - Navigieren - - + + Snapmatic Picture Viewer Snapmatic Bildansicht - - + + Failed at %1 Fehlgeschlagen beim %1 - - + + No Crew Keine Crew - - + + No Players Keine Spieler - + Avatar Preview Mode Press 1 for Default View Avatar Vorschaumodus Drücke 1 für Standardmodus - + Unknown Location Unbekannter Standort @@ -1185,8 +1185,8 @@ Drücke 1 für Standardmodus Keine gültige Datei wurde ausgewählt - - + + Open &JSON Editor... &JSON Editor öffnen... @@ -1219,28 +1219,28 @@ Drücke 1 für Standardmodus Abbre&chen - + Add Players... Spieler hinzufügen... - + Failed to add more Players because the limit of Players are %1! Fehlgeschlagen beim Hinzufügen von mehr Spielern weil der Limit von Spielern %1 ist! - - + + Add Player... Spieler hinzufügen... - + Enter Social Club Player ID Social Club Spieler ID eingeben - + Failed to add Player %1 because Player %1 is already added! Fehlgeschlagen beim Hinzufügen vom Spieler %1 weil Spieler %1 bereits hinzugefügt wurde! @@ -1289,35 +1289,35 @@ Drücke 1 für Standardmodus Lade... - + Snapmatic Loader Snapmatic Lader - + <h4>Following Snapmatic Pictures got repaired</h4>%1 <h4>Folgende Snapmatic Bilder wurden repariert</h4>%1 - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... Importieren... @@ -1332,45 +1332,45 @@ Drücke 1 für Standardmodus Importieren - + Savegames files (SRDR*) Spielstanddateien (SRDR*) - + Snapmatic pictures (PRDR*) Snapmatic Bilder (PRDR*) - + 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 @@ -1379,13 +1379,13 @@ Drücke 1 für Standardmodus %1 - + Failed to read Snapmatic picture Fehler beim Lesen vom Snapmatic Bild - + Failed to read Savegame file Fehler beim Lesen von Spielstanddatei @@ -1393,40 +1393,40 @@ Drücke 1 für Standardmodus - + Can't import %1 because file can't be open Kann %1 nicht importieren weil die Datei nicht geöffnet werden kann - + 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... - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PRDR oder endet mit .r5e - + %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 @@ -1437,91 +1437,91 @@ Drücke 1 für Standardmodus Aktivierte Bilder: %1 von %2 - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? Ein Snapmatic Bild mit der Uid %1 existiert bereits, möchtest du dein Import eine neue Uid und Zeitstempel zuweisen? - + 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 - - - - + + + + Patch selected... Auswahl patchen... - - - - - - - - + + + + + + + + Patch file %1 of %2 files Patche Datei %1 von %2 Dateien - - + + Qualify as Avatar Als Avatar qualifizieren - - - - - - + + + + + + No Snapmatic pictures are selected Keine Snapmatic Bilder sind ausgewählt - + Failed to remove all selected Snapmatic pictures and/or Savegame files Fehlgeschlagen beim Entfernen von allen augewählten Snapmatic Bildern und/oder Spielstanddateien - - - - - - + + + + + + %1 failed with... %2 @@ -1531,93 +1531,93 @@ Drücke 1 für Standardmodus %2 - + Prepare Content for Import... Bereite Inhalt für Import vor... - + Qualify %1 failed with... Qualifizieren - - + + Change Players... Spieler ändern... - + Change Players %1 failed with... Spieler ändern - - - + + + Change Crew... Crew ändern... - + Failed to enter a valid Snapmatic Crew ID Fehlgeschlagen beim Eingeben von einer gültigen Crew ID - + Change Crew %1 failed with... Crew ändern - - - + + + Change Title... Titel ändern... - + Failed to enter a valid Snapmatic title Fehlgeschlagen beim Eingeben eines gültigen Snapmatic Titel - + Change Title %1 failed with... Titel ändern - - + + No Snapmatic pictures or Savegames files are selected Keine Snapmatic Bilder oder Spielstände sind 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? - - - - - + + + + + Export selected... Auswahl exportieren... - + Export failed with... %1 @@ -1636,7 +1636,7 @@ Drücke 1 für Standardmodus Alle Profildateien (*.r5e SRDR* PRDR*) - + RDR 2 Export (*.r5e) RDR 2 Export (*.r5e) @@ -1771,32 +1771,32 @@ Drücke 1 für Standardmodus 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 @@ -1811,7 +1811,7 @@ Drücke 1 für Standardmodus Spielstand kopieren - + &Export &Exportieren @@ -1859,11 +1859,11 @@ Drücke 1 für Standardmodus - - - - - + + + + + Snapmatic Properties @@ -1905,7 +1905,7 @@ Drücke 1 für Standardmodus Meme - + Snapmatic Title Snapmatic Titel @@ -1998,42 +1998,42 @@ Drücke 1 für Standardmodus Nein - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? <h4>Ungespeicherte Änderungen erkannt</h4>Möchtest du den JSON Inhalt speichern bevor du verlässt? - + Patching of Snapmatic Properties failed because of %1 Patchen von Snapmatic Eigenschaften fehlgeschlagen wegen %1 - + Patching of Snapmatic Properties failed because of JSON Error Patchen von Snapmatic Eigenschaften fehlgeschlagen wegen JSON Fehler - - + + 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: @@ -2088,19 +2088,19 @@ Drücke 1 für Standardmodus Datei lesen von %1 weil %2 - + JSON is incomplete and malformed JSON ist unvollständig und Fehlerhaft - + JSON is incomplete JSON ist unvollständig - + JSON is malformed JSON ist Fehlerhaft @@ -2161,52 +2161,52 @@ Drücke 1 für Standardmodus Fehlgeschlagen beim Anzeigen von %1 im Spiel von deinen Snapmatic Bildern - + Edi&t Bearbei&ten - + &Export &Exportieren - + Show &In-game &Im Spiel anzeigen - + Hide &In-game &Im Spiel ausblenden - + &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 @@ -2407,7 +2407,7 @@ Drücke 1 für Standardmodus - + Select RDR 2 Folder... @@ -2450,15 +2450,15 @@ Drücke 1 für Standardmodus &Neuladen - - + + Show In-game Im Spiel anzeigen - - + + Hide In-game Im Spiel ausblenden diff --git a/res/gta5sync_en_US.ts b/res/gta5sync_en_US.ts index 421019a..08eb6e7 100644 --- a/res/gta5sync_en_US.ts +++ b/res/gta5sync_en_US.ts @@ -166,8 +166,8 @@ Pictures and Savegames ImageEditorDialog - - + + Snapmatic Image Editor @@ -199,13 +199,13 @@ Pictures and Savegames - + Patching of Snapmatic Image failed because of I/O Error - + Patching of Snapmatic Image failed because of Image Error @@ -349,14 +349,14 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! - + Custom Picture Custom Picture Description in SC, don't use Special Character! @@ -489,7 +489,7 @@ When you want to use it as Avatar the image will be detached! - + JSON Error @@ -502,57 +502,57 @@ When you want to use it as Avatar the image will be detached! - + Close viewer - + &Close - + Apply new position - + &Apply - + Revert old position - + &Revert - + Select new position - + &Select - + Quit select position - + &Done - + X: %1 Y: %2 X and Y position @@ -705,26 +705,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 - - - - - - - - + + + + + + + + Language: %1 @@ -740,7 +740,7 @@ Y: %2 - + Participate in %1 User Statistics @@ -761,8 +761,8 @@ Y: %2 - - + + Participation ID: %1 @@ -829,8 +829,8 @@ Y: %2 - - + + Current: %1 @@ -862,95 +862,95 @@ Y: %2 - + System System in context of System default - + %1 (Game language) Next closest language compared to the Game settings - - + + %1 (Closest to Interface) Next closest language compared to the Interface - - - + + + Auto Automatic language choice. - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". - + %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 - + View %1 User Statistics Online - + Not registered - - - - + + + + Yes - - + + No - - + + OS defined - - + + Steam defined @@ -991,74 +991,74 @@ Y: %2 - - + + Export as &Picture... - - + + Export as &Snapmatic... - - + + &Overwrite Image... - - + + &Edit Properties... - - + + Open &Map Viewer... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate - - + + Snapmatic Picture Viewer - - + + Failed at %1 - - + + No Players - - + + No Crew - + Unknown Location - + Avatar Preview Mode Press 1 for Default View @@ -1167,8 +1167,8 @@ Press 1 for Default View - - + + Open &JSON Editor... @@ -1201,28 +1201,28 @@ Press 1 for Default View - + Add Players... - + Failed to add more Players because the limit of Players are %1! - - + + Add Player... - + Enter Social Club Player ID - + Failed to add Player %1 because Player %1 is already added! @@ -1282,35 +1282,35 @@ Press 1 for Default View - + Snapmatic Loader - + <h4>Following Snapmatic Pictures got repaired</h4>%1 - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... @@ -1325,24 +1325,24 @@ Press 1 for Default View - + Importable files (%1) - + RDR 2 Export (*.r5e) - + Savegames files (SRDR*) - + Snapmatic pictures (PRDR*) @@ -1350,46 +1350,46 @@ Press 1 for Default View - + 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 @@ -1397,147 +1397,147 @@ Press 1 for Default View - + Can't import %1 because file can't be open - + 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 PRDR or end with .r5e - + 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 - - + + 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? - - + + Qualify as Avatar - - - - - - + + + + + + No Snapmatic pictures are selected - - - - + + + + Patch selected... - - - - - - - - + + + + + + + + Patch file %1 of %2 files - - - - - - + + + + + + %1 failed with... %2 @@ -1545,70 +1545,70 @@ Press 1 for Default View - + Failed to remove all selected Snapmatic pictures and/or Savegame files - + Prepare Content for Import... - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? - + Qualify %1 failed with... - - + + Change Players... - + Change Players %1 failed with... - - - + + + Change Crew... - + Failed to enter a valid Snapmatic Crew ID - + Change Crew %1 failed with... - - - + + + Change Title... - + Failed to enter a valid Snapmatic title - + Change Title %1 failed with... @@ -1710,37 +1710,37 @@ Press 1 for Default View - + &View - + &Export - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All @@ -1834,11 +1834,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1967,48 +1967,48 @@ Press 1 for Default View - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? - + Patching of Snapmatic Properties failed because of %1 - + Patching of Snapmatic Properties failed because of JSON Error - - + + Patching of Snapmatic Properties failed because of I/O Error - + Snapmatic Title - + New Snapmatic title: - + Snapmatic Crew - + New Snapmatic crew: @@ -2063,19 +2063,19 @@ Press 1 for Default View - + JSON is incomplete and malformed - + JSON is incomplete - + JSON is malformed @@ -2136,52 +2136,52 @@ Press 1 for Default View - + Edi&t - + Show &In-game - + Hide &In-game - + &Export - + &View - + &Remove - + &Select - + &Deselect - + Select &All - + &Deselect All @@ -2358,7 +2358,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2425,15 +2425,15 @@ Press 1 for Default View - - + + Show In-game - - + + Hide In-game diff --git a/res/gta5sync_fr.ts b/res/gta5sync_fr.ts index 338c57f..b4e5f74 100644 --- a/res/gta5sync_fr.ts +++ b/res/gta5sync_fr.ts @@ -176,8 +176,8 @@ et les fichiers de sauvegarde de Red Dead Redemption 2 ImageEditorDialog - - + + Snapmatic Image Editor @@ -209,13 +209,13 @@ et les fichiers de sauvegarde de Red Dead Redemption 2 &Fermer - + Patching of Snapmatic Image failed because of I/O Error Échec du patch Snapmatic : I/O Error - + Patching of Snapmatic Image failed because of Image Error Échec du patch Snapmatic : Image Error @@ -359,14 +359,14 @@ et les fichiers de sauvegarde de Red Dead Redemption 2 - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! Avatar personnalisé - + Custom Picture Custom Picture Description in SC, don't use Special Character! Image personnalisé @@ -500,7 +500,7 @@ Si vous l'utilisez comme Avatar, l'image sera détachée !&Fermer - + JSON Error Erreur JSON @@ -513,57 +513,57 @@ Si vous l'utilisez comme Avatar, l'image sera détachée !Visionneuse de Carte Snapmatic - + Close viewer Fermer la visionneuse - + &Close &Fermer - + Apply new position Appliquer la nouvelle position - + &Apply &Appliquer - + Revert old position Revenir à l'ancienne position - + &Revert &Revenir - + Select new position Sélectionner la nouvelle position - + &Select &Sélectionner - + Quit select position Quitter la sélection de position - + &Done &Terminer - + X: %1 Y: %2 X and Y position @@ -717,26 +717,26 @@ Y : %2 - - - - - - + + + + + + Found: %1 Trouvé : %1 - - - - - - - - + + + + + + + + Language: %1 Langue : %1 @@ -757,7 +757,7 @@ Y : %2 - + Participate in %1 User Statistics Participer aux statistiques d'usage %1 @@ -788,8 +788,8 @@ Y : %2 - - + + Participation ID: %1 ID de participation : %1 @@ -841,8 +841,8 @@ Y : %2 - - + + Current: %1 Actuel : %1 @@ -874,95 +874,95 @@ Y : %2 &Annuler - + System System in context of System default Système - + %1 (Game language) Next closest language compared to the Game settings %1 (Langue du jeu) - - + + %1 (Closest to Interface) Next closest language compared to the Interface %1 (Langage proche de l'interface) - - - + + + Auto Automatic language choice. Automatique - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (Priorité de la langue) - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. Le nouveau Dossier personnalisé sera initialisé au redémarrage de %1. - + View %1 User Statistics Online Voir les statistiques d'usage %1 en ligne - + Not registered Pas enregistré - - - - + + + + Yes Oui - - + + No Non - - + + OS defined Défini par le système d'exploitation - - + + Steam defined Défini par Steam - + No Profile No Profile, as default Aucun profil - - - + + + Profile: %1 Profil : %1 @@ -1092,37 +1092,37 @@ Y : %2 Fichier invalide - - + + Export as &Picture... Exporter comme &image... - - + + Export as &Snapmatic... Exporter comme &Snapmatic... - - + + &Overwrite Image... &Remplacer l'image... - - + + &Edit Properties... Modifier les &propriétés... - - + + Open &Map Viewer... Ouvrir la &Visionneuse de Carte... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1131,39 +1131,39 @@ Touche 2 - Activer/désactiver l'overlay Touches fléchées - Naviguer - - + + Snapmatic Picture Viewer Visionneuse de photo Snapmatic - - + + Failed at %1 Echec de %1 - - + + No Crew Aucun crew - - + + No Players Aucun joueurs - + Avatar Preview Mode Press 1 for Default View Mode Aperçu Avatar Appuyer sur 1 pour le mode par défaut - + Unknown Location Emplacement inconnu @@ -1185,8 +1185,8 @@ Appuyer sur 1 pour le mode par défaut Échec de l'export de la photo Snapmatic - - + + Open &JSON Editor... Ouvrir l'éditeur &JSON... @@ -1219,28 +1219,28 @@ Appuyer sur 1 pour le mode par défaut A&nnuler - + Add Players... Ajouter des joueurs... - + Failed to add more Players because the limit of Players are %1! Échec de l'ajout de joueurs : la limite de %1 est atteinte ! - - + + Add Player... Ajouter un joueur... - + Enter Social Club Player ID Entrer l'ID Social Club du joueur - + Failed to add Player %1 because Player %1 is already added! Échec de l'ajout du joueur %1 car le joueur %1 est déjà ajouté ! @@ -1300,35 +1300,35 @@ Appuyer sur 1 pour le mode par défaut Chargement... - + Snapmatic Loader Snapmatic Loader - + <h4>Following Snapmatic Pictures got repaired</h4>%1 <h4>Les Snapmatic suivants ont été répaés</h4>%1 - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... Importer... @@ -1343,7 +1343,7 @@ Appuyer sur 1 pour le mode par défaut Importer - + Savegames files (SRDR*) Fichiers de sauvegarde GTA (SRDR*) @@ -1351,26 +1351,26 @@ Appuyer sur 1 pour le mode par défaut - + All image files (%1) Toutes les images (%1) - + All files (**) Tous les fichiers (**) - - + + Import file %1 of %2 files Importation du fichier %1 sur %2 - + Import failed with... %1 @@ -1379,25 +1379,25 @@ Appuyer sur 1 pour le mode par défaut %1 - - + + No valid file is selected Fichier invalide - + Importable files (%1) Fichiers importables (%1) - + Failed to read Snapmatic picture Impossible d'ouvrir la photo Snapmatic - + Failed to read Savegame file Impossible de lire le fichier de sauvegarde @@ -1405,122 +1405,122 @@ Appuyer sur 1 pour le mode par défaut - + Can't import %1 because file can't be open Impossible d'importer %1, le fichier ne peut pas être ouvert - + Can't import %1 because file can't be parsed properly Impossible d'importer %1, le fichier ne peut pas être parsé correctement - + Can't import %1 because file format can't be detected Impossible d'importer %1, le format du fichier n'est pas détecté - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e Impossible d'importer la photo Snapmatic,nom de fichier incorrect (PRDR*, *.r5e) - + 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 - - + + 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... Initialisation de l'export... - - + + Qualify as Avatar Qualifier comme Avatar - - - - - - + + + + + + No Snapmatic pictures are selected Aucun Snapmatic sélectionné - - - - + + + + Patch selected... Patcher la sélection... - - - - - - - - + + + + + + + + Patch file %1 of %2 files Patch du fichier %1 sur %2 - - - - - - + + + + + + %1 failed with... %2 @@ -1530,82 +1530,82 @@ Appuyer sur 1 pour le mode par défaut %2 - + Failed to remove all selected Snapmatic pictures and/or Savegame files Échec de la supression des Snapmatic et/ou des fichiers de sauvegarde sélectionnés - + Prepare Content for Import... Préparation du contenu pour l'import... - + Snapmatic pictures (PRDR*) Fichiers GTA Snapmatic (PRDR*) - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? Un Snapmatic existe déjà avec le uid %1, voulez-vous assigner à votre import un nouvel uid et timestamp ? - + Qualify %1 failed with... Qualifier - - + + Change Players... Modifier les joueurs... - + Change Players %1 failed with... Modifier les joueurs - - - + + + Change Crew... Modifier le Crew... - + Failed to enter a valid Snapmatic Crew ID Snapmatic Crew ID invalide - + Change Crew %1 failed with... Changer le Crew - - - + + + Change Title... Changer le titre... - + Failed to enter a valid Snapmatic title Titre Snapmatic invalide - + Change Title %1 failed with... Changer le titre - + Export failed with... %1 @@ -1614,20 +1614,20 @@ 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 ? @@ -1637,7 +1637,7 @@ Appuyer sur 1 pour le mode par défaut Tous les fichiers de profil (*.r5e SRDR* PRDR*) - + RDR 2 Export (*.r5e) RDR 2 Export (*.r5e) @@ -1734,7 +1734,7 @@ Appuyer sur 1 pour le mode par défaut Supprimer - + &Export &Exporter @@ -1825,32 +1825,32 @@ Appuyer sur 1 pour le mode par défaut 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 @@ -1860,11 +1860,11 @@ Appuyer sur 1 pour le mode par défaut - - - - - + + + + + Snapmatic Properties @@ -1906,7 +1906,7 @@ Appuyer sur 1 pour le mode par défaut Meme - + Snapmatic Title Titre Snapmatic @@ -2001,42 +2001,42 @@ Appuyer sur 1 pour le mode par défaut Non - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? <h4>Modifications détectées</h4>Voulez-vous sauvegarder le contenu JSON avant de quitter ? - + Patching of Snapmatic Properties failed because of %1 Patch des propriétés Snapmatic échoué : %1 - + Patching of Snapmatic Properties failed because of JSON Error Patch des propriétés Snapmatic échoué : erreur JSON - - + + 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 : @@ -2091,19 +2091,19 @@ Appuyer sur 1 pour le mode par défaut lecture du fichier %1 : %2 - + JSON is incomplete and malformed JSON incomplet ou incorrect - + JSON is incomplete JSON incomplet - + JSON is malformed JSON incorrect @@ -2184,52 +2184,52 @@ Appuyer sur 1 pour le mode par défaut %1 n'a pas pu être rendu visible en jeu - + Edi&t Édi&ter - + Show &In-game &Visible en jeu - + Hide &In-game &Invisible en jeu - + &Export &Exporter - + &View &Voir - + &Remove S&upprimer - + &Select &Sélectionner - + &Deselect &Déselectionner - + Select &All Sélectionner &tout - + &Deselect All &Déselectionner tout @@ -2368,7 +2368,7 @@ Appuyer sur 1 pour le mode par défaut - + Select RDR 2 Folder... @@ -2453,15 +2453,15 @@ Appuyer sur 1 pour le mode par défaut Impossible d'ouvrir %1, format invalide - - + + Show In-game Visible en jeu - - + + Hide In-game Invisible en jeu diff --git a/res/gta5sync_ko.ts b/res/gta5sync_ko.ts index f037691..88a1353 100644 --- a/res/gta5sync_ko.ts +++ b/res/gta5sync_ko.ts @@ -201,21 +201,21 @@ Pictures and Savegames 닫기(&C) - - + + Snapmatic Image Editor 스냅매틱 이미지 편집기 - + Patching of Snapmatic Image failed because of I/O Error I/O 오류로 인해 스냅매틱 이미지를 패치하지 못했습니다 - + Patching of Snapmatic Image failed because of Image Error 이미지 오류로 인해 스냅매틱 이미지를 패치하지 못했습니다 @@ -353,7 +353,7 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! 소셜클럽의 사용자 지정 아바타 설명입니다. 특수 문자를 사용하지 마십시오! @@ -361,7 +361,7 @@ Pictures and Savegames - + Custom Picture Custom Picture Description in SC, don't use Special Character! 소셜클럽의 사용자 지정 그림 설명입니다. 특수 문자를 사용하지 마십시오! @@ -506,7 +506,7 @@ When you want to use it as Avatar the image will be detached! 닫기(&C) - + JSON Error JSON 오류 @@ -519,57 +519,57 @@ When you want to use it as Avatar the image will be detached! 스냅매틱 지도 뷰어 - + Close viewer 뷰어 닫기 - + &Close 닫기(&C) - + Apply new position 새 위치 적용 - + &Apply 적용(&A) - + Revert old position 이전 위치 되돌리기 - + &Revert 되돌리기(&R) - + Select new position 새 위치 선택 - + &Select 선택(&S) - + Quit select position 선택 위치 종료 - + &Done 완료(&D) - + X: %1 Y: %2 X and Y position @@ -724,26 +724,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 찾음: %1 - - - - - - - - + + + + + + + + Language: %1 언어: %1 @@ -764,7 +764,7 @@ Y: %2 - + Participate in %1 User Statistics 사용자 통계 참가 %1 @@ -800,8 +800,8 @@ Y: %2 - - + + Participation ID: %1 참여 아이디: %1 @@ -823,8 +823,8 @@ Y: %2 - - + + Current: %1 현재: %1 @@ -883,100 +883,100 @@ Y: %2 취소(&C) - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (우선 순위) - + System System in context of System default 시스템 - + %1 (Game language) Next closest language compared to the Game settings 게임 설정과 가장 가까운 언어 %1 (게임 언어) - - - + + + Auto Automatic language choice. 언어 자동 선택 자동 - - + + %1 (Closest to Interface) Next closest language compared to the Interface 인터페이스와 가장 가까운 언어 %1 (인터페이스와 가까운 언어) - + %1 %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. 다시 시작한 후 새 사용자 지정 폴더가 초기화됩니다. %1. - + No Profile No Profile, as default 프로필 없음 (기본값) 프로필 없음 - - - + + + Profile: %1 프로필: %1 - + View %1 User Statistics Online 온라인 %1 사용자 통계 보기 - + Not registered 등록되지 않았습니다 - - - - + + + + Yes - - + + No 아니요 - - + + OS defined OS 정의 - - + + Steam defined 스팀 정의 @@ -1020,43 +1020,43 @@ Y: %2 닫기(&C) - - + + Export as &Picture... 사진으로 내보내기(&P)... - - + + Export as &Snapmatic... 스낵매틱으로 내보내기(&S)... - - + + &Edit Properties... 속성 편집(&E)... - - + + &Overwrite Image... 이미지 덮어쓰기(&O)... - - + + Open &Map Viewer... 지도 뷰어 열기(&M)... - - + + Open &JSON Editor... JSON 편집기 열기(&J)... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1065,37 +1065,37 @@ Arrow Keys - Navigate 화살표키 - 이동 - - + + Snapmatic Picture Viewer 스낵매틱 사진 뷰어 - - + + Failed at %1 %1에서 실패했습니다 - - + + No Players 플레이어 없음 - - + + No Crew 조직 없음 - + Unknown Location 알 수 없는 위치 - + Avatar Preview Mode Press 1 for Default View 아바타 미리 보기 모드입니다 @@ -1233,28 +1233,28 @@ Press 1 for Default View 취소(&C) - + Add Players... 플레이어 추가... - + Failed to add more Players because the limit of Players are %1! 플레이어의 제한이 %1이므로 플레이어를 추가하지 못했습니다! - - + + Add Player... 플레이어 추가... - + Enter Social Club Player ID 소셜 클럽 플레이어 아이디 입력 - + Failed to add Player %1 because Player %1 is already added! %1 플레이어가 이미 추가되어 %1 플레이어를 추가하지 못했습니다! @@ -1306,23 +1306,23 @@ Press 1 for Default View - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... 가져오기... @@ -1339,14 +1339,14 @@ Press 1 for Default View - + All image files (%1) 모든 이미지 파일 (%1) - + All files (**) 모든 파일 (**) @@ -1354,14 +1354,14 @@ Press 1 for Default View - + Can't import %1 because file can't be open 파일을 열 수 없으므로 %1을 가져올 수 없습니다 - + Can't import %1 because file can't be parsed properly 파일을 구문 분석할 수 없으므로 %1을 가져올 수 없습니다 @@ -1376,53 +1376,53 @@ Press 1 for Default View 불러오는 중... - + Snapmatic Loader 스냅매틱 로더 - + <h4>Following Snapmatic Pictures got repaired</h4>%1 <h4>다음 스냅매틱 사진을 복구했습니다 </h4>%1 - + Importable files (%1) 가져올 수 있는 파일 (%1) - + RDR 2 Export (*.r5e) RDR 2로 내보내기 (*.r5e) - + Savegames files (SRDR*) 세이브 파일 (SRDR*) - + Snapmatic pictures (PRDR*) 스냅매틱 사진 (PRDR*) - - + + No valid file is selected 올바른 파일이 선택되지 않았습니다 - - + + Import file %1 of %2 files %2 파일 중 %1 파일을 가져옵니다 - + Import failed with... %1 @@ -1431,91 +1431,91 @@ Press 1 for Default View %1 - + Failed to read Snapmatic picture 스냅매틱 사진을 읽지 못했습니다 - + Failed to read Savegame file 세이브 파일을 읽지 못했습니다 - + Can't import %1 because file format can't be detected 파일 형식을 검색할 수 없으므로 %1을 가져올 수 없습니다 - + Prepare Content for Import... 가져올 컨텐츠를 준비합니다... - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e 스냅매틱 사진을 가져오지 못했습니다. 파일이 PRDR로 시작되거나 .r5e로 끝나지 않습니다 - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? uid %1이(가) 있는 스냅매틱 사진이 이미 있습니다. 가져오기를 새 uid 및 타임스탬프를 할당하시겠습니까? - + 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 사진 및 GTA 스냅매틱 - - + + JPG pictures only JPG 사진만 - - + + GTA Snapmatic only GTA 스냅매틱만 - + %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 스냅 사진 내보내기를 수행합니다%2 <br><br>JPG 사진을 사용하면 이미지 뷰어 로 사진을 열 수 있습니다<br>GTA 스냅매틱을 사용하면 다음과 같이 사진을 게임으로 가져올 수 있습니다 - + Initialising export... 내보내기를 초기화하는 중... - + Export failed with... %1 @@ -1524,45 +1524,45 @@ Press 1 for Default View %1 - - + + No Snapmatic pictures or Savegames files are selected 스냅매틱 사진 또는 세이브 파일이 선택되지 않았습니다 - - - + + + Remove selected 선택한 항목 삭제 - + You really want remove the selected Snapmatic picutres and Savegame files? 선택한 스냅매틱 사진 및 세이브 파일을 삭제하시겠습니까? - + Failed to remove all selected Snapmatic pictures and/or Savegame files 선택한 모든 스냅매틱 사진 및 세이브 파일을 삭제하지 못했습니다 - - - - - - + + + + + + No Snapmatic pictures are selected 스냅매틱 사진이 선택되지 않았습니다 - - - - - - + + + + + + %1 failed with... %2 @@ -1573,84 +1573,84 @@ Press 1 for Default View %2 - - + + Qualify as Avatar 아바타 자격 부여 - - - - + + + + Patch selected... 패치가 선택됨... - - - - - - - - + + + + + + + + Patch file %1 of %2 files %2 파일의 %1 패치 파일입니다 - + Qualify %1 failed with... %1이(가) 실패한 경우... 자격 부여 - - + + Change Players... 플레이어 변경... - + Change Players %1 failed with... %1이(가) 실패한 경우... 플레이어 변경 - - - + + + Change Crew... 조직 변경... - + Failed to enter a valid Snapmatic Crew ID 올바른 스냅매틱 조직 아이디를 입력하지 못했습니다 - + Change Crew %1 failed with... %1이(가) 실패한 경우... 조직 변경 - - - + + + Change Title... 제목 변경... - + Failed to enter a valid Snapmatic title 올바른 스냅매틱 제목을 입력하지 못했습니다 - + Change Title %1 failed with... %1이(가) 실패한 경우... @@ -1753,37 +1753,37 @@ Press 1 for Default View 삭제 - + &View 보기(&V) - + &Export 내보내기(&E) - + &Remove 삭제(&R) - + &Select 선택(&S) - + &Deselect 선택 해제(&D) - + Select &All 모두 선택(&A) - + &Deselect All 모두 선택 해제(&D) @@ -1879,11 +1879,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1965,48 +1965,48 @@ Press 1 for Default View 취소(&C) - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? < h4>저장되지 않은 변경 내용이 감지되었습니다. </h4>그만두기 전에 JSON 콘텐츠를 저장하겠습니까? - + Patching of Snapmatic Properties failed because of %1 %1로 인해 스냅매틱 속성을 패치하지 못했습니다 - - + + Patching of Snapmatic Properties failed because of I/O Error I/O 오류로 인해 스냅매틱 속성을 패치하지 못했습니다 - + Patching of Snapmatic Properties failed because of JSON Error JSON 오류로 인해 스냅매틱 속성을 패치하지 못했습니다 - + Snapmatic Crew 조직 스냅매틱 - + New Snapmatic crew: 새로운 조직 스냅매틱: - + Snapmatic Title 스냅매틱 제목 - + New Snapmatic title: 새로운 스냅매틱 제목: @@ -2066,19 +2066,19 @@ Press 1 for Default View SnapmaticPicture - + JSON is incomplete and malformed JSON이 불안정하고 형식이 잘못되었습니다 - + JSON is incomplete JSON이 불안정합니다 - + JSON is malformed 잘못된 JSON 형식 @@ -2186,52 +2186,52 @@ Press 1 for Default View 삭제 - + Edi&t 편집(&T) - + Show &In-game 인게임에서 보이기(&I) - + Hide &In-game 인게임에서 숨기기(&I) - + &Export 내보내기(&E) - + &View 보기(&V) - + &Remove 삭제(&R) - + &Select 선택(&S) - + &Deselect 선택 해제(&D) - + Select &All 모두 선택(&A) - + &Deselect All 모두 선택 해제(&D) @@ -2414,7 +2414,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2451,15 +2451,15 @@ Press 1 for Default View 플레이어 변경(&P)... - - + + Show In-game 인게임 보이기 - - + + Hide In-game 인게임 숨기기 diff --git a/res/gta5sync_ru.ts b/res/gta5sync_ru.ts index ca646eb..a84cf99 100644 --- a/res/gta5sync_ru.ts +++ b/res/gta5sync_ru.ts @@ -180,8 +180,8 @@ Pictures and Savegames ImageEditorDialog - - + + Snapmatic Image Editor @@ -213,13 +213,13 @@ Pictures and Savegames &Закрыть - + Patching of Snapmatic Image failed because of I/O Error Не удалось изменить картинку Snapmatic из-за ошибки ввода-вывода - + Patching of Snapmatic Image failed because of Image Error Не удалось изменить картинку Snapmatic из-за ошибки Image Error @@ -367,14 +367,14 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! Свой Аватар - + Custom Picture Custom Picture Description in SC, don't use Special Character! Своя Картинка @@ -507,7 +507,7 @@ When you want to use it as Avatar the image will be detached! &Закрыть - + JSON Error Ошибка JSON @@ -520,57 +520,57 @@ When you want to use it as Avatar the image will be detached! Просмотрщик карты Snapmatic - + Close viewer Закрыть просмотрщик - + &Close &Закрыть - + Apply new position Применить новую позицию - + &Apply &Применить - + Revert old position Вернуть старую позицию - + &Revert &Откатить - + Select new position Выбрать новую позицию - + &Select &Выбрать - + Quit select position Покинуть выбор позиции - + &Done &Готово - + X: %1 Y: %2 X and Y position @@ -724,26 +724,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 Найдено: %1 - - - - - - - - + + + + + + + + Language: %1 Язык: %1 @@ -764,7 +764,7 @@ Y: %2 - + Participate in %1 User Statistics Участвовать в пользовательской статистике %1 @@ -797,8 +797,8 @@ Y: %2 - - + + Participation ID: %1 Номер участника: %1 @@ -852,8 +852,8 @@ Y: %2 - - + + Current: %1 Сейчас: %1 @@ -885,95 +885,95 @@ Y: %2 От&мена - + System System in context of System default Система - + %1 (Game language) Next closest language compared to the Game settings %1 (Язык игры) - - + + %1 (Closest to Interface) Next closest language compared to the Interface %1 (Совпадает с интерфейсом) - - - + + + Auto Automatic language choice. Автоматически - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (Приоритетный язык) - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. Другая папка будет загружена после перезапуска %1. - + View %1 User Statistics Online Посмотреть пользовательскую статистику %1 онлайн - + Not registered Не зарегистрирован - - - - + + + + Yes Да - - + + No Нет - - + + OS defined Настройка от ОС - - + + Steam defined Настройка от Steam - + No Profile No Profile, as default Нет профиля - - - + + + Profile: %1 Профиль: %1 @@ -1023,37 +1023,37 @@ Y: %2 Экспортировать - - + + Export as &Picture... Экспортировать как &картинку... - - + + Export as &Snapmatic... Экспортировать как &Snapmatic... - - + + &Overwrite Image... &Перезаписать картинку... - - + + &Edit Properties... &Изменить свойства... - - + + Open &Map Viewer... Открыть &карту... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1062,39 +1062,39 @@ Arrow Keys - Navigate Стрелки - Навигация - - + + Snapmatic Picture Viewer Просмотрщик фотографий Snapmatic - - + + Failed at %1 Ошибка при %1 - - + + No Crew Вне банды - - + + No Players Игроков нет - + Avatar Preview Mode Press 1 for Default View Режим просмотра аватарок Нажмите 1 для стандартного просмотра - + Unknown Location Неизвестное место @@ -1196,8 +1196,8 @@ Press 1 for Default View Картинки Snapmatic (PRDR*) - - + + Open &JSON Editor... Открыть &редактор JSON... @@ -1230,28 +1230,28 @@ Press 1 for Default View &Отмена - + Add Players... Добавить игроков... - + Failed to add more Players because the limit of Players are %1! Невозможно добавить больше игроков из-за ограничения в %1! - - + + Add Player... Добавить игрока... - + Enter Social Club Player ID Введите идентификатор игрока из Social Club - + Failed to add Player %1 because Player %1 is already added! Нельзя повторно добавить игрока %1, %1 уже добавлен! @@ -1299,12 +1299,12 @@ Press 1 for Default View Загрузка... - + Snapmatic Loader Загрузчик Snapmatic - + <h4>Following Snapmatic Pictures got repaired</h4>%1 Change wording if the %1 is not a multiline beginning at new line @@ -1313,23 +1313,23 @@ Press 1 for Default View - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... Импортировать... @@ -1344,13 +1344,13 @@ Press 1 for Default View Импортировать - + Savegames files (SRDR*) Файлы сохранения (SRDR*) - + Snapmatic pictures (PRDR*) Картинка Snapmatic (PRDR*) @@ -1358,19 +1358,19 @@ Press 1 for Default View - + All files (**) Все файлы (**) - - + + Import file %1 of %2 files Импортируются файлы %1 из %2 - + Import failed with... %1 @@ -1379,20 +1379,20 @@ Press 1 for Default View %1 - + Failed to read Snapmatic picture Не удалось загрузить картинку Snapmatic - + Failed to read Savegame file Не удалось загрузить файл сохранения - - + + No valid file is selected Выбранный файл неверен @@ -1403,145 +1403,145 @@ Press 1 for Default View Включенные картинки: %1 из %2 - + Importable files (%1) Файлы для импорта (%1) - + All image files (%1) Все файлы изображений (%1) - + Can't import %1 because file can't be open Не удалось открыть %1, файл не может быть открыт - + Can't import %1 because file can't be parsed properly Не получилось импортировать %1, файл не может быть правильно обработан - + Can't import %1 because file format can't be detected Не получилось импортировать %1, не удалось определить формат файла - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e Не удалось импортировать картинку Snapmatic, название не начинается с PRDR или не заканчивается с .r5e - + 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 и файлы сохранений? - + Prepare Content for Import... Подготовка данных к импорту... - - + + Qualify as Avatar Пометить как Аватар - - - - - - + + + + + + No Snapmatic pictures are selected Не выделена ни одна картинка Snapmatic - - - - + + + + Patch selected... Пропатчить выделенные... - - - - - - - - + + + + + + + + Patch file %1 of %2 files Изменяется файл %1 из %2 - - - - - - + + + + + + %1 failed with... %2 @@ -1551,86 +1551,86 @@ Press 1 for Default View %2 - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? Можно использовать слово "приписать" - + Failed to remove all selected Snapmatic pictures and/or Savegame files Не удалось удалить все выделенные картинки Snapmatic и/или сохранения - + Qualify %1 failed with... Помечание - - + + Change Players... Изменить игроков... - + Change Players %1 failed with... Измение игроков - - - + + + Change Crew... Изменить банду... - + Failed to enter a valid Snapmatic Crew ID Введённый идентификатор банды не верен - + Change Crew %1 failed with... Изменение банды - - - + + + Change Title... Изменить заголовок... - + Failed to enter a valid Snapmatic title Введённый заголовок не верен - + Change Title %1 failed with... Изменение заголовка - + %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... Экпортировать выделенное... - + Export failed with... %1 @@ -1651,7 +1651,7 @@ Press 1 for Default View Все файлы профиля (*.r5e SRDR* PRDR*) - + RDR 2 Export (*.r5e) RDR 2 Export (*.r5e) @@ -1791,32 +1791,32 @@ Press 1 for Default View Не удалось удалить сохранение %1 - + &View &Просмотр - + &Remove &Удалить - + &Select &Выбрать - + &Deselect Сн&ять выбор - + Select &All В&ыбрать все - + &Deselect All Снять выбо&р со всех @@ -1826,7 +1826,7 @@ Press 1 for Default View Копировать сохранение - + &Export &Экспортировать @@ -1874,11 +1874,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1930,7 +1930,7 @@ Press 1 for Default View Meme - + Snapmatic Title Заголовок Snapmatic @@ -2013,42 +2013,42 @@ Press 1 for Default View Нет - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? <h4>Несохранённые изменения</h4>Сохранить изменения в JSON перед выходом? - + Patching of Snapmatic Properties failed because of %1 Не удалось изменить свойства Snapmatic из-за %1 - + Patching of Snapmatic Properties failed because of JSON Error Не удалось измененить свойства Snapmatic из-за ошибки JSON - - + + Patching of Snapmatic Properties failed because of I/O Error Не удалось измененить свойства Snapmatic из-за проблемы ввода/вывода - + New Snapmatic title: Новый заголовок Snapmatic: - + Snapmatic Crew Банда на Snapmatic - + New Snapmatic crew: Новая банда на Snapmatic: @@ -2103,19 +2103,19 @@ Press 1 for Default View Чтение из файла %1 из-за %2 - + JSON is incomplete and malformed JSON не полный и повреждён - + JSON is incomplete JSON частично отсутствует - + JSON is malformed JSON повреждён @@ -2186,52 +2186,52 @@ Press 1 for Default View Не удалось показать %1 в списке картинок Snapmatic в игре - + Edi&t &Правка - + Show &In-game Показывать в &игре - + Hide &In-game Ск&рыть в игре - + &Export &Экспорт - + &View По&казать - + &Remove У&далить - + &Select &Выделить - + &Deselect Сн&ять выделение - + Select &All В&ыбрать все - + &Deselect All Снять выбо&р со всех @@ -2422,7 +2422,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2465,15 +2465,15 @@ Press 1 for Default View Пере&загрузить - - + + Show In-game Показывать в игре - - + + Hide In-game Скрыть в игре diff --git a/res/gta5sync_uk.ts b/res/gta5sync_uk.ts index f6c7401..d427a44 100644 --- a/res/gta5sync_uk.ts +++ b/res/gta5sync_uk.ts @@ -204,21 +204,21 @@ Pictures and Savegames &Закрити - - + + Snapmatic Image Editor Редактор Snapmatic зображень - + Patching of Snapmatic Image failed because of I/O Error Виправлення Snapmatic зображення не вдалося через I/O Error - + Patching of Snapmatic Image failed because of Image Error Виправлення Snapmatic зображення не вдалося через помилку картинки @@ -356,14 +356,14 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! Користувацький Аватар - + Custom Picture Custom Picture Description in SC, don't use Special Character! Користувацьке Зображення @@ -503,7 +503,7 @@ When you want to use it as Avatar the image will be detached! &Закрити - + JSON Error JSON помилка @@ -516,57 +516,57 @@ When you want to use it as Avatar the image will be detached! Перегляд карти Snapmatic - + Close viewer Закрити переглядач - + &Close &Закрити - + Apply new position Застосувати нову позицію - + &Apply &Застосувати - + Revert old position Повернути стару позицію - + &Revert &Повернути - + Select new position Виберіть нову позицію - + &Select &Виділення - + Quit select position Вийти з вибору позиції - + &Done &Готово - + X: %1 Y: %2 X and Y position @@ -720,26 +720,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 Знайдено:%1 - - - - - - - - + + + + + + + + Language: %1 Мова: %1 @@ -761,7 +761,7 @@ Y: %2 - + Participate in %1 User Statistics Опитування %1 про устаткування ПК @@ -797,8 +797,8 @@ Y: %2 - - + + Participation ID: %1 ID учасника : %1 @@ -820,8 +820,8 @@ Y: %2 - - + + Current: %1 Зараз: %1 @@ -878,95 +878,95 @@ Y: %2 &Скасувати - + System System in context of System default Як у системи - + %1 (Game language) Next closest language compared to the Game settings %1 (Мова гри) - - + + %1 (Closest to Interface) Next closest language compared to the Interface %1 (Співпадає з інтерфейсом) - - - + + + Auto Automatic language choice. Автоматично - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (пріоритет мови) - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. Нова користувацька папка буде ініціалізована після перезапуску %1. - + No Profile No Profile, as default Жодного - - - + + + Profile: %1 Профіль: %1 - + View %1 User Statistics Online Переглянути користувацьку статистику %1 онлайн - + Not registered Не зареєстрований - - - - + + + + Yes Так - - + + No Ні - - + + OS defined Визначається ОС - - + + Steam defined Визначається Steam @@ -1010,43 +1010,43 @@ Y: %2 &Закрити - - + + Export as &Picture... Експортувати як &зображення... - - + + Export as &Snapmatic... Експортувати як &Snapmatic... - - + + &Edit Properties... &Змінити властивості... - - + + &Overwrite Image... &Перезаписати зображення... - - + + Open &Map Viewer... Відкрити &карту... - - + + Open &JSON Editor... Відкрити редактор &JSON... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1055,37 +1055,37 @@ Arrow Keys - Navigate Стрілки - Навігація - - + + Snapmatic Picture Viewer Переглядач фотографій Snapmatic - - + + Failed at %1 Помилка на%1 - - + + No Players Гравців немає - - + + No Crew Банди немає - + Unknown Location Невідома локація - + Avatar Preview Mode Press 1 for Default View Режим для аватарок @@ -1223,28 +1223,28 @@ Press 1 for Default View &Скасувати - + Add Players... Додати гравців... - + Failed to add more Players because the limit of Players are %1! Не вдалося додати більше гравців, бо ліміт %1! - - + + Add Player... Додати гравця... - + Enter Social Club Player ID Введіть ID гравця Social Club - + Failed to add Player %1 because Player %1 is already added! Не вдалося додати гравця %1, оскільки %1 вже доданий! @@ -1296,23 +1296,23 @@ Press 1 for Default View - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... Імпортування... @@ -1329,14 +1329,14 @@ Press 1 for Default View - + All image files (%1) Файли зображень (%1) - + All files (**) Усі файли (**) @@ -1344,14 +1344,14 @@ Press 1 for Default View - + Can't import %1 because file can't be open Неможливо імпортувати %1, оскільки файл не може бути відкритий - + Can't import %1 because file can't be parsed properly Неможливо імпортувати %1, оскільки файл неможливо розібрати правильно @@ -1366,53 +1366,53 @@ Press 1 for Default View Завантаження... - + Snapmatic Loader Snapmatic Loader - + <h4>Following Snapmatic Pictures got repaired</h4>%1 <h4>Наступні Snapmatic зображення були відновлені</h4>%1 - + Importable files (%1) Імпортуються файли (%1) - + RDR 2 Export (*.r5e) RDR 2 Export (*.r5e) - + Savegames files (SRDR*) Файли збереження гри (SRDR*) - + Snapmatic pictures (PRDR*) Snapmatic зображення (PRDR*) - - + + No valid file is selected Вибрані недійсні файли - - + + Import file %1 of %2 files Імпортується файл %1 з %2 файлів - + Import failed with... %1 @@ -1421,81 +1421,81 @@ Press 1 for Default View %1 - + Failed to read Snapmatic picture Не вдалося прочитати Snapmatic картинку - + Failed to read Savegame file Не вдалося прочитати файл збереження гри - + Can't import %1 because file format can't be detected Неможливо імпортувати%1, оскільки формат файлу не може бути виявлений - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e Не вдалося імпортувати зображення Snapmatic, файл не починається з PRDR або закінчується .r5e - + 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 Не вдалося імпортувати Сейв, немає вільного слота - - - - - + + + + + Export selected... Експорт обраних... - - + + JPG pictures and GTA Snapmatic JPG картинки і GTA Snapmatic - - + + JPG pictures only Тільки JPG картинки - - + + GTA Snapmatic only Тільки GTA Snapmatic - + %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>Експортувати як: - + Initialising export... Ініціалізація експорту... - + Export failed with... %1 @@ -1504,45 +1504,45 @@ Press 1 for Default View %1 - - + + No Snapmatic pictures or Savegames files are selected Не вибрано жодного Snapmatic зображення або файлу збереження - - - + + + Remove selected Видалити вибрані - + You really want remove the selected Snapmatic picutres and Savegame files? Ви дійсно хочете видалити вибрані Snapmatic фотографії та файли збереження гри? - + Failed to remove all selected Snapmatic pictures and/or Savegame files Не вдалося видалити всі обрані Snapmatic фотографії та/або Сейви - - - - - - + + + + + + No Snapmatic pictures are selected Не вибрано жодного Snapmatic зображення - - - - - - + + + + + + %1 failed with... %2 @@ -1552,91 +1552,91 @@ Press 1 for Default View %2 - + Prepare Content for Import... Підготувати контент для імпорту ... - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? Snapmatic зображення з uid %1 вже існує, ви хочете призначити для імпорту новий uid та мітку часу? - - + + Qualify as Avatar Позначити як Аватар - - - - + + + + Patch selected... Вибір патчу... - - - - - - - - + + + + + + + + Patch file %1 of %2 files Патч файлу %1 з %2 файлів - + Qualify %1 failed with... Якість - - + + Change Players... Зміна гравців... - + Change Players %1 failed with... Змінити гравців - - - + + + Change Crew... Зміна банди... - + Failed to enter a valid Snapmatic Crew ID Не вдалося ввести дійсний ID Банди Snapmatic - + Change Crew %1 failed with... Змінити банду - - - + + + Change Title... Зміна назви... - + Failed to enter a valid Snapmatic title Не вдалося ввести дійсний заголовок Snapmatic - + Change Title %1 failed with... Змінити назву @@ -1738,37 +1738,37 @@ Press 1 for Default View Видалити - + &View &Перегляд - + &Export &Експорт - + &Remove &Видалення - + &Select &Виділення - + &Deselect &Зняти виділення - + Select &All Вибрати &усі - + &Deselect All &Зняти виділення усіх @@ -1864,11 +1864,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1950,48 +1950,48 @@ Press 1 for Default View &Скасувати - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? <h4> Виявлені незбережені зміни </h4> Ви хочете зберегти вміст JSON перед тим, як вийти? - + Patching of Snapmatic Properties failed because of %1 Змінити властивості Snapmatic не вдалося тому що%1 - - + + Patching of Snapmatic Properties failed because of I/O Error Змінити властивості Snapmatic не вдалося через I/O Помилку - + Patching of Snapmatic Properties failed because of JSON Error Змінити властивості Snapmatic не вдалося через JSON Помилку - + Snapmatic Crew Snapmatic банда - + New Snapmatic crew: Нова Snapmatic банда: - + Snapmatic Title Snapmatic назва - + New Snapmatic title: Новий Snapmatic заголовок: @@ -2047,19 +2047,19 @@ Press 1 for Default View SnapmaticPicture - + JSON is incomplete and malformed JSON неповний та неправильний - + JSON is incomplete JSON неповний - + JSON is malformed JSON неправильний @@ -2166,52 +2166,52 @@ Press 1 for Default View Видалити - + Edi&t Редагува&ти - + Show &In-game Показати &у грі - + Hide &In-game Сховати &у грі - + &Export &Експортувати - + &View &Переглянути - + &Remove &Видалити - + &Select &Виділення - + &Deselect &Зняти виділення - + Select &All Вибрати &усі - + &Deselect All &Зняти виділення усіх @@ -2394,7 +2394,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2431,15 +2431,15 @@ Press 1 for Default View Змінити &гравців... - - + + Show In-game Показати у грі - - + + Hide In-game Сховати у грі diff --git a/res/gta5sync_zh_TW.ts b/res/gta5sync_zh_TW.ts index 54c8e22..86f32c7 100644 --- a/res/gta5sync_zh_TW.ts +++ b/res/gta5sync_zh_TW.ts @@ -200,21 +200,21 @@ Pictures and Savegames 關閉(&C) - - + + Snapmatic Image Editor Snapmatic 圖片編輯器 - + Patching of Snapmatic Image failed because of I/O Error I/O 錯誤,Snapmatic 圖片更新失敗 - + Patching of Snapmatic Image failed because of Image Error 圖片錯誤,Snapmatic 圖片更新失敗 @@ -352,14 +352,14 @@ Pictures and Savegames - + Custom Avatar Custom Avatar Description in SC, don't use Special Character! 自訂大頭貼 - + Custom Picture Custom Picture Description in SC, don't use Special Character! 自訂圖片 @@ -498,7 +498,7 @@ When you want to use it as Avatar the image will be detached! 關閉(&C) - + JSON Error JSON 錯誤 @@ -511,57 +511,57 @@ When you want to use it as Avatar the image will be detached! Snapmatic 地圖檢視器 - + Close viewer 關閉檢視器 - + &Close 關閉(&C) - + Apply new position 套用新位置 - + &Apply 套用(&A) - + Revert old position 還原舊位置 - + &Revert 還原(&R) - + Select new position 選擇新位置 - + &Select 選擇(&S) - + Quit select position 離開位置選擇 - + &Done 完成(&D) - + X: %1 Y: %2 X and Y position @@ -715,26 +715,26 @@ Y: %2 - - - - - - + + + + + + Found: %1 找到: %1 - - - - - - - - + + + + + + + + Language: %1 語言: %1 @@ -755,7 +755,7 @@ Y: %2 - + Participate in %1 User Statistics 參與 %1 使用者統計 @@ -791,8 +791,8 @@ Y: %2 - - + + Participation ID: %1 參與 ID: %1 @@ -814,8 +814,8 @@ Y: %2 - - + + Current: %1 目前: %1 @@ -872,95 +872,95 @@ Y: %2 取消(&C) - + System System in context of System default 系統 - - + + %1 (Closest to Interface) Next closest language compared to the Interface %1 (與介面接近的語言) - - - + + + Auto Automatic language choice. 自動 - + %1 (Language priority) First language a person can talk with a different person/application. "Native" or "Not Native". %1 (語言優先) - + %1 (Game language) Next closest language compared to the Game settings %1 (遊戲語言) - + %1 %1 %1 - + The new Custom Folder will initialise after you restart %1. 自訂資料夾將在 %1 重新啟動後初始化. - + No Profile No Profile, as default - - - + + + Profile: %1 設定檔: %1 - + View %1 User Statistics Online 檢視 %1 使用者統計資訊 - + Not registered 未註冊參與 - - - - + + + + Yes - - + + No - - + + OS defined 系統定義 - - + + Steam defined Steam 定義 @@ -1004,43 +1004,43 @@ Y: %2 關閉(&C) - - + + Export as &Picture... 匯出成圖片(&P)... - - + + Export as &Snapmatic... 匯出成 Snapmatic(&S)... - - + + &Edit Properties... 編輯屬性(&E) ... - - + + &Overwrite Image... 修改圖片(&O)... - - + + Open &Map Viewer... 開啟地圖檢視器(&M)... - - + + Open &JSON Editor... 開啟 JSON 編輯器(&J)... - + Key 1 - Avatar Preview Mode Key 2 - Toggle Overlay Arrow Keys - Navigate @@ -1049,37 +1049,37 @@ Arrow Keys - Navigate 方向鍵 - 導覽 - - + + Snapmatic Picture Viewer Snapmatic 圖片檢視器 - - + + Failed at %1 失敗: %1 - - + + No Players - - + + No Crew - + Unknown Location 未知地點 - + Avatar Preview Mode Press 1 for Default View 大頭貼預覽模式 @@ -1217,28 +1217,28 @@ Press 1 for Default View 取消(&C) - + Add Players... 新增玩家... - + Failed to add more Players because the limit of Players are %1! 因為數量限制 %1,無法新增更多玩家! - - + + Add Player... 新增玩家... - + Enter Social Club Player ID 輸入玩家的 Social Club ID - + Failed to add Player %1 because Player %1 is already added! 新增 %1 失敗,因為 %1 已被新增! @@ -1290,23 +1290,23 @@ Press 1 for Default View - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + Import... 匯入... @@ -1323,14 +1323,14 @@ Press 1 for Default View - + All image files (%1) 所有圖片 (%1) - + All files (**) 所有檔案 (**) @@ -1338,14 +1338,14 @@ Press 1 for Default View - + Can't import %1 because file can't be open 無法匯入 %1,因為檔案無法開啟 - + Can't import %1 because file can't be parsed properly 無法匯入 %1,因為檔案無法正確解析 @@ -1360,179 +1360,179 @@ Press 1 for Default View 載入中... - + Snapmatic Loader Snapmatic 載入器 - + <h4>Following Snapmatic Pictures got repaired</h4>%1 <h4>下列的 Snapmatic 圖片已被更新</h4>%1 - + Importable files (%1) 可匯入的檔案 (%1) - + RDR 2 Export (*.r5e) RDR 2 Export (*.r5e) - + Savegames files (SRDR*) 遊戲存檔 (SRDR*) - + Snapmatic pictures (PRDR*) Snapmatic 圖片 (PRDR*) - - + + No valid file is selected 沒有選擇有效的檔案 - - + + Import file %1 of %2 files 匯入檔案 %1 共 %2 個 - + Import failed with... %1 %1 匯入失敗 - + Failed to read Snapmatic picture 無法讀取 Snapmatic 圖片 - + Failed to read Savegame file 無法讀取遊戲存檔 - + Can't import %1 because file format can't be detected 無法匯入 %1,因為無法檢測該檔案格式 - + Failed to import the Snapmatic picture, file not begin with PRDR or end with .r5e 匯入 Snapmatic 圖片失敗,檔案不是 PRDR 開頭或附檔名不是 .r5e - + 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 匯入遊戲存檔失敗,沒有遊戲存檔欄位 - - - - - + + + + + Export selected... 匯出所選... - - + + JPG pictures and GTA Snapmatic JPG 圖片和 GTA Snapmatic - - + + JPG pictures only 只有 JPG 圖片 - - + + GTA Snapmatic only 只有 GTA Snapmatic - + %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>匯出成: - + Initialising export... 初始化... - + Export failed with... %1 %1 匯出失敗 - - + + No Snapmatic pictures or Savegames files are selected 未選擇 Snapmatic 圖片或遊戲存檔 - - - + + + Remove selected 移除所選 - + You really want remove the selected Snapmatic picutres and Savegame files? 你想移除所選的 Snapmatic 圖片/存檔嗎? - + Failed to remove all selected Snapmatic pictures and/or Savegame files 無法移除所選擇的 Snapmatic 圖片/遊戲存檔 - - - - - - + + + + + + No Snapmatic pictures are selected 未選擇 Snapmatic 圖片 - - - - - - + + + + + + %1 failed with... %2 @@ -1542,91 +1542,91 @@ Press 1 for Default View %2 - + Prepare Content for Import... 準備匯入內容... - + A Snapmatic picture already exists with the uid %1, you want assign your import a new uid and timestamp? 已有與 uid %1 相同的 Snapmatic 圖片,你想要匯入新的 uid 和時間戳嗎? - - + + Qualify as Avatar 合格大頭貼 - - - - + + + + Patch selected... 修改所選... - - - - - - - - + + + + + + + + Patch file %1 of %2 files 修改檔案 %1 共 %2 個檔案 - + Qualify %1 failed with... 合格 - - + + Change Players... 更改玩家... - + Change Players %1 failed with... 更改玩家 - - - + + + Change Crew... 更改幫會... - + Failed to enter a valid Snapmatic Crew ID 輸入了無效的幫會 ID - + Change Crew %1 failed with... 更改幫會 - - - + + + Change Title... 更改標題... - + Failed to enter a valid Snapmatic title 輸入了無效的標題 - + Change Title %1 failed with... 更改標題 @@ -1728,37 +1728,37 @@ Press 1 for Default View 刪除 - + &View 檢視(&V) - + &Export 匯出(&E) - + &Remove 移除(&R) - + &Select 選擇(&S) - + &Deselect 取消選擇(&D) - + Select &All 選擇全部(&A) - + &Deselect All 取消選擇全部(&D) @@ -1854,11 +1854,11 @@ Press 1 for Default View - - - - - + + + + + Snapmatic Properties @@ -1940,48 +1940,48 @@ Press 1 for Default View 取消(&C) - + <h4>Unsaved changes detected</h4>You want to save the JSON content before you quit? <h4>目前的變更未儲存</h4> 你想要在退出之前儲存 JSON 嗎? - + Patching of Snapmatic Properties failed because of %1 更新 Snapmatic 屬性失敗,因為 %1 - - + + Patching of Snapmatic Properties failed because of I/O Error 讀寫錯誤,未能更新 Snapmatic 屬性 - + Patching of Snapmatic Properties failed because of JSON Error JSON 錯誤,未能更新 Snapmatic 屬性 - + Snapmatic Crew 幫會 - + New Snapmatic crew: 輸入新的幫會: - + Snapmatic Title 標題 - + New Snapmatic title: 輸入新的標題: @@ -2037,19 +2037,19 @@ Press 1 for Default View SnapmaticPicture - + JSON is incomplete and malformed JSON 不完整和異常 - + JSON is incomplete JSON 不完整 - + JSON is malformed JSON 異常 @@ -2156,52 +2156,52 @@ Press 1 for Default View 刪除 - + Edi&t 編輯(&E) - + Show &In-game 在遊戲中顯示(&I) - + Hide &In-game 在遊戲中隱藏(&I) - + &Export 匯出(&E) - + &View 檢視(&V) - + &Remove 移除(&R) - + &Select 選擇(&S) - + &Deselect 取消選擇(&D) - + Select &All 選擇全部(&A) - + &Deselect All 取消選擇全部(&D) @@ -2383,7 +2383,7 @@ Press 1 for Default View - + Select RDR 2 Folder... @@ -2420,15 +2420,15 @@ Press 1 for Default View 更改玩家(&P)... - - + + Show In-game 在遊戲中顯示 - - + + Hide In-game 在遊戲中隱藏