some more i18n
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 16 Sep 2007 15:55:28 +0000 (15:55 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 16 Sep 2007 15:55:28 +0000 (15:55 +0000)
make language changeable at runtime
add icon
some draft window layout for overview

git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@28 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

13 files changed:
src/code39.h
src/files.qrc [new file with mode: 0644]
src/icon.png [new file with mode: 0644]
src/icon.xcf [new file with mode: 0644]
src/main.cpp
src/main.h [new file with mode: 0644]
src/mainwindow.cpp
src/mainwindow.h
src/overview.cpp
src/overview.h
src/smoke.pro
src/smoke_de.ts
src/smoke_de_SAX.ts

index afa05f7..fcf0888 100644 (file)
@@ -13,4 +13,7 @@
 #include <QPixmap>
 #include <QString>
 
-QPixmap code39(QString);
\ No newline at end of file
+/**Takes a string and converts it into a code-39 bar code.
+Code-39 allows letters (case-insensitive), digits, spaces and the special chars "-.$/+%".
+The bar code pixmap will be 1 pixel high and 16 pixels wide for each character (plus start/stop character and checksum character) - it needs to be scaled up to fit the intended size.*/
+QPixmap code39(QString);
diff --git a/src/files.qrc b/src/files.qrc
new file mode 100644 (file)
index 0000000..93605ce
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+    <qresource>
+        <file>icon.png</file>
+    </qresource>
+</RCC>
diff --git a/src/icon.png b/src/icon.png
new file mode 100644 (file)
index 0000000..a5b3bbf
Binary files /dev/null and b/src/icon.png differ
diff --git a/src/icon.xcf b/src/icon.xcf
new file mode 100644 (file)
index 0000000..9c6afac
Binary files /dev/null and b/src/icon.xcf differ
index 455e1b9..3cb590e 100644 (file)
 #include <QMessageBox>
 #include <QHostInfo>
 #include <QDir>
+#include <QIcon>
 
 #include "keygen.h"
 #include "mainwindow.h"
 #include "hmac.h"
+#include "main.h"
+
+QString choseLanguage(bool warn)
+{
+       QString lang=QSettings().value("lang","--").toString();
+       if(lang=="--"){
+               lang=QLocale::system().name();
+       }
+       int cur=0;
+       QStringList langs;
+       langs<<"C - default";
+       QStringList files=QDir(QApplication::applicationDirPath()).entryList(QStringList()<<"smoke_*.qm", QDir::Files, QDir::Name);
+       for(int i=0;i<files.size();i++){
+               QString l=files[i].mid(6);
+               l.chop(3);
+               langs<<l;
+               if(l==lang)cur=langs.size()-1;
+       }
+       bool ok;
+       QString lc;
+       lc=QInputDialog::getItem(0,QApplication::translate("lang","Chose Language"),QApplication::translate("lang","Language:"),langs,cur,false,&ok);
+       if(ok){
+               lang=lc.split(' ').at(0);
+               QSettings().setValue("lang",lang);
+               if(warn)
+                       QMessageBox::information(0,QApplication::translate("lang","Information"), QApplication::translate("lang","The changed language setting will only be active after restarting the application."));
+       }
+       return lang;
+}
 
 int main(int argc,char**argv)
 {
@@ -32,6 +62,9 @@ int main(int argc,char**argv)
        app.setOrganizationName("MagicSmoke");
        app.setApplicationName("MagicSmoke");
        
+       //set icon
+       app.setWindowIcon(QIcon(":/icon.png"));
+       
        //install event filter for random generator
        EFilter ef;
        app.installEventFilter(&ef);
@@ -39,24 +72,7 @@ int main(int argc,char**argv)
        //try to find appropriate locale
        QString lang=QSettings().value("lang","--").toString();
        if(lang=="--"){
-               lang=QLocale::system().name();
-               int cur=0;
-               QStringList langs;
-               langs<<"C - default";
-               QStringList files=QDir(app.applicationDirPath()).entryList(QStringList()<<"smoke_*.qm", QDir::Files, QDir::Name);
-               for(int i=0;i<files.size();i++){
-                       QString l=files[i].mid(6);
-                       l.chop(3);
-                       langs<<l;
-                       if(l==lang)cur=langs.size()-1;
-               }
-               bool ok;
-               QString lc;
-               lc=QInputDialog::getItem(0,"Chose Language","Language:",langs,cur,false,&ok);
-               if(&ok){
-                       lang=lc.split(' ').at(0);
-                       QSettings().setValue("lang",lang);
-               }
+               lang=choseLanguage(false);
        }
        qDebug("Loading language %s",lang.toAscii().data());
        QTranslator qttrans;
diff --git a/src/main.h b/src/main.h
new file mode 100644 (file)
index 0000000..2bdb629
--- /dev/null
@@ -0,0 +1,14 @@
+//
+// C++ Interface: main
+//
+// Description: 
+//
+//
+// Author: Konrad Rosenbaum <konrad@silmor.de>, (C) 2007
+//
+// Copyright: See README/COPYING files that come with this distribution
+//
+//
+
+QString choseLanguage(bool warn=true);
+
index f320b51..71bf17a 100644 (file)
@@ -14,6 +14,7 @@
 #include "keygen.h"
 #include "webrequest.h"
 #include "overview.h"
+#include "main.h"
 
 #include <QHttp>
 #include <QFile>
@@ -44,6 +45,7 @@ MMainWindow::MMainWindow()
        m->addSeparator();
        m->addAction(tr("&Close Window"),this,SLOT(close()));
        m=mb->addMenu(tr("&Configure"));
+       m->addAction(tr("&Language..."),this,SLOT(changeLang()));
        
        //create central widget
        QWidget *loginwidget;
@@ -77,7 +79,7 @@ MMainWindow::MMainWindow()
        gl->addWidget(lab=new QLabel(tr("Proxy Password:")),++lctr,0);
        lab->setAlignment(Qt::AlignRight);
        gl->addWidget(proxypass=new QLineEdit,lctr,1);
-       password->setEchoMode(QLineEdit::Password);
+       proxypass->setEchoMode(QLineEdit::Password);
        connect(useproxy,SIGNAL(toggled(bool)),proxyuser,SLOT(setEnabled(bool)));
        connect(useproxy,SIGNAL(toggled(bool)),proxypass,SLOT(setEnabled(bool)));
        QFrame*frm;
@@ -210,3 +212,8 @@ void MMainWindow::startLogin()
        
        setEnabled(true);
 }
+
+void MMainWindow::changeLang()
+{
+       choseLanguage();
+}
index f4091ea..3560096 100644 (file)
@@ -45,6 +45,8 @@ class MMainWindow:public QMainWindow
                void saveProfile();
                void newProfile();
                void startLogin();
+               //settings
+               void changeLang();
 };
 
 #endif
index dd76f16..30490f0 100644 (file)
 #include <QStatusBar>
 #include <QMenuBar>
 #include <QMenu>
+#include <QBoxLayout>
+#include <QPushButton>
+#include <QTableView>
+#include <QLabel>
+#include <QTextEdit>
+#include <QFrame>
 
 MOverview::MOverview(MWebRequest*mw,QString pk)
 {
@@ -30,17 +36,75 @@ MOverview::MOverview(MWebRequest*mw,QString pk)
        QMenuBar*mb=menuBar();
        QMenu*m=mb->addMenu(tr("&Session"));
        m->addAction(tr("&Re-Login"),this,SLOT(relogin()));
+       m->addAction(tr("&Offline mode"))->setEnabled(false);
        m->addSeparator();
        m->addAction(tr("&Close Session"),this,SLOT(close()));
        
        m=mb->addMenu(tr("&Event"));
+       m->addAction(tr("&Show details..."));
+       m->addAction(tr("&New Event..."));
+       m->addAction(tr("&Cancel Event..."));
+       
        m=mb->addMenu(tr("&Customer"));
+       m->addAction(tr("&Show all customers"));
+       
+       m=mb->addMenu(tr("C&art"));
+       m->addAction(tr("Add &Ticket"));
+       m->addAction(tr("Add &Voucher"));
+       m->addAction(tr("&Remove Item"));
+       m->addAction(tr("&Abort Shopping"));
+       m->addSeparator();
+       m->addAction(tr("&Show all orders"));
+       
        m=mb->addMenu(tr("C&onfigure"));
+       
        //tabs
        setCentralWidget(tab=new QTabWidget);
-       tab->addTab(new QWidget,tr("Events"));
-       tab->addTab(new QWidget,tr("Customers"));
-       tab->addTab(new QWidget,tr("Order"));
+       tab->addTab(eventtab=new QWidget,tr("Events"));
+       QVBoxLayout*vl;QHBoxLayout*hl;
+       eventtab->setLayout(hl=new QHBoxLayout);
+       hl->addWidget(new QTableView,10);
+       hl->addSpacing(5);
+       hl->addLayout(vl=new QVBoxLayout,0);
+       vl->addWidget(new QPushButton(tr("New Event...")),0);
+       vl->addWidget(new QPushButton(tr("Details...")),0);
+       vl->addSpacing(15);
+       vl->addWidget(new QPushButton(tr("Order Ticket...")),0);
+       vl->addStretch(10);
+       
+       tab->addTab(carttab=new QWidget,tr("Shopping Cart"));
+       carttab->setLayout(vl=new QVBoxLayout);
+       vl->addLayout(hl=new QHBoxLayout);
+       QVBoxLayout*vl2;
+       hl->addLayout(vl2=new QVBoxLayout,1);
+       vl2->addWidget(new QTableView,10);
+       QHBoxLayout*hl2;
+       vl2->addLayout(hl2=new QHBoxLayout,0);
+       hl2->addStretch(10);
+       hl2->addWidget(new QPushButton(tr("Add Ticket")),0);
+       hl2->addWidget(new QPushButton(tr("Add Voucher")),0);
+       hl2->addWidget(new QPushButton(tr("Remove Item")),0);
+       QFrame*frm;
+       hl->addWidget(frm=new QFrame,0);
+       frm->setFrameShape(QFrame::VLine);
+       hl->addLayout(vl2=new QVBoxLayout,1);
+       vl2->addWidget(new QPushButton(tr("Customer:")),0);
+       vl2->addWidget(new QLabel("...blah\nPerson\nsomewhere"));
+       vl2->addWidget(frm=new QFrame,0);
+       frm->setFrameShape(QFrame::HLine);
+       vl2->addSpacing(10);
+       vl2->addWidget(new QLabel(tr("Delivery Address:")),0);
+       vl2->addWidget(new QTextEdit);
+       vl2->addSpacing(10);
+       vl2->addWidget(new QLabel(tr("Comments:")),0);
+       vl2->addWidget(new QTextEdit);
+       vl2->addStretch(10);
+       vl->addWidget(frm=new QFrame,0);
+       frm->setFrameShape(QFrame::HLine);
+       vl->addLayout(hl=new QHBoxLayout,0);
+       hl->addStretch(10);
+       hl->addWidget(new QPushButton(tr("Save Order")));
+       hl->addWidget(new QPushButton(tr("Clear")));
        
        //status bar
        statusBar()->setSizeGripEnabled(true);
index d5ba10a..732d547 100644 (file)
@@ -27,8 +27,10 @@ class MOverview:public QMainWindow
                MOverview(MWebRequest*,QString);
                ~MOverview();
        protected:
+               /**handle closing the window: close the session too*/
                void closeEvent(QCloseEvent*);
        private slots:
+               /**try to log in again*/
                void relogin();
        private:
                //my session object
@@ -37,6 +39,7 @@ class MOverview:public QMainWindow
                QString profilekey;
                //widgets
                QTabWidget*tab;
+               QWidget*eventtab,*carttab;
 };
 
 #endif
index 41fef86..a31eaf7 100644 (file)
@@ -29,6 +29,11 @@ HEADERS = \
        webrequest.h \
        overview.h
 
+RESOURCES += files.qrc
+
 TRANSLATIONS = \
        smoke_de.ts \
-       smoke_de_SAX.ts 
\ No newline at end of file
+       smoke_de_SAX.ts
+
+
+#include(zip/zip.pri)
index 2e07296..6f2dfb9 100644 (file)
@@ -33,161 +33,271 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>MMainWindow</name>
     <message>
-        <location filename="mainwindow.cpp" line="55"/>
+        <location filename="mainwindow.cpp" line="57"/>
         <source>Profile:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="59"/>
+        <location filename="mainwindow.cpp" line="61"/>
         <source>Alternate Hostname:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="62"/>
+        <location filename="mainwindow.cpp" line="64"/>
         <source>Server URL:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="65"/>
+        <location filename="mainwindow.cpp" line="67"/>
         <source>Proxy:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="86"/>
+        <location filename="mainwindow.cpp" line="88"/>
         <source>Username:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="89"/>
+        <location filename="mainwindow.cpp" line="91"/>
         <source>Password:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="177"/>
+        <location filename="mainwindow.cpp" line="179"/>
         <source>New Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="177"/>
+        <location filename="mainwindow.cpp" line="179"/>
         <source>Please enter a profile name. It must be non-empty and must not be used yet:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="74"/>
+        <location filename="mainwindow.cpp" line="76"/>
         <source>Proxy Username:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="77"/>
+        <location filename="mainwindow.cpp" line="79"/>
         <source>Proxy Password:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="202"/>
+        <location filename="mainwindow.cpp" line="204"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="202"/>
+        <location filename="mainwindow.cpp" line="204"/>
         <source>Unable to log in. Error: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="41"/>
+        <location filename="mainwindow.cpp" line="42"/>
         <source>&amp;File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="42"/>
+        <location filename="mainwindow.cpp" line="43"/>
         <source>&amp;New Profile...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="43"/>
+        <location filename="mainwindow.cpp" line="44"/>
         <source>&amp;Save Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="45"/>
+        <location filename="mainwindow.cpp" line="46"/>
         <source>&amp;Close Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="46"/>
+        <location filename="mainwindow.cpp" line="47"/>
         <source>&amp;Configure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="96"/>
+        <location filename="mainwindow.cpp" line="98"/>
         <source>new Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="98"/>
+        <location filename="mainwindow.cpp" line="100"/>
         <source>save Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="101"/>
+        <location filename="mainwindow.cpp" line="103"/>
         <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="mainwindow.cpp" line="48"/>
+        <source>&amp;Language...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MOverview</name>
     <message>
-        <location filename="overview.cpp" line="31"/>
+        <location filename="overview.cpp" line="37"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="32"/>
+        <location filename="overview.cpp" line="38"/>
         <source>&amp;Re-Login</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="34"/>
+        <location filename="overview.cpp" line="41"/>
         <source>&amp;Close Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="36"/>
+        <location filename="overview.cpp" line="43"/>
         <source>&amp;Event</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="37"/>
+        <location filename="overview.cpp" line="48"/>
         <source>&amp;Customer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="38"/>
+        <location filename="overview.cpp" line="59"/>
         <source>C&amp;onfigure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="41"/>
+        <location filename="overview.cpp" line="63"/>
         <source>Events</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="42"/>
-        <source>Customers</source>
+        <location filename="overview.cpp" line="131"/>
+        <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="43"/>
-        <source>Order</source>
+        <location filename="overview.cpp" line="131"/>
+        <source>I was unable to renew the login at the server, the error was: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="67"/>
-        <source>Warning</source>
+        <location filename="overview.cpp" line="39"/>
+        <source>&amp;Offline mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="67"/>
-        <source>I was unable to renew the login at the server, the error was: %1</source>
+        <location filename="overview.cpp" line="44"/>
+        <source>&amp;Show details...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="45"/>
+        <source>&amp;New Event...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="46"/>
+        <source>&amp;Cancel Event...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="49"/>
+        <source>&amp;Show all customers</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="51"/>
+        <source>C&amp;art</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="52"/>
+        <source>Add &amp;Ticket</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="53"/>
+        <source>Add &amp;Voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="54"/>
+        <source>&amp;Remove Item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="55"/>
+        <source>&amp;Abort Shopping</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="57"/>
+        <source>&amp;Show all orders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="69"/>
+        <source>New Event...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="70"/>
+        <source>Details...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="72"/>
+        <source>Order Ticket...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="75"/>
+        <source>Shopping Cart</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="84"/>
+        <source>Add Ticket</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="85"/>
+        <source>Add Voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="86"/>
+        <source>Remove Item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="91"/>
+        <source>Customer:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="96"/>
+        <source>Delivery Address:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="99"/>
+        <source>Comments:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="106"/>
+        <source>Save Order</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="107"/>
+        <source>Clear</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -252,27 +362,27 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>initkey</name>
     <message>
-        <location filename="main.cpp" line="87"/>
+        <location filename="main.cpp" line="103"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="75"/>
+        <location filename="main.cpp" line="91"/>
         <source>Magic Smoke needs a host key. You have to generate one before you can use the program.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="81"/>
+        <location filename="main.cpp" line="97"/>
         <source>Enter Host Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="82"/>
+        <location filename="main.cpp" line="98"/>
         <source>Host name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="87"/>
+        <location filename="main.cpp" line="103"/>
         <source>Magic Smoke needs a host name. You have to configure one before you can use the program.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -280,20 +390,43 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>initprofile</name>
     <message>
-        <location filename="main.cpp" line="96"/>
+        <location filename="main.cpp" line="112"/>
         <source>default</source>
         <comment>initial profile</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="97"/>
+        <location filename="main.cpp" line="113"/>
         <source>Create Initial Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="97"/>
+        <location filename="main.cpp" line="113"/>
         <source>You need a profile to work with Magic Smoke. Magic Smoke will now create one for you. Please enter the name you wish to give this profile.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>lang</name>
+    <message>
+        <location filename="main.cpp" line="51"/>
+        <source>Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="51"/>
+        <source>The changed language setting will only be active after restarting the application.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="46"/>
+        <source>Chose Language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="46"/>
+        <source>Language:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 </TS>
index 390e188..4b506e7 100644 (file)
@@ -34,163 +34,273 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>MMainWindow</name>
     <message>
-        <location filename="mainwindow.cpp" line="55"/>
+        <location filename="mainwindow.cpp" line="57"/>
         <source>Profile:</source>
         <translation>Brofiel:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="59"/>
+        <location filename="mainwindow.cpp" line="61"/>
         <source>Alternate Hostname:</source>
         <translation>Andror Reschnername:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="62"/>
+        <location filename="mainwindow.cpp" line="64"/>
         <source>Server URL:</source>
         <translation>URL vom diggen Reschnor:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="65"/>
+        <location filename="mainwindow.cpp" line="67"/>
         <source>Proxy:</source>
         <translation>Web-Broggsie:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="86"/>
+        <location filename="mainwindow.cpp" line="88"/>
         <source>Username:</source>
         <translation>Nudsorname:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="89"/>
+        <location filename="mainwindow.cpp" line="91"/>
         <source>Password:</source>
         <translation>Gans doll geheimer Gohd:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="177"/>
+        <location filename="mainwindow.cpp" line="179"/>
         <source>New Profile</source>
         <translation>Neues Brofiel</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="177"/>
+        <location filename="mainwindow.cpp" line="179"/>
         <source>Please enter a profile name. It must be non-empty and must not be used yet:</source>
         <translation>Bidde gäben&apos;se &apos;nen Namen für das neue Brofiel ein. Der darf noch ni&apos; benudsd sein und leer darf&apos;or och nedd sein:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="74"/>
+        <location filename="mainwindow.cpp" line="76"/>
         <source>Proxy Username:</source>
         <translation>Nudsername für&apos;n Broggsie:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="77"/>
+        <location filename="mainwindow.cpp" line="79"/>
         <source>Proxy Password:</source>
         <translation>Geheimer Gohd für&apos;n Broggsie:</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="202"/>
+        <location filename="mainwindow.cpp" line="204"/>
         <source>Warning</source>
         <translation>Dumm gelaufen</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="202"/>
+        <location filename="mainwindow.cpp" line="204"/>
         <source>Unable to log in. Error: %1</source>
         <translation>Isch gann nisch off&apos;n gross&apos;n Reschner. Der will nisch weil: %1</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="41"/>
+        <location filename="mainwindow.cpp" line="42"/>
         <source>&amp;File</source>
         <translation>&amp;Dadai</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="42"/>
+        <location filename="mainwindow.cpp" line="43"/>
         <source>&amp;New Profile...</source>
         <translation>&amp;Neues Brofiel</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="43"/>
+        <location filename="mainwindow.cpp" line="44"/>
         <source>&amp;Save Profile</source>
         <translation>Brofiel &amp;schbeichorn</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="45"/>
+        <location filename="mainwindow.cpp" line="46"/>
         <source>&amp;Close Window</source>
         <translation>Fänsdor &amp;zumach&apos;n</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="46"/>
+        <location filename="mainwindow.cpp" line="47"/>
         <source>&amp;Configure</source>
         <translation>&amp;Gonfiguriern</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="96"/>
+        <location filename="mainwindow.cpp" line="98"/>
         <source>new Profile</source>
         <translation>Neues Brofiel</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="98"/>
+        <location filename="mainwindow.cpp" line="100"/>
         <source>save Profile</source>
         <translation>Brofiel schbeichorn</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="101"/>
+        <location filename="mainwindow.cpp" line="103"/>
         <source>Login</source>
         <translation>Droff offn&apos; Reschnor</translation>
     </message>
+    <message>
+        <location filename="mainwindow.cpp" line="48"/>
+        <source>&amp;Language...</source>
+        <translation>&amp;Schbrache...</translation>
+    </message>
 </context>
 <context>
     <name>MOverview</name>
     <message>
-        <location filename="overview.cpp" line="31"/>
+        <location filename="overview.cpp" line="37"/>
         <source>&amp;Session</source>
         <translation>&amp;Sidsung</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="32"/>
+        <location filename="overview.cpp" line="38"/>
         <source>&amp;Re-Login</source>
         <translation>&amp;Noch&apos;ma einloggn</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="34"/>
+        <location filename="overview.cpp" line="41"/>
         <source>&amp;Close Session</source>
         <translation>Sidsung &amp;Zumachn</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="36"/>
+        <location filename="overview.cpp" line="43"/>
         <source>&amp;Event</source>
         <translation>&amp;Veranschdaldung</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="37"/>
+        <location filename="overview.cpp" line="48"/>
         <source>&amp;Customer</source>
         <translation>&amp;Gunde</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="38"/>
+        <location filename="overview.cpp" line="59"/>
         <source>C&amp;onfigure</source>
         <translation>G&amp;onfiguriern</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="41"/>
+        <location filename="overview.cpp" line="63"/>
         <source>Events</source>
         <translation>Veranschdaldungen</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="42"/>
-        <source>Customers</source>
-        <translation>Gunden</translation>
-    </message>
-    <message>
-        <location filename="overview.cpp" line="43"/>
-        <source>Order</source>
-        <translation>Beschdellung</translation>
-    </message>
-    <message>
-        <location filename="overview.cpp" line="67"/>
+        <location filename="overview.cpp" line="131"/>
         <source>Warning</source>
         <translation>Dumm gelaufen</translation>
     </message>
     <message>
-        <location filename="overview.cpp" line="67"/>
+        <location filename="overview.cpp" line="131"/>
         <source>I was unable to renew the login at the server, the error was: %1</source>
         <translation>Isch gann de&apos; Verbindung off&apos;n gross&apos;n Reschner nisch erneuern. Der will nisch weil: %1</translation>
     </message>
+    <message>
+        <location filename="overview.cpp" line="39"/>
+        <source>&amp;Offline mode</source>
+        <translation>&amp;Ohne Neds und Dobbelden Boden</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="44"/>
+        <source>&amp;Show details...</source>
+        <translation>&amp;Dedails anzeigen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="45"/>
+        <source>&amp;New Event...</source>
+        <translation>&amp;Neue Veranschdaldung...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="46"/>
+        <source>&amp;Cancel Event...</source>
+        <translation>Veranschdaldung &amp;absach&apos;n...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="49"/>
+        <source>&amp;Show all customers</source>
+        <translation>&amp;Alle Gunden anzeigen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="51"/>
+        <source>C&amp;art</source>
+        <translation>Eing&amp;aufswagen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="52"/>
+        <source>Add &amp;Ticket</source>
+        <translation>Ein&amp;driddsgarde hinzufüchen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="53"/>
+        <source>Add &amp;Voucher</source>
+        <translation>&amp;Gudschein hinzufüchen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="54"/>
+        <source>&amp;Remove Item</source>
+        <translation>Doch &amp;ni&apos; nehm&apos;</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="55"/>
+        <source>&amp;Abort Shopping</source>
+        <translation>&amp;Eingauf Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="57"/>
+        <source>&amp;Show all orders</source>
+        <translation>&amp;Alle Beschdellungen anzeichen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="69"/>
+        <source>New Event...</source>
+        <translation>Neue Veranschdaldung...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="70"/>
+        <source>Details...</source>
+        <translation>Dedails anzeichen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="72"/>
+        <source>Order Ticket...</source>
+        <translation>Eindriddsgarde beschdellen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="75"/>
+        <source>Shopping Cart</source>
+        <translation>Eingaufswagen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="84"/>
+        <source>Add Ticket</source>
+        <translation>Eindriddsgarde hinzufüchen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="85"/>
+        <source>Add Voucher</source>
+        <translation>Gudschein hinzufüchen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="86"/>
+        <source>Remove Item</source>
+        <translation>Doch ni&apos; nehm&apos;</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="91"/>
+        <source>Customer:</source>
+        <translation>Gunde:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="96"/>
+        <source>Delivery Address:</source>
+        <translation>Adresse wo&apos;s Zeuch hin soll:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="99"/>
+        <source>Comments:</source>
+        <translation>Wischdiches Gelaber und Gerede:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="106"/>
+        <source>Save Order</source>
+        <translation>Beschdellung abschbeichern</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="107"/>
+        <source>Clear</source>
+        <translation>Wechwerfen und von vorne!</translation>
+    </message>
 </context>
 <context>
     <name>MWebRequest</name>
@@ -253,27 +363,27 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>initkey</name>
     <message>
-        <location filename="main.cpp" line="87"/>
+        <location filename="main.cpp" line="103"/>
         <source>Warning</source>
         <translation>Dumm gelaufen</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="75"/>
+        <location filename="main.cpp" line="91"/>
         <source>Magic Smoke needs a host key. You have to generate one before you can use the program.</source>
         <translation>Mädschig Schmohg brauchd &apos;nen Schlüssel. Desweschen isser beleidschd. Beim nächsden Schdard mussde ihn einen mach&apos;n lass&apos;n.</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="81"/>
+        <location filename="main.cpp" line="97"/>
         <source>Enter Host Name</source>
         <translation>Gombjudername eingäbn</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="82"/>
+        <location filename="main.cpp" line="98"/>
         <source>Host name:</source>
         <translation>Gombjudername:</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="87"/>
+        <location filename="main.cpp" line="103"/>
         <source>Magic Smoke needs a host name. You have to configure one before you can use the program.</source>
         <translation>Mädschig Schmohg brauchd &apos;nen Namen für diesen Gombjuder. Desweschen isser beleidschd. Beim nächsden Schdard mussde ihn eingäben. </translation>
     </message>
@@ -281,20 +391,43 @@ At least %1 Bits of random are required.</source>
 <context>
     <name>initprofile</name>
     <message>
-        <location filename="main.cpp" line="96"/>
+        <location filename="main.cpp" line="112"/>
         <source>default</source>
         <comment>initial profile</comment>
         <translation>Schdandardbrofiel</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="97"/>
+        <location filename="main.cpp" line="113"/>
         <source>Create Initial Profile</source>
         <translation>Erschdes Brofiel anlechen</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="97"/>
+        <location filename="main.cpp" line="113"/>
         <source>You need a profile to work with Magic Smoke. Magic Smoke will now create one for you. Please enter the name you wish to give this profile.</source>
         <translation>Gugge, Du brauchsd sowas wie&apos;n Brofiel. Mädschig Schmohg iss nedd und machd eens für Disch. Desderweschen brauchsde jedsd nur noch n Namen dafür eindibben.</translation>
     </message>
 </context>
+<context>
+    <name>lang</name>
+    <message>
+        <location filename="main.cpp" line="51"/>
+        <source>Information</source>
+        <translation>Informadschion</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="51"/>
+        <source>The changed language setting will only be active after restarting the application.</source>
+        <translation>De Ändorung von dor Schbrache wird ersd wirgsam, wenn&apos;de das Brogramm neu geschdarded hasd. S&apos; is draurisch, aber wahr.</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="46"/>
+        <source>Chose Language</source>
+        <translation>Schbrache Aussuch&apos;n</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="46"/>
+        <source>Language:</source>
+        <translation>Schbrache:</translation>
+    </message>
+</context>
 </TS>