added ability to change Snapmatic Location

This commit is contained in:
Syping 2017-11-12 15:58:59 +01:00
parent f62b1b08c0
commit a591adf6ea
33 changed files with 1586 additions and 730 deletions

View File

@ -32,14 +32,14 @@ before_script:
script:
- cd qt5
- qmake -qt=5 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$PACKAGE_VERSION-dev2\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
- qmake -qt=5 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$PACKAGE_VERSION-dev3\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
- make -j 4
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt5 --pkgversion=$PACKAGE_VERSION --pkgrelease=dev2 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view,gta5view-qt4 --replaces=gta5view,gta5view-qt4 --pakdir=../../package
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt5 --pkgversion=$PACKAGE_VERSION --pkgrelease=dev3 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view,gta5view-qt4 --replaces=gta5view,gta5view-qt4 --pakdir=../../package
- cd ..
- cd qt4
- qmake -qt=4 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$PACKAGE_VERSION-dev2\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
- qmake -qt=4 GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=c++11 DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"$PACKAGE_VERSION-dev3\\\\\\\"" DEFINES+=GTA5SYNC_QCONF ../../gta5view.pro
- make -j 4
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt4 --pkgversion=$PACKAGE_VERSION --pkgrelease=dev2 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqtcore4,libqtgui4,libqt4-network,qtcore4-l10n --conflicts=gta5view,gta5view-qt5 --replaces=gta5view,gta5view-qt5 --pakdir=../../package
- sudo checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt4 --pkgversion=$PACKAGE_VERSION --pkgrelease=dev3 --pkggroup=utility --maintainer="Syping on Travis \<travisci@syping.de\>" --requires=libqtcore4,libqtgui4,libqt4-network,qtcore4-l10n --conflicts=gta5view,gta5view-qt5 --replaces=gta5view,gta5view-qt5 --pakdir=../../package
- cd ..
deploy:

View File

@ -32,9 +32,11 @@
#include <QUrl>
#define crewMaxPages 83
#define maxLoadFails 3
DatabaseThread::DatabaseThread(CrewDatabase *crewDB, QObject *parent) : QThread(parent), crewDB(crewDB)
{
continueLastCrew = true;
threadRunning = true;
}
@ -46,7 +48,7 @@ void DatabaseThread::run()
QStringList crewListR;
// Register thread loop end signal
QObject::connect(this, SIGNAL(threadEndCommited()), &threadLoop, SLOT(quit()));
QObject::connect(this, SIGNAL(threadTerminated()), &threadLoop, SLOT(quit()));
// Setup crewList for Quick time scan
crewList = crewDB->getCrews();
@ -130,7 +132,6 @@ void DatabaseThread::scanCrewReference(const QStringList &crewList, const int &r
if (threadRunning && crewID != QLatin1String("0"))
{
QNetworkAccessManager *netManager = new QNetworkAccessManager();
QNetworkRequest netRequest(AppEnv::getCrewFetchingUrl(crewID));
#if QT_VERSION >= 0x050600
netRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
@ -144,9 +145,10 @@ void DatabaseThread::scanCrewReference(const QStringList &crewList, const int &r
QEventLoop *downloadLoop = new QEventLoop();
QObject::connect(netReply, SIGNAL(finished()), downloadLoop, SLOT(quit()));
QObject::connect(this, SIGNAL(threadEndCommited()), downloadLoop, SLOT(quit()));
if (!continueLastCrew) { QObject::connect(this, SIGNAL(threadTerminated()), downloadLoop, SLOT(quit())); }
QTimer::singleShot(30000, downloadLoop, SLOT(quit()));
downloadLoop->exec();
downloadLoop->disconnect();
delete downloadLoop;
if (netReply->isFinished())
@ -168,11 +170,15 @@ void DatabaseThread::scanCrewReference(const QStringList &crewList, const int &r
}
}
if (threadRunning)
{
QEventLoop *waitingLoop = new QEventLoop();
QTimer::singleShot(requestDelay, waitingLoop, SLOT(quit()));
QObject::connect(this, SIGNAL(threadEndCommited()), waitingLoop, SLOT(quit()));
if (!continueLastCrew) { QObject::connect(this, SIGNAL(threadTerminated()), waitingLoop, SLOT(quit())); }
waitingLoop->exec();
waitingLoop->disconnect();
delete waitingLoop;
}
delete netReply;
delete netManager;
@ -186,14 +192,14 @@ void DatabaseThread::scanCrewMembersList(const QStringList &crewList, const int
{
if (threadRunning && crewID != QLatin1String("0"))
{
int currentFail = 0;
int currentPage = 0;
int foundPlayers = 0;
int totalPlayers = 1000;
while(foundPlayers < totalPlayers && currentPage < maxPages)
while(foundPlayers < totalPlayers && currentPage < maxPages && (continueLastCrew ? true : threadRunning))
{
QNetworkAccessManager *netManager = new QNetworkAccessManager();
QNetworkRequest netRequest(AppEnv::getPlayerFetchingUrl(crewID, currentPage));
#if QT_VERSION >= 0x050600
netRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
@ -207,9 +213,10 @@ void DatabaseThread::scanCrewMembersList(const QStringList &crewList, const int
QEventLoop *downloadLoop = new QEventLoop();
QObject::connect(netReply, SIGNAL(finished()), downloadLoop, SLOT(quit()));
QObject::connect(this, SIGNAL(threadEndCommited()), downloadLoop, SLOT(quit()));
if (!continueLastCrew) { QObject::connect(this, SIGNAL(threadTerminated()), downloadLoop, SLOT(quit())); }
QTimer::singleShot(30000, downloadLoop, SLOT(quit()));
downloadLoop->exec();
downloadLoop->disconnect();
delete downloadLoop;
if (netReply->isFinished())
@ -227,30 +234,43 @@ void DatabaseThread::scanCrewMembersList(const QStringList &crewList, const int
for (QVariant memberVariant : memberList)
{
QMap<QString, QVariant> memberMap = memberVariant.toMap();
foundPlayers++;
if (memberMap.contains("RockstarId") && memberMap.contains("Name"))
{
int RockstarId = memberMap["RockstarId"].toInt();
QString memberName = memberMap["Name"].toString();
if (!memberName.isEmpty() && RockstarId != 0)
{
foundPlayers++;
emit playerNameFound(RockstarId, memberName);
}
}
}
}
QEventLoop *waitingLoop = new QEventLoop();
QTimer::singleShot(requestDelay, waitingLoop, SLOT(quit()));
QObject::connect(this, SIGNAL(threadEndCommited()), waitingLoop, SLOT(quit()));
waitingLoop->exec();
delete waitingLoop;
currentPage++;
}
else
{
currentFail++;
if (currentFail == maxLoadFails)
{
currentFail = 0;
currentPage++;
}
}
delete netReply;
delete netManager;
if (foundPlayers < totalPlayers && currentPage < maxPages && (continueLastCrew ? true : threadRunning))
{
QEventLoop *waitingLoop = new QEventLoop();
QTimer::singleShot(requestDelay, waitingLoop, SLOT(quit()));
if (!continueLastCrew) { QObject::connect(this, SIGNAL(threadTerminated()), waitingLoop, SLOT(quit())); }
waitingLoop->exec();
waitingLoop->disconnect();
delete waitingLoop;
}
}
}
}
@ -258,7 +278,7 @@ void DatabaseThread::scanCrewMembersList(const QStringList &crewList, const int
void DatabaseThread::deleteCompatibleCrews(QStringList *crewList)
{
for (QString& crewNID : *crewList)
for (QString crewNID : *crewList)
{
if (crewDB->isCompatibleCrew(crewNID))
{
@ -270,7 +290,7 @@ void DatabaseThread::deleteCompatibleCrews(QStringList *crewList)
QStringList DatabaseThread::deleteCompatibleCrews(const QStringList &crewList)
{
QStringList crewListR = crewList;
for (QString& crewNID : crewListR)
for (QString crewNID : crewListR)
{
if (crewDB->isCompatibleCrew(crewNID))
{
@ -280,8 +300,8 @@ QStringList DatabaseThread::deleteCompatibleCrews(const QStringList &crewList)
return crewListR;
}
void DatabaseThread::doEndThread()
void DatabaseThread::terminateThread()
{
threadRunning = false;
emit threadEndCommited();
emit threadTerminated();
}

View File

@ -30,7 +30,7 @@ public:
explicit DatabaseThread(CrewDatabase *crewDB, QObject *parent = 0);
public slots:
void doEndThread();
void terminateThread();
private:
CrewDatabase *crewDB;
@ -38,6 +38,7 @@ private:
void scanCrewReference(const QStringList &crewList, const int &requestDelay);
void deleteCompatibleCrews(QStringList *crewList);
QStringList deleteCompatibleCrews(const QStringList &crewList);
bool continueLastCrew;
bool threadRunning;
int plyrPerReq;
@ -49,7 +50,7 @@ signals:
void crewNameUpdated();
void playerNameFound(int playerID, QString playerName);
void playerNameUpdated();
void threadEndCommited();
void threadTerminated();
};
#endif // DATABASETHREAD_H

View File

@ -76,7 +76,7 @@ void ExportThread::run()
// End Picture Settings
int intExportProgress = 0;
foreach(ProfileWidget *widget, profileMap.keys())
for (ProfileWidget *widget : profileMap.keys())
{
if (widget->isSelected())
{

View File

@ -74,11 +74,5 @@ QString GlobalString::getLanguageFile()
QString GlobalString::getLanguage()
{
QString language = TCInstance->getCurrentLanguage();
QStringList langList = QString(language).replace("-", "_").split("_");
if (langList.length() >= 1)
{
language = langList.at(0);
}
return language;
return TCInstance->getCurrentAreaLanguage();
}

View File

@ -73,6 +73,7 @@ ImportDialog::~ImportDialog()
void ImportDialog::processImage()
{
if (workImage.isNull()) return;
QImage snapmaticImage = workImage;
QPixmap snapmaticPixmap(snapmaticResolutionW, snapmaticResolutionH);
snapmaticPixmap.fill(selectedColour);
@ -101,7 +102,7 @@ void ImportDialog::processImage()
snapmaticImage = snapmaticImage.scaled(snapmaticAvatarResolution, snapmaticAvatarResolution, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
snapmaticPainter.drawImage(snapmaticAvatarPlacementW + diffWidth, snapmaticAvatarPlacementH + diffHeight, snapmaticImage);
imageTitle = "Custom Avatar";
imageTitle = tr("Custom Avatar", "Custom Avatar Description in SC, don't use Special Character!");
}
else
{
@ -127,7 +128,7 @@ void ImportDialog::processImage()
snapmaticImage = snapmaticImage.scaled(snapmaticResolutionW, snapmaticResolutionH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
snapmaticPainter.drawImage(0 + diffWidth, 0 + diffHeight, snapmaticImage);
imageTitle = "Custom Picture";
imageTitle = tr("Custom Picture", "Custom Picture Description in SC, don't use Special Character!");
}
snapmaticPainter.end();
newImage = snapmaticPixmap.toImage();
@ -139,13 +140,38 @@ QImage ImportDialog::image()
return newImage;
}
void ImportDialog::setImage(const QImage &image_)
void ImportDialog::setImage(QImage *image_)
{
workImage = image_;
if (workImage.width() == workImage.height())
workImage = QImage();
if (image_->width() == image_->height())
{
insideAvatarZone = true;
ui->cbAvatar->setChecked(true);
if (image_->height() > snapmaticResolutionH)
{
workImage = image_->scaled(snapmaticResolutionH, snapmaticResolutionH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
delete image_;
}
else
{
workImage = *image_;
delete image_;
}
}
else if (image_->width() > snapmaticResolutionW && image_->width() > image_->height())
{
workImage = image_->scaledToWidth(snapmaticResolutionW, Qt::SmoothTransformation);
delete image_;
}
else if (image_->height() > snapmaticResolutionH && image_->height() > image_->width())
{
workImage = image_->scaledToHeight(snapmaticResolutionH, Qt::SmoothTransformation);
delete image_;
}
else
{
workImage = *image_;
delete image_;
}
processImage();
}

View File

@ -34,7 +34,7 @@ public:
~ImportDialog();
QImage image();
QString getImageTitle();
void setImage(const QImage &image);
void setImage(QImage *image);
bool isImportAgreed();
private slots:

197
MapLocationDialog.cpp Normal file
View File

@ -0,0 +1,197 @@
/*****************************************************************************
* gta5sync GRAND THEFT AUTO V SYNC
* Copyright (C) 2017 Syping
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
#include "MapLocationDialog.h"
#include "ui_MapLocationDialog.h"
#include "IconLoader.h"
#include "AppEnv.h"
#include <QPainter>
#include <QDebug>
MapLocationDialog::MapLocationDialog(double x, double y, QWidget *parent) :
QDialog(parent), xpos_old(x), ypos_old(y),
ui(new Ui::MapLocationDialog)
{
// Set Window Flags
setWindowFlags(windowFlags()^Qt::WindowContextHelpButtonHint);
ui->setupUi(this);
ui->cmdDone->setVisible(false);
ui->cmdApply->setVisible(false);
ui->cmdRevert->setVisible(false);
ui->cmdDone->setCursor(Qt::ArrowCursor);
// DPI calculation
qreal screenRatio = AppEnv::screenRatio();
int widgetMargin = qRound(3 * screenRatio);
ui->hlMapDialog->setContentsMargins(widgetMargin, widgetMargin, widgetMargin, widgetMargin);
ui->vlMapDialog->setSpacing(widgetMargin);
setMinimumSize(500 * screenRatio, 600 * screenRatio);
setMaximumSize(500 * screenRatio, 600 * screenRatio);
setFixedSize(500 * screenRatio, 600 * screenRatio);
setMouseTracking(true);
changeMode = false;
propUpdate = false;
drawPointOnMap(xpos_old, ypos_old);
}
MapLocationDialog::~MapLocationDialog()
{
delete ui;
}
void MapLocationDialog::drawPointOnMap(double xpos_d, double ypos_d)
{
qreal screenRatio = AppEnv::screenRatio();
int pointMakerSize = 8 * screenRatio;
QPixmap pointMakerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMakerSize, pointMakerSize));
QSize mapPixelSize = size();
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();
QPalette backgroundPalette;
backgroundPalette.setBrush(backgroundRole(), QBrush(mapPixmap));
setPalette(backgroundPalette);
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)));
}
void MapLocationDialog::on_cmdChange_clicked()
{
qreal screenRatio = AppEnv::screenRatio();
int pointMakerSize = 8 * screenRatio;
QPixmap pointMakerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMakerSize, pointMakerSize));
QCursor pointMakerCursor(pointMakerPixmap);
ui->cmdDone->setVisible(true);
ui->cmdApply->setVisible(false);
ui->cmdChange->setVisible(false);
ui->cmdRevert->setVisible(false);
setCursor(pointMakerCursor);
changeMode = true;
}
void MapLocationDialog::on_cmdDone_clicked()
{
ui->cmdDone->setVisible(false);
ui->cmdChange->setVisible(true);
if (xpos_new != xpos_old || ypos_new != ypos_old)
{
ui->cmdApply->setVisible(true);
ui->cmdRevert->setVisible(true);
}
setCursor(Qt::ArrowCursor);
changeMode = false;
}
void MapLocationDialog::updatePosFromEvent(int x, int y)
{
QSize mapPixelSize = size();
int xpos_ad = x;
int ypos_ad = mapPixelSize.height() - y;
double xrat = 10000 / (double)mapPixelSize.width();
double yrat = 12000 / (double)mapPixelSize.height();
double xpos_rv = xrat * xpos_ad;
double ypos_rv = yrat * ypos_ad;
double xpos_fp = xpos_rv - 4000;
double ypos_fp = ypos_rv - 4000;
drawPointOnMap(xpos_fp, ypos_fp);
}
void MapLocationDialog::mouseMoveEvent(QMouseEvent *ev)
{
if (!changeMode) { ev->ignore(); }
else if (ev->buttons() & Qt::LeftButton)
{
updatePosFromEvent(ev->x(), ev->y());
ev->accept();
}
else
{
ev->ignore();
}
}
void MapLocationDialog::mouseReleaseEvent(QMouseEvent *ev)
{
if (!changeMode) { ev->ignore(); }
else if (ev->button() == Qt::LeftButton)
{
updatePosFromEvent(ev->x(), ev->y());
ev->accept();
}
else
{
ev->ignore();
}
}
void MapLocationDialog::on_cmdApply_clicked()
{
propUpdate = true;
xpos_old = xpos_new;
ypos_old = ypos_new;
ui->cmdApply->setVisible(false);
ui->cmdRevert->setVisible(false);
}
void MapLocationDialog::on_cmdRevert_clicked()
{
drawPointOnMap(xpos_old, ypos_old);
ui->cmdApply->setVisible(false);
ui->cmdRevert->setVisible(false);
}
bool MapLocationDialog::propUpdated()
{
return propUpdate;
}
double MapLocationDialog::getXpos()
{
return xpos_old;
}
double MapLocationDialog::getYpos()
{
return ypos_old;
}
void MapLocationDialog::on_cmdClose_clicked()
{
close();
}

View File

@ -16,26 +16,48 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
#ifndef MAPPREVIEWDIALOG_H
#define MAPPREVIEWDIALOG_H
#ifndef MAPLOCATIONDIALOG_H
#define MAPLOCATIONDIALOG_H
#include <QDialog>
#include <QMouseEvent>
namespace Ui {
class MapPreviewDialog;
class MapLocationDialog;
}
class MapPreviewDialog : public QDialog
class MapLocationDialog : public QDialog
{
Q_OBJECT
public:
explicit MapPreviewDialog(QWidget *parent = 0);
explicit MapLocationDialog(double x, double y, QWidget *parent = 0);
void drawPointOnMap(double x, double y);
~MapPreviewDialog();
bool propUpdated();
double getXpos();
double getYpos();
~MapLocationDialog();
protected:
void mouseMoveEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
private slots:
void on_cmdDone_clicked();
void on_cmdApply_clicked();
void on_cmdChange_clicked();
void on_cmdRevert_clicked();
void updatePosFromEvent(int x, int y);
void on_cmdClose_clicked();
private:
Ui::MapPreviewDialog *ui;
Ui::MapLocationDialog *ui;
double xpos_old;
double ypos_old;
double xpos_new;
double ypos_new;
bool propUpdate;
bool changeMode;
};
#endif // MAPPREVIEWDIALOG_H
#endif // MAPLOCATIONDIALOG_H

218
MapLocationDialog.ui Normal file
View File

@ -0,0 +1,218 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MapLocationDialog</class>
<widget class="QDialog" name="MapLocationDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>500</width>
<height>600</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>500</width>
<height>600</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>600</height>
</size>
</property>
<property name="windowTitle">
<string>Snapmatic Map Viewer</string>
</property>
<layout class="QVBoxLayout" name="vlMapPreview">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="hlMapDialog">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<layout class="QVBoxLayout" name="vlPosLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="labPos">
<property name="styleSheet">
<string notr="true">QLabel{
color: rgb(255, 255, 255);
}</string>
</property>
</widget>
</item>
<item>
<spacer name="vsPosSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="hsMapDialog">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="vlMapDialog">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="cmdClose">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&amp;Close</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<spacer name="vsMapDialog">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="cmdApply">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&amp;Apply</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cmdRevert">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&amp;Revert</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cmdChange">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&amp;Set</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cmdDone">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&amp;Done</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,73 +0,0 @@
/*****************************************************************************
* gta5sync GRAND THEFT AUTO V SYNC
* Copyright (C) 2017 Syping
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
#include "MapPreviewDialog.h"
#include "ui_MapPreviewDialog.h"
#include "IconLoader.h"
#include "AppEnv.h"
#include <QPainter>
#include <QDebug>
MapPreviewDialog::MapPreviewDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MapPreviewDialog)
{
// Set Window Flags
setWindowFlags(windowFlags()^Qt::WindowContextHelpButtonHint);
ui->setupUi(this);
// DPI calculation
qreal screenRatio = AppEnv::screenRatio();
setMinimumSize(500 * screenRatio, 600 * screenRatio);
setMaximumSize(500 * screenRatio, 600 * screenRatio);
setFixedSize(500 * screenRatio, 600 * screenRatio);
}
MapPreviewDialog::~MapPreviewDialog()
{
delete ui;
}
void MapPreviewDialog::drawPointOnMap(double xpos_d, double ypos_d)
{
qreal screenRatio = AppEnv::screenRatio();
int pointMakerSize = 8 * screenRatio;
QPixmap pointMakerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMakerSize, pointMakerSize));
QSize mapPixelSize = size();
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();
ui->labPicture->setPixmap(mapPixmap);
}

View File

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MapPreviewDialog</class>
<widget class="QDialog" name="MapPreviewDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>500</width>
<height>600</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>500</width>
<height>600</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>600</height>
</size>
</property>
<property name="windowTitle">
<string>Snapmatic Map Viewer</string>
</property>
<layout class="QVBoxLayout" name="vlMapPreview">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="UiModLabel" name="labPicture">
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>UiModLabel</class>
<extends>QLabel</extends>
<header>uimod/UiModLabel.h</header>
<slots>
<signal>mouseMoved()</signal>
<signal>mouseReleased()</signal>
<signal>mousePressed()</signal>
<signal>mouseDoubleClicked()</signal>
</slots>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -125,18 +125,21 @@ void OptionsDialog::setupLanguageBox()
{
settings->beginGroup("Interface");
currentLanguage = settings->value("Language", "System").toString();
currentAreaLanguage = settings->value("AreaLanguage", "Auto").toString();
settings->endGroup();
QString cbSysStr = tr("%1 (Next Closest Language)", "First language a person can talk with a different person/application. \"Native\" or \"Not Native\".").arg(tr("System",
"System in context of System default"));
QString cbAutoStr = tr("%1 (Closest to Interface)", "Next closest language compared to the Interface").arg(tr("Auto", "Automatic language choice."));
ui->cbLanguage->addItem(cbSysStr, "System");
ui->cbAreaLanguage->addItem(cbAutoStr, "Auto");
QStringList availableLanguages;
availableLanguages << QString("en_GB");
#ifndef GTA5SYNC_QCONF
availableLanguages << TCInstance->listTranslations(AppEnv::getExLangFolder());
availableLanguages << TranslationClass::listTranslations(AppEnv::getExLangFolder());
#endif
availableLanguages << TCInstance->listTranslations(AppEnv::getInLangFolder());
availableLanguages << TranslationClass::listTranslations(AppEnv::getInLangFolder());
availableLanguages.removeDuplicates();
availableLanguages.sort();
@ -144,7 +147,6 @@ void OptionsDialog::setupLanguageBox()
{
QLocale langLocale(lang);
QString cbLangStr = langLocale.nativeLanguageName() % " (" % langLocale.nativeCountryName() % ") [" % lang % "]";
QString langIconStr = "flag-" % TranslationClass::getCountryCode(langLocale);
ui->cbLanguage->addItem(QIcon::fromTheme(langIconStr), cbLangStr, lang);
@ -158,6 +160,59 @@ void OptionsDialog::setupLanguageBox()
#endif
}
}
QString aCurrentLanguage = QString("en_GB");
if (TCInstance->isLanguageLoaded()) { aCurrentLanguage = TCInstance->getCurrentLanguage(); }
QLocale currentLocale = QLocale(aCurrentLanguage);
ui->labCurrentLanguage->setText(tr("Current: %1").arg(currentLocale.nativeLanguageName() % " (" % currentLocale.nativeCountryName() % ") [" % aCurrentLanguage % "]"));
availableLanguages.clear();
availableLanguages << TranslationClass::listAreaTranslations();
availableLanguages.removeDuplicates();
availableLanguages.sort();
for (QString lang : availableLanguages)
{
// correcting Language Location if possible
QString aLang = lang;
if (QFile::exists(":/global/global." % lang % ".loc"))
{
QFile locFile(":/global/global." % lang % ".loc");
if (locFile.open(QFile::ReadOnly))
{
aLang = QString::fromUtf8(locFile.readLine()).trimmed();
locFile.close();
}
}
QLocale langLocale(aLang);
QString cbLangStr = langLocale.nativeLanguageName() % " (" % langLocale.nativeCountryName() % ") [" % aLang % "]";
QString langIconStr = "flag-" % TranslationClass::getCountryCode(langLocale);
ui->cbAreaLanguage->addItem(QIcon::fromTheme(langIconStr), cbLangStr, lang);
if (currentAreaLanguage == lang)
{
#if QT_VERSION >= 0x050000
ui->cbAreaLanguage->setCurrentText(cbLangStr);
#else
int indexOfLang = ui->cbAreaLanguage->findText(cbLangStr);
ui->cbAreaLanguage->setCurrentIndex(indexOfLang);
#endif
}
}
QString aCurrentAreaLanguage = TCInstance->getCurrentAreaLanguage();
if (QFile::exists(":/global/global." % currentAreaLanguage % ".loc"))
{
QFile locFile(":/global/global." % currentAreaLanguage % ".loc");
if (locFile.open(QFile::ReadOnly))
{
aCurrentAreaLanguage = QString::fromUtf8(locFile.readLine()).trimmed();
locFile.close();
}
}
currentLocale = QLocale(aCurrentAreaLanguage);
ui->labCurrentAreaLanguage->setText(tr("Current: %1").arg(currentLocale.nativeLanguageName() % " (" % currentLocale.nativeCountryName() % ") [" % aCurrentAreaLanguage % "]"));
}
void OptionsDialog::setupRadioButtons()
@ -195,8 +250,10 @@ void OptionsDialog::applySettings()
settings->beginGroup("Interface");
#if QT_VERSION >= 0x050000
settings->setValue("Language", ui->cbLanguage->currentData());
settings->setValue("AreaLanguage", ui->cbAreaLanguage->currentData());
#else
settings->setValue("Language", ui->cbLanguage->itemData(ui->cbLanguage->currentIndex()));
settings->setValue("AreaLanguage", ui->cbAreaLanguage->itemData(ui->cbAreaLanguage->currentIndex()));
#endif
#ifdef GTA5SYNC_WIN
#if QT_VERSION >= 0x050200
@ -255,8 +312,10 @@ void OptionsDialog::applySettings()
#if QT_VERSION >= 0x050000
bool languageChanged = ui->cbLanguage->currentData().toString() != currentLanguage;
bool languageAreaChanged = ui->cbAreaLanguage->currentData().toString() != currentAreaLanguage;
#else
bool languageChanged = ui->cbLanguage->itemData(ui->cbLanguage->currentIndex()).toString() != currentLanguage;
bool languageAreaChanged = ui->cbAreaLanguage->itemData(ui->cbLanguage->currentIndex()).toString() != currentAreaLanguage;
#endif
if (languageChanged)
{
@ -264,6 +323,10 @@ void OptionsDialog::applySettings()
TCInstance->initUserLanguage();
TCInstance->loadTranslation(qApp);
}
else if (languageAreaChanged)
{
TCInstance->initUserLanguage();
}
emit settingsApplied(newContentMode, languageChanged);

View File

@ -55,6 +55,7 @@ private:
Ui::OptionsDialog *ui;
QList<QTreeWidgetItem*> playerItems;
Qt::AspectRatioMode aspectRatio;
QString currentAreaLanguage;
QString currentLanguage;
QString currentCFolder;
QString defaultProfile;

View File

@ -390,12 +390,38 @@
<item>
<widget class="QGroupBox" name="gbLanguage">
<property name="title">
<string>Language</string>
<string>Interface</string>
</property>
<layout class="QVBoxLayout" name="vlLanguage">
<item>
<widget class="QComboBox" name="cbLanguage"/>
</item>
<item>
<widget class="QLabel" name="labCurrentLanguage">
<property name="text">
<string>Current: %1</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="gbAreas">
<property name="title">
<string>Areas</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QComboBox" name="cbAreaLanguage"/>
</item>
<item>
<widget class="QLabel" name="labCurrentAreaLanguage">
<property name="text">
<string>Current: %1</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@ -21,7 +21,7 @@
#include "ProfileDatabase.h"
#include "ui_PictureDialog.h"
#include "SidebarGenerator.h"
#include "MapPreviewDialog.h"
#include "MapLocationDialog.h"
#include "SnapmaticEditor.h"
#include "StandardPaths.h"
#include "PictureExport.h"
@ -691,21 +691,48 @@ int PictureDialog::getIndex()
void PictureDialog::openPreviewMap()
{
MapPreviewDialog *mapPreviewDialog;
MapLocationDialog *mapLocDialog;
if (rqFullscreen && fullscreenWidget != nullptr)
{
mapPreviewDialog = new MapPreviewDialog(fullscreenWidget);
mapLocDialog = new MapLocationDialog(smpic->getSnapmaticProperties().location.x, smpic->getSnapmaticProperties().location.y, fullscreenWidget);
}
else
{
mapPreviewDialog = new MapPreviewDialog(this);
mapLocDialog = new MapLocationDialog(smpic->getSnapmaticProperties().location.x, smpic->getSnapmaticProperties().location.y, this);
}
mapPreviewDialog->setWindowIcon(windowIcon());
mapPreviewDialog->setModal(true);
mapPreviewDialog->drawPointOnMap(smpic->getSnapmaticProperties().location.x, smpic->getSnapmaticProperties().location.y);
mapPreviewDialog->show();
mapPreviewDialog->exec();
delete mapPreviewDialog;
mapLocDialog->setWindowIcon(windowIcon());
mapLocDialog->setModal(true);
mapLocDialog->show();
mapLocDialog->exec();
if (mapLocDialog->propUpdated())
{
// Update Snapmatic Properties
SnapmaticProperties localSpJson = smpic->getSnapmaticProperties();
localSpJson.location.x = mapLocDialog->getXpos();
localSpJson.location.y = mapLocDialog->getYpos();
localSpJson.location.z = 0;
// Update Snapmatic Picture
QString currentFilePath = smpic->getPictureFilePath();
QString originalFilePath = smpic->getOriginalPictureFilePath();
QString backupFileName = originalFilePath % ".bak";
if (!QFile::exists(backupFileName))
{
QFile::copy(currentFilePath, backupFileName);
}
SnapmaticProperties fallbackProperties = smpic->getSnapmaticProperties();
smpic->setSnapmaticProperties(localSpJson);
if (!smpic->exportPicture(currentFilePath))
{
QMessageBox::warning(this, SnapmaticEditor::tr("Snapmatic Properties"), SnapmaticEditor::tr("Patching of Snapmatic Properties failed because of I/O Error"));
smpic->setSnapmaticProperties(fallbackProperties);
}
else
{
updated();
}
}
delete mapLocDialog;
}
void PictureDialog::editSnapmaticProperties()
@ -739,6 +766,9 @@ void PictureDialog::updated()
crewID = QString::number(smpic->getSnapmaticProperties().crewID);
crewStr = QString::number(smpic->getSnapmaticProperties().crewID);
}
locX = QString::number(smpic->getSnapmaticProperties().location.x);
locY = QString::number(smpic->getSnapmaticProperties().location.y);
locZ = QString::number(smpic->getSnapmaticProperties().location.z);
picTitl = StringParser::escapeString(smpic->getPictureTitle());
ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, generatePlayersString(), generateCrewString(), picTitl, picAreaStr, created));
}

View File

@ -96,25 +96,27 @@ ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *cre
ProfileInterface::~ProfileInterface()
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
widgets.remove(widget);
widget->removeEventFilter(this);
widget->disconnect();
delete widget;
}
foreach (SavegameData *savegame, savegames)
widgets.clear();
for (SavegameData *savegame : savegames)
{
savegames.removeAll(savegame);
delete savegame;
}
foreach (SnapmaticPicture *picture, pictures)
savegames.clear();
for (SnapmaticPicture *picture : pictures)
{
pictures.removeAll(picture);
delete picture;
}
delete profileLoader;
pictures.clear();
delete profileLoader;
delete ui;
}
@ -617,7 +619,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple)
}
QString currentTime = QTime::currentTime().toString("HHmmss");
SnapmaticProperties spJson = picture->getSnapmaticProperties();
spJson.uid = QString(currentTime +
spJson.uid = QString(currentTime %
QString::number(QDate::currentDate().dayOfYear())).toInt();
bool fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid));
bool fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden");
@ -625,7 +627,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple)
while ((fExists || fExistsHidden) && cEnough < 5000)
{
currentTime = QString::number(currentTime.toInt() - 1);
spJson.uid = QString(currentTime +
spJson.uid = QString(currentTime %
QString::number(QDate::currentDate().dayOfYear())).toInt();
fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid));
fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden");
@ -650,11 +652,11 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple)
delete picture;
return false;
}
QImage snapmaticImage;
QImage *importImage = new QImage();
QImageReader snapmaticImageReader;
snapmaticImageReader.setDecideFormatFromContent(true);
snapmaticImageReader.setDevice(&snapmaticFile);
if (!snapmaticImageReader.read(&snapmaticImage))
if (!snapmaticImageReader.read(importImage))
{
QMessageBox::warning(this, tr("Import"), tr("Can't import %1 because file can't be parsed properly").arg("\""+selectedFileName+"\""));
delete picture;
@ -662,7 +664,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple)
}
ImportDialog *importDialog = new ImportDialog(this);
importDialog->setWindowFlags(importDialog->windowFlags()^Qt::WindowContextHelpButtonHint);
importDialog->setImage(snapmaticImage);
importDialog->setImage(importImage);
importDialog->setModal(true);
importDialog->show();
importDialog->exec();
@ -680,7 +682,7 @@ bool ProfileInterface::importFile(QString selectedFile, bool notMultiple)
while ((fExists || fExistsHidden) && cEnough < 25)
{
currentTime = QString::number(currentTime.toInt() - 1);
spJson.uid = QString(currentTime +
spJson.uid = QString(currentTime %
QString::number(QDate::currentDate().dayOfYear())).toInt();
fExists = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid));
fExistsHidden = QFile::exists(profileFolder % "/PGTA5" % QString::number(spJson.uid) % ".hidden");
@ -820,7 +822,7 @@ void ProfileInterface::profileWidgetSelected()
{
if (selectedWidgts == 0)
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
widget->setSelectionMode(true);
}
@ -833,7 +835,7 @@ void ProfileInterface::profileWidgetDeselected()
if (selectedWidgts == 1)
{
int scrollBarValue = ui->saProfile->verticalScrollBar()->value();
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (contentMode != 2)
{
@ -847,7 +849,7 @@ void ProfileInterface::profileWidgetDeselected()
void ProfileInterface::selectAllWidgets()
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
widget->setSelected(true);
}
@ -855,7 +857,7 @@ void ProfileInterface::selectAllWidgets()
void ProfileInterface::deselectAllWidgets()
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
widget->setSelected(false);
}
@ -879,7 +881,7 @@ void ProfileInterface::exportSelected()
if (exportDirectory != "")
{
settings.setValue(profileName, exportDirectory);
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (widget->isSelected())
{
@ -1022,7 +1024,7 @@ void ProfileInterface::deleteSelected()
{
if (QMessageBox::Yes == QMessageBox::warning(this, tr("Remove selected"), tr("You really want remove the selected Snapmatic picutres and Savegame files?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (widget->isSelected())
{
@ -1069,7 +1071,7 @@ void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged)
contentMode = _contentMode;
if (contentMode == 2)
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
widget->setSelectionMode(true);
widget->setContentMode(contentMode);
@ -1078,7 +1080,7 @@ void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged)
}
else
{
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (selectedWidgts == 0)
{
@ -1093,7 +1095,7 @@ void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged)
void ProfileInterface::enableSelected()
{
int fails = 0;
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (widget->isSelected())
{
@ -1112,7 +1114,7 @@ void ProfileInterface::enableSelected()
void ProfileInterface::disableSelected()
{
int fails = 0;
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (widget->isSelected())
{
@ -1286,7 +1288,7 @@ bool ProfileInterface::eventFilter(QObject *watched, QEvent *event)
if ((watched->objectName() == "SavegameWidget" || watched->objectName() == "SnapmaticWidget") && isProfileLoaded)
{
ProfileWidget *pWidget = nullptr;
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
QPoint mousePos = widget->mapFromGlobal(QCursor::pos());
if (widget->rect().contains(mousePos))
@ -1355,7 +1357,7 @@ bool ProfileInterface::eventFilter(QObject *watched, QEvent *event)
void ProfileInterface::hoverProfileWidgetCheck()
{
ProfileWidget *pWidget = nullptr;
foreach (ProfileWidget *widget, widgets.keys())
for (ProfileWidget *widget : widgets.keys())
{
if (widget->underMouse())
{

View File

@ -42,6 +42,7 @@ void TranslationClass::initUserLanguage()
QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("Interface");
userLanguage = settings.value("Language", "System").toString();
userAreaLanguage = settings.value("AreaLanguage", "Auto").toString();
settings.endGroup();
}
@ -279,13 +280,26 @@ QStringList TranslationClass::listTranslations(const QString &langPath)
langDir.setNameFilters(QStringList("gta5sync_*.qm"));
langDir.setPath(langPath);
QStringList availableLanguages;
for (QString &lang : langDir.entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::NoSort))
for (QString lang : langDir.entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::NoSort))
{
availableLanguages << QString(lang).remove("gta5sync_").remove(".qm");
}
return availableLanguages;
}
QStringList TranslationClass::listAreaTranslations()
{
QDir langDir;
langDir.setNameFilters(QStringList("global.*.ini"));
langDir.setPath(":/global");
QStringList availableLanguages;
for (QString lang : langDir.entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::NoSort))
{
availableLanguages << QString(lang).remove("global.").remove(".ini");
}
return availableLanguages;
}
bool TranslationClass::loadSystemTranslation_p(const QString &langPath, QTranslator *appTranslator)
{
#ifdef GTA5SYNC_DEBUG
@ -498,6 +512,55 @@ bool TranslationClass::isUserLanguageSystem_p()
return (userLanguage == "System" || userLanguage.trimmed().isEmpty());
}
QString TranslationClass::getCurrentAreaLanguage()
{
const QStringList areaTranslations = listAreaTranslations();
if (userAreaLanguage == "Auto" || userAreaLanguage.trimmed().isEmpty())
{
#ifdef GTA5SYNC_DEBUG
qDebug() << "autoAreaLanguageMode";
#endif
QString langCode = QString(currentLanguage).replace("-", "_");
if (areaTranslations.contains(langCode))
{
#ifdef GTA5SYNC_DEBUG
qDebug() << "autoAreaLanguageSelected" << langCode;
#endif
return langCode;
}
else if (langCode.contains("_"))
{
langCode = langCode.split("_").at(0);
if (!areaTranslations.contains(langCode)) goto outputDefaultLanguage;
#ifdef GTA5SYNC_DEBUG
qDebug() << "autoAreaLanguageSelected" << langCode;
#endif
return langCode;
}
}
else if (areaTranslations.contains(userAreaLanguage))
{
#ifdef GTA5SYNC_DEBUG
qDebug() << "userAreaLanguageSelected" << userAreaLanguage;
#endif
return userAreaLanguage;
}
else if (userAreaLanguage.contains("_"))
{
QString langCode = QString(userAreaLanguage).replace("-", "_").split("_").at(0);
if (!areaTranslations.contains(langCode)) goto outputDefaultLanguage;
#ifdef GTA5SYNC_DEBUG
qDebug() << "userAreaLanguageSelected" << langCode;
#endif
return langCode;
}
outputDefaultLanguage:
#ifdef GTA5SYNC_DEBUG
qDebug() << "defaultAreaLanguageSelected";
#endif
return "en";
}
QString TranslationClass::getCurrentLanguage()
{
return currentLanguage;

View File

@ -36,7 +36,9 @@ public:
void initUserLanguage();
void loadTranslation(QApplication *app);
void unloadTranslation(QApplication *app);
QStringList listTranslations(const QString &langPath);
static QStringList listTranslations(const QString &langPath);
static QStringList listAreaTranslations();
QString getCurrentAreaLanguage();
QString getCurrentLanguage();
bool isLanguageLoaded();
@ -50,6 +52,7 @@ private:
QTranslator exQtTranslator;
QTranslator inAppTranslator;
QTranslator inQtTranslator;
QString userAreaLanguage;
QString currentLanguage;
QString userLanguage;
int currentLangIndex;

View File

@ -189,12 +189,12 @@ void UserInterface::changeFolder_clicked()
void UserInterface::on_cmdReload_clicked()
{
foreach (QPushButton *profileBtn, profileBtns)
for (QPushButton *profileBtn : profileBtns)
{
ui->vlButtons->removeWidget(profileBtn);
profileBtns.removeAll(profileBtn);
delete profileBtn;
}
profileBtns.clear();
setupDirEnv();
}
@ -223,28 +223,40 @@ void UserInterface::closeProfile()
{
if (profileOpen)
{
closeProfile_p();
}
this->setWindowTitle(defaultWindowTitle.arg(tr("Select Profile")));
}
void UserInterface::closeProfile_p()
{
profileOpen = false;
profileName.clear();
profileName.squeeze();
ui->menuProfile->setEnabled(false);
ui->actionSelect_profile->setEnabled(false);
ui->swProfile->removeWidget(profileUI);
profileUI->disconnect();
delete profileUI;
}
this->setWindowTitle(defaultWindowTitle.arg(tr("Select Profile")));
}
void UserInterface::closeEvent(QCloseEvent *ev)
{
Q_UNUSED(ev)
threadDB->doEndThread();
threadDB->terminateThread();
}
UserInterface::~UserInterface()
{
foreach (QPushButton *profileBtn, profileBtns)
if (profileOpen)
{
closeProfile_p();
}
for (QPushButton *profileBtn : profileBtns)
{
delete profileBtn;
}
profileBtns.clear();
delete ui;
}

View File

@ -84,6 +84,7 @@ private:
QStringList GTAV_Profiles;
void setupProfileUi();
void openProfile(const QString &profileName);
void closeProfile_p();
void openSelectProfile();
void retranslateUi();

View File

@ -50,7 +50,7 @@
#ifndef GTA5SYNC_APPVER
#ifndef GTA5SYNC_DAILYB
#define GTA5SYNC_APPVER "1.5.0-dev2"
#define GTA5SYNC_APPVER "1.5.0-dev3"
#else
#define GTA5SYNC_APPVER GTA5SYNC_DAILYB
#endif

View File

@ -38,7 +38,7 @@ SOURCES += main.cpp \
GlobalString.cpp \
IconLoader.cpp \
ImportDialog.cpp \
MapPreviewDialog.cpp \
MapLocationDialog.cpp \
OptionsDialog.cpp \
PictureDialog.cpp \
PictureExport.cpp \
@ -72,7 +72,7 @@ HEADERS += \
GlobalString.h \
IconLoader.h \
ImportDialog.h \
MapPreviewDialog.h \
MapLocationDialog.h \
OptionsDialog.h \
PictureDialog.h \
PictureExport.h \
@ -100,7 +100,7 @@ FORMS += \
AboutDialog.ui \
ExportDialog.ui \
ImportDialog.ui \
MapPreviewDialog.ui \
MapLocationDialog.ui \
OptionsDialog.ui \
PictureDialog.ui \
ProfileInterface.ui \

View File

@ -148,20 +148,17 @@ int main(int argc, char *argv[])
if (crewID != 0) { crewDB.addCrew(crewID); }
if (!readOk) { return 1; }
QEventLoop threadLoop;
QObject::connect(&threadDB, SIGNAL(crewNameFound(int, QString)), &crewDB, SLOT(setCrewName(int, QString)));
QObject::connect(&threadDB, SIGNAL(crewNameUpdated()), &picDialog, SLOT(crewNameUpdated()));
QObject::connect(&threadDB, SIGNAL(playerNameFound(int, QString)), &profileDB, SLOT(setPlayerName(int, QString)));
QObject::connect(&threadDB, SIGNAL(playerNameUpdated()), &picDialog, SLOT(playerNameUpdated()));
QObject::connect(&threadDB, SIGNAL(finished()), &threadLoop, SLOT(quit()));
QObject::connect(&picDialog, SIGNAL(endDatabaseThread()), &threadDB, SLOT(doEndThread()));
QObject::connect(&threadDB, SIGNAL(finished()), &a, SLOT(quit()));
QObject::connect(&picDialog, SIGNAL(endDatabaseThread()), &threadDB, SLOT(terminateThread()));
threadDB.start();
picDialog.show();
threadLoop.exec();
return 0;
return a.exec();
}
else if (selectedAction == "showsgd")
{
@ -174,6 +171,7 @@ int main(int argc, char *argv[])
if (!readOk) { return 1; }
a.setQuitOnLastWindowClosed(true);
savegameDialog.show();
return a.exec();
@ -197,7 +195,5 @@ int main(int argc, char *argv[])
uiWindow.show();
#endif
a.exec();
return 0;
return a.exec();
}

View File

@ -30,6 +30,7 @@
<file>global.ja.ini</file>
<file>global.ru.ini</file>
<file>global.zh.ini</file>
<file>global.zh.loc</file>
</qresource>
<qresource prefix="/template">
<file>template.g5e</file>

View File

@ -25,12 +25,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Syping"
VALUE "FileDescription", "gta5view\0"
VALUE "FileVersion", "1.5.0-dev2\0"
VALUE "FileVersion", "1.5.0-dev3\0"
VALUE "InternalName", "gta5view\0"
VALUE "LegalCopyright", "Copyright © 2016-2017 Syping\0"
VALUE "OriginalFilename", "gta5view.exe\0"
VALUE "ProductName", "gta5view\0"
VALUE "ProductVersion", "1.5.0-dev2\0"
VALUE "ProductVersion", "1.5.0-dev3\0"
END
END
END

1
res/global.zh.loc Normal file
View File

@ -0,0 +1 @@
zh_TW

Binary file not shown.

View File

@ -385,7 +385,7 @@ Grand Theft Auto V Snapmatic Bilder und Spielständen</translation>
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.cpp" line="57"/>
<location filename="../ImportDialog.cpp" line="216"/>
<location filename="../ImportDialog.cpp" line="242"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation>Hintergrundfarbe: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</translation>
</message>
@ -425,25 +425,37 @@ When you plan to use it as Avatar the picture will be cut!</source>
Wenn du planst es als Avatar zu verwenden das Bild wird abgetrennt!</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="105"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation>Eigener Avatar</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="131"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation>Eigenes Bild</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation>Bist du sicher ein Quadrat Bild außerhalb der Avatar Zone zu verwenden?
Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Snapmatic Avatar Zone</source>
<translation>Snapmatic Avatar Zone</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="238"/>
<source>Select Colour...</source>
<translation>Farbe auswählen...</translation>
</message>
</context>
<context>
<name>MapPreviewDialog</name>
<name>MapLocationDialog</name>
<message>
<source>Map Preview</source>
<translation type="vanished">Map Vorschau</translation>
@ -453,10 +465,50 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
<translation type="vanished">Snapmatic Koordinatenansicht</translation>
</message>
<message>
<location filename="../MapPreviewDialog.ui" line="26"/>
<location filename="../MapLocationDialog.ui" line="26"/>
<source>Snapmatic Map Viewer</source>
<translation>Snapmatic Kartenansicht</translation>
</message>
<message>
<source>X: %1
Y: %2</source>
<extracomment>X and Y position</extracomment>
<translation type="vanished">X: %1
Y: %2</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="138"/>
<source>&amp;Close</source>
<translation>S&amp;chließen</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="164"/>
<source>&amp;Apply</source>
<translation>&amp;Übernehmen</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="177"/>
<source>&amp;Revert</source>
<translation>&amp;Zurücksetzen</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="190"/>
<source>&amp;Set</source>
<translation>&amp;Ändern</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="203"/>
<source>&amp;Done</source>
<translation>&amp;Fertig</translation>
</message>
<message>
<location filename="../MapLocationDialog.cpp" line="89"/>
<source>X: %1
Y: %2</source>
<comment>X and Y position</comment>
<translation>X: %1
Y: %2</translation>
</message>
</context>
<context>
<name>OptionsDialog</name>
@ -621,38 +673,55 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="387"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Language</source>
<translation>Sprache</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="419"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Interface</source>
<translation>Oberfläche</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="402"/>
<location filename="../OptionsDialog.ui" line="421"/>
<location filename="../OptionsDialog.cpp" line="167"/>
<location filename="../OptionsDialog.cpp" line="215"/>
<source>Current: %1</source>
<translation>Aktuell: %1</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="412"/>
<source>Areas</source>
<translation>Standorte</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="445"/>
<source>Sync</source>
<translation>Sync</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="425"/>
<location filename="../OptionsDialog.ui" line="451"/>
<source>Sync is not implemented at current time</source>
<translation>Sync wurde bisher nicht implementiert</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="463"/>
<location filename="../OptionsDialog.ui" line="489"/>
<source>Apply changes</source>
<translation>Änderungen übernehmen</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="466"/>
<location filename="../OptionsDialog.ui" line="492"/>
<source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>&amp;OK</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="479"/>
<location filename="../OptionsDialog.ui" line="505"/>
<source>Discard changes</source>
<translation>Änderungen verwerfen</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="482"/>
<location filename="../OptionsDialog.ui" line="508"/>
<source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>Abbre&amp;chen</translation>
@ -673,7 +742,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
<translation type="vanished">%1 (%2 wenn verfügbar)</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>%1</source>
<comment>%1</comment>
<translation>%1</translation>
@ -687,19 +756,31 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
<translation type="vanished">Der eigene Ordner initialisiert sobald du %1 neugestartet hast.</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>%1 (Next Closest Language)</source>
<comment>First language a person can talk with a different person/application. &quot;Native&quot; or &quot;Not Native&quot;.</comment>
<translation>%1 (Erste näheste Sprache)</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>System</source>
<comment>System in context of System default</comment>
<translation>System</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>%1 (Closest to Interface)</source>
<comment>Next closest language compared to the Interface</comment>
<translation>%1 (Näheste zur Oberfläche)</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>Auto</source>
<comment>Automatic language choice.</comment>
<translation>Automatisch</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>The new Custom Folder will initialise after you restart %1.</source>
<translation>Der eigene Ordner wird initialisiert sobald du %1 neugestartet hast.</translation>
</message>
@ -708,15 +789,15 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
<translation type="vanished">Die Änderung der Sprache nimmt Effekt sobald du %1 neugestartet hast.</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="282"/>
<location filename="../OptionsDialog.cpp" line="345"/>
<source>No Profile</source>
<comment>No Profile, as default</comment>
<translation>Kein Profil</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="290"/>
<location filename="../OptionsDialog.cpp" line="294"/>
<location filename="../OptionsDialog.cpp" line="296"/>
<location filename="../OptionsDialog.cpp" line="353"/>
<location filename="../OptionsDialog.cpp" line="357"/>
<location filename="../OptionsDialog.cpp" line="359"/>
<source>Profile: %1</source>
<translation>Profil: %1</translation>
</message>
@ -831,7 +912,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="145"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<location filename="../ProfileInterface.cpp" line="1162"/>
<source>Export as &amp;Picture...</source>
<translation>Als &amp;Bild exportieren...</translation>
</message>
@ -841,7 +922,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="146"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<location filename="../ProfileInterface.cpp" line="1163"/>
<source>Export as &amp;Snapmatic...</source>
<translation>Als &amp;Snapmatic exportieren...</translation>
</message>
@ -856,7 +937,7 @@ Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="150"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<source>&amp;Edit Properties...</source>
<translation>Eigenschaften bearb&amp;eiten...</translation>
</message>
@ -1177,30 +1258,30 @@ Drücke A für Standardansicht</translation>
<translation type="obsolete">Profil schließen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="129"/>
<location filename="../ProfileInterface.cpp" line="131"/>
<source>Loading...</source>
<translation>Lade...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="411"/>
<location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="413"/>
<location filename="../ProfileInterface.cpp" line="478"/>
<source>Import...</source>
<translation>Importieren...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="412"/>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="414"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Import</source>
<translation>Importieren</translation>
</message>
@ -1213,14 +1294,14 @@ Drücke A für Standardansicht</translation>
<translation type="vanished">Importfähige Dateien (*.g5e *.jpg *.png SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="429"/>
<location filename="../UserInterface.cpp" line="364"/>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../UserInterface.cpp" line="376"/>
<source>Savegames files (SGTA*)</source>
<translation>Spielstanddateien (SGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="365"/>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="377"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation>Snapmatic Bilder (PGTA*)</translation>
</message>
@ -1229,29 +1310,29 @@ Drücke A für Standardansicht</translation>
<translation type="vanished">Alle Bilddateien (*.jpg *.png)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="427"/>
<location filename="../ProfileInterface.cpp" line="429"/>
<source>Importable files (%1)</source>
<translation>Importfähige Dateien (%1)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../ProfileInterface.cpp" line="433"/>
<source>All image files (%1)</source>
<translation>Alle Bilddateien (%1)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="366"/>
<location filename="../ProfileInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="378"/>
<source>All files (**)</source>
<translation>Alle Dateien (**)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="477"/>
<location filename="../ProfileInterface.cpp" line="492"/>
<location filename="../ProfileInterface.cpp" line="479"/>
<location filename="../ProfileInterface.cpp" line="494"/>
<source>Import file %1 of %2 files</source>
<translation>Importiere Datei %1 von %2 Dateien</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<source>Import failed with...
%1</source>
@ -1260,29 +1341,29 @@ Drücke A für Standardansicht</translation>
%1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../UserInterface.cpp" line="418"/>
<source>Failed to read Snapmatic picture</source>
<translation>Fehler beim Lesen vom Snapmatic Bild</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../UserInterface.cpp" line="434"/>
<source>Failed to read Savegame file</source>
<translation>Fehler beim Lesen von Spielstanddatei</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation>Kann %1 nicht importieren weil die Datei nicht richtig gelesen werden kann</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<source>Can&apos;t import %1 because file format can&apos;t be detected</source>
<translation>Kann %1 nicht importieren weil das Dateiformat nicht erkannt werden kann</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="962"/>
<location filename="../ProfileInterface.cpp" line="964"/>
<source>Initialising export...</source>
<translation>Initialisiere Export...</translation>
</message>
@ -1291,24 +1372,24 @@ Drücke A für Standardansicht</translation>
<translation type="vanished">Kann %1 nicht importieren weil das Dateiformat nicht gültig ist</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e</source>
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA oder endet mit .g5e</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<source>Failed to import the Snapmatic picture, the picture is already in the game</source>
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, dieses Bild ist bereits im Spiel</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<source>%1Export Snapmatic pictures%2&lt;br&gt;&lt;br&gt;JPG pictures make it possible to open the picture with a Image Viewer&lt;br&gt;GTA Snapmatic make it possible to import the picture into the game&lt;br&gt;&lt;br&gt;Export as:</source>
<translation>%1Exportiere Snapmatic Bilder%2&lt;br&gt;&lt;br&gt;JPG Bilder machen es möglich sie mit ein Bildansicht Programm zu öffnen&lt;br&gt;Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren&lt;br&gt;&lt;br&gt;Exportieren als:</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>No valid file is selected</source>
<translation>Keine gültige Datei wurde ausgewählt</translation>
</message>
@ -1322,35 +1403,35 @@ Drücke A für Standardansicht</translation>
<translation type="vanished">Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source>
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, kann Snapmatic Bild nicht ins Profil kopieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source>
<translation>Fehlgeschlagen beim Importieren vom Spielstand, kann Spielstanddatei nicht ins Profil kopieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Failed to import the Savegame, no Savegame slot is left</source>
<translation>Fehlgeschlagen beim Importieren vom Spielstand, kein Spielstandslot mehr frei</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="901"/>
<location filename="../ProfileInterface.cpp" line="919"/>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="921"/>
<source>JPG pictures and GTA Snapmatic</source>
<translation>JPG Bilder und GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="902"/>
<location filename="../ProfileInterface.cpp" line="924"/>
<location filename="../ProfileInterface.cpp" line="904"/>
<location filename="../ProfileInterface.cpp" line="926"/>
<source>JPG pictures only</source>
<translation>Nur JPG Bilder</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="928"/>
<location filename="../ProfileInterface.cpp" line="905"/>
<location filename="../ProfileInterface.cpp" line="930"/>
<source>GTA Snapmatic only</source>
<translation>Nur GTA Snapmatic</translation>
</message>
@ -1369,25 +1450,25 @@ Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren
Exportieren als:</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>No Snapmatic pictures or Savegames files are selected</source>
<translation>Keine Snapmatic Bilder oder Spielstände ausgewählt</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>Remove selected</source>
<translation>Auswahl löschen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
<translation>Möchtest du wirklich die ausgewählten Snapmatic Bilder und Spielstanddateien löschen?</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
<translation>Fehlgeschlagen beim kompletten entfernen der ausgewählten Snapmatic Bilder und/oder der Spielstanddateien</translation>
</message>
@ -1408,10 +1489,10 @@ Exportieren als:</translation>
<translation type="obsolete">Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="878"/>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="880"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<source>Export selected</source>
<translation>Auswahl exportieren</translation>
</message>
@ -1432,7 +1513,7 @@ Exportieren als:</translation>
<translation type="obsolete">Wie sollen wir mit den Snapmatic Bilder umgehen?</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="961"/>
<location filename="../ProfileInterface.cpp" line="963"/>
<source>Export selected...</source>
<translation>Auswahl exportieren...</translation>
</message>
@ -1445,7 +1526,7 @@ Exportieren als:</translation>
<translation type="obsolete">Initialisierung...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<source>Export failed with...
%1</source>
@ -1475,13 +1556,13 @@ Exportieren als:</translation>
<translation>Exportiere Datei %1 von %2 Dateien</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="362"/>
<location filename="../UserInterface.cpp" line="374"/>
<source>All profile files (*.g5e SGTA* PGTA*)</source>
<translation>Alle Profildateien (*.g5e SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="428"/>
<location filename="../UserInterface.cpp" line="363"/>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="375"/>
<source>GTA V Export (*.g5e)</source>
<translation>GTA V Export (*.g5e)</translation>
</message>
@ -1644,32 +1725,32 @@ Exportieren als:</translation>
<translation>Fehlgeschlagen beim Löschen %1 von deinen Spielständen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1196"/>
<location filename="../ProfileInterface.cpp" line="1198"/>
<source>&amp;View</source>
<translation>A&amp;nsehen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1198"/>
<location filename="../ProfileInterface.cpp" line="1200"/>
<source>&amp;Remove</source>
<translation>Entfe&amp;rnen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1200"/>
<location filename="../ProfileInterface.cpp" line="1202"/>
<source>&amp;Select</source>
<translation>Au&amp;swählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1201"/>
<location filename="../ProfileInterface.cpp" line="1203"/>
<source>&amp;Deselect</source>
<translation>A&amp;bwählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1204"/>
<location filename="../ProfileInterface.cpp" line="1206"/>
<source>Select &amp;All</source>
<translation>&amp;Alles auswählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1208"/>
<location filename="../ProfileInterface.cpp" line="1210"/>
<source>&amp;Deselect All</source>
<translation>Alles a&amp;bwählen</translation>
</message>
@ -1708,7 +1789,7 @@ Exportieren als:</translation>
<translation>Spielstand kopieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1197"/>
<location filename="../ProfileInterface.cpp" line="1199"/>
<source>&amp;Export</source>
<translation>&amp;Exportieren</translation>
</message>
@ -1784,6 +1865,7 @@ Exportieren als:</translation>
<message>
<location filename="../SnapmaticEditor.ui" line="14"/>
<location filename="../SnapmaticEditor.ui" line="81"/>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Snapmatic Properties</source>
<translation>Snapmatic Eigenschaften</translation>
@ -1908,6 +1990,7 @@ Exportieren als:</translation>
<translation>Nein</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation>Patchen von Snapmatic Eigenschaften fehlgeschlagen wegen I/O Fehler</translation>
@ -1981,7 +2064,7 @@ Exportieren als:</translation>
<translation>Bist du sicher %1 von deine Snapmatic Bilder zu löschen?</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1149"/>
<location filename="../ProfileInterface.cpp" line="1151"/>
<source>Edi&amp;t</source>
<translation>Bearbei&amp;ten</translation>
</message>
@ -1994,7 +2077,7 @@ Exportieren als:</translation>
<translation type="vanished">&amp;Im Spiel deaktivieren</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1159"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<source>&amp;Export</source>
<translation>&amp;Exportieren</translation>
</message>
@ -2007,12 +2090,12 @@ Exportieren als:</translation>
<translation type="obsolete">Exportiere als &amp;GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1152"/>
<location filename="../ProfileInterface.cpp" line="1154"/>
<source>Show &amp;In-game</source>
<translation>&amp;Im Spiel anzeigen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1156"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<source>Hide &amp;In-game</source>
<translation>&amp;Im Spiel ausblenden</translation>
</message>
@ -2045,32 +2128,32 @@ Exportieren als:</translation>
<translation type="vanished">Exportiere als &amp;Snapmatic...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1162"/>
<location filename="../ProfileInterface.cpp" line="1164"/>
<source>&amp;View</source>
<translation>A&amp;nsehen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1165"/>
<location filename="../ProfileInterface.cpp" line="1167"/>
<source>&amp;Remove</source>
<translation>Entfe&amp;rnen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1167"/>
<location filename="../ProfileInterface.cpp" line="1169"/>
<source>&amp;Select</source>
<translation>Au&amp;swählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1168"/>
<location filename="../ProfileInterface.cpp" line="1170"/>
<source>&amp;Deselect</source>
<translation>A&amp;bwählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1171"/>
<location filename="../ProfileInterface.cpp" line="1173"/>
<source>Select &amp;All</source>
<translation>Alles &amp;auswählen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1175"/>
<location filename="../ProfileInterface.cpp" line="1177"/>
<source>&amp;Deselect All</source>
<translation>Alles a&amp;bwählen</translation>
</message>
@ -2409,16 +2492,16 @@ Exportieren als:</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="63"/>
<location filename="../UserInterface.cpp" line="233"/>
<location filename="../UserInterface.cpp" line="548"/>
<location filename="../UserInterface.cpp" line="228"/>
<location filename="../UserInterface.cpp" line="560"/>
<source>Select Profile</source>
<translation>Profil auswählen</translation>
</message>
<message>
<location filename="../UserInterface.ui" line="312"/>
<location filename="../OptionsDialog.cpp" line="428"/>
<location filename="../OptionsDialog.cpp" line="491"/>
<location filename="../UserInterface.cpp" line="103"/>
<location filename="../UserInterface.cpp" line="511"/>
<location filename="../UserInterface.cpp" line="523"/>
<source>Select GTA V Folder...</source>
<translation>Wähle GTA V Ordner...</translation>
</message>
@ -2427,7 +2510,7 @@ Exportieren als:</translation>
<translation type="vanished">Wähle GTA V &amp;Ordner...</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="359"/>
<location filename="../UserInterface.cpp" line="371"/>
<source>Open File...</source>
<translation>Datei öffnen...</translation>
</message>
@ -2444,20 +2527,20 @@ Exportieren als:</translation>
<message>
<location filename="../UserInterface.ui" line="226"/>
<location filename="../UserInterface.cpp" line="59"/>
<location filename="../UserInterface.cpp" line="540"/>
<location filename="../UserInterface.cpp" line="552"/>
<source>&amp;About %1</source>
<translation>&amp;Über %1</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../UserInterface.cpp" line="418"/>
<location filename="../UserInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="461"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>Open File</source>
<translation>Datei öffnen</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="461"/>
<source>Can&apos;t open %1 because of not valid file format</source>
<translation>Kann nicht %1 öffnen weil Dateiformat nicht gültig ist</translation>
</message>

View File

@ -196,7 +196,7 @@ Pictures and Savegames</source>
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.cpp" line="57"/>
<location filename="../ImportDialog.cpp" line="216"/>
<location filename="../ImportDialog.cpp" line="242"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation>Background Color: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</translation>
</message>
@ -236,28 +236,72 @@ Pictures and Savegames</source>
<translation></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="105"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="131"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Snapmatic Avatar Zone</source>
<translation></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="238"/>
<source>Select Colour...</source>
<translation>Select Color...</translation>
</message>
</context>
<context>
<name>MapPreviewDialog</name>
<name>MapLocationDialog</name>
<message>
<location filename="../MapPreviewDialog.ui" line="26"/>
<location filename="../MapLocationDialog.ui" line="26"/>
<source>Snapmatic Map Viewer</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="138"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="164"/>
<source>&amp;Apply</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="177"/>
<source>&amp;Revert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="190"/>
<source>&amp;Set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="203"/>
<source>&amp;Done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.cpp" line="89"/>
<source>X: %1
Y: %2</source>
<comment>X and Y position</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -395,75 +439,104 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../OptionsDialog.ui" line="387"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Language</source>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="419"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="402"/>
<location filename="../OptionsDialog.ui" line="421"/>
<location filename="../OptionsDialog.cpp" line="167"/>
<location filename="../OptionsDialog.cpp" line="215"/>
<source>Current: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="412"/>
<source>Areas</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="445"/>
<source>Sync</source>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="425"/>
<location filename="../OptionsDialog.ui" line="451"/>
<source>Sync is not implemented at current time</source>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="463"/>
<location filename="../OptionsDialog.ui" line="489"/>
<source>Apply changes</source>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="466"/>
<location filename="../OptionsDialog.ui" line="492"/>
<source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="479"/>
<location filename="../OptionsDialog.ui" line="505"/>
<source>Discard changes</source>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="482"/>
<location filename="../OptionsDialog.ui" line="508"/>
<source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>%1 (Next Closest Language)</source>
<comment>First language a person can talk with a different person/application. &quot;Native&quot; or &quot;Not Native&quot;.</comment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>System</source>
<comment>System in context of System default</comment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>%1 (Closest to Interface)</source>
<comment>Next closest language compared to the Interface</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>Auto</source>
<comment>Automatic language choice.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>%1</source>
<comment>%1</comment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>The new Custom Folder will initialise after you restart %1.</source>
<translation>The new Custom Folder will initialize after you restart %1.</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="282"/>
<location filename="../OptionsDialog.cpp" line="345"/>
<source>No Profile</source>
<comment>No Profile, as default</comment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="290"/>
<location filename="../OptionsDialog.cpp" line="294"/>
<location filename="../OptionsDialog.cpp" line="296"/>
<location filename="../OptionsDialog.cpp" line="353"/>
<location filename="../OptionsDialog.cpp" line="357"/>
<location filename="../OptionsDialog.cpp" line="359"/>
<source>Profile: %1</source>
<translation></translation>
</message>
@ -505,13 +578,13 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="145"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<location filename="../ProfileInterface.cpp" line="1162"/>
<source>Export as &amp;Picture...</source>
<translation></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="146"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<location filename="../ProfileInterface.cpp" line="1163"/>
<source>Export as &amp;Snapmatic...</source>
<translation></translation>
</message>
@ -522,7 +595,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="150"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<source>&amp;Edit Properties...</source>
<translation></translation>
</message>
@ -722,207 +795,207 @@ Press 1 for Default View</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="129"/>
<location filename="../ProfileInterface.cpp" line="131"/>
<source>Loading...</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="411"/>
<location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="413"/>
<location filename="../ProfileInterface.cpp" line="478"/>
<source>Import...</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="412"/>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="414"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="427"/>
<location filename="../ProfileInterface.cpp" line="429"/>
<source>Importable files (%1)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="428"/>
<location filename="../UserInterface.cpp" line="363"/>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="375"/>
<source>GTA V Export (*.g5e)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="429"/>
<location filename="../UserInterface.cpp" line="364"/>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../UserInterface.cpp" line="376"/>
<source>Savegames files (SGTA*)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="365"/>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="377"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../ProfileInterface.cpp" line="433"/>
<source>All image files (%1)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="366"/>
<location filename="../ProfileInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="378"/>
<source>All files (**)</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>No valid file is selected</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="477"/>
<location filename="../ProfileInterface.cpp" line="492"/>
<location filename="../ProfileInterface.cpp" line="479"/>
<location filename="../ProfileInterface.cpp" line="494"/>
<source>Import file %1 of %2 files</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<source>Import failed with...
%1</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../UserInterface.cpp" line="418"/>
<source>Failed to read Snapmatic picture</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../UserInterface.cpp" line="434"/>
<source>Failed to read Savegame file</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<source>Can&apos;t import %1 because file format can&apos;t be detected</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<source>Failed to import the Snapmatic picture, the picture is already in the game</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Failed to import the Savegame, no Savegame slot is left</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="878"/>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="880"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<source>Export selected</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="901"/>
<location filename="../ProfileInterface.cpp" line="919"/>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="921"/>
<source>JPG pictures and GTA Snapmatic</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="902"/>
<location filename="../ProfileInterface.cpp" line="924"/>
<location filename="../ProfileInterface.cpp" line="904"/>
<location filename="../ProfileInterface.cpp" line="926"/>
<source>JPG pictures only</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="928"/>
<location filename="../ProfileInterface.cpp" line="905"/>
<location filename="../ProfileInterface.cpp" line="930"/>
<source>GTA Snapmatic only</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<source>%1Export Snapmatic pictures%2&lt;br&gt;&lt;br&gt;JPG pictures make it possible to open the picture with a Image Viewer&lt;br&gt;GTA Snapmatic make it possible to import the picture into the game&lt;br&gt;&lt;br&gt;Export as:</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="961"/>
<location filename="../ProfileInterface.cpp" line="963"/>
<source>Export selected...</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="962"/>
<location filename="../ProfileInterface.cpp" line="964"/>
<source>Initialising export...</source>
<translation>Initializing export...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<source>Export failed with...
%1</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>No Snapmatic pictures or Savegames files are selected</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>Remove selected</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
<translation></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="362"/>
<location filename="../UserInterface.cpp" line="374"/>
<source>All profile files (*.g5e SGTA* PGTA*)</source>
<translation></translation>
</message>
@ -1013,37 +1086,37 @@ Press 1 for Default View</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1196"/>
<location filename="../ProfileInterface.cpp" line="1198"/>
<source>&amp;View</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1197"/>
<location filename="../ProfileInterface.cpp" line="1199"/>
<source>&amp;Export</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1198"/>
<location filename="../ProfileInterface.cpp" line="1200"/>
<source>&amp;Remove</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1200"/>
<location filename="../ProfileInterface.cpp" line="1202"/>
<source>&amp;Select</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1201"/>
<location filename="../ProfileInterface.cpp" line="1203"/>
<source>&amp;Deselect</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1204"/>
<location filename="../ProfileInterface.cpp" line="1206"/>
<source>Select &amp;All</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1208"/>
<location filename="../ProfileInterface.cpp" line="1210"/>
<source>&amp;Deselect All</source>
<translation></translation>
</message>
@ -1137,6 +1210,7 @@ Press 1 for Default View</source>
<message>
<location filename="../SnapmaticEditor.ui" line="14"/>
<location filename="../SnapmaticEditor.ui" line="81"/>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Snapmatic Properties</source>
<translation></translation>
@ -1244,6 +1318,7 @@ Press 1 for Default View</source>
<translation></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation></translation>
@ -1332,52 +1407,52 @@ Press 1 for Default View</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1149"/>
<location filename="../ProfileInterface.cpp" line="1151"/>
<source>Edi&amp;t</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1152"/>
<location filename="../ProfileInterface.cpp" line="1154"/>
<source>Show &amp;In-game</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1156"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<source>Hide &amp;In-game</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1159"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<source>&amp;Export</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1162"/>
<location filename="../ProfileInterface.cpp" line="1164"/>
<source>&amp;View</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1165"/>
<location filename="../ProfileInterface.cpp" line="1167"/>
<source>&amp;Remove</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1167"/>
<location filename="../ProfileInterface.cpp" line="1169"/>
<source>&amp;Select</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1168"/>
<location filename="../ProfileInterface.cpp" line="1170"/>
<source>&amp;Deselect</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1171"/>
<location filename="../ProfileInterface.cpp" line="1173"/>
<source>Select &amp;All</source>
<translation></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1175"/>
<location filename="../ProfileInterface.cpp" line="1177"/>
<source>&amp;Deselect All</source>
<translation></translation>
</message>
@ -1459,7 +1534,7 @@ Press 1 for Default View</source>
<message>
<location filename="../UserInterface.ui" line="226"/>
<location filename="../UserInterface.cpp" line="59"/>
<location filename="../UserInterface.cpp" line="540"/>
<location filename="../UserInterface.cpp" line="552"/>
<source>&amp;About %1</source>
<translation></translation>
</message>
@ -1571,9 +1646,9 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.ui" line="312"/>
<location filename="../OptionsDialog.cpp" line="428"/>
<location filename="../OptionsDialog.cpp" line="491"/>
<location filename="../UserInterface.cpp" line="103"/>
<location filename="../UserInterface.cpp" line="511"/>
<location filename="../UserInterface.cpp" line="523"/>
<source>Select GTA V Folder...</source>
<translation></translation>
</message>
@ -1604,26 +1679,26 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.cpp" line="63"/>
<location filename="../UserInterface.cpp" line="233"/>
<location filename="../UserInterface.cpp" line="548"/>
<location filename="../UserInterface.cpp" line="228"/>
<location filename="../UserInterface.cpp" line="560"/>
<source>Select Profile</source>
<translation></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="359"/>
<location filename="../UserInterface.cpp" line="371"/>
<source>Open File...</source>
<translation></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../UserInterface.cpp" line="418"/>
<location filename="../UserInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="461"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>Open File</source>
<translation></translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="461"/>
<source>Can&apos;t open %1 because of not valid file format</source>
<translation></translation>
</message>

View File

@ -331,7 +331,7 @@ et les fichiers de sauvegarde de Grand Theft Auto V</translation>
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.cpp" line="57"/>
<location filename="../ImportDialog.cpp" line="216"/>
<location filename="../ImportDialog.cpp" line="242"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
@ -361,28 +361,79 @@ et les fichiers de sauvegarde de Grand Theft Auto V</translation>
<translation>A&amp;nnuler</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="105"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="131"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Snapmatic Avatar Zone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="238"/>
<source>Select Colour...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MapLocationDialog</name>
<message>
<location filename="../MapLocationDialog.ui" line="26"/>
<source>Snapmatic Map Viewer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="138"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="164"/>
<source>&amp;Apply</source>
<translation type="unfinished">A&amp;ppliquer</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="177"/>
<source>&amp;Revert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="190"/>
<source>&amp;Set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="203"/>
<source>&amp;Done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.cpp" line="89"/>
<source>X: %1
Y: %2</source>
<comment>X and Y position</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MapPreviewDialog</name>
<message>
<location filename="../MapPreviewDialog.ui" line="26"/>
<source>Snapmatic Map Viewer</source>
<translation type="unfinished"></translation>
<source>&amp;Apply</source>
<translation type="obsolete">A&amp;ppliquer</translation>
</message>
</context>
<context>
@ -520,38 +571,55 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../OptionsDialog.ui" line="387"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Language</source>
<translation>Langue</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="419"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="402"/>
<location filename="../OptionsDialog.ui" line="421"/>
<location filename="../OptionsDialog.cpp" line="167"/>
<location filename="../OptionsDialog.cpp" line="215"/>
<source>Current: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="412"/>
<source>Areas</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="445"/>
<source>Sync</source>
<translation>Synchronisation</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="425"/>
<location filename="../OptionsDialog.ui" line="451"/>
<source>Sync is not implemented at current time</source>
<translation>La synchronisation n&apos;est pas encore implémentée</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="463"/>
<location filename="../OptionsDialog.ui" line="489"/>
<source>Apply changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="466"/>
<location filename="../OptionsDialog.ui" line="492"/>
<source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>&amp;OK</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="479"/>
<location filename="../OptionsDialog.ui" line="505"/>
<source>Discard changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="482"/>
<location filename="../OptionsDialog.ui" line="508"/>
<source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>&amp;Annuler</translation>
@ -567,25 +635,37 @@ When you want to use it as Avatar the image will be detached!</source>
<translation type="vanished">Système</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>%1 (Next Closest Language)</source>
<comment>First language a person can talk with a different person/application. &quot;Native&quot; or &quot;Not Native&quot;.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>System</source>
<comment>System in context of System default</comment>
<translation>Système</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>%1 (Closest to Interface)</source>
<comment>Next closest language compared to the Interface</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>Auto</source>
<comment>Automatic language choice.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>%1</source>
<comment>%1</comment>
<translation>%1</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>The new Custom Folder will initialise after you restart %1.</source>
<translation type="unfinished"></translation>
</message>
@ -598,15 +678,15 @@ When you want to use it as Avatar the image will be detached!</source>
<translation type="vanished">Le changement de langue sera actif au prochain lancement de %1.</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="282"/>
<location filename="../OptionsDialog.cpp" line="345"/>
<source>No Profile</source>
<comment>No Profile, as default</comment>
<translation>Aucun profil</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="290"/>
<location filename="../OptionsDialog.cpp" line="294"/>
<location filename="../OptionsDialog.cpp" line="296"/>
<location filename="../OptionsDialog.cpp" line="353"/>
<location filename="../OptionsDialog.cpp" line="357"/>
<location filename="../OptionsDialog.cpp" line="359"/>
<source>Profile: %1</source>
<translation>Profil : %1</translation>
</message>
@ -773,7 +853,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="145"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<location filename="../ProfileInterface.cpp" line="1162"/>
<source>Export as &amp;Picture...</source>
<translation type="unfinished"></translation>
</message>
@ -783,7 +863,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="146"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<location filename="../ProfileInterface.cpp" line="1163"/>
<source>Export as &amp;Snapmatic...</source>
<translation type="unfinished"></translation>
</message>
@ -798,7 +878,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="150"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<source>&amp;Edit Properties...</source>
<translation>Modifier les &amp;propriétés...</translation>
</message>
@ -943,30 +1023,30 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation>Photos activées : %1 sur %2</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="129"/>
<location filename="../ProfileInterface.cpp" line="131"/>
<source>Loading...</source>
<translation>Chargement...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="411"/>
<location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="413"/>
<location filename="../ProfileInterface.cpp" line="478"/>
<source>Import...</source>
<translation>Importer...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="412"/>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="414"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Import</source>
<translation>Importer</translation>
</message>
@ -975,36 +1055,36 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation type="vanished">Fichiers de profil GTA (SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="429"/>
<location filename="../UserInterface.cpp" line="364"/>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../UserInterface.cpp" line="376"/>
<source>Savegames files (SGTA*)</source>
<translation>Fichiers de sauvegarde GTA (SGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="365"/>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="377"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation>Photos Snapmatic (PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../ProfileInterface.cpp" line="433"/>
<source>All image files (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="366"/>
<location filename="../ProfileInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="378"/>
<source>All files (**)</source>
<translation>Tous les fichiers (**)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="477"/>
<location filename="../ProfileInterface.cpp" line="492"/>
<location filename="../ProfileInterface.cpp" line="479"/>
<location filename="../ProfileInterface.cpp" line="494"/>
<source>Import file %1 of %2 files</source>
<translation>Importation du fichier %1 sur %2</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<source>Import failed with...
%1</source>
@ -1013,26 +1093,26 @@ Appuyer sur 1 pour le mode par défaut</translation>
%1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>No valid file is selected</source>
<translation>Fichier invalide</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="427"/>
<location filename="../ProfileInterface.cpp" line="429"/>
<source>Importable files (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../UserInterface.cpp" line="418"/>
<source>Failed to read Snapmatic picture</source>
<translation>Impossible d&apos;ouvrir la photo Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../UserInterface.cpp" line="434"/>
<source>Failed to read Savegame file</source>
<translation>Impossible de lire le fichier de sauvegarde</translation>
</message>
@ -1053,78 +1133,78 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation type="vanished">Tous les fichiers image (*.jpg *.png)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<source>Can&apos;t import %1 because file format can&apos;t be detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e</source>
<translation>Impossible d&apos;importer la photo Snapmatic,nom de fichier incorrect (PGTA*, *.g5e)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<source>Failed to import the Snapmatic picture, the picture is already in the game</source>
<translation>Impossible d&apos;importer la photo Snapmatic, un fichier du même nom existe déjà</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source>
<translation>Impossible d&apos;importer la photo Snapmatic, impossible de copier le fichier dans le profil</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source>
<translation>Impossible d&apos;importer la sauvegarde, impossible de copier le fichier dans le profil</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Failed to import the Savegame, no Savegame slot is left</source>
<translation>Impossible d&apos;importer la sauvegarde, aucun emplacement libre</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="878"/>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="880"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<source>Export selected</source>
<translation>Exporter la sélection</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="901"/>
<location filename="../ProfileInterface.cpp" line="919"/>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="921"/>
<source>JPG pictures and GTA Snapmatic</source>
<translation>Images JPG et GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="902"/>
<location filename="../ProfileInterface.cpp" line="924"/>
<location filename="../ProfileInterface.cpp" line="904"/>
<location filename="../ProfileInterface.cpp" line="926"/>
<source>JPG pictures only</source>
<translation>Images JPG seulement</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="928"/>
<location filename="../ProfileInterface.cpp" line="905"/>
<location filename="../ProfileInterface.cpp" line="930"/>
<source>GTA Snapmatic only</source>
<translation>GTA Snapmatic seulement</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<source>%1Export Snapmatic pictures%2&lt;br&gt;&lt;br&gt;JPG pictures make it possible to open the picture with a Image Viewer&lt;br&gt;GTA Snapmatic make it possible to import the picture into the game&lt;br&gt;&lt;br&gt;Export as:</source>
<translation>%1Exporter les photos Snapmatic%2&lt;br&gt;&lt;br&gt;Les fichiers JPG permettent d&apos;ouvrir les photos avec une visionneuse d&apos;images&lt;br&gt;Les GTA Snapmatic permettent d&apos;importer les photos dans le jeu&lt;br&gt;&lt;br&gt;Exporter comme :</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="961"/>
<location filename="../ProfileInterface.cpp" line="963"/>
<source>Export selected...</source>
<translation>Exporter la sélection...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="962"/>
<location filename="../ProfileInterface.cpp" line="964"/>
<source>Initialising export...</source>
<translation type="unfinished"></translation>
</message>
@ -1133,7 +1213,7 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation type="vanished">Initialisation de l&apos;export...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<source>Export failed with...
%1</source>
@ -1142,36 +1222,36 @@ Appuyer sur 1 pour le mode par défaut</translation>
%1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>No Snapmatic pictures or Savegames files are selected</source>
<translation>Aucun fichier de sauvegarde ou photo Snapmatic sélectionné</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>Remove selected</source>
<translation>Supprimer la sélection</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
<translation>Supprimer la sélection ?</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
<translation>Impossible de supprimer la sélection</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="362"/>
<location filename="../UserInterface.cpp" line="374"/>
<source>All profile files (*.g5e SGTA* PGTA*)</source>
<translation>Tous les fichiers de profil (*.g5e SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="428"/>
<location filename="../UserInterface.cpp" line="363"/>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="375"/>
<source>GTA V Export (*.g5e)</source>
<translation>GTA V Export (*.g5e)</translation>
</message>
@ -1262,7 +1342,7 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1197"/>
<location filename="../ProfileInterface.cpp" line="1199"/>
<source>&amp;Export</source>
<translation>&amp;Exporter</translation>
</message>
@ -1353,32 +1433,32 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation>Impossible de supprimer %1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1196"/>
<location filename="../ProfileInterface.cpp" line="1198"/>
<source>&amp;View</source>
<translation>&amp;Voir</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1198"/>
<location filename="../ProfileInterface.cpp" line="1200"/>
<source>&amp;Remove</source>
<translation>&amp;Supprimer</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1200"/>
<location filename="../ProfileInterface.cpp" line="1202"/>
<source>&amp;Select</source>
<translation>&amp;Sélectionner</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1201"/>
<location filename="../ProfileInterface.cpp" line="1203"/>
<source>&amp;Deselect</source>
<translation>&amp;Déselectionner</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1204"/>
<location filename="../ProfileInterface.cpp" line="1206"/>
<source>Select &amp;All</source>
<translation>Sélectionner to&amp;ut</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1208"/>
<location filename="../ProfileInterface.cpp" line="1210"/>
<source>&amp;Deselect All</source>
<translation>&amp;Déselectionner tout</translation>
</message>
@ -1388,6 +1468,7 @@ Appuyer sur 1 pour le mode par défaut</translation>
<message>
<location filename="../SnapmaticEditor.ui" line="14"/>
<location filename="../SnapmaticEditor.ui" line="81"/>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Snapmatic Properties</source>
<translation>Propriétés Snapmatic</translation>
@ -1506,6 +1587,7 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation>Non</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation>La modification des propriétés Snapmatic a échoué : erreur d&apos;entrée/sortie</translation>
@ -1599,17 +1681,17 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation>Impossible de supprimer %1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1149"/>
<location filename="../ProfileInterface.cpp" line="1151"/>
<source>Edi&amp;t</source>
<translation>Édi&amp;ter</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1152"/>
<location filename="../ProfileInterface.cpp" line="1154"/>
<source>Show &amp;In-game</source>
<translation>&amp;Visible en jeu</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1156"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<source>Hide &amp;In-game</source>
<translation>&amp;Invisible en jeu</translation>
</message>
@ -1618,7 +1700,7 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation type="vanished">Modifier les &amp;propriétés...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1159"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<source>&amp;Export</source>
<translation>&amp;Exporter</translation>
</message>
@ -1631,32 +1713,32 @@ Appuyer sur 1 pour le mode par défaut</translation>
<translation type="vanished">Exporter comme &amp;GTA Snapmatic...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1162"/>
<location filename="../ProfileInterface.cpp" line="1164"/>
<source>&amp;View</source>
<translation>&amp;Voir</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1165"/>
<location filename="../ProfileInterface.cpp" line="1167"/>
<source>&amp;Remove</source>
<translation>S&amp;upprimer</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1167"/>
<location filename="../ProfileInterface.cpp" line="1169"/>
<source>&amp;Select</source>
<translation>&amp;Sélectionner</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1168"/>
<location filename="../ProfileInterface.cpp" line="1170"/>
<source>&amp;Deselect</source>
<translation>&amp;Déselectionner</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1171"/>
<location filename="../ProfileInterface.cpp" line="1173"/>
<source>Select &amp;All</source>
<translation>Sélectionner &amp;tout</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1175"/>
<location filename="../ProfileInterface.cpp" line="1177"/>
<source>&amp;Deselect All</source>
<translation>&amp;Déselectionner tout</translation>
</message>
@ -1830,9 +1912,9 @@ Appuyer sur 1 pour le mode par défaut</translation>
</message>
<message>
<location filename="../UserInterface.ui" line="312"/>
<location filename="../OptionsDialog.cpp" line="428"/>
<location filename="../OptionsDialog.cpp" line="491"/>
<location filename="../UserInterface.cpp" line="103"/>
<location filename="../UserInterface.cpp" line="511"/>
<location filename="../UserInterface.cpp" line="523"/>
<source>Select GTA V Folder...</source>
<translation>Modifier l&apos;emplacement de GTA V...</translation>
</message>
@ -1875,32 +1957,32 @@ Appuyer sur 1 pour le mode par défaut</translation>
<message>
<location filename="../UserInterface.ui" line="226"/>
<location filename="../UserInterface.cpp" line="59"/>
<location filename="../UserInterface.cpp" line="540"/>
<location filename="../UserInterface.cpp" line="552"/>
<source>&amp;About %1</source>
<translation>&amp;À propos de %1</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="63"/>
<location filename="../UserInterface.cpp" line="233"/>
<location filename="../UserInterface.cpp" line="548"/>
<location filename="../UserInterface.cpp" line="228"/>
<location filename="../UserInterface.cpp" line="560"/>
<source>Select Profile</source>
<translation>Sélectionner un profil</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="359"/>
<location filename="../UserInterface.cpp" line="371"/>
<source>Open File...</source>
<translation>Ouvrir...</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../UserInterface.cpp" line="418"/>
<location filename="../UserInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="461"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>Open File</source>
<translation>Ouvrir</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="461"/>
<source>Can&apos;t open %1 because of not valid file format</source>
<translation>Impossible d&apos;ouvrir %1, format invalide</translation>
</message>

Binary file not shown.

View File

@ -293,7 +293,7 @@ Grand Theft Auto V Snapmatic картинок и сохранений</translati
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.cpp" line="57"/>
<location filename="../ImportDialog.cpp" line="216"/>
<location filename="../ImportDialog.cpp" line="242"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation>Цвет фона: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</translation>
</message>
@ -324,29 +324,81 @@ Grand Theft Auto V Snapmatic картинок и сохранений</translati
<translation>От&amp;мена</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="105"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="131"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation>Ты точно хочешь использовать квадратное изображение вне зоны аватарки? Если это аватар, то изображение будет обрезано!</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="173"/>
<location filename="../ImportDialog.cpp" line="199"/>
<source>Snapmatic Avatar Zone</source>
<translation>Зона Snapmatic Аватарки</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="238"/>
<source>Select Colour...</source>
<translation>Выбрать цвет...</translation>
</message>
</context>
<context>
<name>MapPreviewDialog</name>
<name>MapLocationDialog</name>
<message>
<location filename="../MapPreviewDialog.ui" line="26"/>
<location filename="../MapLocationDialog.ui" line="26"/>
<source>Snapmatic Map Viewer</source>
<translation>Просмотрщик карты Snapmatic</translation>
</message>
<message>
<source>X: %1
Y: %2</source>
<extracomment>X and Y position</extracomment>
<translation type="vanished">X: %1
Y: %2</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="138"/>
<source>&amp;Close</source>
<translation>&amp;Закрыть</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="164"/>
<source>&amp;Apply</source>
<translation>&amp;Применить</translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="177"/>
<source>&amp;Revert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="190"/>
<source>&amp;Set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.ui" line="203"/>
<source>&amp;Done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MapLocationDialog.cpp" line="89"/>
<source>X: %1
Y: %2</source>
<comment>X and Y position</comment>
<translation>X: %1
Y: %2</translation>
</message>
</context>
<context>
<name>OptionsDialog</name>
@ -483,38 +535,55 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../OptionsDialog.ui" line="387"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Language</source>
<translation>Язык</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="419"/>
<location filename="../OptionsDialog.ui" line="393"/>
<source>Interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="402"/>
<location filename="../OptionsDialog.ui" line="421"/>
<location filename="../OptionsDialog.cpp" line="167"/>
<location filename="../OptionsDialog.cpp" line="215"/>
<source>Current: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="412"/>
<source>Areas</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="445"/>
<source>Sync</source>
<translation>Sync</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="425"/>
<location filename="../OptionsDialog.ui" line="451"/>
<source>Sync is not implemented at current time</source>
<translation>Синхронизация пока ещё не реализована</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="463"/>
<location filename="../OptionsDialog.ui" line="489"/>
<source>Apply changes</source>
<translation>Применить изменения</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="466"/>
<location filename="../OptionsDialog.ui" line="492"/>
<source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>&amp;ОК</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="479"/>
<location filename="../OptionsDialog.ui" line="505"/>
<source>Discard changes</source>
<translation>Отвергнуть изменения</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="482"/>
<location filename="../OptionsDialog.ui" line="508"/>
<source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment>
<translation>От&amp;мена</translation>
@ -531,25 +600,37 @@ When you want to use it as Avatar the image will be detached!</source>
<translation type="vanished">%1 (%2 если имеется)</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>%1 (Next Closest Language)</source>
<comment>First language a person can talk with a different person/application. &quot;Native&quot; or &quot;Not Native&quot;.</comment>
<translation></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="130"/>
<location filename="../OptionsDialog.cpp" line="131"/>
<source>System</source>
<comment>System in context of System default</comment>
<translation>Система</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>%1 (Closest to Interface)</source>
<comment>Next closest language compared to the Interface</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="133"/>
<source>Auto</source>
<comment>Automatic language choice.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>%1</source>
<comment>%1</comment>
<translation>%1</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="272"/>
<location filename="../OptionsDialog.cpp" line="335"/>
<source>The new Custom Folder will initialise after you restart %1.</source>
<translation>Другая папка будет загружена после перезапуска %1.</translation>
</message>
@ -562,15 +643,15 @@ When you want to use it as Avatar the image will be detached!</source>
<translation type="vanished">Язык изменится после перезапуска %1.</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="282"/>
<location filename="../OptionsDialog.cpp" line="345"/>
<source>No Profile</source>
<comment>No Profile, as default</comment>
<translation>Нет профиля</translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="290"/>
<location filename="../OptionsDialog.cpp" line="294"/>
<location filename="../OptionsDialog.cpp" line="296"/>
<location filename="../OptionsDialog.cpp" line="353"/>
<location filename="../OptionsDialog.cpp" line="357"/>
<location filename="../OptionsDialog.cpp" line="359"/>
<source>Profile: %1</source>
<translation>Профиль: %1</translation>
</message>
@ -651,7 +732,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="145"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<location filename="../ProfileInterface.cpp" line="1162"/>
<source>Export as &amp;Picture...</source>
<translation>Экспортировать как &amp;картинку...</translation>
</message>
@ -661,7 +742,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="146"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<location filename="../ProfileInterface.cpp" line="1163"/>
<source>Export as &amp;Snapmatic...</source>
<translation>Экспортировать как &amp;Snapmatic...</translation>
</message>
@ -676,7 +757,7 @@ When you want to use it as Avatar the image will be detached!</source>
</message>
<message>
<location filename="../PictureDialog.cpp" line="150"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<location filename="../ProfileInterface.cpp" line="1160"/>
<source>&amp;Edit Properties...</source>
<translation>&amp;Изменить свойства...</translation>
</message>
@ -917,30 +998,30 @@ Press 1 for Default View</source>
<translation type="obsolete">Закрыть профиль</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="129"/>
<location filename="../ProfileInterface.cpp" line="131"/>
<source>Loading...</source>
<translation>Загрузка...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="411"/>
<location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="413"/>
<location filename="../ProfileInterface.cpp" line="478"/>
<source>Import...</source>
<translation>Импортировать...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="412"/>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="414"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Import</source>
<translation>Импортировать</translation>
</message>
@ -949,31 +1030,31 @@ Press 1 for Default View</source>
<translation type="vanished">Все файлы профиля (SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="429"/>
<location filename="../UserInterface.cpp" line="364"/>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../UserInterface.cpp" line="376"/>
<source>Savegames files (SGTA*)</source>
<translation>Файлы сохранения (SGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="365"/>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="377"/>
<source>Snapmatic pictures (PGTA*)</source>
<translation>Картинка Snapmatic (PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="432"/>
<location filename="../UserInterface.cpp" line="366"/>
<location filename="../ProfileInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="378"/>
<source>All files (**)</source>
<translation>Все файлы (**)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="477"/>
<location filename="../ProfileInterface.cpp" line="492"/>
<location filename="../ProfileInterface.cpp" line="479"/>
<location filename="../ProfileInterface.cpp" line="494"/>
<source>Import file %1 of %2 files</source>
<translation>Импортируются файлы %1 из %2</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="507"/>
<location filename="../ProfileInterface.cpp" line="509"/>
<source>Import failed with...
%1</source>
@ -982,14 +1063,14 @@ Press 1 for Default View</source>
%1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../ProfileInterface.cpp" line="529"/>
<location filename="../UserInterface.cpp" line="418"/>
<source>Failed to read Snapmatic picture</source>
<translation>Не удалось загрузить картинку Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="543"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../ProfileInterface.cpp" line="545"/>
<location filename="../UserInterface.cpp" line="434"/>
<source>Failed to read Savegame file</source>
<translation>Не удалось загрузить файл сохранения</translation>
</message>
@ -998,9 +1079,9 @@ Press 1 for Default View</source>
<translation type="vanished">Не получилось импортировать %1 из-за неправильного формата файла</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="455"/>
<location filename="../ProfileInterface.cpp" line="745"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../ProfileInterface.cpp" line="457"/>
<location filename="../ProfileInterface.cpp" line="747"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>No valid file is selected</source>
<translation>Выбранный файл неверен</translation>
</message>
@ -1018,93 +1099,93 @@ Press 1 for Default View</source>
<translation type="vanished">Все изображения (*.jpg *.png)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="427"/>
<location filename="../ProfileInterface.cpp" line="429"/>
<source>Importable files (%1)</source>
<translation>Файлы для импорта (%1)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="431"/>
<location filename="../ProfileInterface.cpp" line="433"/>
<source>All image files (%1)</source>
<translation>Все файлы изображений (%1)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="659"/>
<location filename="../ProfileInterface.cpp" line="661"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation>Не получилось импортировать %1, файл не может быть правильно обработан</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="740"/>
<location filename="../ProfileInterface.cpp" line="742"/>
<source>Can&apos;t import %1 because file format can&apos;t be detected</source>
<translation>Не получилось импортировать %1, не удалось определить формат файла</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="755"/>
<location filename="../ProfileInterface.cpp" line="757"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA or end with .g5e</source>
<translation>Не удалось импортировать картинку Snapmatic, название не начинается с PGTA или не заканчивается с .g5e</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="760"/>
<location filename="../ProfileInterface.cpp" line="762"/>
<source>Failed to import the Snapmatic picture, the picture is already in the game</source>
<translation>Не удалось импортировать картинку Snapmatic, картинка уже в игре</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="771"/>
<location filename="../ProfileInterface.cpp" line="773"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source>
<translation>Не удалось импортировать картинку Snapmatic, не получилось скопировать файл в профиль</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="808"/>
<location filename="../ProfileInterface.cpp" line="810"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source>
<translation>Не удалось импортировать сохранение, не получилось скопировать файл в профиль</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="814"/>
<location filename="../ProfileInterface.cpp" line="816"/>
<source>Failed to import the Savegame, no Savegame slot is left</source>
<translation>Не удалось импортировать сохранение, нет пустых ячеек под сохранения</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="901"/>
<location filename="../ProfileInterface.cpp" line="919"/>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="921"/>
<source>JPG pictures and GTA Snapmatic</source>
<translation>Картинки JPG и GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="902"/>
<location filename="../ProfileInterface.cpp" line="924"/>
<location filename="../ProfileInterface.cpp" line="904"/>
<location filename="../ProfileInterface.cpp" line="926"/>
<source>JPG pictures only</source>
<translation>Только картинки JPG</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="903"/>
<location filename="../ProfileInterface.cpp" line="928"/>
<location filename="../ProfileInterface.cpp" line="905"/>
<location filename="../ProfileInterface.cpp" line="930"/>
<source>GTA Snapmatic only</source>
<translation>Только GTA Snapmatic</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="962"/>
<location filename="../ProfileInterface.cpp" line="964"/>
<source>Initialising export...</source>
<translation>Подготовка к экспорту...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>No Snapmatic pictures or Savegames files are selected</source>
<translation>Не выделены ни один Snapmatic или сохранение</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1057"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<location filename="../ProfileInterface.cpp" line="1059"/>
<source>Remove selected</source>
<translation>Снять выделение</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1023"/>
<location filename="../ProfileInterface.cpp" line="1025"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
<translation>Точно ли хочешь удалить выбранные картинки Snapmatic и файлы сохранений?</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1051"/>
<location filename="../ProfileInterface.cpp" line="1053"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
<translation>Не удалось удалить полностью выбранные картинки Snapmatic и/или файлы сохранений</translation>
</message>
@ -1125,20 +1206,20 @@ Press 1 for Default View</source>
<translation type="obsolete">Не получилось имортировать копию сохранения, потому что не осталось свободных под них слотов</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="878"/>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="1015"/>
<location filename="../ProfileInterface.cpp" line="880"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<location filename="../ProfileInterface.cpp" line="1017"/>
<source>Export selected</source>
<translation>Экспортировать выделенное</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="916"/>
<location filename="../ProfileInterface.cpp" line="918"/>
<source>%1Export Snapmatic pictures%2&lt;br&gt;&lt;br&gt;JPG pictures make it possible to open the picture with a Image Viewer&lt;br&gt;GTA Snapmatic make it possible to import the picture into the game&lt;br&gt;&lt;br&gt;Export as:</source>
<translation>%1Эскпортировать картинки Snapmatic%2&lt;br&gt;&lt;br&gt;Картинки JPG можно открыть любым просмотрщиком&lt;br&gt;Картинки формата GTA Snapmatic можно снова импортировать в игру&lt;br&gt;&lt;br&gt;Экспортировать как:</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="961"/>
<location filename="../ProfileInterface.cpp" line="963"/>
<source>Export selected...</source>
<translation>Экпортировать выделенное...</translation>
</message>
@ -1147,7 +1228,7 @@ Press 1 for Default View</source>
<translation type="vanished">Подготавливаю эскпорт...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="995"/>
<location filename="../ProfileInterface.cpp" line="997"/>
<source>Export failed with...
%1</source>
@ -1163,13 +1244,13 @@ Press 1 for Default View</source>
<translation>Экспортируется файл %1 из %2</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="362"/>
<location filename="../UserInterface.cpp" line="374"/>
<source>All profile files (*.g5e SGTA* PGTA*)</source>
<translation>Все файлы профиля (*.g5e SGTA* PGTA*)</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="428"/>
<location filename="../UserInterface.cpp" line="363"/>
<location filename="../ProfileInterface.cpp" line="430"/>
<location filename="../UserInterface.cpp" line="375"/>
<source>GTA V Export (*.g5e)</source>
<translation>GTA V Export (*.g5e)</translation>
</message>
@ -1319,32 +1400,32 @@ Press 1 for Default View</source>
<translation>Не удалось удалить сохранение %1</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1196"/>
<location filename="../ProfileInterface.cpp" line="1198"/>
<source>&amp;View</source>
<translation>&amp;Просмотр</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1198"/>
<location filename="../ProfileInterface.cpp" line="1200"/>
<source>&amp;Remove</source>
<translation>&amp;Удалить</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1200"/>
<location filename="../ProfileInterface.cpp" line="1202"/>
<source>&amp;Select</source>
<translation>&amp;Выбрать</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1201"/>
<location filename="../ProfileInterface.cpp" line="1203"/>
<source>&amp;Deselect</source>
<translation>Сн&amp;ять выбор</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1204"/>
<location filename="../ProfileInterface.cpp" line="1206"/>
<source>Select &amp;All</source>
<translation>В&amp;ыбрать все</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1208"/>
<location filename="../ProfileInterface.cpp" line="1210"/>
<source>&amp;Deselect All</source>
<translation>Снять выбо&amp;р со всех</translation>
</message>
@ -1354,7 +1435,7 @@ Press 1 for Default View</source>
<translation>Копировать сохранение</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1197"/>
<location filename="../ProfileInterface.cpp" line="1199"/>
<source>&amp;Export</source>
<translation>&amp;Экспортировать</translation>
</message>
@ -1414,6 +1495,7 @@ Press 1 for Default View</source>
<message>
<location filename="../SnapmaticEditor.ui" line="14"/>
<location filename="../SnapmaticEditor.ui" line="81"/>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Snapmatic Properties</source>
<translation>Свойства Snapmatic</translation>
@ -1526,6 +1608,7 @@ Press 1 for Default View</source>
<translation>Нет</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="727"/>
<location filename="../SnapmaticEditor.cpp" line="241"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation>Не удалось измененить свойства Snapmatic из-за проблемы ввода/вывода</translation>
@ -1609,17 +1692,17 @@ Press 1 for Default View</source>
<translation>Не удалось удалить %1 из колелкции картинок Snapmatic </translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1149"/>
<location filename="../ProfileInterface.cpp" line="1151"/>
<source>Edi&amp;t</source>
<translation>&amp;Правка</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1152"/>
<location filename="../ProfileInterface.cpp" line="1154"/>
<source>Show &amp;In-game</source>
<translation>Показывать в &amp;игре</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1156"/>
<location filename="../ProfileInterface.cpp" line="1158"/>
<source>Hide &amp;In-game</source>
<translation>Ск&amp;рыть в игре</translation>
</message>
@ -1628,7 +1711,7 @@ Press 1 for Default View</source>
<translation type="vanished">&amp;Изменить свойства...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1159"/>
<location filename="../ProfileInterface.cpp" line="1161"/>
<source>&amp;Export</source>
<translation>&amp;Экспорт</translation>
</message>
@ -1641,32 +1724,32 @@ Press 1 for Default View</source>
<translation type="vanished">Экс&amp;портировать как GTA Snapmatic...</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1162"/>
<location filename="../ProfileInterface.cpp" line="1164"/>
<source>&amp;View</source>
<translation>По&amp;казать</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1165"/>
<location filename="../ProfileInterface.cpp" line="1167"/>
<source>&amp;Remove</source>
<translation>У&amp;далить</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1167"/>
<location filename="../ProfileInterface.cpp" line="1169"/>
<source>&amp;Select</source>
<translation>&amp;Выделить</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1168"/>
<location filename="../ProfileInterface.cpp" line="1170"/>
<source>&amp;Deselect</source>
<translation>Сн&amp;ять выделение</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1171"/>
<location filename="../ProfileInterface.cpp" line="1173"/>
<source>Select &amp;All</source>
<translation>В&amp;ыбрать все</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1175"/>
<location filename="../ProfileInterface.cpp" line="1177"/>
<source>&amp;Deselect All</source>
<translation>Снять выбо&amp;р со всех</translation>
</message>
@ -1887,16 +1970,16 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../UserInterface.cpp" line="63"/>
<location filename="../UserInterface.cpp" line="233"/>
<location filename="../UserInterface.cpp" line="548"/>
<location filename="../UserInterface.cpp" line="228"/>
<location filename="../UserInterface.cpp" line="560"/>
<source>Select Profile</source>
<translation>Выбор профиля</translation>
</message>
<message>
<location filename="../UserInterface.ui" line="312"/>
<location filename="../OptionsDialog.cpp" line="428"/>
<location filename="../OptionsDialog.cpp" line="491"/>
<location filename="../UserInterface.cpp" line="103"/>
<location filename="../UserInterface.cpp" line="511"/>
<location filename="../UserInterface.cpp" line="523"/>
<source>Select GTA V Folder...</source>
<translation>Выбрать папку GTA V...</translation>
</message>
@ -1909,25 +1992,25 @@ Press 1 for Default View</source>
<message>
<location filename="../UserInterface.ui" line="226"/>
<location filename="../UserInterface.cpp" line="59"/>
<location filename="../UserInterface.cpp" line="540"/>
<location filename="../UserInterface.cpp" line="552"/>
<source>&amp;About %1</source>
<translation>&amp;О программе %1</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="359"/>
<location filename="../UserInterface.cpp" line="371"/>
<source>Open File...</source>
<translation>Открыть файл...</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="406"/>
<location filename="../UserInterface.cpp" line="422"/>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="454"/>
<location filename="../UserInterface.cpp" line="418"/>
<location filename="../UserInterface.cpp" line="434"/>
<location filename="../UserInterface.cpp" line="461"/>
<location filename="../UserInterface.cpp" line="466"/>
<source>Open File</source>
<translation>Открыть файл</translation>
</message>
<message>
<location filename="../UserInterface.cpp" line="449"/>
<location filename="../UserInterface.cpp" line="461"/>
<source>Can&apos;t open %1 because of not valid file format</source>
<translation>Не удалось открыть %1 из-за неверного формата файла</translation>
</message>