#include "aboutdialog.hpp"
#include <QFileDialog>
-const QString VERSION("2016.02.17");
+const QString VERSION("2016.02.19");
/**
* Constructor.
*/
MainWindow::MainWindow(QApplication& application, const QString& homeDir,
QWidget *parent) :
- ReGuiApplication(application, "rebackupgui", homeDir, 2, 100100100, "de", parent),
+ ReGuiApplication(application, "rebackgui", homeDir, 2, 100100100, "de", parent),
ReGuiValidator(),
ui(new Ui::MainWindow),
m_configuration(this),
m_errors(0),
m_maxListSize(1000)
{
+ initializeGui();
+}
+
+/**
+ * Initializes the Graphical User Interface.
+ */
+void MainWindow::initializeGui(){
ui->setupUi(this);
initializeGuiElements();
- startStop(false);
- connect(ui->actionStart, SIGNAL(triggered()), this,
- SLOT(onStart()));
- connect(ui->actionChecksums, SIGNAL(triggered()), this,
- SLOT(onChecksums()));
- connect(ui->actionClean, SIGNAL(triggered()), this,
- SLOT(onClean()));
- connect(ui->actionStop, SIGNAL(triggered()), this,
- SLOT(onStop()));
- connect(ui->pushButtonBackup, SIGNAL(clicked()), this, SLOT(onStart()));
- connect(ui->pushButtonChecksum, SIGNAL(clicked()), this, SLOT(onChecksums()));
- connect(ui->pushButtonStop, SIGNAL(clicked()), this, SLOT(onStop()));
- connect(ui->pushButtonAddItem, SIGNAL(clicked()), this, SLOT(onAddItem()));
- connect(ui->pushButtonDeleteItem, SIGNAL(clicked()), this, SLOT(onDeleteItem()));
- connect(ui->pushButtonAddSource, SIGNAL(clicked()), this, SLOT(onAddSource()));
- connect(ui->pushButtonDeleteSource, SIGNAL(clicked()), this, SLOT(onDeleteSource()));
- connect(ui->pushButtonSelectTarget, SIGNAL(clicked()), this, SLOT(onSelectTarget()));
- connect(ui->pushButtonSaveConfig, SIGNAL(clicked()), this, SLOT(onSaveConfig()));
- connect(ui->pushButtonUpdate, SIGNAL(clicked()), this, SLOT(onUpdate()));
- connect(ui->actionLoadConfig, SIGNAL(triggered()), this,
- SLOT(onLoadConfig()));
- connect(ui->actionSaveConfig, SIGNAL(triggered()), this,
- SLOT(onSaveConfig()));
- connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(onAbout()));
- connect(ui->tableWidgetConfiguration->selectionModel(),
- SIGNAL( selectionChanged(const QItemSelection&, const QItemSelection&)),
- this, SLOT( onSelectionChanged(const QItemSelection&, const QItemSelection&) ));
- connect(ui->tableWidgetConfiguration->selectionModel(),
- SIGNAL(currentChanged(const QModelIndex&, const QModelIndex&)),
- this,
- SLOT(onCurrentChanged(const QModelIndex&, const QModelIndex&)));
- connect(ui->pushButtonClearFileList, SIGNAL(clicked()), this, SLOT(onClearFileList()));
- connect(ui->pushButtonClearErrorList, SIGNAL(clicked()), this, SLOT(onClearErrorList()));
- connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(onClearLog()));
- connect(ui->pushButtonClean, SIGNAL(clicked()), this, SLOT(onClean()));
- connect(ui->comboBoxVerbose, SIGNAL(currentIndexChanged(int)), this, SLOT(onVerboseIndexChanged(int)));
- m_configuration.load("");
- ui->tableWidgetConfiguration->selectRow(0);
- updateTable();
- updateItem(0);
+ initializeGuiLanguage(ui->actionEnglish, ui->actionGerman);
+ startStop(false);
+ connect(ui->actionStart, SIGNAL(triggered()), this,
+ SLOT(onStart()));
+ connect(ui->actionChecksums, SIGNAL(triggered()), this,
+ SLOT(onChecksums()));
+ connect(ui->actionClean, SIGNAL(triggered()), this,
+ SLOT(onClean()));
+ connect(ui->actionStop, SIGNAL(triggered()), this,
+ SLOT(onStop()));
+ connect(ui->pushButtonBackup, SIGNAL(clicked()), this, SLOT(onStart()));
+ connect(ui->pushButtonChecksum, SIGNAL(clicked()), this, SLOT(onChecksums()));
+ connect(ui->pushButtonStop, SIGNAL(clicked()), this, SLOT(onStop()));
+ connect(ui->pushButtonAddItem, SIGNAL(clicked()), this, SLOT(onAddItem()));
+ connect(ui->pushButtonDeleteItem, SIGNAL(clicked()), this, SLOT(onDeleteItem()));
+ connect(ui->pushButtonAddSource, SIGNAL(clicked()), this, SLOT(onAddSource()));
+ connect(ui->pushButtonDeleteSource, SIGNAL(clicked()), this, SLOT(onDeleteSource()));
+ connect(ui->pushButtonSelectTarget, SIGNAL(clicked()), this, SLOT(onSelectTarget()));
+ connect(ui->pushButtonSaveConfig, SIGNAL(clicked()), this, SLOT(onSaveConfig()));
+ connect(ui->pushButtonUpdate, SIGNAL(clicked()), this, SLOT(onUpdate()));
+ connect(ui->actionLoadConfig, SIGNAL(triggered()), this,
+ SLOT(onLoadConfig()));
+ connect(ui->actionSaveConfig, SIGNAL(triggered()), this,
+ SLOT(onSaveConfig()));
+ connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(onAbout()));
+ connect(ui->tableWidgetConfiguration->selectionModel(),
+ SIGNAL( selectionChanged(const QItemSelection&, const QItemSelection&)),
+ this, SLOT( onSelectionChanged(const QItemSelection&, const QItemSelection&) ));
+ connect(ui->tableWidgetConfiguration->selectionModel(),
+ SIGNAL(currentChanged(const QModelIndex&, const QModelIndex&)),
+ this,
+ SLOT(onCurrentChanged(const QModelIndex&, const QModelIndex&)));
+ connect(ui->pushButtonClearFileList, SIGNAL(clicked()), this, SLOT(onClearFileList()));
+ connect(ui->pushButtonClearErrorList, SIGNAL(clicked()), this, SLOT(onClearErrorList()));
+ connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(onClearLog()));
+ connect(ui->pushButtonClean, SIGNAL(clicked()), this, SLOT(onClean()));
+ connect(ui->comboBoxVerbose, SIGNAL(currentIndexChanged(int)), this, SLOT(onVerboseIndexChanged(int)));
+ //connect(m_defaultLanguage, SIGNAL(triggered()), this,
+ // SLOT(onDefault()));
+ connect(ui->actionEnglish, SIGNAL(triggered()), this, SLOT(onEnglish()));
+ connect(ui->actionGerman, SIGNAL(triggered()), this, SLOT(onGerman()));
+ m_configuration.load("");
+ ui->tableWidgetConfiguration->selectRow(0);
+ updateTable();
+ updateItem(0);
+ if (m_currentTranslator == NULL)
+ ui->actionEnglish->setChecked(true);
+ else
+ ui->actionGerman->setChecked(true);
}
/**
}
}
+/**
+ * Action "switch to English".
+ */
+void MainWindow::onEnglish(){
+ ReGuiApplication::onEnglish();
+}
+/**
+ * Action "switch to German".
+ */
+void MainWindow::onGerman(){
+ ReGuiApplication::onGerman();
+}
+
/**
* @brief MainWindow::onSelectionChanged
* @param selected
}
+/**
+ * The language has been changed.
+ */
+void MainWindow::onLanguageChange()
+{
+ initializeGui();
+}
/**
* Starts the backup.
*/
updateTableRow(row, item, ui->tableWidgetConfiguration);
} else {
int base = target == ui->tableWidget ? 1 : 0;
- QString active = QObject::tr(item.m_active ? "yes" : "no");
+ QString active = item.m_active ? QObject::tr("yes") : QObject::tr("no");
if (base == 1)
target->setItem(row, 0, new QTableWidgetItem(active));
target->setItem(row, base + 0, new QTableWidgetItem(item.m_name));
+
+
<name>AboutDialog</name>
<message>
<location filename="aboutdialog.ui" line="14"/>
- <source>Dialog</source>
- <translation type="unfinished"></translation>
+ <source>About the program</source>
+ <translation>Über das Programm</translation>
</message>
<message>
<location filename="aboutdialog.ui" line="32"/>
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Implemented in QT (C++) 5.x</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Icons: Mark James, </span><a href="http://famfamfam.com"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p></body></html></source>
- <translation type="unfinished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Droid Sans'; font-size:10pt; font-weight:400; font-style:normal;">
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">ReBackupGui</span><span style=" font-family:'Sans Serif'; font-size:9pt;"> kann Dateisicherungen auf externen Medien durchführen.</span></p>
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">This is a program of the project</span></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Das ist ein Programm des Projekts</span></p>
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Re</span><span style=" font-family:'Sans Serif'; font-size:9pt;">al </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Pub</span><span style=" font-family:'Sans Serif'; font-size:9pt;">lic </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Lib</span><span style=" font-family:'Sans Serif'; font-size:9pt;">rary (RePubLib)</span></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Der Quelltext ist Public Domain und unter</span></p>
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> verf&uuml;gbar.<span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p>
<message>
<location filename="aboutdialog.ui" line="64"/>
<source>Version:</source>
- <translation type="unfinished"></translation>
+ <translation></translation>
</message>
<message>
<location filename="aboutdialog.ui" line="71"/>
<source>2015.05.00</source>
- <translation type="unfinished"></translation>
+ <translation></translation>
</message>
<message>
<location filename="aboutdialog.ui" line="91"/>
<source>&OK</source>
- <translation type="unfinished"></translation>
+ <translation></translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="154"/>
<source>cannot remove file (for making a directory (%1): %2</source>
- <translation type="unfinished">kann Datei nicht löschen, um ein Verzeichnis anzulegen (%1): %2</translation>
+ <translation>kann Datei nicht löschen, um ein Verzeichnis anzulegen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="158"/>
<source>cannot make directory (%1): %2</source>
- <translation type="unfinished">kann Verzeichnis nicht anlegen (%1): %2</translation>
+ <translation>kann Verzeichnis nicht anlegen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="222"/>
<source>%1 of %2 (%3 of %4) %5 MB/sec runtime: %6</source>
- <translation type="unfinished">%1 von %2 (%3 von %4) %5 MB/sec Laufzeit: %6</translation>
+ <translation>%1 von %2 (%3 von %4) %5 MB/sec Laufzeit: %6</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="231"/>
<source>backup complete after %1. Errors: %2</source>
- <translation type="unfinished">Sicherung nach %1 fertiggestellt Fehler: %2</translation>
+ <translation>Sicherung nach %1 fertiggestellt Fehler: %2</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="347"/>
<source>Building source checksum complete after %1. Processed: %2</source>
- <translation type="unfinished">Erzeugen der Prüfsummen für die Quelldateien fertig nach %1. Bearbeitet: %2</translation>
+ <translation>Erzeugen der Prüfsummen für die Quelldateien fertig nach %1. Bearbeitet: %2</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="425"/>
<source>%1 of %2 (%3 of %4) %5 MB/sec runtime: %6</source>
- <translation type="unfinished">%1 von %2 (%3 von %4) %5 MB/sec Laufzeit: %6</translation>
+ <translation>%1 von %2 (%3 von %4) %5 MB/sec Laufzeit: %6</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="436"/>
<source>Building target checksums complete after %1. Processed: %2 Errors: %3</source>
- <translation type="unfinished">Erzeugen der Prüfsummen für die Zieldateien fertig nach %1. Bearbeitet: %2 Fehler: %3</translation>
+ <translation>Erzeugen der Prüfsummen für die Zieldateien fertig nach %1. Bearbeitet: %2 Fehler: %3</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="548"/>
<source>%1 of %2 files %3 files/sec runtime: %6</source>
- <translation type="unfinished">%1 von %2 Dateien %3 Dateien/sec Laufzeit: %6</translation>
+ <translation>%1 von %2 Dateien %3 Dateien/sec Laufzeit: %6</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="556"/>
<source>clean complete after %1. Errors: %2</source>
- <translation type="unfinished">Bereinigen fertig nach %1. Fehler: %2</translation>
+ <translation>Bereinigen fertig nach %1. Fehler: %2</translation>
</message>
</context>
<context>
<message>
<location filename="mainwindow.ui" line="14"/>
<source>RePubLib rebackgui</source>
- <translation type="unfinished">RePubLib rebackgui</translation>
+ <translation>RePubLib rebackgui</translation>
</message>
<message>
<location filename="mainwindow.ui" line="25"/>
- <location filename="mainwindow.ui" line="804"/>
+ <location filename="mainwindow.ui" line="808"/>
<source>Action</source>
- <translation type="unfinished">Aktion</translation>
+ <translation>Aktion</translation>
</message>
<message>
<location filename="mainwindow.ui" line="51"/>
<source>Active</source>
- <translation type="unfinished">Aktiv</translation>
+ <translation>Aktiv</translation>
</message>
<message>
<location filename="mainwindow.ui" line="56"/>
<location filename="mainwindow.ui" line="389"/>
<source>Name</source>
- <translation type="unfinished">Name</translation>
+ <translation>Name</translation>
</message>
<message>
<location filename="mainwindow.ui" line="61"/>
<location filename="mainwindow.ui" line="394"/>
<source>Target</source>
- <translation type="unfinished">Ziel</translation>
+ <translation>Ziel</translation>
</message>
<message>
<location filename="mainwindow.ui" line="66"/>
<location filename="mainwindow.ui" line="399"/>
<source>Last backup</source>
- <translation type="unfinished">Letzte Sicherung</translation>
+ <translation>Letzte Sicherung</translation>
</message>
<message>
<location filename="mainwindow.ui" line="71"/>
<location filename="mainwindow.ui" line="404"/>
<source>Source(s)</source>
- <translation type="unfinished">Quelle(n)</translation>
+ <translation>Quelle(n)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="87"/>
<source>Options:</source>
- <translation type="unfinished">Optionen:</translation>
+ <translation>Optionen:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="100"/>
<source>Max. list length:</source>
- <translation type="unfinished">Max. Listenlänge:</translation>
+ <translation>Max. Listenlänge:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="113"/>
<source>Max. length of the file list / error list. 0: unlimited</source>
- <translation type="unfinished">Max. Länge der Datei-/Fehlerliste. 0: unbeschränkt</translation>
+ <translation>Max. Länge der Datei-/Fehlerliste. 0: unbeschränkt</translation>
</message>
<message>
<location filename="mainwindow.ui" line="119"/>
<source>100</source>
- <translation type="unfinished">100</translation>
+ <translation>100</translation>
</message>
<message>
<location filename="mainwindow.ui" line="138"/>
<source>Starting a task cleans filelist and errorlist</source>
- <translation type="unfinished">Start löscht Datei- und Fehlerliste</translation>
+ <translation>Start löscht Datei- und Fehlerliste</translation>
</message>
<message>
<location filename="mainwindow.ui" line="141"/>
<source>Start cleans</source>
- <translation type="unfinished">Start löscht</translation>
+ <translation>Start löscht</translation>
</message>
<message>
<location filename="mainwindow.ui" line="170"/>
<source>Verbose level</source>
- <translation type="unfinished">Ausgabenstufe</translation>
+ <translation>Ausgabenstufe</translation>
</message>
<message>
<location filename="mainwindow.ui" line="177"/>
<source>Quiet</source>
- <translation type="unfinished">Still</translation>
+ <translation>Still</translation>
</message>
<message>
<location filename="mainwindow.ui" line="182"/>
<source>Summary</source>
- <translation type="unfinished">Zusammenfassung</translation>
+ <translation>Kurzfassung</translation>
</message>
<message>
<location filename="mainwindow.ui" line="187"/>
<source>File log</source>
- <translation type="unfinished">Dateiliste</translation>
+ <translation>Dateiliste</translation>
</message>
<message>
<location filename="mainwindow.ui" line="192"/>
<source>Chatty</source>
- <translation type="unfinished">Geschwätzig</translation>
+ <translation>Geschwätzig</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="210"/>
<source>Start</source>
- <translation type="unfinished">Start</translation>
+ <translation type="obsolete">Start</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="210"/>
+ <source>Backup</source>
+ <translation>Sicherung</translation>
</message>
<message>
<location filename="mainwindow.ui" line="226"/>
- <location filename="mainwindow.ui" line="847"/>
+ <location filename="mainwindow.ui" line="851"/>
<source>Stop</source>
- <translation type="unfinished">Beenden</translation>
+ <translation>Beenden</translation>
</message>
<message>
<location filename="mainwindow.ui" line="252"/>
- <location filename="mainwindow.ui" line="860"/>
+ <location filename="mainwindow.ui" line="864"/>
<source>Calculates checksums for source and target files and reports differences</source>
- <translation type="unfinished">Berechnet Prüfsummen für Quell- und Zieldateien und meldet Unterschiede</translation>
+ <translation>Berechnet Prüfsummen für Quell- und Zieldateien und meldet Unterschiede</translation>
</message>
<message>
<location filename="mainwindow.ui" line="255"/>
- <location filename="mainwindow.ui" line="857"/>
+ <location filename="mainwindow.ui" line="861"/>
<source>Checksums</source>
- <translation type="unfinished">Prüfsummen</translation>
+ <translation>Prüfsummen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="268"/>
<source>Detects files/dirs not found in the source directory. Old files will be remove, the other will be moved to the shadow directory</source>
- <translation type="unfinished">Entdeckt Dateien/Verzeichnisse, die nicht im Quellverzeichnis stehen. Alte Dateien werden gelöscht, die anderen werden ins Schattenverzeichnis verschoben</translation>
+ <translation>Entdeckt Dateien/Verzeichnisse, die nicht im Quellverzeichnis stehen. Alte Dateien werden gelöscht, die anderen werden ins Schattenverzeichnis verschoben</translation>
</message>
<message>
<location filename="mainwindow.ui" line="271"/>
- <location filename="mainwindow.ui" line="865"/>
+ <location filename="mainwindow.ui" line="869"/>
<source>Clean</source>
<translatorcomment>Protokoll:</translatorcomment>
- <translation type="unfinished">Bereinigen</translation>
+ <translation>Bereinigen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="292"/>
<source>Log:</source>
- <translation type="unfinished"></translation>
+ <translation>Protokoll:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="305"/>
<location filename="mainwindow.ui" line="692"/>
<location filename="mainwindow.ui" line="745"/>
<source>Clear</source>
- <translation type="unfinished">Löschen</translation>
+ <translation>Löschen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="339"/>
<source>Configuration</source>
- <translation type="unfinished">Konfiguration</translation>
+ <translation>Konfiguration</translation>
</message>
<message>
<location filename="mainwindow.ui" line="354"/>
<source>Backup elements:</source>
- <translation type="unfinished">Sicherungselemente:</translation>
+ <translation>Sicherungselemente:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="420"/>
<source>Add item</source>
- <translation type="unfinished">Element hinzufügen</translation>
+ <translation>Hinzufügen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="433"/>
<source>Delete item</source>
- <translation type="unfinished">Element löschen</translation>
+ <translation>Löschen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="459"/>
<source>Save config</source>
- <translation type="unfinished">Konfiguration speichern</translation>
+ <translation>Konf. speichern</translation>
</message>
<message>
<location filename="mainwindow.ui" line="480"/>
<source>Name:</source>
- <translation type="unfinished">Name:</translation>
+ <translation>Name:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="509"/>
<source>Update</source>
- <translation type="unfinished">Aktualisieren</translation>
+ <translation>Aktualisieren</translation>
</message>
<message>
<location filename="mainwindow.ui" line="526"/>
<source>Target:</source>
- <translation type="unfinished">Ziel:</translation>
+ <translation>Ziel:</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="542"/>
<source>Select target</source>
- <translation type="unfinished">Wähle Ziel</translation>
+ <translation type="vanished">Wähle Ziel</translation>
</message>
<message>
<location filename="mainwindow.ui" line="559"/>
<source>File patterns:</source>
- <translation type="unfinished">Dateinamensmuster:</translation>
+ <translation>Dateimuster:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="566"/>
<source><html><head/><body><p>A comma (',') separated list of filename patterns. A prefix of '-' means inversion: if a filename matches it will not be found.</p><p>Example: *.txt,*.odt</p></body></html></source>
- <translation type="unfinished"><html><head/><body><p>Eine Liste von Dateinamensmustern, getrennt mit Komma (',') . Ein Präfix '-' bedeuted Umkehrung: Wenn ein Dateiname passt, wird er nicht gefunden.</p><p>Beispiel: *.txt,*.odt</p></body></html></translation>
+ <translation><html><head/><body><p>Eine Liste von Dateinamensmustern, getrennt mit Komma (',') . Ein Präfix '-' bedeuted Umkehrung: Wenn ein Dateiname passt, wird er nicht gefunden.</p><p>Beispiel: *.txt,*.odt</p></body></html></translation>
</message>
<message>
<location filename="mainwindow.ui" line="582"/>
<source>Dir patterns:</source>
- <translation type="unfinished">Verzeichnismuster:</translation>
+ <translation>Verzeichnismuster:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="589"/>
<source><html><head/><body><p>A comma (',') separated list of directory name patterns. A prefix of '-' means inversion: if a directory name matches it will not be found.</p><p>Example: *,-.git,-*cache*</p></body></html></source>
- <translation type="unfinished"><html><head/><body><p>Eine Liste von Verzeichnisnamensmustern, getrennt mit Komma (',') . Ein Präfix '-' bedeuted Umkehrung: Wenn ein Verzeichnisname passt, wird er nicht gefunden.</p><p>Beispiel: *,-.git,-*cache*</p></body></html></translation>
+ <translation><html><head/><body><p>Eine Liste von Verzeichnisnamensmustern, getrennt mit Komma (',') . Ein Präfix '-' bedeuted Umkehrung: Wenn ein Verzeichnisname passt, wird er nicht gefunden.</p><p>Beispiel: *,-.git,-*cache*</p></body></html></translation>
</message>
<message>
<location filename="mainwindow.ui" line="609"/>
<source>Source dirs:</source>
- <translation type="unfinished">Quelldateien:</translation>
+ <translation>Quelldateien:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="635"/>
<source>Add source</source>
- <translation type="unfinished">Quelle hinzufügen</translation>
+ <translation>Hinzufügen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="648"/>
<source>Delete source</source>
- <translation type="unfinished">Quelle löschen</translation>
+ <translation>Löschen</translation>
</message>
<message>
<location filename="mainwindow.ui" line="665"/>
<source>Files</source>
- <translation type="unfinished">Dateien</translation>
+ <translation>Dateien</translation>
</message>
<message>
<location filename="mainwindow.ui" line="679"/>
<source>File log:</source>
- <translation type="unfinished">Dateiliste:</translation>
+ <translation>Dateiliste:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="718"/>
<source>Errors</source>
- <translation type="unfinished">Fehler:</translation>
+ <translation>Fehler</translation>
</message>
<message>
<location filename="mainwindow.ui" line="732"/>
<source>Error log:</source>
- <translation type="unfinished">Fehlerprotokoll:</translation>
+ <translation>Fehlerprotokoll:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="784"/>
<source>File</source>
<translatorcomment>Bearbeiten</translatorcomment>
- <translation type="unfinished">Datei</translation>
+ <translation>Datei</translation>
</message>
<message>
<location filename="mainwindow.ui" line="793"/>
<source>Edit</source>
- <translation type="unfinished">Bearbeiten</translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
<location filename="mainwindow.ui" line="798"/>
<source>Help</source>
- <translation type="unfinished">Hilfe</translation>
+ <translation>Hilfe</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="827"/>
+ <location filename="mainwindow.ui" line="831"/>
<source>Load Config</source>
- <translation type="unfinished">Konfiguration laden</translation>
+ <translation>Konfiguration laden</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="832"/>
+ <location filename="mainwindow.ui" line="836"/>
<source>Save Config</source>
- <translation type="unfinished">Konfiguration sichern</translation>
+ <translation>Konfiguration sichern</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="837"/>
+ <location filename="mainwindow.ui" line="841"/>
<source>Exit</source>
- <translation type="unfinished">Beenden</translation>
+ <translation>Beenden</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="842"/>
+ <location filename="mainwindow.ui" line="846"/>
<source>Start backup</source>
- <translation type="unfinished">Sicherung starten</translation>
+ <translation>Sicherung starten</translation>
</message>
<message>
- <location filename="mainwindow.ui" line="852"/>
+ <location filename="mainwindow.ui" line="856"/>
<source>About</source>
- <translation type="unfinished">Über</translation>
+ <translation>Über</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="298"/>
- <location filename="mainwindow.cpp" line="355"/>
- <location filename="mainwindow.cpp" line="457"/>
+ <location filename="mainwindow.ui" line="877"/>
+ <source>English</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="885"/>
+ <source>German</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="893"/>
+ <source>Default</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="mainwindow.cpp" line="335"/>
+ <location filename="mainwindow.cpp" line="392"/>
+ <location filename="mainwindow.cpp" line="494"/>
<source>no backup item selected</source>
- <translation type="unfinished">Kein Sicherungselement ausgewählt</translation>
+ <translation>Kein Sicherungselement ausgewählt</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="303"/>
- <location filename="mainwindow.cpp" line="360"/>
- <location filename="mainwindow.cpp" line="462"/>
+ <location filename="mainwindow.cpp" line="340"/>
+ <location filename="mainwindow.cpp" line="397"/>
+ <location filename="mainwindow.cpp" line="499"/>
<source>Target not available</source>
- <translation type="unfinished">Ziel nicht vorhanden</translation>
+ <translation>Ziel nicht vorhanden</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="329"/>
+ <location filename="mainwindow.cpp" line="366"/>
<source>Select Source Directory</source>
- <translation type="unfinished">Quellverzeichnis auswählen</translation>
+ <translation>Quellverzeichnis auswählen</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="414"/>
+ <location filename="mainwindow.cpp" line="451"/>
<source>Select Target Directory</source>
- <translation type="unfinished">Zielverzeichnis auswählen</translation>
+ <translation>Zielverzeichnis auswählen</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="420"/>
+ <location filename="mainwindow.cpp" line="457"/>
<source>target initialized with %1</source>
- <translation type="unfinished">Ziel mit %1 vorbelegt</translation>
+ <translation>Ziel mit %1 vorbelegt</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="281"/>
<source>cannot build checksum: %1</source>
- <translation type="unfinished">Kann Prüfsumme nicht ermitteln: %1</translation>
+ <translation>Kann Prüfsumme nicht ermitteln: %1</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="407"/>
<source>checksum differs: </source>
- <translation type="unfinished">Prüfsummen unterscheiden sich:</translation>
+ <translation>Prüfsummen unterscheiden sich:</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="501"/>
<source>cannot delete (%1): %2</source>
- <translation type="unfinished">Kann nicht löschen (%1): %2</translation>
+ <translation>Kann nicht löschen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="510"/>
<source>cannot remove directory (%1): %2</source>
- <translation type="unfinished">Kann Verzeichnis nicht erstellen (%1): %2</translation>
+ <translation>Kann Verzeichnis nicht erstellen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="524"/>
<source>cannot create the shadow directory: %1</source>
- <translation type="unfinished">Kann das Schattenverzeichnis nicht erstellen (%1): %2</translation>
+ <translation>Kann das Schattenverzeichnis nicht erstellen: %1</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="530"/>
<source>cannot delete shadow file (%1): %2</source>
- <translation type="unfinished">Kann Schattendatei nicht löschen (%1): %2</translation>
+ <translation>Kann Schattendatei nicht löschen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="534"/>
<source>cannot rename target file (%1): %2 -> %3</source>
- <translation type="unfinished">Kann Zieldatei nicht umbenennen (%1): %2 -> %3</translation>
+ <translation>Kann Zieldatei nicht umbenennen (%1): %2 -> %3</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="904"/>
<source>cannot create shadow directory (%1): %2</source>
- <translation type="unfinished">Kann Schattenverzeichnis nicht erstellen (%1): %2</translation>
+ <translation>Kann Schattenverzeichnis nicht erstellen (%1): %2</translation>
</message>
<message>
<location filename="BackupEngine.cpp" line="909"/>
<source>cannot move to shadow directory (%1): %2 -> %3</source>
- <translation type="unfinished">Kann Datei nicht in Schattenverzeichnis verschieben (%1): %2</translation>
+ <translation>Kann Datei nicht in Schattenverzeichnis verschieben (%1): %2 -> %3</translation>
</message>
<message>
<location filename="Configuration.cpp" line="68"/>
<source>item</source>
- <translation type="unfinished">Element</translation>
+ <translation>Element</translation>
</message>
<message>
<location filename="Configuration.cpp" line="119"/>
<location filename="../../base/ReFileUtils.cpp" line="181"/>
<location filename="../../base/ReFileUtils.cpp" line="185"/>
<source>cannot open (%1): %2</source>
- <translation type="unfinished">Kann nicht öffnen (%1): %2</translation>
+ <translation>Kann nicht öffnen (%1): %2</translation>
</message>
<message>
<location filename="Configuration.cpp" line="151"/>
<source>unknown format in %1-%2: %3</source>
- <translation type="unfinished">Unbekanntes Format in %1-%2: %3</translation>
+ <translation>Unbekanntes Format in %1-%2: %3</translation>
</message>
<message>
<location filename="Configuration.cpp" line="227"/>
<source>cannot write (%1): %2</source>
- <translation type="unfinished">Kann nicht schreiben (%1): %2</translation>
+ <translation>Kann nicht schreiben (%1): %2</translation>
</message>
<message>
- <location filename="mainwindow.cpp" line="196"/>
+ <location filename="mainwindow.cpp" line="213"/>
<source>Search started...</source>
- <translation type="unfinished">Suche gestartet...</translation>
+ <translation>Suche gestartet...</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.cpp" line="668"/>
+ <source>yes</source>
+ <translation>Ja</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.cpp" line="668"/>
+ <source>no</source>
+ <translation>nein</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="177"/>
<source>not found: %1</source>
- <translation type="unfinished">Nicht gefunden: %1</translation>
+ <translation>Nicht gefunden: %1</translation>
</message>
<message>
- <location filename="../../base/ReFileUtils.cpp" line="202"/>
<source>cannot write (%1): $2 [%3/%4]</source>
- <translation type="unfinished">Kann nicht schreiben(%1): %2 [%3/%4]</translation>
+ <translation type="obsolete">Kann nicht schreiben(%1): %2 [%3/%4]</translation>
+ </message>
+ <message>
+ <location filename="../../base/ReFileUtils.cpp" line="202"/>
+ <source>cannot write (%1): %2 [%3/%4]</source>
+ <translation>Kann nicht schreiben(%1): %2 [%3/%4]</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="209"/>
<source>file can be read only partitionally: %1 [%2/%3]</source>
- <translation type="unfinished">Datei kann nur teilweise gelesen werden: %1 [%2/%3]</translation>
+ <translation>Datei kann nur teilweise gelesen werden: %1 [%2/%3]</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="214"/>
<source>cannot set date/time (%1): %2</source>
- <translation type="unfinished">Kann Datum/Zeit nicht setzen (%1): %2</translation>
+ <translation>Kann Datum/Zeit nicht setzen (%1): %2</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="217"/>
<source>cannot set permissions (%1): %2</source>
- <translation type="unfinished">Kann Dateirechte nicht setzen (%1): %2</translation>
+ <translation>Kann Dateirechte nicht setzen (%1): %2</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="491"/>
<source>can't create directory (%1): %2</source>
- <translation type="unfinished">Kann Verzeichnis nicht erzeugen (%1): %2</translation>
+ <translation>Kann Verzeichnis nicht erzeugen (%1): %2</translation>
</message>
<message>
<location filename="../../base/ReFileUtils.cpp" line="497"/>
<source>can't create directory (is a file): </source>
- <translation type="unfinished">Kann Verzeichnis nicht erzeugen (ist eine Datei): </translation>
+ <translation>Kann Verzeichnis nicht erzeugen (ist eine Datei): </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="472"/>
<source>unknown placeholder: </source>
- <translation type="unfinished">Unbekannter Platzhalter:</translation>
+ <translation>Unbekannter Platzhalter:</translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="555"/>
<source>%1 of %2 (%3 %)</source>
- <translation type="unfinished">%1 von %2 (%3 %)</translation>
+ <translation>%1 von %2 (%3 %)</translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="715"/>
<source>more than 2 power operators, e.g. '2^3^4'</source>
- <translation type="unfinished">Mehr als 2 Potenzoperatoren, z.B. '2^3^4'</translation>
+ <translation>Mehr als 2 Potenzoperatoren, z.B. '2^3^4'</translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="728"/>
<source>number overflow while power operation</source>
- <translation type="unfinished">Zahlüberlauf während Potenzoperation</translation>
+ <translation>Zahlüberlauf während Potenzoperation</translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="758"/>
<source>number expected: </source>
- <translation type="unfinished">Zahl erwartet: </translation>
+ <translation>Zahl erwartet: </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="768"/>
<source>missing ':' in unit definition, e.g. 'k:1000': </source>
- <translation type="unfinished">';' fehlt in der Einheitendefinition, z.B. 'k:1000': </translation>
+ <translation>';' fehlt in der Einheitendefinition, z.B. 'k:1000': </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="773"/>
<source>too many ':' in unit definition: </source>
- <translation type="unfinished">Zu viele ':' in der Einheitsdefinition: </translation>
+ <translation>Zu viele ':' in der Einheitsdefinition: </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="779"/>
<source>not a number: </source>
- <translation type="unfinished">Keine Zahl: </translation>
+ <translation>Keine Zahl: </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="788"/>
+ <source>unknown unit '%1'. Allowed: </source>
+ <translation>Unbekannte Einheit '%1'. Erlaubt: </translation>
+ </message>
+ <message>
<source>unknown unit '$1'. Allowed: </source>
- <translation type="unfinished">Unbekannte Einheit '%1'. Erlaubt: </translation>
+ <translation type="vanished">Unbekannte Einheit '%1'. Erlaubt: </translation>
</message>
<message>
<location filename="../../base/ReQStringUtils.cpp" line="839"/>
<source>empty string is not a date/time</source>
- <translation type="unfinished">Leerer String ist kein Datum bzw. keine Zeit</translation>
+ <translation>Leerer String ist kein Datum bzw. keine Zeit</translation>
</message>
<message>
<location filename="../../gui/ReGuiValidator.cpp" line="73"/>
<source>not an integer: </source>
- <translation type="unfinished">Keine Ganzzahl: </translation>
+ <translation>Keine Ganzzahl: </translation>
</message>
</context>
<context>
<name>ReGuiApplication</name>
<message>
- <location filename="../../gui/ReGuiApplication.cpp" line="42"/>
+ <location filename="../../gui/ReGuiApplication.cpp" line="44"/>
<source>Welcome!</source>
- <translation type="unfinished">Willkommen!</translation>
+ <translation>Willkommen!</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="934"/>
<source>Search in target finished: to process: %1 with %2 dirs to delete: %3 total: %4 subdirs: %5 runtime: %6</source>
- <translation type="unfinished">Suche im Ziel bendet: zu behandeln: %1 mit %2 zu löschende Verzeichnisse: %3 gesamt: %4 Unterverz.: %5 Laufzeit: %6</translation>
+ <translation>Suche im Ziel bendet: zu behandeln: %1 mit %2 zu löschende Verzeichnisse: %3 gesamt: %4 Unterverz.: %5 Laufzeit: %6</translation>
</message>
</context>
<context>
<message>
<location filename="BackupEngine.cpp" line="602"/>
<source>Search finished: to process: %1 with %2 matching: %3 total: %4 subdirs: %5 runtime: %6</source>
- <translation type="unfinished">Suche beendet: zu behandeln: %1 mit %2 passend: %3 gesamt: %4 Unterverz: %5 Laufzeit: %6</translation>
+ <translation>Suche beendet: zu behandeln: %1 mit %2 passend: %3 gesamt: %4 Unterverz: %5 Laufzeit: %6</translation>
</message>
</context>
</TS>