*first step towards server side translations
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Wed, 12 Aug 2009 20:12:02 +0000 (20:12 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Wed, 12 Aug 2009 20:12:02 +0000 (20:12 +0000)
*enabled blob type
*needs to be tested

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

13 files changed:
wob/basics.wolf
woc/phpout.cpp
woc/processor.cpp
woc/processor.h
woc/qtout.cpp
www/inc/machine/autoload.php
www/inc/machine/session.php
www/inc/machine/translation.php [new file with mode: 0644]
www/inc/wbase/transaction.php
www/translations/Makefile [new file with mode: 0644]
www/translations/server_de.ts [new file with mode: 0644]
www/translations/server_en.ts [new file with mode: 0644]
www/translations/unify.xsl [new file with mode: 0644]

index e1b31d0..b891a82 100644 (file)
                        <Var name="backup" type="string"/>
                </Output>
        </Transaction>
+       
+       <Transaction name="GetLanguage">
+               <Input>
+                       <Var name="language" type="astring"/>
+                       <Var name="format" type="astring"/>
+               </Input>
+               <Call lang="php" method="Translation::getFile($this);"/>
+               <Output>
+                       <Var name="file" type="blob"/>
+               </Output>
+       </Transaction>
 </Wolf>
index da91d02..1360a77 100644 (file)
@@ -386,7 +386,7 @@ QString WocPHPServerOut::classPropertyValidator(const WocClass&cls,QString prop)
        if(cls.propertyIsInt(prop))
                code+="\treturn is_numeric($value);\n";
        else
-       if(cls.propertyIsString(prop))
+       if(cls.propertyIsString(prop)||cls.propertyIsBlob(prop))
                code+="\treturn true;\n";//TODO: special handling for astring
        else
        if(cls.propertyIsBool(prop))
@@ -406,8 +406,14 @@ QString WocPHPServerOut::classPropertyValidator(const WocClass&cls,QString prop)
 QString WocPHPServerOut::classPropertyListGetters(const WocClass&cls,QString prop)
 {
        QString code;
-       if(cls.propertyIsString(prop))code+="public function getstrlist_"+prop+"(){return $this->prop_"+prop+";}\n";
+       if(cls.propertyIsString(prop))
+               code+="public function getstrlist_"+prop+"(){return $this->prop_"+prop+";}\n";
        else
+       if(cls.propertyIsBlob(prop)){
+               code+="public function getstrlist_"+prop+"(){\n\t$ret=array();\n";
+               code+="\tforeach($this->prop_"+prop+" as $p)$ret[]=base64_encode($this->prop_"+prop+");";
+               code+="\treturn $ret;\n}\n";
+       }else
        if(cls.propertyIsInt(prop)){
                code+="public function getstrlist_"+prop+"(){\n";
                code+="\t$ret=array();\n\tforeach($this->prop_"+prop+" as $p)$ret[]=\"\".$p;\n";
@@ -483,7 +489,7 @@ QString WocPHPServerOut::classPropertyListSetters(const WocClass&cls,QString pro
                acode+="\tif(is_bool($value)){\n";
                acode+="\t\t$this->prop_"+prop+"=$value!=false;\n\t\treturn true;\n\t}else return false;\n";
        }else
-       if(cls.propertyIsString(prop)){
+       if(cls.propertyIsString(prop)||cls.propertyIsBlob(prop)){
                code+="\t$prop=array();\n\tforeach($values as $value)$prop[]=\"\".$value;\n";
                code+="\t$this->prop_"+prop+"=$prop;\n\treturn true;\n";
                //TODO: special handling for astring
@@ -513,11 +519,17 @@ QString WocPHPServerOut::classPropertyListSetters(const WocClass&cls,QString pro
 QString WocPHPServerOut::classPropertyScalarGetters(const WocClass&cls,QString prop)
 {
        QString code;
-       if(cls.propertyIsString(prop))code+="public function getstr_"+prop+"(){return $this->prop_"+prop+";}\n";
+       if(cls.propertyIsString(prop))
+               code+="public function getstr_"+prop+"(){return $this->prop_"+prop+";}\n";
+       else
+       if(cls.propertyIsBlob(prop))
+               code+="public function getstr_"+prop+"(){return base64_encode($this->prop_"+prop+");}\n";
        else
-       if(cls.propertyIsInt(prop))code+="public function getstr_"+prop+"(){return \"\".$this->prop_"+prop+";}\n";
+       if(cls.propertyIsInt(prop))
+               code+="public function getstr_"+prop+"(){return \"\".$this->prop_"+prop+";}\n";
        else
-       if(cls.propertyIsBool(prop))code+="public function getstr_"+prop+"(){return $this->prop_"+prop+"?\"yes\":\"no\";}\n";
+       if(cls.propertyIsBool(prop))
+               code+="public function getstr_"+prop+"(){return $this->prop_"+prop+"?\"yes\":\"no\";}\n";
        else
        if(cls.propertyIsEnum(prop)){
                code+="public function getstr_"+prop+"(){\n\tswitch($this->prop_"+prop+"){\n";
@@ -560,9 +572,10 @@ QString WocPHPServerOut::classPropertyScalarSetters(const WocClass&cls,QString p
                code+="\tif($value==\"no\")$this->prop_"+prop+"=false;\n\telse return false;\n";
                code+="\treturn true;\n";
        }else
-       if(cls.propertyIsString(prop))
+       if(cls.propertyIsString(prop)||cls.propertyIsBlob(prop))
                code+="\t$this->prop_"+prop+"=\"\".$value;\n\treturn true;\n";
                //TODO: special handling for astring
+               //TODO: do something about Blob
        else
        if(cls.propertyIsObject(prop)){
                code+="\tif(is_a($value,\"WO"+cls.propertyPlainType(prop)+"\")){\n";
@@ -612,6 +625,8 @@ QString WocPHPServerOut::classDeserializers(const WocClass&cls,QString cn)
                        code+="\tforeach($elem->elementsByTagName(\""+k[i]+"\") as $el){\n";
                        if(cls.propertyIsObject(k[i])){
                                code+="\t\t$data[\""+k[i]+"\"][]=WO"+cls.propertyPlainType(k[i])+"::fromXml($xml,$el);\n";
+                       }else if(cls.propertyIsBlob(k[i])){
+                               code+="\t\t$data[\""+k[i]+"\"][]=base64_decode($el->textContent);\n";
                        }else{
                                code+="\t\t$data[\""+k[i]+"\"][]=$el->textContent;\n";
                        }
@@ -627,12 +642,15 @@ QString WocPHPServerOut::classDeserializers(const WocClass&cls,QString cn)
                                code+="\t\t$data[\""+k[i]+"\"]=$elem->getAttribute(\""+k[i]+"\");\n";
                        }else{
                                code+="\tforeach($elem->elementsByTagName(\""+k[i]+"\") as $el){\n";
-                               code+="\t\t$data[\""+k[i]+"\"]=$elem->textContent;\n";
+                               if(cls.propertyIsBlob(k[i]))
+                                       code+="\t\t$data[\""+k[i]+"\"]=base64_decode($elem->textContent);\n";
+                               else
+                                       code+="\t\t$data[\""+k[i]+"\"]=$elem->textContent;\n";
                                code+="\t}\n";
                        }
                }
        }
-       //TODO: use setters
+       //TODO: use setters (be careful with blob)
        code+="\treturn new "+cn+"($data);\n}\n";
        return code;
 }
@@ -832,6 +850,8 @@ QString WocPHPServerOut::trnInput(const WocTransaction&trn)
                                code+="\t\tforeach($root->getElementsByTagName(\""+sl[i]+"\") as $el){\n";
                                if(trn.isObjectType(t)){
                                        code+="\t\t\t$this->ainput[\""+sl[i]+"\"][]=WO"+pt+"::fromXml($xml,$el);\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\t\t$this->ainput[\""+sl[i]+"\"][]=base64_decode($el->textContent);\n";
                                }else{
                                        code+="\t\t\t$this->ainput[\""+sl[i]+"\"][]=$el->textContent";
                                        if(trn.isIntType(t))code+="+0";
@@ -843,6 +863,8 @@ QString WocPHPServerOut::trnInput(const WocTransaction&trn)
                                code+="\t\tforeach($root->getElementsByTagName(\""+sl[i]+"\") as $el){\n";
                                if(trn.isObjectType(t)){
                                        code+="\t\t\t$this->ainput[\""+sl[i]+"\"]=WO"+t+"::fromXml($xml,$el);\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\t\t$this->ainput[\""+sl[i]+"\"]=base64_decode($el->textContent);\n";
                                }else{
                                        code+="\t\t\t$this->ainput[\""+sl[i]+"\"]=$el->textContent";
                                        if(trn.isIntType(t))code+="+0";
@@ -873,6 +895,9 @@ QString WocPHPServerOut::trnOutput(const WocTransaction&trn)
                                        code+="\t\tforeach($this->aoutput[\""+sl[i]+"\"] as $o)\n";
                                        code+="\t\t\tif(is_a($o,\"WO"+trn.plainType(t)+"\"))\n";
                                        code+="\t\t\t\t$root->appendChild($o->toXml"+trn.typeSerializer(t)+"($xml,\""+sl[i]+"\"));\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\tforeach($this->aoutput[\""+sl[i]+"\"] as $v)\n";
+                                       code+="\t\t\t$root->appendChild($xml->createElement(\""+sl[i]+"\",base64_encode($v)));\n";
                                }else{
                                        code+="\t\tforeach($this->aoutput[\""+sl[i]+"\"] as $v)\n";
                                        code+="\t\t\t$root->appendChild($xml->createElement(\""+sl[i]+"\",xq($v)));\n";
@@ -882,6 +907,8 @@ QString WocPHPServerOut::trnOutput(const WocTransaction&trn)
                                        code+="\t\t$o=$this->aoutput[\""+sl[i]+"\"];\n";
                                        code+="\t\tif(is_a($o,\"WO"+trn.plainType(t)+"\"))\n";
                                        code+="\t\t\t$root->appendChild($o->toXml"+trn.typeSerializer(t)+"($xml,\""+sl[i]+"\"));\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\t$root->appendChild($xml->createElement(\""+sl[i]+"\",base64_encode($this->aoutput[\""+sl[i]+"\"])));\n";
                                }else{
                                        code+="\t\t$root->appendChild($xml->createElement(\""+sl[i]+"\",xq($this->aoutput[\""+sl[i]+"\"])));\n";
                                }
@@ -935,7 +962,7 @@ QString WocPHPServerOut::trnGetSet(const WocTransaction&trn)
                        if(trn.isIntType(t)){
                                code+="\tif(is_numeric($v))$this->aoutput[\""+sl[i]+"\"]=$v+0;\n";
                        }else
-                       if(trn.isIntType(t)){
+                       if(trn.isBoolType(t)){
                                code+="\tif(is_bool($v))$this->aoutput[\""+sl[i]+"\"]=$v!=false;\n";
                        }else
                        if(trn.isObjectType(t)){
index 5cae36e..877d8c5 100644 (file)
@@ -489,7 +489,7 @@ bool WocClass::propertyIsAttribute(QString p)const
        return false;
 }
 
-const QStringList WocClass::elemtypes=QStringList()<<"string";
+const QStringList WocClass::elemtypes=QStringList()<<"string"<<"blob";
 bool WocClass::propertyIsElement(QString p)const
 {
        QString t=propertyPlainType(p);
index 57524ad..48369f7 100644 (file)
@@ -77,6 +77,8 @@ class WocClass
                bool propertyIsBool(QString p)const{return propertyPlainType(p)=="bool";}
                /**returns whether the property type is string*/
                bool propertyIsString(QString p)const{QString pt=propertyPlainType(p);return pt=="string"||pt=="astring";}
+               /**returns whether the property type is blob*/
+               bool propertyIsBlob(QString p)const{QString pt=propertyPlainType(p);return pt=="blob";}
                
                /**returns whether the class is abstract (needs to be customized); it is automatically abstract if any property is abstract*/
                bool isAbstract()const;
@@ -253,12 +255,14 @@ class WocTransaction
                bool isBoolType(QString t)const{return plainType(t)=="bool";}
                /**returns true if the type is a string*/
                bool isStringType(QString t)const{QString p=plainType(t);return p=="astring"||p=="string";}
+               /**returns true if the type is a blob*/
+               bool isBlobType(QString t)const{QString p=plainType(t);return p=="blob";}
                /**returns true if the type is to be encoded as attribute*/
                bool isAttributeType(QString t)const{return t=="astring"||t=="int"||t=="int32"||t=="int64"||t=="bool";}
                /**returns true if the type is to be encoded as element*/
                bool isElementType(QString t)const{return !isAttributeType(t);}
                /**return true if the type is an object type*/
-               bool isObjectType(QString t)const{QString p=plainType(t);return p!="astring"&&p!="string"&&p!="int"&&p!="int32"&&p!="int64"&&p!="bool";}
+               bool isObjectType(QString t)const{QString p=plainType(t);return p!="astring"&&p!="string"&&p!="int"&&p!="int32"&&p!="int64"&&p!="bool"&&p!="blob";}
        private:
                QString m_name;
                bool m_valid;
index c6047b6..7e1b027 100644 (file)
@@ -242,6 +242,7 @@ QString WocQtClientOut::qttype(const WocClass&cls,QString p,bool dolist)
        if(cls.propertyIsString(p))r+="QString";else
        if(cls.propertyIsInt(p))r+="qint64";else
        if(cls.propertyIsBool(p))r+="bool";else
+       if(cls.propertyIsBlob(p))r+="QByteArray";else
        if(cls.propertyIsObject(p))r+=m_prefix+"O"+cls.propertyPlainType(p);
        else r+=cls.propertyPlainType(p);
        r+=">";
@@ -288,6 +289,9 @@ void WocQtClientOut::classDeserializer(const WocClass&cls,QFile&hdr,QFile&src,QS
                        if(cls.propertyIsString(k[i])){
                                scd+="\t\tadd"+k[i]+"(el.text());\n";
                        }else
+                       if(cls.propertyIsBlob(k[i])){
+                               scd+="\t\tadd"+k[i]+"(QByteArray::fromBase64(el.text().toAscii()));\n";
+                       }else
                        if(cls.propertyIsEnum(k[i])){
                                scd+="\t\tbool b;\n";
                                QString pt=cls.propertyPlainType(k[i]);
@@ -340,6 +344,9 @@ void WocQtClientOut::classDeserializer(const WocClass&cls,QFile&hdr,QFile&src,QS
                                if(cls.propertyIsString(k[i])){
                                        scd+="\t\tset"+k[i]+"(nl.at(0).toElement().text());\n";
                                }else
+                               if(cls.propertyIsBlob(k[i])){
+                                       scd+="\t\tset"+k[i]+"(QByteArray::fromBase64(nl.at(0).toElement().text().toAscii()));\n";
+                               }else
                                if(cls.propertyIsObject(k[i])){
                                        scd+="\t\tset"+k[i]+"("+m_prefix+"O"+cls.propertyPlainType(k[i])+"(nl.at(0).toElement()));\n";
                                }else{
@@ -402,6 +409,11 @@ void WocQtClientOut::classSerializers(const WocClass&cls,QFile&hdr,QFile&src,QSt
                                scd+="\t\tel.appendChild(doc.createTextNode(mp_"+prop+"[i]?\"yes\":\"no\"));\n";
                                scd+="\t\tr.appendChild(el);\n";
                        }else
+                       if(cls.propertyIsBlob(prop)){
+                               scd+="\t\tQDomElement el=doc.createElement(\""+prop+"\");\n";
+                               scd+="\t\tel.appendChild(doc.createTextNode(mp_"+prop+"[i].toBase64()));\n";
+                               scd+="\t\tr.appendChild(el);\n";
+                       }else
                        if(cls.propertyIsInt(prop)){
                                scd+="\t\tQDomElement el=doc.createElement(\""+prop+"\");\n";
                                scd+="\t\tel.appendChild(doc.createTextNode(QString::number(mp_"+prop+"[i])));\n";
@@ -428,6 +440,11 @@ void WocQtClientOut::classSerializers(const WocClass&cls,QFile&hdr,QFile&src,QSt
                                        scd+="\t\tQDomElement el=doc.createElement(\""+prop+"\");\n";
                                        scd+="\t\tel.appendChild(doc.createTextNode(mp_"+prop+"));\n";
                                        scd+="\t\tr.appendChild(el);\n";
+                               }else
+                               if(cls.propertyIsBlob(prop)){
+                                       scd+="\t\tQDomElement el=doc.createElement(\""+prop+"\");\n";
+                                       scd+="\t\tel.appendChild(doc.createTextNode(mp_"+prop+".toBase64()));\n";
+                                       scd+="\t\tr.appendChild(el);\n";
                                }else{
                                        qDebug("Error: cannot generate serializer for class %s property %s.",cls.name().toAscii().data(),prop.toAscii().data());
                                        emit errorFound();
@@ -598,6 +615,9 @@ QString WocQtClientOut::trnInput(const WocTransaction&trn)
                                        if(trn.isBoolType(t))
                                                code+="in_"+sl[i]+"[i]?\"yes\":\"no\"";
                                        else
+                                       if(trn.isBlobType(t))
+                                               code+="in_"+sl[i]+".toBase64()";
+                                       else
                                                code+="in_"+sl[i]+"[i]";
                                        code+="));\n";
                                }
@@ -612,6 +632,9 @@ QString WocQtClientOut::trnInput(const WocTransaction&trn)
                                        if(trn.isIntType(t))
                                                code+="QString::number(in_"+sl[i]+")";
                                        else
+                                       if(trn.isBlobType(t))
+                                               code+="in_"+sl[i]+".toBase64()";
+                                       else
                                                code+="in_"+sl[i];
                                        code+="));\n\troot.appendChild(tmp);\n";
                                }
@@ -659,6 +682,8 @@ QString WocQtClientOut::trnOutput(const WocTransaction&trn)
                                        code+="\t\tout_"+sl[i]+".append(nl.at(i).toElement().text().toInt());\n";
                                }else if(trn.isBoolType(t)){
                                        code+="\t\tout_"+sl[i]+".append(nl.at(i).toElement().text()==\"yes\");\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\tout_"+sl[i]+".append(QByteArray::fromBase64(nl.at(i).toElement().text().toAscii()));\n";
                                }else{//can only be string
                                        code+="\t\tout_"+sl[i]+".append(nl.at(i).toElement().text());\n";
                                }
@@ -667,6 +692,8 @@ QString WocQtClientOut::trnOutput(const WocTransaction&trn)
                                code+="\tif(nl.size()>0){\n";
                                if(trn.isObjectType(t)){
                                        code+="\t\ttry{out_"+sl[i]+"="+qtobjtype(trn,sl[i],Out)+"(nl.at(0).toElement());}catch(WException e){m_stage=Error;m_errtype=e.component();m_errstr=e.error();}\n";
+                               }else if(trn.isBlobType(t)){
+                                       code+="\t\tout_"+sl[i]+"=QByteArray::fromBase64(nl.at(0).toElement().text().toAscii());\n";
                                }else{//can only be string
                                        code+="\t\tout_"+sl[i]+"=nl.at(0).toElement().text();\n";
                                }
@@ -728,6 +755,7 @@ QString WocQtClientOut::qttype(const WocTransaction&trn,QString v,InOut io)
                }
        if(tp=="astring" || tp=="string")r+="QString";else
        if(tp=="int"||tp=="int32"||tp=="int64")r+="qint64";else
+       if(tp=="blob")r+="QByteArray";else
        if(tp=="bool")r+="bool";
        else r+=m_prefix+"O"+tp.split("/",QString::SkipEmptyParts).at(0);
        r+=e;r+=" ";
@@ -739,8 +767,10 @@ QString WocQtClientOut::qtobjtype(const WocTransaction&trn,QString v,InOut io)
        QString tp=io==In?trn.inputType(v):trn.outputType(v);
        if(tp.startsWith("List:"))
                tp=tp.mid(5);
-       if(tp=="astring" || tp=="string"||tp=="int"||tp=="int32"||tp=="int64")return "";
-       else return m_prefix+"O"+tp;
+       if(tp=="astring" || tp=="string" || tp=="int" || tp=="int32" || tp=="int64" || tp=="bool" || tp=="blob")
+               return "";
+       else
+               return m_prefix+"O"+tp;
 }
 
 void WocQtClientOut::addFile(QString bn)
index 159ef15..441eb97 100644 (file)
@@ -15,4 +15,5 @@ $AUTOCLASS["Session"]="./inc/machine/session.php";
 $AUTOCLASS["Host"]="./inc/machine/host.php";
 $AUTOCLASS["Template"]="./inc/machine/template.php";
 $AUTOCLASS["Version"]="./inc/machine/version.php";
+$AUTOCLASS["Translation"]="./inc/machine/translation.php";
 ?>
\ No newline at end of file
index 6281986..218cae2 100644 (file)
@@ -79,39 +79,39 @@ class Session
                        $hosts[]=$hst["host"];
                //logic check 1: abort if host is unknown
                if(count($hres)==0){
-                       $trans->abortWithError("auth",translate("php::","Unknown Host"));
+                       $trans->abortWithError(translate("php::","Unknown Host"),"auth");
                }
                //logic check: login is allowed if
                // a) $hosts contains _any and the host is known, or
                // b) $hosts contains the transmitted host name
                $hostname=$trans->gethostname();
                if( !in_array($hostname,$hosts) && !in_array("_any",$hosts)){
-                       $trans->abortWithError("auth",translate("php::","Host/User combination not allowed"));
+                       $trans->abortWithError(translate("php::","Host/User combination not allowed"),"auth");
                }
                
                //validate host
                $splt=explode(" ",$hres[0]["hostkey"]);
                if(count($splt)!=2){
-                       $trans->abortWithError("auth",translate("php::","Host authentication failed"));
+                       $trans->abortWithError(translate("php::","Host authentication failed"),"auth");
                }
                $cmp=strtolower(sha1($splt[0].$trans->gethostkey()));
                if($cmp != strtolower($splt[1])){
-                       $trans->abortWithError("auth",translate("php::","Host authentication failed"));
+                       $trans->abortWithError(translate("php::","Host authentication failed"),"auth");
                }
                
                //get user data
                $ures=$db->select("user","*","uname=".$db->escapeString($trans->getusername()));
                if(count($ures)<1){
-                       $trans->abortWithError("auth",translate("php::","User Authentication failed--"));
+                       $trans->abortWithError(translate("php::","User Authentication failed"),"auth");
                }
                //validate user
                $splt=explode(" ",$ures[0]["passwd"]);
                if(count($splt)!=2){
-                       $trans->abortWithError("auth",translate("php::","User Authentication failed-"));
+                       $trans->abortWithError(translate("php::","User Authentication failed"),"auth");
                }
                $cmp=strtolower(sha1($splt[0].$trans->getpassword()));
                if($cmp!=strtolower($splt[1])){
-                       $trans->abortWithError("auth",translate("php::","User Authentication failed"));
+                       $trans->abortWithError(translate("php::","User Authentication failed"),"auth");
                }
                
                //create session and return
diff --git a/www/inc/machine/translation.php b/www/inc/machine/translation.php
new file mode 100644 (file)
index 0000000..3ac6699
--- /dev/null
@@ -0,0 +1,28 @@
+<?
+//
+// PHP Implementation: translation
+//
+// Description: translation file retrieval
+//
+//
+// Author: Konrad Rosenbaum <konrad@silmor.de>, (C) 2009
+//
+// Copyright: See README/COPYING files that come with this distribution
+//
+//
+
+class Translation
+{
+ static public function getFile($trans)
+ {
+       $name=$trans->getlanguage();
+       $form=$trans->getformat();
+       if($form!="ts" && $form!="qm")$trans->abortWithError(tr("Format must be either 'ts' or 'qm'."));
+       if(!ereg("^[a-z]{1,3}$",$name))$trans->abortWithError(tr("Language invalid."));
+       $fn="translations/_server".$name.".".$form;
+       if(!file_exists($fn))$trans->abortWithError(tr("Language unknown."));
+       $trans->setfile(file_get_contents($fn,FILE_BINARY));
+ }
+};
+
+?>
\ No newline at end of file
index 3dd1365..8c34a1f 100644 (file)
@@ -69,9 +69,11 @@ class WobTransactionBase {
                exit();
        }
        
-       /**called to abort a transactions flow*/
-       public function abortWithError($type,$text=""){
-               if($text==""){$text=$type;$type="server";}
+       /**called to abort a transactions flow
+       \param $type \b optional defines the source of the error (should be only one word, defaults to "server")
+       \param $text the human readable text returned to the client
+       */
+       public function abortWithError($text,$type="server"){
                header("X-WobResponse-Status: Error");
                print("<WobResponse status=\"error\"><Error type=\"".xq($type)."\">".xq($text)."</Error></WobResponse>\n");
                exit();
diff --git a/www/translations/Makefile b/www/translations/Makefile
new file mode 100644 (file)
index 0000000..5e99476
--- /dev/null
@@ -0,0 +1,20 @@
+LUP=lupdate
+LRL=lrelease
+#XPT=xmlpatterns
+XPT=xsltproc
+
+all:
+       @echo Please chose a target: lupdate lrelease
+
+lupdate:
+       $(LUP) -extensions php .. -ts server_*.ts
+
+lrelease:
+       echo 'TRANSLATIONS=\' >server.pro
+       for i in server_*.ts ; do \
+               $(XPT) unify.xsl $$i > _$$i ; \
+               echo _$$i '\' >>server.pro ; \
+       done
+       $(LRL) server.pro
+
+.PHONY: all lupdate lrelease
\ No newline at end of file
diff --git a/www/translations/server_de.ts b/www/translations/server_de.ts
new file mode 100644 (file)
index 0000000..217d796
--- /dev/null
@@ -0,0 +1,4343 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1" language="de">
+<context>
+    <name>MBackupDialog</name>
+    <message>
+        <location filename="overview.cpp" line="1591"/>
+        <source>Backup Settings</source>
+        <translation type="obsolete">Einstellungen Sicherungskopie</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1596"/>
+        <source>Backup File:</source>
+        <translation type="obsolete">Sicherungskopie Datei:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1598"/>
+        <source>...</source>
+        <translation type="obsolete">...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1601"/>
+        <source>Generations to keep:</source>
+        <translation type="obsolete">Anzahl Generationen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1606"/>
+        <source>Automatic Backup:</source>
+        <translation type="obsolete">Automatische Sicherung:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1610"/>
+        <source>Interval in days:</source>
+        <translation type="obsolete">Intervall in Tagen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1618"/>
+        <source>&amp;OK</source>
+        <translation type="obsolete">&amp;Ok</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1621"/>
+        <source>&amp;Cancel</source>
+        <translation type="obsolete">&amp;Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1627"/>
+        <source>Backup File</source>
+        <translation type="obsolete">Sicherungsdatei</translation>
+    </message>
+</context>
+<context>
+    <name>MCentDialog</name>
+    <message>
+        <location filename="centbox.cpp" line="105"/>
+        <source>OK</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="centbox.cpp" line="108"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+</context>
+<context>
+    <name>MCheckDialog</name>
+    <message>
+        <location filename="checkdlg.cpp" line="33"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="checkdlg.cpp" line="35"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+</context>
+<context>
+    <name>MCustomerDialog</name>
+    <message>
+        <location filename="customer.cpp" line="374"/>
+        <source>Customer %1</source>
+        <translation type="obsolete">Kunde %1</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="376"/>
+        <source>New Customer</source>
+        <translation type="obsolete">Neuer Kunde</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="382"/>
+        <source>Name:</source>
+        <translation type="obsolete">Name:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="384"/>
+        <source>Address:</source>
+        <translation type="obsolete">Rechnungsadresse:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="387"/>
+        <source>Contact Information:</source>
+        <translation type="obsolete">Kontaktinformationen:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="391"/>
+        <source>Web-Login/eMail:</source>
+        <translation type="obsolete">Web-Login/eMail:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="394"/>
+        <source>Comment:</source>
+        <translation type="obsolete">Kommentar:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="402"/>
+        <source>Save</source>
+        <translation type="obsolete">Speichern</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="405"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+</context>
+<context>
+    <name>MCustomerListDialog</name>
+    <message>
+        <location filename="customer.cpp" line="201"/>
+        <source>Select a Customer</source>
+        <translation type="obsolete">Kunde auswählen</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="203"/>
+        <source>Customers</source>
+        <translation type="obsolete">Kunden</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="224"/>
+        <source>Details...</source>
+        <translation type="obsolete">Details...</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="226"/>
+        <source>Create new...</source>
+        <translation type="obsolete">Neu...</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="229"/>
+        <source>Delete...</source>
+        <translation type="obsolete">Löschen...</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="237"/>
+        <source>Select</source>
+        <translation type="obsolete">Auswählen</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="240"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="243"/>
+        <source>Close</source>
+        <translation type="obsolete">Schließen</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="324"/>
+        <source>Delete Customer</source>
+        <translation type="obsolete">Kunden Löschen</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="327"/>
+        <source>Really delete this customer (%1)?</source>
+        <translation type="obsolete">Diesen Kunden (%1) wirklich löschen?</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="330"/>
+        <source>merge with other entry:</source>
+        <translation type="obsolete">mit anderem Eintrag vereinen:</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="342"/>
+        <source>&amp;Yes</source>
+        <translation type="obsolete">&amp;Ja</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="344"/>
+        <source>&amp;No</source>
+        <translation type="obsolete">&amp;Nein</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="360"/>
+        <source>Error</source>
+        <translation type="obsolete">Fehler</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="356"/>
+        <source>Failed to delete customer.</source>
+        <translation type="obsolete">Kann Kunden nicht löschen.</translation>
+    </message>
+    <message>
+        <location filename="customer.cpp" line="360"/>
+        <source>Failed to delete customer: %1</source>
+        <translation type="obsolete">Kann Kunden nicht löschen: %1</translation>
+    </message>
+</context>
+<context>
+    <name>MEvent</name>
+    <message>
+        <location filename="event.cpp" line="186"/>
+        <source>Event is not complete, cannot save.</source>
+        <translation type="obsolete">Veranstaltung ist nicht komplett. Kann nicht speichern.</translation>
+    </message>
+    <message>
+        <location filename="event.cpp" line="231"/>
+        <source>[0-9]+\.[0-9]{2}</source>
+        <comment>price validator regexp</comment>
+        <translation type="obsolete">[0-9]+,[0-9]{2}</translation>
+    </message>
+    <message>
+        <location filename="event.cpp" line="254"/>
+        <source>.</source>
+        <comment>price decimal dot</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+    <message>
+        <location filename="event.cpp" line="273"/>
+        <source>yyyy-MM-dd hh:mm ap</source>
+        <comment>date/time format</comment>
+        <translation type="obsolete">ddd, d.M.yyyy hh:mm</translation>
+    </message>
+    <message>
+        <location filename="event.cpp" line="268"/>
+        <source>yyyy-MM-dd</source>
+        <comment>date format</comment>
+        <translation type="obsolete">d.M.yyyy</translation>
+    </message>
+</context>
+<context>
+    <name>MEventEditor</name>
+    <message>
+        <location filename="eventedit.cpp" line="40"/>
+        <source>Event Editor</source>
+        <translation type="obsolete">Veranstaltungseditor</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="58"/>
+        <source>Title:</source>
+        <translation type="obsolete">Titel:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="63"/>
+        <source>Artist:</source>
+        <translation type="obsolete">Künstler:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="68"/>
+        <source>Description:</source>
+        <translation type="obsolete">Beschreibung:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="73"/>
+        <source>Start Time:</source>
+        <translation type="obsolete">Startzeit:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="84"/>
+        <source>ddd MMMM d yyyy, h:mm ap</source>
+        <comment>time format</comment>
+        <translation type="obsolete">ddd, d.M.yyyy hh:mm</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="81"/>
+        <source>End Time:</source>
+        <translation type="obsolete">Endzeit:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="89"/>
+        <source>Room/Place:</source>
+        <translation type="obsolete">Raum/Ort:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="98"/>
+        <source>Capacity:</source>
+        <translation type="obsolete">Sitzplätze:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="104"/>
+        <source>Default Price:</source>
+        <translation type="obsolete">Kartenpreis:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="110"/>
+        <source>Event Cancelled:</source>
+        <translation type="obsolete">Veranstaltung absagen:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="122"/>
+        <source>Save</source>
+        <translation type="obsolete">Speichern</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="170"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="145"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="34"/>
+        <source>Unable to load event from server.</source>
+        <translation type="obsolete">Veranstaltung kann nicht vom Server geladen werden.</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="145"/>
+        <source>Problem while uploading event: %s</source>
+        <translation type="obsolete">Problem beim anlegen der Veranstaltung: %s</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="154"/>
+        <source>Select a Room</source>
+        <translation type="obsolete">Raum auswählen</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="165"/>
+        <source>New...</source>
+        <comment>new room</comment>
+        <translation type="obsolete">Neu...</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="168"/>
+        <source>Select</source>
+        <comment>select room</comment>
+        <translation type="obsolete">Auswählen</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="181"/>
+        <source>New Room</source>
+        <translation type="obsolete">Neuer Raum</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="181"/>
+        <source>Name of new room:</source>
+        <translation type="obsolete">Name des Raumes:</translation>
+    </message>
+    <message>
+        <location filename="eventedit.cpp" line="53"/>
+        <source>ID:</source>
+        <translation type="obsolete">ID:</translation>
+    </message>
+</context>
+<context>
+    <name>MEventSummary</name>
+    <message>
+        <location filename="eventsummary.cpp" line="38"/>
+        <source>Summary for Event %1</source>
+        <translation type="obsolete">Ãœbersicht zu Veranstaltung %1</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="48"/>
+        <source>Title:</source>
+        <translation type="obsolete">Titel:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="50"/>
+        <source>Artist:</source>
+        <translation type="obsolete">Künstler:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="52"/>
+        <source>Start:</source>
+        <translation type="obsolete">Beginn:</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>yyyy-MM-dd hh:mm ap</source>
+        <comment>Date+Time format for displaying event start time</comment>
+        <translation type="obsolete">ddd, d.M.yyyy hh:mm</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="54"/>
+        <source>Capacity:</source>
+        <translation type="obsolete">Sitzplätze:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="56"/>
+        <source>Tickets currently reserved:</source>
+        <translation type="obsolete">Momentan reservierte Karten:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="58"/>
+        <source>Tickets currently cancelled:</source>
+        <translation type="obsolete">Momentan abgesagte Karten:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="60"/>
+        <source>Tickets currently usable:</source>
+        <translation type="obsolete">Momentan nutzbare Karten:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="62"/>
+        <source>Total Income:</source>
+        <translation type="obsolete">erwarteter Umsatz:</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>.</source>
+        <comment>decimal dot</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="72"/>
+        <source>Price</source>
+        <translation type="obsolete">Preis</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="72"/>
+        <source>Bought</source>
+        <translation type="obsolete">Gekauft</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="72"/>
+        <source>Used</source>
+        <translation type="obsolete">Benutzt</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="72"/>
+        <source>Unused</source>
+        <translation type="obsolete">Unbenutzt</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="101"/>
+        <source>Print</source>
+        <translation type="obsolete">Drucken</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="103"/>
+        <source>Save as...</source>
+        <translation type="obsolete">Speichern unter...</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="106"/>
+        <source>Close</source>
+        <translation type="obsolete">Schließen</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="186"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Unable to get template file (eventsummary.odtt). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (eventsummary.odtt) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="44"/>
+        <source>Summary</source>
+        <translation type="obsolete">Zusammenfassung</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="67"/>
+        <source>Tickets</source>
+        <translation type="obsolete">Karten</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="83"/>
+        <source>Comments</source>
+        <translation type="obsolete">Kommentare</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="89"/>
+        <source>Order: </source>
+        <translation type="obsolete">Bestellung:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="91"/>
+        <source>Customer: </source>
+        <translation type="obsolete">Kunde:</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="186"/>
+        <source>Unable to get template file (eventsummary). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (eventsummary) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="eventsummary.cpp" line="193"/>
+        <source>Open Document File (*.%1)</source>
+        <translation type="obsolete">ODF Datei (*.%1)</translation>
+    </message>
+</context>
+<context>
+    <name>MKeyGen</name>
+    <message numerus="yes">
+        <location filename="keygen.cpp" line="88"/>
+        <source>Current random buffer: %n Bits</source>
+        <translation type="obsolete">
+            <numerusform>Aktueller Zufallspuffer: %n Bit</numerusform>
+            <numerusform>Aktueller Zufallspuffer: %n Bits</numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="keygen.cpp" line="42"/>
+        <source>Magic Smoke Key Generator</source>
+        <translation type="obsolete">Magic Smoke Schlüsselgenerator</translation>
+    </message>
+    <message>
+        <location filename="keygen.cpp" line="53"/>
+        <source>&lt;html&gt;&lt;h1&gt;Key Generation&lt;/h1&gt;
+I am currently collecting random bits in order to generate a host key for this installation. Please use mouse and keyboard to generate more random. Alternatively you can load a key from an external medium.&lt;p&gt;
+At least %1 Bits of random are required.</source>
+        <translation type="obsolete">&lt;html&gt;&lt;h1&gt;Schlüsselgenerierung&lt;/h1&gt;Das Programm sammelt gerade Zufallsbits für diese Installation. Bitte benutzen Sie Maus und Tastatur, um mehr Zufall zu generieren. Alternativ können Sie auch einen fertigen Schlüssel von einem externen Medium laden.&lt;p&gt;Mindestens %1 Zufallsbits werden gebraucht.</translation>
+    </message>
+    <message>
+        <location filename="keygen.cpp" line="69"/>
+        <source>&amp;OK</source>
+        <translation type="obsolete">&amp;Ok</translation>
+    </message>
+    <message>
+        <location filename="keygen.cpp" line="71"/>
+        <source>&amp;Cancel</source>
+        <translation type="obsolete">&amp;Abbrechen</translation>
+    </message>
+</context>
+<context>
+    <name>MLabelDialog</name>
+    <message>
+        <location filename="labeldlg.cpp" line="40"/>
+        <source>Label Printing Setup</source>
+        <translation type="obsolete">Etikettendruck einrichten</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="49"/>
+        <source>mm</source>
+        <comment>defaultmetric: mm, in, cm</comment>
+        <translation type="obsolete">mm</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="75"/>
+        <source>Label offset:</source>
+        <translation type="obsolete">Seitenrand:</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="81"/>
+        <source>Label size:</source>
+        <translation type="obsolete">Etikettengröße:</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="87"/>
+        <source>Unit:</source>
+        <translation type="obsolete">Einheit:</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="89"/>
+        <source>Millimeter</source>
+        <translation type="obsolete">Millimeter</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="90"/>
+        <source>Centimeter</source>
+        <translation type="obsolete">Zentimeter</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="91"/>
+        <source>Inch</source>
+        <translation type="obsolete">Zoll</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="99"/>
+        <source>Page usage:</source>
+        <translation type="obsolete">Seitennutzung:</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="102"/>
+        <source>Page %1</source>
+        <translation type="obsolete">Seite %1</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="146"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="150"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="labeldlg.cpp" line="303"/>
+        <source>Warning: the label may not fit on the page!</source>
+        <translation type="obsolete">Warnung: der Aufkleber könnte größer als die eingestellte Seite sein!</translation>
+    </message>
+</context>
+<context>
+    <name>MMainWindow</name>
+    <message>
+        <location filename="mainwindow.cpp" line="66"/>
+        <source>Profile:</source>
+        <translation type="obsolete">Profil:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="70"/>
+        <source>Alternate Hostname:</source>
+        <translation type="obsolete">ALternativer Hostname:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="73"/>
+        <source>Server URL:</source>
+        <translation type="obsolete">Server-URL:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="76"/>
+        <source>Proxy:</source>
+        <translation type="obsolete">Proxy:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="97"/>
+        <source>Username:</source>
+        <translation type="obsolete">Benutzername:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="100"/>
+        <source>Password:</source>
+        <translation type="obsolete">Passwort:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="191"/>
+        <source>New Profile</source>
+        <translation type="obsolete">Neues Profil</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="191"/>
+        <source>Please enter a profile name. It must be non-empty and must not be used yet:</source>
+        <translation type="obsolete">Bitte geben Sie einen Profilnamen ein (mind. 1 Zeichen):</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="85"/>
+        <source>Proxy Username:</source>
+        <translation type="obsolete">Nutzername Proxy:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="88"/>
+        <source>Proxy Password:</source>
+        <translation type="obsolete">Passwort Proxy:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="322"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="216"/>
+        <source>Unable to log in. Error: %1</source>
+        <translation type="obsolete">Login fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="45"/>
+        <source>&amp;File</source>
+        <translation type="obsolete">&amp;Datei</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="46"/>
+        <source>&amp;New Profile...</source>
+        <translation type="obsolete">&amp;Neues Profil</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="47"/>
+        <source>&amp;Save Profile</source>
+        <translation type="obsolete">Profil &amp;speichern</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="49"/>
+        <source>&amp;Close Window</source>
+        <translation type="obsolete">&amp;Fenster schließen</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="50"/>
+        <source>&amp;Configure</source>
+        <translation type="obsolete">&amp;Konfigurieren</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="109"/>
+        <source>new Profile</source>
+        <translation type="obsolete">Neues Profil</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="111"/>
+        <source>save Profile</source>
+        <translation type="obsolete">Profil speichern</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="114"/>
+        <source>Login</source>
+        <translation type="obsolete">Login</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="51"/>
+        <source>&amp;Language...</source>
+        <translation type="obsolete">&amp;Sprache</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="53"/>
+        <source>&amp;Export Host Key...</source>
+        <translation type="obsolete">Hostkey &amp;exportieren...</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="54"/>
+        <source>&amp;Import Host Key...</source>
+        <translation type="obsolete">Hostkey &amp;importieren...</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="55"/>
+        <source>&amp;Generate Host Key...</source>
+        <translation type="obsolete">Hostkey &amp;generieren...</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="263"/>
+        <source>Export Key to File</source>
+        <translation type="obsolete">Key als Datei speichern</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="272"/>
+        <source>Unable to open file %1 for writing: %2</source>
+        <translation type="obsolete">Datei %1 kann zum Schreiben nicht geöffnet werden: %2</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="283"/>
+        <source>Importing a key overwrites the host key that is currently used by this program. This may disable your accounts. Do you still want to continue?</source>
+        <translation type="obsolete">Der Import eines Keys Ã¼berschreibt den aktuellen Key des Programms. Dies könnte Ihre Accounts unbenutzbar machen. Trotzdem fortfahren?</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="286"/>
+        <source>Import Key from File</source>
+        <translation type="obsolete">Key aus Datei importieren</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="295"/>
+        <source>Unable to open file %1 for reading: %2</source>
+        <translation type="obsolete">Datei %1 kann zum Lesen nicht geöffnet werden: %2</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="307"/>
+        <source>This is not a host key file.</source>
+        <translation type="obsolete">Dies ist keine Hostkeydatei.</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="317"/>
+        <source>This host key file does not contain a valid key.</source>
+        <translation type="obsolete">Diese Datei enthält keinen gültigen Hostkey.</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="322"/>
+        <source>The key check sum did not match. Please get a clean copy of the host key file.</source>
+        <translation type="obsolete">Die Checksumme dieser Datei ist fehlgeschlagen. Bitte besorgen Sie eine neue Kopie der Datei.</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="248"/>
+        <source>New Host Name</source>
+        <translation type="obsolete">Neuer Hostname</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="248"/>
+        <source>Please enter a name for the new host:</source>
+        <translation type="obsolete">Bitte geben Sie einen Hostnamen ein:</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="251"/>
+        <source>The host name must only consist of letters, digits and underscore. It must start with a letter.</source>
+        <translation type="obsolete">Der Hostname darf nur aus Buchstaben, Ziffern und Unterstrich bestehen.</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="312"/>
+        <source>This host key file does not contain a valid host name.</source>
+        <translation type="obsolete">Die Hostkeydatei enthält keinen gültigen Hostnamen.</translation>
+    </message>
+    <message>
+        <location filename="mainwindow.cpp" line="57"/>
+        <source>&amp;OpenOffice.org Settings...</source>
+        <translation type="obsolete">OpenOffice Einstellungen...</translation>
+    </message>
+</context>
+<context>
+    <name>MMoneyLog</name>
+    <message>
+        <location filename="moneylog.cpp" line="27"/>
+        <source>Money Log of %1 %2</source>
+        <translation type="obsolete">Geldtransfers von %1 %2</translation>
+    </message>
+    <message>
+        <location filename="moneylog.cpp" line="40"/>
+        <source>Close</source>
+        <translation type="obsolete">Schließen</translation>
+    </message>
+</context>
+<context>
+    <name>MOfficeConfig</name>
+    <message>
+        <location filename="office.cpp" line="102"/>
+        <source>Configure OpenOffice.org Access</source>
+        <translation type="obsolete">Zugriff auf OpenOffice Konfigurieren</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="112"/>
+        <source>OpenOffice.org</source>
+        <translation type="obsolete">OpenOffice.org</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="114"/>
+        <source>Path to Executable:</source>
+        <translation type="obsolete">Pfad zum Programm:</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="116"/>
+        <source>...</source>
+        <comment>select OpenOffice path button</comment>
+        <translation type="obsolete">...</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="119"/>
+        <source>Printing ODF</source>
+        <translation type="obsolete">ODF Drucken</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="122"/>
+        <source>Printer:</source>
+        <translation type="obsolete">Drucker:</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="125"/>
+        <source>(Default Printer)</source>
+        <translation type="obsolete">(Standarddrucker)</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="135"/>
+        <source>Always confirm printer when printing ODF</source>
+        <translation type="obsolete">Drucker bestägen, wenn ODF gedruckt wird.</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="137"/>
+        <source>Save printed files</source>
+        <translation type="obsolete">Gedruckte Dateien auch speichern</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="140"/>
+        <source>Opening ODF</source>
+        <translation type="obsolete">ODF Ã–ffnen</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="142"/>
+        <source>Always open as Read-Only</source>
+        <translation type="obsolete">Immer im Nur-Lese-Modus Ã¶ffnen</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="144"/>
+        <source>Automatically open all newly created files</source>
+        <translation type="obsolete">Alle neuen Dateien automatisch Ã¶ffnen</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="150"/>
+        <source>OK</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="153"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="173"/>
+        <source>Select OpenOffice.org executable</source>
+        <translation type="obsolete">OpenOffice.org Programm wählen</translation>
+    </message>
+</context>
+<context>
+    <name>MOrder</name>
+    <message>
+        <location filename="order.cpp" line="122"/>
+        <source>placed</source>
+        <comment>state</comment>
+        <translation type="obsolete">bestellt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="123"/>
+        <source>sent</source>
+        <comment>state</comment>
+        <translation type="obsolete">versandt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="124"/>
+        <source>cancelled</source>
+        <comment>state</comment>
+        <translation type="obsolete">storniert</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="125"/>
+        <source>closed</source>
+        <comment>state</comment>
+        <translation type="obsolete">geschlossen</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="127"/>
+        <source>check: ok</source>
+        <comment>state</comment>
+        <translation type="obsolete">Prüfung: ok</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="128"/>
+        <source>check: sale only</source>
+        <comment>state</comment>
+        <translation type="obsolete">Prüfung: nur verkaufen</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="129"/>
+        <source>check: order only</source>
+        <comment>state</comment>
+        <translation type="obsolete">Prüfung: nur bestellen</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="130"/>
+        <source>check: failed</source>
+        <comment>state</comment>
+        <translation type="obsolete">Prüfung: nicht möglich</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="131"/>
+        <source>invalid</source>
+        <comment>state</comment>
+        <translation type="obsolete">ungültig</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>.</source>
+        <comment>decimal dot</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="377"/>
+        <source>yyyy-MM-dd hh:mm ap</source>
+        <comment>date/time format</comment>
+        <translation type="obsolete">ddd, dd.MM.yyyy hh:mm &apos;Uhr&apos;</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="390"/>
+        <source>yyyy-MM-dd</source>
+        <comment>date format</comment>
+        <translation type="obsolete">d.M.yyyy</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="445"/>
+        <source>This ticket is not part of this order.</source>
+        <translation type="obsolete">Dieses Ticket ist in keiner Bestellung enthalten.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="531"/>
+        <source>Error</source>
+        <translation type="obsolete">Fehler</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="527"/>
+        <source>The request failed.</source>
+        <translation type="obsolete">Anfrage ist fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="531"/>
+        <source>A problem occurred during the order: %1</source>
+        <translation type="obsolete">Die Bestellung ist fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="126"/>
+        <source>reserved</source>
+        <comment>state</comment>
+        <translation type="obsolete">reserviert</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="454"/>
+        <source>Cannot query DB, don&apos;t know it.</source>
+        <translation type="obsolete">Interner Fehler: Kann die Datenbank nicht abfragen.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="466"/>
+        <source>Cannot update shipping: error while sending.</source>
+        <translation type="obsolete">Kann Versandinformationen nicht senden: Sendefehler.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="486"/>
+        <source>This voucher is not part of this order.</source>
+        <translation type="obsolete">Dieser Gutschein ist nicht Teil der Bestellung.</translation>
+    </message>
+</context>
+<context>
+    <name>MOrderItemView</name>
+    <message>
+        <location filename="orderwin.cpp" line="981"/>
+        <source>Preview Tickets</source>
+        <translation type="obsolete">Karten-Vorschau</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="990"/>
+        <source>Ticket: </source>
+        <translation type="obsolete">Eintrittskarte:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="992"/>
+        <source>Voucher: </source>
+        <translation type="obsolete">Gutschein:</translation>
+    </message>
+</context>
+<context>
+    <name>MOrderWindow</name>
+    <message>
+        <location filename="orderwin.cpp" line="50"/>
+        <source>Order Details</source>
+        <translation type="obsolete">Bestelldetails</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="55"/>
+        <source>&amp;Order</source>
+        <translation type="obsolete">&amp;Bestellung</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="56"/>
+        <source>&amp;Order...</source>
+        <translation type="obsolete">&amp;Bestellung...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="59"/>
+        <source>&amp;Sell...</source>
+        <translation type="obsolete">&amp;Verkauf...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="67"/>
+        <source>C&amp;ancel Order...</source>
+        <translation type="obsolete">Bestellung &amp;Stornieren...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="86"/>
+        <source>&amp;Close</source>
+        <translation type="obsolete">S&amp;chließen</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="88"/>
+        <source>&amp;Payment</source>
+        <translation type="obsolete">&amp;Bezahlung</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="90"/>
+        <source>Receive &amp;Payment...</source>
+        <translation type="obsolete">&amp;bezahlen...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="92"/>
+        <source>&amp;Refund...</source>
+        <translation type="obsolete">&amp;zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="97"/>
+        <source>P&amp;rinting</source>
+        <translation type="obsolete">&amp;Druck</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="99"/>
+        <source>Print &amp;Bill...</source>
+        <translation type="obsolete">&amp;Rechnung drucken...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="100"/>
+        <source>Save Bill &amp;as file...</source>
+        <translation type="obsolete">Rechnung &amp;speichern...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="102"/>
+        <source>Print &amp;Tickets...</source>
+        <translation type="obsolete">&amp;Eintrittskarten drucken...</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Print &amp;Current Ticket...</source>
+        <translation type="obsolete">markierte Eintrittskarte drucken</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;View Tickets...</source>
+        <translation type="obsolete">Eintrittskarten &amp;ansehen...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="116"/>
+        <source>Order ID:</source>
+        <translation type="obsolete">Bestell-Nr.:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="118"/>
+        <source>Order Date:</source>
+        <translation type="obsolete">Bestelldatum:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="120"/>
+        <source>Shipping Date:</source>
+        <translation type="obsolete">Versandtdatum:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="122"/>
+        <source>Customer:</source>
+        <translation type="obsolete">Kunde:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="127"/>
+        <source>Sold by:</source>
+        <translation type="obsolete">Verkauft durch:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="129"/>
+        <source>Total Price:</source>
+        <translation type="obsolete">Gesamtpreis:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="131"/>
+        <source>Already Paid:</source>
+        <translation type="obsolete">bereits bezahlt:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="133"/>
+        <source>Order State:</source>
+        <translation type="obsolete">Bestellstatus:</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Ticket ID</source>
+        <translation type="obsolete">Karten-Nr.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Event</source>
+        <translation type="obsolete">Veranstaltung</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="174"/>
+        <source>Start Time</source>
+        <translation type="obsolete">Anfangszeit</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="174"/>
+        <source>Status</source>
+        <translation type="obsolete">Status</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="174"/>
+        <source>Price</source>
+        <translation type="obsolete">Preis</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="69"/>
+        <source>&amp;Mark Order as Shipped...</source>
+        <translation type="obsolete">Bestellung als versandt markieren...</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Ch&amp;ange Ticket-Price...</source>
+        <translation type="obsolete">Kartenpreis Ã¤ndern...</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;Return Ticket...</source>
+        <translation type="obsolete">Karte zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="972"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="275"/>
+        <source>Unable to get template file (ticket.xtt). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (ticket.xtt) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Unable to get template file (bill.odtt). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (bill.odtt) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="878"/>
+        <source>Mark as shipped?</source>
+        <translation type="obsolete">Als versandt markieren?</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="878"/>
+        <source>Mark this order as shipped now?</source>
+        <translation type="obsolete">Diese Bestellung jetzt als versandt markieren?</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Unable to get template file (eventsummary.odtt). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (eventsummary.odtt) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="649"/>
+        <source>Enter Payment</source>
+        <translation type="obsolete">Zahlbetrag eingeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="649"/>
+        <source>Please enter the amount that has been paid:</source>
+        <translation type="obsolete">Bitte geben Sie den Betrag ein, der bezahlt wurde:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="682"/>
+        <source>Unable to submit payment request.</source>
+        <translation type="obsolete">Kann Bestellung nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="686"/>
+        <source>Error while trying to pay: %1</source>
+        <translation type="obsolete">Fehler während der Bezahlung: %1</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="704"/>
+        <source>Enter Refund</source>
+        <translation type="obsolete">Rückgabe eingeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="704"/>
+        <source>Please enter the amount that will be refunded:</source>
+        <translation type="obsolete">Bitte geben Sie den Betrag ein, der zurückgegeben wird:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="710"/>
+        <source>Unable to submit refund request.</source>
+        <translation type="obsolete">Kann Rückgabe nicht Ã¼bermitteln.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="714"/>
+        <source>Error whily trying to refund: %1</source>
+        <translation type="obsolete">Fehler während der Rückgabe: %1</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="774"/>
+        <source>This ticket cannot be returned, it has already been used or is in the wrong state.</source>
+        <translation type="obsolete">Diese Karte kann nicht zurückgegeben werden: sie wurde bereits verwendet.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="778"/>
+        <source>Return Ticket</source>
+        <translation type="obsolete">Karte zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="778"/>
+        <source>Do you really want to return this ticket?</source>
+        <translation type="obsolete">Wollen Sie diese Karte wirklich zurückgeben?</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="811"/>
+        <source>Cancel Order?</source>
+        <translation type="obsolete">Bestellung stornieren?</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="811"/>
+        <source>Cancel this order now?</source>
+        <translation type="obsolete">Diese Bestellung jetzt stornieren?</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="813"/>
+        <source>Cannot cancel this order: it is in the wrong state.</source>
+        <translation type="obsolete">Diese Bestellung kann nicht: sie ist im falschen Zustand.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="817"/>
+        <source>Failed to cancel this order.</source>
+        <translation type="obsolete">Kann diese Bestellung nicht stornieren. Schade.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="124"/>
+        <source>Delivery Address:</source>
+        <translation type="obsolete">Lieferadresse:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="139"/>
+        <source>Order Comment:</source>
+        <translation type="obsolete">Bestellkommentar:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="76"/>
+        <source>Change Commen&amp;t...</source>
+        <translation type="obsolete">Kommen&amp;tar Ã¤ndern...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="912"/>
+        <source>Set comment: order %1</source>
+        <translation type="obsolete">Kommentar Ã¤ndern: Bestellung %1</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="923"/>
+        <source>&amp;Save</source>
+        <translation type="obsolete">&amp;Speichern</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="925"/>
+        <source>&amp;Cancel</source>
+        <translation type="obsolete">&amp;Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="64"/>
+        <source>&amp;Prune and recheck...</source>
+        <translation type="obsolete">Ungültige Einträge entfernen und erneut checken...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="62"/>
+        <source>Ma&amp;ke Reservation...</source>
+        <translation type="obsolete">Reservierung durchführen...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="72"/>
+        <source>Ch&amp;ange Item-Price...</source>
+        <translation type="obsolete">Artikelpreis Ã¤ndern...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="74"/>
+        <source>&amp;Return Item...</source>
+        <translation type="obsolete">Artikel zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="78"/>
+        <source>Change Sh&amp;ipping Method...</source>
+        <translation type="obsolete">Versandoption Ã¤ndern...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="103"/>
+        <source>Print V&amp;ouchers...</source>
+        <translation type="obsolete">Gutscheine drucken...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="104"/>
+        <source>Print &amp;Current Item...</source>
+        <translation type="obsolete">Aktuellen Artikel drucken...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="105"/>
+        <source>&amp;View Items...</source>
+        <translation type="obsolete">Artikel ansehen...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="135"/>
+        <source>Shipping Method:</source>
+        <translation type="obsolete">Versandoption:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="137"/>
+        <source>Shipping Costs:</source>
+        <translation type="obsolete">Versandkosten:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="174"/>
+        <source>Item ID</source>
+        <translation type="obsolete">Artikelnummer:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="174"/>
+        <source>Description</source>
+        <translation type="obsolete">Beschreibung</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="194"/>
+        <source>Voucher (current value: %1)</source>
+        <translation type="obsolete">Gutschein (aktueller Wert: %1)</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="269"/>
+        <source>There are no tickets left to print.</source>
+        <translation type="obsolete">Es gibt keine Eintrittskarten zu drucken.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="310"/>
+        <source>There are no vouchers left to print.</source>
+        <translation type="obsolete">Es gibt keine Gutscheine zu drucken.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="316"/>
+        <source>Unable to get template file (voucher.xtt). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (voucher) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="414"/>
+        <source>Unable to get template file (bill). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (bill) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Unable to get template file (eventsummary). Giving up.</source>
+        <translation type="obsolete">Kann Vorlage (eventsummary) nicht finden. Gebe auf.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="422"/>
+        <source>Open Document File (*.%1)</source>
+        <translation type="obsolete">ODF Datei (*.%1)</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="741"/>
+        <source>Enter Price</source>
+        <translation type="obsolete">Bitte Preis eingeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="741"/>
+        <source>Please enter the new price for the ticket:</source>
+        <translation type="obsolete">Bitte neuen Preis für die Eintrittskarte eingeben:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="747"/>
+        <source>Cannot change this item type.</source>
+        <translation type="obsolete">Diese Artikelart kann nicht geändert werden.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="795"/>
+        <source>This voucher cannot be returned, it has already been used.</source>
+        <translation type="obsolete">Diese Karte kann nicht zurückgegeben werden: sie wurde bereits verwendet.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="799"/>
+        <source>Return Voucher</source>
+        <translation type="obsolete">Gutschein zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="799"/>
+        <source>Do you really want to return this voucher?</source>
+        <translation type="obsolete">Wollen Sie diesen Gutschein wirklich zurückgeben?</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="806"/>
+        <source>Cannot return this item type.</source>
+        <translation type="obsolete">Diese Artikelart kann nicht zurückgegeben werden.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="882"/>
+        <source>Set shipping time</source>
+        <translation type="obsolete">Versandzeit setzen</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="888"/>
+        <source>Enter the shipping time:</source>
+        <translation type="obsolete">Bitte geben Sie die Versandzeit ein:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="894"/>
+        <source>OK</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="896"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="81"/>
+        <source>MoneyLog for Order...</source>
+        <translation type="obsolete">Geldtransfers von Bestellung...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="83"/>
+        <source>MoneyLog for selected Voucher...</source>
+        <translation type="obsolete">Geldtransfers des selektierten Gutscheins...</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="671"/>
+        <source>Enter Voucher</source>
+        <translation type="obsolete">Gutschein eingeben</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="671"/>
+        <source>Please enter the ID of the voucher you want to use:</source>
+        <translation type="obsolete">Bitte geben Sie die Nummer des Gutscheins ein, den Sie verwenden wollen:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="676"/>
+        <source>This voucher is not valid.</source>
+        <translation type="obsolete">Dieser Gutschein ist nicht gültig.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="695"/>
+        <source>Voucher Info</source>
+        <translation type="obsolete">Gutscheininformation</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="695"/>
+        <source>Remaining value of this voucher: %1</source>
+        <translation type="obsolete">Verbleibender Wert auf dem Gutschein: %1</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="972"/>
+        <source>This is not a voucher, cannot show the money log.</source>
+        <translation type="obsolete">Dies ist kein Gutschein, kann keine Geldtransfers anzeigen.</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="94"/>
+        <source>Pay with &amp;Voucher...</source>
+        <translation type="obsolete">Mit Gutschein bezahlen...</translation>
+    </message>
+</context>
+<context>
+    <name>MOverview</name>
+    <message>
+        <location filename="overview.cpp" line="80"/>
+        <source>&amp;Session</source>
+        <translation type="obsolete">&amp;Session</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="81"/>
+        <source>&amp;Re-Login</source>
+        <translation type="obsolete">&amp;Login wiederholen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="88"/>
+        <source>&amp;Close Session</source>
+        <translation type="obsolete">Session &amp;schließen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="90"/>
+        <source>&amp;Event</source>
+        <translation type="obsolete">&amp;Veranstaltung</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="100"/>
+        <source>&amp;Customer</source>
+        <translation type="obsolete">&amp;Kunde</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="137"/>
+        <source>Events</source>
+        <translation type="obsolete">Veranstaltungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1545"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="411"/>
+        <source>I was unable to renew the login at the server, the error was: %1</source>
+        <translation type="obsolete">Der erneute Login ist fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="82"/>
+        <source>&amp;Offline mode</source>
+        <translation type="obsolete">&amp;Offlinemodus</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="93"/>
+        <source>&amp;New Event...</source>
+        <translation type="obsolete">&amp;Neue Veranstaltung...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="101"/>
+        <source>&amp;Show all customers</source>
+        <translation type="obsolete">&amp;Alle Kunden anzeigen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="103"/>
+        <source>C&amp;art</source>
+        <translation type="obsolete">&amp;Einkaufswagen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="104"/>
+        <source>Add &amp;Ticket</source>
+        <translation type="obsolete">Eintrittskarte &amp;hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="105"/>
+        <source>Add &amp;Voucher</source>
+        <translation type="obsolete">&amp;Gutschein hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="106"/>
+        <source>&amp;Remove Item</source>
+        <translation type="obsolete">&amp;Entfernen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="107"/>
+        <source>&amp;Abort Shopping</source>
+        <translation type="obsolete">&amp;Einkauf abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="147"/>
+        <source>New Event...</source>
+        <translation type="obsolete">Neue Veranstaltung...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="239"/>
+        <source>Details...</source>
+        <translation type="obsolete">Details...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="154"/>
+        <source>Order Ticket...</source>
+        <translation type="obsolete">Bestellen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="168"/>
+        <source>Shopping Cart</source>
+        <translation type="obsolete">Einkaufswagen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="180"/>
+        <source>Add Ticket</source>
+        <translation type="obsolete">Eintrittskarte hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="182"/>
+        <source>Add Voucher</source>
+        <translation type="obsolete">Gutschein hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="184"/>
+        <source>Remove Item</source>
+        <translation type="obsolete">Entfernen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="190"/>
+        <source>Customer:</source>
+        <translation type="obsolete">Kunde</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="199"/>
+        <source>Delivery Address:</source>
+        <translation type="obsolete">Lieferadresse:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="202"/>
+        <source>Comments:</source>
+        <translation type="obsolete">Kommentare:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="212"/>
+        <source>Clear</source>
+        <translation type="obsolete">Zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="780"/>
+        <source>Start Time</source>
+        <translation type="obsolete">Anfangszeit</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="780"/>
+        <source>Title</source>
+        <translation type="obsolete">Titel</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="380"/>
+        <source>ddd MMMM d yyyy, h:mm ap</source>
+        <comment>time format</comment>
+        <translation type="obsolete">ddd, d.M.yyyy hh:mm</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="91"/>
+        <source>&amp;Update Event List</source>
+        <translation type="obsolete">&amp;Veranstaltungsliste auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="92"/>
+        <source>&amp;Show/Edit details...</source>
+        <translation type="obsolete">&amp;Details anzeigen/editieren...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="270"/>
+        <source>Users</source>
+        <translation type="obsolete">Nutzer</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="278"/>
+        <source>New User...</source>
+        <translation type="obsolete">Neuer Nutzer...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="281"/>
+        <source>Delete User...</source>
+        <translation type="obsolete">Nutzer löschen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="285"/>
+        <source>Description...</source>
+        <translation type="obsolete">Beschreibung.,.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="288"/>
+        <source>Hosts...</source>
+        <translation type="obsolete">Hosts...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="291"/>
+        <source>Roles...</source>
+        <translation type="obsolete">Rechte...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="300"/>
+        <source>Hosts</source>
+        <translation type="obsolete">Hosts</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="482"/>
+        <source>Login Name</source>
+        <translation type="obsolete">Loginname</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="482"/>
+        <source>Description</source>
+        <translation type="obsolete">Beschreibung</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="496"/>
+        <source>New User</source>
+        <translation type="obsolete">Neuer Nutzer</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="496"/>
+        <source>Please enter new user name (only letters, digits, and underscore allowed):</source>
+        <translation type="obsolete">Neuen Nutzernamen eingeben (Kleinbuchstaben, Ziffern, Unterstrich, Minus):</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1008"/>
+        <source>Error</source>
+        <translation type="obsolete">Fehler</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="546"/>
+        <source>Edit Description</source>
+        <translation type="obsolete">Beschreibung Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="546"/>
+        <source>Descriptionof user %1:</source>
+        <translation type="obsolete">Beschreibung von Nutzer %1:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="83"/>
+        <source>Change my &amp;Password</source>
+        <translation type="obsolete">Mein &amp;Passwort Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="294"/>
+        <source>Set Password...</source>
+        <translation type="obsolete">Passwort setzen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="308"/>
+        <source>New Host...</source>
+        <translation type="obsolete">Neuer Host...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="311"/>
+        <source>Add This Host...</source>
+        <translation type="obsolete">Diesen Host hinzufügen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="314"/>
+        <source>Delete Host...</source>
+        <translation type="obsolete">Host löschen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="318"/>
+        <source>Generate New Key...</source>
+        <translation type="obsolete">Neuen Schlüssel anlegen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="321"/>
+        <source>Import...</source>
+        <translation type="obsolete">Importieren...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="324"/>
+        <source>Export...</source>
+        <translation type="obsolete">Exportieren...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="505"/>
+        <source>Password</source>
+        <translation type="obsolete">Passwort</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="505"/>
+        <source>Please enter an initial password for the user:</source>
+        <translation type="obsolete">Bitte geben Sie ein intiales Passwort ein:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="520"/>
+        <source>Delete User?</source>
+        <translation type="obsolete">Nutzer löschen?</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="520"/>
+        <source>Really delete user &apos;%1&apos;?</source>
+        <translation type="obsolete">Nutzer &apos;%1&apos; wirklich löschen?</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="589"/>
+        <source>Error setting password: %1</source>
+        <translation type="obsolete">Passwort kann nicht gesetzt werden: %1</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="604"/>
+        <source>The password must be non-empty and both lines must match</source>
+        <translation type="obsolete">Das Passwort darf nicht leer sein und beide Zeilen müssen Ã¼bereinstimmen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="620"/>
+        <source>Host Name</source>
+        <translation type="obsolete">Hostname</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="620"/>
+        <source>Host Key</source>
+        <translation type="obsolete">Hostkey</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="637"/>
+        <source>Create New Host</source>
+        <translation type="obsolete">Neuen Host anlegen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="637"/>
+        <source>Please enter a host name:</source>
+        <translation type="obsolete">Bitte geben Sie einen neuen Hostnamen ein:</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="overview.cpp" line="645"/>
+        <source>The key of this new host could only be generated with %n bits entropy. Store anyway?</source>
+        <translation type="obsolete">
+            <numerusform>Der Key dieses Hosts konnte nur mit %n Bit Entropie angelegt werden. Trotzdem speichern?</numerusform>
+            <numerusform>Der Key dieses Hosts konnte nur mit %n Bits Entropie angelegt werden. Trotzdem speichern?</numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="668"/>
+        <source>Delete this Host?</source>
+        <translation type="obsolete">Diesen Host löschen?</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="668"/>
+        <source>Really delete host &apos;%1&apos;?</source>
+        <translation type="obsolete">Den Host &apos;%1&apos; wirklich löschen?</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="682"/>
+        <source>Change Host Key?</source>
+        <translation type="obsolete">Hostkey Ã¤ndern?</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="682"/>
+        <source>Really change the key of host &apos;%1&apos;?</source>
+        <translation type="obsolete">Den Key von Host &apos;%1&apos; wirklich Ã¤ndern?</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="overview.cpp" line="687"/>
+        <source>The new key of this host could only be generated with %n bits entropy. Store anyway?</source>
+        <translation type="obsolete">
+            <numerusform>Der Key dieses Hosts konnte nur mit %n Bit Entropie angelegt werden. Trotzdem speichern?</numerusform>
+            <numerusform>Der Key dieses Hosts konnte nur mit %n Bits Entropie angelegt werden. Trotzdem speichern?</numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="698"/>
+        <source>Import Key from File</source>
+        <translation type="obsolete">Key aus Datei importieren</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="707"/>
+        <source>Unable to open file %1 for reading: %2</source>
+        <translation type="obsolete">Datei %1 kann nicht zum Lesen geöffnet werden: %2</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="719"/>
+        <source>This is not a host key file.</source>
+        <translation type="obsolete">Dies ist keine Hostkeydatei.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="724"/>
+        <source>This host key file does not contain a valid host name.</source>
+        <translation type="obsolete">Die Hostkeydatei enthält keinen gültigen Hostnamen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="729"/>
+        <source>This host key file does not contain a valid key.</source>
+        <translation type="obsolete">Diese Datei enthält keinen gültigen Hostkey.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="734"/>
+        <source>The key check sum did not match. Please get a clean copy of the host key file.</source>
+        <translation type="obsolete">Die Checksumme dieser Datei ist fehlgeschlagen. Bitte besorgen Sie eine neue Kopie der Datei.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="752"/>
+        <source>This host cannot be exported.</source>
+        <translation type="obsolete">Dieser Host kann nicht exportiert werden.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="757"/>
+        <source>Export Key to File</source>
+        <translation type="obsolete">Hostkey als Datei speichern</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="766"/>
+        <source>Unable to open file %1 for writing: %2</source>
+        <translation type="obsolete">Datei %1 kann nicht zum Schreiben geöffnet werden: %2</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="209"/>
+        <source>Check Order</source>
+        <translation type="obsolete">Bestellung prüfen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="216"/>
+        <source>Order List</source>
+        <translation type="obsolete">Bestellungsliste</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="220"/>
+        <source>-select mode-</source>
+        <translation type="obsolete">-Modus auswählen-</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="221"/>
+        <source>All Orders</source>
+        <translation type="obsolete">Alle Bestellungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="222"/>
+        <source>Open Orders</source>
+        <translation type="obsolete">Offene Bestellungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="224"/>
+        <source>Outstanding Payments</source>
+        <translation type="obsolete">Noch nicht bezahlt</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="225"/>
+        <source>Outstanding Refunds</source>
+        <translation type="obsolete">Offene Rückerstattungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="780"/>
+        <source>Amount</source>
+        <translation type="obsolete">Anzahl</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="811"/>
+        <source>Select Event to order Ticket</source>
+        <translation type="obsolete">Bitte wählen Sie eine Verstaltung aus, um zu bestellen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="824"/>
+        <source>Select</source>
+        <translation type="obsolete">Auswählen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1378"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="942"/>
+        <source>There is nothing in the order. Ignoring it.</source>
+        <translation type="obsolete">Bestellung ist leer. Vorgang abgebrochen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="946"/>
+        <source>Please chose a customer first!</source>
+        <translation type="obsolete">Bitte wählen Sie zunächst einen Kunden aus!</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1004"/>
+        <source>The request failed.</source>
+        <translation type="obsolete">Anfrage ist fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1008"/>
+        <source>A problem occurred during the order: %1</source>
+        <translation type="obsolete">Die Bestellung ist fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="258"/>
+        <source>Entrance</source>
+        <translation type="obsolete">Einlasskontrolle</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="158"/>
+        <source>Event Summary...</source>
+        <translation type="obsolete">Veranstaltungsübersicht...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="226"/>
+        <source>Undelivered Orders</source>
+        <translation type="obsolete">Nicht ausgelieferte Bestellungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="236"/>
+        <source>Update</source>
+        <translation type="obsolete">Auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1275"/>
+        <source>Status</source>
+        <translation type="obsolete">Status</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1275"/>
+        <source>Total</source>
+        <translation type="obsolete">Gesamt</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1275"/>
+        <source>Paid</source>
+        <translation type="obsolete">bezahlt</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1275"/>
+        <source>Customer</source>
+        <translation type="obsolete">Kunde</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;Upload Template...</source>
+        <translation type="obsolete">Vorlage &amp;hochladen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="111"/>
+        <source>&amp;Misc</source>
+        <translation type="obsolete">&amp;Verschiedenes</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;Return ticket...</source>
+        <translation type="obsolete">&amp;Karte zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="162"/>
+        <source>Cancel Event...</source>
+        <translation type="obsolete">Veranstaltung absagen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="243"/>
+        <source>Find by Ticket...</source>
+        <translation type="obsolete">Mit Kartennummer suchen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="458"/>
+        <source>Cancel Event</source>
+        <translation type="obsolete">Veranstaltung absagen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="458"/>
+        <source>Please enter a reason to cancel event &quot;%1&quot; or abort:</source>
+        <translation type="obsolete">Bitte geben Sie einen Grund für die Absage der Veranstaltung &quot;%1&quot; ein:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="461"/>
+        <source>Event Cancelled</source>
+        <translation type="obsolete">Veranstaltung abgesagt</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="461"/>
+        <source>The event &quot;%1&quot; has been cancelled. Please inform everybody who bought a ticket.</source>
+        <translation type="obsolete">Die Veranstaltung &quot;%1&quot; wurde abgesagt. Bitte informieren Sie alle Kunden.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="463"/>
+        <source>Unable to cancel event &quot;%1&quot;.</source>
+        <translation type="obsolete">Kann Veranstaltung &quot;%1&quot; nicht absagen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1082"/>
+        <source>Ticket &quot;%1&quot; Not Valid</source>
+        <translation type="obsolete">Karte &quot;%1&quot; ist nicht gültig.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1090"/>
+        <source>Ticket &quot;%1&quot; has already been used</source>
+        <translation type="obsolete">Karte &quot;%1&quot; wurde bereits verwendet.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1094"/>
+        <source>Ticket &quot;%1&quot; has not been bought.</source>
+        <translation type="obsolete">Karte &quot;%1&quot; wurde nicht gekauft.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1098"/>
+        <source>Ticket &quot;%1&quot; Ok</source>
+        <translation type="obsolete">Karte &quot;%1&quot; Okay.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1103"/>
+        <source>Ticket &quot;%1&quot; Ok; the Order has a refund</source>
+        <translation type="obsolete">Karte &quot;%1&quot; Okay.
+Die Bestellung ist Ã¼berbezahlt: es gibt noch Geld zurück.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1108"/>
+        <source>Ticket &quot;%1&quot; is not paid for!</source>
+        <translation type="obsolete">Karte &quot;%1&quot; ist nicht bezahlt!!!</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1111"/>
+        <source>Ticket &quot;%1&quot; cannot be accepted, please check the order!</source>
+        <translation type="obsolete">Karte &quot;%1&quot; kann nicht akzeptiert werden, bitte prüfen Sie die Bestellung.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1178"/>
+        <source>Enter Ticket</source>
+        <translation type="obsolete">Bitte Ticket eingeben</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1178"/>
+        <source>Please enter the ID of one of the tickets of the order you seek:</source>
+        <translation type="obsolete">Bitte geben Sie die Nr. einer Karte aus der gesuchten Bestellung ein:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1182"/>
+        <source>Unable to query server.</source>
+        <translation type="obsolete">Kann Server nicht abfragen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1191"/>
+        <source>Server returned an invalid order ID.</source>
+        <translation type="obsolete">Server hat eine ungültige Bestellnummer geliefert.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Please select a template file.</source>
+        <translation type="obsolete">Bitte wählen Sie eine Vorlage aus.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Enter Template Name</source>
+        <translation type="obsolete">Vorlagenname eingeben</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Please enter a name for the template file, it should contain only letters, digits, underscores and dots:</source>
+        <translation type="obsolete">Bitte geben Sie einen Namen für die Vorlage ein. Der Name sollte nur Buchstaben, Zahlen und Unterstriche und Punkte enthalten:</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>The template name must only contain letters, digits, underscores and dots.</source>
+        <translation type="obsolete">Der Vorlagenname darf nur Buchstaben, Ziffern, Unterstriche und Punkte enthalten.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Success</source>
+        <translation type="obsolete">Erfolg</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Successfully uploaded the template.</source>
+        <translation type="obsolete">Vorlage wurde erfolgreich hochgeladen.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Unable to upload the template.</source>
+        <translation type="obsolete">Kann Vorlage nicht hochladen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1317"/>
+        <source>Return Ticket</source>
+        <translation type="obsolete">Karte zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1317"/>
+        <source>Please enter the ticket ID to return:</source>
+        <translation type="obsolete">Bitte geben Sie die Karte ein, die zurückgegeben wird:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1321"/>
+        <source>This is not a valid ticket.</source>
+        <translation type="obsolete">Dies ist keine gültige Karte.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1326"/>
+        <source>This ticket cannot be returned, it has already been used or is in the wrong state.</source>
+        <translation type="obsolete">Diese Karte kann nicht zurückgegeben werden: sie wurde bereits benutzt oder befindet sich im falschen Status.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="126"/>
+        <source>&amp;Admin</source>
+        <translation type="obsolete">&amp;Administration</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;Schedule Backup...</source>
+        <translation type="obsolete">&amp;Backupzeit festlegen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="129"/>
+        <source>&amp;Backup now...</source>
+        <translation type="obsolete">&amp;Jetzt Backup machen...</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>&amp;Restore...</source>
+        <translation type="obsolete">Backup &amp;wiederherstellen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="228"/>
+        <source>-search result-</source>
+        <translation type="obsolete">-Suchresultat-</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="246"/>
+        <source>Find by Event...</source>
+        <translation type="obsolete">Nach Veranstaltung suchen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="249"/>
+        <source>Find by Customer...</source>
+        <translation type="obsolete">Nach Kunde suchen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="501"/>
+        <source>The user name must contain only letters, digits, dots and underscores and must be at least one character long!</source>
+        <translation type="obsolete">Nutzernamen dürfen nur Kleinbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten und müssen mindestens ein Zeichen lang sein!</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1204"/>
+        <source>Select Event</source>
+        <translation type="obsolete">Veranstaltung auswählen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1216"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="373"/>
+        <source>Capacity</source>
+        <translation type="obsolete">Sitzplätze:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="373"/>
+        <source>Sold</source>
+        <translation type="obsolete">Verkauft</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="373"/>
+        <source>Reserved</source>
+        <translation type="obsolete">Reserviert</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="373"/>
+        <source>Free</source>
+        <translation type="obsolete">Frei</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="524"/>
+        <source>(Nobody)</source>
+        <comment>this is a username for no user, the string must contain &apos;(&apos; to distinguish it from the others</comment>
+        <translation type="obsolete">(Niemand)</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="527"/>
+        <source>Delete User</source>
+        <translation type="obsolete">Nutzer Löschen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="527"/>
+        <source>Select which user will inherit this users database objects:</source>
+        <translation type="obsolete">Bitte wählen Sie einen Nutzer, der die Datenbankobjekte des gelöschten Nutzers erbt:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="532"/>
+        <source>Cannot delete user: %1</source>
+        <translation type="obsolete">Kann Nutzer nicht löschen: %1</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="95"/>
+        <source>Show &amp;old Events</source>
+        <translation type="obsolete">vergangene Veranstaltungen anzeigen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="122"/>
+        <source>C&amp;onfigure</source>
+        <translation type="obsolete">Konfigurieren</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="123"/>
+        <source>&amp;Auto-Refresh settings...</source>
+        <translation type="obsolete">Auto-Auffrisch-Einstellungen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1419"/>
+        <source>Refresh Settings</source>
+        <translation type="obsolete">Auffrischeinstellungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1424"/>
+        <source>Refresh Rate (minutes):</source>
+        <translation type="obsolete">Auffrischrate (Minuten):</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1430"/>
+        <source>refresh &amp;event list</source>
+        <translation type="obsolete">Veranstaltungsliste auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1432"/>
+        <source>refresh &amp;user list</source>
+        <translation type="obsolete">Nutzerliste auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1434"/>
+        <source>refresh &amp;host list</source>
+        <translation type="obsolete">Rechnerliste auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1494"/>
+        <source>&amp;OK</source>
+        <translation type="obsolete">&amp;Ok</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1496"/>
+        <source>&amp;Cancel</source>
+        <translation type="obsolete">&amp;Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="85"/>
+        <source>&amp;Edit Templates...</source>
+        <translation type="obsolete">Vorlagen Ã¤ndern...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="86"/>
+        <source>&amp;Update Templates Now</source>
+        <translation type="obsolete">Vorlagen jetzt auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="109"/>
+        <source>&amp;Update Shipping Options</source>
+        <translation type="obsolete">Versandoptionen auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="112"/>
+        <source>Return &amp;ticket...</source>
+        <translation type="obsolete">Karte zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="113"/>
+        <source>Return &amp;voucher...</source>
+        <translation type="obsolete">Gutschein zurückgeben...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="115"/>
+        <source>Edit &amp;Shipping Options...</source>
+        <translation type="obsolete">Versandoptionen editieren</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="196"/>
+        <source>Shipping Method:</source>
+        <translation type="obsolete">Versandoption:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="223"/>
+        <source>Open Reservations</source>
+        <translation type="obsolete">Reservierungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="470"/>
+        <source>(No Shipping)</source>
+        <translation type="obsolete">(Kein Versand)</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="874"/>
+        <source>Select Voucher</source>
+        <translation type="obsolete">Gutschein wählen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="885"/>
+        <source>Select voucher price and value:</source>
+        <translation type="obsolete">Bitte Gutschein-Preis und -Wert wählen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="886"/>
+        <source>Price:</source>
+        <translation type="obsolete">Preis:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="892"/>
+        <source>Value:</source>
+        <translation type="obsolete">Wert:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="924"/>
+        <source>Voucher (price: %1, value %2)</source>
+        <translation type="obsolete">Gutschein (Preis: %1, Wert: %2)</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1338"/>
+        <source>Return Voucher</source>
+        <translation type="obsolete">Gutschein zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1338"/>
+        <source>Please enter the voucher ID to return:</source>
+        <translation type="obsolete">Bitte geben Sie den Gutschein ein, der zurückgegeben wird:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1342"/>
+        <source>This is not a valid voucher.</source>
+        <translation type="obsolete">Dies ist kein gültiger Gutschein.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1347"/>
+        <source>This voucher cannot be returned, it has already been used.</source>
+        <translation type="obsolete">Dieser Gutschein kann nicht zurückgegeben werden, er wurde bereits benutzt.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1436"/>
+        <source>refresh &amp;shipping list</source>
+        <translation type="obsolete">Versandoptionen auffrischen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="252"/>
+        <source>Find by Order ID...</source>
+        <translation type="obsolete">Nach Bestellnummer suchen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1301"/>
+        <source>Enter Order ID</source>
+        <translation type="obsolete">Bestellnummer eingeben</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1301"/>
+        <source>Please enter the ID of the order you want to display:</source>
+        <translation type="obsolete">Bitte geben Sie die Bestellnummer der Bestellung ein, die Sie ansehen wollen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1306"/>
+        <source>This order does not exist.</source>
+        <translation type="obsolete">Diese Bestellung existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="117"/>
+        <source>&amp;Deduct from voucher...</source>
+        <translation type="obsolete">Geld von Gutschein abziehen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="119"/>
+        <source>&amp;Money Log for voucher...</source>
+        <translation type="obsolete">Geldtransfers von Gutschein...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="120"/>
+        <source>Money Log for &amp;user...</source>
+        <translation type="obsolete">Geldtransfers von Nutzer...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="124"/>
+        <source>&amp;Server Access settings...</source>
+        <translation type="obsolete">Serverzugriffseinstellungen...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="127"/>
+        <source>Backup &amp;Settings...</source>
+        <translation type="obsolete">Einstellungen Sicherungskopie...</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="263"/>
+        <source>Enter or scan Ticket-ID:</source>
+        <translation type="obsolete">Kartennummer eingeben oder scannen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1086"/>
+        <source>Ticket &quot;%1&quot; is not for this event.</source>
+        <translation type="obsolete">Karte &quot;%1&quot; ist nicht für diese Veranstaltung.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1359"/>
+        <source>Deduct from Voucher</source>
+        <translation type="obsolete">Von Gutschein abziehen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1362"/>
+        <source>Using a voucher to pay outside the system.</source>
+        <translation type="obsolete">Einen Gutschein nutzen um außerhalb des Systems zu bezahlen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1366"/>
+        <source>Amount to deduct:</source>
+        <translation type="obsolete">Abzuziehender Betrag:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1368"/>
+        <source>Voucher ID:</source>
+        <translation type="obsolete">Gutscheinnummer:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1376"/>
+        <source>OK</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1389"/>
+        <source>Request failed.</source>
+        <translation type="obsolete">Anfrage ist fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1396"/>
+        <source>Deducted from Voucher</source>
+        <translation type="obsolete">Von Gutschein abziehen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1396"/>
+        <source>Value taken from voucher: %1
+Value remaining on voucher: %2</source>
+        <translation type="obsolete">Vom Gutschein abgezogener Betrag: %1
+Verbleibender Betrag: %2</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1470"/>
+        <source>Server Access Settings</source>
+        <translation type="obsolete">Serverzugriffseinstellungen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1474"/>
+        <source>Request Timeout (seconds):</source>
+        <translation type="obsolete">max. Anfragezeit (Sekunden):</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1480"/>
+        <source>Log Level:</source>
+        <translation type="obsolete">Logstufe:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1482"/>
+        <source>Minimal Logging</source>
+        <translation type="obsolete">Minimales Log</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1483"/>
+        <source>Log Details on Error</source>
+        <translation type="obsolete">Bei Fehlern Details</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1484"/>
+        <source>Always Log Details</source>
+        <translation type="obsolete">Immer Details</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1524"/>
+        <source>Backup failed with error: %1</source>
+        <translation type="obsolete">Sicherung ist fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1541"/>
+        <source>Backup</source>
+        <translation type="obsolete">Sicherung</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1541"/>
+        <source>The backup was successful.</source>
+        <translation type="obsolete">Die Sicherung war erfolgreich.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1545"/>
+        <source>Cannot create backup file.</source>
+        <translation type="obsolete">Kann Sicherungsdatei nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1567"/>
+        <source>Voucher ID</source>
+        <translation type="obsolete">Gutscheinnummer</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1567"/>
+        <source>Please enter voucher ID to show log:</source>
+        <translation type="obsolete">Bitte geben Sie die Gutscheinnummer ein um die Transaktionen zu zeigen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1574"/>
+        <source>User</source>
+        <translation type="obsolete">Nutzer</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1574"/>
+        <source>Please enter login name of user to show log:</source>
+        <translation type="obsolete">Bitte den Login-Namen des Nutzers eingeben um die Transaktionen anzuzeigen:</translation>
+    </message>
+</context>
+<context>
+    <name>MPasswordChange</name>
+    <message>
+        <location filename="overview.cpp" line="1646"/>
+        <source>Change my password</source>
+        <translation type="obsolete">Mein Passwort Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1652"/>
+        <source>Old Password:</source>
+        <translation type="obsolete">Altes Passwort:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1656"/>
+        <source>New Password:</source>
+        <translation type="obsolete">Neues Passwort:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1659"/>
+        <source>Repeat Password:</source>
+        <translation type="obsolete">Paswort wiederholen:</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1667"/>
+        <source>Set Password</source>
+        <translation type="obsolete">Passwort setzen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1669"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="overview.cpp" line="1648"/>
+        <source>Reset password of user &quot;%1&quot;</source>
+        <translation type="obsolete">Passwort des Nutzers &quot;%1&quot; zurücksetzen</translation>
+    </message>
+</context>
+<context>
+    <name>MShipping</name>
+    <message>
+        <location filename="" line="0"/>
+        <source>.</source>
+        <comment>decimal dot</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+</context>
+<context>
+    <name>MShippingChange</name>
+    <message>
+        <location filename="orderwin.cpp" line="1035"/>
+        <source>Change Shipping Method</source>
+        <translation type="obsolete">Versandoption Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="1042"/>
+        <source>Method:</source>
+        <translation type="obsolete">Option:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="1044"/>
+        <source>Price:</source>
+        <translation type="obsolete">Preis:</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="1052"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="1054"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="orderwin.cpp" line="1061"/>
+        <source>(None)</source>
+        <comment>shipping method</comment>
+        <translation type="obsolete">(Keine)</translation>
+    </message>
+</context>
+<context>
+    <name>MShippingEditor</name>
+    <message>
+        <location filename="shipping.cpp" line="132"/>
+        <source>Edit Shipping Options</source>
+        <translation type="obsolete">Versandoptionen editieren</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="144"/>
+        <source>Change Description</source>
+        <translation type="obsolete">Beschreibung Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="146"/>
+        <source>Change Price</source>
+        <translation type="obsolete">Preis Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="148"/>
+        <source>Change Availability</source>
+        <translation type="obsolete">Verfügbarkeit Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="151"/>
+        <source>Add Option</source>
+        <translation type="obsolete">Option hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="153"/>
+        <source>Delete Option</source>
+        <translation type="obsolete">Option löschen</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="160"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="162"/>
+        <source>Cancel</source>
+        <translation type="obsolete">Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="170"/>
+        <source>ID</source>
+        <translation type="obsolete">ID</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="170"/>
+        <source>Description</source>
+        <translation type="obsolete">Beschreibung</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="170"/>
+        <source>Price</source>
+        <translation type="obsolete">Preis</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="170"/>
+        <source>Web</source>
+        <translation type="obsolete">Web</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="256"/>
+        <source>Any User</source>
+        <translation type="obsolete">Jeder Nutzer</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="176"/>
+        <source>Yes</source>
+        <translation type="obsolete">Ja</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="176"/>
+        <source>No</source>
+        <translation type="obsolete">Nein</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="250"/>
+        <source>Shipping Option Description</source>
+        <translation type="obsolete">Versandoptionsbeschreibung</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="190"/>
+        <source>Please select a new description for this shipping option:</source>
+        <translation type="obsolete">Bitte geben Sie eine Beschreibung für diese Versandoption ein:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="288"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="240"/>
+        <source>Could not store the changes.</source>
+        <translation type="obsolete">Konnte Ã„nderungen nicht speichern.</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="253"/>
+        <source>Shipping Option Price</source>
+        <translation type="obsolete">Versandoptionspreis</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="211"/>
+        <source>Please select a new price for this shipping option:</source>
+        <translation type="obsolete">Bitte geben Sie einen Preis für diese Versandoption ein:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="256"/>
+        <source>None</source>
+        <translation type="obsolete">Nur privilegierte Nutzer</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="256"/>
+        <source>Web Interface</source>
+        <translation type="obsolete">Privilegierte Nutzer und Web-Kunden</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="256"/>
+        <source>Any User + Web Interface</source>
+        <translation type="obsolete">Jeder</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="257"/>
+        <source>Shipping Option Availability</source>
+        <translation type="obsolete">Versandoptionsverfügbarkeit</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="234"/>
+        <source>Please select a new availability for this shipping option:</source>
+        <translation type="obsolete">Bitte wählen Sie eine Verfügbarkeit für diese Versandoption:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="250"/>
+        <source>Please select a new description for this new shipping option:</source>
+        <translation type="obsolete">Bitte geben Sie eine Beschreibung für diese Versandoption ein:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="253"/>
+        <source>Please select a new price for this new shipping option:</source>
+        <translation type="obsolete">Bitte geben Sie einen Preis für diese Versandoption ein:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="257"/>
+        <source>Please select a new availability for this new shipping option:</source>
+        <translation type="obsolete">Bitte wählen Sie eine Verfügbarkeit für diese Versandoption:</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="268"/>
+        <source>Could not create the new option.</source>
+        <translation type="obsolete">Konnte die neue Versandoption nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="shipping.cpp" line="288"/>
+        <source>Unable to delete this option.</source>
+        <translation type="obsolete">Kann diese Option nicht löschen.</translation>
+    </message>
+</context>
+<context>
+    <name>MTemplateChoice</name>
+    <message>
+        <location filename="templatedlg.cpp" line="29"/>
+        <source>Chose Template</source>
+        <translation type="obsolete">Vorlage auswählen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="32"/>
+        <source>Please chose a variant of template %1:</source>
+        <translation type="obsolete">Bitte wählen Sie eine Variante für die Vorlage %1:</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="41"/>
+        <source>(default)</source>
+        <comment>default template pseudo-variant</comment>
+        <translation type="obsolete">(Standard)</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="50"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+</context>
+<context>
+    <name>MTemplateEditor</name>
+    <message>
+        <location filename="templatedlg.cpp" line="72"/>
+        <source>Edit Template Directory</source>
+        <translation type="obsolete">Vorlagenverzeichnis editieren</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="84"/>
+        <source>Update Now</source>
+        <translation type="obsolete">Jetzt auffrischen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="86"/>
+        <source>Add Variant</source>
+        <translation type="obsolete">Variante hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="88"/>
+        <source>Delete Variant</source>
+        <translation type="obsolete">Variante löschen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="95"/>
+        <source>Close</source>
+        <translation type="obsolete">Schließen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="110"/>
+        <source>Template/Variant</source>
+        <translation type="obsolete">Vorlage/Variante</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="110"/>
+        <source>Description</source>
+        <translation type="obsolete">Beschreibung</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="110"/>
+        <source>Checksum</source>
+        <translation type="obsolete">Checksumme</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="221"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="167"/>
+        <source>Unable to delete this template.</source>
+        <translation type="obsolete">Kann diese Vorlage nicht löschen.</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="180"/>
+        <source>Select Template File</source>
+        <translation type="obsolete">Vorlagendatei wählen</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="185"/>
+        <source>Files with this extension (%1) are not legal for this template.</source>
+        <translation type="obsolete">Dateien mit der Erweiterung %1 sind für diese Vorlage nicht erlaubt.</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="204"/>
+        <source>Unable to upload file.</source>
+        <translation type="obsolete">Kann Datei nicht hochladen.</translation>
+    </message>
+    <message>
+        <location filename="templatedlg.cpp" line="221"/>
+        <source>Unable to send new description to server.</source>
+        <translation type="obsolete">Kann die neue Beschreibung nicht speichern.</translation>
+    </message>
+</context>
+<context>
+    <name>MTemplateStore</name>
+    <message>
+        <location filename="templates.cpp" line="107"/>
+        <source>Retrieving templates from server.</source>
+        <translation type="obsolete">Hole Vorlagen vom Server.</translation>
+    </message>
+</context>
+<context>
+    <name>MTicket</name>
+    <message>
+        <location filename="order.cpp" line="727"/>
+        <source>.</source>
+        <comment>decimal dot</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="762"/>
+        <source>bought</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">gültig</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="763"/>
+        <source>to refund</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">zurückgegeben</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="764"/>
+        <source>used</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">benutzt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="765"/>
+        <source>reserved</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">reserviert</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="766"/>
+        <source>ok</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="767"/>
+        <source>sale only</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">nur zum Verkauf</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="768"/>
+        <source>order only</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">nur zur Bestellung</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="769"/>
+        <source>too late: event over</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">zu spät: Veranstaltung ist vorbei</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="770"/>
+        <source>no more tickets</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">keine Karten mehr verfügbar</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="771"/>
+        <source>event cancelled</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">Veranstaltung abgesagt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="772"/>
+        <source>no such event</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">Veranstaltung unbekannt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="773"/>
+        <source>invalid</source>
+        <comment>ticket state</comment>
+        <translation type="obsolete">ungültig</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="792"/>
+        <source>Cannot execute request.</source>
+        <translation type="obsolete">Kann Anfrage nicht ausführen.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="819"/>
+        <source>Ticket is not stored, can&apos;t return it.</source>
+        <translation type="obsolete">Karte ist nicht gespeichert, kann sie nicht zurückgeben.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="821"/>
+        <source>Failed to execute request</source>
+        <translation type="obsolete">Kann Anfrage nicht ausführen.</translation>
+    </message>
+</context>
+<context>
+    <name>MTicketView</name>
+    <message>
+        <location filename="" line="0"/>
+        <source>Preview Tickets</source>
+        <translation type="obsolete">Karten-Vorschau</translation>
+    </message>
+</context>
+<context>
+    <name>MUser</name>
+    <message>
+        <location filename="user.cpp" line="106"/>
+        <source>User not valid: cannot delete.</source>
+        <translation type="obsolete">Ungültiger Nutzer: kann nicht gelöscht werden.</translation>
+    </message>
+</context>
+<context>
+    <name>MVoucher</name>
+    <message>
+        <location filename="order.cpp" line="919"/>
+        <source>invalid</source>
+        <translation type="obsolete">ungültig</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="921"/>
+        <source>cancelled</source>
+        <translation type="obsolete">storniert</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="922"/>
+        <source>empty</source>
+        <translation type="obsolete">leer</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="923"/>
+        <source>used</source>
+        <translation type="obsolete">benutzt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="924"/>
+        <source>unused</source>
+        <translation type="obsolete">unbenutzt</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="941"/>
+        <source>Voucher is not stored, can&apos;t return it.</source>
+        <translation type="obsolete">Gutschein ist nicht gespeichert, kann ihn nicht zurückgeben.</translation>
+    </message>
+    <message>
+        <location filename="order.cpp" line="943"/>
+        <source>Failed to execute request</source>
+        <translation type="obsolete">Kann Anfrage nicht ausführen.</translation>
+    </message>
+</context>
+<context>
+    <name>MWebRequest</name>
+    <message>
+        <location filename="webrequest.cpp" line="223"/>
+        <source>Unable to get server info.</source>
+        <translation type="obsolete">Serverdaten können nicht gelesen werden.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="230"/>
+        <source>Error while parsing server info (line %1 col %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Serverdaten (Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="235"/>
+        <source>Error in server info: missing authentication algorithm info.</source>
+        <translation type="obsolete">Fehler in Serverdaten: Authentifikationsalgorithmus fehlt.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="240"/>
+        <source>The server requested an unsupported hash algorithm: %1.</source>
+        <translation type="obsolete">Der Server verlangt einen nicht unterstützten Algorithmus (%1). Kann nicht fortsetzen.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="246"/>
+        <source>Unable to get authentication challenge.</source>
+        <translation type="obsolete">Authentifikation fehlgeschlagen (es wurde kein Challenge angeboten).</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="250"/>
+        <source>Error while parsing session challenge (line %1 col %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Authentifikationsdaten (Challenge; Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="256"/>
+        <source>Error in session challenge: missing session ID.</source>
+        <translation type="obsolete">Fehler in Authentifikationsdaten (Challenge): Session-ID fehlt.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="262"/>
+        <source>Error in session challenge: missing host challenge.</source>
+        <translation type="obsolete">Fehler in Authentifikationsdaten (Challenge): Host-Challenge fehlt.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="268"/>
+        <source>Error in session challenge: missing user challenge.</source>
+        <translation type="obsolete">Fehler in Authentifikationsdaten (Challenge): Nutzer-Challenge fehlt.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="294"/>
+        <source>Failed to log in: user/password mismatch, non-allowed host key, or challenge timed out.</source>
+        <translation type="obsolete">Authentifikation fehlgeschlagen: Passwort ist falsch, Host ist nicht zugelassen oder Challenge-Timeout.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="298"/>
+        <source>Unable to authenticate.</source>
+        <translation type="obsolete">Authentifikation fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="390"/>
+        <source>Error parsing EventList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der XML-Daten (Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="341"/>
+        <source>Cannot change password, old password does not match!</source>
+        <translation type="obsolete">Passwort kann nicht geändert werden: altes Passwort ist falsch.</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="414"/>
+        <source>Error parsing RoomList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Daten (RoomList; Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="438"/>
+        <source>Error parsing UserList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Daten (UserList; Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="462"/>
+        <source>Error parsing HostList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Daten (HostList; Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="486"/>
+        <source>Error parsing CustomerList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Daten (CustomerList; Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="579"/>
+        <source>Error parsing OrderList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Parsen der XML-Daten (Zeile %1, Spalte %2): %3</translation>
+    </message>
+    <message>
+        <location filename="webrequest.cpp" line="535"/>
+        <source>Error parsing ShippingList XML data (line %1 column %2): %3</source>
+        <translation type="obsolete">Fehler beim Lesen der Daten (ShippingList; Zeile %1, Spalte %2): %3</translation>
+    </message>
+</context>
+<context>
+    <name>Order</name>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="256"/>
+        <source>create order</source>
+        <translation type="obsolete">Bestellung anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="407"/>
+        <source>invalidvalue</source>
+        <comment>voucher state</comment>
+        <translation type="obsolete">Gutscheinwert nicht zulässig</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="413"/>
+        <source>invalidprice</source>
+        <comment>voucher state</comment>
+        <translation type="obsolete">Gutscheinpreis nicht zulässig</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="434"/>
+        <source>Shipping type not available to user.</source>
+        <translation type="obsolete">Diese Versandoption ist privilegierten Nutzern vorbehalten.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="451"/>
+        <source>Illegal shipping type.</source>
+        <translation type="obsolete">Ungültige Versandoption.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="669"/>
+        <source>order cancelled</source>
+        <translation type="obsolete">Bestellung storniert</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/order.php" line="707"/>
+        <source>reservation to order</source>
+        <translation type="obsolete">Reservierung zu Bestellung gewandelt</translation>
+    </message>
+</context>
+<context>
+    <name>Session</name>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="217"/>
+        <source>unable to parse XML data</source>
+        <translation type="obsolete">Kann XML Daten nicht parsen</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="139"/>
+        <source>missing some authentication data</source>
+        <translation type="obsolete">Authentifikationsdaten sind unvollständig</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="211"/>
+        <source>Not authenticated. Can&apos;t change password.</source>
+        <translation type="obsolete">Nicht authentifiziert, Passwort kann nicht geändert werden.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="222"/>
+        <source>expected exactly one passwd element</source>
+        <translation type="obsolete">Nur 1 &quot;passwd&quot; Element erwartet.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="230"/>
+        <source>cannot set an empty password</source>
+        <translation type="obsolete">Leeres Passwort kann nicht gesetzt werden</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="237"/>
+        <source>Ooops. Unable to find user. You have been deleted.</source>
+        <translation type="obsolete">Ups. Sie wurden gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/machine/session.php" line="242"/>
+        <source>Wrong password. Session hijacked, terminating it.</source>
+        <translation type="obsolete">Falsches Passwort. Session wird beendet.</translation>
+    </message>
+</context>
+<context>
+    <name>SpecialHost</name>
+    <message>
+        <location filename="../inc/wob/schema.php" line="38"/>
+        <source>_any</source>
+        <translation>beliebiger (auch unregistrierter) Host</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/db/db_scheme.php" line="42"/>
+        <source>_anon</source>
+        <translation type="obsolete">Anonym - beliebiger registrierter Host</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/db/db_scheme.php" line="43"/>
+        <source>_online</source>
+        <translation type="obsolete">Web-Präsenz</translation>
+    </message>
+</context>
+<context>
+    <name>Ticket</name>
+    <message>
+        <location filename="../www/inc/classes/ticket.php" line="203"/>
+        <source>The ticket is not valid.</source>
+        <translation type="obsolete">Die Karte ist nicht gültig.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/ticket.php" line="207"/>
+        <source>The ticket has already been used.</source>
+        <translation type="obsolete">Die Karte wurde bereits benutzt.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/ticket.php" line="211"/>
+        <source>The ticket has not been bought or is cancelled.</source>
+        <translation type="obsolete">Die Karte wurde nicht gekauft oder ist zurückgegeben.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/ticket.php" line="216"/>
+        <source>The ticket has not been paid.</source>
+        <translation type="obsolete">Die Karte ist nicht bezahlt.</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/ticket.php" line="220"/>
+        <source>The tickets order is in an invalid state or does not exist.</source>
+        <translation type="obsolete">Die Bestellung dieser Karte ist in einem ungültigen Zustand oder existiert nicht.</translation>
+    </message>
+</context>
+<context>
+    <name>TransactionNames::</name>
+    <message>
+        <location filename="../www/machine.php" line="19"/>
+        <source>serverinfo</source>
+        <translation type="obsolete">Serverinformationen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>startsession</source>
+        <translation type="obsolete">Session beginnen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>sessionauth</source>
+        <translation type="obsolete">Session authentifizieren</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>closesession</source>
+        <translation type="obsolete">Sessen beenden</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="25"/>
+        <source>getmyroles</source>
+        <translation type="obsolete">meine Rollen herausfinden</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getusers</source>
+        <translation type="obsolete">Nutzer abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>setuserdescription</source>
+        <translation type="obsolete">Nutzerkommentar setzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getuseracl</source>
+        <translation type="obsolete">Nutzerrechte abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>setuseracl</source>
+        <translation type="obsolete">Nutzerrechte setzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getuserhosts</source>
+        <translation type="obsolete">erlaubte Hosts eines Nutzers abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setuserhosts</source>
+        <translation type="obsolete">erlaubte Hosts eines Nutzers setzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>adduser</source>
+        <translation type="obsolete">neue Nutzer anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>deleteuser</source>
+        <translation type="obsolete">Nutzer löschen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setmypasswd</source>
+        <translation type="obsolete">eigenes Passwort Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setpasswd</source>
+        <translation type="obsolete">Passwort eines anderen Nutzers Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>gethosts</source>
+        <translation type="obsolete">Hosts abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>sethost</source>
+        <translation type="obsolete">Hosts anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>addhost</source>
+        <translation type="obsolete">Neue Hosts anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>deletehost</source>
+        <translation type="obsolete">Hosts löschen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>geteventlist</source>
+        <translation type="obsolete">Liste der Veranstaltungen abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>geteventdata</source>
+        <translation type="obsolete">Veranstaltungsdetails abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>seteventdata</source>
+        <translation type="obsolete">Veranstaltungsdetails Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>eventsummary</source>
+        <translation type="obsolete">Veranstaltungübersicht</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>cancelevent</source>
+        <translation type="obsolete">Veranstaltung abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="36"/>
+        <source>getroomdata</source>
+        <translation type="obsolete">Raumdaten abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="36"/>
+        <source>setroomdata</source>
+        <translation type="obsolete">Raumdaten setzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>getcustomerlist</source>
+        <translation type="obsolete">Kundenliste abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>getcustomer</source>
+        <translation type="obsolete">Kunde abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>setcustomer</source>
+        <translation type="obsolete">Kunde anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>deletecustomer</source>
+        <translation type="obsolete">Kunden löschen/ersetzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>checkorder</source>
+        <translation type="obsolete">Bestellung testen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createorder</source>
+        <translation type="obsolete">Bestellung anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createsale</source>
+        <translation type="obsolete">Verkaufen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>getorderlist</source>
+        <translation type="obsolete">Liste der Bestellungen abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>getorder</source>
+        <translation type="obsolete">Bestellung: Details abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>orderpay</source>
+        <translation type="obsolete">Bestellung bezahlen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>orderrefund</source>
+        <translation type="obsolete">Bestellung: Geld zurück geben</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>ordershipped</source>
+        <translation type="obsolete">Bestellung als verschickt markieren</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>cancelorder</source>
+        <translation type="obsolete">Bestellung stornieren</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>orderbyticket</source>
+        <translation type="obsolete">Bestellung mit Ticket finden</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>getordersbyevents</source>
+        <translation type="obsolete">Bestellungen finden, die Veranstaltung enthalten</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>setordercomment</source>
+        <translation type="obsolete">Bestellkommentar (in angelegter Bestellung) Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>getticket</source>
+        <translation type="obsolete">Ticket abrufen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>useticket</source>
+        <translation type="obsolete">Ticket entwerten</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>changeticketprice</source>
+        <translation type="obsolete">Ticketpreis Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>ticketreturn</source>
+        <translation type="obsolete">Ticket zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>gettemplatelist</source>
+        <translation type="obsolete">Vorlagenliste abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>gettemplate</source>
+        <translation type="obsolete">Vorlage abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>settemplate</source>
+        <translation type="obsolete">Vorlage erstellen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="60"/>
+        <source>_admin</source>
+        <translation type="obsolete">Alle Rechte, Administrator</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="61"/>
+        <source>_anyshipping</source>
+        <translation type="obsolete">Nutzer darf beliebige (auch privilegierte) Versandmethode benutzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="62"/>
+        <source>_repriceshipping</source>
+        <translation type="obsolete">Beliebigen Versandpreis festlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createreservedorder</source>
+        <translation type="obsolete">Reservierung anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>orderchangeshipping</source>
+        <translation type="obsolete">Versandoption einer Bestellung Ã¤ndern</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="43"/>
+        <source>reservationtoorder</source>
+        <translation type="obsolete">Reservierung in Bestellung wandeln</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="43"/>
+        <source>reservationtosale</source>
+        <translation type="obsolete">Reservierung in Verkauf wandeln</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>getshipping</source>
+        <translation type="obsolete">Versandoptionen holen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>setshipping</source>
+        <translation type="obsolete">Versandoptionen Ã¤ndern/anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>deleteshipping</source>
+        <translation type="obsolete">Versandoptionen löschen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>getvoucherprices</source>
+        <translation type="obsolete">Gutscheinpreise abfragen (zB. für Bestellformular)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>cancelvoucher</source>
+        <translation type="obsolete">Gutschein zurückgeben</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>emptyvoucher</source>
+        <translation type="obsolete">Gutschein ungültig machen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>usevoucher</source>
+        <translation type="obsolete">Gutschein benutzen (damit bezahlen)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>getvoucher</source>
+        <translation type="obsolete">Gutschein abfragen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>settemplatedescription</source>
+        <translation type="obsolete">Vorlagenbeschreibung Ã¤ndern/setzen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="52"/>
+        <source>deletetemplate</source>
+        <translation type="obsolete">Vorlage löschen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="63"/>
+        <source>_anyvoucher</source>
+        <translation type="obsolete">Gutscheine mit beliebigem Wert anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="64"/>
+        <source>_anypricevoucher</source>
+        <translation type="obsolete">Gutscheine anlegen bei denen Preis und Wert unterschiedlich sind</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="65"/>
+        <source>_explicitshipdate</source>
+        <translation type="obsolete">eine beliebige Zeit/Datum setzen, wenn Bestellungen versandt werden (statt aktueller Zeit/Datum)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>usevoucheroutside</source>
+        <translation type="obsolete">Gutschein außerhalb des Systems nutzen (Geld ohne Bestellung abziehen)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="54"/>
+        <source>backup</source>
+        <translation type="obsolete">Sicherungskopie anlegen</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="56"/>
+        <source>moneylog</source>
+        <translation type="obsolete">Geldtransfers anzeigen</translation>
+    </message>
+</context>
+<context>
+    <name>Voucher</name>
+    <message>
+        <location filename="../www/inc/classes/voucher.php" line="120"/>
+        <source>cancel voucher</source>
+        <translation type="obsolete">Gutschein zurückgegeben</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/voucher.php" line="134"/>
+        <source>empty voucher</source>
+        <translation type="obsolete">Gutschein entleert</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/voucher.php" line="157"/>
+        <source>create voucher</source>
+        <translation type="obsolete">Gutschein angelegt</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/voucher.php" line="221"/>
+        <source>pay with voucher</source>
+        <translation type="obsolete">mit Gutschein bezahlt</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/classes/voucher.php" line="257"/>
+        <source>pay with voucher outside system</source>
+        <translation type="obsolete">mit Gutschein außerhalb des Systems bezahlt</translation>
+    </message>
+</context>
+<context>
+    <name>initkey</name>
+    <message>
+        <location filename="main.cpp" line="145"/>
+        <source>Warning</source>
+        <translation type="obsolete">Warnung</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="133"/>
+        <source>Magic Smoke needs a host key. You have to generate one before you can use the program.</source>
+        <translation type="obsolete">MagicSmoke braucht einen Hostkey. Sie müssen einen Hostkey generieren bevor das Programm benutzt werden kann.</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="139"/>
+        <source>Enter Host Name</source>
+        <translation type="obsolete">Bitte Hostnamen eingeben</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="140"/>
+        <source>Host name:</source>
+        <translation type="obsolete">Hostname:</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="145"/>
+        <source>Magic Smoke needs a host name. You have to configure one before you can use the program.</source>
+        <translation type="obsolete">MagicSmoke braucht einen Hostnamen. Sie müssen einen Hostnamen eingeben bevor das Programm benutzt werden kann.</translation>
+    </message>
+</context>
+<context>
+    <name>initprofile</name>
+    <message>
+        <location filename="main.cpp" line="154"/>
+        <source>default</source>
+        <comment>initial profile</comment>
+        <translation type="obsolete">Standardprofil</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="155"/>
+        <source>Create Initial Profile</source>
+        <translation type="obsolete">Initiales Profil anlegen</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="155"/>
+        <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="obsolete">MagicSmoke braucht mindestens ein Profil um benutzt zu werden. Es wird nun eines generieren. Bitte geben Sie einen Namen für das Profil ein:</translation>
+    </message>
+</context>
+<context>
+    <name>lang</name>
+    <message>
+        <location filename="main.cpp" line="63"/>
+        <source>Information</source>
+        <translation type="obsolete">Information</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="63"/>
+        <source>The changed language setting will only be active after restarting the application.</source>
+        <translation type="obsolete">Die Ã„nderung der Sprachkonfiguration wird es nach dem nächsten Neustart des Programms wirksam.</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="58"/>
+        <source>Chose Language</source>
+        <translation type="obsolete">Sprache auswählen</translation>
+    </message>
+    <message>
+        <location filename="main.cpp" line="58"/>
+        <source>Language:</source>
+        <translation type="obsolete">Sprache:</translation>
+    </message>
+</context>
+<context>
+    <name>misc</name>
+    <message>
+        <location filename="misc.cpp" line="52"/>
+        <source>%1.%2</source>
+        <comment>price with decimal dot</comment>
+        <translation type="obsolete">%1,%2</translation>
+    </message>
+    <message>
+        <location filename="misc.cpp" line="60"/>
+        <source>.</source>
+        <comment>decimal dot in price</comment>
+        <translation type="obsolete">,</translation>
+    </message>
+    <message>
+        <location filename="misc.cpp" line="86"/>
+        <source>[0-9]+\.[0-9]{2}</source>
+        <comment>regexp for price</comment>
+        <translation type="obsolete">[0-9]+,[0-9]{2}</translation>
+    </message>
+    <message>
+        <location filename="misc.cpp" line="94"/>
+        <source>yyyy-MM-dd</source>
+        <comment>localized date format</comment>
+        <translation type="obsolete">d.M.yyyy</translation>
+    </message>
+    <message>
+        <location filename="misc.cpp" line="102"/>
+        <source>hh:mm</source>
+        <comment>localized time format</comment>
+        <translation type="obsolete">hh:mm</translation>
+    </message>
+    <message>
+        <location filename="misc.cpp" line="110"/>
+        <source>yyyy-MM-dd hh:mm</source>
+        <comment>localized date + time format</comment>
+        <translation type="obsolete">ddd, dd.MM.yyyy hh:mm &apos;Uhr&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>office</name>
+    <message>
+        <location filename="office.cpp" line="47"/>
+        <source>Chose Printer</source>
+        <translation type="obsolete">Drucker auswählen</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="50"/>
+        <source>Please chose a printer:</source>
+        <translation type="obsolete">Bitte wählen Sie einen Drucker:</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="54"/>
+        <source>(Default Printer)</source>
+        <translation type="obsolete">(Standarddrucker)</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="70"/>
+        <source>Ok</source>
+        <translation type="obsolete">Ok</translation>
+    </message>
+    <message>
+        <location filename="office.cpp" line="92"/>
+        <source>Save current document as...</source>
+        <translation type="obsolete">Aktuelles Dokuement speichern unter...</translation>
+    </message>
+</context>
+<context>
+    <name>php::</name>
+    <message>
+        <location filename="../inc/classes/customer.php" line="259"/>
+        <source>Unknown Customer</source>
+        <translation>Unbekannter Kunde</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="271"/>
+        <source>Unable to parse XML.</source>
+        <translation>Kann XML Daten nicht parsen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="316"/>
+        <source>Cannot find customer ID to delete.</source>
+        <translation>Kann zu löschende Kundennummer nicht finden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="322"/>
+        <source>Invalid Customer ID, cannot delete.</source>
+        <translation>Ungültige Kundennummer kann nicht gelöscht werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="330"/>
+        <source>Invalid Customer ID, cannot merge.</source>
+        <translation>Ungültige Kundennummer kann nicht vereint werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="348"/>
+        <source>Cannot find Customer ID, cannot delete.</source>
+        <translation>Kann zu löschende Kundennummer nicht finden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="369"/>
+        <source>Cannot merge customers.</source>
+        <translation>Kann Kunden-Einträge nicht vereinen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="379"/>
+        <source>Cannot delete customer.</source>
+        <translation>Kann Kunde nicht löschen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="257"/>
+        <source>Malformed request.</source>
+        <translation>Fehlerhaftes Anfrageformat.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/event.php" line="431"/>
+        <source>The event id must be numeric.</source>
+        <translation>Die Veranstaltungsnummer muss numerisch sein.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/event.php" line="445"/>
+        <source>Invalid event id.</source>
+        <translation>Ungültige Veranstaltungsnummer.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="800"/>
+        <source>Cannot place order, sorry.</source>
+        <translation>Kann Bestellung nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="790"/>
+        <source>Cannot place sale, sorry.</source>
+        <translation>Kann Verkauf nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="805"/>
+        <source>Internal Error: unknown action.</source>
+        <translation>Interner Fehler: unbekannte Aktion.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="873"/>
+        <source>No such orderID in database.</source>
+        <translation>Diese Bestellnummer existiert nicht in der Datenbank.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="884"/>
+        <source>Expected 2 arguments.</source>
+        <translation>2 Argumente erwartet.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="890"/>
+        <source>Invalid Order ID</source>
+        <translation>Ungültige Bestellnummer.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="896"/>
+        <source>Expected positive amount.</source>
+        <translation>Die Anzahl muss eine positive Zahl sein.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="905"/>
+        <source>Order does not exist.</source>
+        <translation>Bestellung existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="911"/>
+        <source>Order cannot be changed, it is closed.</source>
+        <translation>Die Bestellung kann nicht geändert werden, da sie bereits geschlossen ist.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="970"/>
+        <source>Order ID must be numeric.</source>
+        <translation>Bestellnummer muss numerisch sein.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="980"/>
+        <source>Order ID is invalid.</source>
+        <translation>Bestellnummer ist ungültig.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="961"/>
+        <source>Wrong state, cannot set order to shipped.</source>
+        <translation>Kann Bestellung nicht auf &quot;versandt&quot; setzen: sie ist im falschen Ausgangszustand.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="986"/>
+        <source>Wrong state, cannot set order to cancelled.</source>
+        <translation>Kann Bestellung nicht auf &quot;abgebrochen&quot; setzen: sie ist im falschen Ausgangszustand.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Ticket not found.</source>
+        <translation type="obsolete">Karte nicht gefunden.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Ticket has no order.</source>
+        <translation type="obsolete">Karte hat keine Bestellung.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="203"/>
+        <source>The ticket is not valid.</source>
+        <translation type="unfinished">Die Karte ist nicht gültig.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="207"/>
+        <source>The ticket has already been used.</source>
+        <translation type="unfinished">Die Karte wurde bereits benutzt.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="211"/>
+        <source>The ticket has not been bought or is cancelled.</source>
+        <translation type="unfinished">Die Karte wurde nicht gekauft oder ist zurückgegeben.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="216"/>
+        <source>The ticket has not been paid.</source>
+        <translation type="unfinished">Die Karte ist nicht bezahlt.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="220"/>
+        <source>The tickets order is in an invalid state or does not exist.</source>
+        <translation type="unfinished">Die Bestellung dieser Karte ist in einem ungültigen Zustand oder existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="292"/>
+        <source>Unable to find this ticket.</source>
+        <translation>Kann diese Karte nicht finden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="262"/>
+        <source>Price must be a number.</source>
+        <translation>Der Preis muss eine Zahl sein.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="267"/>
+        <source>Price must be positive.</source>
+        <translation>Der Preis muss positiv sein.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="297"/>
+        <source>Ticket cannot be returned.</source>
+        <translation>Karte kann nicht zurückgegeben werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="523"/>
+        <source>unable to parse XML data</source>
+        <translation>Kann XML Daten nicht parsen</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/host.php" line="91"/>
+        <source>Cannot delete special hosts.</source>
+        <translation>Spezialhosts können nicht gelöscht werden.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>missing some authentication data</source>
+        <translation type="obsolete">Authentifikationsdaten sind unvollständig</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Not authenticated. Can&apos;t change password.</source>
+        <translation type="obsolete">Nicht authentifiziert, Passwort kann nicht geändert werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="528"/>
+        <source>expected exactly one passwd element</source>
+        <translation>Nur 1 &quot;passwd&quot; Element erwartet.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="536"/>
+        <source>cannot set an empty password</source>
+        <translation>Leeres Passwort kann nicht gesetzt werden</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="184"/>
+        <source>Ooops. Unable to find user. You have been deleted.</source>
+        <translation type="unfinished">Ups. Sie wurden gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="" line="0"/>
+        <source>Wrong password. Session hijacked, terminating it.</source>
+        <translation type="obsolete">Falsches Passwort. Session wird beendet.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="322"/>
+        <source>invalid user name</source>
+        <translation>Falscher Nutzername.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="281"/>
+        <source>expected exactly 1 ACL element</source>
+        <translation>Clientfehler: es wurde nur 1 ACL Element erwartet.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="380"/>
+        <source>unknown user name</source>
+        <translation>Unbekannter Nutzer.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="364"/>
+        <source>expected exactly 1 Hosts element</source>
+        <translation>Clientfehler: es wurde nur 1 Hosts Element erwartet.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="468"/>
+        <source>Syntax Error</source>
+        <translation>Syntaxfehler</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="486"/>
+        <source>Cannot remove user: DB error while deleting ACL.</source>
+        <translation>Kann Nutzer nicht löschen: Datenbankfehler beim Löschen der Zugriffsrechte.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="495"/>
+        <source>Cannot remove user: unable to replace user.</source>
+        <translation>Kann Nutzer nicht löschen: kann Nutzer nicht ersetzen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="509"/>
+        <source>Cannot remove user: DB error while deleting user.</source>
+        <translation>Kann Nutzer nicht löschen: Datenbankfehler beim Löschen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="541"/>
+        <source>Unable to change this password.</source>
+        <translation>Dieses Passwort kann nicht geändert werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="42"/>
+        <source>Template File not found in database</source>
+        <translation>Vorlage kann nicht gefunden werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="83"/>
+        <source>Unable to find file name</source>
+        <translation>Dateiname kann nicht gefunden werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="91"/>
+        <source>Illegal File Name</source>
+        <translation>Illegaler Dateiname</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="73"/>
+        <source>Invalid Request, please use the MagicSmoke Client with this page.</source>
+        <translation type="obsolete">Interner Fehler: Fehlerhafte Anfrage - bitte einen aktuellen MagicSmoke Client benutzen.</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="127"/>
+        <source>Invalid or missing sessionid, or session timed out.</source>
+        <translation type="obsolete">Die Session kann nicht benutzt werden. Bitte neu anmelden.</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="139"/>
+        <source>Session not yet authenticated.</source>
+        <translation type="obsolete">Die Session ist noch nicht authentifiziert.</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="151"/>
+        <source>You do not have the right to execute this transaction.</source>
+        <translation type="obsolete">Sie haben nicht das Recht diese Transaktin durchzuführen.</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="492"/>
+        <source>Internal Error: unknown command, hiccup in code structure.</source>
+        <translation type="obsolete">Interner Fehler: unbekanntes Kommando, Fehler in Code-Struktur. Bitte melden Sie diesen Fehler und wie es dazu kam dem Programmierer.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="407"/>
+        <source>invalidvalue</source>
+        <comment>voucher state</comment>
+        <translation type="unfinished">Gutscheinwert nicht zulässig</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="413"/>
+        <source>invalidprice</source>
+        <comment>voucher state</comment>
+        <translation type="unfinished">Gutscheinpreis nicht zulässig</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="434"/>
+        <source>Shipping type not available to user.</source>
+        <translation type="unfinished">Diese Versandoption ist privilegierten Nutzern vorbehalten.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="451"/>
+        <source>Illegal shipping type.</source>
+        <translation type="unfinished">Ungültige Versandoption.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="916"/>
+        <source>Order cannot be paid for, it is only a reservation. Order or sell it first!</source>
+        <translation>Dies ist eine Reservierung: kann keine Bezahlung annehmen solange sie nicht bestellt wurde.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1072"/>
+        <source>Unable to update order comment.</source>
+        <translation>Kann Bestellkommentar nicht Ã¤ndern.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1217"/>
+        <source>Invalid Order.</source>
+        <translation>Ungültige Bestellung.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1112"/>
+        <source>Invalid Shipping Method.</source>
+        <translation>Ungültige Versandoption.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1179"/>
+        <source>Unable to create new shipping method.</source>
+        <translation>Kann neue Versandoption nicht anlegen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1188"/>
+        <source>Unable to change shipping method.</source>
+        <translation>Kann Versandoption nicht Ã¤ndern.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1201"/>
+        <source>Expected a numeric shipping ID.</source>
+        <translation>Erwarte numerische Versandoptionsnummer.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1206"/>
+        <source>Unable to delete shipping method.</source>
+        <translation>Kann Versandoption nicht löschen.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1224"/>
+        <source>Cannot change order from reservation.</source>
+        <translation>Kann Reservierung nicht wandeln.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="98"/>
+        <source>Template file does not exist</source>
+        <translation>Vorlage existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="295"/>
+        <source>Unable to cancel voucher.</source>
+        <translation>Kann Gutschein nicht zurückgeben.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="303"/>
+        <source>Invalid voucher, cannot empty it.</source>
+        <translation>Ungültiger Gutschein, er kann nicht geleert werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="316"/>
+        <source>Expected two arguments: voucher id and order id.</source>
+        <translation>Es wurden zwei Argumente erwartet: Gutschein-ID und Bestell-ID.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="350"/>
+        <source>Invalid voucher id.</source>
+        <translation>Ungültige Gutschein-ID.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="360"/>
+        <source>Unable to process payment via voucher.</source>
+        <translation>Die Bezahlung per Gutschein kann nicht durchgeführt werden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="369"/>
+        <source>Invalid voucher ID.</source>
+        <translation>Ungültige Gutschein-ID.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="256"/>
+        <source>create order</source>
+        <translation type="unfinished">Bestellung angelegt</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="669"/>
+        <source>order cancelled</source>
+        <translation type="unfinished">Bestellung storniert</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="707"/>
+        <source>reservation to order</source>
+        <translation type="unfinished">Reservierung zu Bestellung gewandelt</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="921"/>
+        <source>payment</source>
+        <translation>Bezahlung</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="921"/>
+        <source>refund</source>
+        <translation>Geldrückgabe</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1000"/>
+        <source>Ticket or Voucher not found.</source>
+        <translation>Karte oder Gutschein nicht gefunden.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1005"/>
+        <source>Ticket/Voucher has no order.</source>
+        <translation>Karte/Gutschein hat keine Bestellung.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1124"/>
+        <source>shipping changed</source>
+        <translation>Versand geändert</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1244"/>
+        <source>Expected 2 arguments: query type and ID.</source>
+        <translation>2 Argumente erwartet: Anfragetyp und ID.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1263"/>
+        <source>Invalid Query Type.</source>
+        <translation>Ungültige Anfrage.</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="120"/>
+        <source>cancel voucher</source>
+        <translation type="unfinished">Gutschein zurückgegeben</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="134"/>
+        <source>empty voucher</source>
+        <translation type="unfinished">Gutschein entleert</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="157"/>
+        <source>create voucher</source>
+        <translation type="unfinished">Gutschein angelegt</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="221"/>
+        <source>pay with voucher</source>
+        <translation type="unfinished">mit Gutschein bezahlt</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="257"/>
+        <source>pay with voucher outside system</source>
+        <translation type="unfinished">mit Gutschein außerhalb des Systems bezahlt</translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="344"/>
+        <source>Expected two arguments: voucher id and amount to deduct.</source>
+        <translation>2 Argumente erwartet: Gutscheinnummer und Betrag.</translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="82"/>
+        <source>Unknown Host</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="89"/>
+        <source>Host/User combination not allowed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="99"/>
+        <source>Host authentication failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="114"/>
+        <source>User Authentication failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="187"/>
+        <source>Ooops. Internal storage error - cannot verify old password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="190"/>
+        <source>Wrong password. Request denied.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/www/translations/server_en.ts b/www/translations/server_en.ts
new file mode 100644 (file)
index 0000000..5a31ccb
--- /dev/null
@@ -0,0 +1,966 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="1.1" language="en">
+<context>
+    <name>MBackupDialog</name>
+</context>
+<context>
+    <name>MCentDialog</name>
+</context>
+<context>
+    <name>MCheckDialog</name>
+</context>
+<context>
+    <name>MCustomerDialog</name>
+</context>
+<context>
+    <name>MCustomerListDialog</name>
+</context>
+<context>
+    <name>MEvent</name>
+</context>
+<context>
+    <name>MEventEditor</name>
+</context>
+<context>
+    <name>MEventSummary</name>
+</context>
+<context>
+    <name>MKeyGen</name>
+    <message numerus="yes">
+        <location filename="keygen.cpp" line="88"/>
+        <source>Current random buffer: %n Bits</source>
+        <translation type="obsolete">
+            <numerusform>Current random buffer: %n Bit</numerusform>
+            <numerusform>Current random buffer: %n Bits</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>MLabelDialog</name>
+</context>
+<context>
+    <name>MMainWindow</name>
+</context>
+<context>
+    <name>MMoneyLog</name>
+</context>
+<context>
+    <name>MOfficeConfig</name>
+</context>
+<context>
+    <name>MOrder</name>
+</context>
+<context>
+    <name>MOrderItemView</name>
+</context>
+<context>
+    <name>MOrderWindow</name>
+</context>
+<context>
+    <name>MOverview</name>
+    <message numerus="yes">
+        <location filename="overview.cpp" line="645"/>
+        <source>The key of this new host could only be generated with %n bits entropy. Store anyway?</source>
+        <translation type="obsolete">
+            <numerusform>The key of this new host could only be generated with %n bit of entropy. Store anyway?</numerusform>
+            <numerusform>The key of this new host could only be generated with %n bits of entropy. Store anyway?</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="overview.cpp" line="687"/>
+        <source>The new key of this host could only be generated with %n bits entropy. Store anyway?</source>
+        <translation type="obsolete">
+            <numerusform>The key of this new host could only be generated with %n bit of entropy. Store anyway?</numerusform>
+            <numerusform>The key of this new host could only be generated with %n bits of entropy. Store anyway?</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>MPasswordChange</name>
+</context>
+<context>
+    <name>MShippingChange</name>
+</context>
+<context>
+    <name>MShippingEditor</name>
+</context>
+<context>
+    <name>MTemplateChoice</name>
+</context>
+<context>
+    <name>MTemplateEditor</name>
+</context>
+<context>
+    <name>MTemplateStore</name>
+</context>
+<context>
+    <name>MTicket</name>
+</context>
+<context>
+    <name>MUser</name>
+</context>
+<context>
+    <name>MVoucher</name>
+</context>
+<context>
+    <name>MWebRequest</name>
+</context>
+<context>
+    <name>Order</name>
+</context>
+<context>
+    <name>Session</name>
+</context>
+<context>
+    <name>SpecialHost</name>
+    <message>
+        <location filename="../inc/wob/schema.php" line="38"/>
+        <source>_any</source>
+        <translation>any host (even unregistered ones)</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/db/db_scheme.php" line="42"/>
+        <source>_anon</source>
+        <translation type="obsolete">any registered host</translation>
+    </message>
+    <message>
+        <location filename="../www/inc/db/db_scheme.php" line="43"/>
+        <source>_online</source>
+        <translation type="obsolete">web system</translation>
+    </message>
+</context>
+<context>
+    <name>Ticket</name>
+</context>
+<context>
+    <name>TransactionNames::</name>
+    <message>
+        <location filename="../www/machine.php" line="19"/>
+        <source>serverinfo</source>
+        <translation type="obsolete">basic server information (implicitly granted)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>startsession</source>
+        <translation type="obsolete">start a session (implicitly granted)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>sessionauth</source>
+        <translation type="obsolete">authenticate to the server (implicitly granted)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="21"/>
+        <source>closesession</source>
+        <translation type="obsolete">end my own session</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="25"/>
+        <source>getmyroles</source>
+        <translation type="obsolete">retrieve the roles/privileges I have</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getusers</source>
+        <translation type="obsolete">get a list of all (system) users existing at the system</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>setuserdescription</source>
+        <translation type="obsolete">get description of a user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getuseracl</source>
+        <translation type="obsolete">get the roles/privileges of any user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>setuseracl</source>
+        <translation type="obsolete">set the roles/privileges of any user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="29"/>
+        <source>getuserhosts</source>
+        <translation type="obsolete">get the hosts a user may connect from</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setuserhosts</source>
+        <translation type="obsolete">set the hosts a user may connect from</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>adduser</source>
+        <translation type="obsolete">add a new user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>deleteuser</source>
+        <translation type="obsolete">delete a user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setmypasswd</source>
+        <translation type="obsolete">set my own password</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="30"/>
+        <source>setpasswd</source>
+        <translation type="obsolete">set the password of any user</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>gethosts</source>
+        <translation type="obsolete">get all hosts that are known to the system</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>sethost</source>
+        <translation type="obsolete">change a host</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>addhost</source>
+        <translation type="obsolete">add a new host to the system</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="32"/>
+        <source>deletehost</source>
+        <translation type="obsolete">delete a host</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>geteventlist</source>
+        <translation type="obsolete">get a list of events (overview)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>geteventdata</source>
+        <translation type="obsolete">get detailed event data</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>seteventdata</source>
+        <translation type="obsolete">change/create an event</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>eventsummary</source>
+        <translation type="obsolete">get summary data for a specific event</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="34"/>
+        <source>cancelevent</source>
+        <translation type="obsolete">cancel an event</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="36"/>
+        <source>getroomdata</source>
+        <translation type="obsolete">get detailed data about a room</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="36"/>
+        <source>setroomdata</source>
+        <translation type="obsolete">change/create a room</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>getcustomerlist</source>
+        <translation type="obsolete">get a list of customers</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>getcustomer</source>
+        <translation type="obsolete">get detailed information about a customer</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>setcustomer</source>
+        <translation type="obsolete">change/create a customer</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="38"/>
+        <source>deletecustomer</source>
+        <translation type="obsolete">delete a customer</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>checkorder</source>
+        <translation type="obsolete">check whether an order would succeed in ordering or selling</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createorder</source>
+        <translation type="obsolete">create an order (as pre-ordered, unpaid items)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createsale</source>
+        <translation type="obsolete">create an order as sold and paid items</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>getorderlist</source>
+        <translation type="obsolete">get a list of orders (overview)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>getorder</source>
+        <translation type="obsolete">get details about an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>orderpay</source>
+        <translation type="obsolete">pay for an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>orderrefund</source>
+        <translation type="obsolete">refund money from a cancelled or overpaid order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>ordershipped</source>
+        <translation type="obsolete">mark an order as being shipped</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="41"/>
+        <source>cancelorder</source>
+        <translation type="obsolete">cancel an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>orderbyticket</source>
+        <translation type="obsolete">find an order by one of the tickets it contains</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>getordersbyevents</source>
+        <translation type="obsolete">get a list of all orders that contain tickets for an event</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>setordercomment</source>
+        <translation type="obsolete">change the comment of an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>getticket</source>
+        <translation type="obsolete">get details about a ticket</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>useticket</source>
+        <translation type="obsolete">mark a ticket as used</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>changeticketprice</source>
+        <translation type="obsolete">change the price of a specific ticket (automatically changes price of the order)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="47"/>
+        <source>ticketreturn</source>
+        <translation type="obsolete">return a ticket unused</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>gettemplatelist</source>
+        <translation type="obsolete">get a list of templates stored at the server (necessary for printing)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>gettemplate</source>
+        <translation type="obsolete">get a specific template (necessary for printing)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>settemplate</source>
+        <translation type="obsolete">store a new template at the server</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="60"/>
+        <source>_admin</source>
+        <translation type="obsolete">administrator, implies all other privileges</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="61"/>
+        <source>_anyshipping</source>
+        <translation type="obsolete">user has the right to use any shipping method</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="62"/>
+        <source>_repriceshipping</source>
+        <translation type="obsolete">user has the right to change the shipping price of an order regardless of shipping type</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="40"/>
+        <source>createreservedorder</source>
+        <translation type="obsolete">create an order as reservation (tickets blocked, but not usable until really ordered)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="42"/>
+        <source>orderchangeshipping</source>
+        <translation type="obsolete">change the shipping method of an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="43"/>
+        <source>reservationtoorder</source>
+        <translation type="obsolete">change a reservation into a normal order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="43"/>
+        <source>reservationtosale</source>
+        <translation type="obsolete">change a reservation into a sale (order that is already paid)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>getshipping</source>
+        <translation type="obsolete">get shipping methods</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>setshipping</source>
+        <translation type="obsolete">create/change shipping methods</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="45"/>
+        <source>deleteshipping</source>
+        <translation type="obsolete">delete a shipping method</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>getvoucherprices</source>
+        <translation type="obsolete">get the allowed voucher prices</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>cancelvoucher</source>
+        <translation type="obsolete">cancel (give back) a voucher (price and value go to zero)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>emptyvoucher</source>
+        <translation type="obsolete">make a voucher invalid (remaining value goes to zero, price remains)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>usevoucher</source>
+        <translation type="obsolete">use a voucher to pay for an order</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="49"/>
+        <source>getvoucher</source>
+        <translation type="obsolete">get details about a voucher</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="51"/>
+        <source>settemplatedescription</source>
+        <translation type="obsolete">set a new description for a template</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="52"/>
+        <source>deletetemplate</source>
+        <translation type="obsolete">delete a template (variant)</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="63"/>
+        <source>_anyvoucher</source>
+        <translation type="obsolete">user may create vouchers with any value/price</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="64"/>
+        <source>_anypricevoucher</source>
+        <translation type="obsolete">user may create vouchers for which price and value differ</translation>
+    </message>
+    <message>
+        <location filename="../www/machine.php" line="65"/>
+        <source>_explicitshipdate</source>
+        <translation type="obsolete">user may set an explicit shipping date/time when marking an order as shipped (default: current date/time)</translation>
+    </message>
+</context>
+<context>
+    <name>Voucher</name>
+</context>
+<context>
+    <name>initkey</name>
+</context>
+<context>
+    <name>initprofile</name>
+</context>
+<context>
+    <name>lang</name>
+</context>
+<context>
+    <name>misc</name>
+</context>
+<context>
+    <name>office</name>
+</context>
+<context>
+    <name>php::</name>
+    <message>
+        <location filename="../inc/classes/customer.php" line="259"/>
+        <source>Unknown Customer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="271"/>
+        <source>Unable to parse XML.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="316"/>
+        <source>Cannot find customer ID to delete.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="322"/>
+        <source>Invalid Customer ID, cannot delete.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="330"/>
+        <source>Invalid Customer ID, cannot merge.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="348"/>
+        <source>Cannot find Customer ID, cannot delete.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="369"/>
+        <source>Cannot merge customers.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/customer.php" line="379"/>
+        <source>Cannot delete customer.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="257"/>
+        <source>Malformed request.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/event.php" line="431"/>
+        <source>The event id must be numeric.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/event.php" line="445"/>
+        <source>Invalid event id.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="800"/>
+        <source>Cannot place order, sorry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="790"/>
+        <source>Cannot place sale, sorry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="805"/>
+        <source>Internal Error: unknown action.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="873"/>
+        <source>No such orderID in database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="884"/>
+        <source>Expected 2 arguments.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="890"/>
+        <source>Invalid Order ID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="896"/>
+        <source>Expected positive amount.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="905"/>
+        <source>Order does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="911"/>
+        <source>Order cannot be changed, it is closed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="970"/>
+        <source>Order ID must be numeric.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="980"/>
+        <source>Order ID is invalid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="961"/>
+        <source>Wrong state, cannot set order to shipped.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="986"/>
+        <source>Wrong state, cannot set order to cancelled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="292"/>
+        <source>Unable to find this ticket.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="262"/>
+        <source>Price must be a number.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="267"/>
+        <source>Price must be positive.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="297"/>
+        <source>Ticket cannot be returned.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="523"/>
+        <source>unable to parse XML data</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/host.php" line="91"/>
+        <source>Cannot delete special hosts.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="528"/>
+        <source>expected exactly one passwd element</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="536"/>
+        <source>cannot set an empty password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="322"/>
+        <source>invalid user name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="281"/>
+        <source>expected exactly 1 ACL element</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="380"/>
+        <source>unknown user name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="364"/>
+        <source>expected exactly 1 Hosts element</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="468"/>
+        <source>Syntax Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="486"/>
+        <source>Cannot remove user: DB error while deleting ACL.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="495"/>
+        <source>Cannot remove user: unable to replace user.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="509"/>
+        <source>Cannot remove user: DB error while deleting user.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="541"/>
+        <source>Unable to change this password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="42"/>
+        <source>Template File not found in database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="83"/>
+        <source>Unable to find file name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="91"/>
+        <source>Illegal File Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="916"/>
+        <source>Order cannot be paid for, it is only a reservation. Order or sell it first!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1072"/>
+        <source>Unable to update order comment.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1217"/>
+        <source>Invalid Order.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1112"/>
+        <source>Invalid Shipping Method.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1179"/>
+        <source>Unable to create new shipping method.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1188"/>
+        <source>Unable to change shipping method.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1201"/>
+        <source>Expected a numeric shipping ID.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1206"/>
+        <source>Unable to delete shipping method.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1224"/>
+        <source>Cannot change order from reservation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/template.php" line="98"/>
+        <source>Template file does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="295"/>
+        <source>Unable to cancel voucher.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="303"/>
+        <source>Invalid voucher, cannot empty it.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="316"/>
+        <source>Expected two arguments: voucher id and order id.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="350"/>
+        <source>Invalid voucher id.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="360"/>
+        <source>Unable to process payment via voucher.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="369"/>
+        <source>Invalid voucher ID.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="921"/>
+        <source>payment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="921"/>
+        <source>refund</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1000"/>
+        <source>Ticket or Voucher not found.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1005"/>
+        <source>Ticket/Voucher has no order.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1124"/>
+        <source>shipping changed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1244"/>
+        <source>Expected 2 arguments: query type and ID.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="1263"/>
+        <source>Invalid Query Type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="344"/>
+        <source>Expected two arguments: voucher id and amount to deduct.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="256"/>
+        <source>create order</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="407"/>
+        <source>invalidvalue</source>
+        <comment>voucher state</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="413"/>
+        <source>invalidprice</source>
+        <comment>voucher state</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="434"/>
+        <source>Shipping type not available to user.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="451"/>
+        <source>Illegal shipping type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="669"/>
+        <source>order cancelled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/order.php" line="707"/>
+        <source>reservation to order</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="203"/>
+        <source>The ticket is not valid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="207"/>
+        <source>The ticket has already been used.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="211"/>
+        <source>The ticket has not been bought or is cancelled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="216"/>
+        <source>The ticket has not been paid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/ticket.php" line="220"/>
+        <source>The tickets order is in an invalid state or does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="120"/>
+        <source>cancel voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="134"/>
+        <source>empty voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="157"/>
+        <source>create voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="221"/>
+        <source>pay with voucher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/classes/voucher.php" line="257"/>
+        <source>pay with voucher outside system</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="82"/>
+        <source>Unknown Host</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="89"/>
+        <source>Host/User combination not allowed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="99"/>
+        <source>Host authentication failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="114"/>
+        <source>User Authentication failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="184"/>
+        <source>Ooops. Unable to find user. You have been deleted.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="187"/>
+        <source>Ooops. Internal storage error - cannot verify old password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../inc/machine/session.php" line="190"/>
+        <source>Wrong password. Request denied.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/www/translations/unify.xsl b/www/translations/unify.xsl
new file mode 100644 (file)
index 0000000..6ab6e82
--- /dev/null
@@ -0,0 +1,27 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+       <xsl:output method="xml" encoding="utf-8" doctype="TS"/>
+       
+       <xsl:template name="context">
+               <xsl:for-each select="message">
+                       <xsl:element name="message">
+                               <xsl:for-each select="source|translation">
+                                       <xsl:copy-of select="."/>
+                               </xsl:for-each>
+                               <!-- ignoring comments and locations, they are not needed in the copy -->
+                       </xsl:element>
+               </xsl:for-each>
+       </xsl:template>
+       
+       <xsl:template match="/TS">
+               <xsl:element name="TS">
+                       <xsl:attribute name="version">1.1</xsl:attribute>
+                       <xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
+                       <xsl:element name="context">
+                               <xsl:element name="name"><xsl:text>php::</xsl:text></xsl:element>
+                               <xsl:for-each select="context">
+                                       <xsl:call-template name="context"/>
+                               </xsl:for-each>
+                       </xsl:element>
+               </xsl:element>
+       </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file