瀏覽代碼

translate more comments to english

Kolja Strohm 1 周之前
父節點
當前提交
a0db7d5bd7
共有 6 個文件被更改,包括 1565 次插入1579 次删除
  1. 10 12
      Datei.cpp
  2. 583 588
      DateiSystem.cpp
  3. 290 294
      Text.cpp
  4. 1 1
      UIInitialization.cpp
  5. 111 109
      Zeit.cpp
  6. 570 575
      Zeit.h

+ 10 - 12
Datei.cpp

@@ -70,8 +70,7 @@ void Datei::setDatei(Text* pfad)
     gr = 0;
     gr = 0;
 }
 }
 
 
-bool Datei::umbenennen(
-const char* pfad) // renames and possibly moves the file
+bool Datei::umbenennen(const char* pfad) // renames and possibly moves the file
 {
 {
     if (!pfad) return 0;
     if (!pfad) return 0;
     if (DateiUmbenennen(this->pfad->getText(), pfad))
     if (DateiUmbenennen(this->pfad->getText(), pfad))
@@ -255,7 +254,8 @@ void Datei::close() // closes the file
 }
 }
 
 
 #ifdef WIN32
 #ifdef WIN32
-bool Datei::setLetzteAEnderung(Zeit* zeit) // sets the modification date of the file
+bool Datei::setLetzteAEnderung(
+    Zeit* zeit) // sets the modification date of the file
 {
 {
     if (!pfad)
     if (!pfad)
     {
     {
@@ -421,8 +421,7 @@ int Datei::getUnterdateiAnzahl() const // returns the number of sub-files
 #endif
 #endif
 }
 }
 
 
-RCArray<Text>*
-Datei::getDateiListe() const // returns a list of sub-files
+RCArray<Text>* Datei::getDateiListe() const // returns a list of sub-files
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     if (!pfad) return 0;
     if (!pfad) return 0;
@@ -594,8 +593,7 @@ void Framework::GetFreePfad(Text* zPfad) // Searches for an unused filename
     zPfad->setText(txt);
     zPfad->setText(txt);
 }
 }
 
 
-bool Framework::DateiPfadErstellen(
-Text* pfad) // Creates a file in the path
+bool Framework::DateiPfadErstellen(Text* pfad) // Creates a file in the path
 {
 {
     bool ret = DateiPfadErstellen(pfad->getText());
     bool ret = DateiPfadErstellen(pfad->getText());
     pfad->release();
     pfad->release();
@@ -610,7 +608,7 @@ bool Framework::DateiRemove(Text* pfad) // Deletes the specified file
 }
 }
 
 
 bool Framework::DateiUmbenennen(
 bool Framework::DateiUmbenennen(
-Text* pfad_alt, Text* pfad_neu) // Renames the file
+    Text* pfad_alt, Text* pfad_neu) // Renames the file
 {
 {
     bool ret = DateiUmbenennen(pfad_alt->getText(), pfad_neu->getText());
     bool ret = DateiUmbenennen(pfad_alt->getText(), pfad_neu->getText());
     pfad_alt->release();
     pfad_alt->release();
@@ -626,7 +624,7 @@ bool Framework::DateiExistiert(Text* pfad) // Checks if the file exists
 }
 }
 
 
 bool Framework::DateiIstVerzeichnis(
 bool Framework::DateiIstVerzeichnis(
-Text* pfad) // checks if the path is a directory
+    Text* pfad) // checks if the path is a directory
 {
 {
     bool ret = DateiIstVerzeichnis(pfad->getText());
     bool ret = DateiIstVerzeichnis(pfad->getText());
     pfad->release();
     pfad->release();
@@ -634,7 +632,7 @@ Text* pfad) // checks if the path is a directory
 }
 }
 
 
 bool Framework::DateiPfadErstellen(
 bool Framework::DateiPfadErstellen(
-const char* pfad) // Creates a file in the path
+    const char* pfad) // Creates a file in the path
 {
 {
     Text pf = pfad;
     Text pf = pfad;
     bool erst = 1;
     bool erst = 1;
@@ -750,7 +748,7 @@ bool Framework::DateiRemove(const char* pfad) // Deletes the specified file
 }
 }
 
 
 bool Framework::DateiUmbenennen(
 bool Framework::DateiUmbenennen(
-const char* pfad_alt, const char* pfad_neu) // Renames the file
+    const char* pfad_alt, const char* pfad_neu) // Renames the file
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     if (pfad_alt && pfad_neu && DateiExistiert(pfad_alt))
     if (pfad_alt && pfad_neu && DateiExistiert(pfad_alt))
@@ -842,7 +840,7 @@ bool Framework::DateiExistiert(const char* pfad) // Checks if the file exists
 }
 }
 
 
 bool Framework::DateiIstVerzeichnis(
 bool Framework::DateiIstVerzeichnis(
-const char* pfad) // checks if the path is a directory
+    const char* pfad) // checks if the path is a directory
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     WIN32_FIND_DATA wfd;
     WIN32_FIND_DATA wfd;

+ 583 - 588
DateiSystem.cpp

@@ -99,8 +99,8 @@ char LTDBPixel::addByte(
                 {
                 {
 #ifdef WIN32
 #ifdef WIN32
                     MessageBox(NULL,
                     MessageBox(NULL,
-                        "Fehler, die Bilddatei ist beschädigt",
-                        "Fehler",
+                        "Error, the image file is corrupted",
+                        "Error",
                         MB_ICONERROR);
                         MB_ICONERROR);
 #endif
 #endif
                     exit(0);
                     exit(0);
@@ -118,70 +118,67 @@ char LTDBPixel::addByte(
                 if (!changeA) A = davor->getA();
                 if (!changeA) A = davor->getA();
                 maxIndex = (char)(maxIndex
                 maxIndex = (char)(maxIndex
                                   + (changeR + changeG + changeB + changeA)
                                   + (changeR + changeG + changeB + changeA)
-                                        * (8 - komp)); // Bestimmung der Laenge
-                // des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits,
-                // durch komprimierung kanns kleiner sein
+                                        * (8 - komp)); // Determine the length
+                // of the pixel in bits. Each color has 8 bits by default,
+                // compression can make it smaller
             }
             }
             else
             else
-                maxIndex = (char)(maxIndex + 7); // Da der Pixel nicht die Werte
-                                                 // des vorherigen uebernimmt,
-                                                 // wird er um 7 Bits groesser
-            break;
-        case 1:         // Das zweite Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+                maxIndex
+                    = (char)(maxIndex + 7); // Since the pixel doesn't inherit
+                                            // values from the previous one,
+                                            // it is 7 bits larger
+            break;
+        case 1:         // The second bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 changeR = (bool)((byte >> (7 - i)) & 0x1);
                 changeR = (bool)((byte >> (7 - i)) & 0x1);
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 2:         // Das dritte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 2:         // The third bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 changeG = (bool)((byte >> (7 - i)) & 0x1);
                 changeG = (bool)((byte >> (7 - i)) & 0x1);
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 3:         // Das vierte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 3:         // The fourth bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 changeB = (bool)((byte >> (7 - i)) & 0x1);
                 changeB = (bool)((byte >> (7 - i)) & 0x1);
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 4:         // Das fuenfte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 4:         // The fifth bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 changeA = (bool)((byte >> (7 - i)) & 0x1);
                 changeA = (bool)((byte >> (7 - i)) & 0x1);
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 5:         // Das sechste Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 5:         // The sixth bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 komp = (unsigned char)(komp
                 komp = (unsigned char)(komp
                                        | ((unsigned char)((byte >> (7 - i))
                                        | ((unsigned char)((byte >> (7 - i))
                                                           & 0x1)
                                                           & 0x1)
@@ -190,15 +187,14 @@ char LTDBPixel::addByte(
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 6:         // Das siebte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 6:         // The seventh bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
                 komp = (unsigned char)(komp
                 komp = (unsigned char)(komp
                                        | ((unsigned char)((byte >> (7 - i))
                                        | ((unsigned char)((byte >> (7 - i))
                                                           & 0x1)
                                                           & 0x1)
@@ -207,42 +203,41 @@ char LTDBPixel::addByte(
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        case 7:         // Das achte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (change) // Das Bit gehoert zu den 7 Komprimierungsbits
+        case 7:         // The eighth bit of a pixel stores either the
+                        // compression type or already the color
+            if (change) // The bit belongs to the 7 compression bits
             {
             {
                 komp = (unsigned char)(komp | ((byte >> (7 - i)) & 0x1)) & 7;
                 komp = (unsigned char)(komp | ((byte >> (7 - i)) & 0x1)) & 7;
-                // Das war das letzte Komprimierungsbit
-                // Komprimierung auswerten
+                // That was the last compression bit
+                // Evaluate compression
                 miR = (char)(miR - komp), miG = (char)(miG - komp),
                 miR = (char)(miR - komp), miG = (char)(miG - komp),
                 miB = (char)(miB - komp), miA = (char)(miA - komp);
                 miB = (char)(miB - komp), miA = (char)(miA - komp);
                 if (!changeR) R = davor->getR();
                 if (!changeR) R = davor->getR();
                 if (!changeG) G = davor->getG();
                 if (!changeG) G = davor->getG();
                 if (!changeB) B = davor->getB();
                 if (!changeB) B = davor->getB();
                 if (!changeA) A = davor->getA();
                 if (!changeA) A = davor->getA();
-                maxIndex = (char)(maxIndex
-                                  + (changeR + changeG + changeB + changeA)
-                                        * (8 - komp)); // Bitlaenge des Pixels
+                maxIndex
+                    = (char)(maxIndex
+                             + (changeR + changeG + changeB + changeA)
+                                   * (8 - komp)); // Bit length of the pixel
             }
             }
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        (unsigned char)(byte
-                                        >> (7
-                                            - i)))) // Das Bit gehoert zur Farbe
+                        (unsigned char)(byte >> (7 - i)))) // The bit belongs to
+                                                           // the color
                     return (unsigned char)i;
                     return (unsigned char)i;
             }
             }
             break;
             break;
-        default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
-            if (!addBitZuFarbe(
-                    (unsigned char)(byte
-                                    >> (7 - i)))) // Das Bit gehoert zur Farbe
+        default: // The remaining bits all store the color values of the pixel
+            if (!addBitZuFarbe((
+                    unsigned char)(byte
+                                   >> (7 - i)))) // The bit belongs to the color
                 return (unsigned char)i;
                 return (unsigned char)i;
             break;
             break;
         }
         }
@@ -263,27 +258,25 @@ char LTDBPixel::addByte(
     return -1;
     return -1;
 }
 }
 
 
-void LTDBPixel::setFarbe(int f) // setzt die Farbe des Pixels
-{ // Da diese Funktion aufgerufen wird, moechte man die Klasse nun zum speichern
-  // verwenden
-    // Werte zuruecksetzen, fals mit der Klasse schon geladen oder gespeichert
-    // wurde
+void LTDBPixel::setFarbe(int f) // sets the color of the pixel
+{ // Since this function is called, the class is now to be used for saving
+    // Reset values in case the class was already used for loading or saving
     index = 0, maxIndex = 1;
     index = 0, maxIndex = 1;
     change = 0, changeR = 0, changeG = 0, changeB = 0, changeA = 0, komp = 0;
     change = 0, changeR = 0, changeG = 0, changeB = 0, changeA = 0, komp = 0;
     iR = 0, iG = 0, iB = 0, iA = 0;
     iR = 0, iG = 0, iB = 0, iA = 0;
     miR = 8, miG = 8, miB = 8, miA = 8;
     miR = 8, miG = 8, miB = 8, miA = 8;
-    // Farbwerte setzen
+    // Set color values
     R = (unsigned char)(f >> 16);
     R = (unsigned char)(f >> 16);
     G = (unsigned char)(f >> 8);
     G = (unsigned char)(f >> 8);
     B = (unsigned char)f;
     B = (unsigned char)f;
     A = (unsigned char)(f >> 24);
     A = (unsigned char)(f >> 24);
 }
 }
 
 
-void LTDBPixel::komprimieren() // Komprimiert den Pixel
+void LTDBPixel::komprimieren() // Compresses the pixel
 {
 {
     maxIndex = 1;
     maxIndex = 1;
     if (!davor)
     if (!davor)
-    { // Das ist der erste Pixel
+    { // This is the first pixel
         change = 1;
         change = 1;
         changeR = 1;
         changeR = 1;
         changeG = 1;
         changeG = 1;
@@ -296,7 +289,7 @@ void LTDBPixel::komprimieren() // Komprimiert den Pixel
         miA = (char)getBits(A);
         miA = (char)getBits(A);
     }
     }
     else
     else
-    { // Es wird die differenz zum vorrigen Pixel gespeichert
+    { // The difference to the previous pixel is stored
         miR = (char)getBits((char)(R - davor->getR()));
         miR = (char)getBits((char)(R - davor->getR()));
         miG = (char)getBits((char)(G - davor->getG()));
         miG = (char)getBits((char)(G - davor->getG()));
         miB = (char)getBits((char)(B - davor->getB()));
         miB = (char)getBits((char)(B - davor->getB()));
@@ -305,7 +298,7 @@ void LTDBPixel::komprimieren() // Komprimiert den Pixel
         changeG = G != davor->getG();
         changeG = G != davor->getG();
         changeB = B != davor->getB();
         changeB = B != davor->getB();
         changeA = A != davor->getA();
         changeA = A != davor->getA();
-    } // Pruefen ob sich etwas aendert
+    } // Check if something changes
     if (!miR && changeR) ++miR;
     if (!miR && changeR) ++miR;
     if (!miG && changeG) ++miG;
     if (!miG && changeG) ++miG;
     if (!miB && changeB) ++miB;
     if (!miB && changeB) ++miB;
@@ -321,19 +314,19 @@ void LTDBPixel::komprimieren() // Komprimiert den Pixel
         if (changeR != davor->getChangeR() || changeG != davor->getChangeG()
         if (changeR != davor->getChangeR() || changeG != davor->getChangeG()
             || changeB != davor->getChangeB() || changeA != davor->getChangeA()
             || changeB != davor->getChangeB() || changeA != davor->getChangeA()
             || komp != davor->getKomp())
             || komp != davor->getKomp())
-        { // Es aendert sich etwas
+        { // Something changes
             change = 1;
             change = 1;
             maxIndex = (char)(maxIndex + 7);
             maxIndex = (char)(maxIndex + 7);
         }
         }
         else
         else
-        { // Es aendert sich nichts
+        { // Nothing changes
             change = 0;
             change = 0;
         }
         }
     }
     }
 }
 }
 
 
 bool LTDBPixel::getNextFarbeBit(
 bool LTDBPixel::getNextFarbeBit(
-    char& byte, int i) // Speichert das naechste Farbbit in byte
+    char& byte, int i) // Stores the next color bit in byte
 {
 {
     unsigned char RR = R;
     unsigned char RR = R;
     unsigned char GG = G;
     unsigned char GG = G;
@@ -346,110 +339,110 @@ bool LTDBPixel::getNextFarbeBit(
         BB = (unsigned char)(BB - davor->getB());
         BB = (unsigned char)(BB - davor->getB());
         AA = (unsigned char)(AA - davor->getA());
         AA = (unsigned char)(AA - davor->getA());
     }
     }
-    if (changeR && iR != miR) // Das Bit gehoert zu Rot
+    if (changeR && iR != miR) // The bit belongs to red
     {
     {
         byte |= (char)(((RR >> (7 - komp - iR)) & 0x1) << (7 - i));
         byte |= (char)(((RR >> (7 - komp - iR)) & 0x1) << (7 - i));
         ++iR;
         ++iR;
     }
     }
-    else if (changeG && iG != miG) // Das Bit gehoert zu Gruen
+    else if (changeG && iG != miG) // The bit belongs to green
     {
     {
         byte |= (char)(((GG >> (7 - komp - iG)) & 0x1) << (7 - i));
         byte |= (char)(((GG >> (7 - komp - iG)) & 0x1) << (7 - i));
         ++iG;
         ++iG;
     }
     }
-    else if (changeB && iB != miB) // Das Bit gehoert zu Blau
+    else if (changeB && iB != miB) // The bit belongs to blue
     {
     {
         byte |= (char)(((BB >> (7 - komp - iB)) & 0x1) << (7 - i));
         byte |= (char)(((BB >> (7 - komp - iB)) & 0x1) << (7 - i));
         ++iB;
         ++iB;
     }
     }
-    else if (changeA && iA != miA) // Das Bit gehoert zu Alpha
+    else if (changeA && iA != miA) // The bit belongs to alpha
     {
     {
         byte |= (char)(((AA >> (7 - komp - iA)) & 0x1) << (7 - i));
         byte |= (char)(((AA >> (7 - komp - iA)) & 0x1) << (7 - i));
         ++iA;
         ++iA;
     }
     }
-    else // Der Pixel ist bereits zu ende
+    else // The pixel is already finished
         return false;
         return false;
     return true;
     return true;
 }
 }
 
 
 char LTDBPixel::getNextByte(
 char LTDBPixel::getNextByte(
-    char& byte, int begin) // Gibt die naechsten Bits Zurueck, -1 wenn der Pixel
-                           // nicht zu ende ist
+    char& byte, int begin) // Returns the next bits, -1 if the pixel
+                           // is not finished
 {
 {
-    // bbegin gibt an wohin in die byte-variable geschrieben werden soll
-    // die Funktion gibt das ende des Pixels in der byte-variable zurueck
-    // -1 heisst, dass der Pixel nicht zu ende ist
+    // begin specifies where to write in the byte variable
+    // the function returns the end of the pixel in the byte variable
+    // -1 means the pixel is not finished
     for (int i = begin; i < 8; ++i)
     for (int i = begin; i < 8; ++i)
     {
     {
         switch (index)
         switch (index)
         {
         {
-        case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der
-                // Komprimierung aendert
+        case 0: // The first bit of the pixel stores whether the
+                // compression changes
             byte |= (char)(((int)change & 0x1) << (7 - i));
             byte |= (char)(((int)change & 0x1) << (7 - i));
             break;
             break;
-        case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 1: // The second bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((int)changeR & 0x1) << (7 - i));
                 byte |= (char)(((int)changeR & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 2: // Das dritte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 2: // The third bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((int)changeG & 0x1) << (7 - i));
                 byte |= (char)(((int)changeG & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 3: // Das vierte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 3: // The fourth bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((int)changeB & 0x1) << (7 - i));
                 byte |= (char)(((int)changeB & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 4: // Das fuenfte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 4: // The fifth bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((int)changeA & 0x1) << (7 - i));
                 byte |= (char)(((int)changeA & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 5: // Das sechste Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 5: // The sixth bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((komp >> 2) & 0x1) << (7 - i));
                 byte |= (char)(((komp >> 2) & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 6: // Das siebte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 6: // The seventh bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)(((komp >> 1) & 0x1) << (7 - i));
                 byte |= (char)(((komp >> 1) & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        case 7: // Das sechste Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (change) // Komprimierung
+        case 7: // The eighth bit of the pixel stores either the color
+                // or the compression
+            if (change) // Compression
                 byte |= (char)((komp & 0x1) << (7 - i));
                 byte |= (char)((komp & 0x1) << (7 - i));
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return (char)i;
                 if (!getNextFarbeBit(byte, i)) return (char)i;
             }
             }
             break;
             break;
-        default: // Die restlichen Bits speichern die Farbe des Pixels
+        default: // The remaining bits store the color of the pixel
             if (!getNextFarbeBit(byte, i)) return (char)i;
             if (!getNextFarbeBit(byte, i)) return (char)i;
             break;
             break;
         }
         }
@@ -464,7 +457,7 @@ char LTDBPixel::getNextByte(
 }
 }
 
 
 // constant
 // constant
-int LTDBPixel::zuFarbe() const // gibt den Pixel als Farbe zurueck
+int LTDBPixel::zuFarbe() const // returns the pixel as color
 {
 {
     return (((int)R << 16) | ((int)G << 8) | (int)B | ((int)A << 24));
     return (((int)R << 16) | ((int)G << 8) | (int)B | ((int)A << 24));
 }
 }
@@ -494,28 +487,28 @@ unsigned char LTDBPixel::getKomp() const
     return komp;
     return komp;
 }
 }
 
 
-unsigned char LTDBPixel::getR() const // gibt Rot zurueck
+unsigned char LTDBPixel::getR() const // returns red
 {
 {
     return R;
     return R;
 }
 }
 
 
-unsigned char LTDBPixel::getG() const // gibt Gruen zurueck
+unsigned char LTDBPixel::getG() const // returns green
 {
 {
     return G;
     return G;
 }
 }
 
 
-unsigned char LTDBPixel::getB() const // gibt Blau zurueck
+unsigned char LTDBPixel::getB() const // returns blue
 {
 {
     return B;
     return B;
 }
 }
 
 
-unsigned char LTDBPixel::getA() const // gibt Alpha zurueck
+unsigned char LTDBPixel::getA() const // returns alpha
 {
 {
     return A;
     return A;
 }
 }
 
 
-// Inhalt der LTDBDateiKopf Klasse aus Dateisystem.h
-// konstructor
+// Content of the LTDBDateiKopf class from Dateisystem.h
+// Constructor
 LTDBDateiKopf::LTDBDateiKopf()
 LTDBDateiKopf::LTDBDateiKopf()
     : ReferenceCounter(),
     : ReferenceCounter(),
       bilder(new RCArray<Text>()),
       bilder(new RCArray<Text>()),
@@ -523,14 +516,14 @@ LTDBDateiKopf::LTDBDateiKopf()
       bAnzahl(0)
       bAnzahl(0)
 {}
 {}
 
 
-// destructor
+// Destructor
 LTDBDateiKopf::~LTDBDateiKopf()
 LTDBDateiKopf::~LTDBDateiKopf()
 {
 {
     bilder->release();
     bilder->release();
     pos->release();
     pos->release();
 }
 }
 
 
-// nicht constant
+// non-constant
 void LTDBDateiKopf::removeBild(int i)
 void LTDBDateiKopf::removeBild(int i)
 {
 {
     if (i >= bAnzahl) return;
     if (i >= bAnzahl) return;
@@ -608,12 +601,12 @@ void LTDBDateiKopf::laden(FBalken* f, std::ifstream* inF)
         for (int i = 0; i < bAnzahl; ++i)
         for (int i = 0; i < bAnzahl; ++i)
         {
         {
             LTDBKopf* kpf = new LTDBKopf();
             LTDBKopf* kpf = new LTDBKopf();
-            kpf->laden(inF);              // bildname und halbe datei position
-            bilder->add(kpf->getTitel()); // setzt titel
+            kpf->laden(inF);              // image name and half file position
+            bilder->add(kpf->getTitel()); // sets title
             Punkt gr = kpf->getSize();
             Punkt gr = kpf->getSize();
             kpf->release();
             kpf->release();
             char p[5];
             char p[5];
-            inF->read((char*)p, 5); // andere haelfte der Dateiposition
+            inF->read((char*)p, 5); // other half of the file position
             unsigned __int64 position
             unsigned __int64 position
                 = (((__int64)gr.x << 52) & 0xFFF0000000000000)
                 = (((__int64)gr.x << 52) & 0xFFF0000000000000)
                 | (((__int64)gr.y << 40) & 0xFFF0000000000)
                 | (((__int64)gr.y << 40) & 0xFFF0000000000)
@@ -621,7 +614,7 @@ void LTDBDateiKopf::laden(FBalken* f, std::ifstream* inF)
                 | (((__int64)p[1] << 24) & 0xFF000000)
                 | (((__int64)p[1] << 24) & 0xFF000000)
                 | (((__int64)p[2] << 16) & 0xFF0000)
                 | (((__int64)p[2] << 16) & 0xFF0000)
                 | (((__int64)p[3] << 8) & 0xFF00) | ((__int64)p[4] & 0xFF);
                 | (((__int64)p[3] << 8) & 0xFF00) | ((__int64)p[4] & 0xFF);
-            pos->add(position, i); // setzt position
+            pos->add(position, i); // sets position
 #ifdef WIN32
 #ifdef WIN32
             if (f) f->aktionPlus();
             if (f) f->aktionPlus();
 #endif
 #endif
@@ -714,14 +707,14 @@ RCArray<Text>* LTDBDateiKopf::zBildListe() const
     return bilder;
     return bilder;
 }
 }
 
 
-// Inhalt der LTDBKopf Klasse aus DateiSystem.h
-// Konstruktor
+// Content of the LTDBKopf class from DateiSystem.h
+// Constructor
 LTDBKopf::LTDBKopf()
 LTDBKopf::LTDBKopf()
     : ReferenceCounter()
     : ReferenceCounter()
 {}
 {}
 
 
-// nicht constant
-void LTDBKopf::laden(std::ifstream* f) // Laet die Daten aus einer Datei
+// non-constant
+void LTDBKopf::laden(std::ifstream* f) // Loads data from a file
 {
 {
     if (f->is_open())
     if (f->is_open())
     {
     {
@@ -744,7 +737,7 @@ void LTDBKopf::laden(std::ifstream* f) // Laet die Daten aus einer Datei
     }
     }
 }
 }
 
 
-int LTDBKopf::Init(Text* t, const Punkt& g) // Befuellt die Daten
+int LTDBKopf::Init(Text* t, const Punkt& g) // Fills the data
 {
 {
     a = 0;
     a = 0;
     b = 0;
     b = 0;
@@ -760,13 +753,16 @@ int LTDBKopf::Init(Text* t, const Punkt& g) // Befuellt die Daten
             titel[i - skipped] = (char)(titel[i - skipped] - 96);
             titel[i - skipped] = (char)(titel[i - skipped] - 96);
         else if (titel[i - skipped] > 64 && titel[i - skipped] < 91)
         else if (titel[i - skipped] > 64 && titel[i - skipped] < 91)
             titel[i - skipped] = (char)(titel[i - skipped] - 64);
             titel[i - skipped] = (char)(titel[i - skipped] - 64);
-        else if (titel[i - skipped] == 'ü' || titel[i - skipped] == 'Ü')
+        else if (titel[i - skipped] == SpecialCharacters::SMALL_UE
+                 || titel[i - skipped] == SpecialCharacters::BIG_UE)
             titel[i - skipped] = 27;
             titel[i - skipped] = 27;
-        else if (titel[i - skipped] == 'ö' || titel[i - skipped] == 'Ö')
+        else if (titel[i - skipped] == SpecialCharacters::SMALL_OE
+                 || titel[i - skipped] == SpecialCharacters::BIG_OE)
             titel[i - skipped] = 28;
             titel[i - skipped] = 28;
-        else if (titel[i - skipped] == 'ä' || titel[i - skipped] == 'Ä')
+        else if (titel[i - skipped] == SpecialCharacters::SMALL_AE
+                 || titel[i - skipped] == SpecialCharacters::BIG_AE)
             titel[i - skipped] = 29;
             titel[i - skipped] = 29;
-        else if (titel[i - skipped] == 'ß')
+        else if (titel[i - skipped] == SpecialCharacters::SZ)
             titel[i - skipped] = 30;
             titel[i - skipped] = 30;
         else if (titel[i - skipped] == '.')
         else if (titel[i - skipped] == '.')
             titel[i - skipped] = 31;
             titel[i - skipped] = 31;
@@ -781,54 +777,54 @@ int LTDBKopf::Init(Text* t, const Punkt& g) // Befuellt die Daten
         switch (i)
         switch (i)
         {
         {
         case 0:
         case 0:
-            a |= (__int64)(titel[i] & 31) << 55; // ersten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 55; // store 1st character
             break;
             break;
         case 1:
         case 1:
-            a |= (__int64)(titel[i] & 31) << 50; // zweiten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 50; // store 2nd character
             break;
             break;
         case 2:
         case 2:
-            a |= (__int64)(titel[i] & 31) << 45; // dritten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 45; // store 3rd character
             break;
             break;
         case 3:
         case 3:
-            a |= (__int64)(titel[i] & 31) << 40; // vierten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 40; // store 4th character
             break;
             break;
         case 4:
         case 4:
             a |= (__int64)(titel[i] & 31)
             a |= (__int64)(titel[i] & 31)
-              << 35; // fuenften Buchstaben speichern
+              << 35; // store 5th character
             break;
             break;
         case 5:
         case 5:
             a |= (__int64)(titel[i] & 31)
             a |= (__int64)(titel[i] & 31)
-              << 30; // sechsten Buchstaben speichern
+              << 30; // store 6th character
             break;
             break;
         case 6:
         case 6:
-            a |= (__int64)(titel[i] & 31) << 25; // siebten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 25; // store 7th character
             break;
             break;
         case 7:
         case 7:
-            a |= (__int64)(titel[i] & 31) << 20; // achten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 20; // store 8th character
             break;
             break;
         case 8:
         case 8:
-            a |= (__int64)(titel[i] & 31) << 15; // neunten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 15; // store 9th character
             break;
             break;
         case 9:
         case 9:
-            a |= (__int64)(titel[i] & 31) << 10; // zenten Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 10; // store 10th character
             break;
             break;
         case 10:
         case 10:
-            a |= (__int64)(titel[i] & 31) << 5; // elften Buchstaben speichern
+            a |= (__int64)(titel[i] & 31) << 5; // store 11th character
             break;
             break;
         case 11:
         case 11:
-            a |= (__int64)(titel[i] & 31); // zwoelften Buchstaben speichern
+            a |= (__int64)(titel[i] & 31); // store 12th character
             break;
             break;
         case 12:
         case 12:
             b |= (__int32)(titel[i] & 31)
             b |= (__int32)(titel[i] & 31)
-              << 27; // dreizenten Buchstaben speichern
+              << 27; // store 13th character
             break;
             break;
         case 13:
         case 13:
             b |= (__int32)(titel[i] & 31)
             b |= (__int32)(titel[i] & 31)
-              << 22; // vierzenten Buchstaben speichern
+              << 22; // store 14th character
             break;
             break;
         case 14:
         case 14:
             b |= (__int32)(titel[i] & 31)
             b |= (__int32)(titel[i] & 31)
-              << 17; // fuenfzenten Buchstaben speichern
+              << 17; // store 15th character
             break;
             break;
         }
         }
     }
     }
@@ -886,13 +882,13 @@ void LTDBKopf::setBits(int BeginBit, int EndBit, __int16 bits)
 
 
 // constant
 // constant
 void LTDBKopf::speichern(
 void LTDBKopf::speichern(
-    std::ofstream* f) const // Speichert die Daten in eine Datei
+    std::ofstream* f) const // Saves data to a file
 {
 {
     if (f->is_open())
     if (f->is_open())
     {
     {
-        int bits = 4 /*Titellaenge*/ + getTitelLength() * 5 /*Titel*/
-                 + 24 /*Bildgroesse*/;
-        int bytes = bits / 8; // Bytelaenge des Dateikopfes
+        int bits = 4 /*title length*/ + getTitelLength() * 5 /*title*/
+                 + 24 /*image size*/;
+        int bytes = bits / 8; // byte length of the file header
         if (((float)bits / 8.0f) != (float)bytes) ++bytes;
         if (((float)bits / 8.0f) != (float)bytes) ++bytes;
         char c = 0;
         char c = 0;
         for (int i = 0; i < bytes; ++i)
         for (int i = 0; i < bytes; ++i)
@@ -903,13 +899,13 @@ void LTDBKopf::speichern(
     }
     }
 }
 }
 
 
-int LTDBKopf::getTitelLength() const // gibt die laenge des Bildnamens zurueck
+int LTDBKopf::getTitelLength() const // returns the length of the image name
 {
 {
-    return (int)(a >> 60 & Bits(4)); // Die Laenge des Titels wird in den ersten
-                                     // 4 Bits der Tatei gespeichert
+    return (int)(a >> 60 & Bits(4)); // The title length is stored in the first
+                                     // 4 bits of the file
 }
 }
 
 
-Text* LTDBKopf::getTitel() const // gibt den Namen des Bildes zurueck
+Text* LTDBKopf::getTitel() const // returns the name of the image
 {
 {
     Text* ret = new Text("");
     Text* ret = new Text("");
     char c[2];
     char c[2];
@@ -921,49 +917,49 @@ Text* LTDBKopf::getTitel() const // gibt den Namen des Bildes zurueck
         switch (i)
         switch (i)
         {
         {
         case 0:
         case 0:
-            c[0] = (a >> 55) & 31; // ersten Buchstaben holen
+            c[0] = (a >> 55) & 31; // get 1st character
             break;
             break;
         case 1:
         case 1:
-            c[0] = (a >> 50) & 31; // zweiten Buchstaben holen
+            c[0] = (a >> 50) & 31; // get 2nd character
             break;
             break;
         case 2:
         case 2:
-            c[0] = (a >> 45) & 31; // dritten Buchstaben holen
+            c[0] = (a >> 45) & 31; // get 3rd character
             break;
             break;
         case 3:
         case 3:
-            c[0] = (a >> 40) & 31; // vierten Buchstaben holen
+            c[0] = (a >> 40) & 31; // get 4th character
             break;
             break;
         case 4:
         case 4:
-            c[0] = (a >> 35) & 31; // fuenften Buchstaben holen
+            c[0] = (a >> 35) & 31; // get 5th character
             break;
             break;
         case 5:
         case 5:
-            c[0] = (a >> 30) & 31; // sechsten Buchstaben holen
+            c[0] = (a >> 30) & 31; // get 6th character
             break;
             break;
         case 6:
         case 6:
-            c[0] = (a >> 25) & 31; // siebten Buchstaben holen
+            c[0] = (a >> 25) & 31; // get 7th character
             break;
             break;
         case 7:
         case 7:
-            c[0] = (a >> 20) & 31; // achten Buchstaben holen
+            c[0] = (a >> 20) & 31; // get 8th character
             break;
             break;
         case 8:
         case 8:
-            c[0] = (a >> 15) & 31; // neunten Buchstaben holen
+            c[0] = (a >> 15) & 31; // get 9th character
             break;
             break;
         case 9:
         case 9:
-            c[0] = (a >> 10) & 31; // zenten Buchstaben holen
+            c[0] = (a >> 10) & 31; // get 10th character
             break;
             break;
         case 10:
         case 10:
-            c[0] = (a >> 5) & 31; // elften Buchstaben holen
+            c[0] = (a >> 5) & 31; // get 11th character
             break;
             break;
         case 11:
         case 11:
-            c[0] = a & 31; // zwoelften Buchstaben holen
+            c[0] = a & 31; // get 12th character
             break;
             break;
         case 12:
         case 12:
-            c[0] = (char)((b >> 27) & 31); // dreizenten Buchstaben holen
+            c[0] = (char)((b >> 27) & 31); // get 13th character
             break;
             break;
         case 13:
         case 13:
-            c[0] = (char)((b >> 22) & 31); // vierzenten Buchstaben holen
+            c[0] = (char)((b >> 22) & 31); // get 14th character
             break;
             break;
         case 14:
         case 14:
-            c[0] = (char)((b >> 17) & 31); // fuenfzenten Buchstaben holen
+            c[0] = (char)((b >> 17) & 31); // get 15th character
             break;
             break;
         }
         }
         if (c[0] == 27)
         if (c[0] == 27)
@@ -983,9 +979,9 @@ Text* LTDBKopf::getTitel() const // gibt den Namen des Bildes zurueck
     return ret;
     return ret;
 }
 }
 
 
-Punkt LTDBKopf::getSize() const // gibt die Groesse des Bildes zurueck
+Punkt LTDBKopf::getSize() const // returns the size of the image
 {
 {
-    int BeginBit = 4 /*Titellaenge*/ + getTitelLength() * 5 /*Titel*/;
+    int BeginBit = 4 /*title length*/ + getTitelLength() * 5 /*title*/;
     int EndBit = BeginBit + 24;
     int EndBit = BeginBit + 24;
     __int16 grx = getBits(BeginBit, EndBit - 12);
     __int16 grx = getBits(BeginBit, EndBit - 12);
     __int16 gry = getBits(BeginBit + 12, EndBit);
     __int16 gry = getBits(BeginBit + 12, EndBit);
@@ -993,7 +989,7 @@ Punkt LTDBKopf::getSize() const // gibt die Groesse des Bildes zurueck
 }
 }
 
 
 __int16 LTDBKopf::getBits(int begin,
 __int16 LTDBKopf::getBits(int begin,
-    int ende) const // gibt die Bits von begin bis ende zurueck( ohne ende );
+int ende) const // returns the bits from begin to ende (excluding ende)
 {
 {
     if (ende < begin) return 0;
     if (ende < begin) return 0;
     if (ende - begin > 16) ende = begin + 16;
     if (ende - begin > 16) ende = begin + 16;
@@ -1037,15 +1033,15 @@ __int16 LTDBKopf::getBits(int begin,
     return ret;
     return ret;
 }
 }
 
 
-// Inhalt der LTDBKoerper Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDBBody class from Dateisystem.h
+// Constructor
 LTDBBody::LTDBBody()
 LTDBBody::LTDBBody()
     : ReferenceCounter(),
     : ReferenceCounter(),
       gr(0, 0),
       gr(0, 0),
       b(new Bild())
       b(new Bild())
 {}
 {}
 
 
-LTDBBody::LTDBBody(LTDBKopf* k) // ruft Init auf
+LTDBBody::LTDBBody(LTDBKopf* k) // calls init
     : ReferenceCounter(),
     : ReferenceCounter(),
       gr(0, 0),
       gr(0, 0),
       b(new Bild())
       b(new Bild())
@@ -1053,14 +1049,14 @@ LTDBBody::LTDBBody(LTDBKopf* k) // ruft Init auf
     init(k);
     init(k);
 }
 }
 
 
-// Destruktor
+// Destructor
 LTDBBody::~LTDBBody()
 LTDBBody::~LTDBBody()
 {
 {
     b->release();
     b->release();
 }
 }
 
 
-// nicht constant
-void LTDBBody::init(LTDBKopf k) // Initialisiert, wird vor dem laden benoetigt
+// non-constant
+void LTDBBody::init(LTDBKopf k) // Initializes, required before loading
 {
 {
     gr = k.getSize();
     gr = k.getSize();
     int l = k.getTitelLength();
     int l = k.getTitelLength();
@@ -1068,7 +1064,7 @@ void LTDBBody::init(LTDBKopf k) // Initialisiert, wird vor dem laden benoetigt
     dateiSize = (l / 8.0 == l) ? (l / 8) : (l / 8 + 1);
     dateiSize = (l / 8.0 == l) ? (l / 8) : (l / 8 + 1);
 }
 }
 
 
-void LTDBBody::init(LTDBKopf* k) // Initialisiert, wird vor dem laden benoetigt
+void LTDBBody::init(LTDBKopf* k) // Initializes, required before loading
 {
 {
     gr = k->getSize();
     gr = k->getSize();
     int l = k->getTitelLength();
     int l = k->getTitelLength();
@@ -1077,16 +1073,16 @@ void LTDBBody::init(LTDBKopf* k) // Initialisiert, wird vor dem laden benoetigt
     k->release();
     k->release();
 }
 }
 
 
-void LTDBBody::laden(FBalken* zF, std::ifstream* inF) // laed das Bild
+void LTDBBody::laden(FBalken* zF, std::ifstream* inF) // loads the image
 {
 {
-    b->neuBild(gr.x, gr.y, 0xFF000000); // neues Bild erstellen
+    b->neuBild(gr.x, gr.y, 0xFF000000); // create new image
     int* buff = b->getBuffer();
     int* buff = b->getBuffer();
     int breite = b->getBreite();
     int breite = b->getBreite();
     char byte = 0;
     char byte = 0;
     int index = 0;
     int index = 0;
-    LTDBPixel* davor = 0;                 // zuletzt geladener Pixel
-    LTDBPixel* dieser = new LTDBPixel(0); // momentan zu ladener Pixel
-    int begin = 0; // Pixelbegin, endposition in der byte variable
+    LTDBPixel* davor = 0;                 // last loaded pixel
+    LTDBPixel* dieser = new LTDBPixel(0); // pixel currently being loaded
+    int begin = 0; // pixel start, end position in the byte variable
 #ifdef WIN32
 #ifdef WIN32
     if (zF)
     if (zF)
     {
     {
@@ -1094,15 +1090,15 @@ void LTDBBody::laden(FBalken* zF, std::ifstream* inF) // laed das Bild
         zF->setAktionAnzahl(gr.x * gr.y);
         zF->setAktionAnzahl(gr.x * gr.y);
     }
     }
 #endif
 #endif
-    while (index < gr.x * gr.y) // fuer jeden Pixel
+    while (index < gr.x * gr.y) // for each pixel
     {
     {
-        if (!dieser) // wenn es nicht der erste Pixel ist
+        if (!dieser) // if it is not the first pixel
             dieser = new LTDBPixel(dynamic_cast<LTDBPixel*>(davor->getThis()));
             dieser = new LTDBPixel(dynamic_cast<LTDBPixel*>(davor->getThis()));
         int ende = -1;
         int ende = -1;
-        while (ende < 0) // Pixel laden
+        while (ende < 0) // load pixel
         {
         {
             if (begin == 0) inF->read(&byte, 1);
             if (begin == 0) inF->read(&byte, 1);
-            ende = dieser->addByte(byte, (char)begin); // byte auswerten
+            ende = dieser->addByte(byte, (char)begin); // evaluate byte
             begin = 0;
             begin = 0;
         }
         }
         begin = ende;
         begin = ende;
@@ -1119,7 +1115,7 @@ void LTDBBody::laden(FBalken* zF, std::ifstream* inF) // laed das Bild
     if (davor) davor = (LTDBPixel*)davor->release();
     if (davor) davor = (LTDBPixel*)davor->release();
 }
 }
 
 
-void LTDBBody::setBild(Bild* b) // setzt das zu speichernde Bild
+void LTDBBody::setBild(Bild* b) // sets the image to be saved
 {
 {
     this->b->release();
     this->b->release();
     this->b = b;
     this->b = b;
@@ -1127,16 +1123,16 @@ void LTDBBody::setBild(Bild* b) // setzt das zu speichernde Bild
 
 
 // constant
 // constant
 void LTDBBody::speichern(
 void LTDBBody::speichern(
-    FBalken* zF, std::ofstream* outF) const // speichert Bild
+    FBalken* zF, std::ofstream* outF) const // saves image
 {
 {
     if (outF->is_open())
     if (outF->is_open())
     {
     {
-        LTDBPixel* letzter = 0; // Letzter gespeicherter Pixel
+        LTDBPixel* letzter = 0; // Last saved pixel
         LTDBPixel* dieser
         LTDBPixel* dieser
-            = new LTDBPixel(0); // Der momentan zu speichernde Pixel
+            = new LTDBPixel(0); // The pixel currently being saved
         int begin = 0,
         int begin = 0,
-            ende = 0;  // Pixelbeginn, endposition in der byte variable
-        char byte = 0; // Der naechste byte der Datei
+            ende = 0;  // pixel start, end position in the byte variable
+        char byte = 0; // The next byte of the file
         bool w = 0;
         bool w = 0;
 #ifdef WIN32
 #ifdef WIN32
         if (zF)
         if (zF)
@@ -1146,31 +1142,31 @@ void LTDBBody::speichern(
         }
         }
 #endif
 #endif
         int* pBuff = b->getBuffer();
         int* pBuff = b->getBuffer();
-        for (int i = 0; i < gr.x * gr.y; ++i) // fuer jeden Pixel
+        for (int i = 0; i < gr.x * gr.y; ++i) // for each pixel
         {
         {
-            if (!dieser) // wenn es nicht der erste Pixel ist
+            if (!dieser) // if it is not the first pixel
                 dieser = new LTDBPixel(
                 dieser = new LTDBPixel(
                     dynamic_cast<LTDBPixel*>(letzter->getThis()));
                     dynamic_cast<LTDBPixel*>(letzter->getThis()));
-            dieser->setFarbe(pBuff[i]); // Farbe des Pixels setzen
-            dieser->komprimieren();     // Pixel komprimieren
+            dieser->setFarbe(pBuff[i]); // set pixel color
+            dieser->komprimieren();     // compress pixel
             ende = -1;
             ende = -1;
-            while (ende < 0) // byte befuellen
+            while (ende < 0) // fill byte
             {
             {
                 ende = dieser->getNextByte(byte, begin);
                 ende = dieser->getNextByte(byte, begin);
                 begin = 0;
                 begin = 0;
                 w = 0;
                 w = 0;
-                if (ende == -1 || ende == 8) // byte speichern
+                if (ende == -1 || ende == 8) // save byte
                 {
                 {
                     outF->write(&byte, 1);
                     outF->write(&byte, 1);
                     w = 1;
                     w = 1;
                     byte = 0;
                     byte = 0;
                 }
                 }
-            } // Pixel fertig
+            } // pixel finished
             begin = ende;
             begin = ende;
             if (begin == 8) begin = 0;
             if (begin == 8) begin = 0;
             if (letzter) letzter->release();
             if (letzter) letzter->release();
             letzter = dynamic_cast<LTDBPixel*>(
             letzter = dynamic_cast<LTDBPixel*>(
-                dieser->getThis()); // dieser wird zu letzter
+                dieser->getThis()); // dieser becomes letzter
             dieser = (LTDBPixel*)dieser->release();
             dieser = (LTDBPixel*)dieser->release();
 #ifdef WIN32
 #ifdef WIN32
             if (zF) zF->aktionPlus();
             if (zF) zF->aktionPlus();
@@ -1179,47 +1175,47 @@ void LTDBBody::speichern(
         if (letzter) letzter = (LTDBPixel*)letzter->release();
         if (letzter) letzter = (LTDBPixel*)letzter->release();
         if (!w)
         if (!w)
         {
         {
-            outF->write(&byte, 1); // Das letzte byte speichern
+            outF->write(&byte, 1); // save the last byte
         }
         }
-        outF->flush(); // dateistream speichern
+        outF->flush(); // flush file stream
     }
     }
 }
 }
 
 
-Bild* LTDBBody::getBild() const // gibt das geladene Bild zurueck
+Bild* LTDBBody::getBild() const // returns the loaded image
 {
 {
     return dynamic_cast<Bild*>(b->getThis());
     return dynamic_cast<Bild*>(b->getThis());
 }
 }
 
 
-const Punkt& LTDBBody::getSize() const // gibt die groesse des Bildes zurueck
+const Punkt& LTDBBody::getSize() const // returns the size of the image
 {
 {
     return gr;
     return gr;
 }
 }
 
 
-// Inhalt det LTDBDatei Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDBDatei class from Dateisystem.h
+// Constructor
 LTDBDatei::LTDBDatei()
 LTDBDatei::LTDBDatei()
     : ReferenceCounter(),
     : ReferenceCounter(),
       pfad(new Text()),
       pfad(new Text()),
       datKpf(0)
       datKpf(0)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 LTDBDatei::~LTDBDatei()
 LTDBDatei::~LTDBDatei()
 {
 {
     if (pfad) pfad->release();
     if (pfad) pfad->release();
     if (datKpf) datKpf->release();
     if (datKpf) datKpf->release();
 }
 }
 
 
-// nicht constant
-void LTDBDatei::setDatei(Text* pfad) // Setzt den Pfad zur Datei
-{ // Werte der eventuellen vorherigen Datei loeschen
+// non-constant
+void LTDBDatei::setDatei(Text* pfad) // Sets the path to the file
+{ // Delete values of any previous file
     if (datKpf) datKpf = (LTDBDateiKopf*)datKpf->release();
     if (datKpf) datKpf = (LTDBDateiKopf*)datKpf->release();
-    // Pfad setzen
+    // Set path
     this->pfad->setText(*pfad);
     this->pfad->setText(*pfad);
     pfad->release();
     pfad->release();
 }
 }
 
 
-void LTDBDatei::erstellen() // Erstellt die Datei
+void LTDBDatei::erstellen() // Creates the file
 {
 {
     DateiPfadErstellen(dynamic_cast<Text*>(pfad->getThis()));
     DateiPfadErstellen(dynamic_cast<Text*>(pfad->getThis()));
     std::ofstream* outF = new std::ofstream(pfad->getText(), std::ios::binary);
     std::ofstream* outF = new std::ofstream(pfad->getText(), std::ios::binary);
@@ -1229,10 +1225,10 @@ void LTDBDatei::erstellen() // Erstellt die Datei
 }
 }
 
 
 void LTDBDatei::leseDaten(
 void LTDBDatei::leseDaten(
-    FBalken* f) // Die Klasse liesst alle Bilder kurz ein, und merkt sich, an
-                // welcher stelle in der Datei was ist
-{ // Diese Funktion wird ein wenig Zeit in Anspruch nemen, dafueraber danach die
-  // anderen schneller machen
+    FBalken* f) // The class briefly reads all images and remembers
+                // where in the file each one is located
+{ // This function will take some time, but will make
+  // the other functions faster afterwards
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     {
     {
         if (datKpf) datKpf->release();
         if (datKpf) datKpf->release();
@@ -1244,7 +1240,7 @@ void LTDBDatei::leseDaten(
     }
     }
 }
 }
 
 
-void LTDBDatei::remove() // Loescht die Datei
+void LTDBDatei::remove() // Deletes the file
 {
 {
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     {
     {
@@ -1253,24 +1249,24 @@ void LTDBDatei::remove() // Loescht die Datei
     }
     }
 }
 }
 
 
-void LTDBDatei::remove(FBalken* f, Text* name) // Loescht ein Bild aus der Datei
+void LTDBDatei::remove(FBalken* f, Text* name) // Deletes an image from the file
 {
 {
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())) && name)
     if (DateiExistiert(dynamic_cast<Text*>(pfad->getThis())) && name)
     {
     {
-        if (!datKpf) leseDaten(0); // Daten einlesen
-        // Pruefen, ob Datei nicht vorhanden
+        if (!datKpf) leseDaten(0); // read data
+        // Check if file is not present
         if (!datKpf)
         if (!datKpf)
         {
         {
             name->release();
             name->release();
             return;
             return;
         }
         }
         int index = datKpf->getBildIndex(dynamic_cast<Text*>(name->getThis()));
         int index = datKpf->getBildIndex(dynamic_cast<Text*>(name->getThis()));
-        if (index == -1) // das bild existiert nicht
+        if (index == -1) // the image does not exist
         {
         {
             name->release();
             name->release();
             return;
             return;
         }
         }
-        // Zwischenspeicherpfad ermitteln
+        // Determine temporary file path
         Text* pf_tmp = new Text(pfad->getText());
         Text* pf_tmp = new Text(pfad->getText());
         char c = '0';
         char c = '0';
         pf_tmp->append("0");
         pf_tmp->append("0");
@@ -1285,12 +1281,12 @@ void LTDBDatei::remove(FBalken* f, Text* name) // Loescht ein Bild aus der Datei
                 c);
                 c);
         }
         }
         std::ifstream* inF = new std::ifstream(
         std::ifstream* inF = new std::ifstream(
-            pfad->getText(), std::ios::binary); // Alte Datei oeffnen
+            pfad->getText(), std::ios::binary); // open old file
         inF->seekg(0, std::ios::end);
         inF->seekg(0, std::ios::end);
         __int64 datlen = inF->tellg();
         __int64 datlen = inF->tellg();
         inF->seekg(0, std::ios::beg);
         inF->seekg(0, std::ios::beg);
         std::ofstream* outF = new std::ofstream(
         std::ofstream* outF = new std::ofstream(
-            pf_tmp->getText(), std::ios::binary); // Neue Datei oeffnen
+            pf_tmp->getText(), std::ios::binary); // open new file
         if (inF->is_open() && outF->is_open())
         if (inF->is_open() && outF->is_open())
         {
         {
             __int64 position = datKpf->getBildPosition(index);
             __int64 position = datKpf->getBildPosition(index);
@@ -1303,19 +1299,19 @@ void LTDBDatei::remove(FBalken* f, Text* name) // Loescht ein Bild aus der Datei
             __int64 pos_minus = inF->tellg() - outF->tellp();
             __int64 pos_minus = inF->tellg() - outF->tellp();
             for (int i = 0; i < index; ++i)
             for (int i = 0; i < index; ++i)
                 datKpf->setBildPos(i, datKpf->getBildPosition(i) - pos_minus);
                 datKpf->setBildPos(i, datKpf->getBildPosition(i) - pos_minus);
-            // Bytes bis zur Datei kopieren
+            // Copy bytes up to the file
             for (__int64 i = inF->tellg(); i < position; ++i)
             for (__int64 i = inF->tellg(); i < position; ++i)
             {
             {
                 inF->read(&byte, 1);
                 inF->read(&byte, 1);
                 outF->write(&byte, 1);
                 outF->write(&byte, 1);
-            } // zu loeschendes Bild ueberspringen
+            } // skip image to be deleted
             LTDBKopf* delkpf = new LTDBKopf();
             LTDBKopf* delkpf = new LTDBKopf();
             delkpf->laden(inF);
             delkpf->laden(inF);
             LTDBBody* delkpr
             LTDBBody* delkpr
                 = new LTDBBody(dynamic_cast<LTDBKopf*>(delkpf->getThis()));
                 = new LTDBBody(dynamic_cast<LTDBKopf*>(delkpf->getThis()));
             delkpr->laden(f, inF);
             delkpr->laden(f, inF);
             delkpf = (LTDBKopf*)delkpf->release();
             delkpf = (LTDBKopf*)delkpf->release();
-            delkpr = (LTDBBody*)delkpr->release(); // restliche bytes kopieren
+            delkpr = (LTDBBody*)delkpr->release(); // copy remaining bytes
             pos_minus = inF->tellg() - outF->tellp();
             pos_minus = inF->tellg() - outF->tellp();
             for (__int64 i = (__int64)inF->tellg(); i < datlen; ++i)
             for (__int64 i = (__int64)inF->tellg(); i < datlen; ++i)
             {
             {
@@ -1339,7 +1335,7 @@ void LTDBDatei::remove(FBalken* f, Text* name) // Loescht ein Bild aus der Datei
     if (name) name = (Text*)name->release();
     if (name) name = (Text*)name->release();
 }
 }
 
 
-Bild* LTDBDatei::laden(FBalken* f, Text* name) // Laed ein Bild aus der Datei
+Bild* LTDBDatei::laden(FBalken* f, Text* name) // Loads an image from the file
 {
 {
     if (name)
     if (name)
     {
     {
@@ -1354,42 +1350,42 @@ Bild* LTDBDatei::laden(FBalken* f, Text* name) // Laed ein Bild aus der Datei
         int index = datKpf->getBildIndex(k_tmp->getTitel());
         int index = datKpf->getBildIndex(k_tmp->getTitel());
         k_tmp->release();
         k_tmp->release();
         if (index == -1)
         if (index == -1)
-        { // Fehlermeldung
-            Text* fehler = new Text("Das Bild ");
+        { // Error message
+            Text* fehler = new Text("The image ");
             fehler->append(*name);
             fehler->append(*name);
-            fehler->append(" wurde nicht in der Datei\n");
+            fehler->append(" was not found in the file\n");
             fehler->append(*pfad);
             fehler->append(*pfad);
-            fehler->append(" gefunden!");
+            fehler->append("!");
             Logging::error() << fehler << "\n";
             Logging::error() << fehler << "\n";
             name->release();
             name->release();
             return 0;
             return 0;
         }
         }
         std::ifstream* inF
         std::ifstream* inF
             = new std::ifstream(pfad->getText(), std::ios::binary);
             = new std::ifstream(pfad->getText(), std::ios::binary);
-        // Begin der zu ladenden Datei ermitteln
+        // Determine start of the file to load
         __int64 position = datKpf->getBildPosition(index);
         __int64 position = datKpf->getBildPosition(index);
         inF->seekg(position, std::ios::beg);
         inF->seekg(position, std::ios::beg);
         LTDBKopf* kpf = new LTDBKopf();
         LTDBKopf* kpf = new LTDBKopf();
         kpf->laden(inF);
         kpf->laden(inF);
         Text* t = kpf->getTitel();
         Text* t = kpf->getTitel();
         if (!t->istGleich(*name))
         if (!t->istGleich(*name))
-        { // Fehlermeldung
+        { // Error message
             t->release();
             t->release();
             kpf->release();
             kpf->release();
             inF->close();
             inF->close();
             delete inF;
             delete inF;
-            Text* fehler = new Text("Die Datei ");
+            Text* fehler = new Text("The file ");
             fehler->append(*pfad);
             fehler->append(*pfad);
-            fehler->append(" ist ist keine gültige LTDB Datei!");
+            fehler->append(" is not a valid LTDB file!");
 #ifdef WIN32
 #ifdef WIN32
-            WMessageBox(0, new Text("Fehler"), fehler, MB_ICONERROR);
+            WMessageBox(0, new Text("Error"), fehler, MB_ICONERROR);
 #endif
 #endif
             name->release();
             name->release();
             return 0;
             return 0;
         }
         }
         t->release();
         t->release();
         LTDBBody* kpr = new LTDBBody(dynamic_cast<LTDBKopf*>(kpf->getThis()));
         LTDBBody* kpr = new LTDBBody(dynamic_cast<LTDBKopf*>(kpf->getThis()));
-        kpr->laden(f, inF); // Bild laden
+        kpr->laden(f, inF); // load image
         Bild* ret = kpr->getBild();
         Bild* ret = kpr->getBild();
         kpr->release();
         kpr->release();
         kpf->release();
         kpf->release();
@@ -1402,7 +1398,7 @@ Bild* LTDBDatei::laden(FBalken* f, Text* name) // Laed ein Bild aus der Datei
 }
 }
 
 
 int LTDBDatei::speichern(
 int LTDBDatei::speichern(
-    FBalken* f, Bild* bild, Text* name) // Speichert ein Bild in die Datei
+FBalken* f, Bild* bild, Text* name) // Saves an image to the file
 {
 {
     int warn = -1;
     int warn = -1;
     if (name && bild)
     if (name && bild)
@@ -1421,13 +1417,13 @@ int LTDBDatei::speichern(
                 if (datKpf->getBildIndex(kpf->getTitel()) != -1)
                 if (datKpf->getBildIndex(kpf->getTitel()) != -1)
                 {
                 {
                     Logging::error()
                     Logging::error()
-                        << "Es existiert bereits ein Bild mit diesem Namen!\n";
+                        << "An image with this name already exists!\n";
                     bild->release();
                     bild->release();
                     name->release();
                     name->release();
                     kpf->release();
                     kpf->release();
                     return -1;
                     return -1;
                 }
                 }
-                // zwischendateipfad suchen
+                // find temporary file path
                 Text* pf_tmp = new Text(pfad->getText());
                 Text* pf_tmp = new Text(pfad->getText());
                 char c = '0';
                 char c = '0';
                 pf_tmp->append("0");
                 pf_tmp->append("0");
@@ -1468,11 +1464,11 @@ int LTDBDatei::speichern(
                     inF->read(&byte, 1);
                     inF->read(&byte, 1);
                     outF->write(&byte, 1);
                     outF->write(&byte, 1);
                 }
                 }
-                kpf->speichern(outF); // Bild Kopf speichern
+                kpf->speichern(outF); // save image header
                 LTDBBody* kpr
                 LTDBBody* kpr
                     = new LTDBBody(dynamic_cast<LTDBKopf*>(kpf->getThis()));
                     = new LTDBBody(dynamic_cast<LTDBKopf*>(kpf->getThis()));
                 kpr->setBild(dynamic_cast<Bild*>(bild->getThis()));
                 kpr->setBild(dynamic_cast<Bild*>(bild->getThis()));
-                kpr->speichern(f, outF); // Bild speichern
+                kpr->speichern(f, outF); // save image
                 kpf->release();
                 kpf->release();
                 kpr->release();
                 kpr->release();
                 inF->close();
                 inF->close();
@@ -1490,7 +1486,7 @@ int LTDBDatei::speichern(
     return warn;
     return warn;
 }
 }
 
 
-RCArray<Text>* LTDBDatei::zBildListe() // Listet alle Bilder in der datei auf
+RCArray<Text>* LTDBDatei::zBildListe() // Lists all images in the file
 {
 {
     if (!datKpf) leseDaten(0);
     if (!datKpf) leseDaten(0);
     if (datKpf) return datKpf->zBildListe();
     if (datKpf) return datKpf->zBildListe();
@@ -1498,7 +1494,7 @@ RCArray<Text>* LTDBDatei::zBildListe() // Listet alle Bilder in der datei auf
 }
 }
 
 
 // constant
 // constant
-Text* LTDBDatei::getPfad() const // Gibt den Pfad zur Datei zurueck
+Text* LTDBDatei::getPfad() const // Returns the path to the file
 {
 {
     return dynamic_cast<Text*>(pfad->getThis());
     return dynamic_cast<Text*>(pfad->getThis());
 }
 }
@@ -1509,15 +1505,15 @@ int LTDBDatei::getBildAnzahl() const
     return datKpf->getbAnzahl();
     return datKpf->getbAnzahl();
 }
 }
 
 
-bool LTDBDatei::istOffen() const // Prueft, ob die Datei geoeffnet ist
+bool LTDBDatei::istOffen() const // Checks if the file is open
 {
 {
     if (!pfad) return 0;
     if (!pfad) return 0;
     return DateiExistiert(dynamic_cast<Text*>(pfad->getThis()));
     return DateiExistiert(dynamic_cast<Text*>(pfad->getThis()));
 }
 }
 #ifdef WIN32
 #ifdef WIN32
-// LTDS Dateivormat
-// Inhalt der LTDSPixel Klasse aus DateiSystem.h
-// Konstruktor
+// LTDS File format
+// Content of the LTDSPixel class from DateiSystem.h
+// Constructor
 LTDSPixel::LTDSPixel(LTDSPixel* davor)
 LTDSPixel::LTDSPixel(LTDSPixel* davor)
     : ReferenceCounter(),
     : ReferenceCounter(),
       index(0),
       index(0),
@@ -1531,28 +1527,28 @@ LTDSPixel::LTDSPixel(LTDSPixel* davor)
       davor(davor)
       davor(davor)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 LTDSPixel::~LTDSPixel()
 LTDSPixel::~LTDSPixel()
 {
 {
     if (davor) davor->release();
     if (davor) davor->release();
 }
 }
 
 
-// nicht constant
-// zum Laden gedacht
+// non-constant
+// intended for loading
 bool LTDSPixel::addBitZuFarbe(unsigned char bit)
 bool LTDSPixel::addBitZuFarbe(unsigned char bit)
 {
 {
-    if (aenderA && iA != miA) // Das Bit gehoert zu Alpha
+    if (aenderA && iA != miA) // The bit belongs to alpha
     {
     {
         alpha |= ((bit & Bits(1))) << (7 - komp - iA);
         alpha |= ((bit & Bits(1))) << (7 - komp - iA);
         ++iA;
         ++iA;
     }
     }
-    else // Das Bit gehoert zum naechsten Pixel
+    else // The bit belongs to the next pixel
         return false;
         return false;
     return true;
     return true;
 }
 }
 
 
 char LTDSPixel::addByte(char byte,
 char LTDSPixel::addByte(char byte,
-    char begin) // gibt ende des Pixels zurueck, -1 wenn nicht zu ende
+char begin) // returns end of pixel, -1 if not finished
 {
 {
     if (begin >= 8 || begin < 0) return -1;
     if (begin >= 8 || begin < 0) return -1;
     for (int i = begin; i < 8; ++i)
     for (int i = begin; i < 8; ++i)
@@ -1560,18 +1556,18 @@ char LTDSPixel::addByte(char byte,
         switch (index)
         switch (index)
         {
         {
         case 0:
         case 0:
-            // Das erste Bit eines Pixels speichert, ob sich an der
-            // Komprimierung etwas aenderte
+            // The first bit of a pixel stores whether the
+            // compression changed
             aender = ((byte >> (7 - i)) & Bits(1)) == 1;
             aender = ((byte >> (7 - i)) & Bits(1)) == 1;
-            if (!aender) // AEndert sich nichts an der Komprimierung, so werden
-                         // die Werte vom vorherigen Pixel uebernommen
+            if (!aender) // If compression doesn't change, the values
+                         // from the previous pixel are inherited
             {
             {
-                if (!davor) // Die Datei ist beschaedigt ( Der erste Pixel kann
-                            // nicht von dem davor UEbernemen )
+                if (!davor) // The file is corrupted (the first pixel cannot
+                            // inherit from the previous one)
                 {
                 {
                     MessageBox(NULL,
                     MessageBox(NULL,
-                        "Fehler, die Bilddatei ist beschädigt",
-                        "Fehler",
+                        "Error, the image file is corrupted",
+                        "Error",
                         MB_ICONERROR);
                         MB_ICONERROR);
                     exit(0);
                     exit(0);
                 }
                 }
@@ -1579,67 +1575,67 @@ char LTDSPixel::addByte(char byte,
                 komp = davor->getKomp();
                 komp = davor->getKomp();
                 miA -= komp;
                 miA -= komp;
                 if (!aenderA) alpha = davor->getA();
                 if (!aenderA) alpha = davor->getA();
-                maxIndex += aenderA * (8 - komp); // Bestimmung der Laenge
-                // des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits,
-                // durch komprimierung kanns kleiner sein
+                maxIndex += aenderA * (8 - komp); // Determine the length
+                // of the pixel in bits. Each color has 8 bits by default,
+                // compression can make it smaller
             }
             }
             else
             else
-                maxIndex += 4; // Da der Pixel nicht die Werte des vorherigen
-                               // uebernimmt, wird er um 4 Bits groesser
+                maxIndex += 4; // Since the pixel doesn't inherit values from
+                               // the previous one, it is 4 bits larger
             break;
             break;
-        case 1:         // Das zweite Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (aender) // Das Bit gehoert zu den 4 Komprimierungsbits
+        case 1:         // The second bit of a pixel stores either the
+                        // compression type or already the color
+            if (aender) // The bit belongs to the 4 compression bits
                 aenderA = ((byte >> (7 - i)) & Bits(1)) == 1;
                 aenderA = ((byte >> (7 - i)) & Bits(1)) == 1;
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        byte >> (7 - i))) // Das Bit gehoert zur Farbe
+                        byte >> (7 - i))) // The bit belongs to the color
                     return i;
                     return i;
             }
             }
             break;
             break;
-        case 2:         // Das sechste Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (aender) // Das Bit gehoert zu den 4 Komprimierungsbits
+        case 2:         // The sixth bit of a pixel stores either the
+                        // compression type or already the color
+            if (aender) // The bit belongs to the 4 compression bits
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1)) << 2;
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1)) << 2;
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        byte >> (7 - i))) // Das Bit gehoert zur Farbe
+                        byte >> (7 - i))) // The bit belongs to the color
                     return i;
                     return i;
             }
             }
             break;
             break;
-        case 3:         // Das siebte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (aender) // Das Bit gehoert zu den 4 Komprimierungsbits
+        case 3:         // The seventh bit of a pixel stores either the
+                        // compression type or already the color
+            if (aender) // The bit belongs to the 4 compression bits
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1)) << 1;
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1)) << 1;
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        byte >> (7 - i))) // Das Bit gehoert zur Farbe
+                        byte >> (7 - i))) // The bit belongs to the color
                     return i;
                     return i;
             }
             }
             break;
             break;
-        case 4:         // Das achte Bit eines Pixels speichert entweder die
-                        // Komprimierungsart, oder schon die Farbe
-            if (aender) // Das Bit gehoert zu den 4 Komprimierungsbits
+        case 4:         // The eighth bit of a pixel stores either the
+                        // compression type or already the color
+            if (aender) // The bit belongs to the 4 compression bits
             {
             {
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1));
                 komp |= (unsigned char)((byte >> (7 - i)) & Bits(1));
-                // Das war das letzte Komprimierungsbit
-                // Komprimierung auswerten
+                // That was the last compression bit
+                // Evaluate compression
                 miA -= komp;
                 miA -= komp;
                 if (!aenderA) alpha = davor->getA();
                 if (!aenderA) alpha = davor->getA();
-                maxIndex += aenderA * (8 - komp); // Bitlaenge des Pixels
+                maxIndex += aenderA * (8 - komp); // bit length of the pixel
             }
             }
             else
             else
             {
             {
                 if (!addBitZuFarbe(
                 if (!addBitZuFarbe(
-                        byte >> (7 - i))) // Das Bit gehoert zur Farbe
+                        byte >> (7 - i))) // The bit belongs to the color
                     return i;
                     return i;
             }
             }
             break;
             break;
-        default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
-            if (!addBitZuFarbe(byte >> (7 - i))) // Das Bit gehoert zur Farbe
+        default: // The remaining bits all store the color values of the pixel
+            if (!addBitZuFarbe(byte >> (7 - i))) // The bit belongs to the color
                 return i;
                 return i;
             break;
             break;
         }
         }
@@ -1657,42 +1653,42 @@ char LTDSPixel::addByte(char byte,
     return -1;
     return -1;
 }
 }
 
 
-// zum speichern gedacht
-void LTDSPixel::setAlpha(unsigned char alpha) // setzt die Farbe des Pixels
+// intended for saving
+void LTDSPixel::setAlpha(unsigned char alpha) // sets the color of the pixel
 {
 {
     this->alpha = alpha;
     this->alpha = alpha;
 }
 }
 
 
-void LTDSPixel::Komp() // Komprimiert den Pixel
+void LTDSPixel::Komp() // Compresses the pixel
 {
 {
     maxIndex = 1;
     maxIndex = 1;
     if (!davor)
     if (!davor)
-    { // Das ist der erste Pixel
+    { // This is the first pixel
         aender = 1;
         aender = 1;
         aenderA = 1;
         aenderA = 1;
         maxIndex += 4;
         maxIndex += 4;
         miA = getBits(alpha);
         miA = getBits(alpha);
     }
     }
     else
     else
-    { // Es wird die differenz zum vorrigen Pixel gespeichert
+    { // The difference to the previous pixel is stored
         miA = getBits(alpha - davor->getA());
         miA = getBits(alpha - davor->getA());
         if (alpha != davor->getA())
         if (alpha != davor->getA())
             aenderA = 1;
             aenderA = 1;
         else
         else
             aenderA = 0;
             aenderA = 0;
-    } // Pruefen ob sich etwas aendert
+    } // Check if something changes
     if (!miA && aenderA) ++miA;
     if (!miA && aenderA) ++miA;
     komp = 8 - miA;
     komp = 8 - miA;
     maxIndex += aenderA * miA;
     maxIndex += aenderA * miA;
     if (davor)
     if (davor)
     {
     {
         if (aenderA != davor->getAEnderA() || komp != davor->getKomp())
         if (aenderA != davor->getAEnderA() || komp != davor->getKomp())
-        { // Es aendert sich etwas
+        { // Something changes
             aender = 1;
             aender = 1;
             maxIndex += 4;
             maxIndex += 4;
         }
         }
         else
         else
-        { // Es aendert sich nichts
+        { // Nothing changes
             aender = 0;
             aender = 0;
         }
         }
     }
     }
@@ -1705,68 +1701,68 @@ bool LTDSPixel::getNextFarbeBit(char& byte, int i)
     {
     {
         AA -= davor->getA();
         AA -= davor->getA();
     }
     }
-    if (aenderA && iA != miA) // Das Bit gehoert zu Alpha
+    if (aenderA && iA != miA) // The bit belongs to alpha
     {
     {
         byte |= ((AA >> (7 - komp - iA)) & Bits(1)) << (7 - i);
         byte |= ((AA >> (7 - komp - iA)) & Bits(1)) << (7 - i);
         ++iA;
         ++iA;
     }
     }
-    else // Der Pixel ist bereits zu ende
+    else // The pixel is already finished
         return false;
         return false;
     return true;
     return true;
 }
 }
 
 
 char LTDSPixel::getNextByte(
 char LTDSPixel::getNextByte(
-    char& byte, int bbegin) // Gibt die naechsten Bits Zurueck, -1 wenn der
-                            // Pixel nicht zu ende ist
+    char& byte, int bbegin) // Returns the next bits, -1 if the pixel
+                            // is not finished
 {
 {
-    // bbegin gibt an wohin in die byte-variable geschrieben werden soll
-    // die Funktion gibt das ende des Pixels in der byte-variable zurueck
-    // -1 heisst, dass der Pixel nicht zu ende ist
+    // bbegin specifies where to write in the byte variable
+    // the function returns the end of the pixel in the byte variable
+    // -1 means the pixel is not finished
     for (int i = bbegin; i < 8; ++i)
     for (int i = bbegin; i < 8; ++i)
     {
     {
         switch (index)
         switch (index)
         {
         {
-        case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der
-                // Komprimierung aendert
+        case 0: // The first bit of the pixel stores whether the
+                // compression changes
             byte |= ((int)aender & Bits(1)) << (7 - i);
             byte |= ((int)aender & Bits(1)) << (7 - i);
             break;
             break;
-        case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (aender) // Komprimierung
+        case 1: // The second bit of the pixel stores either the color
+                // or the compression
+            if (aender) // Compression
                 byte |= ((int)aenderA & Bits(1)) << (7 - i);
                 byte |= ((int)aenderA & Bits(1)) << (7 - i);
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return i;
                 if (!getNextFarbeBit(byte, i)) return i;
             }
             }
             break;
             break;
-        case 2: // Das zweite Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (aender) // Komprimierung
+        case 2: // The second bit of the pixel stores either the color
+                // or the compression
+            if (aender) // Compression
                 byte |= ((komp >> 2) & Bits(1)) << (7 - i);
                 byte |= ((komp >> 2) & Bits(1)) << (7 - i);
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return i;
                 if (!getNextFarbeBit(byte, i)) return i;
             }
             }
             break;
             break;
-        case 3: // Das dritte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (aender) // Komprimierung
+        case 3: // The third bit of the pixel stores either the color
+                // or the compression
+            if (aender) // Compression
                 byte |= ((komp >> 1) & Bits(1)) << (7 - i);
                 byte |= ((komp >> 1) & Bits(1)) << (7 - i);
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return i;
                 if (!getNextFarbeBit(byte, i)) return i;
             }
             }
             break;
             break;
-        case 4: // Das vierte Bit des Pixels speichert entweder schon die Farbe
-                // oder die Komprimierung
-            if (aender) // Komprimierung
+        case 4: // The fourth bit of the pixel stores either the color
+                // or the compression
+            if (aender) // Compression
                 byte |= (komp & Bits(1)) << (7 - i);
                 byte |= (komp & Bits(1)) << (7 - i);
-            else // Farbe
+            else // Color
             {
             {
                 if (!getNextFarbeBit(byte, i)) return i;
                 if (!getNextFarbeBit(byte, i)) return i;
             }
             }
             break;
             break;
-        default: // Die restlichen Bits speichern die Farbe des Pixels
+        default: // The remaining bits store the color of the pixel
             if (!getNextFarbeBit(byte, i)) return i;
             if (!getNextFarbeBit(byte, i)) return i;
             break;
             break;
         }
         }
@@ -1781,24 +1777,24 @@ char LTDSPixel::getNextByte(
 }
 }
 
 
 // constant
 // constant
-unsigned char LTDSPixel::getKomp() const // hat sich die Komprimierung geaendert
+unsigned char LTDSPixel::getKomp() const // has the compression changed
 {
 {
     return komp;
     return komp;
 }
 }
 
 
 bool LTDSPixel::getAEnderA()
 bool LTDSPixel::getAEnderA()
-    const // gibt zurueck, ob sich der alphawert aendert
+    const // returns whether the alpha value changes
 {
 {
     return aenderA;
     return aenderA;
 }
 }
 
 
-unsigned char LTDSPixel::getA() const // gibt Alpha zurueck
+unsigned char LTDSPixel::getA() const // returns alpha
 {
 {
     return alpha;
     return alpha;
 }
 }
 
 
-// Inhalt der LTDSDateiKopf Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDSDateiKopf class from Dateisystem.h
+// Constructor
 LTDSDateiKopf::LTDSDateiKopf()
 LTDSDateiKopf::LTDSDateiKopf()
     : ReferenceCounter(),
     : ReferenceCounter(),
       sganzahl(0),
       sganzahl(0),
@@ -1806,15 +1802,15 @@ LTDSDateiKopf::LTDSDateiKopf()
       pos(0)
       pos(0)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 LTDSDateiKopf::~LTDSDateiKopf()
 LTDSDateiKopf::~LTDSDateiKopf()
 {
 {
     delete[] gr;
     delete[] gr;
     delete[] pos;
     delete[] pos;
 }
 }
 
 
-// nicht constant
-void LTDSDateiKopf::laden(std::ifstream* inF) // Laet aus inF
+// non-constant
+void LTDSDateiKopf::laden(std::ifstream* inF) // Loads from inF
 {
 {
     if (inF->good() && inF->is_open())
     if (inF->good() && inF->is_open())
     {
     {
@@ -1833,7 +1829,7 @@ void LTDSDateiKopf::laden(std::ifstream* inF) // Laet aus inF
     }
     }
 }
 }
 
 
-void LTDSDateiKopf::addSG(char sg) // Schriftgroesse hinzufuegen
+void LTDSDateiKopf::addSG(char sg) // Add font size
 {
 {
     ++sganzahl;
     ++sganzahl;
     unsigned char* gr_tmp = gr;
     unsigned char* gr_tmp = gr;
@@ -1853,7 +1849,7 @@ void LTDSDateiKopf::addSG(char sg) // Schriftgroesse hinzufuegen
     gr[sganzahl - 1] = sg;
     gr[sganzahl - 1] = sg;
 }
 }
 
 
-void LTDSDateiKopf::removeSG(char sg) // Schriftgroesse entfernen
+void LTDSDateiKopf::removeSG(char sg) // Remove font size
 {
 {
     bool hatsg = 0;
     bool hatsg = 0;
     int sgpos = 0;
     int sgpos = 0;
@@ -1888,7 +1884,7 @@ void LTDSDateiKopf::removeSG(char sg) // Schriftgroesse entfernen
 }
 }
 
 
 // constant
 // constant
-void LTDSDateiKopf::speichern(std::ofstream* outF) const // Speichert nach outF
+void LTDSDateiKopf::speichern(std::ofstream* outF) const // Saves to outF
 {
 {
     if (outF->is_open() && outF->good())
     if (outF->is_open() && outF->good())
     {
     {
@@ -1902,25 +1898,25 @@ void LTDSDateiKopf::speichern(std::ofstream* outF) const // Speichert nach outF
 }
 }
 
 
 unsigned char* LTDSDateiKopf::getSchriftGroesseList()
 unsigned char* LTDSDateiKopf::getSchriftGroesseList()
-    const // gibt eine Liste mit gespeicherten Schriftgroessen zurueck
+const // returns a list of stored font sizes
 {
 {
     return gr;
     return gr;
 }
 }
 
 
 int* LTDSDateiKopf::getPositionList()
 int* LTDSDateiKopf::getPositionList()
-    const // gibt eine Positionsliste der gespeicherten Schriftgroessen zurueck
+const // returns a position list of stored font sizes
 {
 {
     return pos;
     return pos;
 }
 }
 
 
 int LTDSDateiKopf::getSchriftGroesseAnzahl()
 int LTDSDateiKopf::getSchriftGroesseAnzahl()
-    const // gibt die Anzahl der gespeicherten Schriftgroessen zurueck
+const // returns the number of stored font sizes
 {
 {
     return sganzahl;
     return sganzahl;
 }
 }
 
 
-// Inhalt der LTDSSchriftKopf Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDSSchriftKopf class from Dateisystem.h
+// Constructor
 LTDSSchriftKopf::LTDSSchriftKopf()
 LTDSSchriftKopf::LTDSSchriftKopf()
     : ReferenceCounter(),
     : ReferenceCounter(),
       schriftSize(0),
       schriftSize(0),
@@ -1929,15 +1925,15 @@ LTDSSchriftKopf::LTDSSchriftKopf()
       zeichenAnzahl(0)
       zeichenAnzahl(0)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 LTDSSchriftKopf::~LTDSSchriftKopf()
 LTDSSchriftKopf::~LTDSSchriftKopf()
 {
 {
     delete[] pos;
     delete[] pos;
     delete[] zeichen;
     delete[] zeichen;
 }
 }
 
 
-// nicht constant
-void LTDSSchriftKopf::laden(std::ifstream* inF) // laeht von inF
+// non-constant
+void LTDSSchriftKopf::laden(std::ifstream* inF) // loads from inF
 {
 {
     if (inF->good() && inF->is_open())
     if (inF->good() && inF->is_open())
     {
     {
@@ -1957,13 +1953,13 @@ void LTDSSchriftKopf::laden(std::ifstream* inF) // laeht von inF
 }
 }
 
 
 void LTDSSchriftKopf::setSchriftgroesse(
 void LTDSSchriftKopf::setSchriftgroesse(
-    unsigned char gr) // setze schriftgroesse
+unsigned char gr) // set font size
 {
 {
     schriftSize = gr;
     schriftSize = gr;
 }
 }
 
 
 void LTDSSchriftKopf::setZeichenAlphabet(
 void LTDSSchriftKopf::setZeichenAlphabet(
-    Alphabet* alphabet) // setzt die Zeichen von alphabet
+Alphabet* alphabet) // sets the characters from alphabet
 {
 {
     int count = 0;
     int count = 0;
     for (int i = 0; i < 256; ++i)
     for (int i = 0; i < 256; ++i)
@@ -1993,7 +1989,7 @@ void LTDSSchriftKopf::setZeichenAlphabet(
     alphabet->release();
     alphabet->release();
 }
 }
 
 
-void LTDSSchriftKopf::addZeichen(unsigned char zeichen) // Zeichen hinzufuegen
+void LTDSSchriftKopf::addZeichen(unsigned char zeichen) // Add character
 {
 {
     ++zeichenAnzahl;
     ++zeichenAnzahl;
     unsigned char* zeichen_tmp = this->zeichen;
     unsigned char* zeichen_tmp = this->zeichen;
@@ -2012,7 +2008,7 @@ void LTDSSchriftKopf::addZeichen(unsigned char zeichen) // Zeichen hinzufuegen
     pos[zeichenAnzahl] = 0;
     pos[zeichenAnzahl] = 0;
 }
 }
 
 
-void LTDSSchriftKopf::removeZeichen(unsigned char zeich) // Zeichen entfernen
+void LTDSSchriftKopf::removeZeichen(unsigned char zeich) // Remove character
 {
 {
     bool hatZ = 0;
     bool hatZ = 0;
     int zPos = 0;
     int zPos = 0;
@@ -2047,7 +2043,7 @@ void LTDSSchriftKopf::removeZeichen(unsigned char zeich) // Zeichen entfernen
 
 
 // constant
 // constant
 void LTDSSchriftKopf::speichern(
 void LTDSSchriftKopf::speichern(
-    std::ofstream* outF) const // speichert nach outF
+std::ofstream* outF) const // saves to outF
 {
 {
     if (outF->good() && outF->is_open())
     if (outF->good() && outF->is_open())
     {
     {
@@ -2062,38 +2058,38 @@ void LTDSSchriftKopf::speichern(
 }
 }
 
 
 unsigned char
 unsigned char
-LTDSSchriftKopf::getSchriftGroesse() const // gibt die Schriftgroesse zurueck
+LTDSSchriftKopf::getSchriftGroesse() const // returns the font size
 {
 {
     return schriftSize;
     return schriftSize;
 }
 }
 
 
 unsigned char
 unsigned char
-LTDSSchriftKopf::getZeichenAnzahl() const // gibt die Zeichenanzahl zurueck
+LTDSSchriftKopf::getZeichenAnzahl() const // returns the character count
 {
 {
     return zeichenAnzahl;
     return zeichenAnzahl;
 }
 }
 
 
 int* LTDSSchriftKopf::getPositionen()
 int* LTDSSchriftKopf::getPositionen()
-    const // gibt die Zeichenpositionen zurueck
+const // returns the character positions
 {
 {
     return pos;
     return pos;
 }
 }
 
 
-unsigned char* LTDSSchriftKopf::getZeichen() const // gibt die zeichen zurueck
+unsigned char* LTDSSchriftKopf::getZeichen() const // returns the characters
 {
 {
     return zeichen;
     return zeichen;
 }
 }
 
 
-// Inhalt der LTDSBuchstabenKopf Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDSBuchstabenKopf class from Dateisystem.h
+// Constructor
 LTDSBuchstabenKopf::LTDSBuchstabenKopf()
 LTDSBuchstabenKopf::LTDSBuchstabenKopf()
     : ReferenceCounter(),
     : ReferenceCounter(),
       zeichen(0),
       zeichen(0),
       size(0, 0)
       size(0, 0)
 {}
 {}
 
 
-// nicht constant
-void LTDSBuchstabenKopf::laden(std::ifstream* inF) // laet aus inF
+// non-constant
+void LTDSBuchstabenKopf::laden(std::ifstream* inF) // loads from inF
 {
 {
     if (inF->good() && inF->is_open())
     if (inF->good() && inF->is_open())
     {
     {
@@ -2104,7 +2100,7 @@ void LTDSBuchstabenKopf::laden(std::ifstream* inF) // laet aus inF
 }
 }
 
 
 void LTDSBuchstabenKopf::init(unsigned char zeichen,
 void LTDSBuchstabenKopf::init(unsigned char zeichen,
-    const Punkt& groesse) // initialisierung( fuer speichern )
+const Punkt& groesse) // initialization (for saving)
 {
 {
     this->zeichen = zeichen;
     this->zeichen = zeichen;
     this->size = groesse;
     this->size = groesse;
@@ -2118,7 +2114,7 @@ void LTDSBuchstabenKopf::init(unsigned char zeichen, int br, int hoe)
 
 
 // constant
 // constant
 void LTDSBuchstabenKopf::speichern(
 void LTDSBuchstabenKopf::speichern(
-    std::ofstream* outF) const // speichertn nach outF
+std::ofstream* outF) const // saves to outF
 {
 {
     if (outF->good() && outF->is_open())
     if (outF->good() && outF->is_open())
     {
     {
@@ -2128,28 +2124,28 @@ void LTDSBuchstabenKopf::speichern(
     }
     }
 }
 }
 
 
-unsigned char LTDSBuchstabenKopf::getZeichen() const // gibt das Zeichen zurueck
+unsigned char LTDSBuchstabenKopf::getZeichen() const // returns the character
 {
 {
     return zeichen;
     return zeichen;
 }
 }
 
 
-int LTDSBuchstabenKopf::getBreite() const // gibt die Breite zurueck
+int LTDSBuchstabenKopf::getBreite() const // returns the width
 {
 {
     return size.x;
     return size.x;
 }
 }
 
 
-int LTDSBuchstabenKopf::getHoehe() const // gibt die hoehe zurueck
+int LTDSBuchstabenKopf::getHoehe() const // returns the height
 {
 {
     return size.y;
     return size.y;
 }
 }
 
 
-const Punkt& LTDSBuchstabenKopf::getGroesse() const // gibt die Groesse zurueck
+const Punkt& LTDSBuchstabenKopf::getGroesse() const // returns the size
 {
 {
     return size;
     return size;
 }
 }
 
 
-// Inhalt der LTDSBuchstabenKoerper Klasse aus Dateisystem.h
-// Konstruktor
+// Content of the LTDSBuchstabenKoerper class from Dateisystem.h
+// Constructor
 LTDSBuchstabenKoerper::LTDSBuchstabenKoerper(LTDSBuchstabenKopf* kopf)
 LTDSBuchstabenKoerper::LTDSBuchstabenKoerper(LTDSBuchstabenKopf* kopf)
     : ReferenceCounter(),
     : ReferenceCounter(),
       size(kopf->getGroesse()),
       size(kopf->getGroesse()),
@@ -2160,21 +2156,21 @@ LTDSBuchstabenKoerper::LTDSBuchstabenKoerper(LTDSBuchstabenKopf* kopf)
     kopf->release();
     kopf->release();
 }
 }
 
 
-// Destruktor
+// Destructor
 LTDSBuchstabenKoerper::~LTDSBuchstabenKoerper()
 LTDSBuchstabenKoerper::~LTDSBuchstabenKoerper()
 {
 {
     if (buchstabe) buchstabe->release();
     if (buchstabe) buchstabe->release();
 }
 }
 
 
-// nicht constant
+// non-constant
 void LTDSBuchstabenKoerper::setBuchstabe(
 void LTDSBuchstabenKoerper::setBuchstabe(
-    Buchstabe* zeichen) // setzt den Buchstaben
+    Buchstabe* zeichen) // sets the character
 {
 {
     if (buchstabe) buchstabe->release();
     if (buchstabe) buchstabe->release();
     buchstabe = zeichen;
     buchstabe = zeichen;
 }
 }
 
 
-void LTDSBuchstabenKoerper::laden(std::ifstream* inF) // Laeht aus inF
+void LTDSBuchstabenKoerper::laden(std::ifstream* inF) // Loads from inF
 {
 {
     if (inF->good() && inF->is_open())
     if (inF->good() && inF->is_open())
     {
     {
@@ -2185,14 +2181,14 @@ void LTDSBuchstabenKoerper::laden(std::ifstream* inF) // Laeht aus inF
         int ende = -1;
         int ende = -1;
         for (int i = 0; i < size.x * size.y; ++i)
         for (int i = 0; i < size.x * size.y; ++i)
         {
         {
-            if (!jetzt) // wenn es nicht der erste Pixel ist
+            if (!jetzt) // if it is not the first pixel
                 jetzt = new LTDSPixel(
                 jetzt = new LTDSPixel(
                     dynamic_cast<LTDSPixel*>(vorher->getThis()));
                     dynamic_cast<LTDSPixel*>(vorher->getThis()));
             int ende = -1;
             int ende = -1;
-            while (ende < 0) // Pixel laden
+            while (ende < 0) // load pixel
             {
             {
                 if (beg == 0) inF->read(&byte, 1);
                 if (beg == 0) inF->read(&byte, 1);
-                ende = jetzt->addByte(byte, beg); // byte auswerten
+                ende = jetzt->addByte(byte, beg); // evaluate byte
                 beg = 0;
                 beg = 0;
             }
             }
             beg = ende;
             beg = ende;
@@ -2209,90 +2205,90 @@ void LTDSBuchstabenKoerper::laden(std::ifstream* inF) // Laeht aus inF
 
 
 // constant
 // constant
 void LTDSBuchstabenKoerper::speichern(
 void LTDSBuchstabenKoerper::speichern(
-    std::ofstream* outF) const // speichert nach outF
+std::ofstream* outF) const // saves to outF
 {
 {
     if (outF->good() && outF->is_open())
     if (outF->good() && outF->is_open())
     {
     {
-        LTDSPixel* vorher = 0; // Letzter gespeicherter Pixel
+        LTDSPixel* vorher = 0; // Last saved pixel
         LTDSPixel* jetzt
         LTDSPixel* jetzt
-            = new LTDSPixel(0); // Der momentan zu speichernde Pixel
+            = new LTDSPixel(0); // The pixel currently being saved
         int begin = 0,
         int begin = 0,
-            ende = 0;  // Pixelbeginn, endposition in der byte variable
-        char byte = 0; // Der naechste byte der Datei
+            ende = 0;  // pixel start, end position in the byte variable
+        char byte = 0; // The next byte of the file
         bool w = 0;
         bool w = 0;
         unsigned char* alphaBuff = buchstabe->getBuff();
         unsigned char* alphaBuff = buchstabe->getBuff();
-        for (int i = 0; i < size.x * size.y; ++i) // fuer jeden Pixel
+        for (int i = 0; i < size.x * size.y; ++i) // for each pixel
         {
         {
-            if (!jetzt) // wenn es nicht der erste Pixel ist
+            if (!jetzt) // if it is not the first pixel
                 jetzt = new LTDSPixel(
                 jetzt = new LTDSPixel(
                     dynamic_cast<LTDSPixel*>(vorher->getThis()));
                     dynamic_cast<LTDSPixel*>(vorher->getThis()));
-            jetzt->setAlpha(alphaBuff[i]); // Farbe des Pixels setzen
-            jetzt->Komp();                 // Pixel komprimieren
+            jetzt->setAlpha(alphaBuff[i]); // set pixel color
+            jetzt->Komp();                 // compress pixel
             ende = -1;
             ende = -1;
-            while (ende < 0) // byte befuellen
+            while (ende < 0) // fill byte
             {
             {
                 ende = jetzt->getNextByte(byte, begin);
                 ende = jetzt->getNextByte(byte, begin);
                 begin = 0;
                 begin = 0;
                 w = 0;
                 w = 0;
-                if (ende == -1 || ende == 8) // byte speichern
+                if (ende == -1 || ende == 8) // save byte
                 {
                 {
                     outF->write(&byte, 1);
                     outF->write(&byte, 1);
                     w = 1;
                     w = 1;
                     byte = 0;
                     byte = 0;
                 }
                 }
-            } // Pixel fertig
+            } // pixel finished
             begin = ende;
             begin = ende;
             if (begin == 8) begin = 0;
             if (begin == 8) begin = 0;
             if (vorher) vorher->release();
             if (vorher) vorher->release();
             vorher = dynamic_cast<LTDSPixel*>(
             vorher = dynamic_cast<LTDSPixel*>(
-                jetzt->getThis()); // dieser wird zu letzter
+                jetzt->getThis()); // jetzt becomes vorher
             jetzt = (LTDSPixel*)jetzt->release();
             jetzt = (LTDSPixel*)jetzt->release();
         }
         }
         if (vorher) vorher = (LTDSPixel*)vorher->release();
         if (vorher) vorher = (LTDSPixel*)vorher->release();
         if (!w)
         if (!w)
         {
         {
-            outF->write(&byte, 1); // Das letzte byte speichern
+            outF->write(&byte, 1); // save the last byte
         }
         }
-        outF->flush(); // dateistream speichern
+        outF->flush(); // flush file stream
     }
     }
 }
 }
 
 
 Buchstabe*
 Buchstabe*
-LTDSBuchstabenKoerper::getBuchstabe() const // gibt den Buchstaben zurueck
+LTDSBuchstabenKoerper::getBuchstabe() const // returns the character
 {
 {
     return dynamic_cast<Buchstabe*>(buchstabe->getThis());
     return dynamic_cast<Buchstabe*>(buchstabe->getThis());
 }
 }
 
 
 unsigned char
 unsigned char
-LTDSBuchstabenKoerper::getZeichen() const // gibt das Zeichen zurueck
+LTDSBuchstabenKoerper::getZeichen() const // returns the character
 {
 {
     return zeichen;
     return zeichen;
 }
 }
 
 
-// Inhalt der LTDSDatei Klasse aus DAteisystem.h
-// Konstruktor
+// Content of the LTDSDatei class from Dateisystem.h
+// Constructor
 LTDSDatei::LTDSDatei()
 LTDSDatei::LTDSDatei()
     : ReferenceCounter(),
     : ReferenceCounter(),
       pfad(new Text()),
       pfad(new Text()),
       dateiKopf(0)
       dateiKopf(0)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 LTDSDatei::~LTDSDatei()
 LTDSDatei::~LTDSDatei()
 {
 {
     if (dateiKopf) dateiKopf->release();
     if (dateiKopf) dateiKopf->release();
     pfad->release();
     pfad->release();
 }
 }
 
 
-// nicht constant
-void LTDSDatei::setPfad(Text* txt) // setzt den Pfad zur Datei
+// non-constant
+void LTDSDatei::setPfad(Text* txt) // sets the path to the file
 {
 {
     if (dateiKopf) dateiKopf = (LTDSDateiKopf*)dateiKopf->release();
     if (dateiKopf) dateiKopf = (LTDSDateiKopf*)dateiKopf->release();
     pfad->setText(txt->getText());
     pfad->setText(txt->getText());
     txt->release();
     txt->release();
 }
 }
 
 
-void LTDSDatei::leseDaten() // liesst den Dateikopf
+void LTDSDatei::leseDaten() // reads the file header
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return;
     if (dateiKopf) dateiKopf->release();
     if (dateiKopf) dateiKopf->release();
@@ -2304,24 +2300,24 @@ void LTDSDatei::leseDaten() // liesst den Dateikopf
 }
 }
 
 
 void LTDSDatei::addSchriftgroesse(
 void LTDSDatei::addSchriftgroesse(
-    Alphabet* alphabet) // fuegt eine Schriftgroesse hinzu
+    Alphabet* alphabet) // adds a font size
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(
     if (!DateiExistiert(dynamic_cast<Text*>(
-            pfad->getThis()))) // pruefen, ob die Datei existiert
+            pfad->getThis()))) // check if the file exists
         return;
         return;
-    if (!dateiKopf) // pruefen, ob der Dateikopf schon gelesen wurde
+    if (!dateiKopf) // check if the file header has been read
         leseDaten();
         leseDaten();
     int sgroesse
     int sgroesse
         = alphabet
         = alphabet
-              ->getSchriftSize(); // Schriftgroesse die hinzugefuegt werden soll
+              ->getSchriftSize(); // font size to be added
     unsigned char* sglist
     unsigned char* sglist
-        = dateiKopf->getSchriftGroesseList(); // Liste von bereits vorhandenen
-                                              // Schriftgroessen
+        = dateiKopf->getSchriftGroesseList(); // list of already existing
+                                              // font sizes
     unsigned char sganzahl
     unsigned char sganzahl
-        = dateiKopf->getSchriftGroesseAnzahl(); // Anzahl der bereits
-                                                // vorhandenen Schriftgroessen
+        = dateiKopf->getSchriftGroesseAnzahl(); // number of already
+                                                // existing font sizes
     for (int i = 0; i < sganzahl;
     for (int i = 0; i < sganzahl;
-        ++i) // pruefen, ob die Schriftgroesse bereits existiert
+        ++i) // check if the font size already exists
     {
     {
         if (sglist[i] == sgroesse)
         if (sglist[i] == sgroesse)
         {
         {
@@ -2329,39 +2325,39 @@ void LTDSDatei::addSchriftgroesse(
             return;
             return;
         }
         }
     }
     }
-    dateiKopf->addSG(sgroesse); // Schriftgroesse dem Dateikopf hinzufuegen
+    dateiKopf->addSG(sgroesse); // add font size to file header
     int* sgPosList
     int* sgPosList
         = dateiKopf
         = dateiKopf
-              ->getPositionList(); // Liste mit positionen der Schriftgroessen
-    sglist = dateiKopf->getSchriftGroesseList(); // Liste von bereits
-                                                 // vorhandenen Schriftgroessen
+              ->getPositionList(); // list of font size positions
+    sglist = dateiKopf->getSchriftGroesseList(); // list of already
+                                                 // existing font sizes
     std::ifstream* inF
     std::ifstream* inF
-        = new std::ifstream(pfad->getText(), std::ios::binary); // alte Datei
+        = new std::ifstream(pfad->getText(), std::ios::binary); // old file
     pfad->append("0");
     pfad->append("0");
     std::ofstream* outF
     std::ofstream* outF
-        = new std::ofstream(pfad->getText(), std::ios::binary); // neue Datei
-    dateiKopf->speichern(outF); // Dateikopf in neue datei speichern
+        = new std::ofstream(pfad->getText(), std::ios::binary); // new file
+    dateiKopf->speichern(outF); // save file header to new file
     inF->seekg(1 + 5 * sganzahl,
     inF->seekg(1 + 5 * sganzahl,
-        std::ios::beg); // Position der ersten Schriftgroesse in der alten Datei
+        std::ios::beg); // position of the first font size in the old file
     for (int i = 0; i < sganzahl;
     for (int i = 0; i < sganzahl;
-        ++i) // Buchstabenpositionen aller Schriftgroessen aktualisieren
+        ++i) // update character positions of all font sizes
     {
     {
         LTDSSchriftKopf* sgKpf_tmp
         LTDSSchriftKopf* sgKpf_tmp
-            = new LTDSSchriftKopf(); // Schriftgroessen Kopf
-        sgKpf_tmp->laden(inF);       // aus alter Datei laden
+            = new LTDSSchriftKopf(); // font size header
+        sgKpf_tmp->laden(inF);       // load from old file
         int* zeichP_tmp
         int* zeichP_tmp
             = sgKpf_tmp
             = sgKpf_tmp
-                  ->getPositionen(); // Zeichenpositionen der Schriftgroesse
+                  ->getPositionen(); // character positions of the font size
         unsigned char zeichA_tmp
         unsigned char zeichA_tmp
             = sgKpf_tmp
             = sgKpf_tmp
-                  ->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgroesse
+                  ->getZeichenAnzahl(); // number of characters in the font size
         for (int i1 = 0; i1 < zeichA_tmp; ++i1)
         for (int i1 = 0; i1 < zeichA_tmp; ++i1)
-            zeichP_tmp[i1] += 5; // Buchstabenpositionen aktualisieren
+            zeichP_tmp[i1] += 5; // update character positions
         sgKpf_tmp->speichern(
         sgKpf_tmp->speichern(
-            outF); // Schriftgroesse Kopf in neue Datei speichern
+            outF); // save font size header to new file
         int beginByte
         int beginByte
-            = (int)inF->tellg(); // Die restlichen bytes bis zur naechsten
-                                 // Schriftgroesse in neue Datei kopieren
+            = (int)inF->tellg(); // copy remaining bytes until the next
+                                 // font size to new file
         int endByte = sgPosList[i + 1];
         int endByte = sgPosList[i + 1];
         if (!endByte)
         if (!endByte)
         {
         {
@@ -2370,28 +2366,28 @@ void LTDSDatei::addSchriftgroesse(
             inF->seekg(beginByte, std::ios::beg);
             inF->seekg(beginByte, std::ios::beg);
         }
         }
         char byte;
         char byte;
-        for (int i1 = beginByte; i1 < endByte; ++i1) // Kopiervorgang
+        for (int i1 = beginByte; i1 < endByte; ++i1) // copy operation
         {
         {
             inF->read(&byte, 1);
             inF->read(&byte, 1);
             outF->write(&byte, 1);
             outF->write(&byte, 1);
         }
         }
         sgKpf_tmp->release();
         sgKpf_tmp->release();
     }
     }
-    inF->close(); // Alte datei schliessen
+    inF->close(); // close old file
     sgPosList[sganzahl] = (int)outF->tellp();
     sgPosList[sganzahl] = (int)outF->tellp();
     outF->seekp(0, std::ios::beg);
     outF->seekp(0, std::ios::beg);
-    for (int i = 0; i < sganzahl; ++i) // Positionen im Dateikopf aktualisieren
+    for (int i = 0; i < sganzahl; ++i) // update positions in file header
         sgPosList[i] += 5;
         sgPosList[i] += 5;
-    dateiKopf->speichern(outF); // aktualisierter Dateikopf speichern
+    dateiKopf->speichern(outF); // save updated file header
     outF->seekp(sgPosList[sganzahl], std::ios::beg);
     outF->seekp(sgPosList[sganzahl], std::ios::beg);
     LTDSSchriftKopf* sgkopf
     LTDSSchriftKopf* sgkopf
-        = new LTDSSchriftKopf(); // Kopf der neuen Schriftgroesse
+        = new LTDSSchriftKopf(); // header of the new font size
     sgkopf->setZeichenAlphabet(dynamic_cast<Alphabet*>(
     sgkopf->setZeichenAlphabet(dynamic_cast<Alphabet*>(
-        alphabet->getThis())); // Kopf der Schriftgroesse initialisieren
-    sgkopf->speichern(outF);   // Kopf der Schriftgroesse speichern
+        alphabet->getThis())); // initialize font size header
+    sgkopf->speichern(outF);   // save font size header
     int* BuchstabenPosList
     int* BuchstabenPosList
-        = sgkopf->getPositionen(); // positionen der verschiedenen Zeichen in
-                                   // der Datei( nuch 0 )
+        = sgkopf->getPositionen(); // positions of the different characters
+                                   // in the file (still 0)
     int count = 0;
     int count = 0;
     for (int i = 0; i < 256; ++i)
     for (int i = 0; i < 256; ++i)
     {
     {
@@ -2399,33 +2395,33 @@ void LTDSDatei::addSchriftgroesse(
         if (zeich)
         if (zeich)
         {
         {
             BuchstabenPosList[count]
             BuchstabenPosList[count]
-                = (int)outF->tellp(); // position des Zeichens setzen
+                = (int)outF->tellp(); // set character position
             LTDSBuchstabenKopf* zeichKpf
             LTDSBuchstabenKopf* zeichKpf
-                = new LTDSBuchstabenKopf(); // Zeichenkopf
+                = new LTDSBuchstabenKopf(); // character header
             zeichKpf->init(i, zeich->getBreite(), zeich->getHeight());
             zeichKpf->init(i, zeich->getBreite(), zeich->getHeight());
-            zeichKpf->speichern(outF); // Zeichenkopf speichern
+            zeichKpf->speichern(outF); // save character header
             LTDSBuchstabenKoerper* zeichKoerp
             LTDSBuchstabenKoerper* zeichKoerp
                 = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
                 = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
-                    zeichKpf->getThis())); // Zeichenkoerper
+                    zeichKpf->getThis())); // character body
             zeichKpf->release();
             zeichKpf->release();
             zeichKoerp->setBuchstabe(
             zeichKoerp->setBuchstabe(
                 dynamic_cast<Buchstabe*>(zeich->getThis()));
                 dynamic_cast<Buchstabe*>(zeich->getThis()));
-            zeichKoerp->speichern(outF); // Zeichenkoerper speichern
+            zeichKoerp->speichern(outF); // save character body
             zeich->release();
             zeich->release();
             ++count;
             ++count;
         }
         }
     }
     }
     outF->seekp(sgPosList[sganzahl], std::ios::beg);
     outF->seekp(sgPosList[sganzahl], std::ios::beg);
-    sgkopf->speichern(outF); // aktualisierter Schriftgroessen Kopf speichern
+    sgkopf->speichern(outF); // save updated font size header
     outF->close();
     outF->close();
     Text* pfad2 = new Text();
     Text* pfad2 = new Text();
     pfad2->setText(pfad->getText());
     pfad2->setText(pfad->getText());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
-    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // Alte datei Loeschen
+    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // delete old file
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
         dynamic_cast<Text*>(
         dynamic_cast<Text*>(
-            pfad->getThis())); // neue Datei nach alte umbenennen
-    pfad2->release();          // Speicher freigeben
+            pfad->getThis())); // rename new file to old
+    pfad2->release();          // free memory
     sgkopf->release();
     sgkopf->release();
     delete inF;
     delete inF;
     delete outF;
     delete outF;
@@ -2434,27 +2430,27 @@ void LTDSDatei::addSchriftgroesse(
 
 
 void LTDSDatei::addBuchstabe(int gr,
 void LTDSDatei::addBuchstabe(int gr,
     Buchstabe* zeich,
     Buchstabe* zeich,
-    unsigned char zeichen) // Fuegt einer Schriftgroesse einen Buchstaben hinzu
+    unsigned char zeichen) // Adds a character to a font size
 {
 {
     if (!DateiExistiert(
     if (!DateiExistiert(
-            dynamic_cast<Text*>(pfad->getThis()))) // pruefen ob Datei existiert
+            dynamic_cast<Text*>(pfad->getThis()))) // check if file exists
     {
     {
         zeich->release();
         zeich->release();
         return;
         return;
     }
     }
-    if (!dateiKopf) // pruefen, ob der DAteikopf geladen wurde
+    if (!dateiKopf) // check if the file header was loaded
         leseDaten();
         leseDaten();
     unsigned char* sgList
     unsigned char* sgList
-        = dateiKopf->getSchriftGroesseList(); // Liste mit Schriftgroessen aus
-                                              // der Datei
-    int* sgPosList = dateiKopf->getPositionList(); // Liste mit Schriftgroessen
-                                                   // positionen aus Datei
+        = dateiKopf->getSchriftGroesseList(); // list of font sizes from
+                                              // the file
+    int* sgPosList = dateiKopf->getPositionList(); // list of font size
+                                                   // positions from file
     unsigned char sgAnzahl
     unsigned char sgAnzahl
-        = dateiKopf->getSchriftGroesseAnzahl(); // Anzahl von Schriftgroessen
-                                                // aus der Datei
+        = dateiKopf->getSchriftGroesseAnzahl(); // number of font sizes
+                                                // from the file
     int sgNum = -1;
     int sgNum = -1;
     for (int i = 0; i < sgAnzahl;
     for (int i = 0; i < sgAnzahl;
-        ++i) // Position der richtigen Schriftgroesse ermitteln
+        ++i) // find the position of the correct font size
     {
     {
         if (sgList[i] == gr)
         if (sgList[i] == gr)
         {
         {
@@ -2463,40 +2459,40 @@ void LTDSDatei::addBuchstabe(int gr,
         }
         }
     }
     }
     std::ifstream* inF
     std::ifstream* inF
-        = new std::ifstream(pfad->getText(), std::ios::binary); // Alte Datei
+        = new std::ifstream(pfad->getText(), std::ios::binary); // old file
     pfad->append("0");
     pfad->append("0");
     std::ofstream* outF
     std::ofstream* outF
-        = new std::ofstream(pfad->getText(), std::ios::binary); // Neue Datei
+        = new std::ofstream(pfad->getText(), std::ios::binary); // new file
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
     if (sgNum
     if (sgNum
-        == -1) // Die Schriftgroesse existiert noch nicht und wird erstellt
+        == -1) // The font size does not exist yet and will be created
     {
     {
-        dateiKopf->addSG(gr); // Schriftgroesse dem Dateikopf hinzufuegen
+        dateiKopf->addSG(gr); // add font size to file header
         sgPosList = dateiKopf->getPositionList();
         sgPosList = dateiKopf->getPositionList();
         sgList = dateiKopf->getSchriftGroesseList();
         sgList = dateiKopf->getSchriftGroesseList();
-        dateiKopf->speichern(outF); // Dateikopf speichern
+        dateiKopf->speichern(outF); // save file header
         inF->seekg(1 + 5 * sgAnzahl,
         inF->seekg(1 + 5 * sgAnzahl,
-            std::ios::beg); // Position der ersten
-                            // Schriftgroesse in der alten Datei
+            std::ios::beg); // position of the first
+                            // font size in the old file
         for (int i = 0; i < sgAnzahl;
         for (int i = 0; i < sgAnzahl;
-            ++i) // Buchstabenpositionen aller Schriftgroessen aktualisieren
+            ++i) // update character positions of all font sizes
         {
         {
             LTDSSchriftKopf* sgKpf_tmp
             LTDSSchriftKopf* sgKpf_tmp
-                = new LTDSSchriftKopf(); // Schriftgroessen Kopf
-            sgKpf_tmp->laden(inF);       // aus alter Datei laden
+                = new LTDSSchriftKopf(); // font size header
+            sgKpf_tmp->laden(inF);       // load from old file
             int* zeichP_tmp
             int* zeichP_tmp
                 = sgKpf_tmp
                 = sgKpf_tmp
-                      ->getPositionen(); // Zeichenpositionen der Schriftgroesse
+                      ->getPositionen(); // character positions of the font size
             unsigned char zeichA_tmp
             unsigned char zeichA_tmp
-                = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der
-                                                 // Schriftgroesse
+                = sgKpf_tmp->getZeichenAnzahl(); // number of characters in
+                                                 // the font size
             for (int i1 = 0; i1 < zeichA_tmp; ++i1)
             for (int i1 = 0; i1 < zeichA_tmp; ++i1)
-                zeichP_tmp[i1] += 5; // Buchstabenpositionen aktualisieren
+                zeichP_tmp[i1] += 5; // update character positions
             sgKpf_tmp->speichern(
             sgKpf_tmp->speichern(
-                outF); // Schriftgroesse Kopf in neue Datei speichern
+                outF); // save font size header to new file
             int beginByte
             int beginByte
-                = (int)inF->tellg(); // Die restlichen bytes bis zur naechsten
-                                     // Schriftgroesse in neue Datei kopieren
+                = (int)inF->tellg(); // copy remaining bytes until the next
+                                     // font size to new file
             int endByte = sgPosList[i + 1];
             int endByte = sgPosList[i + 1];
             if (i + 1 >= sgAnzahl)
             if (i + 1 >= sgAnzahl)
             {
             {
@@ -2505,7 +2501,7 @@ void LTDSDatei::addBuchstabe(int gr,
                 inF->seekg(beginByte, std::ios::beg);
                 inF->seekg(beginByte, std::ios::beg);
             }
             }
             char byte;
             char byte;
-            for (int i1 = beginByte; i1 < endByte; ++i1) // Kopiervorgang
+            for (int i1 = beginByte; i1 < endByte; ++i1) // copy operation
             {
             {
                 inF->read(&byte, 1);
                 inF->read(&byte, 1);
                 outF->write(&byte, 1);
                 outF->write(&byte, 1);
@@ -2515,50 +2511,50 @@ void LTDSDatei::addBuchstabe(int gr,
         sgPosList[sgAnzahl] = (int)outF->tellp();
         sgPosList[sgAnzahl] = (int)outF->tellp();
         outF->seekp(0, std::ios::beg);
         outF->seekp(0, std::ios::beg);
         for (int i = 0; i < sgAnzahl;
         for (int i = 0; i < sgAnzahl;
-            ++i) // Positionen im Dateikopf aktualisieren
+            ++i) // update positions in file header
             sgPosList[i] += 5;
             sgPosList[i] += 5;
-        dateiKopf->speichern(outF); // aktualisierter Dateikopf speichern
+        dateiKopf->speichern(outF); // save updated file header
         outF->seekp(sgPosList[sgAnzahl], std::ios::beg);
         outF->seekp(sgPosList[sgAnzahl], std::ios::beg);
         LTDSSchriftKopf* sgKpf
         LTDSSchriftKopf* sgKpf
-            = new LTDSSchriftKopf(); // Schriftgroesse Kopf initialisiern
+            = new LTDSSchriftKopf(); // initialize font size header
         sgKpf->setSchriftgroesse(gr);
         sgKpf->setSchriftgroesse(gr);
         sgKpf->addZeichen(zeichen);
         sgKpf->addZeichen(zeichen);
         sgKpf->getPositionen()[0] = (int)outF->tellp() + 7;
         sgKpf->getPositionen()[0] = (int)outF->tellp() + 7;
-        sgKpf->speichern(outF); // Schriftgroesse Kopf speichern
+        sgKpf->speichern(outF); // save font size header
         sgKpf->release();
         sgKpf->release();
         LTDSBuchstabenKopf* zeichKpf
         LTDSBuchstabenKopf* zeichKpf
-            = new LTDSBuchstabenKopf(); // Buchstabenkopf
+            = new LTDSBuchstabenKopf(); // character header
         zeichKpf->init(zeichen, zeich->getSize());
         zeichKpf->init(zeichen, zeich->getSize());
-        zeichKpf->speichern(outF); // Buchstabenkopf speichern
+        zeichKpf->speichern(outF); // save character header
         LTDSBuchstabenKoerper* zeichKoerp
         LTDSBuchstabenKoerper* zeichKoerp
             = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
             = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
-                zeichKpf->getThis())); // Buchstabenkoerper
+                zeichKpf->getThis())); // character body
         zeichKpf->release();
         zeichKpf->release();
         zeichKoerp->setBuchstabe(dynamic_cast<Buchstabe*>(zeich->getThis()));
         zeichKoerp->setBuchstabe(dynamic_cast<Buchstabe*>(zeich->getThis()));
-        zeichKoerp->speichern(outF); // Buchstabenkoerper speichern
+        zeichKoerp->speichern(outF); // save character body
         zeichKoerp->release();
         zeichKoerp->release();
     }
     }
     else
     else
     {
     {
-        dateiKopf->speichern(outF); // Dateikopf speichern
+        dateiKopf->speichern(outF); // save file header
         int beginByte
         int beginByte
-            = 1 + 5 * sgAnzahl; // Die restlichen bytes bis zur naechsten
-                                // Schriftgroesse in neue Datei kopieren
+            = 1 + 5 * sgAnzahl; // copy remaining bytes until the next
+                                // font size to new file
         int endByte = sgPosList[sgNum];
         int endByte = sgPosList[sgNum];
         char byte;
         char byte;
         for (int i1 = beginByte; i1 < endByte;
         for (int i1 = beginByte; i1 < endByte;
-            ++i1) // Kopiervorgang bis zur angegebenen groesse
+            ++i1) // copy operation up to the specified size
         {
         {
             inF->read(&byte, 1);
             inF->read(&byte, 1);
             outF->write(&byte, 1);
             outF->write(&byte, 1);
         }
         }
-        LTDSSchriftKopf* sgKpf = new LTDSSchriftKopf(); // Schriftgroesse Kopf
+        LTDSSchriftKopf* sgKpf = new LTDSSchriftKopf(); // font size header
         sgKpf->laden(inF);
         sgKpf->laden(inF);
         for (int i = 0; i < sgKpf->getZeichenAnzahl(); ++i)
         for (int i = 0; i < sgKpf->getZeichenAnzahl(); ++i)
             sgKpf->getPositionen()[i] += 5;
             sgKpf->getPositionen()[i] += 5;
         sgKpf->addZeichen(zeichen);
         sgKpf->addZeichen(zeichen);
         int indexPlus = 5;
         int indexPlus = 5;
-        int zeichenPos = sgPosList[sgNum + 1]; // position des neuen Zeichens
+        int zeichenPos = sgPosList[sgNum + 1]; // position of the new character
         if (sgNum + 1 >= sgAnzahl)
         if (sgNum + 1 >= sgAnzahl)
         {
         {
             int tmp = (int)inF->tellg();
             int tmp = (int)inF->tellg();
@@ -2568,51 +2564,51 @@ void LTDSDatei::addBuchstabe(int gr,
         }
         }
         zeichenPos += indexPlus;
         zeichenPos += indexPlus;
         sgKpf->getPositionen()[sgKpf->getZeichenAnzahl() - 1] = zeichenPos;
         sgKpf->getPositionen()[sgKpf->getZeichenAnzahl() - 1] = zeichenPos;
-        sgKpf->speichern(outF); // Schriftgroesse Kopf speichern
+        sgKpf->speichern(outF); // save font size header
         sgKpf->release();
         sgKpf->release();
         for (int i = (int)inF->tellg() + indexPlus; i < zeichenPos;
         for (int i = (int)inF->tellg() + indexPlus; i < zeichenPos;
-            ++i) // Kopiervorgang bis zum Zeichenbeginn
+            ++i) // copy operation up to the character start
         {
         {
             inF->read(&byte, 1);
             inF->read(&byte, 1);
             outF->write(&byte, 1);
             outF->write(&byte, 1);
         }
         }
-        LTDSBuchstabenKopf* zeichKpf = new LTDSBuchstabenKopf(); // Zeichenkopf
+        LTDSBuchstabenKopf* zeichKpf = new LTDSBuchstabenKopf(); // character header
         zeichKpf->init(zeichen, zeich->getSize());
         zeichKpf->init(zeichen, zeich->getSize());
-        zeichKpf->speichern(outF); // Zeichenkopf speichern
+        zeichKpf->speichern(outF); // save character header
         LTDSBuchstabenKoerper* zeichKoerp
         LTDSBuchstabenKoerper* zeichKoerp
             = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
             = new LTDSBuchstabenKoerper(dynamic_cast<LTDSBuchstabenKopf*>(
-                zeichKpf->getThis())); // Zeichenkoerper
+                zeichKpf->getThis())); // character body
         zeichKpf->release();
         zeichKpf->release();
         zeichKoerp->setBuchstabe(dynamic_cast<Buchstabe*>(zeich->getThis()));
         zeichKoerp->setBuchstabe(dynamic_cast<Buchstabe*>(zeich->getThis()));
-        zeichKoerp->speichern(outF); // Zeichenkoerper speichern
+        zeichKoerp->speichern(outF); // save character body
         zeichKoerp->release();
         zeichKoerp->release();
         int nowPos = (int)outF->tellp();
         int nowPos = (int)outF->tellp();
         indexPlus += nowPos - zeichenPos;
         indexPlus += nowPos - zeichenPos;
-        for (int i = sgNum + 1; i < sgAnzahl; ++i) // Dateikopf aktualisieren
+        for (int i = sgNum + 1; i < sgAnzahl; ++i) // update file header
             sgPosList[i] += indexPlus;
             sgPosList[i] += indexPlus;
         outF->seekp(0, std::ios::beg);
         outF->seekp(0, std::ios::beg);
-        dateiKopf->speichern(outF); // Dateikopf speichern
+        dateiKopf->speichern(outF); // save file header
         outF->seekp(nowPos, std::ios::beg);
         outF->seekp(nowPos, std::ios::beg);
         for (int i = sgNum + 1; i < sgAnzahl;
         for (int i = sgNum + 1; i < sgAnzahl;
-            ++i) // Restliche Schriftgroessen aktualisieren
+            ++i) // update remaining font sizes
         {
         {
             LTDSSchriftKopf* sgKpf_tmp
             LTDSSchriftKopf* sgKpf_tmp
-                = new LTDSSchriftKopf(); // Schriftgroessen Kopf
-            sgKpf_tmp->laden(inF);       // aus alter Datei laden
+                = new LTDSSchriftKopf(); // font size header
+            sgKpf_tmp->laden(inF);       // load from old file
             int* zeichP_tmp
             int* zeichP_tmp
                 = sgKpf_tmp
                 = sgKpf_tmp
-                      ->getPositionen(); // Zeichenpositionen der Schriftgroesse
+                      ->getPositionen(); // character positions of the font size
             unsigned char zeichA_tmp
             unsigned char zeichA_tmp
-                = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der
-                                                 // Schriftgroesse
+                = sgKpf_tmp->getZeichenAnzahl(); // number of characters in
+                                                 // the font size
             for (int i1 = 0; i1 < zeichA_tmp; ++i1)
             for (int i1 = 0; i1 < zeichA_tmp; ++i1)
                 zeichP_tmp[i1]
                 zeichP_tmp[i1]
-                    += indexPlus; // Buchstabenpositionen aktualisieren
+                    += indexPlus; // update character positions
             sgKpf_tmp->speichern(
             sgKpf_tmp->speichern(
-                outF); // Schriftgroesse Kopf in neue Datei speichern
+                outF); // save font size header to new file
             int beginByte
             int beginByte
-                = (int)inF->tellg(); // Die restlichen bytes bis zur naechsten
-                                     // Schriftgroesse in neue Datei kopieren
+                = (int)inF->tellg(); // copy remaining bytes until the next
+                                     // font size to new file
             int endByte = sgPosList[i + 1];
             int endByte = sgPosList[i + 1];
             if (i + 1 >= sgAnzahl)
             if (i + 1 >= sgAnzahl)
             {
             {
@@ -2621,7 +2617,7 @@ void LTDSDatei::addBuchstabe(int gr,
                 inF->seekg(beginByte, std::ios::beg);
                 inF->seekg(beginByte, std::ios::beg);
             }
             }
             char byte;
             char byte;
-            for (int i1 = beginByte; i1 < endByte; ++i1) // Kopiervorgang
+            for (int i1 = beginByte; i1 < endByte; ++i1) // copy operation
             {
             {
                 inF->read(&byte, 1);
                 inF->read(&byte, 1);
                 outF->write(&byte, 1);
                 outF->write(&byte, 1);
@@ -2633,29 +2629,29 @@ void LTDSDatei::addBuchstabe(int gr,
     outF->close();
     outF->close();
     Text* pfad2 = new Text(pfad->getText());
     Text* pfad2 = new Text(pfad->getText());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
-    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // Alte Datei loeschen
+    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // delete old file
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
-        dynamic_cast<Text*>(pfad->getThis())); // Neue Datei in alte umbenennen
-    pfad2->release();                          // Speicher freigeben
+        dynamic_cast<Text*>(pfad->getThis())); // rename new file to old
+    pfad2->release();                          // free memory
     delete inF;
     delete inF;
     delete outF;
     delete outF;
     zeich->release();
     zeich->release();
 }
 }
 
 
 void LTDSDatei::loescheSchrifrGroesse(
 void LTDSDatei::loescheSchrifrGroesse(
-    int gr) // Loescht eine Schriftgroesse aus der Datei
+    int gr) // Deletes a font size from the file
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(
     if (!DateiExistiert(dynamic_cast<Text*>(
-            pfad->getThis()))) // pruefen, ob Datei existiert
+            pfad->getThis()))) // check if file exists
         return;
         return;
-    if (!dateiKopf) // pruefen, ob der Dateikopf geladen wurde
+    if (!dateiKopf) // check if the file header was loaded
         leseDaten();
         leseDaten();
     unsigned char* sgList
     unsigned char* sgList
-        = dateiKopf->getSchriftGroesseList(); // Liste mit Schriftgroessen
+        = dateiKopf->getSchriftGroesseList(); // list of font sizes
     unsigned char sgAnzahl
     unsigned char sgAnzahl
-        = dateiKopf->getSchriftGroesseAnzahl(); // Anzahl der Schriftgroessen
+        = dateiKopf->getSchriftGroesseAnzahl(); // number of font sizes
     int sgNum = -1;
     int sgNum = -1;
-    for (int i = 0; i < sgAnzahl; ++i) // zu loeschende Schriftgroesse suchen
+    for (int i = 0; i < sgAnzahl; ++i) // search for font size to delete
     {
     {
         if (sgList[i] == gr)
         if (sgList[i] == gr)
         {
         {
@@ -2663,34 +2659,34 @@ void LTDSDatei::loescheSchrifrGroesse(
             break;
             break;
         }
         }
     }
     }
-    if (sgNum == -1) // Die Schriftgroesse ist nicht vorhanden
+    if (sgNum == -1) // the font size is not present
         return;
         return;
     int* sgPosList
     int* sgPosList
         = dateiKopf
         = dateiKopf
-              ->getPositionList(); // Liste von Positionen der Schriftgroessen
+              ->getPositionList(); // list of font size positions
     std::ifstream* inF
     std::ifstream* inF
-        = new std::ifstream(pfad->getText(), std::ios::binary); // alte Datei
+        = new std::ifstream(pfad->getText(), std::ios::binary); // old file
     pfad->append("0");
     pfad->append("0");
     std::ofstream* outF
     std::ofstream* outF
-        = new std::ofstream(pfad->getText(), std::ios::binary); // neue Datei
+        = new std::ofstream(pfad->getText(), std::ios::binary); // new file
     outF->seekp(1 + 5 * (sgAnzahl - 1), std::ios::beg);
     outF->seekp(1 + 5 * (sgAnzahl - 1), std::ios::beg);
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
-    for (int i = 0; i < sgNum; ++i) // Schriftgroessen vor der zu loeschenden
-                                    // Schriftgroesse aktualisieren
+    for (int i = 0; i < sgNum; ++i) // update font sizes before the one
+                                    // being deleted
     {
     {
         LTDSSchriftKopf* sgKpf_tmp
         LTDSSchriftKopf* sgKpf_tmp
-            = new LTDSSchriftKopf(); // Schriftgroessen Kopf
-        sgKpf_tmp->laden(inF);       // Schriftgroessen Kopf laden
-        int* zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
+            = new LTDSSchriftKopf(); // font size header
+        sgKpf_tmp->laden(inF);       // load font size header
+        int* zeichPosLTmp = sgKpf_tmp->getPositionen(); // character positions
         unsigned char zeichATmp
         unsigned char zeichATmp
-            = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
+            = sgKpf_tmp->getZeichenAnzahl(); // character count
         for (int i1 = 0; i1 < zeichATmp;
         for (int i1 = 0; i1 < zeichATmp;
-            ++i1) // Position der Zeichen um 5 bytes zuruecksetzen
+            ++i1) // move character positions back by 5 bytes
             zeichPosLTmp[i1] -= 5;
             zeichPosLTmp[i1] -= 5;
-        sgKpf_tmp->speichern(outF); // speichern in Neue Datei
+        sgKpf_tmp->speichern(outF); // save to new file
         char byte = 0;
         char byte = 0;
         for (int i1 = (int)inF->tellg(); i1 < sgPosList[i + 1];
         for (int i1 = (int)inF->tellg(); i1 < sgPosList[i + 1];
-            ++i1) // Den Koerper des Zeichens Kopieren
+            ++i1) // copy the character body
         {
         {
             inF->read(&byte, 1);
             inF->read(&byte, 1);
             outF->write(&byte, 1);
             outF->write(&byte, 1);
@@ -2700,18 +2696,18 @@ void LTDSDatei::loescheSchrifrGroesse(
     int indexMinus = 5 + sgPosList[sgNum + 1] - (int)inF->tellg();
     int indexMinus = 5 + sgPosList[sgNum + 1] - (int)inF->tellg();
     inF->seekg(sgPosList[sgNum + 1], std::ios::beg);
     inF->seekg(sgPosList[sgNum + 1], std::ios::beg);
     for (int i = sgNum + 1; i < sgAnzahl;
     for (int i = sgNum + 1; i < sgAnzahl;
-        ++i) // Die Schriftgroesse nach der zu loeschenden Schriftgroesse
+        ++i) // font sizes after the one being deleted
     {
     {
         LTDSSchriftKopf* sgKpf_tmp
         LTDSSchriftKopf* sgKpf_tmp
-            = new LTDSSchriftKopf(); // Schriftgroessen Kopf
-        sgKpf_tmp->laden(inF);       // Schriftgroessen Kopf laden
-        int* zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
+            = new LTDSSchriftKopf(); // font size header
+        sgKpf_tmp->laden(inF);       // load font size header
+        int* zeichPosLTmp = sgKpf_tmp->getPositionen(); // character positions
         unsigned char zeichATmp
         unsigned char zeichATmp
-            = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
+            = sgKpf_tmp->getZeichenAnzahl(); // character count
         for (int i1 = 0; i1 < zeichATmp;
         for (int i1 = 0; i1 < zeichATmp;
-            ++i1) // Position der Zeichen aktualisieren
+            ++i1) // update character positions
             zeichPosLTmp[i1] -= indexMinus;
             zeichPosLTmp[i1] -= indexMinus;
-        sgKpf_tmp->speichern(outF); // speichern in Neue Datei
+        sgKpf_tmp->speichern(outF); // save to new file
         char byte = 0;
         char byte = 0;
         int BeginByte = (int)inF->tellg();
         int BeginByte = (int)inF->tellg();
         int EndByte = sgPosList[i + 1];
         int EndByte = sgPosList[i + 1];
@@ -2722,48 +2718,48 @@ void LTDSDatei::loescheSchrifrGroesse(
             inF->seekg(BeginByte, std::ios::beg);
             inF->seekg(BeginByte, std::ios::beg);
         }
         }
         for (int i1 = BeginByte; i1 < EndByte;
         for (int i1 = BeginByte; i1 < EndByte;
-            ++i1) // Den Koerper des Zeichens Kopieren
+            ++i1) // copy the character body
         {
         {
             inF->read(&byte, 1);
             inF->read(&byte, 1);
             outF->write(&byte, 1);
             outF->write(&byte, 1);
         }
         }
     }
     }
-    for (int i = 0; i < sgNum; ++i) // Dateikopf aktualisieren
+    for (int i = 0; i < sgNum; ++i) // update file header
         sgPosList[i] -= 5;
         sgPosList[i] -= 5;
     for (int i = sgNum + 1; i < sgAnzahl; ++i)
     for (int i = sgNum + 1; i < sgAnzahl; ++i)
         sgPosList[i] -= indexMinus;
         sgPosList[i] -= indexMinus;
     dateiKopf->removeSG(gr);
     dateiKopf->removeSG(gr);
     outF->seekp(0, std::ios::beg);
     outF->seekp(0, std::ios::beg);
-    dateiKopf->speichern(outF); // Dateikopf speichern
+    dateiKopf->speichern(outF); // save file header
     inF->close();
     inF->close();
     outF->close();
     outF->close();
     Text* pfad2 = new Text(pfad->getText());
     Text* pfad2 = new Text(pfad->getText());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
-    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // alte Datei loeschen
+    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // delete old file
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
-        dynamic_cast<Text*>(pfad->getThis())); // neue Datei zu alter umbenennen
+        dynamic_cast<Text*>(pfad->getThis())); // rename new file to old
     pfad2->release();
     pfad2->release();
     delete inF;
     delete inF;
     delete outF;
     delete outF;
 }
 }
 
 
 void LTDSDatei::loescheBuchstabe(
 void LTDSDatei::loescheBuchstabe(
-    int gr, unsigned char zeichen) // Loescht einen Buchstaben aus der Datei
+    int gr, unsigned char zeichen) // Deletes a character from the file
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(
     if (!DateiExistiert(dynamic_cast<Text*>(
-            pfad->getThis()))) // pruefen, ob die Datei existiert
+            pfad->getThis()))) // check if the file exists
         return;
         return;
-    if (!dateiKopf) // pruefen, ob der Dateikopf gelesen wurde
+    if (!dateiKopf) // check if the file header was read
         leseDaten();
         leseDaten();
     unsigned char* sgList
     unsigned char* sgList
-        = dateiKopf->getSchriftGroesseList(); // Liste mit Schriftgroessen
+        = dateiKopf->getSchriftGroesseList(); // list of font sizes
     unsigned char sgAnzahl
     unsigned char sgAnzahl
-        = dateiKopf->getSchriftGroesseAnzahl(); // Anzahl der Schriftgroessen
+        = dateiKopf->getSchriftGroesseAnzahl(); // number of font sizes
     int* sgPosList
     int* sgPosList
         = dateiKopf
         = dateiKopf
-              ->getPositionList(); // Liste mit Positionen der Schriftgroessen
+              ->getPositionList(); // list of font size positions
     int sgNum = -1;
     int sgNum = -1;
-    for (int i = 0; i < sgAnzahl; ++i) // Schriftgroesse suchen
+    for (int i = 0; i < sgAnzahl; ++i) // search for font size
     {
     {
         if (sgList[i] == gr)
         if (sgList[i] == gr)
         {
         {
@@ -2771,28 +2767,28 @@ void LTDSDatei::loescheBuchstabe(
             break;
             break;
         }
         }
     }
     }
-    if (sgNum == -1) // Schriftgroesse nicht gefunden
+    if (sgNum == -1) // font size not found
         return;
         return;
     std::ifstream* inF
     std::ifstream* inF
-        = new std::ifstream(pfad->getText(), std::ios::binary); // alte Datei
+        = new std::ifstream(pfad->getText(), std::ios::binary); // old file
     pfad->append("0");
     pfad->append("0");
     std::ofstream* outF
     std::ofstream* outF
-        = new std::ofstream(pfad->getText(), std::ios::binary); // neue Datei
+        = new std::ofstream(pfad->getText(), std::ios::binary); // new file
     int indexMinus = 0;
     int indexMinus = 0;
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
     inF->seekg(1 + 5 * sgAnzahl, std::ios::beg);
-    dateiKopf->speichern(outF); // DateiKopf peichern
+    dateiKopf->speichern(outF); // save file header
     for (int i = 0; i < sgAnzahl; ++i)
     for (int i = 0; i < sgAnzahl; ++i)
     {
     {
-        LTDSSchriftKopf* sgKopf = new LTDSSchriftKopf(); // Schriftkopf
-        sgKopf->laden(inF);                              // Schriftkopf laden
+        LTDSSchriftKopf* sgKopf = new LTDSSchriftKopf(); // font header
+        sgKopf->laden(inF);                              // load font header
         unsigned char sgZeichAnzahl
         unsigned char sgZeichAnzahl
-            = sgKopf->getZeichenAnzahl();                    // Zeichenanzahl
-        unsigned char* sgZeichenList = sgKopf->getZeichen(); // Zeichen Liste
-        int* sgZPosList = sgKopf->getPositionen();           // Positions Liste
-        if (i == sgNum) // Zeichen befindet sich in dieser Schriftgroesse
+            = sgKopf->getZeichenAnzahl();                    // character count
+        unsigned char* sgZeichenList = sgKopf->getZeichen(); // character list
+        int* sgZPosList = sgKopf->getPositionen();           // position list
+        if (i == sgNum) // character is in this font size
         {
         {
             int sgZNum = -1;
             int sgZNum = -1;
-            for (int i1 = 0; i1 < sgZeichAnzahl; ++i1) // Zeichen suchen
+            for (int i1 = 0; i1 < sgZeichAnzahl; ++i1) // search for character
             {
             {
                 if (sgZeichenList[i1] == zeichen)
                 if (sgZeichenList[i1] == zeichen)
                 {
                 {
@@ -2800,7 +2796,7 @@ void LTDSDatei::loescheBuchstabe(
                     break;
                     break;
                 }
                 }
             }
             }
-            if (sgZNum == -1) // Zeichen nicht gefunden
+            if (sgZNum == -1) // character not found
             {
             {
                 sgKopf->release();
                 sgKopf->release();
                 inF->close();
                 inF->close();
@@ -2809,22 +2805,22 @@ void LTDSDatei::loescheBuchstabe(
                 delete outF;
                 delete outF;
                 DateiRemove(dynamic_cast<Text*>(pfad->getThis()));
                 DateiRemove(dynamic_cast<Text*>(pfad->getThis()));
                 pfad->remove(pfad->getLength() - 1, pfad->getLength());
                 pfad->remove(pfad->getLength() - 1, pfad->getLength());
-                return; // abbruch
+                return; // abort
             }
             }
             outF->seekp(2 + 5 * (sgZeichAnzahl - 1), std::ios::cur);
             outF->seekp(2 + 5 * (sgZeichAnzahl - 1), std::ios::cur);
             indexMinus += 5;
             indexMinus += 5;
             for (int i1 = 0; i1 < sgZNum;
             for (int i1 = 0; i1 < sgZNum;
-                ++i1) // Zeichen vor dem zu loeschenden Zeichen
+                ++i1) // characters before the one being deleted
             {
             {
                 char byte = 0;
                 char byte = 0;
                 for (int i2 = sgZPosList[i1]; i2 < sgZPosList[i1 + 1];
                 for (int i2 = sgZPosList[i1]; i2 < sgZPosList[i1 + 1];
-                    ++i2) // Kopieren
+                    ++i2) // copy
                 {
                 {
                     inF->read(&byte, 1);
                     inF->read(&byte, 1);
                     outF->write(&byte, 1);
                     outF->write(&byte, 1);
                 }
                 }
                 sgZPosList[i1]
                 sgZPosList[i1]
-                    -= indexMinus; // Schriftgroesse Kopf aktualisieren
+                    -= indexMinus; // update font size header
             }
             }
             if (!sgZPosList[sgZNum + 1])
             if (!sgZPosList[sgZNum + 1])
             {
             {
@@ -2843,7 +2839,7 @@ void LTDSDatei::loescheBuchstabe(
             if (sgZNum + 1 < sgZeichAnzahl)
             if (sgZNum + 1 < sgZeichAnzahl)
                 inF->seekg(sgZPosList[sgZNum + 1], std::ios::beg);
                 inF->seekg(sgZPosList[sgZNum + 1], std::ios::beg);
             for (int i1 = sgZNum + 1; i1 < sgZeichAnzahl;
             for (int i1 = sgZNum + 1; i1 < sgZeichAnzahl;
-                ++i1) // Zeichen nach dem geloeschten Zeichen
+                ++i1) // characters after the deleted character
             {
             {
                 int beginByte = (int)inF->tellg();
                 int beginByte = (int)inF->tellg();
                 int endByte = sgZPosList[i1 + 1];
                 int endByte = sgZPosList[i1 + 1];
@@ -2854,22 +2850,22 @@ void LTDSDatei::loescheBuchstabe(
                     inF->seekg(beginByte, std::ios::beg);
                     inF->seekg(beginByte, std::ios::beg);
                 }
                 }
                 char byte = 0;
                 char byte = 0;
-                for (int i2 = beginByte; i2 < endByte; ++i2) // Kopieren
+                for (int i2 = beginByte; i2 < endByte; ++i2) // copy
                 {
                 {
                     inF->read(&byte, 1);
                     inF->read(&byte, 1);
                     outF->write(&byte, 1);
                     outF->write(&byte, 1);
                 }
                 }
                 sgZPosList[i1]
                 sgZPosList[i1]
-                    -= indexMinus; // Schriftgroesse Kopf aktualisieren
+                    -= indexMinus; // update font size header
             }
             }
             sgKopf->removeZeichen(zeichen);
             sgKopf->removeZeichen(zeichen);
         }
         }
         else
         else
         {
         {
             for (int i1 = 0; i1 < sgZeichAnzahl;
             for (int i1 = 0; i1 < sgZeichAnzahl;
-                ++i1) // Schriftgroesse Kopf aktualisieren
+                ++i1) // update font size header
                 sgZPosList[i] -= indexMinus;
                 sgZPosList[i] -= indexMinus;
-            sgKopf->speichern(outF); // Schriftgroesse Kopf speichern
+            sgKopf->speichern(outF); // save font size header
             int beginByte = (int)inF->tellg();
             int beginByte = (int)inF->tellg();
             int endByte = sgPosList[i + 1];
             int endByte = sgPosList[i + 1];
             if (!endByte)
             if (!endByte)
@@ -2879,7 +2875,7 @@ void LTDSDatei::loescheBuchstabe(
                 inF->seekg(beginByte, std::ios::beg);
                 inF->seekg(beginByte, std::ios::beg);
             }
             }
             char byte;
             char byte;
-            for (int i1 = beginByte; i1 < endByte; ++i1) // Kopieren
+            for (int i1 = beginByte; i1 < endByte; ++i1) // copy
             {
             {
                 inF->read(&byte, 1);
                 inF->read(&byte, 1);
                 outF->write(&byte, 1);
                 outF->write(&byte, 1);
@@ -2887,7 +2883,7 @@ void LTDSDatei::loescheBuchstabe(
             sgPosList[i] -= indexMinus;
             sgPosList[i] -= indexMinus;
         }
         }
         outF->seekp(sgPosList[i], std::ios::beg);
         outF->seekp(sgPosList[i], std::ios::beg);
-        sgKopf->speichern(outF); // Schriftgroesse Kopf speichern
+        sgKopf->speichern(outF); // save font size header
         outF->seekp(sgPosList[i + 1], std::ios::beg);
         outF->seekp(sgPosList[i + 1], std::ios::beg);
         sgKopf->release();
         sgKopf->release();
     }
     }
@@ -2895,23 +2891,23 @@ void LTDSDatei::loescheBuchstabe(
     outF->close();
     outF->close();
     Text* pfad2 = new Text(pfad->getText());
     Text* pfad2 = new Text(pfad->getText());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
     pfad->remove(pfad->getLength() - 1, pfad->getLength());
-    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // alte Datei loeschen
+    DateiRemove(dynamic_cast<Text*>(pfad->getThis())); // delete old file
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
     DateiUmbenennen(dynamic_cast<Text*>(pfad2->getThis()),
         dynamic_cast<Text*>(
         dynamic_cast<Text*>(
-            pfad->getThis())); // neue Datei nach alte umbenennen
-    pfad2->release();          // Speicher freigeben
+            pfad->getThis())); // rename new file to old
+    pfad2->release();          // free memory
     delete inF;
     delete inF;
     delete outF;
     delete outF;
 }
 }
 
 
-void LTDSDatei::loescheDatei() // Loescht die gesamte Datei
+void LTDSDatei::loescheDatei() // Deletes the entire file
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return;
     if (!dateiKopf) leseDaten();
     if (!dateiKopf) leseDaten();
     DateiRemove(dynamic_cast<Text*>(pfad->getThis()));
     DateiRemove(dynamic_cast<Text*>(pfad->getThis()));
 }
 }
 
 
-void LTDSDatei::erstelleDatei() // erstellt die Datei
+void LTDSDatei::erstelleDatei() // creates the file
 {
 {
     DateiPfadErstellen(dynamic_cast<Text*>(pfad->getThis()));
     DateiPfadErstellen(dynamic_cast<Text*>(pfad->getThis()));
     if (dateiKopf) dateiKopf->release();
     if (dateiKopf) dateiKopf->release();
@@ -2923,7 +2919,7 @@ void LTDSDatei::erstelleDatei() // erstellt die Datei
 }
 }
 
 
 void LTDSDatei::speicherSchrift(
 void LTDSDatei::speicherSchrift(
-    Schrift* schrift) // Speichert die uebergebene Schrift
+Schrift* schrift) // Saves the provided font
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis())))
     {
     {
@@ -2987,7 +2983,7 @@ void LTDSDatei::speicherSchrift(
 }
 }
 
 
 // constant
 // constant
-Schrift* LTDSDatei::ladeSchrift() // gibt die geladene Schrift zurueck
+Schrift* LTDSDatei::ladeSchrift() // returns the loaded font
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3022,8 +3018,8 @@ Schrift* LTDSDatei::ladeSchrift() // gibt die geladene Schrift zurueck
 }
 }
 
 
 Alphabet* LTDSDatei::ladeAlphabet(
 Alphabet* LTDSDatei::ladeAlphabet(
-    int schriftgroesse) // gibt eine geladene Schrift nur mit der angegebenen
-                        // Schriftgroesse zurueck
+int schriftgroesse) // returns a loaded font with only the specified
+                    // font size
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3063,7 +3059,7 @@ Alphabet* LTDSDatei::ladeAlphabet(
 }
 }
 
 
 Buchstabe* LTDSDatei::ladeBuchstabe(int schriftgroesse,
 Buchstabe* LTDSDatei::ladeBuchstabe(int schriftgroesse,
-    unsigned char zeichen) // Laed einen bestimmten Buchstaben
+unsigned char zeichen) // Loads a specific character
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3113,13 +3109,13 @@ Buchstabe* LTDSDatei::ladeBuchstabe(int schriftgroesse,
     return ret;
     return ret;
 }
 }
 
 
-Text* LTDSDatei::getPfad() const // gibt den Dateipfad zurueck
+Text* LTDSDatei::getPfad() const // returns the file path
 {
 {
     return dynamic_cast<Text*>(pfad->getThis());
     return dynamic_cast<Text*>(pfad->getThis());
 }
 }
 
 
 int LTDSDatei::getAnzahlSchriftgroessen()
 int LTDSDatei::getAnzahlSchriftgroessen()
-    const // gibt die Anzahl der Schriftgroessen aus der Datei zurueck
+const // returns the number of font sizes from the file
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3127,7 +3123,7 @@ int LTDSDatei::getAnzahlSchriftgroessen()
 }
 }
 
 
 unsigned char* LTDSDatei::getSchriftGroessen()
 unsigned char* LTDSDatei::getSchriftGroessen()
-    const // gibt einen Array von Schriftgroessen zurueck
+const // returns an array of font sizes
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3135,8 +3131,7 @@ unsigned char* LTDSDatei::getSchriftGroessen()
 }
 }
 
 
 unsigned char LTDSDatei::getAnzahlBuchstaben(
 unsigned char LTDSDatei::getAnzahlBuchstaben(
-    int sg) // gibt die anzahl gespeicherter Buchstaben einer Schriftgroesse
-            // zurueck
+int sg) // returns the number of stored characters for a font size
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3169,7 +3164,7 @@ unsigned char LTDSDatei::getAnzahlBuchstaben(
 }
 }
 
 
 unsigned char* LTDSDatei::getBuchstaben(
 unsigned char* LTDSDatei::getBuchstaben(
-    int sg) // gibt einen Array von Buchstaben einer Schriftgroesse zurueck
+int sg) // returns an array of characters for a font size
 {
 {
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!DateiExistiert(dynamic_cast<Text*>(pfad->getThis()))) return 0;
     if (!dateiKopf) return 0;
     if (!dateiKopf) return 0;
@@ -3204,8 +3199,8 @@ unsigned char* LTDSDatei::getBuchstaben(
     return ret;
     return ret;
 }
 }
 #endif
 #endif
-// Bit Funktionen
-int Framework::Bits(int a) // gibt 1-bits in gewinschter anzahl zurueck
+// Bit functions
+int Framework::Bits(int a) // returns 1-bits in the desired count
 {
 {
     int ret = 0;
     int ret = 0;
     for (int i = 0; i < a; ++i)
     for (int i = 0; i < a; ++i)
@@ -3216,7 +3211,7 @@ int Framework::Bits(int a) // gibt 1-bits in gewinschter anzahl zurueck
     return ret;
     return ret;
 }
 }
 
 
-int Framework::getBits(char c) // gibt zurueck, wie viele Bits c benoetigt
+int Framework::getBits(char c) // returns how many bits c requires
 {
 {
     int ret = 0;
     int ret = 0;
     for (int i = 0; (c & (char)Bits(i)) != c; ++i)
     for (int i = 0; (c & (char)Bits(i)) != c; ++i)

+ 290 - 294
Text.cpp

@@ -47,11 +47,11 @@ Text::Text(char* t, int l)
       stringWriter(0)
       stringWriter(0)
 {
 {
     length = l;
     length = l;
-    txt = t; // neuen Text erstellen
+    txt = t; // create new text
 }
 }
 
 
-// inhalt der Text Klasse aus Text.h
-// Konstruktor
+// Content of the Text class from Text.h
+// Constructor
 Text::Text()
 Text::Text()
     : ReferenceCounter(),
     : ReferenceCounter(),
       txt(0),
       txt(0),
@@ -85,7 +85,7 @@ Text::Text(const char* t)
       precision(-1),
       precision(-1),
       stringWriter(0)
       stringWriter(0)
 {
 {
-    setText(t); // Text setzen
+    setText(t); // set text
 }
 }
 
 
 Framework::Text::Text(const char* txt, int offset, int length)
 Framework::Text::Text(const char* txt, int offset, int length)
@@ -115,23 +115,23 @@ Text::Text(int zahl)
     *this = zahl;
     *this = zahl;
 }
 }
 
 
-// Erstellt ein neues Text Objekt mit einer zahl als text
-//  num: Die Zahl, die im Text sein soll
+// Creates a new Text object with a number as text
+//  num: The number that should be in the text
 Text::Text(double num)
 Text::Text(double num)
     : Text()
     : Text()
 {
 {
     *this = num;
     *this = num;
 }
 }
 
 
-// Erstellt ein neues Text Objekt mit einer zahl als text
-//  num: Die Zahl, die im Text sein soll
+// Creates a new Text object with a number as text
+//  num: The number that should be in the text
 Text::Text(float num)
 Text::Text(float num)
     : Text()
     : Text()
 {
 {
     *this = num;
     *this = num;
 }
 }
 
 
-// Destruktor
+// Destructor
 Text::~Text()
 Text::~Text()
 {
 {
     if (stringWriter) delete stringWriter;
     if (stringWriter) delete stringWriter;
@@ -140,9 +140,9 @@ Text::~Text()
 
 
 void Framework::Text::setTextZ(char* t, int l)
 void Framework::Text::setTextZ(char* t, int l)
 {
 {
-    delete[] txt; // alter Text loeschen
+    delete[] txt; // delete old text
     length = l;
     length = l;
-    txt = t; // neuen Text erstellen
+    txt = t; // create new text
 }
 }
 
 
 void Text::toUpperCase()
 void Text::toUpperCase()
@@ -187,54 +187,54 @@ void Text::toLowerCase()
     }
     }
 }
 }
 
 
-// nicht constant
+// non-constant
 void Text::setSuchGrenzen(
 void Text::setSuchGrenzen(
-    char gBeg, char gEnd) // sucht bei jeder suchfunktion nicht zwischen den
-                          // Zeichen gBeg und gEnd
+char gBeg, char gEnd) // for every search function, does not search between
+                      // the characters gBeg and gEnd
 {
 {
     suchGBeg = gBeg;
     suchGBeg = gBeg;
     suchGEnd = gEnd;
     suchGEnd = gEnd;
 }
 }
 
 
-void Text::setText(const char* t) // ersetzt den Text
+void Text::setText(const char* t) // replaces the text
 {
 {
-    setText(t, textLength(t)); // Text setzen
+    setText(t, textLength(t)); // set text
 }
 }
 
 
-// unconstant
-void Text::setText(const char* t, int l) // ersetzt den Text
+// non-constant
+void Text::setText(const char* t, int l) // replaces the text
 {
 {
-    delete[] txt; // alter Text loeschen
+    delete[] txt; // delete old text
     length = l;
     length = l;
-    txt = new char[(__int64)length + 1]; // neuen Text erstellen
-    for (int i = 0; i < length; ++i)     // Text befuellen
+    txt = new char[(__int64)length + 1]; // create new text
+    for (int i = 0; i < length; ++i)     // fill text
         txt[i] = t[i];
         txt[i] = t[i];
-    txt[length] = '\0'; // Textende Festlegen
+    txt[length] = '\0'; // set text end
 }
 }
 
 
 void Text::setText(const Text& t)
 void Text::setText(const Text& t)
 {
 {
-    setText(t, t.getLength()); // Text setzen
+    setText(t, t.getLength()); // set text
 }
 }
 
 
-void Text::append(char c) // haengt an den Text an
+void Text::append(char c) // appends to the text
 {
 {
     append(&c, 1);
     append(&c, 1);
 }
 }
 
 
-void Text::append(const char* t) // haengt an den Text an
+void Text::append(const char* t) // appends to the text
 {
 {
-    int tl = (int)textLength(t);                    // laenge der uebergabe
-    char* res = new char[(__int64)tl + length + 1]; // neuen Text erstellen
-    for (int i = 0; i < length; ++i)                // mit jetzigem Text fuellen
+    int tl = (int)textLength(t);                    // length of the argument
+    char* res = new char[(__int64)tl + length + 1]; // create new text
+    for (int i = 0; i < length; ++i)                // fill with current text
         res[i] = txt[i];
         res[i] = txt[i];
-    for (int i = 0; i < tl; ++i) // UEbergabe anhaengen
+    for (int i = 0; i < tl; ++i) // append argument
         res[length + i] = t[i];
         res[length + i] = t[i];
-    res[length + tl] = '\0';    // Textende festlegen
-    setTextZ(res, length + tl); // Test setzen
+    res[length + tl] = '\0';    // set text end
+    setTextZ(res, length + tl); // set text
 }
 }
 
 
-void Text::appendHex(char num) // haengt die zahl in hex anden Text an
+void Text::appendHex(char num) // appends the number in hex to the text
 {
 {
     char* res = new char[(__int64)length + sizeof(char) * 2 + 1];
     char* res = new char[(__int64)length + sizeof(char) * 2 + 1];
     for (int i = 0; i < length; ++i)
     for (int i = 0; i < length; ++i)
@@ -264,7 +264,7 @@ void Framework::Text::appendHex(short num)
     setTextZ(res, length + sizeof(short) * 2);
     setTextZ(res, length + sizeof(short) * 2);
 }
 }
 
 
-void Text::appendHex(int num) // haengt die zahl in hex anden Text an
+void Text::appendHex(int num) // appends the number in hex to the text
 {
 {
     char* res = new char[(__int64)length + sizeof(int) * 2 + 1];
     char* res = new char[(__int64)length + sizeof(int) * 2 + 1];
     for (int i = 0; i < length; ++i)
     for (int i = 0; i < length; ++i)
@@ -279,7 +279,7 @@ void Text::appendHex(int num) // haengt die zahl in hex anden Text an
     setTextZ(res, length + sizeof(int) * 2);
     setTextZ(res, length + sizeof(int) * 2);
 }
 }
 
 
-void Text::appendHex(__int64 num) // haengt die zahl in hex anden Text an
+void Text::appendHex(__int64 num) // appends the number in hex to the text
 {
 {
     char* res = new char[(__int64)length + sizeof(__int64) * 2 + 1];
     char* res = new char[(__int64)length + sizeof(__int64) * 2 + 1];
     for (int i = 0; i < length; ++i)
     for (int i = 0; i < length; ++i)
@@ -294,21 +294,21 @@ void Text::appendHex(__int64 num) // haengt die zahl in hex anden Text an
     setTextZ(res, length + sizeof(__int64) * 2);
     setTextZ(res, length + sizeof(__int64) * 2);
 }
 }
 
 
-void Text::append(const char* t, int l)            // haengt an den Text an
-{                                                  // laenge des Textes
-    char* res = new char[(__int64)l + length + 1]; // neuen Text erstellen
-    for (int i = 0; i < length; ++i)               // mit jetzigem Text fuellen
+void Text::append(const char* t, int l)            // appends to the text
+{                                                  // length of the text
+    char* res = new char[(__int64)l + length + 1]; // create new text
+    for (int i = 0; i < length; ++i)               // fill with current text
         res[i] = txt[i];
         res[i] = txt[i];
-    for (int i = 0; i < l; ++i) // UEbergabe anhaengen
+    for (int i = 0; i < l; ++i) // append argument
         res[length + i] = t[i];
         res[length + i] = t[i];
-    res[length + l] = '\0';    // Textende festlegen
-    setTextZ(res, length + l); // Test setzen
+    res[length + l] = '\0';    // set text end
+    setTextZ(res, length + l); // set text
 }
 }
 
 
 void Text::append(const Text& t)
 void Text::append(const Text& t)
 {
 {
-    if (t.getLength() > 0)        // Auf unsinnige uebergabe pruefen
-        append(t, t.getLength()); // Text anhaengen
+    if (t.getLength() > 0)        // check for invalid argument
+        append(t, t.getLength()); // append text
 }
 }
 
 
 void Text::append(int num)
 void Text::append(int num)
@@ -319,9 +319,8 @@ void Text::append(int num)
     append(string.c_str(), (int)string.length());
     append(string.c_str(), (int)string.length());
 }
 }
 
 
-// Haengt eine Zahl ans Ende Des Textes an
-//  num: Die Zahl, die in einen Text umgewandelt und am Ende angehaengt werden
-//  soll
+// Appends a number to the end of the text
+//  num: The number to convert to text and append at the end
 void Text::append(__int64 num)
 void Text::append(__int64 num)
 {
 {
     std::stringstream ss;
     std::stringstream ss;
@@ -380,7 +379,7 @@ void Text::append(float num)
     append(str, len);
     append(str, len);
 }
 }
 
 
-//! Gibt einen ostream zurueck, der alle ausgaben an diesen Text anhaengt
+//! Returns an ostream that appends all output to this text
 FlushingOStream Text::append()
 FlushingOStream Text::append()
 {
 {
     if (!stringWriter)
     if (!stringWriter)
@@ -395,43 +394,43 @@ FlushingOStream Text::append()
     return FlushingOStream(stringWriter);
     return FlushingOStream(stringWriter);
 }
 }
 
 
-void Text::insert(int p, char c) // Fuegt an stelle p ein
+void Text::insert(int p, char c) // inserts at position p
 {
 {
-    if (p > length || p < 0) // Auf unsinnige uebergabe pruefen
+    if (p > length || p < 0) // check for invalid argument
         return;
         return;
-    char* res = new char[(__int64)length + 2]; // neuer Text erstellen
-    for (int i = 0; i < p; ++i)                // Text fuellen
+    char* res = new char[(__int64)length + 2]; // create new text
+    for (int i = 0; i < p; ++i)                // fill text
         res[i] = txt[i];
         res[i] = txt[i];
     res[p] = c;
     res[p] = c;
-    for (int i = p; i < length; ++i) // Text fuellen
+    for (int i = p; i < length; ++i) // fill text
         res[i + 1] = txt[i];
         res[i + 1] = txt[i];
-    res[length + 1] = '\0';    // Text ende festlegen
-    setTextZ(res, length + 1); // Text setzen
+    res[length + 1] = '\0';    // set text end
+    setTextZ(res, length + 1); // set text
 }
 }
 
 
-void Text::insert(int p, const char* t) // Fuegt an stelle p ein
+void Text::insert(int p, const char* t) // inserts at position p
 {
 {
-    insert(p, t, textLength(t)); // Text einfuegen
+    insert(p, t, textLength(t)); // insert text
 }
 }
 
 
 void Framework::Text::insert(int p, const char* t, int len)
 void Framework::Text::insert(int p, const char* t, int len)
 {
 {
-    if (p > length || p < 0 || len <= 0) // Auf unsinnige uebergabe pruefen
-        return;                          // Laenge der uebergabe
-    char* res = new char[(__int64)len + length + 1]; // neuer Text erstellen
-    for (int i = 0; i < p; ++i)                      // Text fuellen
+    if (p > length || p < 0 || len <= 0) // check for invalid argument
+        return;                          // length of argument
+    char* res = new char[(__int64)len + length + 1]; // create new text
+    for (int i = 0; i < p; ++i)                      // fill text
         res[i] = txt[i];
         res[i] = txt[i];
-    for (int i = 0; i < len; ++i) // Text einfuegen
+    for (int i = 0; i < len; ++i) // insert text
         res[i + p] = t[i];
         res[i + p] = t[i];
-    for (int i = p; i < length; ++i) // Text fuellen
+    for (int i = p; i < length; ++i) // fill text
         res[i + len] = txt[i];
         res[i + len] = txt[i];
-    res[len + length] = '\0';    // Text ende festlegen
-    setTextZ(res, length + len); // Text setzen
+    res[len + length] = '\0';    // set text end
+    setTextZ(res, length + len); // set text
 }
 }
 
 
 void Text::insert(int p, const Text& t)
 void Text::insert(int p, const Text& t)
 {
 {
-    insert(p, t, t.getLength()); // Text einfuegen
+    insert(p, t, t.getLength()); // insert text
 }
 }
 
 
 void Framework::Text::regexReplace(
 void Framework::Text::regexReplace(
@@ -502,89 +501,89 @@ void Framework::Text::regexReplace(const char* regex,
 }
 }
 
 
 void Text::ersetzen(
 void Text::ersetzen(
-    int p1, int p2, const char* t) // Ersetzt den Text von p1 bis p2
+    int p1, int p2, const char* t) // replaces text from p1 to p2
 {
 {
-    ersetzen(p1, p2, t, textLength(t)); // Text ersetzen
+    ersetzen(p1, p2, t, textLength(t)); // replace text
 }
 }
 
 
 void Framework::Text::ersetzen(int p1, int p2, const char* t, int len)
 void Framework::Text::ersetzen(int p1, int p2, const char* t, int len)
 {
 {
     if (p1 > p2)
     if (p1 > p2)
     {
     {
-        int x = p1; // p1 und p2 tauschen
+        int x = p1; // swap p1 and p2
         p1 = p2;
         p1 = p2;
         p2 = x;
         p2 = x;
     }
     }
-    remove(p1, p2); // Textabschnitt von p1 zu p2 loeschen
+    remove(p1, p2); // delete text section from p1 to p2
     if (len > 0)
     if (len > 0)
     {
     {
-        insert(p1, t, len); // UEbergabe bei p1 einfuegen}
+        insert(p1, t, len); // insert argument at p1
     }
     }
 }
 }
 
 
 void Text::ersetzen(int p1, int p2, const Text& t)
 void Text::ersetzen(int p1, int p2, const Text& t)
 {
 {
-    ersetzen(p1, p2, t, t.getLength()); // Text ersetzen
+    ersetzen(p1, p2, t, t.getLength()); // replace text
 }
 }
 
 
-void Text::ersetzen(char c1, char c2) // ersetzt jedes c1 durch c2
+void Text::ersetzen(char c1, char c2) // replaces every c1 with c2
 {
 {
-    if (c1 == '\0' || c2 == '\0') // Auf unsinnige uebergabe pruefen
+    if (c1 == '\0' || c2 == '\0') // check for invalid argument
         return;
         return;
-    if (!hat(c1)) // pruefen ob c1 vorhanden
+    if (!hat(c1)) // check if c1 exists
         return;
         return;
     int suchGCount = 0;
     int suchGCount = 0;
     if (suchGBeg && suchGEnd)
     if (suchGBeg && suchGEnd)
     {
     {
-        for (int i = 0; i < length; ++i) // Text durchsuchen
+        for (int i = 0; i < length; ++i) // search text
         {
         {
             bool b = suchGCount != 0;
             bool b = suchGCount != 0;
-            if (txt[i] == c1 && !suchGCount) txt[i] = c2; // Text ersetzen
+            if (txt[i] == c1 && !suchGCount) txt[i] = c2; // replace text
             if (txt[i] == suchGBeg) ++suchGCount;
             if (txt[i] == suchGBeg) ++suchGCount;
             if (txt[i] == suchGEnd) --suchGCount;
             if (txt[i] == suchGEnd) --suchGCount;
-            if (txt[i] == c1 && !suchGCount && b) txt[i] = c2; // Text ersetzen
+            if (txt[i] == c1 && !suchGCount && b) txt[i] = c2; // replace text
         }
         }
     }
     }
     else
     else
     {
     {
-        for (int i = 0; i < length; ++i) // Text durchsuchen
+        for (int i = 0; i < length; ++i) // search text
         {
         {
-            if (txt[i] == c1) txt[i] = c2; // Text ersetzen
+            if (txt[i] == c1) txt[i] = c2; // replace text
         }
         }
     }
     }
 }
 }
 
 
-void Text::ersetzen(const char* t1, const char* t2) // ersetzt jedes t1 durch t2
+void Text::ersetzen(const char* t1, const char* t2) // replaces every t1 with t2
 {
 {
-    ersetzen(t1, textLength(t1), t2, textLength(t2)); // Text ersetzen
+    ersetzen(t1, textLength(t1), t2, textLength(t2)); // replace text
 }
 }
 
 
 void Framework::Text::ersetzen(
 void Framework::Text::ersetzen(
     const char* t1, int len1, const char* t2, int len2)
     const char* t1, int len1, const char* t2, int len2)
 {
 {
-    if (len1 > length || len1 <= 0) // Auf unsinnige uebergabe pruefen
+    if (len1 > length || len1 <= 0) // check for invalid argument
         return;
         return;
-    if (!hat(t1, len1)) // pruefen ob t1 vorhanden
+    if (!hat(t1, len1)) // check if t1 exists
         return;
         return;
-    int anz = anzahlVon(t1, len1); // Anzahl von t1 im Text
+    int anz = anzahlVon(t1, len1); // count of t1 in text
     int* begin = new int[anz];
     int* begin = new int[anz];
     int* end = new int[anz];
     int* end = new int[anz];
     int searchStart = 0;
     int searchStart = 0;
-    for (int i = 0; i < anz; ++i) // Positionen von t1 speichern
+    for (int i = 0; i < anz; ++i) // save positions of t1
     {
     {
         begin[i] = positionVon(searchStart, t1, len1);
         begin[i] = positionVon(searchStart, t1, len1);
         end[i] = begin[i] + len1;
         end[i] = begin[i] + len1;
         searchStart = end[i];
         searchStart = end[i];
     }
     }
     int resl
     int resl
-        = (length - (anz * len1)) + (anz * len2) + 1; // Laenge des Ergebneses
-    char* res = new char[resl];                       // neuer Text erstellen
-    int rep = 0;              // Speichert bei welchen t1 man sich befindet
-    int last = 0;             // Fuellposition von txt
-    int neu = 0;              // Fuellporition von res
-    for (; neu < resl; ++neu) // Text befuellen
+        = (length - (anz * len1)) + (anz * len2) + 1; // length of result
+    char* res = new char[resl];                       // create new text
+    int rep = 0;              // stores which t1 we are at
+    int last = 0;             // fill position in txt
+    int neu = 0;              // fill position in res
+    for (; neu < resl; ++neu) // fill text
     {
     {
-        if (rep < anz && last == begin[rep]) // Text ersetzen
+        if (rep < anz && last == begin[rep]) // replace text
         {
         {
             last = end[rep];
             last = end[rep];
             ++rep;
             ++rep;
@@ -597,87 +596,87 @@ void Framework::Text::ersetzen(
             if (neu >= resl) break;
             if (neu >= resl) break;
             --neu;
             --neu;
         }
         }
-        else // Text Kopieren
+        else // copy text
         {
         {
             res[neu] = txt[last];
             res[neu] = txt[last];
             ++last;
             ++last;
         }
         }
     }
     }
-    res[resl - 1] = '\0'; // Textende festlegen
-    setTextZ(res, resl);  // Text setzen
-    delete[] begin;       // Speicher freigeben
+    res[resl - 1] = '\0'; // set text end
+    setTextZ(res, resl);  // set text
+    delete[] begin;       // free memory
     delete[] end;
     delete[] end;
 }
 }
 
 
 void Text::ersetzen(const Text& t1, const char* t2)
 void Text::ersetzen(const Text& t1, const char* t2)
 {
 {
-    ersetzen(t1, t1.getLength(), t2, textLength(t2)); // Text ersetzen
+    ersetzen(t1, t1.getLength(), t2, textLength(t2)); // replace text
 }
 }
 
 
 void Text::ersetzen(const char* t1, const Text& t2)
 void Text::ersetzen(const char* t1, const Text& t2)
 {
 {
-    ersetzen(t1, textLength(t1), t2, t2.getLength()); // Text ersetzen
+    ersetzen(t1, textLength(t1), t2, t2.getLength()); // replace text
 }
 }
 
 
 void Text::ersetzen(const Text& t1, const Text& t2)
 void Text::ersetzen(const Text& t1, const Text& t2)
 {
 {
-    ersetzen(t1, t1.getLength(), t2, t2.getLength()); // Text ersetzen
+    ersetzen(t1, t1.getLength(), t2, t2.getLength()); // replace text
 }
 }
 
 
-void Text::ersetzen(int index, char c1, char c2) // ersetzt das i-te c1 durch c2
+void Text::ersetzen(int index, char c1, char c2) // replaces the i-th c1 with c2
 {
 {
     if (c1 == '\0' || c2 == '\0'
     if (c1 == '\0' || c2 == '\0'
-        || index < 0) // Auf unsinnige uebergabe pruefen
+        || index < 0) // check for invalid argument
         return;
         return;
-    if (!hat(c1)) // pruefen ob c1 vorhanden
+    if (!hat(c1)) // check if c1 exists
         return;
         return;
     int anz = anzahlVon(c1);
     int anz = anzahlVon(c1);
-    if (index >= anz) // pruefen ob es ein i-tes c1 gibt
+    if (index >= anz) // check if an i-th c1 exists
         return;
         return;
     txt[positionVon(c1, index)] = c2;
     txt[positionVon(c1, index)] = c2;
 }
 }
 
 
 void Text::ersetzen(int index,
 void Text::ersetzen(int index,
     const char* t1,
     const char* t1,
-    const char* t2) // ersetzt das i-te t1 durch t2
+    const char* t2) // replaces the i-th t1 with t2
 {
 {
-    ersetzen(index, t1, textLength(t1), t2, textLength(t2)); // Text ersetzen
+    ersetzen(index, t1, textLength(t1), t2, textLength(t2)); // replace text
 }
 }
 
 
 void Framework::Text::ersetzen(
 void Framework::Text::ersetzen(
     int index, const char* t1, int len1, const char* t2, int len2)
     int index, const char* t1, int len1, const char* t2, int len2)
 {
 {
     if (len1 >= length || len1 <= 0
     if (len1 >= length || len1 <= 0
-        || index < 0) // Auf unsinnige uebergabe pruefen
+        || index < 0) // check for invalid argument
         return;
         return;
-    if (!hat(t1)) // pruefen ob t1 vorhanden
+    if (!hat(t1)) // check if t1 exists
         return;
         return;
-    int anz = anzahlVon(t1, len1); // Anzahl von t1 im Text
-    if (index >= anz)              // pruefen ob es ein i-tes t1 gibt
+    int anz = anzahlVon(t1, len1); // count of t1 in text
+    if (index >= anz)              // check if an i-th t1 exists
         return;
         return;
     int begin = positionVon(index, len1, t1);
     int begin = positionVon(index, len1, t1);
     int end = begin + len1;
     int end = begin + len1;
-    ersetzen(begin, end, t2, len2); // ersetzen
+    ersetzen(begin, end, t2, len2); // replace
 }
 }
 
 
 void Text::ersetzen(int i, const Text& t1, const char* t2)
 void Text::ersetzen(int i, const Text& t1, const char* t2)
 {
 {
-    ersetzen(i, t1, t1.getLength(), t2, textLength(t2)); // ersetzen
+    ersetzen(i, t1, t1.getLength(), t2, textLength(t2)); // replace
 }
 }
 
 
 void Text::ersetzen(int i, const char* t1, const Text& t2)
 void Text::ersetzen(int i, const char* t1, const Text& t2)
 {
 {
-    ersetzen(i, t1, textLength(t1), t2, t2.getLength()); // ersetzen
+    ersetzen(i, t1, textLength(t1), t2, t2.getLength()); // replace
 }
 }
 
 
 void Text::ersetzen(int i, const Text& t1, const Text& t2)
 void Text::ersetzen(int i, const Text& t1, const Text& t2)
 {
 {
     ersetzen(i, t1, t1.getLength(), t2,
     ersetzen(i, t1, t1.getLength(), t2,
-        t2.getLength()); // ersetzen
+        t2.getLength()); // replace
 }
 }
 
 
 void Text::fillText(
 void Text::fillText(
-    char c, int len) // setzt den Text zu so vielen c wie laen gross ist
+char c, int len) // sets the text to as many c as len is large
 {
 {
     char* res = new char[(__int64)len + 1];
     char* res = new char[(__int64)len + 1];
     for (int i = 0; i < len; ++i)
     for (int i = 0; i < len; ++i)
@@ -686,48 +685,48 @@ void Text::fillText(
     setTextZ(res, len);
     setTextZ(res, len);
 }
 }
 
 
-void Text::remove(int p) // loescht p
+void Text::remove(int p) // deletes p
 {
 {
-    if (p < 0 || p >= length) // Auf unsinnige uebergabe pruefen
+    if (p < 0 || p >= length) // check for invalid argument
         return;
         return;
-    char* res = new char[length];             // neuen Text anlegen
-    for (int i = 0; i < p && i < length; ++i) // Text befuellen
+    char* res = new char[length];             // create new text
+    for (int i = 0; i < p && i < length; ++i) // fill text
         res[i] = txt[i];
         res[i] = txt[i];
     for (int i = p + 1; i < length; ++i)
     for (int i = p + 1; i < length; ++i)
         res[i - 1] = txt[i];
         res[i - 1] = txt[i];
     res[length - 1] = 0;
     res[length - 1] = 0;
-    setTextZ(res, length - 1); // Text setzen
+    setTextZ(res, length - 1); // set text
 }
 }
 
 
-void Text::remove(int p1, int p2) // loescht von p1 zu p2 ( p2 bleibt )
+void Text::remove(int p1, int p2) // deletes from p1 to p2 (p2 is kept)
 {
 {
     if (p1 == p2) return;
     if (p1 == p2) return;
-    if (p1 > p2) // p1 und p2 tauschen
+    if (p1 > p2) // swap p1 and p2
     {
     {
         int x = p1;
         int x = p1;
         p1 = p2;
         p1 = p2;
         p2 = x;
         p2 = x;
     }
     }
-    if (p1 < 0) // Auf unsinnige uebergabe pruefen
+    if (p1 < 0) // check for invalid argument
         p1 = 0;
         p1 = 0;
     if (p2 > length) p2 = length;
     if (p2 > length) p2 = length;
-    int resl = length - (p2 - p1);           // Laenge vom Ergebnis
-    char* res = new char[(__int64)resl + 1]; // Neuen Text erstellen
+    int resl = length - (p2 - p1);           // length of result
+    char* res = new char[(__int64)resl + 1]; // create new text
     memcpy(res, txt, p1);
     memcpy(res, txt, p1);
     memcpy(res + p1, txt + p2, length - p2);
     memcpy(res + p1, txt + p2, length - p2);
-    res[resl] = '\0';    // Testende festlegen
-    setTextZ(res, resl); // Text setzen
+    res[resl] = '\0';    // set text end
+    setTextZ(res, resl); // set text
 }
 }
 
 
-void Text::remove(char c) // loescht jetes c
+void Text::remove(char c) // deletes every c
 {
 {
-    if (!hat(c)) // pruefen ob c vorhanden
+    if (!hat(c)) // check if c exists
         return;
         return;
-    int anz = anzahlVon(c);                          // Anzahl von c
-    char* res = new char[(__int64)length - anz + 1]; // neuen Text erstellen
+    int anz = anzahlVon(c);                          // count of c
+    char* res = new char[(__int64)length - anz + 1]; // create new text
     int anz2 = 0;
     int anz2 = 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i < length; ++i) // Text befuellen
+    for (int i = 0; i < length; ++i) // fill text
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
         if (txt[i] == c && !suchGCount)
         if (txt[i] == c && !suchGCount)
@@ -744,99 +743,99 @@ void Text::remove(char c) // loescht jetes c
                 res[i - anz2] = txt[i];
                 res[i - anz2] = txt[i];
         }
         }
     }
     }
-    res[length - anz] = '\0';    // Textende festlegen
-    setTextZ(res, length - anz); // Text setzen
+    res[length - anz] = '\0';    // set text end
+    setTextZ(res, length - anz); // set text
 }
 }
 
 
-void Text::remove(const char* t) // loescht jetes t
+void Text::remove(const char* t) // deletes every t
 {
 {
-    remove(t, textLength(t)); // Text loeschen
+    remove(t, textLength(t)); // delete text
 }
 }
 
 
 void Framework::Text::remove(const char* t, int len)
 void Framework::Text::remove(const char* t, int len)
 {
 {
-    if (len <= 0 || len > length) // Auf unsinnige uebergabe pruefen
+    if (len <= 0 || len > length) // check for invalid argument
         return;
         return;
-    if (!hat(t, len)) // pruefen ob Text ein t enthaelt
+    if (!hat(t, len)) // check if text contains t
         return;
         return;
-    int anz = anzahlVon(t, len); // anzahl von t
+    int anz = anzahlVon(t, len); // count of t
     int* begin = new int[anz];
     int* begin = new int[anz];
-    for (int i = 0; i < anz; ++i) // begin aller t-s finden
+    for (int i = 0; i < anz; ++i) // find start of all t's
         begin[i] = positionVon(i, len, t);
         begin[i] = positionVon(i, len, t);
-    int resl = length - (anz * len);         // Laenge vom Ergebnes
-    char* res = new char[(__int64)resl + 1]; // neuen Text erzeugen
+    int resl = length - (anz * len);         // length of result
+    char* res = new char[(__int64)resl + 1]; // create new text
     int del = 0;
     int del = 0;
-    for (int i = 0; i < length; ++i) // Text befuellen
+    for (int i = 0; i < length; ++i) // fill text
     {
     {
-        if (del < anz && i == begin[del]) // Text auslassen
+        if (del < anz && i == begin[del]) // skip text
         {
         {
             i += len - 1;
             i += len - 1;
             ++del;
             ++del;
         }
         }
         else
         else
-            res[i - (del * len)] = txt[i]; // Text befuellen
+            res[i - (del * len)] = txt[i]; // fill text
     }
     }
-    res[resl] = '\0';    // Text ende festlegen
-    setTextZ(res, resl); // Text setzen
+    res[resl] = '\0';    // set text end
+    setTextZ(res, resl); // set text
     delete[] begin;
     delete[] begin;
 }
 }
 
 
 void Text::remove(const Text& t)
 void Text::remove(const Text& t)
 {
 {
-    remove(t, t.getLength()); // Text loeschen
+    remove(t, t.getLength()); // delete text
 }
 }
 
 
 void Text::remove(int index, char c)
 void Text::remove(int index, char c)
 {
 {
-    if (index < 0 || !hat(c)) // Auf unsinnige uebergabe pruefen
+    if (index < 0 || !hat(c)) // check for invalid argument
         return;
         return;
-    int anz = anzahlVon(c); // anzahl der i-s
-    if (index >= anz)       // pruefen ob ein i-tes c vorhanden ist
+    int anz = anzahlVon(c); // count of c's
+    if (index >= anz)       // check if an i-th c exists
         return;
         return;
-    int pos = positionVon(c, index); // Position vom i-ten c
+    int pos = positionVon(c, index); // position of the i-th c
     if (pos < 0) return;
     if (pos < 0) return;
     if (!length) return;
     if (!length) return;
-    char* res = new char[length];               // neuen Text erzeugen
-    for (int i = 0; i < pos && i < length; ++i) // Text befuellen
+    char* res = new char[length];               // create new text
+    for (int i = 0; i < pos && i < length; ++i) // fill text
         res[i] = txt[i];
         res[i] = txt[i];
     for (int i = pos + 1; i < length; ++i)
     for (int i = pos + 1; i < length; ++i)
         res[i - 1] = txt[i];
         res[i - 1] = txt[i];
-    res[length - 1] = '\0';    // Text ende festlegen
-    setTextZ(res, length - 1); // Text setzen
+    res[length - 1] = '\0';    // set text end
+    setTextZ(res, length - 1); // set text
 }
 }
 
 
-void Text::remove(int index, const char* t) // loescht das i-te t
+void Text::remove(int index, const char* t) // deletes the i-th t
 {
 {
-    remove(index, t, textLength(t)); // Text loeschen
+    remove(index, t, textLength(t)); // delete text
 }
 }
 
 
 void Framework::Text::remove(int index, const char* t, int len)
 void Framework::Text::remove(int index, const char* t, int len)
 {
 {
     if (index < 0 || !hat(t, len)
     if (index < 0 || !hat(t, len)
-        || len <= 0) // Auf unsinnige uebergabe pruefen
+        || len <= 0) // check for invalid argument
         return;
         return;
-    int anz = anzahlVon(t, len); // anzahl der i-s
-    if (index >= anz)            // pruefen ob ein i-tes c vorhanden ist
+    int anz = anzahlVon(t, len); // count of t's
+    if (index >= anz)            // check if an i-th t exists
         return;
         return;
-    int pos = positionVon(index, len, t); // Position vom i-ten c
+    int pos = positionVon(index, len, t); // position of the i-th t
     if (pos < 0) return;
     if (pos < 0) return;
     if (!length) return;
     if (!length) return;
-    char* res = new char[(__int64)length - len + 1];      // neuen Text erzeugen
-    for (int i = 0; i < pos && i < length - len + 1; ++i) // Text befuellen
+    char* res = new char[(__int64)length - len + 1];      // create new text
+    for (int i = 0; i < pos && i < length - len + 1; ++i) // fill text
         res[i] = txt[i];
         res[i] = txt[i];
     for (int i = pos + len; i < length; ++i)
     for (int i = pos + len; i < length; ++i)
         res[i - len] = txt[i];
         res[i - len] = txt[i];
-    res[length - len] = '\0';    // Text ende festlegen
-    setTextZ(res, length - len); // Text setzen
+    res[length - len] = '\0';    // set text end
+    setTextZ(res, length - len); // set text
 }
 }
 
 
 void Text::remove(int i, const Text& t)
 void Text::remove(int i, const Text& t)
 {
 {
-    remove(i, t, t.getLength()); // Text loeschen
+    remove(i, t, t.getLength()); // delete text
 }
 }
 
 
-// Loescht alle ' ', '\n', '\r', '\t' bis zu einem anderen buchstaben
-//  pos: Die Position des ersten zeichens
+// Deletes all ' ', '\n', '\r', '\t' until a different character
+//  pos: The position of the first character
 int Text::removeWhitespaceAfter(int pos)
 int Text::removeWhitespaceAfter(int pos)
 {
 {
     int removedLength = 0;
     int removedLength = 0;
@@ -851,8 +850,8 @@ int Text::removeWhitespaceAfter(int pos)
     return length;
     return length;
 }
 }
 
 
-// Loescht alle ' ', '\n', '\r', '\t' bis zu einem anderen buchstaben
-//  pos: Die Position des ersten zeichens (beginnt bei pos-1)
+// Deletes all ' ', '\n', '\r', '\t' until a different character
+//  pos: The position of the first character (starts at pos-1)
 int Text::removeWhitespaceBefore(int pos)
 int Text::removeWhitespaceBefore(int pos)
 {
 {
     int length = 0;
     int length = 0;
@@ -868,13 +867,13 @@ int Text::removeWhitespaceBefore(int pos)
 }
 }
 
 
 void Text::setPrecision(
 void Text::setPrecision(
-    int p) // setzt die Anzahl der Nachkommastellen bei doubles
+int p) // sets the number of decimal places for doubles
 {
 {
     precision = p;
     precision = p;
 }
 }
 
 
 // constant
 // constant
-int Text::getLength() const // gibt die Text laenge zurueck
+int Text::getLength() const // returns the text length
 {
 {
     return length;
     return length;
 }
 }
@@ -956,14 +955,14 @@ int Text::getUKick(int pos) const
     return pos + llen + lpos;
     return pos + llen + lpos;
 }
 }
 
 
-bool Text::hat(const Text& t) const // enthaelt der Text t
+bool Text::hat(const Text& t) const // does the text contain t
 {
 {
-    return hat(t, t.getLength()); // Text ueberpruefen
+    return hat(t, t.getLength()); // check text
 }
 }
 
 
 bool Text::hat(const char* t) const
 bool Text::hat(const char* t) const
 {
 {
-    return hat(t, textLength(t)); // Text ueberpruefen
+    return hat(t, textLength(t)); // check text
 }
 }
 
 
 bool Framework::Text::hat(const char* t, int len) const
 bool Framework::Text::hat(const char* t, int len) const
@@ -973,22 +972,22 @@ bool Framework::Text::hat(const char* t, int len) const
 
 
 bool Framework::Text::hat(int searchStartIndex, const char* t) const
 bool Framework::Text::hat(int searchStartIndex, const char* t) const
 {
 {
-    return hat(searchStartIndex, t, textLength(t)); // Text ueberpruefen
+    return hat(searchStartIndex, t, textLength(t)); // check text
 }
 }
 
 
 bool Framework::Text::hat(int searchStartIndex, const char* t, int len) const
 bool Framework::Text::hat(int searchStartIndex, const char* t, int len) const
 {
 {
     if (len <= 0
     if (len <= 0
-        || len > length - searchStartIndex) // Auf unsinnige uebergabe pruefen
+        || len > length - searchStartIndex) // check for invalid argument
         return 0;
         return 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = searchStartIndex; i + len <= length; ++i) // Text durchsuchen
+    for (int i = searchStartIndex; i + len <= length; ++i) // search text
     {
     {
         bool searched = 0;
         bool searched = 0;
         if (!suchGCount)
         if (!suchGCount)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // Text ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check text
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b) return 1;
             if (b) return 1;
             searched = 1;
             searched = 1;
@@ -998,7 +997,7 @@ bool Framework::Text::hat(int searchStartIndex, const char* t, int len) const
         if (!suchGCount && !searched)
         if (!suchGCount && !searched)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // Text ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check text
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b) return 1;
             if (b) return 1;
         }
         }
@@ -1006,46 +1005,46 @@ bool Framework::Text::hat(int searchStartIndex, const char* t, int len) const
     return 0;
     return 0;
 }
 }
 
 
-// UEberprueft, ob im Text der Inhalt eines anderen Textes vorkommt
-//  t: Der Text, nach dessen Inhalt gesucht werden soll
-//  return: (true), wenn der Inhalt des Textes vorkommt. (false) sonnst
-//  pos: die position an der die zeichenkette im string beginnen soll
+// Checks whether the text contains the content of another text
+//  t: The text whose content to search for
+//  return: (true) if the content is found. (false) otherwise
+//  pos: the position where the string should begin
 bool Text::hatAt(int pos, const Text& t) const
 bool Text::hatAt(int pos, const Text& t) const
 {
 {
-    return hatAt(pos, t, t.getLength()); // Text ueberpruefen
+    return hatAt(pos, t, t.getLength()); // check text
 }
 }
 
 
-// UEberprueft, ob im Text eine bestimmte Zeichenkette vorkommt
-//  t: Die Zeichenkette, nach der gesucht werden soll
-//  return: (true), wenn die Zeichenkette vorkommt. (false) sonnst
-//  pos: die position an der die zeichenkette im string beginnen soll
+// Checks whether the text contains a specific string
+//  t: The string to search for
+//  return: (true) if the string is found. (false) otherwise
+//  pos: the position where the string should begin
 bool Text::hatAt(int pos, const char* t) const
 bool Text::hatAt(int pos, const char* t) const
 {
 {
-    return hatAt(pos, t, textLength(t)); // Text ueberpruefen
+    return hatAt(pos, t, textLength(t)); // check text
 }
 }
 
 
 bool Framework::Text::hatAt(int pos, const char* t, int len) const
 bool Framework::Text::hatAt(int pos, const char* t, int len) const
 {
 {
-    if (len <= 0 || len + pos > length) // Auf unsinnige uebergabe pruefen
+    if (len <= 0 || len + pos > length) // check for invalid argument
         return 0;
         return 0;
     bool b = 1;
     bool b = 1;
-    for (int i = 0; i < len; ++i) // Text ueberpruefen
+    for (int i = 0; i < len; ++i) // check text
         b &= txt[pos + i] == t[i];
         b &= txt[pos + i] == t[i];
     return b;
     return b;
 }
 }
 
 
-bool Text::hat(char c) const // enthaelt c
+bool Text::hat(char c) const // contains c
 {
 {
     bool ret = 0;
     bool ret = 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i < length; ++i) // suchen
+    for (int i = 0; i < length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
-        if (!suchGCount) // ueberpruefen
+        if (!suchGCount) // check
             ret |= txt[i] == c;
             ret |= txt[i] == c;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
-        if (!suchGCount && b) // ueberpruefen
+        if (!suchGCount && b) // check
             ret |= txt[i] == c;
             ret |= txt[i] == c;
     }
     }
     return ret;
     return ret;
@@ -1062,88 +1061,88 @@ bool Text::endsWith(const char* t) const
     return hatAt(length - len, t, len);
     return hatAt(length - len, t, len);
 }
 }
 
 
-bool Text::istGleich(const char* t) const // prueft ob det Text gleich t ist
+bool Text::istGleich(const char* t) const // checks if the text equals t
 {
 {
-    return istGleich(t, textLength(t)); // Text ueberpruefen
+    return istGleich(t, textLength(t)); // check text
 }
 }
 
 
 bool Text::istGleich(
 bool Text::istGleich(
-    const char* t, int len) const // prueft ob det Text gleich t ist
+    const char* t, int len) const // checks if the text equals t
 {
 {
-    if (length != len) // Auf unsinniege UEbergabe pruefen
+    if (length != len) // check for invalid argument
         return 0;
         return 0;
     if (length == -1) return 1;
     if (length == -1) return 1;
     bool ret = true;
     bool ret = true;
-    for (int i = 0; i < len; ++i) // pruefen
+    for (int i = 0; i < len; ++i) // check
         ret &= txt[i] == t[i];
         ret &= txt[i] == t[i];
     return ret;
     return ret;
 }
 }
 
 
 bool Text::istGleich(const Text& t) const
 bool Text::istGleich(const Text& t) const
 {
 {
-    return istGleich(t, t.getLength()); // Text ueberpruefen
+    return istGleich(t, t.getLength()); // check text
 }
 }
 
 
-const char* Text::getText() const // gibt Text zurueck
+const char* Text::getText() const // returns the text
 {
 {
     return txt;
     return txt;
 }
 }
 
 
-int Text::anzahlVon(char c) const // gibt die Anzahl von c im Text zurueck
+int Text::anzahlVon(char c) const // returns the count of c in the text
 {
 {
     int ret = 0;
     int ret = 0;
     int suchGCount = 0;
     int suchGCount = 0;
     if (suchGBeg && suchGEnd)
     if (suchGBeg && suchGEnd)
     {
     {
-        for (int i = 0; i < length; ++i) // suchen
+        for (int i = 0; i < length; ++i) // search
         {
         {
             bool b = suchGCount != 0;
             bool b = suchGCount != 0;
-            ret += txt[i] == c && !suchGCount; // zaehlen
+            ret += txt[i] == c && !suchGCount; // count
             if (txt[i] == suchGBeg) ++suchGCount;
             if (txt[i] == suchGBeg) ++suchGCount;
             if (txt[i] == suchGEnd) --suchGCount;
             if (txt[i] == suchGEnd) --suchGCount;
-            ret += txt[i] == c && !suchGCount && b; // zaehlen
+            ret += txt[i] == c && !suchGCount && b; // count
         }
         }
     }
     }
     else
     else
     {
     {
-        for (int i = 0; i < length; ++i) // suchen
+        for (int i = 0; i < length; ++i) // search
         {
         {
-            ret += txt[i] == c; // zaehlen
+            ret += txt[i] == c; // count
         }
         }
     }
     }
     return ret;
     return ret;
 }
 }
 
 
 int Text::anzahlVon(
 int Text::anzahlVon(
-    const char* t) const // gibt die Anzahl von t im Text zurueck
+    const char* t) const // returns the count of t in the text
 {
 {
-    return anzahlVon(t, textLength(t)); // Text ueberpruefen
+    return anzahlVon(t, textLength(t)); // check text
 }
 }
 
 
 int Framework::Text::anzahlVon(const char* t, int len) const
 int Framework::Text::anzahlVon(const char* t, int len) const
 {
 {
-    if (len <= 0 || len > length) // Auf unsinnige uebergabe pruefen
+    if (len <= 0 || len > length) // check for invalid argument
         return 0;
         return 0;
     int ret = 0;
     int ret = 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i + len <= length; ++i) // suchen
+    for (int i = 0; i + len <= length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
         if (!suchGCount)
         if (!suchGCount)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
-            if (b) ++ret; // zaehlen
+            if (b) ++ret; // count
         }
         }
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
         if (!suchGCount && b)
         if (!suchGCount && b)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
-            if (b) ++ret; // zaehlen
+            if (b) ++ret; // count
         }
         }
     }
     }
     return ret;
     return ret;
@@ -1151,27 +1150,27 @@ int Framework::Text::anzahlVon(const char* t, int len) const
 
 
 int Text::anzahlVon(const Text& t) const
 int Text::anzahlVon(const Text& t) const
 {
 {
-    return anzahlVon(t, t.getLength()); // Text ueberpruefen
+    return anzahlVon(t, t.getLength()); // check text
 }
 }
 
 
-int Text::positionVon(char c) const // gibt die Position des ersten c zurueck
+int Text::positionVon(char c) const // returns the position of the first c
 {
 {
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i < length; ++i) // suchen
+    for (int i = 0; i < length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
-        if (txt[i] == c && !suchGCount) // ueberpruefen
+        if (txt[i] == c && !suchGCount) // check
             return i;
             return i;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
-        if (txt[i] == c && !suchGCount && b) // ueberpruefen
+        if (txt[i] == c && !suchGCount && b) // check
             return i;
             return i;
     }
     }
     return -1;
     return -1;
 }
 }
 
 
 int Text::positionVon(
 int Text::positionVon(
-    const char* t) const // gibt die Position des ersten t zurueck
+const char* t) const // returns the position of the first t
 {
 {
     return positionVon(textLength(t), t);
     return positionVon(textLength(t), t);
 }
 }
@@ -1184,16 +1183,16 @@ int Framework::Text::positionVon(int len, const char* t) const
 int Text::positionVon(int searchStart, const char* t, int len) const
 int Text::positionVon(int searchStart, const char* t, int len) const
 {
 {
     if (len <= 0
     if (len <= 0
-        || len > length - searchStart) // Auf unsinnige uebergabe pruefen
+        || len > length - searchStart) // check for invalid argument
         return -1;
         return -1;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = searchStart; i + len <= length; ++i) // suchen
+    for (int i = searchStart; i + len <= length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
         if (!suchGCount)
         if (!suchGCount)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b) return i;
             if (b) return i;
         }
         }
@@ -1202,7 +1201,7 @@ int Text::positionVon(int searchStart, const char* t, int len) const
         if (!suchGCount && b)
         if (!suchGCount && b)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b) return i;
             if (b) return i;
         }
         }
@@ -1212,18 +1211,18 @@ int Text::positionVon(int searchStart, const char* t, int len) const
 
 
 int Text::positionVon(const Text& t) const
 int Text::positionVon(const Text& t) const
 {
 {
-    return positionVon(t.getLength(), t); // Text ueberpruefen
+    return positionVon(t.getLength(), t); // check text
 }
 }
 
 
 int Text::positionVon(
 int Text::positionVon(
-    char c, int index) const // gibt die Position des i-ten c zurueck
+    char c, int index) const // returns the position of the i-th c
 {
 {
     int ii = 0;
     int ii = 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i < length; ++i) // suchen
+    for (int i = 0; i < length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
-        if (txt[i] == c && !suchGCount) // ueberpruefen
+        if (txt[i] == c && !suchGCount) // check
         {
         {
             if (ii == index)
             if (ii == index)
                 return i;
                 return i;
@@ -1232,7 +1231,7 @@ int Text::positionVon(
         }
         }
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGBeg) ++suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
         if (txt[i] == suchGEnd) --suchGCount;
-        if (txt[i] == c && !suchGCount && b) // ueberpruefen
+        if (txt[i] == c && !suchGCount && b) // check
         {
         {
             if (ii == index)
             if (ii == index)
                 return i;
                 return i;
@@ -1244,24 +1243,24 @@ int Text::positionVon(
 }
 }
 
 
 int Text::positionVon(
 int Text::positionVon(
-    const char* t, int index) const // gibt die Position des i-ten t zurueck
+    const char* t, int index) const // returns the position of the i-th t
 {
 {
-    return positionVon(index, textLength(t), t); // Text ueberpruefen
+    return positionVon(index, textLength(t), t); // check text
 }
 }
 
 
 int Framework::Text::positionVon(int index, int len, const char* t) const
 int Framework::Text::positionVon(int index, int len, const char* t) const
 {
 {
-    if (len <= 0 || len > length) // Auf unsinnige uebergabe pruefen
+    if (len <= 0 || len > length) // check for invalid argument
         return 0;
         return 0;
     int i2 = 0;
     int i2 = 0;
     int suchGCount = 0;
     int suchGCount = 0;
-    for (int i = 0; i + len <= length; ++i) // suchen
+    for (int i = 0; i + len <= length; ++i) // search
     {
     {
         bool b = suchGCount != 0;
         bool b = suchGCount != 0;
         if (!suchGCount)
         if (!suchGCount)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b)
             if (b)
             {
             {
@@ -1276,7 +1275,7 @@ int Framework::Text::positionVon(int index, int len, const char* t) const
         if (!suchGCount && b)
         if (!suchGCount && b)
         {
         {
             bool b = 1;
             bool b = 1;
-            for (int ii = 0; ii < len; ++ii) // ueberpruefen
+            for (int ii = 0; ii < len; ++ii) // check
                 b &= txt[i + ii] == t[ii];
                 b &= txt[i + ii] == t[ii];
             if (b)
             if (b)
             {
             {
@@ -1292,35 +1291,35 @@ int Framework::Text::positionVon(int index, int len, const char* t) const
 
 
 int Text::positionVon(const Text& t, int i) const
 int Text::positionVon(const Text& t, int i) const
 {
 {
-    return positionVon(i, t.getLength(), t); // Text ueberpruefen
+    return positionVon(i, t.getLength(), t); // check text
 }
 }
 
 
 Text* Text::getTeilText(
 Text* Text::getTeilText(
-    int p1, int p2) const // gibt den Text von p1 bis p2 zurueck
+    int p1, int p2) const // returns the text from p1 to p2
 {
 {
-    if (p1 > p2) // p1 und p2 tauschen
+    if (p1 > p2) // swap p1 and p2
     {
     {
         int x = p1;
         int x = p1;
         p1 = p2;
         p1 = p2;
         p2 = x;
         p2 = x;
     }
     }
-    if (p1 < 0 || p2 > length) // Auf unsinnige uebergabe pruefen
+    if (p1 < 0 || p2 > length) // check for invalid argument
         return new Text("");
         return new Text("");
-    char* cp = new char[(__int64)p2 - p1 + 1]; // neuen Text erstellen
-    for (int i = p1; i < p2; ++i)              // Text befuellen
+    char* cp = new char[(__int64)p2 - p1 + 1]; // create new text
+    for (int i = p1; i < p2; ++i)              // fill text
     {
     {
         cp[i - p1] = txt[i];
         cp[i - p1] = txt[i];
     }
     }
     cp[p2 - p1] = '\0';
     cp[p2 - p1] = '\0';
-    return new Text(cp, p2 - p1); // Text zurueckgeben
+    return new Text(cp, p2 - p1); // return text
 }
 }
 
 
-Text* Text::getTeilText(int p) const // gibt den Text von p bis zum Ende zurueck
+Text* Text::getTeilText(int p) const // returns the text from p to the end
 {
 {
-    return getTeilText(p, getLength()); // Text zurueckgeben
+    return getTeilText(p, getLength()); // return text
 }
 }
 
 
-// berechnet den Hash code des textes
+// calculates the hash code of the text
 int Text::hashCode() const
 int Text::hashCode() const
 {
 {
     int result = 0;
     int result = 0;
@@ -1329,14 +1328,14 @@ int Text::hashCode() const
     return result;
     return result;
 }
 }
 
 
-// Operatoren
+// Operators
 Text& Text::operator+=(const int num)
 Text& Text::operator+=(const int num)
 {
 {
     append(num);
     append(num);
     return *this;
     return *this;
 }
 }
 
 
-// Haengt eine Zahl ans Ende des Textes an
+// Appends a number to the end of the text
 Text& Text::operator+=(const __int64 num)
 Text& Text::operator+=(const __int64 num)
 {
 {
     append(num);
     append(num);
@@ -1455,37 +1454,37 @@ bool Text::operator<(Text& t) const
     return 0;
     return 0;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und t2
+// Creates a new text consisting of this and t2
 Text Text::operator+(const Text& t2) const
 Text Text::operator+(const Text& t2) const
 {
 {
     return Text(*this) += t2;
     return Text(*this) += t2;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und t2
+// Creates a new text consisting of this and t2
 Text Text::operator+(const char* t2) const
 Text Text::operator+(const char* t2) const
 {
 {
     return Text(*this) += t2;
     return Text(*this) += t2;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und num
+// Creates a new text consisting of this and num
 Text Text::operator+(const int num) const
 Text Text::operator+(const int num) const
 {
 {
     return Text(*this) += num;
     return Text(*this) += num;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und num
+// Creates a new text consisting of this and num
 Text Text::operator+(const __int64 num) const
 Text Text::operator+(const __int64 num) const
 {
 {
     return Text(*this) += num;
     return Text(*this) += num;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und num
+// Creates a new text consisting of this and num
 Text Text::operator+(const double num) const
 Text Text::operator+(const double num) const
 {
 {
     return Text(*this) += num;
     return Text(*this) += num;
 }
 }
 
 
-// Erstellt einen neuen Text bestehend aus diesem und num
+// Creates a new text consisting of this and num
 Text Text::operator+(const float num) const
 Text Text::operator+(const float num) const
 {
 {
     return Text(*this) += num;
     return Text(*this) += num;
@@ -1503,10 +1502,9 @@ Text Text::fromArray(char* arr, int len)
 
 
 const Text Text::EMPTY = "";
 const Text Text::EMPTY = "";
 
 
-// Inhalt der TextReader Klasse
-// Konstructor
-//  txt: Der Text der gelesen werden soll. Er wird nicht kopiert sondern
-//  direkt gelesen.
+// Content of the TextReader class
+// Constructor
+//  txt: The text to be read. It is not copied but read directly.
 TextReader::TextReader(Text* txt)
 TextReader::TextReader(Text* txt)
     : ReferenceCounter()
     : ReferenceCounter()
 {
 {
@@ -1520,10 +1518,9 @@ TextReader::~TextReader()
     txt->release();
     txt->release();
 }
 }
 
 
-// Setzt die Position des Bytes, das als naechstes gelesen werden soll
-//  pos: Der Index des Bytes
-//  ende: 1, wenn der Index vom ende des Textes zaehlt. 0, wenn der Index vom
-//  Beginn des Textes zaehlt
+// Sets the position of the byte to be read next
+//  pos: The index of the byte
+//  ende: 1 if the index counts from the end of the text. 0 if from the beginning
 void TextReader::setLPosition(__int64 pos, bool ende)
 void TextReader::setLPosition(__int64 pos, bool ende)
 {
 {
     int l = txt->getLength();
     int l = txt->getLength();
@@ -1532,9 +1529,9 @@ void TextReader::setLPosition(__int64 pos, bool ende)
     if (lPos > l) lPos = l;
     if (lPos > l) lPos = l;
 }
 }
 
 
-// Liesst aus der Datei
-//  bytes: Ein Array, der mit Bytes aus dem Text gefuellt werden soll
-//  len: Wie viele Bytes aus dem Text gelesen werden sollen
+// Reads from the text
+//  bytes: An array to be filled with bytes from the text
+//  len: How many bytes to read from the text
 void TextReader::lese(char* bytes, int len)
 void TextReader::lese(char* bytes, int len)
 {
 {
     int l = txt->getLength();
     int l = txt->getLength();
@@ -1544,8 +1541,8 @@ void TextReader::lese(char* bytes, int len)
     lPos += len;
     lPos += len;
 }
 }
 
 
-// Liesst die naechste zeile des Textes ein
-//  return: Die gelesene Zeile als Text mit zeilenumbruch
+// Reads the next line of the text
+//  return: The read line as text with line break
 Text* TextReader::leseZeile()
 Text* TextReader::leseZeile()
 {
 {
     if (istEnde()) return 0;
     if (istEnde()) return 0;
@@ -1559,22 +1556,21 @@ Text* TextReader::leseZeile()
     return ret;
     return ret;
 }
 }
 
 
-// Prueft, ob die Resource vollstaendig gelesen wurde
-//  return 1, wenn die Resource vollstaendig gelesen wurde. 0, sonst
+// Checks whether the resource has been fully read
+//  return 1 if the resource has been fully read. 0 otherwise
 bool TextReader::istEnde() const
 bool TextReader::istEnde() const
 {
 {
     return lPos >= txt->getLength();
     return lPos >= txt->getLength();
 }
 }
 
 
-// Gibt den Index des Bytes aus dem Text zurueck, welches als naechstes
-// gelesen werden wuerde return -1, falls ein Fehler aufgetreten ist. Sonst
-// die Position des Lesezeigers
+// Returns the index of the byte from the text that would be read next
+// return -1 if an error occurred. Otherwise the position of the read pointer
 __int64 TextReader::getLPosition() const
 __int64 TextReader::getLPosition() const
 {
 {
     return lPos;
     return lPos;
 }
 }
 
 
-//! Gibt die Anzahl der zu lesenden Bytes zurueck
+//! Returns the number of bytes to read
 __int64 TextReader::getSize() const
 __int64 TextReader::getSize() const
 {
 {
     return txt->getLength();
     return txt->getLength();
@@ -1582,9 +1578,9 @@ __int64 TextReader::getSize() const
 
 
 // char* operationen
 // char* operationen
 int Framework::stringPositionVonChar(const char* string,
 int Framework::stringPositionVonChar(const char* string,
-    char c,
-    int num) // sucht die position des num-ten c-s
-             // in string, -1 bei nicht gefunden
+char c,
+int num) // finds the position of the num-th c
+         // in string, -1 if not found
 {
 {
     int gef = 0;
     int gef = 0;
     int p = 0;
     int p = 0;
@@ -1603,32 +1599,32 @@ int Framework::stringPositionVonChar(const char* string,
 }
 }
 
 
 int Framework::stringPositionVonString(const char* string,
 int Framework::stringPositionVonString(const char* string,
-    char* suche,
-    int sBegPos) // sucht die position von 'suche' in 'string' ab der
-                 // Position 'sBegPos', -1 bei nicht gefunden
+char* suche,
+int sBegPos) // finds the position of 'suche' in 'string' starting at
+             // position 'sBegPos', -1 if not found
 {
 {
     for (int i = 0; i < sBegPos; ++i)
     for (int i = 0; i < sBegPos; ++i)
     {
     {
         if (!*string) return -1;
         if (!*string) return -1;
         ++string;
         ++string;
     }
     }
-    int tl = textLength(suche);   // Laenge der UEbergabe
-    int txl = textLength(string); // Laenge des Textes
-    if (tl <= 0 || tl > txl)      // Auf unsinnige uebergabe pruefen
+    int tl = textLength(suche);   // length of the argument
+    int txl = textLength(string); // length of the text
+    if (tl <= 0 || tl > txl)      // check for invalid argument
         return -1;
         return -1;
-    for (int i = 0; i + tl <= txl; ++i) // suchen
+    for (int i = 0; i + tl <= txl; ++i) // search
     {
     {
         bool b = 1;
         bool b = 1;
-        for (int ii = 0; ii < tl; ++ii) // ueberpruefen
+        for (int ii = 0; ii < tl; ++ii) // check
             if (b) b = string[i + ii] == suche[ii];
             if (b) b = string[i + ii] == suche[ii];
         if (b) return i + sBegPos;
         if (b) return i + sBegPos;
     }
     }
     return -1;
     return -1;
 }
 }
 
 
-//---Andere Funktionen---
+//---Other Functions---
 void Framework::TextKopieren(
 void Framework::TextKopieren(
-    const char* txt) // kopiert den Text in den Zwischenspeicher
+const char* txt) // copies the text to the clipboard
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     int laen = textLength(txt) + 1;
     int laen = textLength(txt) + 1;
@@ -1645,7 +1641,7 @@ void Framework::TextKopieren(
 }
 }
 
 
 const char*
 const char*
-Framework::TextInsert() // gibt den Text aus der Zwischenablage zurueck
+Framework::TextInsert() // returns the text from the clipboard
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     if (!OpenClipboard(0)) return "";
     if (!OpenClipboard(0)) return "";
@@ -1776,7 +1772,7 @@ char Framework::smallOrBig(char c, bool gr)
 }
 }
 
 
 bool Framework::istSchreibbar(
 bool Framework::istSchreibbar(
-    unsigned char zeichen) // prueft, ob zeichen ein Schreibbarer Buchstabe ist
+unsigned char zeichen) // checks if zeichen is a printable character
 {
 {
     if (zeichen > 32 && zeichen < 127) return 1;
     if (zeichen > 32 && zeichen < 127) return 1;
     if (zeichen == 128 || zeichen == 181 || zeichen == 178 || zeichen == 179)
     if (zeichen == 128 || zeichen == 181 || zeichen == 178 || zeichen == 179)
@@ -1794,7 +1790,7 @@ bool Framework::istSchreibbar(
 }
 }
 
 
 unsigned int Framework::TextZuInt(
 unsigned int Framework::TextZuInt(
-    const char* c, int system) // Konvertiert c zu int
+const char* c, int system) // converts c to int
 {
 {
     if (system == 16) return (unsigned int)strtoul(c, 0, system);
     if (system == 16) return (unsigned int)strtoul(c, 0, system);
     return (unsigned int)strtol(c, 0, system);
     return (unsigned int)strtol(c, 0, system);
@@ -1819,12 +1815,12 @@ unsigned __int64 Framework::TextZuInt64(
     return (unsigned __int64)strtoll(c, c_ende, system);
     return (unsigned __int64)strtoll(c, c_ende, system);
 }
 }
 
 
-double Framework::TextZuDouble(const char* c) // Konvertiert c zu double
+double Framework::TextZuDouble(const char* c) // converts c to double
 {
 {
     return strtod(c, 0);
     return strtod(c, 0);
 }
 }
 
 
-float Framework::TextZuFloat(const char* c) // Konvertiert c zu double
+float Framework::TextZuFloat(const char* c) // converts c to float
 {
 {
     return strtof(c, 0);
     return strtof(c, 0);
 }
 }
@@ -1839,7 +1835,7 @@ float Framework::TextZuFloat(const char* c, char** c_ende)
     return strtof(c, c_ende);
     return strtof(c, c_ende);
 }
 }
 
 
-int Framework::textLength(const char* txt) // gibt die Laenge von txt zurueck
+int Framework::textLength(const char* txt) // returns the length of txt
 {
 {
     if (!txt) return 0;
     if (!txt) return 0;
     int ret = 0;
     int ret = 0;

+ 1 - 1
UIInitialization.cpp

@@ -1,4 +1,4 @@
-#include "UIInitialization.h"
+#include "UIInitialization.h"
 
 
 #include "Animation.h"
 #include "Animation.h"
 #include "AuswahlBox.h"
 #include "AuswahlBox.h"

+ 111 - 109
Zeit.cpp

@@ -21,8 +21,8 @@
 
 
 struct timeval
 struct timeval
 {
 {
-    long tv_sec;  // Sekunden seit dem 1.1.1970
-    long tv_usec; // und Mikrosekunden
+    long tv_sec;  // seconds since 1/1/1970
+    long tv_usec; // and microseconds
 };
 };
 
 
 struct timezone
 struct timezone
@@ -71,9 +71,9 @@ int gettimeofday(struct timeval* tv, struct timezone* tz)
 
 
 using namespace Framework;
 using namespace Framework;
 
 
-// Inhalt der Uhrzeit Klasse aus Zeit.h
-// Privat
-int Uhrzeit::update() // berechnet die neue Zeit
+// Content of the Uhrzeit class from Zeit.h
+// Private
+int Uhrzeit::update() // calculates the new time
 {
 {
     __int64 mins = sekunde / 60;
     __int64 mins = sekunde / 60;
     minute = minute + mins;
     minute = minute + mins;
@@ -108,7 +108,7 @@ Uhrzeit::Uhrzeit()
       sekunde(0)
       sekunde(0)
 {}
 {}
 
 
-int Uhrzeit::setUhrzeit(Uhrzeit* zeit) // setzt die Uhrzeit
+int Uhrzeit::setUhrzeit(Uhrzeit* zeit) // sets the time
 {
 {
     stunde = zeit->getStunde();
     stunde = zeit->getStunde();
     minute = zeit->getMinute();
     minute = zeit->getMinute();
@@ -126,8 +126,8 @@ int Uhrzeit::setUhrzeit(int stunde, int minute, int sekunde)
 }
 }
 
 
 int Uhrzeit::setUhrzeit(
 int Uhrzeit::setUhrzeit(
-    const char* format, const char* zeit) // format Beispiele: "H:i:s", "H-i-s"
-                                          // (H=stunde,i=minute,s=sekunde)
+const char* format, const char* zeit) // format examples: "H:i:s", "H-i-s"
+                                      // (H=hour,i=minute,s=second)
 {
 {
     int flen = textLength(format);
     int flen = textLength(format);
     char* ende = 0;
     char* ende = 0;
@@ -165,25 +165,25 @@ int Uhrzeit::setUhrzeit(const char* format, Text* zeit)
     return ret;
     return ret;
 }
 }
 
 
-int Uhrzeit::setStunde(int stunde) // setzt die Stunde
+int Uhrzeit::setStunde(int stunde) // sets the hour
 {
 {
     this->stunde = stunde;
     this->stunde = stunde;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::setMinute(int minute) // setzt die Minute
+int Uhrzeit::setMinute(int minute) // sets the minute
 {
 {
     this->minute = minute;
     this->minute = minute;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::setSekunde(int sekunde) // setzt die Sekunde
+int Uhrzeit::setSekunde(int sekunde) // sets the second
 {
 {
     this->sekunde = sekunde;
     this->sekunde = sekunde;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::plusUhrzeit(Uhrzeit* zeit) // addiert die zeiten
+int Uhrzeit::plusUhrzeit(Uhrzeit* zeit) // adds the times
 {
 {
     stunde += zeit->getStunde();
     stunde += zeit->getStunde();
     minute += zeit->getMinute();
     minute += zeit->getMinute();
@@ -237,25 +237,25 @@ int Uhrzeit::plusUhrzeit(const char* format, Text* zeit)
     return ret;
     return ret;
 }
 }
 
 
-int Uhrzeit::plusStunde(__int64 stunde) // addiert stunde Stunden
+int Uhrzeit::plusStunde(__int64 stunde) // adds stunde hours
 {
 {
     this->stunde += stunde;
     this->stunde += stunde;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::plusMinute(__int64 minute) // addiert minute Minuten
+int Uhrzeit::plusMinute(__int64 minute) // adds minute minutes
 {
 {
     this->minute += minute;
     this->minute += minute;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::plusSekunde(__int64 sekunde) // addiert sekunde Sekunden
+int Uhrzeit::plusSekunde(__int64 sekunde) // adds sekunde seconds
 {
 {
     this->sekunde += sekunde;
     this->sekunde += sekunde;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::minusUhrzeit(Uhrzeit* zeit) // subtrahiert die zeiten
+int Uhrzeit::minusUhrzeit(Uhrzeit* zeit) // subtracts the times
 {
 {
     stunde -= zeit->getStunde();
     stunde -= zeit->getStunde();
     minute -= zeit->getMinute();
     minute -= zeit->getMinute();
@@ -310,42 +310,42 @@ int Uhrzeit::minusUhrzeit(const char* format, Text* zeit)
     return ret;
     return ret;
 }
 }
 
 
-int Uhrzeit::minusStunde(__int64 stunde) // subtrahiert stunde Stunden
+int Uhrzeit::minusStunde(__int64 stunde) // subtracts stunde hours
 {
 {
     this->stunde -= stunde;
     this->stunde -= stunde;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::minusMinute(__int64 minute) // subtrahiert minute Minuten
+int Uhrzeit::minusMinute(__int64 minute) // subtracts minute minutes
 {
 {
     this->minute -= minute;
     this->minute -= minute;
     return update();
     return update();
 }
 }
 
 
-int Uhrzeit::minusSekunde(__int64 sekunde) // subtrahiert sekunde Sekunden
+int Uhrzeit::minusSekunde(__int64 sekunde) // subtracts sekunde seconds
 {
 {
     this->sekunde -= sekunde;
     this->sekunde -= sekunde;
     return update();
     return update();
 }
 }
 
 
 // constant
 // constant
-int Uhrzeit::getStunde() const // gibt die Stunde zurueck
+int Uhrzeit::getStunde() const // returns the hour
 {
 {
     return (int)stunde;
     return (int)stunde;
 }
 }
 
 
-int Uhrzeit::getMinute() const // gibt die Minute zurueck
+int Uhrzeit::getMinute() const // returns the minute
 {
 {
     return (int)minute;
     return (int)minute;
 }
 }
 
 
-int Uhrzeit::getSekunde() const // gibt die Sekunde zurueck
+int Uhrzeit::getSekunde() const // returns the second
 {
 {
     return (int)sekunde;
     return (int)sekunde;
 }
 }
 
 
 Text* Uhrzeit::getUhrzeit(
 Text* Uhrzeit::getUhrzeit(
-    const char* format) const // gibt die Uhrzeit als Text formatiert zurueck
+const char* format) const // returns the time formatted as text
 {
 {
     Text* ret = new Text("");
     Text* ret = new Text("");
     int flen = textLength(format);
     int flen = textLength(format);
@@ -371,7 +371,7 @@ Text* Uhrzeit::getUhrzeit(
 }
 }
 
 
 bool Uhrzeit::istGleich(
 bool Uhrzeit::istGleich(
-    Uhrzeit* zeit) const // prueft, ob die Uhrzeit gleich zeit ist
+Uhrzeit* zeit) const // checks if the time equals zeit
 {
 {
     bool ret = stunde == zeit->getStunde() && minute == zeit->getMinute()
     bool ret = stunde == zeit->getStunde() && minute == zeit->getMinute()
             && sekunde == zeit->getSekunde();
             && sekunde == zeit->getSekunde();
@@ -426,25 +426,25 @@ bool Uhrzeit::istGleich(int stunde, int minute, int sekunde) const
 }
 }
 
 
 bool Uhrzeit::stundeGleich(
 bool Uhrzeit::stundeGleich(
-    int stunde) const // prueft, ob die Stunde gleich stunde ist
+int stunde) const // checks if the hour equals stunde
 {
 {
     return this->stunde == stunde;
     return this->stunde == stunde;
 }
 }
 
 
 bool Uhrzeit::minuteGleich(
 bool Uhrzeit::minuteGleich(
-    int minute) const // prueft, ob die Minute gleich minute ist
+int minute) const // checks if the minute equals minute
 {
 {
     return this->minute == minute;
     return this->minute == minute;
 }
 }
 
 
 bool Uhrzeit::sekundeGleich(
 bool Uhrzeit::sekundeGleich(
-    int sekunde) const // prueft, ob die Sekunde gleich sekunde ist
+int sekunde) const // checks if the second equals sekunde
 {
 {
     return this->sekunde == sekunde;
     return this->sekunde == sekunde;
 }
 }
 
 
 bool Uhrzeit::istKleiner(
 bool Uhrzeit::istKleiner(
-    Uhrzeit* zeit) const // prueft, ob die Zeit kleiner als zeit ist
+Uhrzeit* zeit) const // checks if the time is less than zeit
 {
 {
     bool ret
     bool ret
         = istKleiner(zeit->getStunde(), zeit->getMinute(), zeit->getSekunde());
         = istKleiner(zeit->getStunde(), zeit->getMinute(), zeit->getSekunde());
@@ -516,7 +516,7 @@ bool Uhrzeit::istKleiner(const char* format, Text* zeit) const
 }
 }
 
 
 bool Uhrzeit::istLater(
 bool Uhrzeit::istLater(
-    Uhrzeit* zeit) const // prueft, ob die Zeit groesser als zeit ist
+Uhrzeit* zeit) const // checks if the time is greater than zeit
 {
 {
     bool ret
     bool ret
         = istLater(zeit->getStunde(), zeit->getMinute(), zeit->getSekunde());
         = istLater(zeit->getStunde(), zeit->getMinute(), zeit->getSekunde());
@@ -587,9 +587,9 @@ bool Uhrzeit::istLater(const char* format, Text* zeit) const
     return ret;
     return ret;
 }
 }
 
 
-// Inhalt der Datum Klasse aus Zeit.h
-// Privat
-void Datum::update() // berechnet die neue Zeit
+// Content of the Datum class from Zeit.h
+// Private
+void Datum::update() // calculates the new date
 {
 {
     while (monat > 12)
     while (monat > 12)
     {
     {
@@ -635,7 +635,7 @@ void Datum::update() // berechnet die neue Zeit
     }
     }
 }
 }
 
 
-// Konstruktor
+// Constructor
 Datum::Datum()
 Datum::Datum()
     : ReferenceCounter(),
     : ReferenceCounter(),
       jahr(0),
       jahr(0),
@@ -647,14 +647,14 @@ Datum::Datum()
     memcpy(maxTage, maxT, 12 * sizeof(int));
     memcpy(maxTage, maxT, 12 * sizeof(int));
 }
 }
 
 
-// Destruktor
+// Destructor
 Datum::~Datum()
 Datum::~Datum()
 {
 {
     delete[] maxTage;
     delete[] maxTage;
 }
 }
 
 
-// nicht constant
-void Datum::setDatum(Datum* datum) // setzt das Datum
+// non-constant
+void Datum::setDatum(Datum* datum) // sets the date
 {
 {
     jahr = datum->getJahr();
     jahr = datum->getJahr();
     monat = datum->getMonat();
     monat = datum->getMonat();
@@ -672,8 +672,8 @@ void Datum::setDatum(int jahr, int monat, int tag)
 }
 }
 
 
 void Datum::setDatum(const char* format,
 void Datum::setDatum(const char* format,
-    const char*
-        datum) // format Beispiele: "Y:m:d", "Y-m-d" (Y=Jahr,m=Monat,d=tag)
+const char*
+    datum) // format examples: "Y:m:d", "Y-m-d" (Y=year,m=month,d=day)
 {
 {
     int flen = textLength(format);
     int flen = textLength(format);
     char* ende = 0;
     char* ende = 0;
@@ -710,25 +710,25 @@ void Datum::setDatum(const char* format, Text* datum)
     datum->release();
     datum->release();
 }
 }
 
 
-void Datum::setJahr(int jahr) // setzt das Jahr
+void Datum::setJahr(int jahr) // sets the year
 {
 {
     this->jahr = jahr;
     this->jahr = jahr;
     update();
     update();
 }
 }
 
 
-void Datum::setMonat(int monat) // setzt den Monat
+void Datum::setMonat(int monat) // sets the month
 {
 {
     this->monat = monat;
     this->monat = monat;
     update();
     update();
 }
 }
 
 
-void Datum::setTag(int tag) // setzt den Tag
+void Datum::setTag(int tag) // sets the day
 {
 {
     this->tag = tag;
     this->tag = tag;
     update();
     update();
 }
 }
 
 
-void Datum::plusDatum(Datum* datum) // addiert das datum
+void Datum::plusDatum(Datum* datum) // adds the date
 {
 {
     this->jahr += datum->getJahr();
     this->jahr += datum->getJahr();
     this->monat += datum->getMonat();
     this->monat += datum->getMonat();
@@ -782,25 +782,25 @@ void Datum::plusDatum(const char* format, Text* datum)
     datum->release();
     datum->release();
 }
 }
 
 
-void Datum::plusJahr(int jahr) // addiert jahr Jahre
+void Datum::plusJahr(int jahr) // adds jahr years
 {
 {
     this->jahr += jahr;
     this->jahr += jahr;
     update();
     update();
 }
 }
 
 
-void Datum::plusMonat(int monat) // addiert monat Monate
+void Datum::plusMonat(int monat) // adds monat months
 {
 {
     this->monat = monat;
     this->monat = monat;
     update();
     update();
 }
 }
 
 
-void Datum::plusTag(int tag) // addiert tag Tage
+void Datum::plusTag(int tag) // adds tag days
 {
 {
     this->tag += tag;
     this->tag += tag;
     update();
     update();
 }
 }
 
 
-void Datum::minusDatum(Datum* datum) // subtrahiert das datum
+void Datum::minusDatum(Datum* datum) // subtracts the date
 {
 {
     jahr -= datum->getJahr();
     jahr -= datum->getJahr();
     monat -= datum->getMonat();
     monat -= datum->getMonat();
@@ -854,42 +854,42 @@ void Datum::minusDatum(const char* format, Text* datum)
     datum->release();
     datum->release();
 }
 }
 
 
-void Datum::minusJahr(int jahr) // subtrahiert jahr Jahre
+void Datum::minusJahr(int jahr) // subtracts jahr years
 {
 {
     this->jahr -= jahr;
     this->jahr -= jahr;
     update();
     update();
 }
 }
 
 
-void Datum::minusMonat(int monat) // subtrahiert monat Monate
+void Datum::minusMonat(int monat) // subtracts monat months
 {
 {
     this->monat -= monat;
     this->monat -= monat;
     update();
     update();
 }
 }
 
 
-void Datum::minusTag(int tag) // subtrahiert tag Tage
+void Datum::minusTag(int tag) // subtracts tag days
 {
 {
     this->tag -= tag;
     this->tag -= tag;
     update();
     update();
 }
 }
 
 
 // constant
 // constant
-int Datum::getJahr() const // gibt das Jahr zurueck
+int Datum::getJahr() const // returns the year
 {
 {
     return jahr;
     return jahr;
 }
 }
 
 
-int Datum::getMonat() const // gibt der Monat zurueck
+int Datum::getMonat() const // returns the month
 {
 {
     return monat;
     return monat;
 }
 }
 
 
-int Datum::getTag() const // gibt der Tag zurueck
+int Datum::getTag() const // returns the day
 {
 {
     return tag;
     return tag;
 }
 }
 
 
 Text* Datum::getDatum(
 Text* Datum::getDatum(
-    const char* format) const // gibt das Datum als Text formatiert zurueck
+const char* format) const // returns the date formatted as text
 {
 {
     Text* ret = new Text("");
     Text* ret = new Text("");
     int flen = textLength(format);
     int flen = textLength(format);
@@ -915,7 +915,7 @@ Text* Datum::getDatum(
 }
 }
 
 
 bool Datum::istGleich(
 bool Datum::istGleich(
-    Datum* datum) const // prueft, ob das Datum gleich datum ist
+Datum* datum) const // checks if the date equals datum
 {
 {
     bool ret = jahr == datum->getJahr() && monat == datum->getMonat()
     bool ret = jahr == datum->getJahr() && monat == datum->getMonat()
             && tag == datum->getTag();
             && tag == datum->getTag();
@@ -968,23 +968,24 @@ bool Datum::istGleich(int jahr, int monat, int tag) const
     return this->jahr == jahr && this->monat == monat && this->tag == tag;
     return this->jahr == jahr && this->monat == monat && this->tag == tag;
 }
 }
 
 
-bool Datum::jahrGleich(int jahr) const // prueft, ob das Jahr gleich jahr ist
+bool Datum::jahrGleich(int jahr) const // checks if the year equals jahr
 {
 {
     return this->jahr == jahr;
     return this->jahr == jahr;
 }
 }
 
 
-bool Datum::monatGleich(int monat) const // prueft, ob der Monat gleich monat ist
+bool Datum::monatGleich(
+int monat) const // checks if the month equals monat
 {
 {
     return this->monat == monat;
     return this->monat == monat;
 }
 }
 
 
-bool Datum::tagGleich(int tag) const // prueft, ob der Tag gleich tag ist
+bool Datum::tagGleich(int tag) const // checks if the day equals tag
 {
 {
     return this->tag == tag;
     return this->tag == tag;
 }
 }
 
 
 bool Datum::istKleiner(
 bool Datum::istKleiner(
-    Datum* datum) const // prueft, ob die Datum kleiner als datum ist
+Datum* datum) const // checks if the date is less than datum
 {
 {
     bool ret = istKleiner(datum->getJahr(), datum->getMonat(), datum->getTag());
     bool ret = istKleiner(datum->getJahr(), datum->getMonat(), datum->getTag());
     datum->release();
     datum->release();
@@ -1055,7 +1056,7 @@ bool Datum::istKleiner(const char* format, Text* datum) const
 }
 }
 
 
 bool Datum::istLater(
 bool Datum::istLater(
-    Datum* datum) const // prueft, ob die Datum groesser als datum ist
+Datum* datum) const // checks if the date is greater than datum
 {
 {
     bool ret = istLater(datum->getJahr(), datum->getMonat(), datum->getTag());
     bool ret = istLater(datum->getJahr(), datum->getMonat(), datum->getTag());
     datum->release();
     datum->release();
@@ -1125,15 +1126,15 @@ bool Datum::istLater(const char* format, Text* datum) const
     return ret;
     return ret;
 }
 }
 
 
-// Inhalt der Zeit Klasse aus Zeit.h
-// Konstruktor
+// Content of the Zeit class from Zeit.h
+// Constructor
 Zeit::Zeit()
 Zeit::Zeit()
     : ReferenceCounter(),
     : ReferenceCounter(),
       datum(new Datum()),
       datum(new Datum()),
       uhrzeit(new Uhrzeit())
       uhrzeit(new Uhrzeit())
 {}
 {}
 
 
-//! Erzeugt eine neue Zeit mit den vergangenen sekunden seit 1970.
+//! Creates a new Zeit with the elapsed seconds since 1970.
 Zeit::Zeit(__int64 timestamp)
 Zeit::Zeit(__int64 timestamp)
     : ReferenceCounter(),
     : ReferenceCounter(),
       datum(new Datum()),
       datum(new Datum()),
@@ -1143,15 +1144,15 @@ Zeit::Zeit(__int64 timestamp)
     plusSekunde(timestamp);
     plusSekunde(timestamp);
 }
 }
 
 
-// Destruktor
+// Destructor
 Zeit::~Zeit()
 Zeit::~Zeit()
 {
 {
     datum->release();
     datum->release();
     uhrzeit->release();
     uhrzeit->release();
 }
 }
 
 
-// nicht constant
-void Zeit::setZeit(Zeit* zeit) // setzt die Zeit
+// non-constant
+void Zeit::setZeit(Zeit* zeit) // sets the time
 {
 {
     datum->setDatum(zeit->getDatum());
     datum->setDatum(zeit->getDatum());
     datum->plusTag(uhrzeit->setUhrzeit(zeit->getUhrzeit()));
     datum->plusTag(uhrzeit->setUhrzeit(zeit->getUhrzeit()));
@@ -1166,8 +1167,8 @@ void Zeit::setZeit(
 }
 }
 
 
 void Zeit::setZeit(const char* format,
 void Zeit::setZeit(const char* format,
-    const char* zeit) // format Beispiele: "Y:m:d H-i-s", "Y-m-d H:i:s"
-                      // (Y=Jahr,m=Monat,d=tag,H=stunde,i=minute,s=sekunde)
+const char* zeit) // format examples: "Y:m:d H-i-s", "Y-m-d H:i:s"
+                  // (Y=year,m=month,d=day,H=hour,i=minute,s=second)
 {
 {
     int y = datum->getJahr();
     int y = datum->getJahr();
     int m = datum->getMonat();
     int m = datum->getMonat();
@@ -1227,37 +1228,37 @@ void Zeit::setZeit(const char* format, Text* zeit)
     zeit->release();
     zeit->release();
 }
 }
 
 
-void Zeit::setJahr(int jahr) // setzt das Jahr
+void Zeit::setJahr(int jahr) // sets the year
 {
 {
     datum->setJahr(jahr);
     datum->setJahr(jahr);
 }
 }
 
 
-void Zeit::setMonat(int monat) // setzt den Monat
+void Zeit::setMonat(int monat) // sets the month
 {
 {
     datum->setMonat(monat);
     datum->setMonat(monat);
 }
 }
 
 
-void Zeit::setTag(int tag) // setzt den Tag
+void Zeit::setTag(int tag) // sets the day
 {
 {
     datum->setTag(tag);
     datum->setTag(tag);
 }
 }
 
 
-void Zeit::setStunde(int stunde) // setzt die Stunde
+void Zeit::setStunde(int stunde) // sets the hour
 {
 {
     datum->plusTag(uhrzeit->setStunde(stunde));
     datum->plusTag(uhrzeit->setStunde(stunde));
 }
 }
 
 
-void Zeit::setMinute(int minute) // setzt die Minute
+void Zeit::setMinute(int minute) // sets the minute
 {
 {
     datum->plusTag(uhrzeit->setMinute(minute));
     datum->plusTag(uhrzeit->setMinute(minute));
 }
 }
 
 
-void Zeit::setSekunde(int sekunde) // setzt die Sekunde
+void Zeit::setSekunde(int sekunde) // sets the second
 {
 {
     datum->plusTag(uhrzeit->setSekunde(sekunde));
     datum->plusTag(uhrzeit->setSekunde(sekunde));
 }
 }
 
 
-void Zeit::plusZeit(Zeit* zeit) // addiert die zeit
+void Zeit::plusZeit(Zeit* zeit) // adds the time
 {
 {
     datum->plusDatum(zeit->getDatum());
     datum->plusDatum(zeit->getDatum());
     datum->plusTag(uhrzeit->plusUhrzeit(zeit->getUhrzeit()));
     datum->plusTag(uhrzeit->plusUhrzeit(zeit->getUhrzeit()));
@@ -1331,37 +1332,37 @@ void Zeit::plusZeit(const char* format, Text* zeit)
     zeit->release();
     zeit->release();
 }
 }
 
 
-void Zeit::plusJahr(int jahr) // addiert jahr Jahre
+void Zeit::plusJahr(int jahr) // adds jahr years
 {
 {
     datum->plusJahr(jahr);
     datum->plusJahr(jahr);
 }
 }
 
 
-void Zeit::plusMonat(int monat) // addiert monat Monate
+void Zeit::plusMonat(int monat) // adds monat months
 {
 {
     datum->plusMonat(monat);
     datum->plusMonat(monat);
 }
 }
 
 
-void Zeit::plusTag(int tag) // addiert tag Tage
+void Zeit::plusTag(int tag) // adds tag days
 {
 {
     datum->plusTag(tag);
     datum->plusTag(tag);
 }
 }
 
 
-void Zeit::plusStunde(__int64 stunde) // addiert stunde Stunden
+void Zeit::plusStunde(__int64 stunde) // adds stunde hours
 {
 {
     datum->plusTag(uhrzeit->plusStunde(stunde));
     datum->plusTag(uhrzeit->plusStunde(stunde));
 }
 }
 
 
-void Zeit::plusMinute(__int64 minute) // addiert minute Minuten
+void Zeit::plusMinute(__int64 minute) // adds minute minutes
 {
 {
     datum->plusTag(uhrzeit->plusMinute(minute));
     datum->plusTag(uhrzeit->plusMinute(minute));
 }
 }
 
 
-void Zeit::plusSekunde(__int64 sekunde) // addiert sekunde Sekunden
+void Zeit::plusSekunde(__int64 sekunde) // adds sekunde seconds
 {
 {
     datum->plusTag(uhrzeit->plusSekunde(sekunde));
     datum->plusTag(uhrzeit->plusSekunde(sekunde));
 }
 }
 
 
-void Zeit::minusZeit(Zeit* zeit) // subtrahiert die zeit
+void Zeit::minusZeit(Zeit* zeit) // subtracts the time
 {
 {
     datum->minusDatum(zeit->getDatum());
     datum->minusDatum(zeit->getDatum());
     datum->plusTag(uhrzeit->minusUhrzeit(zeit->getUhrzeit()));
     datum->plusTag(uhrzeit->minusUhrzeit(zeit->getUhrzeit()));
@@ -1435,39 +1436,39 @@ void Zeit::minusZeit(const char* format, Text* zeit)
     zeit->release();
     zeit->release();
 }
 }
 
 
-void Zeit::minusJahr(int jahr) // subtrahiert jahr Jahre
+void Zeit::minusJahr(int jahr) // subtracts jahr years
 {
 {
     datum->minusJahr(jahr);
     datum->minusJahr(jahr);
 }
 }
 
 
-void Zeit::minusMonat(int monat) // subtrahiert monat Monate
+void Zeit::minusMonat(int monat) // subtracts monat months
 {
 {
     datum->minusMonat(monat);
     datum->minusMonat(monat);
 }
 }
 
 
-void Zeit::minusTag(int tag) // subtrahiert tag Tage
+void Zeit::minusTag(int tag) // subtracts tag days
 {
 {
     datum->minusTag(tag);
     datum->minusTag(tag);
 }
 }
 
 
-void Zeit::minusStunde(__int64 stunde) // subtrahiert stunde Stunden
+void Zeit::minusStunde(__int64 stunde) // subtracts stunde hours
 {
 {
     datum->plusTag(uhrzeit->minusStunde(stunde));
     datum->plusTag(uhrzeit->minusStunde(stunde));
 }
 }
 
 
-void Zeit::minusMinute(__int64 minute) // subtrahiert minute Minuten
+void Zeit::minusMinute(__int64 minute) // subtracts minute minutes
 {
 {
     datum->plusTag(uhrzeit->minusMinute(minute));
     datum->plusTag(uhrzeit->minusMinute(minute));
 }
 }
 
 
-void Zeit::minusSekunde(__int64 sekunde) // subtrahiert sekunde Sekunden
+void Zeit::minusSekunde(__int64 sekunde) // subtracts sekunde seconds
 {
 {
     datum->plusTag(uhrzeit->minusSekunde(sekunde));
     datum->plusTag(uhrzeit->minusSekunde(sekunde));
 }
 }
 
 
 // constant
 // constant
 Text* Zeit::getZeit(
 Text* Zeit::getZeit(
-    const char* format) const // gibt die Zeit als Text formatiert zurueck
+const char* format) const // returns the time formatted as text
 {
 {
     Text* ret = new Text("");
     Text* ret = new Text("");
     int flen = textLength(format);
     int flen = textLength(format);
@@ -1505,7 +1506,7 @@ Text* Zeit::getZeit(
     return ret;
     return ret;
 }
 }
 
 
-bool Zeit::istGleich(Zeit* zeit) const // prueft, ob die Uhrzeit gleich zeit ist
+bool Zeit::istGleich(Zeit* zeit) const // checks if the time equals zeit
 {
 {
     bool ret = datum->istGleich(zeit->getDatum())
     bool ret = datum->istGleich(zeit->getDatum())
             && uhrzeit->istGleich(zeit->getUhrzeit());
             && uhrzeit->istGleich(zeit->getUhrzeit());
@@ -1580,7 +1581,7 @@ bool Zeit::istGleich(
         && uhrzeit->istGleich(stunde, minute, sekunde);
         && uhrzeit->istGleich(stunde, minute, sekunde);
 }
 }
 
 
-Datum* Zeit::getDatum() const // gibt das Datum zurueck
+Datum* Zeit::getDatum() const // returns the date
 {
 {
     return dynamic_cast<Datum*>(datum->getThis());
     return dynamic_cast<Datum*>(datum->getThis());
 }
 }
@@ -1590,7 +1591,7 @@ Datum* Zeit::zDatum() const
     return datum;
     return datum;
 }
 }
 
 
-Uhrzeit* Zeit::getUhrzeit() const // gibt die Uhrzeit zurueck
+Uhrzeit* Zeit::getUhrzeit() const // returns the time of day
 {
 {
     return dynamic_cast<Uhrzeit*>(uhrzeit->getThis());
     return dynamic_cast<Uhrzeit*>(uhrzeit->getThis());
 }
 }
@@ -1601,7 +1602,7 @@ Uhrzeit* Zeit::zUhrzeit() const
 }
 }
 
 
 bool Zeit::istKleiner(
 bool Zeit::istKleiner(
-    Zeit* zeit) const // prueft, ob die Zeit kleiner als zeit ist
+Zeit* zeit) const // checks if the time is less than zeit
 {
 {
     if (datum->istKleiner(zeit->getDatum()))
     if (datum->istKleiner(zeit->getDatum()))
     {
     {
@@ -1714,7 +1715,8 @@ bool Zeit::istKleiner(const char* format, Text* zeit) const
     return ret;
     return ret;
 }
 }
 
 
-bool Zeit::istLater(Zeit* zeit) const // prueft, ob die Zeit groesser als zeit ist
+bool Zeit::istLater(
+Zeit* zeit) const // checks if the time is greater than zeit
 {
 {
     if (datum->istLater(zeit->getDatum()))
     if (datum->istLater(zeit->getDatum()))
     {
     {
@@ -1827,8 +1829,8 @@ bool Zeit::istLater(const char* format, Text* zeit) const
     return ret;
     return ret;
 }
 }
 
 
-// Inhalt der ZeitMesser Klasse aus Zeit.h
-// Konstruktor
+// Content of the ZeitMesser class from Zeit.h
+// Constructor
 ZeitMesser::ZeitMesser()
 ZeitMesser::ZeitMesser()
     : ReferenceCounter(),
     : ReferenceCounter(),
       start(0),
       start(0),
@@ -1836,18 +1838,18 @@ ZeitMesser::ZeitMesser()
       messung(0)
       messung(0)
 {}
 {}
 
 
-// Destruktor
+// Destructor
 ZeitMesser::~ZeitMesser() {}
 ZeitMesser::~ZeitMesser() {}
 
 
-// nicht constant
-void ZeitMesser::messungStart() // legt des Startpunkt der Zeitmessung fest
+// non-constant
+void ZeitMesser::messungStart() // sets the start point of the time measurement
 {
 {
     timeval tv;
     timeval tv;
     gettimeofday(&tv, 0);
     gettimeofday(&tv, 0);
     start = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
     start = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
 }
 }
 
 
-void ZeitMesser::messungEnde() // legt des Endpunkt der Zeitmessung fest
+void ZeitMesser::messungEnde() // sets the end point of the time measurement
 {
 {
     timeval tv;
     timeval tv;
     gettimeofday(&tv, 0);
     gettimeofday(&tv, 0);
@@ -1856,32 +1858,32 @@ void ZeitMesser::messungEnde() // legt des Endpunkt der Zeitmessung fest
 }
 }
 
 
 // constant
 // constant
-double ZeitMesser::getSekunden()
-    const // gibt den sekundenabstand zwischen start und ende der Messung zurueck
+double ZeitMesser::getSekunden() const // returns the second difference between
+// start and end of the measurement
 {
 {
     return messung;
     return messung;
 }
 }
 
 
 double ZeitMesser::getMinuten()
 double ZeitMesser::getMinuten()
-    const // gibt den minutenabstand zwischen start und ende der Messung zurueck
+const // returns the minute difference between start and end of the measurement
 {
 {
     return messung / 60;
     return messung / 60;
 }
 }
 
 
 double ZeitMesser::getStunden()
 double ZeitMesser::getStunden()
-    const // gibt den stundenabstand zwischen start und ende der Messung zurueck
+const // returns the hour difference between start and end of the measurement
 {
 {
     return messung / 3600;
     return messung / 3600;
 }
 }
 
 
-//! gibt true zurueck, wenn aktuell eine MEssung laeuft
+//! returns true if a measurement is currently running
 DLLEXPORT bool ZeitMesser::isMeasuring() const
 DLLEXPORT bool ZeitMesser::isMeasuring() const
 {
 {
     return start != 0;
     return start != 0;
 }
 }
 
 
-// Globale Funktionen
-Uhrzeit* Framework::getUhrzeit() // gibt die aktuelle Uhrzeit zurueck
+// Global functions
+Uhrzeit* Framework::getUhrzeit() // returns the current time of day
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     Uhrzeit* ret = new Uhrzeit();
     Uhrzeit* ret = new Uhrzeit();
@@ -1899,7 +1901,7 @@ Uhrzeit* Framework::getUhrzeit() // gibt die aktuelle Uhrzeit zurueck
 #endif
 #endif
 }
 }
 
 
-Datum* Framework::getDatum() // gibt das aktuelle Datum zurueck
+Datum* Framework::getDatum() // returns the current date
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     Datum* ret = new Datum();
     Datum* ret = new Datum();
@@ -1917,7 +1919,7 @@ Datum* Framework::getDatum() // gibt das aktuelle Datum zurueck
 #endif
 #endif
 }
 }
 
 
-Zeit* Framework::getZeit() // gibt die aktuelle Zeit( Datum und Uhrzeit ) zurueck
+Zeit* Framework::getZeit() // returns the current time (date and time of day)
 {
 {
 #ifdef WIN32
 #ifdef WIN32
     Zeit* ret = new Zeit();
     Zeit* ret = new Zeit();
@@ -1945,7 +1947,7 @@ Zeit* Framework::getZeit() // gibt die aktuelle Zeit( Datum und Uhrzeit ) zuruec
 #endif
 #endif
 }
 }
 
 
-bool Framework::istSchaltjahr(int jahr) // prueft, ob jahr ein Schaltjahr ist
+bool Framework::istSchaltjahr(int jahr) // checks if jahr is a leap year
 {
 {
     if (jahr % 4 == 0)
     if (jahr % 4 == 0)
     {
     {

+ 570 - 575
Zeit.h

@@ -9,13 +9,13 @@
 namespace Framework
 namespace Framework
 {
 {
     class Text;       //! Text.h
     class Text;       //! Text.h
-    class Uhrzeit;    //! Aus dieser Datei
-    class Datum;      //! Aus dieser Datei
-    class Zeit;       //! Aus dieser Datei
-    class ZeitMesser; //! Aus dieser Datei
+    class Uhrzeit;    //! From this file
+    class Datum;      //! From this file
+    class Zeit;       //! From this file
+    class ZeitMesser; //! From this file
 
 
-    //! Diese Klasse speichert eine Uhrzeit in form von Stunden, Minuten und
-    //! Sekunden
+    //! This class stores a time of day in the form of hours, minutes and
+    //! seconds
     class Uhrzeit : public virtual ReferenceCounter
     class Uhrzeit : public virtual ReferenceCounter
     {
     {
     private:
     private:
@@ -23,267 +23,265 @@ namespace Framework
         int update();
         int update();
 
 
     public:
     public:
-        //! Erzeugt ein neues Uhrzeit Zeichnung mit den Standartwerten 00:00:00
+        //! Creates a new Uhrzeit object with the default values 00:00:00
         DLLEXPORT Uhrzeit();
         DLLEXPORT Uhrzeit();
 
 
-        //! Setzt die Uhrzeit durch kopieren.
-        //! \param zeit Aus diesem Zeichnung werden die Werte fuer Stunde, Minute
-        //! und Sekunde kopiert.
+        //! Sets the time by copying.
+        //! \param zeit The values for hour, minute and second are
+        //! copied from this object.
         DLLEXPORT int setUhrzeit(Uhrzeit* zeit);
         DLLEXPORT int setUhrzeit(Uhrzeit* zeit);
-        //! Setzt die Uhrzeit.
-        //! \param stunde Die Stunde der neuen Uhrzeit.
-        //! \param minute Die Minute der neuen Uhrzeit.
-        //! \param sekunde Die Sekunde der neuen Uhrzeit.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: setUhrzeit( 30, 30, 30 ); return: 1, gespeichert: 6:30:30
+        //! Sets the time.
+        //! \param stunde The hour of the new time.
+        //! \param minute The minute of the new time.
+        //! \param sekunde The second of the new time.
+        //! \return The number of remaining days.
+        //! Example: setUhrzeit( 30, 30, 30 ); return: 1, stored: 6:30:30
         DLLEXPORT int setUhrzeit(int stunde, int minute, int sekunde);
         DLLEXPORT int setUhrzeit(int stunde, int minute, int sekunde);
-        //! Setzt die Uhrzeit.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Eine Zeichenfolge die die neue Uhrzeit enthaelt. \return Die
-        //! Anzahl uebriger Tage. Beispiel: setUhrzeit( "h:i:s", "05:30:00" );
-        //! Beispiel: setUhrzeit( "h:i:s", "30:30:00" ); return: 1, gespeichert:
+        //! Sets the time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A string containing the new time. \return The
+        //! number of remaining days. Example: setUhrzeit( "h:i:s", "05:30:00" );
+        //! Example: setUhrzeit( "h:i:s", "30:30:00" ); return: 1, stored:
         //! 6:30:00
         //! 6:30:00
         DLLEXPORT int setUhrzeit(const char* format, const char* zeit);
         DLLEXPORT int setUhrzeit(const char* format, const char* zeit);
-        //! Setzt die Uhrzeit.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Ein Text Zeichnung, dass die neue Uhrzeit enthaelt. \return Die
-        //! Anzahl uebriger Tage. Beispiel: setUhrzeit( "h:i:s", new Text(
-        //! "05:30:00" ) ); Beispiel: setUhrzeit( "h:i:s", new Text( "30:30:00"
-        //! ) ); return: 1, gespeichert: 6:30:00
+        //! Sets the time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A Text object containing the new time. \return The
+        //! number of remaining days. Example: setUhrzeit( "h:i:s", new Text(
+        //! "05:30:00" ) ); Example: setUhrzeit( "h:i:s", new Text( "30:30:00"
+        //! ) ); return: 1, stored: 6:30:00
         DLLEXPORT int setUhrzeit(const char* format, Text* zeit);
         DLLEXPORT int setUhrzeit(const char* format, Text* zeit);
-        //! setzt die Stunde.
-        //! \param stunde Die Stunde, die gespeichert werden soll.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: setStunde( 30 ); return: 1 Tag, gespeicherte Stunden: 6
+        //! Sets the hour.
+        //! \param stunde The hour to be stored.
+        //! \return The number of remaining days.
+        //! Example: setStunde( 30 ); return: 1 day, stored hours: 6
         DLLEXPORT int setStunde(int stunde);
         DLLEXPORT int setStunde(int stunde);
-        //! setzt die Minute.
-        //! \param minute Die Minute, die gespeichert werden soll.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 23:50:10, setMinute( 80 ); return: 1,
-        //! gespeicherte Zeit: 01:10:10
+        //! Sets the minute.
+        //! \param minute The minute to be stored.
+        //! \return The number of remaining days.
+        //! Example: Old time: 23:50:10, setMinute( 80 ); return: 1,
+        //! stored time: 01:10:10
         DLLEXPORT int setMinute(int minute);
         DLLEXPORT int setMinute(int minute);
-        //! setzt die Sekunde.
-        //! \param minute Die Sekunde, die gespeichert werden soll.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 23:59:10, setSekunde( 80 ); return: 1,
-        //! gespeicherte Zeit: 00:00:30
+        //! Sets the second.
+        //! \param minute The second to be stored.
+        //! \return The number of remaining days.
+        //! Example: Old time: 23:59:10, setSekunde( 80 ); return: 1,
+        //! stored time: 00:00:30
         DLLEXPORT int setSekunde(int sekunde);
         DLLEXPORT int setSekunde(int sekunde);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param zeit Die Uhrzeit, deren Werte addiert werden
-        //! sollen. \return Die Anzahl uebriger Tage. Beispiel: Alte Zeit:
-        //! 19:40:18, plusZeit( (10:05:30) ); return 1, gespeicherte Zeit:
-        //! 05:45:48
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param zeit The time whose values are to be added.
+        //! \return The number of remaining days.
+        //! Example: Old time: 19:40:18, plusUhrzeit( (10:05:30) ); return 1,
+        //! stored time: 05:45:48
         DLLEXPORT int plusUhrzeit(Uhrzeit* zeit);
         DLLEXPORT int plusUhrzeit(Uhrzeit* zeit);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param stunde Die Stunden die Werte addiert werden
-        //! sollen. \param minute Die Minute die Werte addiert werden sollen.
-        //! \param sekunde Die Sekunde die Werte addiert werden sollen.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 19:40:18, plusZeit( 10, 5, 30 ); return 1,
-        //! gespeicherte Zeit: 05:45:48
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param stunde The hours to be added.
+        //! \param minute The minutes to be added.
+        //! \param sekunde The seconds to be added.
+        //! \return The number of remaining days.
+        //! Example: Old time: 19:40:18, plusUhrzeit( 10, 5, 30 ); return 1,
+        //! stored time: 05:45:48
         DLLEXPORT int plusUhrzeit(int stunde, int minute, int sekunde);
         DLLEXPORT int plusUhrzeit(int stunde, int minute, int sekunde);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param format Eine Zeichenfolge, die bestimmt in
-        //! welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde,
-        //! i=Minute,s=Sekunde. \param zeit Eine Zeichenfolge die die neue
-        //! Uhrzeit enthaelt. \return Die Anzahl uebriger Tage. Beispiel:
-        //! plusUhrzeit( "h:i:s", "05:20:00" ); Beispiel: Alte Zeit: 19:40:18,
-        //! plusZeit( "h:i:s", "10:05:30" ); return 1, gespeicherte Zeit:
-        //! 05:45:48
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second.
+        //! \param zeit A string containing the time to add.
+        //! \return The number of remaining days.
+        //! Example: Old time: 19:40:18, plusUhrzeit( "h:i:s", "10:05:30" );
+        //! return 1, stored time: 05:45:48
         DLLEXPORT int plusUhrzeit(const char* format, const char* zeit);
         DLLEXPORT int plusUhrzeit(const char* format, const char* zeit);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param format Eine Zeichenfolge, die bestimmt in
-        //! welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde,
-        //! i=Minute,s=Sekunde. \param zeit Ein Text Zeichnung, welches die neue
-        //! Uhrzeit enthaelt. \return Die Anzahl uebriger Tage. Beispiel:
-        //! plusUhrzeit( "h:i:s", new Text( "05:20:00" ) ); Beispiel: Alte Zeit:
-        //! 19:40:18, plusZeit( "h:i:s", new Text( "10:05:30" ) ); return 1,
-        //! gespeicherte Zeit: 05:45:48
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second.
+        //! \param zeit A Text object containing the time to add.
+        //! \return The number of remaining days.
+        //! Example: Old time: 19:40:18, plusUhrzeit( "h:i:s", new Text(
+        //! "10:05:30" ) ); return 1, stored time: 05:45:48
         DLLEXPORT int plusUhrzeit(const char* format, Text* zeit);
         DLLEXPORT int plusUhrzeit(const char* format, Text* zeit);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param stunde die draufzurechnenden Stunden.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 20:50:30, plusStunde( 10 ); return 1,
-        //! gespeicherte Zeit: 6:50:30
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param stunde The hours to add.
+        //! \return The number of remaining days.
+        //! Example: Old time: 20:50:30, plusStunde( 10 ); return 1,
+        //! stored time: 6:50:30
         DLLEXPORT int plusStunde(__int64 stunde);
         DLLEXPORT int plusStunde(__int64 stunde);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param minute die draufzurechnenden Minuten.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 23:50:30, plusMinute( 11 ); return 1,
-        //! gespeicherte Zeit: 00:01:30
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param minute The minutes to add.
+        //! \return The number of remaining days.
+        //! Example: Old time: 23:50:30, plusMinute( 11 ); return 1,
+        //! stored time: 00:01:30
         DLLEXPORT int plusMinute(__int64 minute);
         DLLEXPORT int plusMinute(__int64 minute);
-        //! errechnet die Summe von dieser und einer anderen Uhrzeit und
-        //! speichert diese. \param sekunde die draufzurechnenden Sekunden.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel: Alte Zeit: 23:59:30, plusSekunde( 40 ); return 1,
-        //! gespeicherte Zeit: 00:00:10
+        //! Calculates the sum of this and another time and stores the result.
+        //! \param sekunde The seconds to add.
+        //! \return The number of remaining days.
+        //! Example: Old time: 23:59:30, plusSekunde( 40 ); return 1,
+        //! stored time: 00:00:10
         DLLEXPORT int plusSekunde(__int64 sekunde);
         DLLEXPORT int plusSekunde(__int64 sekunde);
-        //! zieht eine gegebene Uhrzeit von dieser ab und speichert das
-        //! Ergebnis. \param zeit Die Uhrzeit, die von dieser abgezogen werden
-        //! soll. \return Die Anzahl uebriger Tage. Beispiel Alte Zeit: 10:40:18,
-        //! minusUhrzeit( (19:05:30) ); return -1, gespeicherte Zeit: 15:34:48
+        //! Subtracts a given time from this one and stores the result.
+        //! \param zeit The time to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 10:40:18, minusUhrzeit( (19:05:30) ); return -1,
+        //! stored time: 15:34:48
         DLLEXPORT int minusUhrzeit(Uhrzeit* zeit);
         DLLEXPORT int minusUhrzeit(Uhrzeit* zeit);
-        //! zieht eine gegebene Uhrzeit von dieser ab und speichert das
-        //! Ergebnis. \param stunde Die Stunden, die von dieser Uhrzeit
-        //! abgezogen werden sollen. \param minute Die Minuten, die von dieser
-        //! Uhrzeit abgezogen werden sollen. \param sekunde Die Sekunden, die
-        //! von dieser Uhrzeit abgezogen werden sollen. \return Die Anzahl
-        //! uebriger Tage. Beispiel Alte Zeit: 10:40:18, minusUhrzeit( 19, 05, 30
-        //! ); return -1, gespeicherte Zeit: 15:34:48
+        //! Subtracts a given time from this one and stores the result.
+        //! \param stunde The hours to subtract.
+        //! \param minute The minutes to subtract.
+        //! \param sekunde The seconds to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 10:40:18, minusUhrzeit( 19, 05, 30 );
+        //! return -1, stored time: 15:34:48
         DLLEXPORT int minusUhrzeit(int stunde, int minute, int sekunde);
         DLLEXPORT int minusUhrzeit(int stunde, int minute, int sekunde);
-        //! zieht eine gegebene Uhrzeit von dieser ab und speichert das
-        //! Ergebnis. \param format Eine Zeichenfolge, die bestimmt in welcher
-        //! Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
-        //! \param zeit Eine Zeichenfolge die die neue Uhrzeit enthaelt.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( "h:i:s", "19:05:30" );
-        //! return -1, gespeicherte Zeit: 15:34:48
+        //! Subtracts a given time from this one and stores the result.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second.
+        //! \param zeit A string containing the time to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 10:40:18, minusUhrzeit( "h:i:s", "19:05:30" );
+        //! return -1, stored time: 15:34:48
         DLLEXPORT int minusUhrzeit(const char* format, const char* zeit);
         DLLEXPORT int minusUhrzeit(const char* format, const char* zeit);
-        //! zieht eine gegebene Uhrzeit von dieser ab und speichert das
-        //! Ergebnis. \param format Eine Zeichenfolge, die bestimmt in welcher
-        //! Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
-        //! \param zeit Ein Text Zeichnung, welches die neue Uhrzeit enthaelt.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel Alte Zeit: 10:40:18, minusUhrzeit( "h:i:s", new Text(
-        //! "19:05:30" ) ); return -1, gespeicherte Zeit: 15:34:48
+        //! Subtracts a given time from this one and stores the result.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second.
+        //! \param zeit A Text object containing the time to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 10:40:18, minusUhrzeit( "h:i:s", new Text(
+        //! "19:05:30" ) ); return -1, stored time: 15:34:48
         DLLEXPORT int minusUhrzeit(const char* format, Text* zeit);
         DLLEXPORT int minusUhrzeit(const char* format, Text* zeit);
-        //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
-        //! \param stunde Die abzuziehenden Stunden.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel Alte Zeit: 10:40:18, minusStunde( 19 ); return -1,
-        //! gespeicherte Zeit: 15:40:18
+        //! Subtracts a given time from this one and stores the result.
+        //! \param stunde The hours to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 10:40:18, minusStunde( 19 ); return -1,
+        //! stored time: 15:40:18
         DLLEXPORT int minusStunde(__int64 stunde);
         DLLEXPORT int minusStunde(__int64 stunde);
-        //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
-        //! \param minute Die abzuziehenden Minuten.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel Alte Zeit: 00:40:18, minusStunde( 50 ); return -1,
-        //! gespeicherte Zeit: 23:50:18
+        //! Subtracts a given time from this one and stores the result.
+        //! \param minute The minutes to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 00:40:18, minusMinute( 50 ); return -1,
+        //! stored time: 23:50:18
         DLLEXPORT int minusMinute(__int64 minute);
         DLLEXPORT int minusMinute(__int64 minute);
-        //! zieht eine gegebene Zeit von dieser ab und speichert das Ergebnis.
-        //! \param sekunde Die abzuziehenden Sekunden.
-        //! \return Die Anzahl uebriger Tage.
-        //! Beispiel Alte Zeit: 00:00:20, minusStunde( 50 ); return -1,
-        //! gespeicherte Zeit: 23:59:30
+        //! Subtracts a given time from this one and stores the result.
+        //! \param sekunde The seconds to subtract.
+        //! \return The number of remaining days.
+        //! Example: Old time: 00:00:20, minusSekunde( 50 ); return -1,
+        //! stored time: 23:59:30
         DLLEXPORT int minusSekunde(__int64 sekunde);
         DLLEXPORT int minusSekunde(__int64 sekunde);
 
 
-        //! gibt die Stunde zurueck.
+        //! Returns the hour.
         DLLEXPORT int getStunde() const;
         DLLEXPORT int getStunde() const;
-        //! gibt die Minute zurueck.
+        //! Returns the minute.
         DLLEXPORT int getMinute() const;
         DLLEXPORT int getMinute() const;
-        //! gibt die Sekunde zurueck.
+        //! Returns the second.
         DLLEXPORT int getSekunde() const;
         DLLEXPORT int getSekunde() const;
-        //! gibt die Uhrzeit als Text formatiert zurueck.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit zurueckgegeben werden soll. h=Stunde, i=Minute,s=Sekunde.
-        //! Beispiel: Zeit: 5:40:39, getUhrzeit( "h:i:s" ); return: "5:40:39"
+        //! Returns the time formatted as text.
+        //! \param format A string that determines the format of the
+        //! returned time. h=hour, i=minute, s=second.
+        //! Example: Time: 5:40:39, getUhrzeit( "h:i:s" ); return: "5:40:39"
         DLLEXPORT Text* getUhrzeit(const char* format) const;
         DLLEXPORT Text* getUhrzeit(const char* format) const;
-        //! prueft, ob die Uhrzeit gleich zeit ist.
-        //! \param zeit Die Uhrzeit, mit der diese verglichen werden soll.
-        //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die
-        //! Zeiten nicht gleich sind.
+        //! Checks if the time equals zeit.
+        //! \param zeit The time to compare with.
+        //! \return (true) if both times are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool istGleich(Uhrzeit* zeit) const;
         DLLEXPORT bool istGleich(Uhrzeit* zeit) const;
-        //! prueft, ob die Uhrzeit gleich zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Eine Zeichenfolge die die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten
-        //! nicht gleich sind.
+        //! Checks if the time equals zeit.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A string containing the other time. \return
+        //! (true) if both times are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool istGleich(const char* format, const char* zeit) const;
         DLLEXPORT bool istGleich(const char* format, const char* zeit) const;
-        //! prueft, ob die Uhrzeit gleich zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Ein Text Zeichnung, welches die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die beiden Zeiten geich sind. (false), wenn die Zeiten
-        //! nicht gleich sind.
+        //! Checks if the time equals zeit.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A Text object containing the other time.
+        //! \return (true) if both times are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool istGleich(const char* format, Text* zeit) const;
         DLLEXPORT bool istGleich(const char* format, Text* zeit) const;
-        //! prueft, ob die Uhrzeit gleich der uebergebenen Zeit ist. Hier wird
-        //! nicht beachtet, ob die gegebene Zeit eine gueltige Uhrzeit ist.
-        //! \param stunde Die Stunden der zu ueberpruefenden Uhrzeit
-        //! \param minute Die Minuten der zu ueberpruefenden Uhrzeit
-        //! \param sekunde Die Sekunden der zu ueberpruefenden Uhrzeit
-        //! \return (true), wenn die beiden Zeiten geich sind. (false), wenn die
-        //! Zeiten nicht gleich sind.
+        //! Checks if the time equals the given time. Does not validate
+        //! whether the given time is a valid time of day.
+        //! \param stunde The hours of the time to check.
+        //! \param minute The minutes of the time to check.
+        //! \param sekunde The seconds of the time to check.
+        //! \return (true) if both times are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool istGleich(int stunde, int minute, int sekunde) const;
         DLLEXPORT bool istGleich(int stunde, int minute, int sekunde) const;
-        //! prueft, ob die Stunde gleich der gegebenen Stunde ist.
-        //! \param stunde die zu pruefende Stunde.
-        //! \return (true), wenn die Stunden gleich sind. (false), wenn sie
-        //! nicht gleich sind.
+        //! Checks if the hour equals the given hour.
+        //! \param stunde The hour to check.
+        //! \return (true) if the hours are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool stundeGleich(int stunde) const;
         DLLEXPORT bool stundeGleich(int stunde) const;
-        //! prueft, ob die Minute gleich der gegebenen Minute ist.
-        //! \param minute die zu pruefende Minute.
-        //! \return (true), wenn die Minuten gleich sind. (false), wenn sie
-        //! nicht gleich sind.
+        //! Checks if the minute equals the given minute.
+        //! \param minute The minute to check.
+        //! \return (true) if the minutes are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool minuteGleich(int minute) const;
         DLLEXPORT bool minuteGleich(int minute) const;
-        //! prueft, ob die Sekunde gleich der gegebenen Sekunde ist.
-        //! \param sekunde die zu pruefende Sekunde.
-        //! \return (true), wenn die Sekunden gleich sind. (false), wenn sie
-        //! nicht gleich sind.
+        //! Checks if the second equals the given second.
+        //! \param sekunde The second to check.
+        //! \return (true) if the seconds are equal. (false) if they
+        //! are not equal.
         DLLEXPORT bool sekundeGleich(int sekunde) const;
         DLLEXPORT bool sekundeGleich(int sekunde) const;
-        //! prueft, ob die Uhrzeit kleiner als zeit ist.
-        //! \param zeit Die zu pruefende Uhrzeit.
-        //! \return (true), wenn die gespeicherte Zeit kleiner als die
-        //! uebergebene Zeit ist. (false) sonst. Beispiel: (5:30:00).istKleiner(
-        //! (10:40:29) ); return true
+        //! Checks if the time is less than zeit.
+        //! \param zeit The time to check against.
+        //! \return (true) if the stored time is less than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istKleiner( (10:40:29) ); return true
         DLLEXPORT bool istKleiner(Uhrzeit* zeit) const;
         DLLEXPORT bool istKleiner(Uhrzeit* zeit) const;
-        //! prueft, ob die Uhrzeit kleiner als die uebergebene Zeit ist.
-        //! \param stunde Die Stunden der zu pruefenden Zeit.
-        //! \param minute Die Minute der zu pruefenden Zeit.
-        //! \param sekunde Die Sekunde der zu pruefenden Zeit.
-        //! \return (true), wenn die gespeicherte Zeit kleiner als die
-        //! uebergebene Zeit ist. (false) sonst. Beispiel: (5:30:00).istKleiner(
-        //! 10, 40, 29 ); return true
+        //! Checks if the time is less than the given time.
+        //! \param stunde The hours of the time to check.
+        //! \param minute The minutes of the time to check.
+        //! \param sekunde The seconds of the time to check.
+        //! \return (true) if the stored time is less than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istKleiner( 10, 40, 29 ); return true
         DLLEXPORT bool istKleiner(int stunde, int minute, int sekunde) const;
         DLLEXPORT bool istKleiner(int stunde, int minute, int sekunde) const;
-        //! prueft, ob die Uhrzeit kleiner als die uebergebene Zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Eine Zeichenfolge die die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. (false) sonst. Beispiel: (5:30:00).istKleiner( "h:i:s",
-        //! "10:40:29" ); return true
+        //! Checks if the time is less than the given time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A string containing the other time. \return
+        //! (true) if the stored time is less than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istKleiner( "h:i:s", "10:40:29" ); return true
         DLLEXPORT bool istKleiner(const char* format, const char* zeit) const;
         DLLEXPORT bool istKleiner(const char* format, const char* zeit) const;
-        //! prueft, ob die Uhrzeit kleiner als die uebergebene Zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Ein Text Zeichnung, welches die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. (false) sonst. Beispiel: (5:30:00).istKleiner( "h:i:s",
-        //! "10:40:29" ); return true
+        //! Checks if the time is less than the given time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A Text object containing the other time.
+        //! \return (true) if the stored time is less than the given
+        //! time. (false) otherwise.
         DLLEXPORT bool istKleiner(const char* format, Text* zeit) const;
         DLLEXPORT bool istKleiner(const char* format, Text* zeit) const;
-        //! prueft, ob die Uhrzeit groesser als zeit ist.
-        //! \param zeit Die zu pruefende Uhrzeit.
-        //! \return (true), wenn die gespeicherte Zeit groesser als die uebergebene
-        //! Zeit ist. (false) sonst. Beispiel: (5:30:00).istGroesser( (10:40:29)
-        //! ); return false
+        //! Checks if the time is greater than zeit.
+        //! \param zeit The time to check against.
+        //! \return (true) if the stored time is greater than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istLater( (10:40:29) ); return false
         DLLEXPORT bool istLater(Uhrzeit* zeit) const;
         DLLEXPORT bool istLater(Uhrzeit* zeit) const;
-        //! prueft, ob die Uhrzeit groesser als die uebergebene Zeit ist.
-        //! \param stunde Die Stunden der zu pruefenden Zeit.
-        //! \param minute Die Minute der zu pruefenden Zeit.
-        //! \param sekunde Die Sekunde der zu pruefenden Zeit.
-        //! \return (true), wenn die gespeicherte Zeit groesser als die uebergebene
-        //! Zeit ist. (false) sonst. Beispiel: (5:30:00).istGroesser( 10, 40, 29
-        //! ); return false
+        //! Checks if the time is greater than the given time.
+        //! \param stunde The hours of the time to check.
+        //! \param minute The minutes of the time to check.
+        //! \param sekunde The seconds of the time to check.
+        //! \return (true) if the stored time is greater than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istLater( 10, 40, 29 ); return false
         DLLEXPORT bool istLater(int stunde, int minute, int sekunde) const;
         DLLEXPORT bool istLater(int stunde, int minute, int sekunde) const;
-        //! prueft, ob die Uhrzeit groesser als die uebergebene Zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Eine Zeichenfolge die die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. (false) sonst. Beispiel: (5:30:00).istGroesser( "h:i:s",
-        //! "10:40:29" ); return false
+        //! Checks if the time is greater than the given time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A string containing the other time. \return
+        //! (true) if the stored time is greater than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istLater( "h:i:s", "10:40:29" ); return false
         DLLEXPORT bool istLater(const char* format, const char* zeit) const;
         DLLEXPORT bool istLater(const char* format, const char* zeit) const;
-        //! prueft, ob die Uhrzeit groesser als die uebergebene Zeit ist.
-        //! \param format Eine Zeichenfolge, die bestimmt in welcher Form die
-        //! Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde. \param
-        //! zeit Ein Text Zeichnung, welches die andere Uhrzeit enthaelt. \return
-        //! (true), wenn die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. (false) sonst. Beispiel: (5:30:00).istGroesser( "h:i:s",
-        //! "10:40:29" ); return false
+        //! Checks if the time is greater than the given time.
+        //! \param format A string that determines the format of the
+        //! time in (zeit). h=hour, i=minute, s=second. \param
+        //! zeit A Text object containing the other time.
+        //! \return (true) if the stored time is greater than the given
+        //! time. (false) otherwise.
+        //! Example: (5:30:00).istLater( "h:i:s", "10:40:29" ); return false
         DLLEXPORT bool istLater(const char* format, Text* zeit) const;
         DLLEXPORT bool istLater(const char* format, Text* zeit) const;
     };
     };
 
 
-    //! Diese Klasse speichert ein Datum in Form von Jahr, Monat und Tagen
+    //! This class stores a date in the form of year, month and day
     class Datum : public virtual ReferenceCounter
     class Datum : public virtual ReferenceCounter
     {
     {
     private:
     private:
@@ -292,230 +290,230 @@ namespace Framework
         void update();
         void update();
 
 
     public:
     public:
-        //! Erzeugt ein neues Datum Zeichnung mit den Standartwerten 0.0.0.
+        //! Creates a new Datum object with the default values 0.0.0.
         DLLEXPORT Datum();
         DLLEXPORT Datum();
-        //! Loescht das Datum.
+        //! Deletes the date.
         DLLEXPORT ~Datum();
         DLLEXPORT ~Datum();
 
 
-        //! Setzt das Datum durch kopieren.
-        //! \param datum Das zu speichernde Datum.
+        //! Sets the date by copying.
+        //! \param datum The date to store.
         DLLEXPORT void setDatum(Datum* datum);
         DLLEXPORT void setDatum(Datum* datum);
-        //! Setzt das Datum zu den uebergebenen Werten.
-        //! \param jahr Das Jahr des neuen Datums.
-        //! \param monat Der Monat des neuen Datums.
-        //! \param tag Der Tag des neuen Datums.
+        //! Sets the date to the given values.
+        //! \param jahr The year of the new date.
+        //! \param monat The month of the new date.
+        //! \param tag The day of the new date.
         DLLEXPORT void setDatum(int jahr, int monat, int tag);
         DLLEXPORT void setDatum(int jahr, int monat, int tag);
-        //! Setzt das Datum zu dem uebergebenen Wert.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Eine Zeichenkette, die das neue Datum enthaelt. Beispiel: setDatum(
-        //! "y-m-d", "2016-01-25" );
+        //! Sets the date to the given value.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A string containing the new date.
+        //! Example: setDatum( "y-m-d", "2016-01-25" );
         DLLEXPORT void setDatum(const char* format, const char* datum);
         DLLEXPORT void setDatum(const char* format, const char* datum);
-        //! Setzt das Datum zu dem uebergebenen Wert.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Ein Text Zeichnung, welches das neue Datum enthaelt. Beispiel:
-        //! setDatum( "y-m-d", new Text(  "2016-01-25" ) );
+        //! Sets the date to the given value.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A Text object containing the new date.
+        //! Example: setDatum( "y-m-d", new Text( "2016-01-25" ) );
         DLLEXPORT void setDatum(const char* format, Text* datum);
         DLLEXPORT void setDatum(const char* format, Text* datum);
-        //! AEndert das Jahr des Datums.
-        //! \param jahr Das neue Jahr.
+        //! Changes the year of the date.
+        //! \param jahr The new year.
         DLLEXPORT void setJahr(int jahr);
         DLLEXPORT void setJahr(int jahr);
-        //! AEndert den Monat des Datums.
-        //! \param monat Der neue Monat.
+        //! Changes the month of the date.
+        //! \param monat The new month.
         DLLEXPORT void setMonat(int monat);
         DLLEXPORT void setMonat(int monat);
-        //! AEndert den Tag des Datums.
-        //! \param tag Der neue Tag.
+        //! Changes the day of the date.
+        //! \param tag The new day.
         DLLEXPORT void setTag(int tag);
         DLLEXPORT void setTag(int tag);
-        //! Addiert zum aktuellen Datum das uebergebene Datum dazu und speichert
-        //! das Ergebnis. \param datum Das zu addierende Datum. Beispiel:
-        //! ( 1.11.1995 ).plusDatum( ( 5.2.7 ) ); neues Datum: 6.1.2003
+        //! Adds the given date to the current date and stores the result.
+        //! \param datum The date to add.
+        //! Example: ( 1.11.1995 ).plusDatum( ( 5.2.7 ) ); new date: 6.1.2003
         DLLEXPORT void plusDatum(Datum* datum);
         DLLEXPORT void plusDatum(Datum* datum);
-        //! Addiert zum aktuellen Datum das uebergebene Datum dazu und speichert
-        //! das Ergebnis. \param jahr Das zu addierende Jahr. \param monat Der
-        //! zu addierende Monat. \param tag Der zu addierende Tag. Beispiel:
-        //! ( 1.11.1995 ).plusDatum( ( 7, 2, 5 ) ); neues Datum: 6.1.2003
+        //! Adds the given date to the current date and stores the result.
+        //! \param jahr The year to add. \param monat The month to add.
+        //! \param tag The day to add.
+        //! Example: ( 1.11.1995 ).plusDatum( 7, 2, 5 ); new date: 6.1.2003
         DLLEXPORT void plusDatum(int jahr, int monat, int tag);
         DLLEXPORT void plusDatum(int jahr, int monat, int tag);
-        //! Addiert zum aktuellen Datum das uebergebene Datum dazu und speichert
-        //! das Ergebnis. \param format Eine Zeichenkette, die angibt in welcher
-        //! Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
-        //! \param datum Eine Zeichenkette, die das zu addierende Datum enthaelt.
-        //! Beispiel: ( 1.11.1995 ).plusDatum( "d.m.y", "5.2.7" ); neues
-        //! Datum: 6.1.2003
+        //! Adds the given date to the current date and stores the result.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day.
+        //! \param datum A string containing the date to add.
+        //! Example: ( 1.11.1995 ).plusDatum( "d.m.y", "5.2.7" );
+        //! new date: 6.1.2003
         DLLEXPORT void plusDatum(const char* format, const char* datum);
         DLLEXPORT void plusDatum(const char* format, const char* datum);
-        //! Addiert zum aktuellen Datum das uebergebene Datum dazu und speichert
-        //! das Ergebnis. \param format Eine Zeichenkette, die angibt in welcher
-        //! Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
-        //! \param datum Ein Text Zeichnung, welches das zu addierende Datum
-        //! enthaelt. Beispiel: ( 1.11.1995 ).plusDatum( "d.m.y", new Text(
-        //! "5.2.7" ) ); neues Datum: 6.1.2003
+        //! Adds the given date to the current date and stores the result.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day.
+        //! \param datum A Text object containing the date to add.
+        //! Example: ( 1.11.1995 ).plusDatum( "d.m.y", new Text(
+        //! "5.2.7" ) ); new date: 6.1.2003
         DLLEXPORT void plusDatum(const char* format, Text* datum);
         DLLEXPORT void plusDatum(const char* format, Text* datum);
-        //! Addiert zum aktuellen Datum das uebergebene Jahr dazu und speichert
-        //! das Ergebnis. \param jahr Das zu addierende Jahr. Beispiel:
-        //! ( 1.11.1995 ).plusJahr( 21 ); neues Datum: 1.11.2016
+        //! Adds the given year to the current date and stores the result.
+        //! \param jahr The year to add.
+        //! Example: ( 1.11.1995 ).plusJahr( 21 ); new date: 1.11.2016
         DLLEXPORT void plusJahr(int jahr);
         DLLEXPORT void plusJahr(int jahr);
-        //! Addiert zum aktuellen Datum den uebergebenen Monat dazu und speichert
-        //! das Ergebnis. \param monat Der zu addierende Monat. Beispiel:
-        //! ( 1.11.1995 ).plusMonat( 13 ); neues Datum: 1.12.1996
+        //! Adds the given month to the current date and stores the result.
+        //! \param monat The month to add.
+        //! Example: ( 1.11.1995 ).plusMonat( 13 ); new date: 1.12.1996
         DLLEXPORT void plusMonat(int monat);
         DLLEXPORT void plusMonat(int monat);
-        //! Addiert zum aktuellen Datum den uebergebenen Tag dazu und speichert
-        //! das Ergebnis. \param tag Der zu addierende Tag. Beispiel: ( 1.1.2000
-        //! ).plusTag( 32 ); neues Datum: 2.2.2000
+        //! Adds the given day to the current date and stores the result.
+        //! \param tag The day to add.
+        //! Example: ( 1.1.2000 ).plusTag( 32 ); new date: 2.2.2000
         DLLEXPORT void plusTag(int tag);
         DLLEXPORT void plusTag(int tag);
-        //! Zieht vom aktuellen Datum das uebergebene Datum ab und speichert das
-        //! Ergebnis. \param datum Das abzuzuehende Datum. Beispiel: ( 2.12.1996
-        //! ).minusDatum( ( 1.1.1 ) ); neues Datum: 1.11.1995
+        //! Subtracts the given date from the current date and stores the result.
+        //! \param datum The date to subtract.
+        //! Example: ( 2.12.1996 ).minusDatum( ( 1.1.1 ) ); new date: 1.11.1995
         DLLEXPORT void minusDatum(Datum* datum);
         DLLEXPORT void minusDatum(Datum* datum);
-        //! Zieht vom aktuellen Datum das uebergebene Datum ab und speichert das
-        //! Ergebnis. \param jahr Das abzuzuehende Jahr. \param monat Der
-        //! abzuzuehende Monat. \param tag Der abzuzuehende Tag. Beispiel:
-        //! ( 2.12.1996 ).minusDatum( 1, 1, 1 ); neues Datum: 1.11.1995
+        //! Subtracts the given date from the current date and stores the result.
+        //! \param jahr The year to subtract. \param monat The month to subtract.
+        //! \param tag The day to subtract.
+        //! Example: ( 2.12.1996 ).minusDatum( 1, 1, 1 ); new date: 1.11.1995
         DLLEXPORT void minusDatum(int jahr, int monat, int tag);
         DLLEXPORT void minusDatum(int jahr, int monat, int tag);
-        //! Zieht vom aktuellen Datum das uebergebene Datum ab und speichert das
-        //! Ergebnis. \param format Eine Zeichenkette, die angibt in welcher
-        //! Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
-        //! \param datum Eine Zeichenkette, die das abzuziehende Datum enthaelt.
-        //! Beispiel: ( 2.12.1996 ).minusDatum( "d.m.y", "1.1.1" ); neues
-        //! Datum: 1.11.1995
+        //! Subtracts the given date from the current date and stores the result.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day.
+        //! \param datum A string containing the date to subtract.
+        //! Example: ( 2.12.1996 ).minusDatum( "d.m.y", "1.1.1" );
+        //! new date: 1.11.1995
         DLLEXPORT void minusDatum(const char* format, const char* datum);
         DLLEXPORT void minusDatum(const char* format, const char* datum);
-        //! Zieht vom aktuellen Datum das uebergebene Datum ab und speichert das
-        //! Ergebnis. \param format Eine Zeichenkette, die angibt in welcher
-        //! Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
-        //! \param datum Ein Text Zeichnung, welches das abzuziehende Datum
-        //! enthaelt. Beispiel: ( 2.12.1996 ).minusDatum( "d.m.y", new Text(
-        //! "1.1.1" ) ); neues Datum: 1.11.1995
+        //! Subtracts the given date from the current date and stores the result.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day.
+        //! \param datum A Text object containing the date to subtract.
+        //! Example: ( 2.12.1996 ).minusDatum( "d.m.y", new Text(
+        //! "1.1.1" ) ); new date: 1.11.1995
         DLLEXPORT void minusDatum(const char* format, Text* datum);
         DLLEXPORT void minusDatum(const char* format, Text* datum);
-        //! Zieht vom aktuellen Datum das uebergebene Jahr ab und speichert das
-        //! Ergebnis. \param jahr Das abzuzuehende Jahr. Beispiel: ( 1.11.1996
-        //! ).minusJahr( 1 ); neues Datum: 1.11.1995
+        //! Subtracts the given year from the current date and stores the result.
+        //! \param jahr The year to subtract.
+        //! Example: ( 1.11.1996 ).minusJahr( 1 ); new date: 1.11.1995
         DLLEXPORT void minusJahr(int jahr);
         DLLEXPORT void minusJahr(int jahr);
-        //! Zieht vom aktuellen Datum den uebergebenen Monat ab und speichert das
-        //! Ergebnis. \param monat Der abzuzuehende Monat. Beispiel: ( 1.12.1996
-        //! ).minusMonat( 13 ); neues Datum: 1.11.1995
+        //! Subtracts the given month from the current date and stores the result.
+        //! \param monat The month to subtract.
+        //! Example: ( 1.12.1996 ).minusMonat( 13 ); new date: 1.11.1995
         DLLEXPORT void minusMonat(int monat);
         DLLEXPORT void minusMonat(int monat);
-        //! Zieht vom aktuellen Datum den uebergebenen Tag ab und speichert das
-        //! Ergebnis. \param monat Der abzuzuehende Tag. Beispiel: ( 5.2.2016
-        //! ).minusMonat( 11 ); neues Datum: 25.1.2016
+        //! Subtracts the given day from the current date and stores the result.
+        //! \param tag The day to subtract.
+        //! Example: ( 5.2.2016 ).minusTag( 11 ); new date: 25.1.2016
         DLLEXPORT void minusTag(int tag);
         DLLEXPORT void minusTag(int tag);
 
 
-        //! gibt das Jahr zurueck.
+        //! Returns the year.
         DLLEXPORT int getJahr() const;
         DLLEXPORT int getJahr() const;
-        //! gibt der Monat zurueck.
+        //! Returns the month.
         DLLEXPORT int getMonat() const;
         DLLEXPORT int getMonat() const;
-        //! gibt der Tag zurueck.
+        //! Returns the day.
         DLLEXPORT int getTag() const;
         DLLEXPORT int getTag() const;
-        //! Gibt das Datum als Text Zeichnung zurueck.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum zurueckgegeben werden soll. y=Jahr, m=Monat, d=Tag. Beispiel:
-        //! ( 1.11.1995 ).getDatum( "y-m-d" ); return: "1995-11-1"
+        //! Returns the date as a Text object.
+        //! \param format A string specifying the format of the
+        //! returned date. y=year, m=month, d=day.
+        //! Example: ( 1.11.1995 ).getDatum( "y-m-d" ); return: "1995-11-1"
         DLLEXPORT Text* getDatum(const char* format) const;
         DLLEXPORT Text* getDatum(const char* format) const;
-        //! Prueft, ob das Datum gleich dem uebergebenen Datum ist.
-        //! \param datum das zu pruefende Datum.
-        //! \return (true), wenn das uebergebene Datum dem gespeicherten
-        //! entspricht. (false) sonnst.
+        //! Checks if the date equals the given date.
+        //! \param datum The date to check.
+        //! \return (true) if the given date matches the stored one.
+        //! (false) otherwise.
         DLLEXPORT bool istGleich(Datum* datum) const;
         DLLEXPORT bool istGleich(Datum* datum) const;
-        //! Prueft, ob das Datum gleich dem uebergebenen Datum ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Eine Zeichenkette, die das zu ueberpruefende Datum enthaelt. \return
-        //! (true), wenn das uebergebene Datum dem gespeicherten entspricht.
-        //! (false) sonnst. Beispiel: ( 1.11.1995 ).istGleich( "y-m-d",
-        //! "1995-11-1" ); return: true
+        //! Checks if the date equals the given date.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A string containing the date to check. \return
+        //! (true) if the given date matches the stored one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istGleich( "y-m-d", "1995-11-1" ); return: true
         DLLEXPORT bool istGleich(const char* format, const char* datum) const;
         DLLEXPORT bool istGleich(const char* format, const char* datum) const;
-        //! Prueft, ob das Datum gleich dem uebergebenen Datum ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Ein Text Zeichnung, welches das zu ueberpruefende Datum enthaelt.
-        //! \return (true), wenn das uebergebene Datum dem gespeicherten
-        //! entspricht. (false) sonnst. Beispiel: ( 1.11.1995 ).istGleich(
-        //! "y-m-d", new Text( "1995-11-1" ) ); return: true
+        //! Checks if the date equals the given date.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A Text object containing the date to check.
+        //! \return (true) if the given date matches the stored one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istGleich( "y-m-d", new Text( "1995-11-1" ) ); return: true
         DLLEXPORT bool istGleich(const char* format, Text* datum) const;
         DLLEXPORT bool istGleich(const char* format, Text* datum) const;
-        //! Prueft, ob das Datum gleich dem uebergebenen Datum ist.
-        //! \param jahr Das Jahr des zu ueberpruefenden Datums.
-        //! \param monat Der Monat des zu ueberpruefenden Datums.
-        //! \param tag Der Tag des zu ueberpruefenden Datums.
-        //! \return (true), wenn das uebergebene Datum dem gespeicherten
-        //! entspricht. (false) sonnst. Beispiel: ( 1.11.1995 ).istGleich( 1995,
-        //! 11, 1 ); return: true
+        //! Checks if the date equals the given date.
+        //! \param jahr The year of the date to check.
+        //! \param monat The month of the date to check.
+        //! \param tag The day of the date to check.
+        //! \return (true) if the given date matches the stored one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istGleich( 1995, 11, 1 ); return: true
         DLLEXPORT bool istGleich(int jahr, int monat, int tag) const;
         DLLEXPORT bool istGleich(int jahr, int monat, int tag) const;
-        //! Prueft, ob das Jahr gleich dem uebergebenen Jahr ist.
-        //! \param jahr Das zu pruefende Jahr.
-        //! \return (true), wenn das uebergebene Jahr dem gespeicherten
-        //! entspricht. (false) sonnst.
+        //! Checks if the year equals the given year.
+        //! \param jahr The year to check.
+        //! \return (true) if the given year matches the stored one.
+        //! (false) otherwise.
         DLLEXPORT bool jahrGleich(int jahr) const;
         DLLEXPORT bool jahrGleich(int jahr) const;
-        //! Prueft, ob der Monat gleich dem uebergebenen Monat ist.
-        //! \param monat Der zu pruefende Monat.
-        //! \return (true), wenn der uebergebene Monat dem gespeicherten
-        //! entspricht. (false) sonnst.
+        //! Checks if the month equals the given month.
+        //! \param monat The month to check.
+        //! \return (true) if the given month matches the stored one.
+        //! (false) otherwise.
         DLLEXPORT bool monatGleich(int monat) const;
         DLLEXPORT bool monatGleich(int monat) const;
-        //! Prueft, ob der Tag gleich dem uebergebenen Tag ist.
-        //! \param tag Der zu pruefende Tag.
-        //! \return (true), wenn der uebergebene Tag dem gespeicherten
-        //! entspricht. (false) sonnst.
+        //! Checks if the day equals the given day.
+        //! \param tag The day to check.
+        //! \return (true) if the given day matches the stored one.
+        //! (false) otherwise.
         DLLEXPORT bool tagGleich(int tag) const;
         DLLEXPORT bool tagGleich(int tag) const;
-        //! Prueft, ob das gespeicherte Datum kleiner als das uebergebene ist.
-        //! \param datum Das zu pruefende Datum.
-        //! \return (true), wenn das gespeicherte Datum vor dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istKleiner(
-        //! ( 23.1.2016 ) ); return true
+        //! Checks if the stored date is less than the given one.
+        //! \param datum The date to check.
+        //! \return (true) if the stored date is before the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istKleiner( ( 23.1.2016 ) ); return true
         DLLEXPORT bool istKleiner(Datum* datum) const;
         DLLEXPORT bool istKleiner(Datum* datum) const;
-        //! Prueft, ob das gespeicherte Datum kleiner als das uebergebene ist.
-        //! \param jahr Das Jahr des zu pruefenden Datums.
-        //! \param monat Der Monat des zu pruefenden Datums.
-        //! \param tag Der Tag des zu pruefenden Datums.
-        //! \return (true), wenn das gespeicherte Datum vor dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istKleiner( 2016, 1,
-        //! 23 ); return true
+        //! Checks if the stored date is less than the given one.
+        //! \param jahr The year of the date to check.
+        //! \param monat The month of the date to check.
+        //! \param tag The day of the date to check.
+        //! \return (true) if the stored date is before the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istKleiner( 2016, 1, 23 ); return true
         DLLEXPORT bool istKleiner(int jahr, int monat, int tag) const;
         DLLEXPORT bool istKleiner(int jahr, int monat, int tag) const;
-        //! Prueft, ob das gespeicherte Datum kleiner als das uebergebene ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Eine Zeichenkette, die das zu ueberpruefende Datum enthaelt. \return
-        //! (true), wenn das gespeicherte Datum vor dem uebergebenen liegt.
-        //! (false) sonnst. Beispiel: ( 1.11.1995 ).istKleiner( "y, m, d",
-        //! "2016, 1, 23" ); return true
+        //! Checks if the stored date is less than the given one.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A string containing the date to check. \return
+        //! (true) if the stored date is before the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istKleiner( "y, m, d", "2016, 1, 23" ); return true
         DLLEXPORT bool istKleiner(const char* format, const char* datum) const;
         DLLEXPORT bool istKleiner(const char* format, const char* datum) const;
-        //! Prueft, ob das gespeicherte Datum kleiner als das uebergebene ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Ein Text Zeichnung, welches das zu ueberpruefende Datum enthaelt.
-        //! \return (true), wenn das gespeicherte Datum vor dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istKleiner( "y, m,
-        //! d", new Text( "2016, 1, 23" ) ); return true
+        //! Checks if the stored date is less than the given one.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A Text object containing the date to check.
+        //! \return (true) if the stored date is before the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istKleiner( "y, m, d", new Text( "2016, 1, 23" ) ); return true
         DLLEXPORT bool istKleiner(const char* format, Text* datum) const;
         DLLEXPORT bool istKleiner(const char* format, Text* datum) const;
-        //! Prueft, ob das gespeicherte Datum groesser als das uebergebene ist.
-        //! \param datum Das zu pruefende Datum.
-        //! \return (true), wenn das gespeicherte Datum hinter dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istGroesser(
-        //! ( 23.1.2016 ) ); return false
+        //! Checks if the stored date is greater than the given one.
+        //! \param datum The date to check.
+        //! \return (true) if the stored date is after the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istLater( ( 23.1.2016 ) ); return false
         DLLEXPORT bool istLater(Datum* datum) const;
         DLLEXPORT bool istLater(Datum* datum) const;
-        //! Prueft, ob das gespeicherte Datum groesser als das uebergebene ist.
-        //! \param jahr Das Jahr des zu pruefenden Datums.
-        //! \param monat Der Monat des zu pruefenden Datums.
-        //! \param tag Der Tag des zu pruefenden Datums.
-        //! \return (true), wenn das gespeicherte Datum hinter dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istGroesser( 2016, 1,
-        //! 23 ); return false
+        //! Checks if the stored date is greater than the given one.
+        //! \param jahr The year of the date to check.
+        //! \param monat The month of the date to check.
+        //! \param tag The day of the date to check.
+        //! \return (true) if the stored date is after the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istLater( 2016, 1, 23 ); return false
         DLLEXPORT bool istLater(int jahr, int monat, int tag) const;
         DLLEXPORT bool istLater(int jahr, int monat, int tag) const;
-        //! Prueft, ob das gespeicherte Datum groesser als das uebergebene ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Eine Zeichenkette, die das zu ueberpruefende Datum enthaelt. \return
-        //! (true), wenn das gespeicherte Datum hinter dem uebergebenen liegt.
-        //! (false) sonnst. Beispiel: ( 1.11.1995 ).istGroesser( "y, m, d", "2016,
-        //! 1, 23" ); return false
+        //! Checks if the stored date is greater than the given one.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A string containing the date to check. \return
+        //! (true) if the stored date is after the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istLater( "y, m, d", "2016, 1, 23" ); return false
         DLLEXPORT bool istLater(const char* format, const char* datum) const;
         DLLEXPORT bool istLater(const char* format, const char* datum) const;
-        //! Prueft, ob das gespeicherte Datum groesser als das uebergebene ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form das
-        //! Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag. \param datum
-        //! Ein Text Zeichnung, welches das zu ueberpruefende Datum enthaelt.
-        //! \return (true), wenn das gespeicherte Datum hinter dem uebergebenen
-        //! liegt. (false) sonnst. Beispiel: ( 1.11.1995 ).istGroesser( "y, m, d",
-        //! new Text( "2016, 1, 23" ) ) ); return true
+        //! Checks if the stored date is greater than the given one.
+        //! \param format A string specifying the format of the
+        //! date in (datum). y=year, m=month, d=day. \param datum
+        //! A Text object containing the date to check.
+        //! \return (true) if the stored date is after the given one.
+        //! (false) otherwise.
+        //! Example: ( 1.11.1995 ).istLater( "y, m, d", new Text( "2016, 1, 23" ) ); return true
         DLLEXPORT bool istLater(const char* format, Text* datum) const;
         DLLEXPORT bool istLater(const char* format, Text* datum) const;
     };
     };
 
 
-    //! Diese Klasse vereint die beiden Klassen Datum und Uhrzeit und speichert
-    //! somit einen Zeitstempel mit Jahr, Monat, Tag, Stunde, Minute und Sekunde
+    //! This class combines the Datum and Uhrzeit classes and thus stores
+    //! a timestamp with year, month, day, hour, minute and second
     class Zeit : public virtual ReferenceCounter
     class Zeit : public virtual ReferenceCounter
     {
     {
     private:
     private:
@@ -523,250 +521,247 @@ namespace Framework
         Uhrzeit* uhrzeit;
         Uhrzeit* uhrzeit;
 
 
     public:
     public:
-        //! Erzeugt eine neue Zeit mit den Standartwerten 0.0.0 0:0:0.
+        //! Creates a new Zeit with the default values 0.0.0 0:0:0.
         DLLEXPORT Zeit();
         DLLEXPORT Zeit();
-        //! Erzeugt eine neue Zeit mit den vergangenen sekunden seit 1970.
+        //! Creates a new Zeit with the elapsed seconds since 1970.
         DLLEXPORT Zeit(__int64 timestamp);
         DLLEXPORT Zeit(__int64 timestamp);
-        //! Loescht das aktuelle Zeichnung.
+        //! Deletes the current object.
         DLLEXPORT ~Zeit();
         DLLEXPORT ~Zeit();
-        //! AEndert die gespeicherte Zeit durch kopieren der Werte aus (zeit).
-        //! \param zeit Die neue Zeit.
+        //! Changes the stored time by copying the values from (zeit).
+        //! \param zeit The new time.
         DLLEXPORT void setZeit(Zeit* zeit);
         DLLEXPORT void setZeit(Zeit* zeit);
-        //! AEndert die gespeicherte Zeit.
-        //! \param jahr Das neue Jahr.
-        //! \param monat Der neue Monat.
-        //! \param tag Det neue Tag.
-        //! \param stunde Die neue Stunde.
-        //! \param minute Die neue Minute.
-        //! \param sekunde Die neue Sekunde.
+        //! Changes the stored time.
+        //! \param jahr The new year.
+        //! \param monat The new month.
+        //! \param tag The new day.
+        //! \param stunde The new hour.
+        //! \param minute The new minute.
+        //! \param sekunde The new second.
         DLLEXPORT void setZeit(
         DLLEXPORT void setZeit(
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
-        //! AEndert die gespeicherte Zeit.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die neue
-        //! Zeit enthaelt. Beispiel: setZeit( "y-m-d h:i:s", "2016-1-25 21:59:30"
-        //! );
+        //! Changes the stored time.
+        //! \param format A string specifying the format of the new
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the new
+        //! time. Example: setZeit( "y-m-d h:i:s", "2016-1-25 21:59:30" );
         DLLEXPORT void setZeit(const char* format, const char* zeit);
         DLLEXPORT void setZeit(const char* format, const char* zeit);
-        //! AEndert die gespeicherte Zeit.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Ein Text Zeichnung, welches die
-        //! neue Zeit enthaelt. Beispiel: setZeit( "y-m-d h:i:s", new Text(
+        //! Changes the stored time.
+        //! \param format A string specifying the format of the new
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! new time. Example: setZeit( "y-m-d h:i:s", new Text(
         //! "2016-1-25 21:59:30" ) );
         //! "2016-1-25 21:59:30" ) );
         DLLEXPORT void setZeit(const char* format, Text* zeit);
         DLLEXPORT void setZeit(const char* format, Text* zeit);
-        //! AEndert das gespeicherte Jahr.
-        //! \param jahr Das neue Jahr.
+        //! Changes the stored year.
+        //! \param jahr The new year.
         DLLEXPORT void setJahr(int jahr);
         DLLEXPORT void setJahr(int jahr);
-        //! AEndert den gespeicherten Monat.
-        //! \param monat Der neue Monat.
+        //! Changes the stored month.
+        //! \param monat The new month.
         DLLEXPORT void setMonat(int monat);
         DLLEXPORT void setMonat(int monat);
-        //! AEndert den gespeicherten Tag.
-        //! \param tag Der neue Tag.
+        //! Changes the stored day.
+        //! \param tag The new day.
         DLLEXPORT void setTag(int tag);
         DLLEXPORT void setTag(int tag);
-        //! AEndert die gespeicherte Stunde.
-        //! \param stunde Die neue Stunde.
+        //! Changes the stored hour.
+        //! \param stunde The new hour.
         DLLEXPORT void setStunde(int stunde);
         DLLEXPORT void setStunde(int stunde);
-        //! AEndert die gespeicherte Minute.
-        //! \param minute Die neue Minute.
+        //! Changes the stored minute.
+        //! \param minute The new minute.
         DLLEXPORT void setMinute(int minute);
         DLLEXPORT void setMinute(int minute);
-        //! AEndert die gespeicherte Sekunde.
-        //! \param sekunde Die neue Sekunde.
+        //! Changes the stored second.
+        //! \param sekunde The new second.
         DLLEXPORT void setSekunde(int sekunde);
         DLLEXPORT void setSekunde(int sekunde);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param zeit Die zu Addierende Zeit.
+        //! Adds the given time and stores the result.
+        //! \param zeit The time to add.
         DLLEXPORT void plusZeit(Zeit* zeit);
         DLLEXPORT void plusZeit(Zeit* zeit);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param jahr Das zu addierende Jahr.
-        //! \param monat Der zu addierende Monat.
-        //! \param tag Der zu addierende Tag.
-        //! \param stunde Die zu addierende Stunde.
-        //! \param minute Die zu addierende Minute.
-        //! \param sekunde Die zu addierende Sekunde.
+        //! Adds the given time and stores the result.
+        //! \param jahr The year to add.
+        //! \param monat The month to add.
+        //! \param tag The day to add.
+        //! \param stunde The hour to add.
+        //! \param minute The minute to add.
+        //! \param sekunde The second to add.
         DLLEXPORT void plusZeit(
         DLLEXPORT void plusZeit(
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die zu
-        //! addierende Zeit enthaelt.
+        //! Adds the given time and stores the result.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the
+        //! time to add.
         DLLEXPORT void plusZeit(const char* format, const char* zeit);
         DLLEXPORT void plusZeit(const char* format, const char* zeit);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Ein Text Zeichnung, welches die zu
-        //! addierende Zeit enthaelt.
+        //! Adds the given time and stores the result.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! time to add.
         DLLEXPORT void plusZeit(const char* format, Text* zeit);
         DLLEXPORT void plusZeit(const char* format, Text* zeit);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param jahr Das zu addierende Jahr.
+        //! Adds the given time and stores the result.
+        //! \param jahr The year to add.
         DLLEXPORT void plusJahr(int jahr);
         DLLEXPORT void plusJahr(int jahr);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param monat Der zu addierende Monat.
+        //! Adds the given time and stores the result.
+        //! \param monat The month to add.
         DLLEXPORT void plusMonat(int monat);
         DLLEXPORT void plusMonat(int monat);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param tag Der zu addierende Tag.
+        //! Adds the given time and stores the result.
+        //! \param tag The day to add.
         DLLEXPORT void plusTag(int tag);
         DLLEXPORT void plusTag(int tag);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param stunde Die zu addierende Stunde.
+        //! Adds the given time and stores the result.
+        //! \param stunde The hour to add.
         DLLEXPORT void plusStunde(__int64 stunde);
         DLLEXPORT void plusStunde(__int64 stunde);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param minute Die zu addierende Minute.
+        //! Adds the given time and stores the result.
+        //! \param minute The minute to add.
         DLLEXPORT void plusMinute(__int64 minute);
         DLLEXPORT void plusMinute(__int64 minute);
-        //! Addiert die uebergebene Zeit und speichert das Ergebnis.
-        //! \param sekunde Die zu addierende Sekunde.
+        //! Adds the given time and stores the result.
+        //! \param sekunde The second to add.
         DLLEXPORT void plusSekunde(__int64 sekunde);
         DLLEXPORT void plusSekunde(__int64 sekunde);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param zeit Die abzuziehende Zeit.
+        //! Subtracts the given time and stores the result.
+        //! \param zeit The time to subtract.
         DLLEXPORT void minusZeit(Zeit* zeit);
         DLLEXPORT void minusZeit(Zeit* zeit);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param jahr Das abzuziehende Jahr.
-        //! \param monat Der abzuziehende Monat.
-        //! \param tag Der abzuziehende Tag.
-        //! \param stunde Die abzuziehende Stunde.
-        //! \param minute Die abzuziehende Minute.
-        //! \param sekunde Die abzuziehende Sekunde.
+        //! Subtracts the given time and stores the result.
+        //! \param jahr The year to subtract.
+        //! \param monat The month to subtract.
+        //! \param tag The day to subtract.
+        //! \param stunde The hour to subtract.
+        //! \param minute The minute to subtract.
+        //! \param sekunde The second to subtract.
         DLLEXPORT void minusZeit(
         DLLEXPORT void minusZeit(
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
             int jahr, int monat, int tag, int stunde, int minute, int sekunde);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die
-        //! abzuziehende Zeit enthaelt.
+        //! Subtracts the given time and stores the result.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the
+        //! time to subtract.
         DLLEXPORT void minusZeit(const char* format, const char* zeit);
         DLLEXPORT void minusZeit(const char* format, const char* zeit);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Ein Text Zeichnung, welches die
-        //! abzuziehende Zeit enthaelt.
+        //! Subtracts the given time and stores the result.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! time to subtract.
         DLLEXPORT void minusZeit(const char* format, Text* zeit);
         DLLEXPORT void minusZeit(const char* format, Text* zeit);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param jahr Das abzuziehende Jahr.
+        //! Subtracts the given time and stores the result.
+        //! \param jahr The year to subtract.
         DLLEXPORT void minusJahr(int jahr);
         DLLEXPORT void minusJahr(int jahr);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param monat Der abzuziehende Monat.
+        //! Subtracts the given time and stores the result.
+        //! \param monat The month to subtract.
         DLLEXPORT void minusMonat(int monat);
         DLLEXPORT void minusMonat(int monat);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param tag Der abzuziehende Tag.
+        //! Subtracts the given time and stores the result.
+        //! \param tag The day to subtract.
         DLLEXPORT void minusTag(int tag);
         DLLEXPORT void minusTag(int tag);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param stunde Die abzuziehende Stunde.
+        //! Subtracts the given time and stores the result.
+        //! \param stunde The hour to subtract.
         DLLEXPORT void minusStunde(__int64 stunde);
         DLLEXPORT void minusStunde(__int64 stunde);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param minute Die abzuziehende Minute.
+        //! Subtracts the given time and stores the result.
+        //! \param minute The minute to subtract.
         DLLEXPORT void minusMinute(__int64 minute);
         DLLEXPORT void minusMinute(__int64 minute);
-        //! Zieht die uebergebene Zeit ab und speichert das Ergebnis.
-        //! \param sekunde Die abzuziehende Sekunde.
+        //! Subtracts the given time and stores the result.
+        //! \param sekunde The second to subtract.
         DLLEXPORT void minusSekunde(__int64 sekunde);
         DLLEXPORT void minusSekunde(__int64 sekunde);
-        //! Gibt die gespeicherte Zeit als Text zurueck.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit zurueckgegeben werden soll. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde.
+        //! Returns the stored time as text.
+        //! \param format A string specifying the format of the
+        //! returned time. y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second.
         DLLEXPORT Text* getZeit(const char* format) const;
         DLLEXPORT Text* getZeit(const char* format) const;
-        //! UEberprueft, ob die Zeit gleich der uebergebenen Zeit ist.
-        //! \param zeit die zu ueberpruefende Zeit.
-        //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
+        //! Checks if the time equals the given time.
+        //! \param zeit The time to check.
+        //! \return (true) if the times are equal. (false) otherwise.
         DLLEXPORT bool istGleich(Zeit* zeit) const;
         DLLEXPORT bool istGleich(Zeit* zeit) const;
-        //! UEberprueft, ob die Zeit gleich der uebergebenen Zeit ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die zu
-        //! ueberpruefende Zeit enthaelt. \return (true), wenn die Zeiten gleich
-        //! sind. (false) sonst.
+        //! Checks if the time equals the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the
+        //! time to check. \return (true) if the times are equal.
+        //! (false) otherwise.
         DLLEXPORT bool istGleich(const char* format, const char* zeit) const;
         DLLEXPORT bool istGleich(const char* format, const char* zeit) const;
-        //! UEberprueft, ob die Zeit gleich der uebergebenen Zeit ist.
-        //! \param format Eine Zeichenkette, die angibt in welcher Form die neue
-        //! Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Text Zeichnung, welches die zu
-        //! ueberpruefende Zeit enthaelt. \return (true), wenn die Zeiten gleich
-        //! sind. (false) sonst.
+        //! Checks if the time equals the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! time to check. \return (true) if the times are equal.
+        //! (false) otherwise.
         DLLEXPORT bool istGleich(const char* format, Text* zeit) const;
         DLLEXPORT bool istGleich(const char* format, Text* zeit) const;
-        //! UEberprueft, ob die Zeit gleich der uebergebenen Zeit ist.
-        //! \param jahr Das zu ueberpruefende Jahr.
-        //! \param monat Der zu ueberpruefende Monat.
-        //! \param tag Der zu ueberpruefende Tag.
-        //! \param stunde Die zu ueberpruefende Stunde.
-        //! \param minute Die zu ueberpruefende Minute.
-        //! \param sekunde Die zu ueberpruefende Sekunde.
-        //! \return (true), wenn die Zeiten gleich sind. (false) sonst.
+        //! Checks if the time equals the given time.
+        //! \param jahr The year to check.
+        //! \param monat The month to check.
+        //! \param tag The day to check.
+        //! \param stunde The hour to check.
+        //! \param minute The minute to check.
+        //! \param sekunde The second to check.
+        //! \return (true) if the times are equal. (false) otherwise.
         DLLEXPORT bool istGleich(int jahr,
         DLLEXPORT bool istGleich(int jahr,
             int monat,
             int monat,
             int tag,
             int tag,
             int stunde,
             int stunde,
             int minute,
             int minute,
             int sekunde) const;
             int sekunde) const;
-        //! Gibt das Zeichnung zurueck, in dem das Datum gespeichert wird mit
-        //! erhoehtem Reference Counter.
+        //! Returns the object storing the date with increased reference counter.
         DLLEXPORT Datum* getDatum() const;
         DLLEXPORT Datum* getDatum() const;
-        //! Gibt das Zeichnung zurueck, in dem das Datum gespeichert wird ohne
-        //! erhoehten Reference Counter.
+        //! Returns the object storing the date without increased reference counter.
         DLLEXPORT Datum* zDatum() const;
         DLLEXPORT Datum* zDatum() const;
-        //! Gibt das Zeichnung zurueck, in dem die Uhrzeit gespeichert wird mit
-        //! erhoehtem Reference Counter.
+        //! Returns the object storing the time of day with increased reference counter.
         DLLEXPORT Uhrzeit* getUhrzeit() const;
         DLLEXPORT Uhrzeit* getUhrzeit() const;
-        //! Gibt das Zeichnung zurueck, in dem die uhrzeit gespeichert wird ohne
-        //! erhoehten Reference Counter.
+        //! Returns the object storing the time of day without increased reference counter.
         DLLEXPORT Uhrzeit* zUhrzeit() const;
         DLLEXPORT Uhrzeit* zUhrzeit() const;
-        //! UEberprueft, ob die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. \param zeit Die zu ueberpruefende Zeit. \return (true) wenn die
-        //! gespeicherte Zeit vor der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is less than the given time.
+        //! \param zeit The time to check. \return (true)
+        //! if the stored time is before the given time. (false)
+        //! otherwise.
         DLLEXPORT bool istKleiner(Zeit* zeit) const;
         DLLEXPORT bool istKleiner(Zeit* zeit) const;
-        //! UEberprueft, ob die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. \param jahr Das zu ueberpruefende Jahr. \param monat Der zu
-        //! ueberpruefende Monat. \param tag Der zu ueberpruefende Tag. \param
-        //! stunde Die zu ueberpruefende Stunde. \param minute Die zu ueberpruefende
-        //! Minute. \param sekunde Die zu ueberpruefende Sekunde. \return (true)
-        //! wenn die gespeicherte Zeit vor der uebergebenen Zeit liegt. (false)
-        //! sonnst.
+        //! Checks if the stored time is less than the given time.
+        //! \param jahr The year to check. \param monat The
+        //! month to check. \param tag The day to check.
+        //! \param stunde The hour to check. \param minute The
+        //! minute to check. \param sekunde The second to check.
+        //! \return (true) if the stored time is before the given time.
+        //! (false) otherwise.
         DLLEXPORT bool istKleiner(int jahr,
         DLLEXPORT bool istKleiner(int jahr,
             int monat,
             int monat,
             int tag,
             int tag,
             int stunde,
             int stunde,
             int minute,
             int minute,
             int sekunde) const;
             int sekunde) const;
-        //! UEberprueft, ob die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. \param format Eine Zeichenkette, die angibt in welcher Form die
-        //! neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die zu
-        //! ueberpruefende Zeit enthaelt. \return (true) wenn die gespeicherte Zeit
-        //! vor der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is less than the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the
+        //! time to check. \return (true) if the stored time is before
+        //! the given time. (false) otherwise.
         DLLEXPORT bool istKleiner(const char* format, const char* zeit) const;
         DLLEXPORT bool istKleiner(const char* format, const char* zeit) const;
-        //! UEberprueft, ob die gespeicherte Zeit kleiner als die uebergebene Zeit
-        //! ist. \param format Eine Zeichenkette, die angibt in welcher Form die
-        //! neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Text Zeichnung, welches die zu
-        //! ueberpruefende Zeit enthaelt. \return (true) wenn die gespeicherte Zeit
-        //! vor der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is less than the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! time to check. \return (true) if the stored time is before
+        //! the given time. (false) otherwise.
         DLLEXPORT bool istKleiner(const char* format, Text* zeit) const;
         DLLEXPORT bool istKleiner(const char* format, Text* zeit) const;
-        //! UEberprueft, ob die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. \param zeit Die zu ueberpruefende Zeit. \return (true) wenn die
-        //! gespeicherte Zeit nach der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is greater than the given time.
+        //! \param zeit The time to check. \return (true)
+        //! if the stored time is after the given time. (false)
+        //! otherwise.
         DLLEXPORT bool istLater(Zeit* zeit) const;
         DLLEXPORT bool istLater(Zeit* zeit) const;
-        //! UEberprueft, ob die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. \param jahr Das zu ueberpruefende Jahr. \param monat Der zu
-        //! ueberpruefende Monat. \param tag Der zu ueberpruefende Tag. \param
-        //! stunde Die zu ueberpruefende Stunde. \param minute Die zu ueberpruefende
-        //! Minute. \param sekunde Die zu ueberpruefende Sekunde. \return (true)
-        //! wenn die gespeicherte Zeit nach der uebergebenen Zeit liegt. (false)
-        //! sonnst.
+        //! Checks if the stored time is greater than the given time.
+        //! \param jahr The year to check. \param monat The
+        //! month to check. \param tag The day to check.
+        //! \param stunde The hour to check. \param minute The
+        //! minute to check. \param sekunde The second to check.
+        //! \return (true) if the stored time is after the given time.
+        //! (false) otherwise.
         DLLEXPORT bool istLater(int jahr,
         DLLEXPORT bool istLater(int jahr,
             int monat,
             int monat,
             int tag,
             int tag,
             int stunde,
             int stunde,
             int minute,
             int minute,
             int sekunde) const;
             int sekunde) const;
-        //! UEberprueft, ob die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. \param format Eine Zeichenkette, die angibt in welcher Form die
-        //! neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Zeichenkette, die die zu
-        //! ueberpruefende Zeit enthaelt. \return (true) wenn die gespeicherte Zeit
-        //! nach der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is greater than the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A string containing the
+        //! time to check. \return (true) if the stored time is after
+        //! the given time. (false) otherwise.
         DLLEXPORT bool istLater(const char* format, const char* zeit) const;
         DLLEXPORT bool istLater(const char* format, const char* zeit) const;
-        //! UEberprueft, ob die gespeicherte Zeit groesser als die uebergebene Zeit
-        //! ist. \param format Eine Zeichenkette, die angibt in welcher Form die
-        //! neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde,
-        //! i=Minute, s=Sekunde. \param zeit Eine Text Zeichnung, welches die zu
-        //! ueberpruefende Zeit enthaelt. \return (true) wenn die gespeicherte Zeit
-        //! nach der uebergebenen Zeit liegt. (false) sonnst.
+        //! Checks if the stored time is greater than the given time.
+        //! \param format A string specifying the format of the
+        //! time in (zeit). y=year, m=month, d=day, h=hour,
+        //! i=minute, s=second. \param zeit A Text object containing the
+        //! time to check. \return (true) if the stored time is after
+        //! the given time. (false) otherwise.
         DLLEXPORT bool istLater(const char* format, Text* zeit) const;
         DLLEXPORT bool istLater(const char* format, Text* zeit) const;
     };
     };