added language change, translation files updated

This commit is contained in:
Rafael 2016-04-14 01:27:29 +02:00
parent c9eea52af7
commit dcb95f5c77
20 changed files with 703 additions and 375 deletions

View File

@ -17,7 +17,9 @@
*****************************************************************************/ *****************************************************************************/
#define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS
#include "config.h"
#include "AppEnv.h" #include "AppEnv.h"
#include "StringParser.h"
#include "StandardPaths.h" #include "StandardPaths.h"
#include <QDir> #include <QDir>
#include <QDebug> #include <QDebug>
@ -30,6 +32,8 @@ AppEnv::AppEnv()
} }
// Folder Stuff
QString AppEnv::getGameFolder(bool *ok) QString AppEnv::getGameFolder(bool *ok)
{ {
QDir dir; QDir dir;
@ -104,3 +108,25 @@ bool AppEnv::setGameFolder(QString gameFolder)
} }
return false; return false;
} }
QString AppEnv::getLangFolder()
{
return StringParser::convertBuildedString(QString::fromUtf8(GTA5SYNC_LANG));
}
QString AppEnv::getPluginsFolder()
{
return StringParser::convertBuildedString(QString::fromUtf8(GTA5SYNC_PLUG));
}
// Web Stuff
QByteArray AppEnv::getUserAgent()
{
return QString("Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 gta5sync/1.0").toUtf8();
}
QUrl AppEnv::getPlayerFetchingUrl(QString crewID, QString pageNumber)
{
return QUrl(QString("https://socialclub.rockstargames.com/crewsapi/GetMembersList?crewId=%1&pageNumber=%2").arg(crewID, pageNumber));
}

View File

@ -20,13 +20,22 @@
#define APPENV_H #define APPENV_H
#include <QString> #include <QString>
#include <QUrl>
class AppEnv class AppEnv
{ {
public: public:
AppEnv(); AppEnv();
// Folder Stuff
static QString getGameFolder(bool *ok = 0); static QString getGameFolder(bool *ok = 0);
static bool setGameFolder(QString gameFolder); static bool setGameFolder(QString gameFolder);
static QString getLangFolder();
static QString getPluginsFolder();
// Web Stuff
static QByteArray getUserAgent();
static QUrl getPlayerFetchingUrl(QString crewID, QString pageNumber);
}; };
#endif // APPENV_H #endif // APPENV_H

View File

@ -18,6 +18,7 @@
#include "StandardPaths.h" #include "StandardPaths.h"
#include "CrewDatabase.h" #include "CrewDatabase.h"
#include "config.h"
#include <QFile> #include <QFile>
#include <QDir> #include <QDir>
@ -29,7 +30,7 @@ CrewDatabase::CrewDatabase(QObject *parent) : QObject(parent)
QString dirPath = dir.absolutePath(); QString dirPath = dir.absolutePath();
QString defaultConfPath = dirPath + QDir::separator() + "crews.ini"; QString defaultConfPath = dirPath + QDir::separator() + "crews.ini";
QSettings confPathSettings("Syping","gta5sync"); QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
confPathSettings.beginGroup("Database"); confPathSettings.beginGroup("Database");
QString confPathFile = confPathSettings.value("Crews", defaultConfPath).toString(); QString confPathFile = confPathSettings.value("Crews", defaultConfPath).toString();
confPathSettings.endGroup(); confPathSettings.endGroup();

View File

@ -18,6 +18,7 @@
#include "DatabaseThread.h" #include "DatabaseThread.h"
#include "CrewDatabase.h" #include "CrewDatabase.h"
#include "AppEnv.h"
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QNetworkReply> #include <QNetworkReply>
@ -85,20 +86,19 @@ void DatabaseThread::scanCrewMembersList(QStringList crewList, int maxPages, int
{ {
QNetworkAccessManager *netManager = new QNetworkAccessManager(); QNetworkAccessManager *netManager = new QNetworkAccessManager();
QString memberListUrl = "https://socialclub.rockstargames.com/crewsapi/GetMembersList?crewId=" + crewID + "&pageNumber=" + QString::number(currentPage); QNetworkRequest netRequest(AppEnv::getPlayerFetchingUrl(crewID, QString::number(currentPage)));
netRequest.setRawHeader("User-Agent", AppEnv::getUserAgent());
QNetworkRequest netRequest(memberListUrl);
netRequest.setRawHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 gta5sync/1.0");
netRequest.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); netRequest.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
netRequest.setRawHeader("Accept-Language", "en-US;q=0.5,en;q=0.3"); netRequest.setRawHeader("Accept-Language", "en-US;q=0.5,en;q=0.3");
netRequest.setRawHeader("Connection", "keep-alive"); netRequest.setRawHeader("Connection", "keep-alive");
QNetworkReply *netReply = netManager->get(netRequest); QNetworkReply *netReply = netManager->get(netRequest);
QEventLoop downloadLoop; QEventLoop *downloadLoop = new QEventLoop();
QObject::connect(netReply, SIGNAL(finished()), &downloadLoop, SLOT(quit())); QObject::connect(netReply, SIGNAL(finished()), downloadLoop, SLOT(quit()));
QTimer::singleShot(30000, &downloadLoop, SLOT(quit())); QTimer::singleShot(30000, downloadLoop, SLOT(quit()));
downloadLoop.exec(); downloadLoop->exec();
delete downloadLoop;
if (netReply->isFinished()) if (netReply->isFinished())
{ {
@ -128,9 +128,10 @@ void DatabaseThread::scanCrewMembersList(QStringList crewList, int maxPages, int
} }
} }
QEventLoop waitingLoop; QEventLoop *waitingLoop = new QEventLoop();
QTimer::singleShot(requestDelay, &waitingLoop, SLOT(quit())); QTimer::singleShot(requestDelay, waitingLoop, SLOT(quit()));
waitingLoop.exec(); waitingLoop->exec();
delete waitingLoop;
currentPage++; currentPage++;
} }

View File

@ -18,15 +18,119 @@
#include "OptionsDialog.h" #include "OptionsDialog.h"
#include "ui_OptionsDialog.h" #include "ui_OptionsDialog.h"
#include "AppEnv.h"
#include "config.h"
#include <QMessageBox>
#include <QStringList>
#include <QLocale>
#include <QString>
#include <QDebug>
#include <QList>
#include <QDir>
OptionsDialog::OptionsDialog(QWidget *parent) : OptionsDialog::OptionsDialog(ProfileDatabase *profileDB, QWidget *parent) :
QDialog(parent), QDialog(parent), profileDB(profileDB),
ui(new Ui::OptionsDialog) ui(new Ui::OptionsDialog)
{ {
ui->setupUi(this); ui->setupUi(this);
setupTreeWidget();
setupLanguageBox();
} }
OptionsDialog::~OptionsDialog() OptionsDialog::~OptionsDialog()
{ {
foreach(QTreeWidgetItem *playerItem, playerItems)
{
delete playerItem;
}
delete ui; delete ui;
} }
void OptionsDialog::setupTreeWidget()
{
foreach(const QString &playerIDStr, profileDB->getPlayers())
{
bool ok;
int playerID = playerIDStr.toInt(&ok);
if (ok)
{
QString playerName = profileDB->getPlayerName(playerID);
QStringList playerTreeViewList;
playerTreeViewList << playerIDStr;
playerTreeViewList << playerName;
QTreeWidgetItem *playerItem = new QTreeWidgetItem(playerTreeViewList);
ui->twPlayers->addTopLevelItem(playerItem);
playerItems.append(playerItem);
}
}
ui->twPlayers->sortItems(1, Qt::AscendingOrder);
}
void OptionsDialog::setupLanguageBox()
{
QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("Interface");
currentLanguage = settings.value("Language","System").toString();
settings.endGroup();
QString cbSysStr = tr("%1 (%2 if available) [sys]", "System like PC System = %1, System Language like Deutsch = %2").arg(tr("System",
"System like PC System"), QLocale::system().nativeLanguageName());
ui->cbLanguage->addItem(cbSysStr, "System");
QString cbEngStr = "English (English) [en]";
ui->cbLanguage->addItem(QIcon::fromTheme("flag-us"), cbEngStr, "en");
if (currentLanguage == "en")
{
ui->cbLanguage->setCurrentText(cbEngStr);
}
QDir langDir;
langDir.setNameFilters(QStringList("gta5sync_*.qm"));
langDir.setPath(AppEnv::getLangFolder());
QStringList langFiles;
langFiles << langDir.entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::NoSort);
langDir.setPath(":/tr");
langFiles << langDir.entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::NoSort);
langFiles.removeDuplicates();
foreach(const QString &langFile, langFiles)
{
QString lang = langFile;
lang.remove("gta5sync_");
lang.remove(".qm");
QLocale langLocale(lang);
QString languageNameInternational = QLocale::languageToString(langLocale.language());
QString languageNameNative = langLocale.nativeLanguageName();
QString cbLangStr = languageNameNative + " (" + languageNameInternational + ") [" + lang + "]";
QString langIconStr = "flag-" + lang;
ui->cbLanguage->addItem(QIcon::fromTheme(langIconStr), cbLangStr, lang);
if (currentLanguage == lang)
{
ui->cbLanguage->setCurrentText(cbLangStr);
}
}
}
void OptionsDialog::on_cmdOK_clicked()
{
applySettings();
close();
}
void OptionsDialog::applySettings()
{
QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("Interface");
settings.setValue("Language", ui->cbLanguage->currentData());
settings.endGroup();
if (ui->cbLanguage->currentData().toString() != currentLanguage)
{
QMessageBox::information(this, tr("%1", "%1").arg(GTA5SYNC_APPSTR), tr("The language change will take effect after you restart %1.").arg(GTA5SYNC_APPSTR));
}
}

View File

@ -1,4 +1,4 @@
/***************************************************************************** /******************************************************************************
* gta5sync GRAND THEFT AUTO V SYNC * gta5sync GRAND THEFT AUTO V SYNC
* Copyright (C) 2016 Syping * Copyright (C) 2016 Syping
* *
@ -19,7 +19,10 @@
#ifndef OPTIONSDIALOG_H #ifndef OPTIONSDIALOG_H
#define OPTIONSDIALOG_H #define OPTIONSDIALOG_H
#include <QList>
#include <QDialog> #include <QDialog>
#include <QTreeWidgetItem>
#include "ProfileDatabase.h"
namespace Ui { namespace Ui {
class OptionsDialog; class OptionsDialog;
@ -30,11 +33,20 @@ class OptionsDialog : public QDialog
Q_OBJECT Q_OBJECT
public: public:
explicit OptionsDialog(QWidget *parent = 0); explicit OptionsDialog(ProfileDatabase *profileDB, QWidget *parent = 0);
~OptionsDialog(); ~OptionsDialog();
private slots:
void on_cmdOK_clicked();
private: private:
ProfileDatabase *profileDB;
Ui::OptionsDialog *ui; Ui::OptionsDialog *ui;
QList<QTreeWidgetItem*> playerItems;
QString currentLanguage;
void setupTreeWidget();
void setupLanguageBox();
void applySettings();
}; };
#endif // OPTIONSDIALOG_H #endif // OPTIONSDIALOG_H

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>gta5sync - Options</string> <string>gta5sync - Settings</string>
</property> </property>
<property name="modal"> <property name="modal">
<bool>true</bool> <bool>true</bool>
@ -75,9 +75,54 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tabPlayers">
<attribute name="title">
<string>Players</string>
</attribute>
<layout class="QVBoxLayout" name="vlPlayers">
<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="QTreeWidget" name="twPlayers">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>ID</string>
</property>
</column>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tabLocalization"> <widget class="QWidget" name="tabLocalization">
<attribute name="title"> <attribute name="title">
<string>Localization</string> <string>Language</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="vlLocalization"> <layout class="QVBoxLayout" name="vlLocalization">
<item> <item>
@ -87,13 +132,7 @@
</property> </property>
<layout class="QVBoxLayout" name="vlLanguage"> <layout class="QVBoxLayout" name="vlLanguage">
<item> <item>
<widget class="QComboBox" name="cbLanguage"> <widget class="QComboBox" name="cbLanguage"/>
<item>
<property name="text">
<string>System</string>
</property>
</item>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>

View File

@ -19,6 +19,7 @@
#include "PictureExport.h" #include "PictureExport.h"
#include "PictureDialog.h" #include "PictureDialog.h"
#include "SidebarGenerator.h" #include "SidebarGenerator.h"
#include "config.h"
#include <QMessageBox> #include <QMessageBox>
#include <QFileDialog> #include <QFileDialog>
#include <QSettings> #include <QSettings>
@ -30,7 +31,7 @@ PictureExport::PictureExport()
void PictureExport::exportPicture(QWidget *parent, SnapmaticPicture *picture) void PictureExport::exportPicture(QWidget *parent, SnapmaticPicture *picture)
{ {
QSettings settings("Syping", "gta5sync"); QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
fileDialogPreSave: fileDialogPreSave:

View File

@ -18,6 +18,7 @@
#include "ProfileDatabase.h" #include "ProfileDatabase.h"
#include "StandardPaths.h" #include "StandardPaths.h"
#include "config.h"
#include <QFile> #include <QFile>
#include <QDir> #include <QDir>
@ -29,7 +30,7 @@ ProfileDatabase::ProfileDatabase(QObject *parent) : QObject(parent)
QString dirPath = dir.absolutePath(); QString dirPath = dir.absolutePath();
QString defaultConfPath = dirPath + QDir::separator() + "players.ini"; QString defaultConfPath = dirPath + QDir::separator() + "players.ini";
QSettings confPathSettings("Syping","gta5sync"); QSettings confPathSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
confPathSettings.beginGroup("Database"); confPathSettings.beginGroup("Database");
QString confPathFile = confPathSettings.value("Players", defaultConfPath).toString(); QString confPathFile = confPathSettings.value("Players", defaultConfPath).toString();
confPathSettings.endGroup(); confPathSettings.endGroup();

View File

@ -27,6 +27,7 @@
#include "StandardPaths.h" #include "StandardPaths.h"
#include "ProfileLoader.h" #include "ProfileLoader.h"
#include "ExportThread.h" #include "ExportThread.h"
#include "config.h"
#include <QProgressDialog> #include <QProgressDialog>
#include <QProgressBar> #include <QProgressBar>
#include <QInputDialog> #include <QInputDialog>
@ -339,7 +340,7 @@ void ProfileInterface::on_cmdCloseProfile_clicked()
void ProfileInterface::on_cmdImport_clicked() void ProfileInterface::on_cmdImport_clicked()
{ {
QSettings settings("Syping", "gta5sync"); QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
fileDialogPreOpen: fileDialogPreOpen:

View File

@ -19,6 +19,7 @@
#include "SidebarGenerator.h" #include "SidebarGenerator.h"
#include "SavegameWidget.h" #include "SavegameWidget.h"
#include "SavegameCopy.h" #include "SavegameCopy.h"
#include "config.h"
#include <QMessageBox> #include <QMessageBox>
#include <QFileDialog> #include <QFileDialog>
#include <QSettings> #include <QSettings>
@ -30,7 +31,7 @@ SavegameCopy::SavegameCopy()
void SavegameCopy::copySavegame(QWidget *parent, QString sgdPath) void SavegameCopy::copySavegame(QWidget *parent, QString sgdPath)
{ {
QSettings settings("Syping", "gta5sync"); QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("FileDialogs"); settings.beginGroup("FileDialogs");
fileDialogPreSave: fileDialogPreSave:

View File

@ -17,10 +17,14 @@
*****************************************************************************/ *****************************************************************************/
#include "StringParser.h" #include "StringParser.h"
#include "config.h"
#include <QApplication>
#include <QTextCodec> #include <QTextCodec>
#include <QByteArray> #include <QByteArray>
#include <QFileInfo>
#include <QString> #include <QString>
#include <QList> #include <QList>
#include <QDir>
StringParser::StringParser() StringParser::StringParser()
{ {
@ -46,3 +50,12 @@ QString StringParser::convertLogStringForDraw(const QString &inputStr)
QString outputStr = inputStr; QString outputStr = inputStr;
return outputStr.replace("&c;",",").replace("&u;","&"); return outputStr.replace("&c;",",").replace("&u;","&");
} }
QString StringParser::convertBuildedString(const QString &buildedStr)
{
QString outputStr = buildedStr;
outputStr.replace("$SEPARATOR", QDir::separator());
outputStr.replace("$SHAREDIR", QString::fromUtf8(GTA5SYNC_SHARE));
outputStr.replace("$RUNDIR", QFileInfo(qApp->applicationFilePath()).absoluteDir().absolutePath());
return outputStr;
}

View File

@ -29,6 +29,7 @@ public:
static QString parseTitleString(const QByteArray &commitBytes, int maxLength); static QString parseTitleString(const QByteArray &commitBytes, int maxLength);
static QString convertDrawStringForLog(const QString &inputStr); static QString convertDrawStringForLog(const QString &inputStr);
static QString convertLogStringForDraw(const QString &inputStr); static QString convertLogStringForDraw(const QString &inputStr);
static QString convertBuildedString(const QString &buildedStr);
}; };
#endif // STRINGPARSER_H #endif // STRINGPARSER_H

View File

@ -24,6 +24,7 @@
#include "AboutDialog.h" #include "AboutDialog.h"
#include "IconLoader.h" #include "IconLoader.h"
#include "AppEnv.h" #include "AppEnv.h"
#include "config.h"
#include <QFileDialog> #include <QFileDialog>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QSpacerItem> #include <QSpacerItem>
@ -45,7 +46,7 @@ UserInterface::UserInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, D
profileOpen = 0; profileOpen = 0;
profileUI = 0; profileUI = 0;
ui->menuProfile->setEnabled(false); ui->menuProfile->setEnabled(false);
defaultWindowTitle = this->windowTitle(); defaultWindowTitle = tr("gta5sync - %1");
this->setWindowTitle(defaultWindowTitle.arg(tr("Select Profile"))); this->setWindowTitle(defaultWindowTitle.arg(tr("Select Profile")));
} }
@ -70,7 +71,7 @@ void UserInterface::setupDirEnv()
} }
// profiles init // profiles init
QSettings SyncSettings("Syping", "gta5sync"); QSettings SyncSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
SyncSettings.beginGroup("Profile"); SyncSettings.beginGroup("Profile");
QString defaultProfile = SyncSettings.value("Default", "").toString(); QString defaultProfile = SyncSettings.value("Default", "").toString();
@ -242,7 +243,7 @@ void UserInterface::on_actionDelete_selected_triggered()
void UserInterface::on_actionOptions_triggered() void UserInterface::on_actionOptions_triggered()
{ {
OptionsDialog *optionsDialog = new OptionsDialog(this); OptionsDialog *optionsDialog = new OptionsDialog(profileDB, this);
optionsDialog->setWindowFlags(optionsDialog->windowFlags()^Qt::WindowContextHelpButtonHint); optionsDialog->setWindowFlags(optionsDialog->windowFlags()^Qt::WindowContextHelpButtonHint);
optionsDialog->setModal(true); optionsDialog->setModal(true);
optionsDialog->show(); optionsDialog->show();

View File

@ -128,7 +128,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>625</width> <width>625</width>
<height>25</height> <height>21</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuFile"> <widget class="QMenu" name="menuFile">
@ -192,7 +192,7 @@
</action> </action>
<action name="actionOptions"> <action name="actionOptions">
<property name="text"> <property name="text">
<string>&amp;Options</string> <string>&amp;Settings</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+O</string> <string>Ctrl+O</string>

50
config.h Executable file
View File

@ -0,0 +1,50 @@
/*****************************************************************************
* gta5sync GRAND THEFT AUTO V SYNC
* Copyright (C) 2016 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/>.
*****************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
#ifndef GTA5SYNC_APPVENDOR
#define GTA5SYNC_APPVENDOR "Syping"
#endif
#ifndef GTA5SYNC_APPSTR
#define GTA5SYNC_APPSTR "gta5sync"
#endif
#ifndef GTA5SYNC_APPVER
#define GTA5SYNC_APPVER "1.0.0"
#endif
#ifndef GTA5SYNC_BUILDTYPE
#define GTA5SYNC_BUILDTYPE "Custom"
#endif
#ifndef GTA5SYNC_SHARE
#define GTA5SYNC_SHARE "$RUNDIR"
#endif
#ifndef GTA5SYNC_LANG
#define GTA5SYNC_LANG "$SHAREDIR$SEPARATORlang"
#endif
#ifndef GTA5SYNC_PLUG
#define GTA5SYNC_PLUG "$RUNDIR$SEPARATORplugins"
#endif
#endif // CONFIG_H

View File

@ -1,146 +1,147 @@
#/***************************************************************************** #/*****************************************************************************
#* gta5sync GRAND THEFT AUTO V SYNC #* gta5sync GRAND THEFT AUTO V SYNC
#* Copyright (C) 2015-2016 Syping #* Copyright (C) 2015-2016 Syping
#* #*
#* This program is free software: you can redistribute it and/or modify #* 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 #* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation, either version 3 of the License, or #* the Free Software Foundation, either version 3 of the License, or
#* (at your option) any later version. #* (at your option) any later version.
#* #*
#* This program is distributed in the hope that it will be useful, #* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of #* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details. #* GNU General Public License for more details.
#* #*
#* You should have received a copy of the GNU General Public License #* You should have received a copy of the GNU General Public License
#* along with this program. If not, see <http://www.gnu.org/licenses/>. #* along with this program. If not, see <http://www.gnu.org/licenses/>.
#*****************************************************************************/ #*****************************************************************************/
QT += core gui network QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = gta5sync TARGET = gta5sync
TEMPLATE = app TEMPLATE = app
SOURCES += main.cpp \ SOURCES += main.cpp \
AboutDialog.cpp \ AboutDialog.cpp \
AppEnv.cpp \ AppEnv.cpp \
CrewDatabase.cpp \ CrewDatabase.cpp \
DatabaseThread.cpp \ DatabaseThread.cpp \
ExportThread.cpp \ ExportThread.cpp \
IconLoader.cpp \ IconLoader.cpp \
OptionsDialog.cpp \ OptionsDialog.cpp \
PictureCopy.cpp \ PictureCopy.cpp \
PictureDialog.cpp \ PictureDialog.cpp \
PictureExport.cpp \ PictureExport.cpp \
PictureWidget.cpp \ PictureWidget.cpp \
ProfileDatabase.cpp \ ProfileDatabase.cpp \
ProfileInterface.cpp \ ProfileInterface.cpp \
ProfileLoader.cpp \ ProfileLoader.cpp \
ProfileWidget.cpp \ ProfileWidget.cpp \
SavegameCopy.cpp \ SavegameCopy.cpp \
SavegameData.cpp \ SavegameData.cpp \
SavegameDialog.cpp \ SavegameDialog.cpp \
SavegameWidget.cpp \ SavegameWidget.cpp \
SidebarGenerator.cpp \ SidebarGenerator.cpp \
SnapmaticPicture.cpp \ SnapmaticPicture.cpp \
SnapmaticWidget.cpp \ SnapmaticWidget.cpp \
StandardPaths.cpp \ StandardPaths.cpp \
StringParser.cpp \ StringParser.cpp \
UserInterface.cpp \ UserInterface.cpp \
uimod/UiModLabel.cpp uimod/UiModLabel.cpp
HEADERS += \ HEADERS += \
AboutDialog.h \ AboutDialog.h \
AppEnv.h \ AppEnv.h \
CrewDatabase.h \ config.h \
DatabaseThread.h \ CrewDatabase.h \
ExportThread.h \ DatabaseThread.h \
IconLoader.h \ ExportThread.h \
OptionsDialog.h \ IconLoader.h \
PictureCopy.h \ OptionsDialog.h \
PictureDialog.h \ PictureCopy.h \
PictureExport.h \ PictureDialog.h \
PictureWidget.h \ PictureExport.h \
ProfileDatabase.h \ PictureWidget.h \
ProfileInterface.h \ ProfileDatabase.h \
ProfileLoader.h \ ProfileInterface.h \
ProfileWidget.h \ ProfileLoader.h \
SavegameCopy.h \ ProfileWidget.h \
SavegameData.h \ SavegameCopy.h \
SavegameDialog.h \ SavegameData.h \
SavegameWidget.h \ SavegameDialog.h \
SidebarGenerator.h \ SavegameWidget.h \
SnapmaticPicture.h \ SidebarGenerator.h \
SnapmaticWidget.h \ SnapmaticPicture.h \
StandardPaths.h \ SnapmaticWidget.h \
StringParser.h \ StandardPaths.h \
UserInterface.h \ StringParser.h \
uimod/UiModLabel.h UserInterface.h \
uimod/UiModLabel.h
FORMS += \
AboutDialog.ui \ FORMS += \
OptionsDialog.ui \ AboutDialog.ui \
PictureDialog.ui \ OptionsDialog.ui \
ProfileInterface.ui \ PictureDialog.ui \
SavegameDialog.ui \ ProfileInterface.ui \
SavegameWidget.ui \ SavegameDialog.ui \
SnapmaticWidget.ui \ SavegameWidget.ui \
UserInterface.ui SnapmaticWidget.ui \
UserInterface.ui
TRANSLATIONS += \
res/gta5sync_de.ts \ TRANSLATIONS += \
lang/gta5sync_ru.ts res/gta5sync_de.ts \
lang/gta5sync_ru.ts
RESOURCES += \
res/app.qrc RESOURCES += \
res/app.qrc
DISTFILES += res/app.rc \
res/gta5sync.desktop \ DISTFILES += res/app.rc \
res/gta5sync_de.ts \ res/gta5sync.desktop \
lang/gta5sync_ru.qm \ res/gta5sync_de.ts \
lang/qtbase_ru.qm \ lang/gta5sync_ru.qm \
lang/README.txt \ lang/qtbase_ru.qm \
lang/gta5sync_ru.ts \ lang/README.txt \
lang/qt_ru.qm lang/gta5sync_ru.ts \
lang/qt_ru.qm
INCLUDEPATH += ./uimod
INCLUDEPATH += ./uimod
# WINDOWS ONLY
# WINDOWS ONLY
win32: DEFINES += GTA5SYNC_WIN
win32: RC_FILE += res/app.rc win32: DEFINES += GTA5SYNC_WIN
win32: LIBS += -luser32 win32: RC_FILE += res/app.rc
win32: LIBS += -luser32
# QT4 ONLY STUFF
# QT4 ONLY STUFF
isEqual(QT_MAJOR_VERSION, 4): INCLUDEPATH += ./qjson4
isEqual(QT_MAJOR_VERSION, 4): HEADERS += qjson4/QJsonArray.h \ isEqual(QT_MAJOR_VERSION, 4): INCLUDEPATH += ./qjson4
qjson4/QJsonDocument.h \ isEqual(QT_MAJOR_VERSION, 4): HEADERS += qjson4/QJsonArray.h \
qjson4/QJsonObject.h \ qjson4/QJsonDocument.h \
qjson4/QJsonParseError.h \ qjson4/QJsonObject.h \
qjson4/QJsonValue.h \ qjson4/QJsonParseError.h \
qjson4/QJsonValueRef.h \ qjson4/QJsonValue.h \
qjson4/QJsonParser.h \ qjson4/QJsonValueRef.h \
qjson4/QJsonRoot.h qjson4/QJsonParser.h \
qjson4/QJsonRoot.h
isEqual(QT_MAJOR_VERSION, 4): SOURCES += qjson4/QJsonArray.cpp \
qjson4/QJsonDocument.cpp \ isEqual(QT_MAJOR_VERSION, 4): SOURCES += qjson4/QJsonArray.cpp \
qjson4/QJsonObject.cpp \ qjson4/QJsonDocument.cpp \
qjson4/QJsonParseError.cpp \ qjson4/QJsonObject.cpp \
qjson4/QJsonValue.cpp \ qjson4/QJsonParseError.cpp \
qjson4/QJsonValueRef.cpp \ qjson4/QJsonValue.cpp \
qjson4/QJsonParser.cpp qjson4/QJsonValueRef.cpp \
qjson4/QJsonParser.cpp
# UNIX SYSTEM STUFF
# UNIX SYSTEM STUFF
unix: !macx: appfiles.path = $$(INSTALL_PATH)/share/applications
unix: !macx: appfiles.files = $$PWD/res/gta5sync.desktop unix: !macx: appfiles.path = $$(INSTALL_PATH)/share/applications
unix: !macx: pixmaps.path = $$(INSTALL_PATH)/share/pixmaps unix: !macx: appfiles.files = $$PWD/res/gta5sync.desktop
unix: !macx: pixmaps.files = $$PWD/res/gta5sync.xpm unix: !macx: pixmaps.path = $$(INSTALL_PATH)/share/pixmaps
unix: !macx: target.path = $$(INSTALL_PATH)/bin unix: !macx: pixmaps.files = $$PWD/res/gta5sync.xpm
unix: !macx: INSTALLS += target pixmaps appfiles unix: !macx: target.path = $$(INSTALL_PATH)/bin
unix: !macx: INSTALLS += target pixmaps appfiles
# STATIC BUILD STUFF
static: isEqual(QT_MAJOR_VERSION, 4): QTPLUGIN += qjpcodecs # STATIC BUILD STUFF
static: isEqual(QT_MAJOR_VERSION, 4): QTPLUGIN += qjpcodecs

View File

@ -31,7 +31,7 @@
<name>OptionsDialog</name> <name>OptionsDialog</name>
<message> <message>
<location filename="../OptionsDialog.ui" line="14"/> <location filename="../OptionsDialog.ui" line="14"/>
<source>gta5sync - Options</source> <source>gta5sync - Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -61,41 +61,70 @@
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="80"/> <location filename="../OptionsDialog.ui" line="80"/>
<source>Localization</source> <source>Players</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="86"/> <location filename="../OptionsDialog.ui" line="111"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="116"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="125"/>
<location filename="../OptionsDialog.ui" line="131"/>
<source>Language</source> <source>Language</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="93"/> <location filename="../OptionsDialog.ui" line="157"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="118"/>
<source>Sync</source> <source>Sync</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="124"/> <location filename="../OptionsDialog.ui" line="163"/>
<source>Sync is not implemented at current time</source> <source>Sync is not implemented at current time</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="156"/> <location filename="../OptionsDialog.ui" line="195"/>
<source>&amp;OK</source> <source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment> <extracomment>OK, Cancel, Apply</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="163"/> <location filename="../OptionsDialog.ui" line="202"/>
<source>&amp;Cancel</source> <source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment> <extracomment>OK, Cancel, Apply</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../OptionsDialog.cpp" line="78"/>
<source>%1 (%2 if available) [sys]</source>
<comment>System like PC System = %1, System Language like Deutsch = %2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="78"/>
<source>System</source>
<comment>System like PC System</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="134"/>
<source>%1</source>
<comment>%1</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="134"/>
<source>The language change will take effect after you restart %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PictureDialog</name> <name>PictureDialog</name>
@ -123,7 +152,7 @@
<message> <message>
<location filename="../PictureDialog.ui" line="126"/> <location filename="../PictureDialog.ui" line="126"/>
<location filename="../PictureCopy.cpp" line="47"/> <location filename="../PictureCopy.cpp" line="47"/>
<location filename="../PictureExport.cpp" line="46"/> <location filename="../PictureExport.cpp" line="47"/>
<source>&amp;Export</source> <source>&amp;Export</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -180,31 +209,31 @@
<translation>Без группы</translation> <translation>Без группы</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="45"/> <location filename="../PictureExport.cpp" line="46"/>
<source>Export as JPG picture...</source> <source>Export as JPG picture...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="49"/> <location filename="../PictureExport.cpp" line="50"/>
<source>JPEG picture (*.jpg)</source> <source>JPEG picture (*.jpg)</source>
<translation>Картинка JPEG (*.jpg)</translation> <translation>Картинка JPEG (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="50"/> <location filename="../PictureExport.cpp" line="51"/>
<source>Portable Network Graphics (*.png)</source> <source>Portable Network Graphics (*.png)</source>
<translation>Картинка Portable Network Graphics (*.png)</translation> <translation>Картинка Portable Network Graphics (*.png)</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="102"/> <location filename="../PictureExport.cpp" line="103"/>
<location filename="../PictureExport.cpp" line="106"/> <location filename="../PictureExport.cpp" line="107"/>
<location filename="../PictureExport.cpp" line="120"/> <location filename="../PictureExport.cpp" line="121"/>
<location filename="../PictureExport.cpp" line="126"/> <location filename="../PictureExport.cpp" line="127"/>
<source>Export as JPG picture</source> <source>Export as JPG picture</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="69"/> <location filename="../PictureCopy.cpp" line="69"/>
<location filename="../PictureExport.cpp" line="102"/> <location filename="../PictureExport.cpp" line="103"/>
<source>Overwrite %1 with current Snapmatic picture?</source> <source>Overwrite %1 with current Snapmatic picture?</source>
<translation>Перезаписать %1 текущей картинкой Snapmatic?</translation> <translation>Перезаписать %1 текущей картинкой Snapmatic?</translation>
</message> </message>
@ -218,18 +247,18 @@
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="73"/> <location filename="../PictureCopy.cpp" line="73"/>
<location filename="../PictureExport.cpp" line="106"/> <location filename="../PictureExport.cpp" line="107"/>
<source>Failed to overwrite %1 with current Snapmatic picture</source> <source>Failed to overwrite %1 with current Snapmatic picture</source>
<translation>Не удалось перезаписать %1 картинкой Snapmatic</translation> <translation>Не удалось перезаписать %1 картинкой Snapmatic</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="120"/> <location filename="../PictureExport.cpp" line="121"/>
<source>Failed to export current Snapmatic picture</source> <source>Failed to export current Snapmatic picture</source>
<translation>Не удалось экспортировать текущую картинку Snapmatic</translation> <translation>Не удалось экспортировать текущую картинку Snapmatic</translation>
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="92"/> <location filename="../PictureCopy.cpp" line="92"/>
<location filename="../PictureExport.cpp" line="126"/> <location filename="../PictureExport.cpp" line="127"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Выбранный файл неверен</translation> <translation>Выбранный файл неверен</translation>
</message> </message>
@ -299,136 +328,136 @@
<translation type="obsolete">Закрыть профиль</translation> <translation type="obsolete">Закрыть профиль</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="101"/> <location filename="../ProfileInterface.cpp" line="102"/>
<source>Loading...</source> <source>Loading...</source>
<translation>Загрузка...</translation> <translation>Загрузка...</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="352"/> <location filename="../ProfileInterface.cpp" line="353"/>
<source>Import...</source> <source>Import...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="353"/> <location filename="../ProfileInterface.cpp" line="354"/>
<location filename="../ProfileInterface.cpp" line="393"/> <location filename="../ProfileInterface.cpp" line="394"/>
<location filename="../ProfileInterface.cpp" line="398"/> <location filename="../ProfileInterface.cpp" line="399"/>
<location filename="../ProfileInterface.cpp" line="423"/> <location filename="../ProfileInterface.cpp" line="424"/>
<location filename="../ProfileInterface.cpp" line="440"/> <location filename="../ProfileInterface.cpp" line="441"/>
<location filename="../ProfileInterface.cpp" line="470"/> <location filename="../ProfileInterface.cpp" line="471"/>
<location filename="../ProfileInterface.cpp" line="475"/> <location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="485"/> <location filename="../ProfileInterface.cpp" line="486"/>
<location filename="../ProfileInterface.cpp" line="496"/> <location filename="../ProfileInterface.cpp" line="497"/>
<location filename="../ProfileInterface.cpp" line="533"/> <location filename="../ProfileInterface.cpp" line="534"/>
<location filename="../ProfileInterface.cpp" line="539"/> <location filename="../ProfileInterface.cpp" line="540"/>
<source>Import</source> <source>Import</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="356"/> <location filename="../ProfileInterface.cpp" line="357"/>
<source>All profile files (SGTA* PGTA*)</source> <source>All profile files (SGTA* PGTA*)</source>
<translation>Все файлы профиля (SGTA* PGTA*)</translation> <translation>Все файлы профиля (SGTA* PGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="357"/> <location filename="../ProfileInterface.cpp" line="358"/>
<source>Savegames files (SGTA*)</source> <source>Savegames files (SGTA*)</source>
<translation>Файлы сохранения (SGTA*)</translation> <translation>Файлы сохранения (SGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="358"/> <location filename="../ProfileInterface.cpp" line="359"/>
<source>Snapmatic pictures (PGTA*)</source> <source>Snapmatic pictures (PGTA*)</source>
<translation>Картинка Snapmatic (PGTA*)</translation> <translation>Картинка Snapmatic (PGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="359"/> <location filename="../ProfileInterface.cpp" line="360"/>
<source>All files (**)</source> <source>All files (**)</source>
<translation>Все файлы (**)</translation> <translation>Все файлы (**)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="393"/> <location filename="../ProfileInterface.cpp" line="394"/>
<source>Import failed with... <source>Import failed with...
%1</source> %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="423"/> <location filename="../ProfileInterface.cpp" line="424"/>
<source>Failed to read Snapmatic picture</source> <source>Failed to read Snapmatic picture</source>
<translation>Не удалось загрузить картинку Snapmatic</translation> <translation>Не удалось загрузить картинку Snapmatic</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="440"/> <location filename="../ProfileInterface.cpp" line="441"/>
<source>Failed to read Savegame file</source> <source>Failed to read Savegame file</source>
<translation>Не удалось загрузить файл сохранения</translation> <translation>Не удалось загрузить файл сохранения</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="470"/> <location filename="../ProfileInterface.cpp" line="471"/>
<source>Can&apos;t import %1 because of not valid file format</source> <source>Can&apos;t import %1 because of not valid file format</source>
<translation>Не получилось импортировать %1 из-за неправильного формата файла</translation> <translation>Не получилось импортировать %1 из-за неправильного формата файла</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="398"/> <location filename="../ProfileInterface.cpp" line="399"/>
<location filename="../ProfileInterface.cpp" line="475"/> <location filename="../ProfileInterface.cpp" line="476"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Выбранный файл неверен</translation> <translation>Выбранный файл неверен</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="485"/> <location filename="../ProfileInterface.cpp" line="486"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA</source> <source>Failed to import the Snapmatic picture, file not begin with PGTA</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="496"/> <location filename="../ProfileInterface.cpp" line="497"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source> <source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="533"/> <location filename="../ProfileInterface.cpp" line="534"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source> <source>Failed to import the Savegame, can&apos;t copy the file into profile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="539"/> <location filename="../ProfileInterface.cpp" line="540"/>
<source>Failed to import the Savegame, no Savegame slot is left</source> <source>Failed to import the Savegame, no Savegame slot is left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="618"/> <location filename="../ProfileInterface.cpp" line="619"/>
<location filename="../ProfileInterface.cpp" line="636"/> <location filename="../ProfileInterface.cpp" line="637"/>
<source>JPG pictures and GTA Snapmatic</source> <source>JPG pictures and GTA Snapmatic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="619"/> <location filename="../ProfileInterface.cpp" line="620"/>
<location filename="../ProfileInterface.cpp" line="641"/> <location filename="../ProfileInterface.cpp" line="642"/>
<source>JPG pictures only</source> <source>JPG pictures only</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="620"/> <location filename="../ProfileInterface.cpp" line="621"/>
<location filename="../ProfileInterface.cpp" line="645"/> <location filename="../ProfileInterface.cpp" line="646"/>
<source>GTA Snapmatic only</source> <source>GTA Snapmatic only</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="730"/> <location filename="../ProfileInterface.cpp" line="731"/>
<location filename="../ProfileInterface.cpp" line="774"/> <location filename="../ProfileInterface.cpp" line="775"/>
<source>No Snapmatic pictures or Savegames files are selected</source> <source>No Snapmatic pictures or Savegames files are selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="738"/> <location filename="../ProfileInterface.cpp" line="739"/>
<location filename="../ProfileInterface.cpp" line="768"/> <location filename="../ProfileInterface.cpp" line="769"/>
<location filename="../ProfileInterface.cpp" line="774"/> <location filename="../ProfileInterface.cpp" line="775"/>
<source>Remove selected</source> <source>Remove selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="738"/> <location filename="../ProfileInterface.cpp" line="739"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source> <source>You really want remove the selected Snapmatic picutres and Savegame files?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="768"/> <location filename="../ProfileInterface.cpp" line="769"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source> <source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -449,30 +478,30 @@
<translation type="obsolete">Не получилось имортировать копию сохранения, потому что не осталось свободных под них слотов</translation> <translation type="obsolete">Не получилось имортировать копию сохранения, потому что не осталось свободных под них слотов</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="596"/> <location filename="../ProfileInterface.cpp" line="597"/>
<location filename="../ProfileInterface.cpp" line="633"/> <location filename="../ProfileInterface.cpp" line="634"/>
<location filename="../ProfileInterface.cpp" line="710"/> <location filename="../ProfileInterface.cpp" line="711"/>
<location filename="../ProfileInterface.cpp" line="730"/> <location filename="../ProfileInterface.cpp" line="731"/>
<source>Export selected</source> <source>Export selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="633"/> <location filename="../ProfileInterface.cpp" line="634"/>
<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> <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 type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="676"/> <location filename="../ProfileInterface.cpp" line="677"/>
<source>Export selected...</source> <source>Export selected...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="677"/> <location filename="../ProfileInterface.cpp" line="678"/>
<source>Initializing export...</source> <source>Initializing export...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="710"/> <location filename="../ProfileInterface.cpp" line="711"/>
<source>Export failed with... <source>Export failed with...
%1</source> %1</source>
@ -615,41 +644,41 @@
<translation>Копировать сохранение</translation> <translation>Копировать сохранение</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="47"/> <location filename="../SavegameCopy.cpp" line="48"/>
<location filename="../SavegameWidget.cpp" line="192"/> <location filename="../SavegameWidget.cpp" line="192"/>
<source>&amp;Export</source> <source>&amp;Export</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="50"/> <location filename="../SavegameCopy.cpp" line="51"/>
<source>Savegame files (SGTA*)</source> <source>Savegame files (SGTA*)</source>
<translation>Файлы сохранений (SGTA*)</translation> <translation>Файлы сохранений (SGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="51"/> <location filename="../SavegameCopy.cpp" line="52"/>
<source>All files (**)</source> <source>All files (**)</source>
<translation>Все файлы (**)</translation> <translation>Все файлы (**)</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="69"/> <location filename="../SavegameCopy.cpp" line="70"/>
<location filename="../SavegameCopy.cpp" line="73"/> <location filename="../SavegameCopy.cpp" line="74"/>
<location filename="../SavegameCopy.cpp" line="86"/> <location filename="../SavegameCopy.cpp" line="87"/>
<location filename="../SavegameCopy.cpp" line="92"/> <location filename="../SavegameCopy.cpp" line="93"/>
<source>Export Savegame</source> <source>Export Savegame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="69"/> <location filename="../SavegameCopy.cpp" line="70"/>
<source>Overwrite %1 with current Savegame?</source> <source>Overwrite %1 with current Savegame?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="73"/> <location filename="../SavegameCopy.cpp" line="74"/>
<source>Failed to overwrite %1 with current Savegame</source> <source>Failed to overwrite %1 with current Savegame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="86"/> <location filename="../SavegameCopy.cpp" line="87"/>
<source>Failed to export current Savegame</source> <source>Failed to export current Savegame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -666,7 +695,7 @@
<translation type="obsolete">Не удалось скопировать текущее сохранение</translation> <translation type="obsolete">Не удалось скопировать текущее сохранение</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="92"/> <location filename="../SavegameCopy.cpp" line="93"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Выбранный файл неверен</translation> <translation>Выбранный файл неверен</translation>
</message> </message>
@ -787,6 +816,7 @@
<name>UserInterface</name> <name>UserInterface</name>
<message> <message>
<location filename="../UserInterface.ui" line="20"/> <location filename="../UserInterface.ui" line="20"/>
<location filename="../UserInterface.cpp" line="49"/>
<source>gta5sync - %1</source> <source>gta5sync - %1</source>
<translation>gta5sync - %1</translation> <translation>gta5sync - %1</translation>
</message> </message>
@ -820,6 +850,11 @@
<source>&amp;About gta5sync</source> <source>&amp;About gta5sync</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../UserInterface.ui" line="195"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../UserInterface.ui" line="235"/> <location filename="../UserInterface.ui" line="235"/>
<source>&amp;Import files...</source> <source>&amp;Import files...</source>
@ -836,11 +871,6 @@
<source>&amp;Close</source> <source>&amp;Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../UserInterface.ui" line="195"/>
<source>&amp;Options</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../UserInterface.ui" line="203"/> <location filename="../UserInterface.ui" line="203"/>
<source>Select &amp;All</source> <source>Select &amp;All</source>
@ -923,19 +953,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="50"/> <location filename="../UserInterface.cpp" line="51"/>
<location filename="../UserInterface.cpp" line="179"/> <location filename="../UserInterface.cpp" line="180"/>
<source>Select Profile</source> <source>Select Profile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="63"/> <location filename="../UserInterface.cpp" line="64"/>
<location filename="../UserInterface.cpp" line="130"/> <location filename="../UserInterface.cpp" line="131"/>
<source>Select GTA V Folder...</source> <source>Select GTA V Folder...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="105"/> <location filename="../UserInterface.cpp" line="106"/>
<source>Select GTA V &amp;Folder...</source> <source>Select GTA V &amp;Folder...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -25,6 +25,8 @@
#include "CrewDatabase.h" #include "CrewDatabase.h"
#include "SavegameData.h" #include "SavegameData.h"
#include "IconLoader.h" #include "IconLoader.h"
#include "AppEnv.h"
#include "config.h"
#include <QApplication> #include <QApplication>
#include <QStringList> #include <QStringList>
#include <QTranslator> #include <QTranslator>
@ -46,8 +48,8 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
a.setApplicationName("gta5sync"); a.setApplicationName(GTA5SYNC_APPSTR);
a.setApplicationVersion("1.0.0"); a.setApplicationVersion(GTA5SYNC_APPVER);
#ifdef GTA5SYNC_WIN #ifdef GTA5SYNC_WIN
// Get Windows Font // Get Windows Font
@ -65,24 +67,20 @@ int main(int argc, char *argv[])
a.setFont(appFont); a.setFont(appFont);
#endif #endif
QDir appDir = QFileInfo(a.applicationFilePath()).absoluteDir(); QString pluginsDir = AppEnv::getPluginsFolder();
if (appDir.cd("plugins")) if (QFileInfo(pluginsDir).exists())
{ {
a.addLibraryPath(appDir.path()); a.addLibraryPath(pluginsDir);
appDir.cdUp();
} }
appDir.mkdir("lang");
appDir.cd("lang");
// Loading translation settings // Loading translation settings
QSettings settings("Syping", "gta5sync"); QSettings settings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR);
settings.beginGroup("Interface"); settings.beginGroup("Interface");
QString language = settings.value("Language","System").toString(); QString language = settings.value("Language","System").toString();
settings.endGroup(); settings.endGroup();
// Start external translate loading // Start external translate loading
QString langpath = a.applicationFilePath(); QString langpath = AppEnv::getLangFolder();
langpath = appDir.absolutePath();
bool trsf = false; bool trsf = false;
bool svlp = false; bool svlp = false;
QTranslator EappTranslator; QTranslator EappTranslator;

View File

@ -38,9 +38,13 @@
<translation type="vanished">Optionen</translation> <translation type="vanished">Optionen</translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="14"/>
<source>gta5sync - Options</source> <source>gta5sync - Options</source>
<translation>gta5sync - Optionen</translation> <translation type="vanished">gta5sync - Optionen</translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="14"/>
<source>gta5sync - Settings</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="27"/> <location filename="../OptionsDialog.ui" line="27"/>
@ -69,41 +73,70 @@
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="80"/> <location filename="../OptionsDialog.ui" line="80"/>
<source>Localization</source> <source>Players</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="86"/> <location filename="../OptionsDialog.ui" line="111"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="116"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="125"/>
<location filename="../OptionsDialog.ui" line="131"/>
<source>Language</source> <source>Language</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="93"/> <location filename="../OptionsDialog.ui" line="157"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.ui" line="118"/>
<source>Sync</source> <source>Sync</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="124"/> <location filename="../OptionsDialog.ui" line="163"/>
<source>Sync is not implemented at current time</source> <source>Sync is not implemented at current time</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="156"/> <location filename="../OptionsDialog.ui" line="195"/>
<source>&amp;OK</source> <source>&amp;OK</source>
<extracomment>OK, Cancel, Apply</extracomment> <extracomment>OK, Cancel, Apply</extracomment>
<translation>&amp;OK</translation> <translation>&amp;OK</translation>
</message> </message>
<message> <message>
<location filename="../OptionsDialog.ui" line="163"/> <location filename="../OptionsDialog.ui" line="202"/>
<source>&amp;Cancel</source> <source>&amp;Cancel</source>
<extracomment>OK, Cancel, Apply</extracomment> <extracomment>OK, Cancel, Apply</extracomment>
<translation>Abbre&amp;chen</translation> <translation>Abbre&amp;chen</translation>
</message> </message>
<message>
<location filename="../OptionsDialog.cpp" line="78"/>
<source>%1 (%2 if available) [sys]</source>
<comment>System like PC System = %1, System Language like Deutsch = %2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="78"/>
<source>System</source>
<comment>System like PC System</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="134"/>
<source>%1</source>
<comment>%1</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../OptionsDialog.cpp" line="134"/>
<source>The language change will take effect after you restart %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PictureDialog</name> <name>PictureDialog</name>
@ -115,7 +148,7 @@
<message> <message>
<location filename="../PictureDialog.ui" line="126"/> <location filename="../PictureDialog.ui" line="126"/>
<location filename="../PictureCopy.cpp" line="47"/> <location filename="../PictureCopy.cpp" line="47"/>
<location filename="../PictureExport.cpp" line="46"/> <location filename="../PictureExport.cpp" line="47"/>
<source>&amp;Export</source> <source>&amp;Export</source>
<translation>&amp;Exportieren</translation> <translation>&amp;Exportieren</translation>
</message> </message>
@ -201,31 +234,31 @@
<translation type="obsolete">Exportiere Bild...</translation> <translation type="obsolete">Exportiere Bild...</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="45"/> <location filename="../PictureExport.cpp" line="46"/>
<source>Export as JPG picture...</source> <source>Export as JPG picture...</source>
<translation>Exportiere als JPG Bild...</translation> <translation>Exportiere als JPG Bild...</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="49"/> <location filename="../PictureExport.cpp" line="50"/>
<source>JPEG picture (*.jpg)</source> <source>JPEG picture (*.jpg)</source>
<translation>JPEG Bild (*.jpg)</translation> <translation>JPEG Bild (*.jpg)</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="50"/> <location filename="../PictureExport.cpp" line="51"/>
<source>Portable Network Graphics (*.png)</source> <source>Portable Network Graphics (*.png)</source>
<translation>Portable Network Graphics (*.png)</translation> <translation>Portable Network Graphics (*.png)</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="102"/> <location filename="../PictureExport.cpp" line="103"/>
<location filename="../PictureExport.cpp" line="106"/> <location filename="../PictureExport.cpp" line="107"/>
<location filename="../PictureExport.cpp" line="120"/> <location filename="../PictureExport.cpp" line="121"/>
<location filename="../PictureExport.cpp" line="126"/> <location filename="../PictureExport.cpp" line="127"/>
<source>Export as JPG picture</source> <source>Export as JPG picture</source>
<translation>Exportiere als JPG Bild</translation> <translation>Exportiere als JPG Bild</translation>
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="69"/> <location filename="../PictureCopy.cpp" line="69"/>
<location filename="../PictureExport.cpp" line="102"/> <location filename="../PictureExport.cpp" line="103"/>
<source>Overwrite %1 with current Snapmatic picture?</source> <source>Overwrite %1 with current Snapmatic picture?</source>
<translation>Überschreibe %1 mit aktuellen Snapmatic Bild?</translation> <translation>Überschreibe %1 mit aktuellen Snapmatic Bild?</translation>
</message> </message>
@ -239,12 +272,12 @@
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="73"/> <location filename="../PictureCopy.cpp" line="73"/>
<location filename="../PictureExport.cpp" line="106"/> <location filename="../PictureExport.cpp" line="107"/>
<source>Failed to overwrite %1 with current Snapmatic picture</source> <source>Failed to overwrite %1 with current Snapmatic picture</source>
<translation>Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild</translation> <translation>Fehlgeschlagen beim Überschreiben von %1 mit aktuellen Snapmatic Bild</translation>
</message> </message>
<message> <message>
<location filename="../PictureExport.cpp" line="120"/> <location filename="../PictureExport.cpp" line="121"/>
<source>Failed to export current Snapmatic picture</source> <source>Failed to export current Snapmatic picture</source>
<translation>Fehlgeschlagen beim Exportieren vom aktuellen Snapmatic Bild</translation> <translation>Fehlgeschlagen beim Exportieren vom aktuellen Snapmatic Bild</translation>
</message> </message>
@ -299,7 +332,7 @@
</message> </message>
<message> <message>
<location filename="../PictureCopy.cpp" line="92"/> <location filename="../PictureCopy.cpp" line="92"/>
<location filename="../PictureExport.cpp" line="126"/> <location filename="../PictureExport.cpp" line="127"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Keine gültige Datei wurde ausgewählt</translation> <translation>Keine gültige Datei wurde ausgewählt</translation>
</message> </message>
@ -354,52 +387,52 @@
<translation type="obsolete">Profil schließen</translation> <translation type="obsolete">Profil schließen</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="101"/> <location filename="../ProfileInterface.cpp" line="102"/>
<source>Loading...</source> <source>Loading...</source>
<translation>Lade...</translation> <translation>Lade...</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="352"/> <location filename="../ProfileInterface.cpp" line="353"/>
<source>Import...</source> <source>Import...</source>
<translation>Importieren...</translation> <translation>Importieren...</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="353"/> <location filename="../ProfileInterface.cpp" line="354"/>
<location filename="../ProfileInterface.cpp" line="393"/> <location filename="../ProfileInterface.cpp" line="394"/>
<location filename="../ProfileInterface.cpp" line="398"/> <location filename="../ProfileInterface.cpp" line="399"/>
<location filename="../ProfileInterface.cpp" line="423"/> <location filename="../ProfileInterface.cpp" line="424"/>
<location filename="../ProfileInterface.cpp" line="440"/> <location filename="../ProfileInterface.cpp" line="441"/>
<location filename="../ProfileInterface.cpp" line="470"/> <location filename="../ProfileInterface.cpp" line="471"/>
<location filename="../ProfileInterface.cpp" line="475"/> <location filename="../ProfileInterface.cpp" line="476"/>
<location filename="../ProfileInterface.cpp" line="485"/> <location filename="../ProfileInterface.cpp" line="486"/>
<location filename="../ProfileInterface.cpp" line="496"/> <location filename="../ProfileInterface.cpp" line="497"/>
<location filename="../ProfileInterface.cpp" line="533"/> <location filename="../ProfileInterface.cpp" line="534"/>
<location filename="../ProfileInterface.cpp" line="539"/> <location filename="../ProfileInterface.cpp" line="540"/>
<source>Import</source> <source>Import</source>
<translation>Importieren</translation> <translation>Importieren</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="356"/> <location filename="../ProfileInterface.cpp" line="357"/>
<source>All profile files (SGTA* PGTA*)</source> <source>All profile files (SGTA* PGTA*)</source>
<translation>Alle Profildateien (SGTA* PGTA*)</translation> <translation>Alle Profildateien (SGTA* PGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="357"/> <location filename="../ProfileInterface.cpp" line="358"/>
<source>Savegames files (SGTA*)</source> <source>Savegames files (SGTA*)</source>
<translation>Spielstanddateien (SGTA*)</translation> <translation>Spielstanddateien (SGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="358"/> <location filename="../ProfileInterface.cpp" line="359"/>
<source>Snapmatic pictures (PGTA*)</source> <source>Snapmatic pictures (PGTA*)</source>
<translation>Snapmatic Bilder (PGTA*)</translation> <translation>Snapmatic Bilder (PGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="359"/> <location filename="../ProfileInterface.cpp" line="360"/>
<source>All files (**)</source> <source>All files (**)</source>
<translation>Alle Dateien (**)</translation> <translation>Alle Dateien (**)</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="393"/> <location filename="../ProfileInterface.cpp" line="394"/>
<source>Import failed with... <source>Import failed with...
%1</source> %1</source>
@ -408,66 +441,66 @@
%1</translation> %1</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="423"/> <location filename="../ProfileInterface.cpp" line="424"/>
<source>Failed to read Snapmatic picture</source> <source>Failed to read Snapmatic picture</source>
<translation>Fehler beim Lesen vom Snapmatic Bild</translation> <translation>Fehler beim Lesen vom Snapmatic Bild</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="440"/> <location filename="../ProfileInterface.cpp" line="441"/>
<source>Failed to read Savegame file</source> <source>Failed to read Savegame file</source>
<translation>Fehler beim Lesen von Spielstanddatei</translation> <translation>Fehler beim Lesen von Spielstanddatei</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="470"/> <location filename="../ProfileInterface.cpp" line="471"/>
<source>Can&apos;t import %1 because of not valid file format</source> <source>Can&apos;t import %1 because of not valid file format</source>
<translation>Kann %1 nicht importieren weil das Dateiformat nicht gültig ist</translation> <translation>Kann %1 nicht importieren weil das Dateiformat nicht gültig ist</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="633"/> <location filename="../ProfileInterface.cpp" line="634"/>
<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> <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> <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>
<message> <message>
<location filename="../ProfileInterface.cpp" line="398"/> <location filename="../ProfileInterface.cpp" line="399"/>
<location filename="../ProfileInterface.cpp" line="475"/> <location filename="../ProfileInterface.cpp" line="476"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Keine gültige Datei wurde ausgewählt</translation> <translation>Keine gültige Datei wurde ausgewählt</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="485"/> <location filename="../ProfileInterface.cpp" line="486"/>
<source>Failed to import the Snapmatic picture, file not begin with PGTA</source> <source>Failed to import the Snapmatic picture, file not begin with PGTA</source>
<translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA</translation> <translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, Datei beginnt nicht mit PGTA</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="496"/> <location filename="../ProfileInterface.cpp" line="497"/>
<source>Failed to import the Snapmatic picture, can&apos;t copy the file into profile</source> <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> <translation>Fehlgeschlagen beim Importieren vom Snapmatic Bild, kann Snapmatic Bild nicht ins Profil kopieren </translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="533"/> <location filename="../ProfileInterface.cpp" line="534"/>
<source>Failed to import the Savegame, can&apos;t copy the file into profile</source> <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> <translation>Fehlgeschlagen beim Importieren vom Spielstand, kann Spielstanddatei nicht ins Profil kopieren</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="539"/> <location filename="../ProfileInterface.cpp" line="540"/>
<source>Failed to import the Savegame, no Savegame slot is left</source> <source>Failed to import the Savegame, no Savegame slot is left</source>
<translation>Fehlgeschlagen beim Importieren vom Spielstand, kein Spielstandslot mehr frei</translation> <translation>Fehlgeschlagen beim Importieren vom Spielstand, kein Spielstandslot mehr frei</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="618"/> <location filename="../ProfileInterface.cpp" line="619"/>
<location filename="../ProfileInterface.cpp" line="636"/> <location filename="../ProfileInterface.cpp" line="637"/>
<source>JPG pictures and GTA Snapmatic</source> <source>JPG pictures and GTA Snapmatic</source>
<translation>JPG Bilder und GTA Snapmatic</translation> <translation>JPG Bilder und GTA Snapmatic</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="619"/> <location filename="../ProfileInterface.cpp" line="620"/>
<location filename="../ProfileInterface.cpp" line="641"/> <location filename="../ProfileInterface.cpp" line="642"/>
<source>JPG pictures only</source> <source>JPG pictures only</source>
<translation>Nur JPG Bilder</translation> <translation>Nur JPG Bilder</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="620"/> <location filename="../ProfileInterface.cpp" line="621"/>
<location filename="../ProfileInterface.cpp" line="645"/> <location filename="../ProfileInterface.cpp" line="646"/>
<source>GTA Snapmatic only</source> <source>GTA Snapmatic only</source>
<translation>Nur GTA Snapmatic</translation> <translation>Nur GTA Snapmatic</translation>
</message> </message>
@ -486,25 +519,25 @@ Das GTA Snapmatic Format macht es möglich sie wieder ins Game zu importieren
Exportieren als:</translation> Exportieren als:</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="730"/> <location filename="../ProfileInterface.cpp" line="731"/>
<location filename="../ProfileInterface.cpp" line="774"/> <location filename="../ProfileInterface.cpp" line="775"/>
<source>No Snapmatic pictures or Savegames files are selected</source> <source>No Snapmatic pictures or Savegames files are selected</source>
<translation>Keine Snapmatic Bilder oder Spielstände ausgewählt</translation> <translation>Keine Snapmatic Bilder oder Spielstände ausgewählt</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="738"/> <location filename="../ProfileInterface.cpp" line="739"/>
<location filename="../ProfileInterface.cpp" line="768"/> <location filename="../ProfileInterface.cpp" line="769"/>
<location filename="../ProfileInterface.cpp" line="774"/> <location filename="../ProfileInterface.cpp" line="775"/>
<source>Remove selected</source> <source>Remove selected</source>
<translation>Auswahl löschen</translation> <translation>Auswahl löschen</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="738"/> <location filename="../ProfileInterface.cpp" line="739"/>
<source>You really want remove the selected Snapmatic picutres and Savegame files?</source> <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> <translation>Möchtest du wirklich die ausgewählten Snapmatic Bilder und Spielstanddateien löschen?</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="768"/> <location filename="../ProfileInterface.cpp" line="769"/>
<source>Failed at remove the complete selected Snapmatic pictures and/or Savegame files</source> <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> <translation>Fehlgeschlagen beim kompletten entfernen der ausgewählten Snapmatic Bilder und/oder der Spielstanddateien</translation>
</message> </message>
@ -525,10 +558,10 @@ Exportieren als:</translation>
<translation type="obsolete">Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist</translation> <translation type="obsolete">Fehlgeschlagenen beim Import vom Spielstand weil kein Spielstandslot mehr übrig ist</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="596"/> <location filename="../ProfileInterface.cpp" line="597"/>
<location filename="../ProfileInterface.cpp" line="633"/> <location filename="../ProfileInterface.cpp" line="634"/>
<location filename="../ProfileInterface.cpp" line="710"/> <location filename="../ProfileInterface.cpp" line="711"/>
<location filename="../ProfileInterface.cpp" line="730"/> <location filename="../ProfileInterface.cpp" line="731"/>
<source>Export selected</source> <source>Export selected</source>
<translation>Auswahl exportieren</translation> <translation>Auswahl exportieren</translation>
</message> </message>
@ -549,12 +582,12 @@ Exportieren als:</translation>
<translation type="obsolete">Wie sollen wir mit den Snapmatic Bilder umgehen?</translation> <translation type="obsolete">Wie sollen wir mit den Snapmatic Bilder umgehen?</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="676"/> <location filename="../ProfileInterface.cpp" line="677"/>
<source>Export selected...</source> <source>Export selected...</source>
<translation>Auswahl exportieren...</translation> <translation>Auswahl exportieren...</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="677"/> <location filename="../ProfileInterface.cpp" line="678"/>
<source>Initializing export...</source> <source>Initializing export...</source>
<translation>Initialisiere Export...</translation> <translation>Initialisiere Export...</translation>
</message> </message>
@ -563,7 +596,7 @@ Exportieren als:</translation>
<translation type="obsolete">Initialisierung...</translation> <translation type="obsolete">Initialisierung...</translation>
</message> </message>
<message> <message>
<location filename="../ProfileInterface.cpp" line="710"/> <location filename="../ProfileInterface.cpp" line="711"/>
<source>Export failed with... <source>Export failed with...
%1</source> %1</source>
@ -746,41 +779,41 @@ Exportieren als:</translation>
<translation>Spielstand kopieren</translation> <translation>Spielstand kopieren</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="47"/> <location filename="../SavegameCopy.cpp" line="48"/>
<location filename="../SavegameWidget.cpp" line="192"/> <location filename="../SavegameWidget.cpp" line="192"/>
<source>&amp;Export</source> <source>&amp;Export</source>
<translation>&amp;Exportieren</translation> <translation>&amp;Exportieren</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="50"/> <location filename="../SavegameCopy.cpp" line="51"/>
<source>Savegame files (SGTA*)</source> <source>Savegame files (SGTA*)</source>
<translation>Spielstanddateien (SGTA*)</translation> <translation>Spielstanddateien (SGTA*)</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="51"/> <location filename="../SavegameCopy.cpp" line="52"/>
<source>All files (**)</source> <source>All files (**)</source>
<translation>Alle Dateien (**)</translation> <translation>Alle Dateien (**)</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="69"/> <location filename="../SavegameCopy.cpp" line="70"/>
<location filename="../SavegameCopy.cpp" line="73"/> <location filename="../SavegameCopy.cpp" line="74"/>
<location filename="../SavegameCopy.cpp" line="86"/> <location filename="../SavegameCopy.cpp" line="87"/>
<location filename="../SavegameCopy.cpp" line="92"/> <location filename="../SavegameCopy.cpp" line="93"/>
<source>Export Savegame</source> <source>Export Savegame</source>
<translation>Spielstand exportieren</translation> <translation>Spielstand exportieren</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="69"/> <location filename="../SavegameCopy.cpp" line="70"/>
<source>Overwrite %1 with current Savegame?</source> <source>Overwrite %1 with current Savegame?</source>
<translation>Überschreibe %1 mit aktuellen Spielstand?</translation> <translation>Überschreibe %1 mit aktuellen Spielstand?</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="73"/> <location filename="../SavegameCopy.cpp" line="74"/>
<source>Failed to overwrite %1 with current Savegame</source> <source>Failed to overwrite %1 with current Savegame</source>
<translation>Fehlgeschlagen beim Überschrieben von %1 mit aktuellen Spielstand</translation> <translation>Fehlgeschlagen beim Überschrieben von %1 mit aktuellen Spielstand</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="86"/> <location filename="../SavegameCopy.cpp" line="87"/>
<source>Failed to export current Savegame</source> <source>Failed to export current Savegame</source>
<translation>Fehlgeschlagen beim Exportieren vom aktuellen Spielstand</translation> <translation>Fehlgeschlagen beim Exportieren vom aktuellen Spielstand</translation>
</message> </message>
@ -805,7 +838,7 @@ Exportieren als:</translation>
<translation type="obsolete">Beim Kopieren vom Spielstand ist ein Fehler aufgetreten</translation> <translation type="obsolete">Beim Kopieren vom Spielstand ist ein Fehler aufgetreten</translation>
</message> </message>
<message> <message>
<location filename="../SavegameCopy.cpp" line="92"/> <location filename="../SavegameCopy.cpp" line="93"/>
<source>No valid file is selected</source> <source>No valid file is selected</source>
<translation>Keine gültige Datei wurde ausgewählt</translation> <translation>Keine gültige Datei wurde ausgewählt</translation>
</message> </message>
@ -978,6 +1011,7 @@ Exportieren als:</translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.ui" line="20"/> <location filename="../UserInterface.ui" line="20"/>
<location filename="../UserInterface.cpp" line="49"/>
<source>gta5sync - %1</source> <source>gta5sync - %1</source>
<translation>gta5sync - %1</translation> <translation>gta5sync - %1</translation>
</message> </message>
@ -1110,9 +1144,13 @@ Exportieren als:</translation>
<translation>Strg+P</translation> <translation>Strg+P</translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.ui" line="195"/>
<source>&amp;Options</source> <source>&amp;Options</source>
<translation>&amp;Optionen</translation> <translation type="vanished">&amp;Optionen</translation>
</message>
<message>
<location filename="../UserInterface.ui" line="195"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.ui" line="203"/> <location filename="../UserInterface.ui" line="203"/>
@ -1154,19 +1192,19 @@ Exportieren als:</translation>
<translation type="obsolete">GTA V Ordner nicht gefunden!</translation> <translation type="obsolete">GTA V Ordner nicht gefunden!</translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="50"/> <location filename="../UserInterface.cpp" line="51"/>
<location filename="../UserInterface.cpp" line="179"/> <location filename="../UserInterface.cpp" line="180"/>
<source>Select Profile</source> <source>Select Profile</source>
<translation>Profil auswählen</translation> <translation>Profil auswählen</translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="63"/> <location filename="../UserInterface.cpp" line="64"/>
<location filename="../UserInterface.cpp" line="130"/> <location filename="../UserInterface.cpp" line="131"/>
<source>Select GTA V Folder...</source> <source>Select GTA V Folder...</source>
<translation>Wähle GTA V Ordner...</translation> <translation>Wähle GTA V Ordner...</translation>
</message> </message>
<message> <message>
<location filename="../UserInterface.cpp" line="105"/> <location filename="../UserInterface.cpp" line="106"/>
<source>Select GTA V &amp;Folder...</source> <source>Select GTA V &amp;Folder...</source>
<translation>Wähle GTA V &amp;Ordner...</translation> <translation>Wähle GTA V &amp;Ordner...</translation>
</message> </message>