[Libreoffice-commits] core.git: sw/source

Stefan Ring stefanrin at gmail.com
Tue Feb 25 13:08:31 PST 2014


 sw/source/filter/ww1/fltshell.cxx |   10 -
 sw/source/filter/ww1/w1class.cxx  |   97 +++++-------
 sw/source/filter/ww1/w1class.hxx  |  171 ++++++++++-----------
 sw/source/filter/ww1/w1filter.cxx |  299 +++++++++++++++++---------------------
 sw/source/filter/ww1/w1par.cxx    |   39 +---
 sw/source/filter/ww1/w1struct.hxx |    4 
 6 files changed, 287 insertions(+), 333 deletions(-)

New commits:
commit 5fce5642b65459fe165bcab5fd7d9217d3aee4ed
Author: Stefan Ring <stefanrin at gmail.com>
Date:   Tue Feb 25 22:01:50 2014 +0100

    fdo#39468 Translate German comments: sw/source/filter/ww1
    
    Change-Id: I5c6ae4f1692f6ed8d1792417cb594174a35ca8fa
    Reviewed-on: https://gerrit.libreoffice.org/8323
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/filter/ww1/fltshell.cxx b/sw/source/filter/ww1/fltshell.cxx
index 8a1cc74..672cfbf 100644
--- a/sw/source/filter/ww1/fltshell.cxx
+++ b/sw/source/filter/ww1/fltshell.cxx
@@ -1310,13 +1310,13 @@ const SfxPoolItem& SwFltOutDoc::GetAttr(sal_uInt16 nWhich)
 
 const SfxPoolItem& SwFltFormatCollection::GetAttr(sal_uInt16 nWhich)
 {
-    return GetColl()->GetFmtAttr(nWhich);   // mit Parents
+    return GetColl()->GetFmtAttr(nWhich);   // with Parents
 }
 
-// GetNodeOrStyAttr holt Attribute fuer Toggle- und Modify-Attribute:
-// Bei Formatdefinitionen aus dem altuellen Style mit Parents
-// sonst aus dem Node mit Parents
-// Im Stack wird nicht nachgesehen
+// GetNodeOrStyAttr fetches attributes for toggle and modify attributes:
+// For format definitions, the current style with parents is
+// consulted, otherwise the node with parents.
+// The stack is never used.
 const SfxPoolItem& SwFltOutDoc::GetNodeOrStyAttr(sal_uInt16 nWhich)
 {
     SwCntntNode * pNd = pPaM->GetPoint()->nNode.GetNode().GetCntntNode();
diff --git a/sw/source/filter/ww1/w1class.cxx b/sw/source/filter/ww1/w1class.cxx
index 7bdb397..799d50b 100644
--- a/sw/source/filter/ww1/w1class.cxx
+++ b/sw/source/filter/ww1/w1class.cxx
@@ -349,7 +349,7 @@ Ww1Fonts::Ww1Fonts(Ww1Fib& rInFib, sal_uLong nFieldFlgs)
                         break;
                     nMax++;
                     nLeft -= nNextSiz;
-                    if(nLeft < 1)           // naechste Laenge muss gelesen werden koennen
+                    if(nLeft < 1)           // need to be able to read next length
                         break;
                     p = (W1_FFN *)(((char*)p) + nNextSiz);
                 }
@@ -400,7 +400,7 @@ Ww1Dop::Ww1Dop(Ww1Fib& _rFib)
 Ww1Picture::Ww1Picture(SvStream& rStream, sal_uLong ulFilePos)
     : bOK(false), pPic(0)
 {
-    ulFilePos &= 0xffffff; //~ ww1: warum auch immer - im highbyte steht eine 5?!?!
+    ulFilePos &= 0xffffff; //~ ww1: for some reason the high byte contains 5?!?!
     SVBT32 lcb;
     if (rStream.Seek(ulFilePos) == (sal_uLong)ulFilePos)
         if (rStream.Read(&lcb, sizeof(lcb)) == (sal_uLong)sizeof(lcb))
@@ -709,8 +709,8 @@ sal_uInt16 Ww1SprmPapx::SprmSize(sal_uInt8*, sal_uInt16 nSize)
 {
     sal_uInt16 nRet = 0;
     if (nSize >= sizeof(W1_PAPX))
-        nRet = nSize - ( sizeof(W1_PAPX) - 1 ); // im W1_PAPX ist das
-                                                // 1. SprmByte enthalten
+        nRet = nSize - ( sizeof(W1_PAPX) - 1 ); // the 1st SprmByte is contained
+                                                // in the W1_PAPX
     return nRet;
 }
 
@@ -781,11 +781,10 @@ sal_uInt8* Ww1Plc::GetData(sal_uInt16 nIndex)
 }
 
 // PlcBookmarks
-// class Ww1StringList liest im Ctor eine Anzahl von P-Strings aus dem Stream
-// in den Speicher und patcht sie zu C-Strings um.
-// Die Anzahl wird in nMax zurueckgeliefert.
-// im Index 0 stehen alle Strings nacheinander, ab Index 1 werden
-// die einzelnen Strings referenziert.
+// class Ww1StringList reads a number of P strings from the stream into memory
+// and patches them into C strings
+// nMax returns the count
+// Index 0 references all strings; index 1 and higher reference individual strings
 Ww1StringList::Ww1StringList( SvStream& rSt, sal_uLong nFc, sal_uInt16 nCb )
     : pIdxA(0), nMax(0)
 {
@@ -795,18 +794,18 @@ Ww1StringList::Ww1StringList( SvStream& rSt, sal_uLong nFc, sal_uInt16 nCb )
         OSL_ENSURE(nCb > sizeof(nCountBytes), "Ww1StringList");
         if (rSt.Seek(nFc) == (sal_uLong)nFc)
             if (rSt.Read(nCountBytes, sizeof(nCountBytes))
-                     == sizeof(nCountBytes)) // Laenge steht hier nochmal
+                     == sizeof(nCountBytes)) // length again
             {
                 OSL_ENSURE(SVBT16ToShort(nCountBytes)
                          == nCb, "redundant-size missmatch");
-                                    // hoffentlich sind sie immer gleich
+                                    // let's hope that they are always equal
                 sal_Char* pA = new sal_Char[nCb - sizeof(nCountBytes) + 1];
-                                    // Alloziere PString-Array
+                                    // allocating PString array
                 //~ Ww1: new-NULL
                 if (rSt.Read(pA, nCb - sizeof(nCountBytes))
-                        == (sal_uLong)nCb - sizeof(nCountBytes))    // lese alle
+                        == (sal_uLong)nCb - sizeof(nCountBytes))    // read all
                 {}// do nothing
-                                    // Zaehle, wieviele Fonts enthalten
+                                    // Count number of fonts
                 long nLeft = nCb - sizeof(nCountBytes);
                 sal_Char* p = pA;
                 while (true)
@@ -817,32 +816,32 @@ Ww1StringList::Ww1StringList( SvStream& rSt, sal_uLong nFc, sal_uInt16 nCb )
                         break;
                     nMax++;
                     nLeft -= nNextSiz;
-                    if(nLeft < 1)           // naechste Laenge muss gelesen werden koennen
+                    if(nLeft < 1)           // need to be able to read next length
                         break;
                     p = p + nNextSiz;
                 }
                 if (nMax)
                 {
-                    pIdxA = new sal_Char*[nMax+1];      // alloziere Index-Array
-                    pIdxA[0] = pA;                      // Index 0 : alles
-                                                        // ab Index 1 C-Strings
-                    pIdxA[1] = pA + 1;                  // fuelle Index-Array
+                    pIdxA = new sal_Char*[nMax+1];      // allocate index array
+                    pIdxA[0] = pA;                      // Index 0 : everything
+                                                        // from index 1 C strings
+                    pIdxA[1] = pA + 1;                  // fill index array
                     sal_uInt16 i = 2;
                     p = pA;
                     sal_uInt8 nL = *p;
                     while(true)
                     {
-                        p += nL + 1;                    // Neues Laengen-Byte
-                        nL = *p;                        // merke Laenge
-                        *p = '\0';                      // mach C-String draus
+                        p += nL + 1;                    // new length byte
+                        nL = *p;                        // remember length
+                        *p = '\0';                      // make C string
                         if( i > nMax )
                             break;
-                        pIdxA[i] = p + 1;               // Ptr auf C-String
+                        pIdxA[i] = p + 1;               // Ptr to C string
                         i++;
                     }
                 }
                 else
-                    pIdxA = 0;  // Keine Eintraege -> kein Array
+                    pIdxA = 0;  // No entries -> no array
             }
     }
 }
@@ -867,17 +866,16 @@ Ww1Bookmarks::Ww1Bookmarks(Ww1Fib& rInFib)
     bOK = !aNames.GetError() && !pPos[0]->GetError() && !pPos[1]->GetError();
 }
 
-// Der Operator ++ hat eine Tuecke: Wenn 2 Bookmarks aneinandergrenzen, dann
-// sollte erst das Ende des ersten und dann der Anfang des 2. erreicht werden.
-// Liegen jedoch 2 Bookmarks der Laenge 0 aufeinander, *muss* von jedem Bookmark
-// erst der Anfang und dann das Ende gefunden werden.
-// Der Fall: ][
+// There's one twist to this operator++: in the case of 2 adjacent bookmarks,
+// the end of the first one should be reached first, and then the start of the
+// second one. However, if there are 2 bookmarks of length 0 on top of each
+// other, each bookmarks' respective start *must* be found before its end.
+// The case: ][
 //            [...]
 //           ][
-// ist noch nicht geloest, dabei muesste ich in den Anfangs- und Endindices
-// vor- und zurueckspringen, wobei ein weiterer Index oder ein Bitfeld
-// oder etwas aehnliches zum Merken der bereits abgearbeiteten Bookmarks
-// noetig wird.
+// is not solved yet. I'd need to jump back and forth in the start and end
+// indices, using another index or a bitfield or something similar for keeping
+// track of already processed bookmarks.
 void Ww1Bookmarks::operator++()
 {
     if( bOK )
@@ -966,12 +964,11 @@ sal_Bool Ww1FkpPap::Fill(sal_uInt16 nIndex, sal_uInt8*& p, sal_uInt16& rnCountBy
         OSL_ENSURE(nOffset>(sal_uInt16)(Count()*sizeof(SVBT32)), "calc error");
         rnCountBytes = *(aFkp+nOffset) * 2;
         nOffset += sizeof(sal_uInt8);
-        if( nOffset + rnCountBytes < 511 )  // SH: Assert schlug 1 zu frueh zu
-            rnCountBytes++;                 // SH: Ich weiss nicht genau,
-                                            // ob das letzte Byte des PAPX
-                                            // genutzt wird, aber so vergessen
-                                            // wir keins und sind trotzdem
-                                            // auf der sicheren Seite
+        if( nOffset + rnCountBytes < 511 )  // SH: Assert triggered 1 too early
+            rnCountBytes++;                 // SH: I'm not entirely sure if the last
+                                            // byte of the PAPX is used, but this way
+                                            // we don't forget any and are on the
+                                            // safe side either way
         OSL_ENSURE(nOffset+rnCountBytes <= 511, "calc error");
         p = aFkp + nOffset;
     }
@@ -987,7 +984,7 @@ sal_Bool Ww1FkpPap::Fill(sal_uInt16 nIndex, sal_uInt8*& p, sal_uInt16& rnCountBy
 sal_Bool Ww1FkpChp::Fill(sal_uInt16 nIndex, W1_CHP& aChp)
 {
     OSL_ENSURE( nIndex < Count(), "Ww1FkpChp::Fill() Index out of Range" );
-    memset(&aChp, 0, sizeof(aChp)); // Default, da verkuerzt gespeichert
+    memset(&aChp, 0, sizeof(aChp));
     sal_uInt16 nOffset = GetData(nIndex)[0] * 2;
     if (nOffset)
     {
@@ -1050,10 +1047,9 @@ void Ww1Pap::Seek(sal_uLong ulSeek)
         ++(*this);
 }
 
-// SH: Where hat einen Parameter mitbekommen, der sagt, ob bei Neuanlegen eines
-// Fkps der zugehoerige Index auf 0 gesetzt werden soll
-// ( darf fuer Push/Pop nicht passieren )
-// Ein eleganterer Weg faellt mir auf die Schnelle nicht ein
+// SH: Where has been passed a parameter which determines if the index should be set
+// to 0 upon constructing a new Fkp (must not happen for Push/Pop)
+// Can't think of an elegant way for now
 sal_uLong Ww1Pap::Where( sal_Bool bSetIndex )
 {
     sal_uLong ulRet = 0xffffffff;
@@ -1082,8 +1078,8 @@ void Ww1Pap::operator++()
         }
 }
 
-// SH: FindSprm sucht in grpprl nach Sprm nId
-// Rueckgabe: Pointer oder 0
+// SH: FindSprm looks for Sprm nId in grpprl
+// Return value: pointer or 0
 sal_Bool Ww1Pap::FindSprm(sal_uInt16 nId, sal_uInt8* pStart, sal_uInt8* pEnd)
 {
     Ww1Sprm aSprm( pStart, static_cast< sal_uInt16 >(pEnd-pStart) );
@@ -1113,7 +1109,7 @@ sal_Bool Ww1Pap::HasId0(sal_uInt16 nId)
     sal_uInt8* pByte;
     sal_uInt16 n;
     if( pPap->Fill(nFkpIndex, pByte, n) ){
-        sal_uInt8* p2 = ((W1_PAPX*)(pByte))->grpprlGet(); // SH: Offset fehlte
+        sal_uInt8* p2 = ((W1_PAPX*)(pByte))->grpprlGet(); // SH: Offset was missing
         bRet = FindSprm( nId, p2, pByte + n );
     }
     return bRet;
@@ -1148,10 +1144,9 @@ void Ww1Chp::Seek(sal_uLong ulSeek)
         ++(*this);
 }
 
-// SH: Where hat einen Parameter mitbekommen, der sagt, ob bei Neuanlegen eines
-// Fkps der zugehoerige Index auf 0 gesetzt werden soll
-// ( darf fuer Push/Pop nicht passieren )
-// Ein eleganterer Weg faellt mir auf die Schnelle nicht ein
+// SH: Where has been passed a parameter which determines if the index should be set
+// to 0 upon constructing a new Fkp (must not happen for Push/Pop)
+// Can't think of an elegant way for now
 sal_uLong Ww1Chp::Where( sal_Bool bSetIndex )
 {
     sal_uLong ulRet = 0xffffffff;
diff --git a/sw/source/filter/ww1/w1class.hxx b/sw/source/filter/ww1/w1class.hxx
index 1d0da19..7dadb10 100644
--- a/sw/source/filter/ww1/w1class.hxx
+++ b/sw/source/filter/ww1/w1class.hxx
@@ -65,25 +65,20 @@ class Ww1SprmSep;
 class Ww1Style;
 class Ww1StyleSheet;
 
-// nach moeglichkeit wurden in diesem modul methoden aehnlicher
-// funktionalitaet gleich benannt. Die namen wurden wenn moeglich vom
-// ww-filter uebernommen.
-// Where() gibt die position eines elements. dies kann sowohl eine
-// seek-position im stream als auch ein relativer offset sein, da dies
-// bei word durcheinander geht.  die methoden sind durch kommentare
-// gekennzeichnet, ob sie sich auf positionen in der datei oder
-// innerhalb des textes beziehen. vorsicht: innerhalb des textes kann
-// verschiedene texte in der datei bedeuten.
-// Count() gibt die anzahl der elemente zurueck. vorsicht bei
-// n/n-1-feldern (word speichert strukturen gern in doppel-arrays, in
-// denen das erste n elemente, das zweite jedoch n-1 elemente
-// enthaelt.
-// Fill() fuellt uebergebene referenzen mit daten aus den
-// word-strukturen.
-// GetData() gibt zeiger auf den datenbereich zurueck
-// GetError() gibt zurueck, ob fehler aufgetreten ist
-// Start(), Stop(), Out(), op<< siehe modul w1filter
-// Dump() siehe modul w1dump
+// If possible, methods with similar functionality were given similar
+// names in this module. The names were taken from ww filter, if
+// possible.
+// Where() returns an element's position. This can be either a seek
+// position in the stream or a relative offset inside the text, since
+// these are mixed up in Word. The methods' comments indicate which of
+// these options they apply to.
+// Count() returns the number of elements. Be careful with n/n-1
+// fields (Word likes to store structures in double arrays, with the
+// first one containing n elements, and the second one n-1.
+// Fill() fills passed references with data from Word structures.
+// GetData() returns pointers to the data range
+// Start(), Stop(), Out(), op<< see module w1filter
+// Dump() see module w1dump
 
 // file information block: root of the evil: it's at the start of the
 // file (seek(0)) and contains all positions of the structures of the
@@ -118,7 +113,7 @@ public:
 };
 
 // ww-files can contain several blocks of text (main-text,
-// footnotes etc). PlainText vereinigt die gemeinsamkeiten
+// footnotes etc). PlainText unifies the overlaps
 class Ww1PlainText
 {
 protected:
@@ -276,9 +271,9 @@ public:
         return !bOK; }
 };
 
-// ww kennt nur font-nummern beim formatieren. nebenher gibts ein
-// array von fonts, damit man aus der nummer einen konkreten font
-// machen kann.
+// ww only knows font numbers during formatting. Independently, there
+// is an array of fonts, so that the number can be converted to a
+// specific font.
 class Ww1Fonts
 {
 protected:
@@ -303,28 +298,27 @@ public:
 };
 
 // SingleSprm
-// diese klassen ersetzen die aSprmTab etc des ww6-filters. die
-// funktionspointer sind hier virtuale methoden, fuer die typen (byte,
-// word, var-sized etc) gibt es abgeleitete klassen. diese haben
-// methoden zum bestimmen der groesze, dumpen und shell-ausgeben der
-// Sprms.
-// die klassen werden mit new (in InitTab()) erzeugt und nach ihrem
-// code in die tabelle gestellt. zum aktivieren ruft man nun nur noch
-// die entsprechende methode des objektes in der tabelle auf.
-// wohlgemerkt: SingleSprms sind die _beschreibung_ und _funktion_ der
-// Sprms, nicht deren inhalt. dieser musz uebergeben werden an die
-// einzelnen methoden wie Size, Dump und Start/Stop.
+// These classes replace aSprmTab etc. from ww6 filter. The function
+// pointers are virtual methods. There exist derived classes for
+// specific types (byte, word, var-sized etc.). They have methods for
+// determining their sizes, for dumping and outputting the Sprms to
+// the shell.
+// The classes get created with new (in InitTab()) and added to the
+// table according to their code. For activating them the respective
+// method has to be called on an object in the table.
+// Take note: SingleSprms only describe Sprms, they don't carry their
+// content, which must be passed to the individual methods such as
+// Size, Dump and Start/Stop.
 class Ww1SingleSprm
 {
 public:
 #ifdef DUMP
-    // allein die virtuellen methoden stehen in der vtab, also je nachdem,
-    // ob fuer dumper oder filter uebersetzt wird ausblenden: das spart
-    // platz. ausserdem stehen die methoden fuer dumper bzw filter in
-    // verschiedenen modulen, die im jeweils anderen projekt nicht
-    // uebersetzt werden. das diese dann beim linken nicht zur verfuegung
-    // stehen faellt dann auch nicht auf. Der Namensstring ist nur im
-    // Dumper noetig: weg damit im Filter.
+    // The vtab only contains the virtual methods; we hide them
+    // depending on what we compile for (dumper or filter). This saves
+    // space. Furthermore, these method's implementations live in
+    // different modules which only get compiled and linked when
+    // required by the respective project. The name string is only
+    // required by the dumper -- let's not include it in the filter.
     void Start(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
     void Stop(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
     virtual std::ostream& Dump(std::ostream&, sal_uInt8*, sal_uInt16);
@@ -481,8 +475,8 @@ public:
 
 class Ww1SingleSprmPBrc : public Ww1SingleSprmWord {
 protected:
-    // spezielle start-routine, je nach sprm verschieden versorgt
-    // mit einem BoxItem.
+    // specific start routines, supplied with different BoxItems
+    // depending on sprm
     void Start(Ww1Shell&, sal_uInt8, W1_BRC10*, sal_uInt16, Ww1Manager&, SvxBoxItem&);
     void Start(Ww1Shell&, sal_uInt8, W1_BRC*, sal_uInt16, Ww1Manager&, SvxBoxItem&);
 
@@ -503,10 +497,9 @@ public:
 #define BRC_RIGHT ((sal_uInt16)3)
 #define BRC_ANZ ((sal_uInt16)BRC_RIGHT-BRC_TOP+1)
 
-// Die BRC-struktur fuer 1.0 versionen von word sind verschieden von
-// denen der folgenden versionen. diese werden zum glueck aber auch
-// von anderen sprms abgerufen.
-// SH: Ab sofort alle 4 Umrandungen ueber nur 1 Klasse.
+// The BRC structure for 1.0 versions of Word differ from the ones in
+// later versions. Luckily, they will be queried by other sprms.
+// SH: From now on, all 4 borders handled by a single class.
 class Ww1SingleSprmPBrc10 : public Ww1SingleSprmPBrc
 {
     sal_uInt16 nLine;   // BRC_TOP, BRC_LEFT, ...
@@ -556,7 +549,7 @@ public:
     Ww1SingleSprmPChgTabsPapx(sal_Char* sName) :
         Ww1SingleSprmByteSized(0, sName) {
         }
-  // Size() is not yet activated!
+    // Size() is not yet activated!
     void Start(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
     void Stop(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
 };
@@ -625,10 +618,10 @@ public:
     void Start(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
 };
 
-// Klassendefinitionen fuer Tabellen-Fastsave-Attribute
-// Da wir kein Fastsave unterstuetzen, brauchen wir's nicht
+// Class definitions for table fastsave attributes
+// Because we don't support fastsave, we don't need it
 
-// Klassendefinitionen fuer Apos ( == Flys )
+// Class definitions for Apos ( == Flys )
 
 class Ww1SingleSprmPpc : public Ww1SingleSprmByte {
 public:
@@ -670,7 +663,7 @@ public:
     void Start(Ww1Shell&, sal_uInt8, sal_uInt8*, sal_uInt16, Ww1Manager&);
 };
 
-// der tatsaechlich in der datei auftretende datentyp Sprm
+// The data type Sprm actually appearing in the file
 class Ww1Sprm
 {
     sal_Bool ReCalc();
@@ -690,9 +683,9 @@ protected:
     sal_Bool bOK;
     sal_uInt16* pArr;
     sal_uInt16 count;
-    // ohne Token, mit laengen-byte/word
+    // without token, with length byte/word
     sal_uInt16 GetSize(sal_uInt8 nId, sal_uInt8* pSprm);
-    // mit Token und LaengenByte
+    // with token and length byte
     sal_uInt16 GetSizeBrutto(sal_uInt8* pSprm) {
         sal_uInt8 nId = *pSprm++;
         return GetSize(nId, pSprm) + 1; }
@@ -736,9 +729,8 @@ public:
     void WriteBmp(SvStream&);
 };
 
-// eine der wichtigen array-strukturen der ww-dateien. sie beinhalten
-// n+1 dateipositionen und n attribute, die zwischen den
-// dateipositionen gelten.
+// One of the important array structures in ww files. They contain n+1
+// file positions and n attributes applying in between them.
 class Ww1Plc
 {
     sal_uInt8* p;
@@ -922,8 +914,7 @@ public:
     {}
 };
 
-// aehnlich den plcs aufgebaute arrays, die sich auf eine groesze von
-// 512 byte beschraenken
+// Arrays very similar to the plcs; limited to a size of 512 bytes
 class Ww1Fkp
 {
 protected:
@@ -935,7 +926,7 @@ public:
     Ww1Fkp(SvStream&, sal_uLong, sal_uInt16);
     friend std::ostream& operator <<(std::ostream&, Ww1Fkp&);
     sal_uInt16 Count() const            { return *(aFkp+511); }
-    sal_uLong Where(sal_uInt16); // wie im entsprechenden fkp
+    sal_uLong Where(sal_uInt16); // like in the corresponding fkp
 };
 
 class Ww1FkpPap : public Ww1Fkp
@@ -1008,31 +999,31 @@ public:
     void Out(Ww1Shell&);
 };
 
-// Header/Footer/Footnoteseparators sind einer nach dem naechsten in
-// einem eigenen text gespeichert. ein plc trennt diesen text in
-// einzelne teile.  diese werden durchnummeriert als ihdd. nun gibt es
-// 9 verschiedene funktionen fuer diese texte. wird eine davon
-// angefordert, ist es der erste, beim naechstern der 2 ihdd und so
-// weiter.  welcher textteil also welcher typ sein wird laeszt sich
-// nur bei sequenziellem lesen der datei bestimmen. die 9 typen sind:
-// fusznoten-trenner, folge-fusznoten-trenner, folge-fusznoten-notiz,
-// gerade-seiten kopfzeilen, ungerade seiten kopfzeilen, dto 2*
-// fuszzeilen, kopf & fuszzeilen, wenn erste seite andere zeilen hat.
-// HeaderFooter merkt sich fuer jede der 9 die momentane einstellung
-// (jedoch nicht die alten) und den naechstvergebbaren ihdd.  ist ein
-// teil nicht vorhanden bekommt er den wert 0xffff.
+// Header/footer/footnote separators are stored in a separate text one
+// after the other. A plc partitions these texts into several
+// parts. They are numbered as ihdd. There are 9 different functions
+// for these texts. When one of them is requested, it applies to the
+// first ihdd, the next time to the second and so on. Which type a
+// given text part will be treated as can only be determined by
+// reading the file sequentially. The 9 types are: footnote separator,
+// footnote continuation separator, footnote continuation note, even
+// page header, odd page header, even page footer, odd page footer,
+// header and footer for the first page. HeaderFooter remembers the
+// current setting for each of these (but not the previous one) and
+// the following ihdd. A part of type 0xffff denotes a non-existing
+// part.
 class Ww1HeaderFooter : public Ww1PlcHdd
 {
-    sal_uInt16 nextIhdd;        // naechster textteil im HddText
-    sal_uInt16 nFtnSep;         // fusznoten trenner
-    sal_uInt16 nFtnFollowSep;   // folge fusznoten trenner
-    sal_uInt16 nFtnNote;        // folgefunsznotennotiz
-    sal_uInt16 nEvenHeadL;      // kopfzeilen grader seiten
-    sal_uInt16 nOddHeadL;       // kopfzeilen ungrader seiten
-    sal_uInt16 nEvenFootL;      // fuszzeilen grader seiten
-    sal_uInt16 nOddFootL;       // fuszzeilen ungerader seiten
-    sal_uInt16 nFirstHeadL;     // kopfzeilen der ersten seite
-    sal_uInt16 nFirstFootL;     // fuszzeilen der ersten seite
+    sal_uInt16 nextIhdd;        // next text part in HddText
+    sal_uInt16 nFtnSep;         // footnote separator
+    sal_uInt16 nFtnFollowSep;   // footnote continuation separator
+    sal_uInt16 nFtnNote;        // footnote continuation note
+    sal_uInt16 nEvenHeadL;
+    sal_uInt16 nOddHeadL;
+    sal_uInt16 nEvenFootL;
+    sal_uInt16 nOddFootL;
+    sal_uInt16 nFirstHeadL;
+    sal_uInt16 nFirstFootL;
     enum HeaderFooterMode {
         None, FtnSep, FtnFollowSep, FtnNote, EvenHeadL, OddHeadL,
         EvenFootL, OddFootL, FirstHeadL, MaxHeaderFooterMode
@@ -1148,7 +1139,7 @@ public:
 class Ww1Fields : public Ww1PlcFields
 {
     sal_uInt16 nPlcIndex;
-    OUString sErgebnis; // das von word errechnete ergebniss
+    OUString sResult; // Calculated by Word
     SwField* pField;
     sal_uLong Where(sal_uInt16 nIndex)  // within the text
         { return Ww1PlcFields::Where(nIndex) - rFib.GetFIB().fcMinGet(); }
@@ -1419,9 +1410,9 @@ public:
     }
 };
 
-// zentraler aufhaenger der ww-seite des filters, konstruiert aus dem
-// inputstream (ww-datei) enthaelt er alles, was noetig ist, um in die
-// shell (pm-seite) gepiped zu werden.
+// Central point of access for the ww side of the filter, constructed
+// from the input stream (ww file). It contains everything necessary
+// for being piped into the shell (pm side).
 class Ww1Manager
 {
     sal_Bool bOK;
@@ -1431,17 +1422,17 @@ class Ww1Manager
     Ww1Fib aFib;
     Ww1Dop aDop;
     Ww1Fonts aFonts;
-    // ab jetzt alles paarig, fuer 'pushed':
+    // from now on, everything in pairs, for 'pushed':
     Ww1DocText aDoc;
     Ww1PlainText* pDoc;
     sal_uLong ulDocSeek;
     sal_uLong* pSeek;
     Ww1TextFields aFld;
     Ww1Fields* pFld;
-    // selbst 'push'bar:
+    // 'push'able itself:
     Ww1Chp aChp;
     Ww1Pap aPap;
-    // nicht in textbereichen vorhanden, wenn ge'pushed'
+    // not present in text ranges if 'pushed'
     Ww1Footnotes aFtn;
     Ww1Bookmarks aBooks;
     Ww1Sep aSep;
diff --git a/sw/source/filter/ww1/w1filter.cxx b/sw/source/filter/ww1/w1filter.cxx
index 970461e..ac7b18d 100644
--- a/sw/source/filter/ww1/w1filter.cxx
+++ b/sw/source/filter/ww1/w1filter.cxx
@@ -67,26 +67,25 @@
 using namespace css;
 using namespace nsSwDocInfoSubType;
 
-// hier stehen die methoden operator<<, Out, Start und Stop mit
-// folgender Bedeutung: wenn moeglich wird die information aus dem
-// dokument per
+// The methods operator<<, Out, Start and Stop are to be used like
+// this: If possible, information from the document is transferred to
+// the shell with
 //   operator<<()
-// in die shell uebertragen. sind jedoch weitere parameter noetig
-// wurde der name
+// If additional parameters are required, the method
 //   Out()
-// gewaehlt. ist ein bereich zu kennzeichnen (zB bei attributen
-// von/bis), heissen die methoden
+// needs to be used. The methods for marking a range (attribute range,
+// for example), are
 //   Start(), Stop()
-// alle diese methoden stehen in diesem modul, das fuer den filter,
-// jedoch nicht fuer den dumper noetig ist.  und da alle regeln ihre
-// ausnahme haben: hier stehen auch methoden, die aus anderen gruenden
-// fuer den dumper sinnlos sind, zB wenn sie auf sv-strukturen beruhen
-// wie zB GetFont() auf SvxFontItem.
+// This module contains all of these methods. It is necessary for the
+// filter, but not for the dumper, with one exception though: the
+// module also contains methods, which are useless for the dumper, for
+// example because they operate on sv structures like GetFont() does on
+// SvxFontItem.
 
 // Manager
 Ww1Shell& operator <<(Ww1Shell& rOut, Ww1Manager& This)
 {
-    // verhindern, das bei rekusivem aufruf dies mehrfach passiert:
+    // prohibit action in case of recursive call
     if (!This.Pushed())
     {
         {
@@ -99,9 +98,8 @@ Ww1Shell& operator <<(Ww1Shell& rOut, Ww1Manager& This)
             // this one, too
             Ww1Assoc(This.aFib).Out(rOut);
         }
-        // dieser nicht, der ist bereits member:
         This.aDop.Out(rOut);
-        // Jetzt entscheiden, wie Seitenvorlagen erzeugt werden
+        // Decide now how page templates will be created
         if (This.GetSep().Count() <= 1)
             rOut.SetUseStdPageDesc();
     }
@@ -109,24 +107,23 @@ Ww1Shell& operator <<(Ww1Shell& rOut, Ww1Manager& This)
     sal_Unicode cUnknown = ' ';
     while (*This.pSeek < This.pDoc->Count())
     {
-        // ausgabe des ProgressState nur, wenn im haupttext, da sonst
-        // nicht bestimmt werden kann, wie weit wir sind:
+        // output the ProgressState only for main text, because we
+        // cannot determine the correct value otherwise
         if (!This.Pushed())
             ::SetProgressState(This.Where() * 100 / This.pDoc->Count(),
              rOut.GetDoc().GetDocShell());
-        // hier werden abwechselnd die attribute und die zeichen in die
-        // shell gepumpt.  die positionen werden durch das lesen der
-        // zeichen aus dem manager hoch- gezaehlt.  erst alle attribute:
+        // Here, attributes and characters get pumped into the shell
+        // alternatingly. The positions get incremented by reading
+        // chars from the manager. First, the attributes:
         This.Out(rOut, cUnknown);
-        // das textdocument pDoc ist ein Ww1PlainText, dessen Out()
-        // methode solange ausgibt, bis entweder ein sonderzeichen
-        // auftaucht oder die anzahl der auszugebenden zeichen erreicht
-        // ist:
+        // The text document pDoc is a Ww1PlainText, whose Out()
+        // method outputs until the next special character or the
+        // requested number of characters has been reached.
         cUnknown = This.pDoc->Out(rOut, *This.pSeek);
     }
     This.SetStopAll(true);
-    This.OutStop(rOut, cUnknown);   // Damit die Attribute am Ende geschlossen
-    This.SetStopAll(false);         // werden
+    This.OutStop(rOut, cUnknown);   // So that attributes get closed at the end
+    This.SetStopAll(false);
     return rOut;
 }
 
@@ -147,7 +144,7 @@ void Ww1Manager::OutStop(Ww1Shell& rOut, sal_Unicode cUnknown)
 
 void Ww1Manager::OutStart( Ww1Shell& rOut )
 {
-    // alle attribute, die's brauchen beginnen
+    // start all attributes which need it
     if (!Pushed())
         aSep.Start(rOut, *this);
     if (true)
@@ -160,8 +157,8 @@ void Ww1Manager::OutStart( Ww1Shell& rOut )
         pFld->Start(rOut, *this);
     if (!Pushed())
         aBooks.Start(rOut, *this);
-    // bestimmen, wo das naechste Ereigniss ist:
-    sal_uLong ulEnd = pDoc->Count(); // spaetestens am textende
+    // determine next event
+    sal_uLong ulEnd = pDoc->Count(); // at the latest at the end of the text
     if (!Pushed())
         if (ulEnd > aSep.Where()) // next Sep prior?
             ulEnd = aSep.Where();
@@ -181,33 +178,31 @@ void Ww1Manager::OutStart( Ww1Shell& rOut )
         if (ulEnd > aBooks.Where()) // next Bookmark prior?
             ulEnd = aBooks.Where();
     *pSeek = Where(); // current position
-    if (*pSeek < ulEnd) // sind wir bereits weiter?
+    if (*pSeek < ulEnd)
         *pSeek = ulEnd;
 }
 
 void Ww1Manager::Out(Ww1Shell& rOut, sal_Unicode cUnknown)
 {
-// Je nach modus wird hier mit feldern, fusznoten, zeichenattributen,
-// absatzatributen und sektionen wie folgt verfahren: von allen wird
-// zuallererst die stop-methoden gerufen. stellt das objekt fest, dasz
-// etwas zu beenden ist (natuerlich nicht im ersten durchgang) beendet
-// es dies, ansonsten ist der aufruf wirkungslos.  dann werden
-// unbehandelte sonderzeichen augegeben. das werden genauso alle
-// start-methoden gerufen und danach per where festgestellt, an
-// welcher stelle die naechste aktion zu erwarten ist.
-
-// ist der manager in einem ge'push'ten mode, werden bestimmte
-// elemente ausgeklammert. felder werden wiederum nur in besonderen
-// faellen augeklammert, wenn naemlich bereiche ausgegeben werden, die
-// keine felder enthalten koennen. charakterattribute und
-// paragraphenattribute werden jedoch nie ausgeklammert. die if (1)
-// wurden zur verdeutlichung der einheitlichkeit eingefuegt.
-
-// Erstmal eine Sonderbehandlung fuer Tabellen:
-// die wichtigen Attribute lassen sich am Besten vor Beendigung derselben
-// abfragen.
-// Optimierung: Sie werden nur auf sinnvolle Werte gesetzt, wenn
-// das 0x07-Zeiche ansteht.
+// Depending on the mode, fields, footnotes, character attributes,
+// paragraph attributes and sections are handled like this: First, the
+// Stop() method is called. If the object determines that there is
+// something to end (obviously not during the first pass), it will be
+// ended, otherwise the call is without effect. Next, unhandled
+// special characters get output. Then, all Start() methods get
+// called, and then Where() is used to find the next interesting
+// position.
+
+// With the manager in 'push'ed mode, some elements will be
+// skipped. Fields are only skipped under special circumstances, more
+// precisely only during output of ranges which cannot contain
+// fields. Character and paragraph attributes are never skipped. The
+// if (1) instructions were added for uniformity.
+
+// First, some special-casing for tables:
+// the important attributes are best queried before they end
+// Optimization: they only get set to meaningful values when the 0x07
+// character is pending.
 
     bool bLIsTtp = false;
     sal_Bool bLHasTtp = sal_False;
@@ -217,9 +212,9 @@ void Ww1Manager::Out(Ww1Shell& rOut, sal_Unicode cUnknown)
         bLHasTtp = HasTtp();
     }
 
-    OutStop( rOut, cUnknown );      // Attrs ggfs. beenden
+    OutStop( rOut, cUnknown );      // End attrs if necessary
 
-    // meta-zeichen interpretieren:
+    // interpret meta characters:
     if (!Ww1PlainText::IsChar(cUnknown))
         switch (cUnknown)
         {
@@ -255,7 +250,7 @@ void Ww1Manager::Out(Ww1Shell& rOut, sal_Unicode cUnknown)
         break;
         }
 
-    OutStart( rOut );   // Attrs ggfs. starten und Naechste Pos berechnen
+    OutStart( rOut );   // End attrs if necessary and calculate next pos
 }
 
 SvxFontItem Ww1Manager::GetFont(sal_uInt16 nFCode)
@@ -274,9 +269,8 @@ void Ww1Manager::Push0(Ww1PlainText* _pDoc, sal_uLong ulSeek, Ww1Fields* _pFld)
     this->pFld = _pFld;
 }
 
-// ulSeek ist der FC-Abstand zwischen Hauptest-Start und Sondertext-Start
-// ulSeek2 ist der Offset dieses bestimmten Sondertextes im Sondertext-Bereich,
-// also z.B. der Offset des speziellen K/F-Textes
+// ulSeek is the FC distance between start of main text and start of special text
+// ulSeek2 is this special text's offset in the special case range
 void Ww1Manager::Push1(Ww1PlainText* _pDoc, sal_uLong ulSeek, sal_uLong ulSeek2,
                        Ww1Fields* _pFld)
 {
@@ -320,13 +314,13 @@ void Ww1Bookmarks::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16)
         && rName.equalsIgnoreAsciiCase( "FORMULAR" ) )
         rOut.SetProtect();
 
-    // Fuer UEbersetzung Bookmark -> Variable setzen
+    // Set for transformation bookmark -> variable
     long nLen = Len();
     if( nLen > MAX_FIELDLEN )
         nLen = MAX_FIELDLEN;
 
     // read content of the bookmark
-    // geht vermulich auch ueber Ww1PlainText
+    // Would supposedly also work via Ww1PlainText
     OUString aVal( rMan.GetText().GetText( Where(), nLen ) );
 
     // in 2 steps, since OS/2 is too stupid
@@ -354,17 +348,14 @@ void Ww1Footnotes::Start(Ww1Shell& rOut, Ww1Manager& rMan)
         if (c==0x02)
         {
             Ww1FtnText* pText = new Ww1FtnText(rMan.GetFib());
-        // beginn des textes dieser fusznote:
             sal_uLong start = aText.Where(nPlcIndex);
             pText->Seek(start);
-        // laenge des textes
             sal_uLong count = aText.Where(nPlcIndex+1) - start;
             pText->SetCount(count);
-        // fusznotenkennung sollte das erste byte sein
+            // first byte should be foot note marker
             pText->Out(c);
             OSL_ENSURE(c==0x02, "Ww1Footnotes");
-            count--; // fuer das eben gelesene kenn-byte
-        // fusznoten mode beginnen:
+            count--; // for the just read marker byte
             rOut.BeginFootnote();
             bStarted = sal_True;
             rMan.Push0(pText, pText->Offset(rMan.GetFib()),
@@ -411,17 +402,16 @@ void Ww1Fields::Stop( Ww1Shell& rOut, Ww1Manager& rMan, sal_Unicode& c)
             ++(*this);
             c = ' ';
             if (pField)
-            // haben wir ein fertiges feld da, das  eingefuegt werden soll?
+            // Do we have a complete field for insertion?
             {
                 rOut << *pField;
                 delete pField;
                 pField = 0;
-            // das macht der filter so, damit attribute die ueber das feld
-            // gelten auch wirklich eingelesen werden und dem feld
-            // zugeordnet werden.
+            // The filter does it like this so that attributes
+            // applying to this field actually get read and applied
             }
-            if (!sErgebnis.isEmpty())
-                rOut << sErgebnis;
+            if (!sResult.isEmpty())
+                rOut << sResult;
         }
     }
 }
@@ -455,7 +445,7 @@ static WWDateTime GetTimeDatePara( const OUString& rForm,
         if (nDPos == 0 || nDPos == -1)
             break;
         sal_Unicode cPrev = rForm[nDPos - 1];
-        // ignoriere dabei "AM", "aM", "PM", "pM"
+        // Ignore "AM", "aM", "PM", "pM" here
         if( 'a' != cPrev && 'A' != cPrev && 'p' != cPrev && 'P' != cPrev )
             break;
         // else search again
@@ -531,15 +521,15 @@ extern void sw3io_ConvertFromOldField( SwDoc& rDoc, sal_uInt16& rWhich,
 void Ww1Fields::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 nDepth)
 {
     OUString sType; // the type as string
-    OUString sFormel; // the formula
+    OUString sFormel;
     OUString sFormat;
     OUString sDTFormat;   // date/time format
-    W1_FLD* pData = GetData(); // die an den plc gebunden daten
-    OSL_ENSURE(pData->chGet()==19, "Ww1Fields"); // sollte beginn sein
+    W1_FLD* pData = GetData(); // data bound to plc
+    OSL_ENSURE(pData->chGet()==19, "Ww1Fields"); // should be begin
 
     sal_Unicode c;
     rMan.Fill( c );
-    OSL_ENSURE(c==19, "Ww1Fields"); // sollte auch beginn sein
+    OSL_ENSURE(c==19, "Ww1Fields"); // should also be begin
     if (pData->chGet()==19 && c == 19)
     {
         OUString aStr;
@@ -560,10 +550,9 @@ void Ww1Fields::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 nDepth)
         sFormel += aStr;
         sal_uInt8 rbType = pData->fltGet();
         do {
-        // solange den formelteil einlesen, bis das feld entweder
-        // zuende ist oder der ergebnisteil beginnt. dabei koennen
-        // natuerlich neue felder beginnen (word unterstuetzt felder,
-        // die wiederum felder beinhalten).
+            // Read the formula part until the entire field ends or
+            // the result part starts. Of course, other fields can
+            // start during this (Word supports nested fields).
             ++(*this);
             pData = GetData();
             if (pData->chGet()==19) // nested field
@@ -594,14 +583,14 @@ void Ww1Fields::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 nDepth)
             sFormel = sFormel.copy(0, pos);
         }
 
-        // der formelteil ist zuende, kommt ein ergebnisteil?
+        // The formula part is done, does a result part follow?
         if( pData->chGet() == 20 )
         {
             rMan.Fill( c );
             OSL_ENSURE(c==20, "Ww1PlainText");
-            c = rMan.Fill(sErgebnis, GetLength());
+            c = rMan.Fill(sResult, GetLength());
             if (!Ww1PlainText::IsChar(c))
-                sErgebnis += OUString(c); //~ mdt: sonderzeichenbenhandlung
+                sResult += OUString(c); //~ mdt: handle special chars
             ++(*this);
             pData = GetData();
         }
@@ -614,7 +603,6 @@ void Ww1Fields::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 nDepth)
             delete pField;
             pField = 0;
         }
-// naja, aber info enthaelt alle moeglichkeiten, die auch direkt da sind
 oncemore:
         switch (rbType)
         {
@@ -649,9 +637,9 @@ oncemore:
                 SwSetExpFieldType( &rOut.GetDoc(), aName, nsSwGetSetExpType::GSE_STRING ) );
             pField = new SwSetExpField((SwSetExpFieldType*)pFT, aStr);
             ((SwSetExpField*)pField)->SetSubType( nsSwExtendedSubType::SUB_INVISIBLE );
-            // Invisible macht in 378 AErger, soll aber demnaechst gehen
+            // Invisible causes trouble in 378; should work soon
 
-            // das Ignorieren des Bookmarks ist nicht implementiert
+            // Ignoring bookmarks is not implemented
         }
         break;
         case 14: // info variable
@@ -733,7 +721,7 @@ oncemore:
         case 23: // print date
         case 25:{// edit time
                     sal_uInt16 nSub;
-                    sal_uInt16 nReg = 0;    // RegInfoFormat, DefaultFormat fuer DocInfoFelder
+                    sal_uInt16 nReg = 0;    // RegInfoFormat, DefaultFormat for DocInfo fields
 
                     switch( rbType )
                     {
@@ -831,7 +819,7 @@ oncemore:
                     pField = new SwGetExpField(pFieldType, sFormel,
                      nsSwGetSetExpType::GSE_STRING, VVF_SYS);
             }
-            else // rekursion:
+            else // recursion:
             {
                 OUString aName("Ww");
                 aName += OUString::number( nPlcIndex );
@@ -847,7 +835,7 @@ oncemore:
             }
         }
         break;
-        case 36: // print command, Einfuegendatei
+        case 36: // print command, insert file
         {
             OUString aFName;
             pos = aStr.indexOf(' ');
@@ -943,7 +931,7 @@ oncemore:
             OUString sName;
             while (*pFormel != '\0' && *pFormel != ' ')
             {
-                // from here on a extension could appear
+                // from here on an extension could appear
                 if (*pFormel == '.')
                     pDot = pFormel;
                 else
@@ -1015,10 +1003,10 @@ oncemore:
             bKnown = false;
         break;
         }
-        if( bKnown || sErgebnis == "\270" )
-            this->sErgebnis = "";
+        if( bKnown || sResult == "\270" )
+            this->sResult = "";
         else
-            this->sErgebnis = sErgebnis;
+            this->sResult = sResult;
     }
     else // oops: we are terribly wrong: skip this
         ++(*this);
@@ -1026,9 +1014,9 @@ oncemore:
 
 sal_uLong Ww1Fields::GetLength()
 {
-    // berechnet die laenge eines feldteiles. nicht mitgerechnet werden
-    // die terminierenden zeichen im text (19, 20, 21) die beginn, trenner
-    // und ende bedeuten.
+    // Calculates a field part's length, excluding the terminating
+    // chars in the text (19, 20, 21) meaning begin, separator and
+    // end, respectively.
     sal_uLong ulBeg = Where();
     sal_uLong ulEnd = Where(nPlcIndex+1);
     OSL_ENSURE(ulBeg<ulEnd, "Ww1Fields");
@@ -1052,10 +1040,10 @@ void Ww1Sep::Start(Ww1Shell& rOut, Ww1Manager& rMan)
         rFmt.SetFmtAttr(aLR);
         SvxULSpaceItem aUL(rDOP.dyaTopGet(), rDOP.dyaBottomGet(), RES_UL_SPACE);
         rFmt.SetFmtAttr(aUL);
-        // sobald wir mit dem lesen der zeichen soweit sind, wo sep's
-        // momentanes attribut beginnt, wird dieses attribut eingefuegt.
-        // diese methode ist bei den meisten start/stop methoden der
-        // memberklassen des managers identisch.
+
+        // As soon as we've reached reading the start of the current
+        // sep's attribute, we insert it. This method is the same for
+        // most member classes of the manager.
         sal_uInt8* pByte = GetData();
         Ww1SprmSep aSprm(rFib, SVBT32ToUInt32(pByte + 2));
         aSprm.Start(rOut, rMan);
@@ -1071,7 +1059,7 @@ void Ww1Pap::Start(Ww1Shell& rOut, Ww1Manager& rMan)
     {
         sal_uInt8* pByte;
         sal_uInt16 cb;
-        // bereitstellen der zu startenden attribute
+        // Supply the attributes to be started
         if (FillStart(pByte, cb))
         {
             Ww1SprmPapx aSprm(pByte, cb);
@@ -1097,8 +1085,7 @@ void Ww1Pap::Stop(Ww1Shell& rOut, Ww1Manager& rMan, sal_Unicode&)
     }
 }
 
-// momentan laesst sich die ausgabe von W1CHPxen nicht nur per define
-// loesen...
+// Currently, the output of W1CHPxes cannot be solved only by define...
 void W1_CHP::Out(Ww1Shell& rOut, Ww1Manager& rMan)
 {
     if (fBoldGet())
@@ -1206,7 +1193,7 @@ void Ww1Chp::Stop(Ww1Shell& rOut, Ww1Manager& rMan, sal_Unicode&)
         W1_CHP aChpx;
         if (FillStop(aChpx))
         {
-            // zuerst alle toggle-flags
+            // First all toggle flags
             if (aChpx.fBoldGet())
                 rOut.EndItem(RES_CHRATR_WEIGHT);
             if (aChpx.fItalicGet())
@@ -1217,8 +1204,7 @@ void Ww1Chp::Stop(Ww1Shell& rOut, Ww1Manager& rMan, sal_Unicode&)
                 rOut.EndItem(RES_CHRATR_CONTOUR);
             if (aChpx.fSmallCapsGet() || aChpx.fCapsGet())
                 rOut.EndItem(RES_CHRATR_CASEMAP);
-            // dann alle zahl-werte, diese haben flags, wenn sie gesetzt
-            // sind...
+            // then all number values; these have flags when they are set...
             if (aChpx.fsHpsGet())
                 rOut.EndItem(RES_CHRATR_FONTSIZE);
             if (aChpx.fsKulGet())
@@ -1240,9 +1226,9 @@ void Ww1Chp::Stop(Ww1Shell& rOut, Ww1Manager& rMan, sal_Unicode&)
 
 void Ww1Style::Out(Ww1Shell& rOut, Ww1Manager& rMan)
 {
-    // Zuerst Basis, damit Attribute des Basis-Styles erkannt werden
+    // Base first, so that base style attributes can be recognized
     // first: Base
-    if(pParent->GetStyle(stcBase).IsUsed() )    // Basis gueltig ?
+    if(pParent->GetStyle(stcBase).IsUsed() )    // Base valid ?
         rOut.BaseStyle(stcBase);
 
     // next of all: CHP
@@ -1285,7 +1271,7 @@ sal_Unicode Ww1PlainText::Out( Ww1Shell& rOut, sal_uLong& ulEnd )
 
 sal_Unicode Ww1PlainText::Out(OUString& rStr, sal_uLong ulEnd)
 {
-    // wie Out(Shell..., jedoch ausgabe auf einen string
+    // Like Out(Shell..., but output into a string
     rStr = "";
     if (ulEnd > Count())
         ulEnd = Count();
@@ -1301,7 +1287,7 @@ sal_Unicode Ww1PlainText::Out(OUString& rStr, sal_uLong ulEnd)
     return Ww1PlainText::MinChar;
 }
 
-// hier eruebrigt sich ulEnd...oder?
+// This makes ulEnd unnecessary, right?
 sal_Unicode Ww1PlainText::Out( sal_Unicode& rRead )
 {
     rRead = (*this)[ulSeek];
@@ -1311,10 +1297,9 @@ sal_Unicode Ww1PlainText::Out( sal_Unicode& rRead )
 
 void Ww1SprmPapx::Start(Ww1Shell& rOut, Ww1Manager& rMan)
 {
-    if( !rMan.IsInStyle() ){        // Innerhalb Style gehts ueber die
-                                    // normalen Attribute
+    if( !rMan.IsInStyle() ){        // Normal attributes apply within style
         if (!rOut.IsInFly()
-            && !rOut.IsInTable()    // Nicht innerhalb Tabelle!
+            && !rOut.IsInTable()
             && ( rMan.HasPPc() || rMan.HasPDxaAbs())){ // Fly-Start
             rOut.BeginFly();        // eAnchor );
         }
@@ -1331,22 +1316,22 @@ void Ww1SprmPapx::Stop(Ww1Shell& rOut, Ww1Manager& rMan)
 {
     Ww1Sprm::Stop(rOut, rMan);
 
-    if( !rMan.IsInStyle() )         // Innerhalb Style gehts ueber die
-    {                               // normalen Attribute
+    if( !rMan.IsInStyle() )         // Normal attributes apply within style
+    {
         if (rOut.IsInTable() &&( rMan.IsStopAll() || !rMan.HasInTable()))
             rOut.EndTable();
 
         if( rOut.IsInFly() &&
             ( rMan.IsStopAll()
-                || ( !rMan.HasPPc() && !rMan.HasPDxaAbs()   // Fly-Ende
-                    && !rOut.IsInTable())))     // Nicht innerhalb Tabelle!
+                || ( !rMan.HasPPc() && !rMan.HasPDxaAbs()   // Fly end
+                    && !rOut.IsInTable())))
             rOut.EndFly();
     }
 }
 
 SvxFontItem Ww1Fonts::GetFont(sal_uInt16 nFCode)
 {
-    // erzeugen eine fonts im sw-sinne aus den word-strukturen
+    // Create a font in sw fashion from existing word structures
     FontFamily eFamily = FAMILY_DONTKNOW;
     OUString aName;
     FontPitch ePitch = PITCH_DONTKNOW;
@@ -1408,30 +1393,29 @@ SvxFontItem Ww1Fonts::GetFont(sal_uInt16 nFCode)
         {
             OSL_ENSURE(false, "WW1Fonts::GetFont: Nicht existenter Font !");
             eFamily = FAMILY_SWISS;
-             aName = "Helv";
+            aName = "Helv";
             ePitch = PITCH_VARIABLE;
             eCharSet = RTL_TEXTENCODING_MS_1252;
         }
     }
     break;
     }
-    // Extrawurst Hypo
     if ( SwFltGetFlag( nFieldFlags, SwFltControlStack::HYPO )
          && ( aName.equalsIgnoreAsciiCase("Helv")
             || aName.equalsIgnoreAsciiCase("Helvetica") ) )
     {
-         aName = "Helvetica Neue";
+        aName = "Helvetica Neue";
         if (eFamily==FAMILY_DONTKNOW)
             eFamily = FAMILY_SWISS;
     }
     else
     {
-        // VCL matcht die Fonts selber
-        // allerdings passiert bei Helv, Tms Rmn und System Monospaced
-        // Scheisse, so dass diese ersetzt werden muessen.
-        // Nach TH sollen diese durch feste Werte ersetzt werden,
-        // also nicht ueber System::GetStandardFont, damit keine
-        // Namenslisten auftauchen ( Dieses koennte den User verwirren )
+        // VCL matches fonts on its own
+        // Unfortunately, this breaks for Helv, Tms Rmn and System
+        // Monospaced, so they need to be replaced.
+        // According to TH they should be replaced by fixed values,
+        // not using System::GetStandardFont, so no name lists appear
+        // (this could confuse the user)
         if( aName.equalsIgnoreAsciiCase("Helv"))
         {
             aName  = "Helvetica";
@@ -1450,21 +1434,20 @@ SvxFontItem Ww1Fonts::GetFont(sal_uInt16 nFCode)
             ePitch = PITCH_FIXED;
         }
     }
-    // nun koennen wir den font basteln
     return SvxFontItem(eFamily, aName, OUString(), ePitch, eCharSet, RES_CHRATR_FONT);
 }
 
 void Ww1Dop::Out(Ww1Shell& rOut)
 {
-    //~ mdt: fehlt
+    //~ mdt: missing
     long nDefTabSiz = aDop.dxaTabGet();
     if (nDefTabSiz < 56)
         nDefTabSiz = 709;
 
-    // wir wollen genau einen DefaultTab
+    // we want exactly one DefaultTab
     SvxTabStopItem aNewTab(1, sal_uInt16(nDefTabSiz), SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP);
     ((SvxTabStop&)aNewTab[0]).GetAdjustment() = SVX_TAB_ADJUST_DEFAULT;
-    rOut.GetDoc().GetAttrPool().SetPoolDefaultItem( aNewTab); //~ mdt: besser (GetDoc)
+    rOut.GetDoc().GetAttrPool().SetPoolDefaultItem( aNewTab); //~ mdt: better (GetDoc)
 
     SwFrmFmt &rFmt = rOut.GetPageDesc().GetMaster();
     W1_DOP& rDOP = GetDOP();
@@ -1480,19 +1463,18 @@ void Ww1Dop::Out(Ww1Shell& rOut)
     rFmt.SetFmtAttr(aUL);
 
     SwFtnInfo aInfo;
-    aInfo = rOut.GetDoc().GetFtnInfo();     // Copy-Ctor privat
-                // wo positioniert ? ( 0 == Section, 1 == Page,
-                // 2 == beim Text -> Page, 3 == Doc  )
+    aInfo = rOut.GetDoc().GetFtnInfo();     // Copy-Ctor private
+                // where positioned ? ( 0 == Section, 1 == Page,
+                // 2 == next to Text -> Page, 3 == Doc  )
     switch( rDOP.fpcGet() ){
     case 1:
     case 2: aInfo.ePos = FTNPOS_PAGE; break;
     default: aInfo.ePos = FTNPOS_CHAPTER; break;
     }
-    // Da Sw unter Chapter anscheinend was anderes versteht als PMW
-    // hier also immer Doc !
+    // Always doc, because Sw seems to interpret Chapter differently from PMW
     aInfo.eNum = FTNNUM_DOC;
-                            // wie neu nummerieren ?
-                            // SW-UI erlaubt Nummer nur bei FTNNUM_DOC
+                            // how to renumber ?
+                            // SW-UI allows number only with FTNNUM_DOC
     if( rDOP.nFtnGet() > 0 && aInfo.eNum == FTNNUM_DOC )
         aInfo.nFtnOffset = rDOP.nFtnGet() - 1;
     rOut.GetDoc().SetFtnInfo( aInfo );
@@ -1501,7 +1483,7 @@ void Ww1Dop::Out(Ww1Shell& rOut)
 
 void Ww1Assoc::Out(Ww1Shell& rOut)
 {
-    //~ mdt: fehlen: FileNext, Dot, DataDoc, HeaderDoc, Criteria1,
+    //~ mdt: missing: FileNext, Dot, DataDoc, HeaderDoc, Criteria1,
     // Criteria2, Criteria3, Criteria4, Criteria5, Criteria6, Criteria7
     SwDocShell *pDocShell(rOut.GetDoc().GetDocShell());
     OSL_ENSURE(pDocShell, "no SwDocShell");
@@ -1545,14 +1527,14 @@ void Ww1StyleSheet::OutDefaults(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 stc
     case 231: // table of contents 2
     case 232: // table of contents 1
         rOut << SvxLRSpaceItem(( 232 - stc ) * 720, 720, 0, 0, RES_LR_SPACE);
-            // Tabulatoren fehlen noch !
+            // tabs still missing !
         break;
     case 233: // index 7
-    case 234: // und index 6
-    case 235: // und index 5
-    case 236: // und index 4
-    case 237: // und index 3
-    case 238: // und index 2
+    case 234: // and index 6
+    case 235: // and index 5
+    case 236: // and index 4
+    case 237: // and index 3
+    case 238: // and index 2
         rOut << SvxLRSpaceItem(( 239 - stc ) * 360, 0, 0, 0, RES_LR_SPACE);
         break;
     case 239: // index 1
@@ -1562,7 +1544,7 @@ void Ww1StyleSheet::OutDefaults(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 stc
     case 241: // index heading
         break;
     case 242:  // footer
-    case 243:{ // ... und header
+    case 243:{ // ... and header
             SvxTabStopItem aAttr(RES_PARATR_TABSTOP);
             SvxTabStop aTabStop;
             aTabStop.GetTabPos() = 4535;  // 8 cm
@@ -1628,7 +1610,7 @@ void Ww1StyleSheet::OutDefaults(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 stc
     case 0: // Normal
         rOut << SvxFontHeightItem(200, 100, RES_CHRATR_FONTSIZE);
         break;
-    default: // selbstdefiniert
+    default: // custom defined
         rOut << SvxFontHeightItem(200, 100, RES_CHRATR_FONTSIZE);
         break;
     }
@@ -1720,13 +1702,13 @@ void Ww1StyleSheet::OutOne(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 stc)
     GetStyle(stc).Out(rOut, rMan);
     rOut.EndStyle();
 }
-// OutOneWithBase() liest einen Style mit OutOne() einen Style ein
-// Jedoch liest er, wenn noch nicht geschehen, den Basisstyle rekursiv ein
+// OutOneWithBase() reads a style using OutOne()
+// Additionally, it reads the base style, if this has not happened yet
 void Ww1StyleSheet::OutOneWithBase(Ww1Shell& rOut, Ww1Manager& rMan,
                                    sal_uInt16 stc, sal_uInt8* pbStopRecur )
 {
-// SH: lineares Einlesen ist Scheisse, da dann BasedOn nicht gesetzt
-// werden kann und ausserdem Toggle- und Modify-Attrs (z.B. Tabs ) nicht gehen.
+// SH: reading linearly is shit, because BasedOn cannot be set. Also,
+// toggle and modify attributes (tabs, for example) don't work.
 
     Ww1Style& rSty = GetStyle(stc);
     sal_uInt16 nBase = rSty.GetnBase();
@@ -1736,7 +1718,7 @@ void Ww1StyleSheet::OutOneWithBase(Ww1Shell& rOut, Ww1Manager& rMan,
         && !pbStopRecur[nBase] ){
 
         pbStopRecur[nBase] = 1;
-        OutOneWithBase( rOut, rMan, nBase, pbStopRecur ); // Rekursiv
+        OutOneWithBase( rOut, rMan, nBase, pbStopRecur ); // Recursive
     }
     OutOne( rOut, rMan, stc );
 }
@@ -1747,12 +1729,12 @@ void Ww1StyleSheet::Out(Ww1Shell& rOut, Ww1Manager& rMan)
     sal_uInt8 bStopRecur[256];
     memset( bStopRecur, sal_False, sizeof(bStopRecur) );
 
-// 1. Durchlauf: Styles mit Basisstyles rekursiv
+// First pass: Styles with base styles recursively
     for (stc=0;stc<Count();stc++)
         if (GetStyle(stc).IsUsed() && !rOut.IsStyleImported( stc ) )
             OutOneWithBase( rOut, rMan, stc, bStopRecur );
 
-// 2. Durchlauf: Follow-Styles
+// Second pass: Follow-Styles
     for (stc=0;stc<Count();stc++){
         Ww1Style& rSty = GetStyle(stc);
         if ( rSty.IsUsed() ){
@@ -1772,9 +1754,7 @@ static sal_uLong GuessPicSize(W1_PIC* pPic)
     return 120L + (sal_uLong)padx * maxy;
 }
 
-// folgende methode schreibt eine windows-.BMP-datei aus einem
-// embeddeten bild in ww-1 dateien
-// gelesen wird 4-bit format, geschrieben jedoch 8-bit.
+// Reads 4-bit format, writes 8-bit
 void Ww1Picture::WriteBmp(SvStream& rOut)
 {
     long nSize = pPic->lcbGet() - (sizeof(*pPic)-sizeof(pPic->rgb));
@@ -1919,8 +1899,8 @@ void Ww1Picture::Out(Ww1Shell& rOut, Ww1Manager& /*rMan*/)
         }
         break;
     }
-    case 94: // embedded name SH:??? Was denn nun ? Embeddet oder Name ?
-    case 98: // TIFF-Name
+    case 94: // embedded name SH:??? Which one is it? Embedded or Name ?
+    case 98: // TIFF name
     {
         OUString aDir( (sal_Char*)pPic->rgbGet(),
                 (sal_uInt16)(pPic->lcbGet() - (sizeof(*pPic)-sizeof(pPic->rgb))),
@@ -1947,8 +1927,7 @@ void Ww1Picture::Out(Ww1Shell& rOut, Ww1Manager& /*rMan*/)
 
 void Ww1HeaderFooter::Start(Ww1Shell& rOut, Ww1Manager& rMan)
 {
-    // wird sowieso nur bei SEPs aufgerufen, keine weitere pruefung
-    // noetig:
+    // Only gets called for SEPs anyway, no further validation necessary:
     if (!rMan.Pushed())
     {
         while (++(*this))
diff --git a/sw/source/filter/ww1/w1par.cxx b/sw/source/filter/ww1/w1par.cxx
index cef5b59..f7861b5 100644
--- a/sw/source/filter/ww1/w1par.cxx
+++ b/sw/source/filter/ww1/w1par.cxx
@@ -27,7 +27,7 @@
 #include <swerror.h>
 #include <statstr.hrc>
 
-// Initialisieren der Feld-FilterFlags
+// Initializing the field FilterFlags
 static sal_uLong WW1_Read_FieldIniFlags()
 {
     // sal_uInt16 i;
@@ -47,25 +47,22 @@ static sal_uLong WW1_Read_FieldIniFlags()
 }
 
 // StarWriter-Interface
-// Eine Methode liefern die call-Schnittstelle fuer den Writer.
-// Read() liest eine Datei. hierzu werden zwei Objekte erzeugt, die Shell,
-// die die Informationen aufnimmt und der Manager der sie aus der Datei liest.
-// Diese werden dann einfach per Pipe 'uebertragen'.
+// One method returns the call interface for the Writer.
+// Read() reads a file. For this, two objects get created. The Shell,
+// which collects all information, and the manager, which reads it
+// from the file.
 sal_uLong WW1Reader::Read(SwDoc& rDoc, const OUString& rBaseURL, SwPaM& rPam, const OUString& /*cName*/)
 {
     sal_uLong nRet = ERR_SWG_READ_ERROR;
     OSL_ENSURE(pStrm!=NULL, "W1-Read ohne Stream");
     if (pStrm != NULL)
     {
-        sal_Bool bNew = !bInsertMode;           // New Doc ( kein Einfuegen )
+        sal_Bool bNew = !bInsertMode;           // New Doc ( no insert )
 
-        // erstmal eine shell konstruieren: die ist schnittstelle
-        // zum writer-dokument
         sal_uLong nFieldFlags = WW1_Read_FieldIniFlags();
         Ww1Shell* pRdr = new Ww1Shell( rDoc, rPam, rBaseURL, bNew, nFieldFlags );
         if( pRdr )
         {
-            // dann den manager, der liest die struktur des word-streams
             Ww1Manager* pMan = new Ww1Manager( *pStrm, nFieldFlags );
             if( pMan )
             {
@@ -74,24 +71,16 @@ sal_uLong WW1Reader::Read(SwDoc& rDoc, const OUString& rBaseURL, SwPaM& rPam, co
                     ::StartProgress( STR_STATSTR_W4WREAD, 0, 100,
                                         rDoc.GetDocShell() );
                     ::SetProgressState( 0, rDoc.GetDocShell() );
-                    // jetzt nur noch alles rueberschieben
+                    // just push everything over now
                     *pRdr << *pMan;
                     if( !pMan->GetError() )
-                        // und nur hier, wenn kein fehler auftrat
-                        // fehlerfreiheit melden
-                        nRet = 0; // besser waere: WARN_SWG_FEATURES_LOST;
+                        // signal absence of errors
+                        nRet = 0; // would be better: WARN_SWG_FEATURES_LOST;
                     ::EndProgress( rDoc.GetDocShell() );
                 }
                 else
                 {
                     if( pMan->GetFib().GetFIB().fComplexGet() )
-                        // Attention: hier muss eigentlich ein Error
-                        // wegen Fastsave kommen, das der PMW-Filter
-                        // das nicht unterstuetzt. Stattdessen temporaer
-                        // nur eine Warnung, bis die entsprechende
-                        // Meldung und Behandlung weiter oben eingebaut ist.
-                        // nRet = WARN_WW6_FASTSAVE_ERR;
-                        // Zum Einchecken mit neuem String:
                         nRet = ERR_WW6_FASTSAVE_ERR;
                 }
             }
@@ -103,11 +92,11 @@ sal_uLong WW1Reader::Read(SwDoc& rDoc, const OUString& rBaseURL, SwPaM& rPam, co
     return nRet;
 }
 
-// Die Shell ist die Schnittstelle vom Filter zum Writer. Sie ist
-// abgeleitet von der mit ww-filter gemeinsam benutzten Shell
-// SwFltShell und enthaelt alle fuer ww1 noetigen Erweiterungen. Wie
-// in einen Stream werden alle Informationen, die aus der Datei
-// gelesen werden, in die shell ge'piped'.
+// The shell is the interface from filter to Writer. It is derived
+// from SwFltShell and contains all relevant extensions for ww1.
+// SwFltShell is used in common with ww-filter. Information read from
+// the file gets 'piped' into the shell, like would be done for a
+// stream.
 Ww1Shell::Ww1Shell( SwDoc& rD, SwPaM& rPam, const OUString& rBaseURL, sal_Bool bNew, sal_uLong nFieldFlags)
     : SwFltShell(&rD, rPam, rBaseURL, bNew, nFieldFlags)
 {
diff --git a/sw/source/filter/ww1/w1struct.hxx b/sw/source/filter/ww1/w1struct.hxx
index 058ad93..a1fa8f9 100644
--- a/sw/source/filter/ww1/w1struct.hxx
+++ b/sw/source/filter/ww1/w1struct.hxx
@@ -597,7 +597,7 @@ struct W1_FFN ///////////////////////////////////////// Font Descriptor
         return (sal_uInt16)((fFlagsGet() >> 4) & 7); }
     // sal_uInt8 : 1;// 0x1:80  reserved
     sal_uInt8 szFfn[65];// 0x6      zero terminated string that records name of font.
-                            // Vorsicht: Dieses Array kann auch kleiner sein!!!
+                            // Careful: the array may be smaller!!!
                             // Possibly followed by a second sz which records the name of an
                             // alternate font to use if the first named font does not exist
                             // on this system. Maximal size of szFfn is 65 characters.
@@ -620,7 +620,7 @@ struct W1_PHE // Paragraph Height
     SVBT16 dxaCol;
     sal_uInt16 dxaColGet() {
         return SVBT16ToShort(dxaCol); }
-    SVBT16 xxx; // beachte die dreifachnutzung.... siehe doc.
+    SVBT16 xxx; // note the triple usage.... see doc.
     sal_uInt16 dylHeightGet() {
         return SVBT16ToShort(xxx); }
     sal_uInt16 dylLineGet() {


More information about the Libreoffice-commits mailing list