This is an automated email from the ASF dual-hosted git repository.

petko pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit ec1e1229ce3e3a7a0adb081605d11ac8e86159a4
Author: Peter <legi...@users.noreply.github.com>
AuthorDate: Mon Jul 24 20:03:39 2023 +0200

    Translate German comments in swhtml.cxx (#167)
    
    * translation of swhtml, first pass
    
    * swhtml translation second pass
    
    * fixed spelling paragraf, Attributs
    translation of assert messages
    
    * header translation first pass
    
    * Update swhtml.hxx
    
    - fixed code spacing issues
    - Force zero spacing
    - changed translation
           Number of attrs still to be closed with a value of
      to
          open attrs, with different values
    
    * fixed various translations
    
    * Update various translations
    
    * Update various translations
    
    * fixed indent of function InsertControl
    
    * Update translation swhtml.cxx
    
    * Update translations swhtml.hxx
    
    * Update translation swhtml.cxx
---
 main/sw/source/filter/html/swhtml.cxx | 1081 ++++++++++++++++-----------------
 main/sw/source/filter/html/swhtml.hxx |  495 ++++++++-------
 2 files changed, 766 insertions(+), 810 deletions(-)

diff --git a/main/sw/source/filter/html/swhtml.cxx 
b/main/sw/source/filter/html/swhtml.cxx
index 2bcb9a6d4c..572b64d519 100644
--- a/main/sw/source/filter/html/swhtml.cxx
+++ b/main/sw/source/filter/html/swhtml.cxx
@@ -90,9 +90,9 @@
 #include <expfld.hxx>
 #include <poolfmt.hxx>
 #include <pagedesc.hxx>
-#include <IMark.hxx>           // fuer SwBookmark ...
+#include <IMark.hxx>           // for SwBookmark ...
 #include <docsh.hxx>
-#include <editsh.hxx>          // fuer Start/EndAction
+#include <editsh.hxx>          // for Start/EndAction
 #include <docufld.hxx>
 #include <swcss1.hxx>
 #include <htmlvsh.hxx>
@@ -106,7 +106,7 @@
 
 #include <sfx2/viewfrm.hxx>
 
-#include <statstr.hrc>          // ResId fuer Statusleiste
+#include <statstr.hrc>          // ResId for Statusbar
 #include <swerror.h>
 
 #define FONTSIZE_MASK                  7
@@ -198,7 +198,7 @@ String HTMLReader::GetTemplateName() const
 
 int HTMLReader::SetStrmStgPtr()
 {
-       ASSERT( pMedium, "Wo ist das Medium??" );
+       ASSERT( pMedium, "Where is the medium??" );
 
        if( pMedium->IsRemote() || !pMedium->IsStorage() )
        {
@@ -209,12 +209,12 @@ int HTMLReader::SetStrmStgPtr()
 
 }
 
-       // Aufruf fuer die allg. Reader-Schnittstelle
+       // Call of generic Read Interface
 sal_uLong HTMLReader::Read( SwDoc &rDoc, const String& rBaseURL, SwPaM &rPam, 
const String & rName )
 {
        if( !pStrm )
        {
-               ASSERT( pStrm, "HTML-Read ohne Stream" );
+               ASSERT( pStrm, "HTML-Read without Stream" );
                return ERR_SWG_READ_ERROR;
        }
 
@@ -223,8 +223,8 @@ sal_uLong HTMLReader::Read( SwDoc &rDoc, const String& 
rBaseURL, SwPaM &rPam, co
                Reader::SetNoOutlineNum( rDoc );
                Reader::ResetFrmFmts( rDoc );
 
-               // Die HTML-Seitenvorlage setzen, wenn des kein HTML-Dokument 
ist,
-               // sonst ist sie schon gesetzt.
+               // set HTML-template, if the document is not html,
+               // else it is set.
                if( !rDoc.get(IDocumentSettingAccess::HTML_MODE) )
                {
             rDoc.InsertPoolItem( rPam, SwFmtPageDesc(
@@ -232,7 +232,7 @@ sal_uLong HTMLReader::Read( SwDoc &rDoc, const String& 
rBaseURL, SwPaM &rPam, co
                }
        }
 
-       // damit keiner das Doc klaut!
+       // lock to prevent stealing of the Doc!
        rDoc.acquire();
        sal_uLong nRet = 0;
        SvParserRef xParser = new SwHTMLParser( &rDoc, rPam, *pStrm,
@@ -250,7 +250,7 @@ sal_uLong HTMLReader::Read( SwDoc &rDoc, const String& 
rBaseURL, SwPaM &rPam, co
                sErr += ',';
                sErr += 
String::CreateFromInt32((sal_Int32)xParser->GetLinePos());
 
-               // den Stream als Fehlernummer Transporter benutzen
+               // use Stream to carry the error number
                nRet = *new StringErrorInfo( ERR_FORMAT_ROWCOL, sErr,
                                                                        
ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
        }
@@ -335,7 +335,7 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, 
SvStream& rIn,
        pPam = new SwPaM( *rCrsr.GetPoint() );
        memset( &aAttrTab, 0, sizeof( _HTMLAttrTable ));
 
-       // Die Font-Groessen 1-7 aus der INI-Datei lesen
+       // read Font-size 1-7 from INI-file 
        SvxHtmlOptions* pHtmlOptions = SvxHtmlOptions::Get();
        aFontHeights[0] = pHtmlOptions->GetFontSize( 0 ) * 20;
        aFontHeights[1] = pHtmlOptions->GetFontSize( 1 ) * 20;
@@ -357,8 +357,8 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, 
SvStream& rIn,
         pDoc->SetDefault( aFontHeight );
     }
 
-       // Waehrend des Imports in den HTML-Modus schalten, damit die
-       // richrigen Vorlagen angelegt werden
+       // during import switch to HTML-Mode, in order
+       // to set correct templates
        bOldIsHTMLMode = pDoc->get(IDocumentSettingAccess::HTML_MODE);
        pDoc->set(IDocumentSettingAccess::HTML_MODE, true);
 
@@ -379,13 +379,13 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& 
rCrsr, SvStream& rIn,
        }
        pCSS1Parser->SetDfltEncoding( gsl_getSystemTextEncoding() );
 
-       // Timer nur bei ganz normalen Dokumenten aufsetzen!
+       // use Timer only with normal Documents!
        SwDocShell* pDocSh = pDoc->GetDocShell();
        if( pDocSh )
        {
-               bViewCreated = sal_True;                        // nicht, 
synchron laden
+               bViewCreated = sal_True;                        // do not load 
synchron
 
-               // es ist ein Sprungziel vorgegeben.
+               // a jumppoint is set.
 
                if( pMed )
                {
@@ -412,9 +412,9 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, 
SvStream& rIn,
                                        else if( sCmp.EqualsAscii( 
pMarkToOutline ) ||
                                                        sCmp.EqualsAscii( 
pMarkToText ) ||
                                                        sCmp.EqualsAscii( 
pMarkToFrame ) )
-                                               eJumpTo = JUMPTO_NONE;  // das 
ist nichts gueltiges!
+                                               eJumpTo = JUMPTO_NONE;  // this 
is not valid!
                                        else
-                                               // ansonsten ist das ein 
normaler (Book)Mark
+                                               // else it is a normal 
(Book)Mark
                                                nPos = STRING_LEN;
                                }
                                else
@@ -431,7 +431,7 @@ SwHTMLParser::SwHTMLParser( SwDoc* pD, const SwPaM& rCrsr, 
SvStream& rIn,
 __EXPORT SwHTMLParser::~SwHTMLParser()
 {
 #ifdef DBG_UTIL
-       ASSERT( !nContinue, "DTOR im Continue - Das geht schief!!!" );
+       ASSERT( !nContinue, "DTOR in Continue - This will not work!!!" );
 #endif
        sal_Bool bAsync = pDoc->IsInLoadAsynchron();
        pDoc->SetInLoadAsynchron( sal_False );
@@ -440,11 +440,11 @@ __EXPORT SwHTMLParser::~SwHTMLParser()
        if( pDoc->GetDocShell() && nEventId )
                Application::RemoveUserEvent( nEventId );
 
-       // das DocumentDetected kann ggfs. die DocShells loeschen, darum 
nochmals
-       // abfragen
+       // DocumentDetected may delete DocShells,
+       // so requst it again
        if( pDoc->GetDocShell() )
        {
-               // Gelinkte Bereiche updaten
+               // update linked areas
         sal_uInt16 nLinkMode = pDoc->getLinkUpdateMode( true );
                if( nLinkMode != NEVER && bAsync &&
                        
SFX_CREATE_MODE_INTERNAL!=pDoc->GetDocShell()->GetCreateMode() )
@@ -462,7 +462,7 @@ __EXPORT SwHTMLParser::~SwHTMLParser()
 
        if( aSetAttrTab.Count() )
        {
-               ASSERT( !aSetAttrTab.Count(),"Es stehen noch Attribute auf dem 
Stack" );
+               ASSERT( !aSetAttrTab.Count(),"There are still attributes on the 
stack" );
                aSetAttrTab.DeleteAndDestroy( 0, aSetAttrTab.Count() );
        }
 
@@ -472,12 +472,12 @@ __EXPORT SwHTMLParser::~SwHTMLParser()
        DeleteFormImpl();
        DeleteFootEndNoteImpl();
 
-       ASSERT( !pTable, "Es existiert noch eine offene Tabelle" );
+       ASSERT( !pTable, "There is still one open table" );
        delete pImageMaps;
        //delete pTable;
 
        ASSERT( !pPendStack,
-                       "SwHTMLParser::~SwHTMLParser: Hier sollte es keinen 
Pending-Stack mehr geben" );
+                       "SwHTMLParser::~SwHTMLParser: There should be no more 
pending stack here" );
        while( pPendStack )
        {
                SwPendingStack* pTmp = pPendStack;
@@ -488,7 +488,7 @@ __EXPORT SwHTMLParser::~SwHTMLParser()
 
        if( !pDoc->release() )
        {
-               // keiner will mehr das Doc haben, also weg damit
+               // no more use for Doc, delete it
                delete pDoc;
         pDoc = NULL;
        }
@@ -512,7 +512,7 @@ IMPL_LINK( SwHTMLParser, AsyncCallback, void*, /*pVoid*/ )
     if( ( pDoc->GetDocShell() && pDoc->GetDocShell()->IsAbortingImport() )
         || 1 == pDoc->getReferenceCount() )
     {
-        // wurde der Import vom SFX abgebrochen?
+        // Import of SFX aborted?
         eState = SVPAR_ERROR;
     }
     // <--
@@ -523,9 +523,9 @@ IMPL_LINK( SwHTMLParser, AsyncCallback, void*, /*pVoid*/ )
 
 SvParserState __EXPORT SwHTMLParser::CallParser()
 {
-       // einen temporaeren Index anlegen, auf Pos 0 so wird er nicht bewegt!
+       // set tempory Index, on Pos 0 in order avoid moving!
        pSttNdIdx = new SwNodeIndex( pDoc->GetNodes() );
-       if( !IsNewDoc() )               // in ein Dokument einfuegen ?
+       if( !IsNewDoc() )               // insert to a new document ?
        {
                const SwPosition* pPos = pPam->GetPoint();
 
@@ -561,7 +561,7 @@ SvParserState __EXPORT SwHTMLParser::CallParser()
                }
        }
 
-       // Laufbalken anzeigen
+       // show progress bar
        else if( !GetMedium() || !GetMedium()->IsRemote() )
        {
                rInput.Seek(STREAM_SEEK_TO_END);
@@ -582,27 +582,25 @@ SvParserState __EXPORT SwHTMLParser::CallParser()
 void __EXPORT SwHTMLParser::Continue( int nToken )
 {
 #ifdef DBG_UTIL
-       ASSERT( !nContinue, "Continue im Continue - Das sollte doch nicht sein, 
oder?" );
+       ASSERT( !nContinue, "Continue im Continue - That should not be, 
shouldn't it?" );
        nContinue++;
 #endif
 
-       // Wenn der Import (vom SFX) abgebrochen wurde, wird ein Fehler
-       // gesetzt aber trotzdem noch weiter gemacht, damit vernuenftig
-       // aufgeraeumt wird.
+       // if Import (vom SFX) has been aborted, an error is set
+       // in order to clean up, the process continues
        ASSERT( SVPAR_ERROR!=eState,
-                       "SwHTMLParser::Continue: bereits ein Fehler gesetzt" );
+                       "SwHTMLParser::Continue: already set an error" );
        if( pDoc->GetDocShell() && pDoc->GetDocShell()->IsAbortingImport() )
                eState = SVPAR_ERROR;
 
-       // Die ViewShell vom Dokument holen, merken und als aktuelle setzen.
+       // get ViewShell from Document, memorize and set as current.
        ViewShell *pInitVSh = CallStartAction();
 
        if( SVPAR_ERROR != eState && GetMedium() && !bViewCreated )
        {
-               // Beim ersten Aufruf erstmal returnen, Doc anzeigen
-               // und auf Timer Callback warten.
-               // An dieser Stelle wurde im CallParser gerade mal ein Zeichen
-               // gelesen und ein SaveState(0) gerufen.
+               // Return at first call, show Doc and wait for timer callback. 
+               // At this point, CallParser read only one character and called 
+               // SaveState(0)
                eState = SVPAR_PENDING;
                bViewCreated = sal_True;
                pDoc->SetInLoadAsynchron( sal_True );
@@ -621,7 +619,7 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
                pDoc->GetDocShell()->EnableSetModified( sal_False );
        }
 
-       // waehrend des einlesens kein OLE-Modified rufen
+       // during read. do not call OLE-Modify 
        Link aOLELink( pDoc->GetOle2Link() );
        pDoc->SetOle2Link( Link() );
 
@@ -629,31 +627,30 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
     bool const bWasUndo = pDoc->GetIDocumentUndoRedo().DoesUndo();
     pDoc->GetIDocumentUndoRedo().DoUndo(false);
 
-       // Wenn der Import abgebrochen wird, kein Continue mehr rufen.
-       // Falls ein Pending-Stack existiert aber durch einen Aufruf
-       // von NextToken dafuer sorgen, dass der Pending-Stack noch
-       // beendet wird.
+       // If Import aborts, do not call Continue.
+       // if a Pending-Stack exists, call NextToken.
+       // NextToken will take care of clean up.
        if( SVPAR_ERROR == eState )
        {
                ASSERT( !pPendStack || pPendStack->nToken,
-                               "SwHTMLParser::Continue: Pending-Stack ohne 
Token" );
+                               "SwHTMLParser::Continue: Pending-Stack without 
Token" );
                if( pPendStack && pPendStack->nToken )
                        NextToken( pPendStack->nToken );
                ASSERT( !pPendStack,
-                               "SwHTMLParser::Continue: Es gibt wieder einen 
Pend-Stack" );
+                               "SwHTMLParser::Continue: there is still a 
Pend-Stack" );
        }
        else
        {
                HTMLParser::Continue( pPendStack ? pPendStack->nToken : nToken 
);
        }
 
-       // Laufbalken wieder abschalten
+       // switch progress bar off
        EndProgress( pDoc->GetDocShell() );
 
        sal_Bool bLFStripped = sal_False;
        if( SVPAR_PENDING != GetStatus() )
        {
-               // noch die letzten Attribute setzen
+               // set last Attributes
                {
                        if( aScriptSource.Len() )
                        {
@@ -673,15 +670,15 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
                                        EndObject();
                        }
 
-                       // ggf. ein noch vorhandes LF hinter dem letzen Absatz 
entfernen
+                       // remove LF behind last paragaf if exists
                        if( IsNewDoc() )
                                bLFStripped = StripTrailingLF() > 0;
 
-                       // noch offene Nummerierungen beenden.
+                       // end open nummerations.
                        while( GetNumInfo().GetNumRule() )
                                EndNumBulList();
 
-                       ASSERT( !nContextStMin, "Es gibt geschuetzte Kontexte" 
);
+                       ASSERT( !nContextStMin, "There are protected contexts" 
);
                        nContextStMin = 0;
                        while( aContexts.Count() )
                        {
@@ -698,11 +695,11 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
 
                        SetAttr( sal_False );
 
-                       // Noch die erst verzoegert gesetzten Styles setzen
+                       // set deferred Styles
                        pCSS1Parser->SetDelayedStyles();
                }
 
-               // den Start wieder korrigieren
+               // fix again Start
                if( !IsNewDoc() && pSttNdIdx->GetIndex() )
                {
                        SwTxtNode* pTxtNode = pSttNdIdx->GetNode().GetTxtNode();
@@ -710,7 +707,7 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
                        if( pTxtNode && pTxtNode->CanJoinNext( &aNxtIdx ))
                        {
                                xub_StrLen nStt = pTxtNode->GetTxt().Len();
-                               // wenn der Cursor noch in dem Node steht, dann 
setze in an das Ende
+                               // if Cursor is in Node, set it to the end
                                if( pPam->GetPoint()->nNode == aNxtIdx )
                                {
                                        pPam->GetPoint()->nNode = *pSttNdIdx;
@@ -718,11 +715,11 @@ void __EXPORT SwHTMLParser::Continue( int nToken )
                                }
 
 #ifdef DBG_UTIL
-// !!! sollte nicht moeglich sein, oder ??
+// !!! should not be possible, should it ??
 ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( sal_True ).nNode.GetIndex(),
-                       "Pam.Bound1 steht noch im Node" );
+                       "Pam.Bound1 is in Node" );
 ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( sal_False 
).nNode.GetIndex(),
-                       "Pam.Bound2 steht noch im Node" );
+                       "Pam.Bound2 is in Node" );
 
 if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_True ).nNode.GetIndex() )
 {
@@ -737,7 +734,7 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
                                        pTxtNode->GetTxt().Len() + nCntPos );
 }
 #endif
-                               // Zeichen Attribute beibehalten!
+                               // keep character Attribute!
                                SwTxtNode* pDelNd = 
aNxtIdx.GetNode().GetTxtNode();
                                if( pTxtNode->GetTxt().Len() )
                                        pDelNd->FmtToTxtAttr( pTxtNode );
@@ -752,12 +749,12 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
        {
                if( nMissingImgMaps )
                {
-                       // es fehlen noch ein paar Image-Map zuordungen.
-                       // vielleicht sind die Image-Maps ja jetzt da?
+                       // some image maps were not assigned.
+                       // Maybe their Image-Maps are already there?
                        ConnectImageMaps();
                }
 
-               // jetzt noch den letzten ueberfluessigen Absatz loeschen
+               // now delete the last needless paragraph
                SwPosition* pPos = pPam->GetPoint();
                if( !pPos->nContent.GetIndex() && !bLFStripped )
                {
@@ -816,22 +813,23 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
                        }
                }
 
-               // nun noch das SplitNode vom Anfang aufheben
+               // now cancel the SplitNode from the start
                else if( !IsNewDoc() )
                {
-                       if( pPos->nContent.GetIndex() )         // dann gabs am 
Ende kein <P>,
-                               pPam->Move( fnMoveForward, fnGoNode );  // als 
zum naechsten Node
+                       if( pPos->nContent.GetIndex() )         // then there 
was no <P> at the end
+                               pPam->Move( fnMoveForward, fnGoNode );  // to 
the next node
                        SwTxtNode* pTxtNode = 
pPos->nNode.GetNode().GetTxtNode();
                        SwNodeIndex aPrvIdx( pPos->nNode );
                        if( pTxtNode && pTxtNode->CanJoinPrev( &aPrvIdx ) &&
                                *pSttNdIdx <= aPrvIdx )
                        {
-                               // eigentlich muss hier ein JoinNext erfolgen, 
aber alle Cursor
-                               // usw. sind im pTxtNode angemeldet, so dass 
der bestehen
-                               // bleiben MUSS.
+                               // actually a JoinNext must be done here, but 
all cursors
+                               // etc. are registered in the pTxtNode, 
+                               // which MUST remain
 
-                               // Absatz in Zeichen-Attribute umwandeln, aus 
dem Prev die
-                               // Absatzattribute und die Vorlage uebernehmen!
+
+                               // Convert paragraph to character attributes, 
+                               // take over the paragraph attributes and the 
template from the Prev!
                                SwTxtNode* pPrev = 
aPrvIdx.GetNode().GetTxtNode();
                                pTxtNode->ChgFmtColl( pPrev->GetTxtColl() );
                                pTxtNode->FmtToTxtAttr( pPrev );
@@ -849,7 +847,7 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
                        }
                }
 
-               // und noch die DocumentInfo aufbereiten
+               // and prepare DocumentInfo
                if( IsNewDoc() )
                {
             SwDocShell *pDocShell(pDoc->GetDocShell());
@@ -878,8 +876,8 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
        if( SVPAR_PENDING != GetStatus() )
                delete pSttNdIdx, pSttNdIdx = 0;
 
-       // sollte der Parser der Letzte sein, der das Doc haelt, dann braucht
-       // man hier auch nichts mehr tun, Doc wird gleich zerstoert!
+       // should the parser be the last one to hold the doc, 
+       // no need to do anything here either, doc is about to be destroyed!
        if( 1 < pDoc->getReferenceCount() )
        {
                if( bWasUndo )
@@ -889,10 +887,10 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
         }
                else if( !pInitVSh )
                {
-                       // Wenn zu Beginn des Continue keine Shell vorhanden 
war,
-                       // kann trotzdem mitlerweile eine angelegt worden sein.
-                       // In dieses Fall stimmt das bWasUndo-Flag nicht und
-                       // wir muessen das Undo noch anschalten.
+                       // If there was no shell at the beginning of the 
Continue,
+                       // nevertheless one may have been created in the 
meantime.
+                       // In this case the bWasUndo flag is not correct and 
+                       // a switch on the undo is necessary.
                        ViewShell *pTmpVSh = CheckActionViewShell();
                        if( pTmpVSh )
             {
@@ -911,10 +909,11 @@ if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( sal_False 
).nNode.GetIndex() )
        }
 
 
-       // Wenn die Dokuemnt-ViewShell noch existiert und eine Action
-       // offen ist (muss bei Abbruch nicht sein), die Action beenden,
-       // uns von der Shell abmelden und schliesslich die alte Shell
-       // wieder rekonstruieren.
+       // If the Dokuemnt-ViewShell still exists and an Action
+       // is open (doesn't have to be on abort), terminate the action,
+       // log out of the shell and finally reconstruct the old shell
+       // again.
+
        CallEndAction( sal_True );
 
 #ifdef DBG_UTIL
@@ -929,9 +928,9 @@ void SwHTMLParser::Modify( const SfxPoolItem* pOld, const 
SfxPoolItem *pNew )
        case RES_OBJECTDYING:
                if( ((SwPtrMsgPoolItem *)pOld)->pObject == GetRegisteredIn() )
                {
-                       // dann uns selbst beenden
+                       // then finish ourselves
                        GetRegisteredInNonConst()->Remove( this );
-                       ReleaseRef();                                   // 
ansonsten sind wir fertig!
+                       ReleaseRef();                                   // 
otherwise we are done!
                }
                break;
        }
@@ -939,7 +938,7 @@ void SwHTMLParser::Modify( const SfxPoolItem* pOld, const 
SfxPoolItem *pNew )
 
 void SwHTMLParser::DocumentDetected()
 {
-       ASSERT( !bDocInitialized, "DocumentDetected mehrfach aufgerufen" );
+       ASSERT( !bDocInitialized, "DocumentDetected called multiple times" );
        bDocInitialized = sal_True;
        if( IsNewDoc() )
        {
@@ -949,25 +948,24 @@ void SwHTMLParser::DocumentDetected()
                CallEndAction( sal_True, sal_True );
 
         pDoc->GetIDocumentUndoRedo().DoUndo(false);
-               // Durch das DocumentDetected wurde im allgemeinen eine
-               // ViewShell angelegt. Es kann aber auch sein, dass sie
-               // erst spaeter angelegt wird, naemlich dann, wenn die UI
-               // gecaptured ist.
+               // By DocumentDetected a ViewShell has been created. 
+               // But it can also be that it is created later,
+               // namely when the UI is is captured.
                CallStartAction();
        }
 }
 
-// wird fuer jedes Token gerufen, das in CallParser erkannt wird
+// is called for each token that is recognized in CallParser
 void __EXPORT SwHTMLParser::NextToken( int nToken )
 {
        if( ( pDoc->GetDocShell() && pDoc->GetDocShell()->IsAbortingImport() )
                || 1 == pDoc->getReferenceCount() )
        {
-               // wurde der Import vom SFX abgebrochen? Wenn ein Pending-Stack
-               // existiert den noch aufraumen
+               // was the import aborted by the SFX? If a pending stack
+               // still exists to clean it up
                eState = SVPAR_ERROR;
                ASSERT( !pPendStack || pPendStack->nToken,
-                               "SwHTMLParser::NextToken: Pending-Stack ohne 
Token" );
+                               "SwHTMLParser::NextToken: pending stack without 
token" );
                if( 1 == pDoc->getReferenceCount() || !pPendStack )
                        return ;
        }
@@ -977,27 +975,26 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
        {
                switch( nToken )
                {
-                       // Tabellen werden ueber rekusive Methodenaufrufe 
gelesen
+                       // tables are read via recusive method calls
                case HTML_TABLE_ON:
-                       // Bei CSS-Deklarationen muss evtl. noch auf das
-                       // Ende eines File-Downloads gewartet werden.
+                       // For CSS declarations you may have to wait for the
+                       // end of a file download.
                case HTML_LINK:
-                       // Bei Controls muss evtl. noch die Groesse gesetzt 
werden.
+                       // For controls, the size may still have to be set.
                case HTML_INPUT:
                case HTML_TEXTAREA_ON:
                case HTML_SELECT_ON:
                case HTML_SELECT_OFF:
                        break;
                default:
-                       ASSERT( !pPendStack, "Unbekanntes Token fuer 
Pending-Stack" );
+                       ASSERT( !pPendStack, "Unknown token for pending stack" 
);
                        break;
                }
        }
 #endif
 
-       // Die folgeneden Spezialfaelle muessen vor der Filter-Detection 
behandelt
-       // werden, denn der Inhalt des Titels, etc. wird auch in Netcape nicht
-       // zur Filter-Detection herangezogen.
+       // The following special cases have to be handled before the filter 
detection
+       // because the content of the title, etc. is not used for filter even 
in Netcape.
        if( !pPendStack )
        {
                if( bInTitle )
@@ -1055,10 +1052,10 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
        }
 
-       // Wenn wir noch nicht wissen, was fuer ein Dokument wir vor uns haben,
-       // versuchen wir das erstmal rauszufinden. Das muss fuer Controls in
-       // Fall vor dem Einfuegen des Controls passieren, weil beim Einfuegen
-       // bereits eine View benoetigt wird.
+       // If we don't know yet, what kind of document we have in front of us,
+       // let's try to find out first. This must be done for controls in
+       // case before inserting the control, because when inserting the control
+       // a view is already needed.
        if( !bDocInitialized )
                DocumentDetected();
 
@@ -1066,14 +1063,13 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
        sal_Bool bUpperSpaceSave = bUpperSpace;
        bUpperSpace = sal_False;
 
-       // Die folgenden Speziallfaelle muessen oder koennen nach der
-       // Filter-Detection erfolgen.
+       // The following special cases must or can be made after the
+       // filter detection.
        if( !pPendStack )
        {
                if( bInFloatingFrame )
                {
-                       // <SCRIPT> wird hier (von uns) ignoriert, weil es auch 
in
-                       // Applets ignoriert wird!
+                       // <SCRIPT> is ignored here (by us), because it is also 
ignored in applets!
                        if( HTML_IFRAME_OFF == nToken )
                        {
                                bCallNextToken = sal_False;
@@ -1107,9 +1103,9 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                else if( pAppletImpl )
                {
-                       // in einem Applet interessieren uns (erstmal) nur 
<PARAM>-Tags
-                       // und das </APPLET>.
-                       // <SCRIPT> wird hier (von Netscape) ignoriert!
+                       // in an applet we are (for now) only interested in 
<PARAM> tags.
+                       // and the </APPLET>.
+                       // <SCRIPT> is ignored here (by Netscape)!
 
                        switch( nToken )
                        {
@@ -1131,9 +1127,8 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                else if( bTextArea )
                {
-                       // in einer TextArea wird alles bis zum </TEXTAREA> als 
Text
-                       // eingefuegt
-                       // <SCRIPT> wird hier (von Netscape) ignoriert!
+                       // in a TextArea everything up to </TEXTAREA> is 
inserted as text.
+                       // <SCRIPT> is ignored here (by Netscape)!
 
                        switch( nToken )
                        {
@@ -1151,7 +1146,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                else if( bSelect )
                {
-                       // MUSS nach bNoScript kommen!
+                       // MUST come after bNoScript!
                        switch( nToken )
                        {
                        case HTML_SELECT_OFF:
@@ -1173,20 +1168,19 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                        case HTML_NOSCRIPT_ON:
                        case HTML_NOSCRIPT_OFF:
                        case HTML_RAWDATA:
-                               // im normalen switch bahandeln
+                               // handle in the normal switch
                                break;
 
                        default:
-                               // ignorieren
+                               // ignore
                                return;
                        }
                }
                else if( pMarquee )
                {
-                       // in einer TextArea wird alles bis zum </TEXTAREA> als 
Text
-                       // eingefuegt
-                       // Die <SCRIPT>-Tags werden vom MS-IE ignoriert, von 
uns das
-                       // geasmte Script
+                       // in a TextArea everything up to </TEXTAREA> is 
inserted as text.
+                       // The <SCRIPT> tags will be ignored by MS-IE, by us the
+                       // whole script
                        switch( nToken )
                        {
                        case HTML_MARQUEE_OFF:
@@ -1234,9 +1228,9 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                else if( aUnknownToken.Len() )
                {
-                       // Unbekannte Token im Header werden nur durch ein 
passendes
-                       // End-Token, </HEAD> oder <BODY> wieder beendet. Darin 
wird Text
-                       // ignoriert.
+                       // Unknown tokens in the header are only terminated by 
a matching
+                       // end token, </HEAD> or <BODY> again. In this text
+                       // is ignored.
                        switch( nToken )
                        {
                        case HTML_UNKNOWNCONTROL_OFF:
@@ -1245,7 +1239,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                        case HTML_FRAMESET_ON:
                        case HTML_HEAD_OFF:
                        case HTML_BODY_ON:
-                       case HTML_IMAGE:                // Warum auch immer 
Netscape das tut.
+                       case HTML_IMAGE:                // For whatever reason 
Netscape does this.
                                aUnknownToken.Erase();
                                break;
                        case HTML_TEXTTOKEN:
@@ -1267,8 +1261,8 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                if( IsNewDoc() )
                {
                        InsertBodyOptions();
-                       // Falls es eine Vorlage fuer die erste oder rechte 
Seite gibt,
-                       // setzen wir die hier.
+                       // If there is a template for the first or right page,
+                       // we set it here.
                        const SwPageDesc *pPageDesc = 0;
                        if( pCSS1Parser->IsSetFirstPageDesc() )
                                pPageDesc = pCSS1Parser->GetFirstPageDesc();
@@ -1414,7 +1408,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                else
                        bGetIDOption = sal_True;
-                       // <BR>s in <PRE> aehneln echten LFs, deshalb kein break
+                       // <BR>s in <PRE> resemble real LFs, therefore no break
 
        case HTML_NEWPARA:
                // CR in PRE/LISTING/XMP
@@ -1422,10 +1416,10 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                        if( HTML_NEWPARA==nToken ||
                                pPam->GetPoint()->nContent.GetIndex() )
                        {
-                               AppendTxtNode(); // lf gibts hier nicht, 
deshalb unkritisch
+                               AppendTxtNode(); // lf does not exist here, 
therefore uncritical
                                SetTxtCollAttrs();
                        }
-                       // Laufbalkenanzeige
+                       // progress bar
                        if( !GetMedium() || !GetMedium()->IsRemote() )
                                ::SetProgressState( rInput.Tell(), 
pDoc->GetDocShell() );
                }
@@ -1450,8 +1444,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                break;
 
        case HTML_TEXTTOKEN:
-               // dann fuege den String ein, ohne das Attribute am Ende
-               // aufgespannt werden.
+        // then insert the string without adding any attributes to the end
                if( aToken.Len() && ' '==aToken.GetChar(0) && !IsReadPRE() )
                {
                        xub_StrLen nPos = pPam->GetPoint()->nContent.GetIndex();
@@ -1479,8 +1472,8 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                                DocumentDetected();
             pDoc->InsertString( *pPam, aToken );
 
-                       // wenn es noch vorlaefige Absatz-Attribute gibt, der 
Absatz aber
-                       // nicht leer ist, dann sind die Absatz-Attribute 
entgueltig.
+            // if there are still preliminary paragraph attributes, but the 
paragraph
+                       // is not empty, then the paragraph attributes are 
invalid.
                        if( aParaAttrs.Count() )
                                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
@@ -1494,8 +1487,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
 
        case HTML_IMAGE:
                InsertImage();
-               // sollte der Parser der Letzte sein, der das Doc haelt, dann 
kann
-               // man hier abbrechen und einen Fehler setzen.
+               // If the parser should be the last one to hold the doc, then 
abort here and set an error.
                if( 1 == pDoc->getReferenceCount() )
                {
                        eState = SVPAR_ERROR;
@@ -1532,20 +1524,19 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
        case HTML_DT_ON:
                if( nOpenParaToken )
                        EndPara();
-               EndDefListItem( 0, sal_False );// <DD>/<DT> beenden und keine 
Vorl. setzen
+               EndDefListItem( 0, sal_False );// <DD>/<DT> quit and set no 
template
                NewDefListItem( nToken );
                break;
 
        case HTML_DD_OFF:
        case HTML_DT_OFF:
-               // siehe HTML_LI_OFF
-               // eigentlich muesste man ein DD/DT jetzt beenden. Da aber sowhl
-               // Netscape als auch Microsoft das nicht tun, machen wir das 
eben
-               // auch nicht.
+               // see HTML_LI_OFF
+               // actually a DD/DT should be terminated now. But since both
+               // Netscape and Microsoft don't do that, we don't do that 
either.
                EndDefListItem( nToken, sal_False );
                break;
 
-       // Bereiche
+       // Areas
        case HTML_DIVISION_ON:
        case HTML_CENTER_ON:
                if( nOpenParaToken )
@@ -1594,7 +1585,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                EndForm();
                break;
 
-       // Vorlagen:
+       // Templates:
        case HTML_PARABREAK_ON:
                if( nOpenParaToken )
                        EndPara( sal_True );
@@ -1640,7 +1631,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                break;
 
        case HTML_PREFORMTXT_OFF:
-               bNoParSpace = sal_True; // der letzte PRE-Absatz muss einen 
Zeilenabstand bekommen
+               bNoParSpace = sal_True; // the last PRE paragraph must get a 
line spacing
                EndTxtFmtColl( HTML_PREFORMTXT_OFF );
                break;
 
@@ -1681,14 +1672,14 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                {
                        if( nOpenParaToken )
                                EndPara();
-                       ASSERT( !pTable, "Tabelle in Tabelle darf hier nicht 
vorkommen" );
+                       ASSERT( !pTable, "Table in table must not occur here" );
                        if( !pTable && (IsNewDoc() || 
!pPam->GetNode()->FindTableNode()) &&
                                (pPam->GetPoint()->nNode.GetIndex() >
                                                        
pDoc->GetNodes().GetEndOfExtras().GetIndex() ||
                                !pPam->GetNode()->FindFootnoteStartNode() ) )
                        {
                                if ( nParaCnt < 5 )
-                                       Show();         // bis hierhin schon 
mal anzeigen
+                                       Show();         // show up to this point
 
                                SvxAdjust eAdjust = aAttrTab.pAdjust
                                        ? ((const 
SvxAdjustItem&)aAttrTab.pAdjust->GetItem()).
@@ -1701,7 +1692,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                }
                break;
 
-       // Listen
+       // Lists
        case HTML_DIRLIST_ON:
        case HTML_MENULIST_ON:
        case HTML_ORDERLIST_ON:
@@ -1727,11 +1718,11 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                        (pPam->GetPoint()->nContent.GetIndex()
                        || HTML_PARABREAK_ON==nOpenParaToken) )
                {
-                       // nure bei <P><LI> den Absatz beenden, aber nicht bei 
<DD><LI>
+                       // only <P><LI> end paragraph, not with <DD><LI>
                        EndPara();
                }
 
-               EndNumBulListItem( 0, sal_False );// <LI>/<LH> beenden und 
keine Vorl. setzen
+               EndNumBulListItem( 0, sal_False );// <LI>/<LH> quit and set no 
template
                NewNumBulListItem( nToken );
                break;
 
@@ -1740,7 +1731,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                EndNumBulListItem( nToken, sal_False );
                break;
 
-       // Attribute :
+       // Attributes :
        case HTML_ITALIC_ON:
                {
             SvxPostureItem aPosture( ITALIC_NORMAL, RES_CHRATR_POSTURE );
@@ -1899,7 +1890,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
        case HTML_HTML_OFF:
        case HTML_HEAD_ON:
        case HTML_TITLE_OFF:
-               break;          // nicht weiter auswerten, oder???
+               break;          // do not go on, right???
        case HTML_HTML_ON:
                {
                        const HTMLOptions *pHTMLOptions = GetOptions();
@@ -1948,7 +1939,7 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
        case HTML_COMMENT:
                if( ( aToken.Len() > 5 ) && ( ! bIgnoreHTMLComments ) )
                {
-                       // als Post-It einfuegen
+                       // insert as Post-It
                        // MIB 8.12.2000: If there are no space characters 
right behind
                        // the <!-- and on front of the -->, leave the comment 
untouched.
                        if( ' ' == aToken.GetChar( 3 ) &&
@@ -1968,10 +1959,9 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                break;
 
        case HTML_MAP_ON:
-               // Image Maps werden asynchron gelesen: Zunaechst wird nur eine
-               // ImageMap angelegt. Die Bereiche kommen spaeter. Trozdem wird
-               // die ImageMap schon in das IMap-Array eingetragen, denn sie
-               // koennte ja schon verwendet werden.
+               // Image Maps are read asynchron: At first setup only an
+               // ImageMap. The Areas are added later. Never the less add
+               // the ImageMap to the IMap-Array, because it could be used
                pImageMap = new ImageMap;
                if( ParseMapOptions( pImageMap) )
                {
@@ -1987,8 +1977,8 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                break;
 
        case HTML_MAP_OFF:
-               // jetzt gibt es keine ImageMap mehr (IMap nicht Loeschen, denn
-               // die stckt ja schon in dem Array!)
+               // the ImageMap does not exist anymore
+               // but do not delete it, since it has been added to the array
                pImageMap = 0;
                break;
 
@@ -2009,13 +1999,13 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                break;
 
        case HTML_UNKNOWNCONTROL_ON:
-               // Im Header muss der Inhalt von unbekannten Token ignoriert 
werden,
-               // es sei denn, das Token faengt mit einem '!' an.
+               // In the header we must ignore the content of unknown tokens, 
+               // except for those starting with '!"
                if( IsInHeader() && !IsReadPRE() && !aUnknownToken.Len() &&
                        sSaveToken.Len() && '!' != sSaveToken.GetChar(0) &&
                        '%' != sSaveToken.GetChar(0) )
                        aUnknownToken = sSaveToken;
-               // kein break
+               // no break
 
        default:
                bInsertUnknown = bKeepUnknown;
@@ -2041,8 +2031,8 @@ void __EXPORT SwHTMLParser::NextToken( int nToken )
                InsertComment( aComment );
        }
 
-       // wenn es noch vorlaefige Absatz-Attribute gibt, der Absatz aber
-       // nicht leer ist, dann sind die Absatz-Attribute entgueltig.
+    // if temporary paragraph attributes exists and the paragraph is
+       // not empty, then paragraph attributes are final
        if( aParaAttrs.Count() && pPam->GetPoint()->nContent.GetIndex() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 }
@@ -2094,13 +2084,13 @@ void lcl_swhtml_getItemInfo( const _HTMLAttr& rAttr,
 
 sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode eMode, sal_Bool 
bUpdateNum )
 {
-       // Ein harter Zeilen-Umbruch am Ende muss immer entfernt werden.
-       // Einen zweiten ersetzen wir durch einen Absatz-Abstand.
+       // A hard line feed has to be always removed.
+       // A second line feed is replaced by a paragraph spacing
        xub_StrLen nLFStripped = StripTrailingLF();
        if( (AM_NOSPACE==eMode || AM_SOFTNOSPACE==eMode) && nLFStripped > 1 )
                eMode = AM_SPACE;
 
-       // die harten Attribute an diesem Absatz werden nie mehr ungueltig
+       // hard attributes in this paragraph can not become invalid
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
@@ -2142,8 +2132,8 @@ sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode 
eMode, sal_Bool bUpdateNu
 
        sal_Bool bRet = pDoc->AppendTxtNode( *pPam->GetPoint() );
 
-       // Zeichen-Attribute aufspalten und ggf keine setzen, die ueber den
-       // ganzen Absatz gesetzt sind
+       // split character attributes  and unset if they range over the
+       // complete paragraph
        const SwNodeIndex& rEndIdx = aOldPos.nNode;
        xub_StrLen nEndCnt = aOldPos.nContent.GetIndex();
        const SwPosition& rPos = *pPam->GetPoint();
@@ -2175,7 +2165,7 @@ sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode 
eMode, sal_Bool bUpdateNu
                                        sal_Bool bInsert = sal_True;
                                        lcl_swhtml_getItemInfo( *pAttr, 
bScript, bFont,
                                                                                
        nScriptItem );
-                                               // den besehrigen Teil setzen
+                                       // set parts which we have so far
                                        if( bInsert && bScript )
                                        {
                                                const SwTxtNode *pTxtNd =
@@ -2221,12 +2211,12 @@ sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode 
eMode, sal_Bool bUpdateNu
                                                        pAttr->Clone( rEndIdx, 
nEndCnt );
                                                pSetAttr->nSttCntnt = nStt;
 
-                                               // Wenn das Attribut den 
gesamten Absatz umspannt, werden
-                                               // alle auesseren Attribute 
nicht mehr beachtet. Deshalb
-                                               // darf es auch nicht in die 
Prev-Liste eines ausseren
-                                               // Attributs eingetragen 
werden, denn dieses wird ja
-                                               // erstmal nicht gesetzt. Das 
fuehrt zu verschiebenungen,
-                                               // wenn Felder ins Rennen 
kommen (siehe #51020#)
+                                               // If the attribute spans the 
entire paragraph, then
+                                               // all other attributes are 
ignored. Therefore
+                                               // it must not be added to the 
prev list of an outer
+                                               // attribute, because this 
attribute is 
+                                               // not set for the time being. 
This leads to shifts,
+                                               // when fields are added to the 
race (see #51020#).
                                                if( !pNext || bWholePara )
                                                {
                                                        sal_uInt16 nTmp = 
pSetAttr->bInsAtStart ? 0
@@ -2241,7 +2231,7 @@ sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode 
eMode, sal_Bool bUpdateNu
                                                _HTMLAttr *pPrev = 
pAttr->GetPrev();
                                                if( pPrev )
                                                {
-                                                       // Die 
Previous-Attribute muessen trotzdem gesetzt werden.
+                                                       // The Previous 
attributes must be set anyway.
                                                        if( !pNext || 
bWholePara )
                                                        {
                                                                sal_uInt16 nTmp 
= pPrev->bInsAtStart ? 0 : aSetAttrTab.Count();
@@ -2271,7 +2261,7 @@ sal_Bool SwHTMLParser::AppendTxtNode( SwHTMLAppendMode 
eMode, sal_Bool bUpdateNu
             pPam->GetNode()->GetTxtNode()->ResetAttr( RES_PARATR_NUMRULE );
     }
 
-    // Attrubute im Absatz davor sollte man jetzt setzen (wegen JavaScript)
+    // because of JavaScript, Attributes in the paragraph should be set now
     SetAttr();
 
        // Now it is time to get rid of all script dependent hints that are
@@ -2393,13 +2383,13 @@ void SwHTMLParser::AddParSpace()
 
 void SwHTMLParser::Show()
 {
-       // Hier wird
-       // - ein EndAction gerufen, damit formatiert wird
-       // - ein Reschedule gerufen,
-       // - die eiegen View-Shell wieder gesetzt
-       // - und Start-Action gerufen
+       // Here
+       // - an EndAction is called, which is formatted
+       // - a Reschedule is called,
+       // - the current view shell is set again
+       // - and start action is called
 
-       ASSERT( SVPAR_WORKING==eState, "Show nicht im Working-State - Das kann 
ins Auge gehen" );
+       ASSERT( SVPAR_WORKING==eState, "Show not in working state - This can 
backfire" );
        ViewShell *pOldVSh = CallEndAction();
 
        GetpApp()->Reschedule();
@@ -2407,16 +2397,15 @@ void SwHTMLParser::Show()
        if( ( pDoc->GetDocShell() && pDoc->GetDocShell()->IsAbortingImport() )
                || 1 == pDoc->getReferenceCount() )
        {
-               // wurde der Import vom SFX abgebrochen?
+               // was the import aborted by SFX?
                eState = SVPAR_ERROR;
        }
 
-       // Die ViewShell nochmal holen, denn sie koennte im Reschedule
-       // zerstoert wirden sein.
+       // Get the ViewShell again, because it could be destroyed during 
reschedule
        ViewShell *pVSh = CallStartAction( pOldVSh );
 
-       // ist der aktuelle Node nicht mehr sichtbar, dann benutzen wir
-       // eine groessere Schrittweite
+       // if the current node is no longer visible, then we use
+       // a larger step size
        if( pVSh )
     {
         nParaCnt = (pPam->GetPoint()->nNode.GetNode().IsInVisibleArea(pVSh))
@@ -2426,14 +2415,14 @@ void SwHTMLParser::Show()
 
 void SwHTMLParser::ShowStatline()
 {
-       // Hier wird
-       // - ein Reschedule gerufen, damit gescrollt werden kann
-       // - die eiegen View-Shell wieder gesetzt
-       // - ein Start/End-Action gerufen, wenn gescrollt wurde.
+       // Here
+       // - a reschedule is called, so that scrolling is possible
+       // - the current view shell is set again
+       // - a start/end action is called if scrolling was done.
 
-       ASSERT( SVPAR_WORKING==eState, "ShowStatLine nicht im Working-State - 
Das kann ins Auge gehen" );
+       ASSERT( SVPAR_WORKING==eState, "ShowStatLine not in working state - 
This can go to the eye" );
 
-       // Laufbalkenanzeige
+       // progress bar
        if( !GetMedium() || !GetMedium()->IsRemote() )
        {
                ::SetProgressState( rInput.Tell(), pDoc->GetDocShell() );
@@ -2445,7 +2434,7 @@ void SwHTMLParser::ShowStatline()
 
                if( ( pDoc->GetDocShell() && 
pDoc->GetDocShell()->IsAbortingImport() )
                        || 1 == pDoc->getReferenceCount() )
-                       // wurde der Import vom SFX abgebrochen?
+               // was the import aborted by SFX?
                        eState = SVPAR_ERROR;
 
                ViewShell *pVSh = CheckActionViewShell();
@@ -2459,7 +2448,7 @@ void SwHTMLParser::ShowStatline()
 
 ViewShell *SwHTMLParser::CallStartAction( ViewShell *pVSh, sal_Bool bChkPtr )
 {
-       ASSERT( !pActionViewShell, "CallStartAction: ViewShell schon gesetzt" );
+       ASSERT( !pActionViewShell, "CallStartAction: ViewShell already set" );
 
        if( !pVSh || bChkPtr )
        {
@@ -2467,7 +2456,7 @@ ViewShell *SwHTMLParser::CallStartAction( ViewShell 
*pVSh, sal_Bool bChkPtr )
                ViewShell *pOldVSh = pVSh;
 #endif
                pDoc->GetEditShell( &pVSh );
-               ASSERT( !pVSh || !pOldVSh || pOldVSh == pVSh, "CallStartAction: 
Wer hat die ViewShell ausgetauscht?" );
+               ASSERT( !pVSh || !pOldVSh || pOldVSh == pVSh, "CallStartAction: 
Who replaced the ViewShell?" );
 #ifdef DBG_UTIL
                if( pOldVSh && !pVSh )
                        pVSh = 0;
@@ -2493,7 +2482,7 @@ ViewShell *SwHTMLParser::CallEndAction( sal_Bool 
bChkAction, sal_Bool bChkPtr )
                ViewShell *pVSh = 0;
                pDoc->GetEditShell( &pVSh );
                ASSERT( !pVSh || pActionViewShell == pVSh,
-                               "CallEndAction: Wer hat die ViewShell 
ausgetauscht?" );
+                               "CallEndAction: Who replaced the ViewShell?" );
 #if OSL_DEBUG_LEVEL > 1
                if( pActionViewShell && !pVSh )
                        pVSh = 0;
@@ -2507,7 +2496,7 @@ ViewShell *SwHTMLParser::CallEndAction( sal_Bool 
bChkAction, sal_Bool bChkPtr )
 
        if( bSetCrsr )
        {
-               // an allen CrsrEditShells die Cursor auf den Doc-Anfang setzen
+               // at all CrsrEditShells set the cursors to the doc start.
                ViewShell *pSh = pActionViewShell;
                do {
                        if( pSh->IsA( TYPE( SwCrsrShell ) ) )
@@ -2519,7 +2508,7 @@ ViewShell *SwHTMLParser::CallEndAction( sal_Bool 
bChkAction, sal_Bool bChkPtr )
        }
        if( pActionViewShell->ISA( SwEditShell ) )
        {
-               //Schon gescrollt?, dann dafuer sorgen, dass die View sich 
nicht bewegt!
+               //Scrolled already?, then make sure that the view does not move!
                const sal_Bool bOldLock = pActionViewShell->IsViewLocked();
                pActionViewShell->LockView( sal_True );
                const sal_Bool bOldEndActionByVirDev = 
pActionViewShell->IsEndActionByVirDev();
@@ -2528,7 +2517,7 @@ ViewShell *SwHTMLParser::CallEndAction( sal_Bool 
bChkAction, sal_Bool bChkPtr )
                pActionViewShell->SetEndActionByVirDev( bOldEndActionByVirDev );
                pActionViewShell->LockView( bOldLock );
 
-               // bChkJumpMark ist nur gesetzt, wenn das Object auch gefunden 
wurde
+               // bChkJumpMark is only set if the object was found.
                if( bChkJumpMark )
                {
                        const Point aVisSttPos( DOCUMENTBORDER, DOCUMENTBORDER 
);
@@ -2541,8 +2530,8 @@ ViewShell *SwHTMLParser::CallEndAction( sal_Bool 
bChkAction, sal_Bool bChkPtr )
        else
                pActionViewShell->EndAction();
 
-       // sollte der Parser der Letzte sein, der das Doc haelt, dann kann
-       // man hier abbrechen und einen Fehler setzen.
+       // If the parser should be the last one to hold the doc, then you can
+       // abort here and set an error.
        if( 1 == pDoc->getReferenceCount() )
        {
                eState = SVPAR_ERROR;
@@ -2559,7 +2548,7 @@ ViewShell *SwHTMLParser::CheckActionViewShell()
        ViewShell *pVSh = 0;
        pDoc->GetEditShell( &pVSh );
        ASSERT( !pVSh || pActionViewShell == pVSh,
-                       "CheckActionViewShell: Wer hat die ViewShell 
ausgetauscht?" );
+                       "CheckActionViewShell: Who replaced the ViewShell?" );
 #if OSL_DEBUG_LEVEL > 1
        if( pActionViewShell && !pVSh )
                pVSh = 0;
@@ -2593,14 +2582,12 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                sal_Bool bSetAttr;
                if( bChkEnd )
                {
-                       // fix #42192#: Zechen-Attribute mit Ende moeglich 
frueh,
-                       // also noch im aktuellen Absatz setzen (wegen 
JavaScript
-                       // und diversen Chats). das darf man aber nicht fuer 
Attribute,
-                       // die ueber den ganzen Absatz aufgspannt werden 
sollen, weil
-                       // sie aus Absatzvorlgen stammen, die nicht gesetzt 
werden
-                       // koennen. Weil die Attribute mit SETATTR_DONTREPLACE
-                       // eingefuegt werden, sollte man sie auch anchtraeglich
-                       // noch setzen koennen.
+                       // fix #42192#: set character attributes in current 
paragraph with end 
+                       // as early as possible, because of JavaScript and 
various chats.
+                       // Except attributes, which are spanned over the whole 
paragraph, because
+                       // they come from paragraph occurrences that cannot be 
set.
+                       // Because the attributes are inserted with 
SETATTR_DONTREPLACE
+                       // they should be able to set them subsequently.
                        bSetAttr = ( nEndParaIdx < rEndIdx.GetIndex() &&
                                                 (RES_LR_SPACE != nWhich || 
!GetNumInfo().GetNumRule()) ) ||
                                           ( !pAttr->IsLikePara() &&
@@ -2613,9 +2600,8 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                }
                else
                {
-                       // Attribiute im Content-Bereich duerfen nicht gesetzt
-                       // werden, wenn wir in einem Sonderbereich stehen, aber
-                       // umgekekehrt schon.
+                       // Attributes in the content area may not be set in 
+                       // special areai, but if the opposite is true.
                        sal_uLong nEndOfIcons = 
pDoc->GetNodes().GetEndOfExtras().GetIndex();
                        bSetAttr = nEndParaIdx < rEndIdx.GetIndex() ||
                                           rEndIdx.GetIndex() > nEndOfIcons ||
@@ -2624,18 +2610,18 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
 
                if( bSetAttr )
                {
-                       // Das Attribute darf nicht in der liste der 
vorlaeufigen
-                       // Absatz-Attribute stehen, weil es sonst geloescht 
wurde.
+                       // The attribute must not be in the list of previous
+                       // paragraph attributes, otherwise it will be deleted.
                        sal_uInt16 ii = aParaAttrs.Count();
                        while( ii-- )
                        {
                                ASSERT( pAttr != aParaAttrs[ii],
-                                               "SetAttr: Attribut duerfte noch 
nicht gesetzt werden" );
+                                               "SetAttr: Attribute may not be 
set yet" );
                                aParaAttrs.Remove( ii );
                        }
 
 
-                       // dann also setzen
+                       // then set
                        aSetAttrTab.Remove( n, 1 );
 
                        while( pAttr )
@@ -2643,7 +2629,7 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                                _HTMLAttr *pPrev = pAttr->GetPrev();
                                if( !pAttr->bValid )
                                {
-                                       // ungueltige Attribute koennen 
gloescht werden
+                                       // invalid attributes can be deleted
                                        delete pAttr;
                                        pAttr = pPrev;
                                        continue; //break;
@@ -2653,14 +2639,14 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                 pCNd = pAttr->nSttPara.GetNode().GetCntntNode();
                                if( !pCNd )
                                {
-                                       // durch die elende Loescherei von 
Nodes kann auch mal
-                                       // ein Index auf einen End-Node zeigen 
:-(
+                                       // due to the miserable deletion of 
nodes also sometimes
+                                       // an index can point to an end node :-(
                     if ( (pAttr->GetSttPara() == pAttr->GetEndPara()) &&
                          !isTXTATR_NOEND(nWhich) )
                                        {
-                                               // wenn der End-Index auch auf 
den Node zeigt
-                                               // brauchen wir auch kein 
Attribut mehr zu setzen,
-                                               // es sei denn, es ist ein 
Text-Attribut.
+                                               // if the end index also points 
to the node
+                                               // we don't need to set an 
attribute anymore,
+                                               // unless it is a text 
attribute.
                                                delete pAttr;
                                                pAttr = pPrev;
                                                continue; //break;
@@ -2680,8 +2666,8 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
 
 
 
-                               // durch das Loeschen von BRs kann der 
Start-Index
-                               // auch mal hinter das Ende des Textes zeigen
+                               // by deleting BRs, the start index can
+                               // can also sometimes point behind the end of 
the text
                                if( pAttr->nSttCntnt > pCNd->Len() )
                                        pAttr->nSttCntnt = pCNd->Len();
                                pAttrPam->GetPoint()->nContent.Assign( pCNd, 
pAttr->nSttCntnt );
@@ -2713,8 +2699,8 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                                        pAttr->nEndCntnt = pCNd->Len();
                                }
 
-                               // durch das Loeschen von BRs kann der End-Index
-                               // auch mal hinter das Ende des Textes zeigen
+                               // by deleting BRs, the end index can
+                               // can also sometimes point behind the end of 
the text
                                if( pAttr->nEndCntnt > pCNd->Len() )
                                        pAttr->nEndCntnt = pCNd->Len();
 
@@ -2723,10 +2709,10 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                                        pAttrPam->GetPoint()->nNode.GetIndex() 
==
                                                rEndIdx.GetIndex() )
                                {
-                                       // wenn wir vor dem Einfuegen einer 
Tabelle stehen
-                                       // und das Attribut im aktuellen Node 
beendet wird,
-                                       // muessen wir es im Node davor beenden 
oder wegschmeissen,
-                                       // wenn es erst in dem Node beginnt
+                                       // if we are about to insert a table
+                                       // and the attribute is terminated in 
the current node,
+                                       // we must end it in the node before or 
throw it away,
+                                       // if it starts in the node before
                                        if( nWhich != RES_BREAK && nWhich != 
RES_PAGEDESC &&
                          !isTXTATR_NOEND(nWhich) )
                                        {
@@ -2734,7 +2720,7 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                                                        rEndIdx.GetIndex() )
                                                {
                                                        ASSERT( 
!pAttrPam->GetPoint()->nContent.GetIndex(),
-                                                                       
"Content-Position vor Tabelle nicht 0???" );
+                                                                       
"Content position before table not 0???" );
                                                        pAttrPam->Move( 
fnMoveBackward );
                                                }
                                                else
@@ -2798,17 +2784,17 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                                                
pAttrPam->GetMark()->nNode.GetIndex() &&
                                                pCNd )
                                        {
-                                               // wegen Numerierungen dieses 
Attribut direkt
-                                               // am Node setzen
+                                               // because of numbering this 
attribute directly
+                                               // set at the node
                                                pCNd->SetAttr( *pAttr->pItem );
                                                break;
                                        }
                                        ASSERT( sal_False,
                                                        "LRSpace set over 
several paragraphs!" );
-                                       // kein break (hier sollen wir trotzdem 
nie hinkommen;
+                                       // no break (we are never supposed to 
get here anyway;
                                default:
 
-                                       // ggfs. ein Bookmark anspringen
+                                       // jump to a bookmark if necessary
                                        if( RES_TXTATR_INETFMT == nWhich &&
                                                JUMPTO_MARK == eJumpTo &&
                                                sJmpMark == 
((SwFmtINetFmt*)pAttr->pItem)->GetName() )
@@ -2833,7 +2819,7 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
 
                const SwFmtAnchor& rAnchor = pFrmFmt->GetAnchor();
         ASSERT( FLY_AT_PARA == rAnchor.GetAnchorId(),
-                               "Nur Auto-Rahmen brauchen eine 
Spezialbehandlung" );
+                               "Only car frames need special treatment" );
                const SwPosition *pFlyPos = rAnchor.GetCntntAnchor();
                sal_uLong nFlyParaIdx = pFlyPos->nNode.GetIndex();
                sal_Bool bMoveFly;
@@ -2892,9 +2878,9 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
                if( bBeforeTable &&
                        pAttrPam->GetPoint()->nNode.GetIndex() == 
rEndIdx.GetIndex() )
                {
-                       ASSERT( !bBeforeTable, "Aha, der Fall tritt also doch 
ein" );
+                       ASSERT( !bBeforeTable, "Aha, the case occurs after all" 
);
                        ASSERT( !pAttrPam->GetPoint()->nContent.GetIndex(),
-                                       "Content-Position vor Tabelle nicht 
0???" );
+                                       "Content position before table not 
0???" );
                        // !!!
                        pAttrPam->Move( fnMoveBackward );
                }
@@ -2910,11 +2896,10 @@ void SwHTMLParser::_SetAttr( sal_Bool bChkEnd, sal_Bool 
bBeforeTable,
 
 void SwHTMLParser::NewAttr( _HTMLAttr **ppAttr, const SfxPoolItem& rItem )
 {
-       // Font-Hoehen und -Farben- sowie Escapement-Attribute duerfen nicht
-       // zusammengefasst werden. Sie werden deshalb in einer Liste 
gespeichert,
-       // in der das zuletzt aufgespannte Attribut vorne steht und der Count
-       // immer 1 ist. Fuer alle anderen Attribute wird der Count einfach
-       // hochgezaehlt.
+       // font-height and -color as well as escapement attributes must not be
+       // be combined. Therefore they are stored in a list,
+       // where the last expanded attribute is at the front and the count is 
always 1.
+       // For all other attributes the count is simply incremented.
        if( *ppAttr )
        {
                _HTMLAttr *pAttr = new _HTMLAttr( *pPam->GetPoint(), rItem,
@@ -2930,34 +2915,34 @@ void SwHTMLParser::NewAttr( _HTMLAttr **ppAttr, const 
SfxPoolItem& rItem )
 void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr **ppDepAttr,
                                                        sal_Bool bChkEmpty )
 {
-       ASSERT( !ppDepAttr, "SwHTMLParser::EndAttr: ppDepAttr-Feature 
ungetestet?" );
-       // Der Listenkopf ist im Attribut gespeichert
+       ASSERT( !ppDepAttr, "SwHTMLParser::EndAttr: untested 
ppDepAttr-Feature?" );
+       // The list header is stored in the attribute
        _HTMLAttr **ppHead = pAttr->ppHead;
 
-       ASSERT( ppHead, "keinen Attributs-Listenkopf gefunden!" );
+       ASSERT( ppHead, "no attribute list header found!" );
 
-       // die aktuelle Psoition als Ende-Position merken
+       // remember the current position as the end position
        const SwNodeIndex* pEndIdx = &pPam->GetPoint()->nNode;
        xub_StrLen nEndCnt = pPam->GetPoint()->nContent.GetIndex();
 
-       // WIrd das zueltzt gestartete oder ein frueher gestartetes Attribut
-       // beendet?
+       // Is the last started or a previously started attribute
+       // finished?
        _HTMLAttr *pLast = 0;
        if( ppHead && pAttr != *ppHead )
        {
-               // Es wird nicht das zuletzt gestartete Attribut beendet
+               // The last started attribute is not terminated
 
-               // Dann suche wir das unmittelbar danach gestartete Attribut, 
das
-               // ja ebenfalls noch nicht beendet wurde (sonst stuende es nicht
-               // mehr in der Liste
+               // Then we search for the attribute that was started 
immediately afterwards, which
+               // has not been finished yet either (otherwise it would not be
+               // any more in the list
                pLast = *ppHead;
                while( pLast && pLast->GetNext() != pAttr )
                        pLast = pLast->GetNext();
 
-               ASSERT( pLast, "Attribut nicht in eigener Liste gefunden!" );
+               ASSERT( pLast, "Attribute not found in own list!" );
 
-               // das Attribut nicht an der PaM-Psoition beenden, sondern da,
-               // wo das danch gestartete Attribut anfing???
+               // Do not end the attribute at the PaM psoition, but there,
+               // where the attribute started???
                //pEndIdx = &pPrev->GetSttPara();
                //nEndCnt = pPrev->GetSttCnt();
        }
@@ -2967,19 +2952,19 @@ void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr 
**ppDepAttr,
        if( /*!pLast &&*/ !nEndCnt && RES_PARATR_BEGIN <= nWhich &&
                *pEndIdx != pAttr->GetSttPara() )
        {
-               // dann eine Cntntnt Position zurueck!
+               // then one Cntnt position back!
                bMoveBack = pPam->Move( fnMoveBackward );
                nEndCnt = pPam->GetPoint()->nContent.GetIndex();
        }
 
-       // nun das Attrubut beenden
+       // end this Attrubut
        _HTMLAttr *pNext = pAttr->GetNext();
 
 
        sal_Bool bInsert;
     sal_uInt16 nScriptItem = 0;
        sal_Bool bScript = sal_False, bFont = sal_False;
-       // ein Bereich ??
+       // an area ??
        if( !bChkEmpty || (RES_PARATR_BEGIN <= nWhich && bMoveBack) ||
                RES_PAGEDESC == nWhich || RES_BREAK == nWhich ||
                *pEndIdx != pAttr->GetSttPara() ||
@@ -3039,10 +3024,10 @@ void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr 
**ppDepAttr,
 
                if( !pNext )
                {
-                       // keine offenen Attribute dieses Typs mehr da,
-                       // dann koennen alle gesetzt werden, es sei denn
-                       // sie haengen noch von einem anderen Attribut ab,
-                       // dann werden sie dort angehaengt
+                       // there are no more open attributes of this type,
+                       // then all of them can be set, unless
+                       // they still depend on another attribute,
+                       // then they will be appended there
                        if( ppDepAttr && *ppDepAttr )
                                (*ppDepAttr)->InsertPrev( pAttr );
                        else
@@ -3053,25 +3038,24 @@ void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr 
**ppDepAttr,
                }
                else
                {
-                       // es gibt noch andere offene Attribute des Typs,
-                       // daher muss das Setzen zurueckgestellt werden.
-                       // das aktuelle Attribut wird deshalb hinten an die
-                       // Previous-Liste des Nachfolgers angehaengt
+                       // there are other open attributes of the type,
+                       // so the setting must be reset.
+                       // the current attribute is therefore appended to the 
end of the
+                       // previous list of the successor.
                        pNext->InsertPrev( pAttr );
                }
        }
        else
        {
-               // dann nicht einfuegen, sondern Loeschen. Durch das "tuerken" 
von
-               // Vorlagen durch harte Attributierung koennen sich auch mal 
andere
-               // leere Attribute in der Prev-Liste befinden, die dann trotzdem
-               // gesetzt werden muessen
+               // Then do not insert, but delete. Through "fakeing" of
+               // templates by hard attributes, there may be other empty 
attributes 
+               // in the Prev list, which then must be set anyway.
                _HTMLAttr *pPrev = pAttr->GetPrev();
                delete pAttr;
 
                if( pPrev )
                {
-                       // Die Previous-Attribute muessen trotzdem gesetzt 
werden.
+                       // The Previous attributes must be set anyway.
                        if( pNext )
                                pNext->InsertPrev( pPrev );
                        else
@@ -3083,8 +3067,8 @@ void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr 
**ppDepAttr,
 
        }
 
-       // wenn das erste Attribut der Liste gesetzt wurde muss noch der
-       // Listenkopf korrigiert werden.
+       // if the first attribute of the list has been set the
+       // list header must be corrected.
        if( pLast )
                pLast->pNext = pNext;
        else if( ppHead )
@@ -3096,43 +3080,43 @@ void SwHTMLParser::EndAttr( _HTMLAttr* pAttr, _HTMLAttr 
**ppDepAttr,
 
 void SwHTMLParser::DeleteAttr( _HTMLAttr* pAttr )
 {
-       // Hier darf es keine vorlauefigen Absatz-Attribute geben, den die
-       // koennten jetzt gesetzt werden und dann sind die Zeiger ungueltig!!!
+       // There must not be any leading paragraph attributes here, because the
+       // could be set now and then the pointers are invalid!!!
        ASSERT( !aParaAttrs.Count(),
-                       "Hoechste Gefahr: Es gibt noch nicht-endgueltige 
Absatz-Attribute" );
+                       "Highest risk: There are still non-final paragraph 
attributes" );
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
-       // Der Listenkopf ist im Attribut gespeichert
+       // The list header is stored in the attribute
        _HTMLAttr **ppHead = pAttr->ppHead;
 
-       ASSERT( ppHead, "keinen Attributs-Listenkopf gefunden!" );
+       ASSERT( ppHead, "no attributes list header found!" );
 
-       // Wird das zueltzt gestartete oder ein frueher gestartetes Attribut
-       // entfernt?
+       // Is the attribute that was started last or an attribute that was 
started earlier
+       // removed?
        _HTMLAttr *pLast = 0;
        if( ppHead && pAttr != *ppHead )
        {
-               // Es wird nicht das zuletzt gestartete Attribut beendet
+               // The last started attribute is not terminated
 
-               // Dann suche wir das unmittelbar danach gestartete Attribut, 
das
-               // ja ebenfalls noch nicht beendet wurde (sonst stuende es nicht
-               // mehr in der Liste
+               // Then we search for the attribute that was started 
immediately afterwards, which
+               // has not been finished yet either (otherwise it would not be
+               // any more in the list
                pLast = *ppHead;
                while( pLast && pLast->GetNext() != pAttr )
                        pLast = pLast->GetNext();
 
-               ASSERT( pLast, "Attribut nicht in eigener Liste gefunden!" );
+               ASSERT( pLast, "Attribute not found in own list!" );
        }
 
-       // nun das Attrubut entfernen
+       // now remove the attribute
        _HTMLAttr *pNext = pAttr->GetNext();
        _HTMLAttr *pPrev = pAttr->GetPrev();
        delete pAttr;
 
        if( pPrev )
        {
-               // Die Previous-Attribute muessen trotzdem gesetzt werden.
+               // The Previous attributes must be set anyway.
                if( pNext )
                        pNext->InsertPrev( pPrev );
                else
@@ -3142,8 +3126,8 @@ void SwHTMLParser::DeleteAttr( _HTMLAttr* pAttr )
                }
        }
 
-       // wenn das erste Attribut der Liste entfernt wurde muss noch der
-       // Listenkopf korrigiert werden.
+       // if the first attribute of the list has been removed the
+       // list header must be corrected.
        if( pLast )
                pLast->pNext = pNext;
        else if( ppHead )
@@ -3152,10 +3136,10 @@ void SwHTMLParser::DeleteAttr( _HTMLAttr* pAttr )
 
 void SwHTMLParser::SaveAttrTab( _HTMLAttrTable& rNewAttrTab )
 {
-       // Hier darf es keine vorlauefigen Absatz-Attribute geben, den die
-       // koennten jetzt gesetzt werden und dann sind die Zeiger ungueltig!!!
+       // There must not be any leading paragraph attributes here, because the
+       // could be set now and then the pointers are invalid!!!
        ASSERT( !aParaAttrs.Count(),
-                       "Hoechste Gefahr: Es gibt noch nicht-endgueltige 
Absatz-Attribute" );
+                       "Highest risk: There are still non-final paragraph 
attributes" );
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
@@ -3181,18 +3165,17 @@ void SwHTMLParser::SaveAttrTab( _HTMLAttrTable& 
rNewAttrTab )
 void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& rNewAttrTab,
                                                                 sal_Bool 
bMoveEndBack )
 {
-       // Hier darf es keine vorlauefigen Absatz-Attribute geben, den die
-       // koennten jetzt gesetzt werden und dann sind die Zeiger ungueltig!!!
+       // There must not be any leading paragraph attributes here, because the
+       // could be set now and then the pointers are invalid!!!
        ASSERT( !aParaAttrs.Count(),
-                       "Hoechste Gefahr: Es gibt noch nicht-endgueltige 
Absatz-Attribute" );
+                       "Highest risk: There are still non-final paragraph 
attributes" );
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
        const SwNodeIndex& nSttIdx = pPam->GetPoint()->nNode;
        SwNodeIndex nEndIdx( nSttIdx );
 
-       // alle noch offenen Attribute beenden und hinter der Tabelle
-       // neu aufspannen
+       // terminate all attributes still open and span behind the table
        _HTMLAttr** pTbl = (_HTMLAttr**)&aAttrTab;
        _HTMLAttr** pSaveTbl = (_HTMLAttr**)&rNewAttrTab;
        sal_Bool bSetAttr = sal_True;
@@ -3210,8 +3193,8 @@ void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& 
rNewAttrTab,
                }
                SwCntntNode* pCNd = pDoc->GetNodes().GoPrevious(&nEndIdx);
 
-               // keine Attribute setzen, wenn der PaM aus dem Content-Bereich
-               // herausgeschoben wurde.
+               // Do not set attributes if the PaM has been moved out of the 
content area.
+               // has been pushed out.
                bSetAttr = pCNd && nTmpIdx < nEndIdx.GetIndex();
 
                nEndCnt = (bSetAttr ? pCNd->Len() : 0);
@@ -3231,11 +3214,11 @@ void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& 
rNewAttrTab,
                                  (pAttr->GetSttPara() == nEndIdx &&
                                   pAttr->GetSttCnt() != nEndCnt) ) )
                        {
-                               // das Attribut muss vor der Liste gesetzt 
werden. Da wir
-                               // das Original noch brauchen, weil Zeiger auf 
das Attribut
-                               // noch in den Kontexten existieren, muessen 
wir es clonen.
-                               // Die Next-Liste geht dabei verloren, aber die
-                               // Previous-Liste bleibt erhalten
+                               // the attribute must be set before the list. 
Since we
+                               // still need the original because pointers to 
the attribute
+                               // still exist in the contexts, we have to 
clone it.
+                               // The next list will be lost, but the
+                               // Previous list is preserved
                                _HTMLAttr *pSetAttr = pAttr->Clone( nEndIdx, 
nEndCnt );
 
                                if( pNext )
@@ -3249,9 +3232,8 @@ void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& 
rNewAttrTab,
                        }
                        else if( pPrev )
                        {
-                               // Wenn das Attribut nicht gesetzt vor der 
Tabelle
-                               // gesetzt werden muss, muessen der 
Previous-Attribute
-                               // trotzdem gesetzt werden.
+                               // If the attribute is not set before the table
+                               // the Previous attribute must be set anyway.
                                if( pNext )
                                        pNext->InsertPrev( pPrev );
                                else
@@ -3261,8 +3243,7 @@ void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& 
rNewAttrTab,
                                }
                        }
 
-                       // den Start des Attributs neu setzen und die 
Verkettungen
-                       // aufbrechen
+                       // reset the start of the attribute  and break the 
concatenations break
                        pAttr->Reset( nSttIdx, nSttCnt, pSaveTbl );
 
                        if( *pSaveTbl )
@@ -3285,10 +3266,10 @@ void SwHTMLParser::SplitAttrTab( _HTMLAttrTable& 
rNewAttrTab,
 void SwHTMLParser::RestoreAttrTab( const _HTMLAttrTable& rNewAttrTab,
                                                                   sal_Bool 
bSetNewStart )
 {
-       // Hier darf es keine vorlauefigen Absatz-Attribute geben, den die
-       // koennten jetzt gesetzt werden und dann sind die Zeiger ungueltig!!!
+       // There must not be any leading paragraph attributes here, because the
+       // could be set now and then the pointers are invalid!!!
        ASSERT( !aParaAttrs.Count(),
-                       "Hoechste Gefahr: Es gibt noch nicht-endgueltige 
Absatz-Attribute" );
+                       "Highest risk: There are still non-final paragraph 
attributes" );
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
@@ -3298,7 +3279,7 @@ void SwHTMLParser::RestoreAttrTab( const _HTMLAttrTable& 
rNewAttrTab,
        for( sal_uInt16 nCnt = sizeof( _HTMLAttrTable ) / sizeof( _HTMLAttr* );
                nCnt--; (++pTbl, ++pSaveTbl) )
        {
-               ASSERT( !*pTbl, "Die Attribut-Tabelle ist nicht leer!" );
+               ASSERT( !*pTbl, "The attribute table is not empty!" );
 
                const SwPosition *pPos = pPam->GetPoint();
                const SwNodeIndex& rSttPara = pPos->nNode;
@@ -3310,7 +3291,7 @@ void SwHTMLParser::RestoreAttrTab( const _HTMLAttrTable& 
rNewAttrTab,
                while( pAttr )
                {
                        ASSERT( !pAttr->GetPrev() || !pAttr->GetPrev()->ppHead,
-                                       "Previous-Attribut hat noch einen 
Header" );
+                                       "Previous attribute still has a header" 
);
                        pAttr->SetHead( pTbl );
                        if( bSetNewStart )
                        {
@@ -3378,10 +3359,10 @@ void SwHTMLParser::NewStdAttr( int nToken )
                }
        }
 
-       // einen neuen Kontext anlegen
+       // create a new context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken) );
 
-       // Styles parsen
+       // parse styles
        if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3396,7 +3377,7 @@ void SwHTMLParser::NewStdAttr( int nToken )
                }
        }
 
-       // den Kontext merken
+       // memorize context
        PushContext( pCntxt );
 }
 
@@ -3431,10 +3412,10 @@ void SwHTMLParser::NewStdAttr( int nToken,
                }
        }
 
-       // einen neuen Kontext anlegen
+       // create new context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken) );
 
-       // Styles parsen
+       // parse Styles
        if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3466,17 +3447,17 @@ void SwHTMLParser::NewStdAttr( int nToken,
                }
        }
 
-       // den Kontext merken
+       // memorize context
        PushContext( pCntxt );
 }
 
 void SwHTMLParser::EndTag( int nToken )
 {
-       // den Kontext holen
+       // get context
     _HTMLAttrContext *pCntxt = PopContext( static_cast< sal_uInt16 >(nToken & 
~1) );
        if( pCntxt )
        {
-               // und ggf. die Attribute beenden
+               // and terminate the attributes if necessary
                EndContext( pCntxt );
                delete pCntxt;
        }
@@ -3521,10 +3502,10 @@ void SwHTMLParser::NewBasefontAttr()
        if( nSize > 7 )
                nSize = 7;
 
-       // einen neuen Kontext anlegen
+       // set up a new context
        _HTMLAttrContext *pCntxt = new _HTMLAttrContext( HTML_BASEFONT_ON );
 
-       // Styles parsen
+       // parse styles
        if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3552,10 +3533,10 @@ void SwHTMLParser::NewBasefontAttr()
                InsertAttr( &aAttrTab.pFontHeightCTL, aFontHeight, pCntxt );
        }
 
-       // den Kontext merken
+       // memorize context
        PushContext( pCntxt );
 
-       // die Font-Size merken
+       // memorize Font-Size
        aBaseFontStack.Insert( nSize, aBaseFontStack.Count() );
 }
 
@@ -3563,7 +3544,7 @@ void SwHTMLParser::EndBasefontAttr()
 {
        EndTag( HTML_BASEFONT_ON );
 
-       // Stack-Unterlauf in Tabellen vermeiden
+       // Avoid stack underflow in tables
        if( aBaseFontStack.Count() > nBaseFontStMin )
                aBaseFontStack.Remove( aBaseFontStack.Count()-1, 1 );
 }
@@ -3581,8 +3562,8 @@ void SwHTMLParser::NewFontAttr( int nToken )
 
        String aFace, aId, aStyle, aClass, aLang, aDir;
        Color aColor;
-       sal_uLong nFontHeight = 0;      // tatsaechlich einzustellende 
Font-Hoehe
-       sal_uInt16 nSize = 0;           // Fontgroesse in Netscape-Notation 
(1-7)
+       sal_uLong nFontHeight = 0;      // font height to be effectively set
+       sal_uInt16 nSize = 0;           // Font size in Netscape-Notation (1-7)
        sal_Bool bColor = sal_False;
 
        const HTMLOptions *pHTMLOptions = GetOptions();
@@ -3641,16 +3622,15 @@ void SwHTMLParser::NewFontAttr( int nToken )
 
        if( HTML_FONT_ON != nToken )
        {
-               // HTML_BIGPRINT_ON oder HTML_SMALLPRINT_ON
+               // HTML_BIGPRINT_ON or HTML_SMALLPRINT_ON
 
-               // in Ueberschriften bestimmt die aktuelle Ueberschrift
-               // die Font-Hoehe und nicht BASEFONT
+               // in headings, the current heading determines
+               // the font height and not BASEFONT
                sal_uInt16 nPoolId = GetCurrFmtColl()->GetPoolFmtId();
                if( (nPoolId>=RES_POOLCOLL_HEADLINE1 &&
                         nPoolId<=RES_POOLCOLL_HEADLINE6) )
                {
-                       // wenn die Schriftgroesse in der Ueberschrift noch
-                       // nicht veraendert ist, die aus der Vorlage nehmen
+                       // if the font size in the heading is not yet changed, 
take the one from the template.
                        if( nFontStHeadStart==aFontStack.Count() )
                 nFontSize = static_cast< sal_uInt16 >(6 - (nPoolId - 
RES_POOLCOLL_HEADLINE1));
                }
@@ -3662,8 +3642,7 @@ void SwHTMLParser::NewFontAttr( int nToken )
                else
                        nSize = ( nFontSize>1 ? nFontSize-1 : 1 );
 
-               // in Ueberschriften wird die neue Fonthoehe wenn moeglich aus
-               // den Vorlagen geholt.
+               // in headlines, the new font height will be taken templates.
                if( nPoolId && nSize>=1 && nSize <=6 )
                        nFontHeight =
                                pCSS1Parser->GetTxtCollFromPool(
@@ -3675,8 +3654,8 @@ void SwHTMLParser::NewFontAttr( int nToken )
        ASSERT( !nSize == !nFontHeight, "HTML-Font-Size != Font-Height" );
 
        String aFontName, aStyleName;
-       FontFamily eFamily = FAMILY_DONTKNOW;   // Family und Pitch,
-       FontPitch ePitch = PITCH_DONTKNOW;              // falls nicht gefunden
+       FontFamily eFamily = FAMILY_DONTKNOW; // Family and Pitch,
+       FontPitch ePitch = PITCH_DONTKNOW; // in case it is not found
        rtl_TextEncoding eEnc = gsl_getSystemTextEncoding();
 
        if( aFace.Len() && !pCSS1Parser->IsIgnoreFontFamily() )
@@ -3721,10 +3700,10 @@ void SwHTMLParser::NewFontAttr( int nToken )
        }
 
 
-       // einen neuen Kontext anlegen
+       // set up a new context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken) );
 
-       // Styles parsen
+       // parse styles
        if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3781,7 +3760,7 @@ void SwHTMLParser::NewFontAttr( int nToken )
                }
        }
 
-       // den Kontext merken
+       // memorize context
        PushContext( pCntxt );
 
        aFontStack.Insert( nSize, aFontStack.Count() );
@@ -3791,7 +3770,7 @@ void SwHTMLParser::EndFontAttr( int nToken )
 {
        EndTag( nToken );
 
-       // Stack-Unterlauf in Tabellen vermeiden
+       // Avoid stack underflow in tables
        if( aFontStack.Count() > nFontStMin )
                aFontStack.Remove( aFontStack.Count()-1, 1 );
 }
@@ -3835,14 +3814,14 @@ void SwHTMLParser::NewPara()
                }
        }
 
-       // einen neuen Kontext anlegen
+       // set up a new context
        _HTMLAttrContext *pCntxt =
                aClass.Len() ? new _HTMLAttrContext( HTML_PARABREAK_ON,
                                                                                
         RES_POOLCOLL_TEXT, aClass )
                                         : new _HTMLAttrContext( 
HTML_PARABREAK_ON );
 
-       // Styles parsen (Class nicht beruecksichtigen. Das geht nur, solange
-       // keine der CSS1-Properties der Klasse hart formatiert werden muss!!!)
+       // parse styles (ignore Class. This only works as long as
+       // none of the CSS1 properties of the class need to be forcibly 
formatted!!!)
        if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3851,7 +3830,7 @@ void SwHTMLParser::NewPara()
                if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, 
aPropInfo, &aLang, &aDir ) )
                {
                        ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass 
),
-                                       "Class wird nicht beruecksichtigt" );
+                                       "Class will not be considered" );
                        DoPositioning( aItemSet, aPropInfo, pCntxt );
                        InsertAttrs( aItemSet, aPropInfo, pCntxt );
                }
@@ -3860,16 +3839,16 @@ void SwHTMLParser::NewPara()
        if( SVX_ADJUST_END != eParaAdjust )
         InsertAttr( &aAttrTab.pAdjust, SvxAdjustItem(eParaAdjust, 
RES_PARATR_ADJUST), pCntxt );
 
-       // und auf den Stack packen
+       // push on stack
        PushContext( pCntxt );
 
-       // die aktuelle Vorlage oder deren Attribute setzen
+       // set the current template or its attributes
        SetTxtCollAttrs( aClass.Len() ? pCntxt : 0 );
 
-       // Laufbalkenanzeige
+       // progress bar
        ShowStatline();
 
-       ASSERT( !nOpenParaToken, "Jetzt geht ein offenes Absatz-Element 
verloren" );
+       ASSERT( !nOpenParaToken, "Now an open paragraph element is lost" );
        nOpenParaToken = HTML_PARABREAK_ON;
 }
 
@@ -3880,10 +3859,10 @@ void SwHTMLParser::EndPara( sal_Bool bReal )
 #ifdef DBG_UTIL
                const SwNumRule *pNumRule = 
pPam->GetNode()->GetTxtNode()->GetNumRule();
 #endif
-               ASSERT( pNumRule, "Wo ist die Numrule geblieben" );
+               ASSERT( pNumRule, "Where has the Numrule gone" );
        }
 
-       // leere Absaetze werden von Netscape uebersprungen, von uns jetzt auch
+       // empty paragraphs are skipped by Netscape, now also by us
        if( bReal )
        {
                if( pPam->GetPoint()->nContent.GetIndex() )
@@ -3892,16 +3871,16 @@ void SwHTMLParser::EndPara( sal_Bool bReal )
                        AddParSpace();
        }
 
-       // wenn ein DD oder DT offen war, handelt es sich um eine
-       // implizite Def-Liste, die jetzt beendet werden muss
+       // if a DD or DT was open, it is an
+       // implicit def list that must now be terminated.
        if( (nOpenParaToken==HTML_DT_ON || nOpenParaToken==HTML_DD_ON) &&
                nDefListDeep)
        {
                nDefListDeep--;
        }
 
-       // den Kontext vom Stack holen. Er kann auch von einer implizit
-       // geoeffneten Definitionsliste kommen
+       // get the context from the stack. It can also come from an implicitly
+       // open definition list.
        _HTMLAttrContext *pCntxt =
         PopContext( static_cast< sal_uInt16 >(nOpenParaToken ? (nOpenParaToken 
& ~1)
                                    : HTML_PARABREAK_ON) );
@@ -3910,11 +3889,11 @@ void SwHTMLParser::EndPara( sal_Bool bReal )
        if( pCntxt )
        {
                EndContext( pCntxt );
-               SetAttr();      // Absatz-Atts wegen JavaScript moeglichst 
schnell setzen
+               SetAttr();      // set paragraph-atts as fast as possible 
because of JavaScript
                delete pCntxt;
        }
 
-       // und die bisherige Vorlage neu setzen
+       // and reset previous template
        if( bReal )
                SetTxtCollAttrs();
 
@@ -3955,13 +3934,13 @@ void SwHTMLParser::NewHeading( int nToken )
                }
        }
 
-       // einen neuen Absatz aufmachen
+       // create new paragraph
        if( pPam->GetPoint()->nContent.GetIndex() )
                AppendTxtNode( AM_SPACE );
        else
                AddParSpace();
 
-       // die passende Vorlage suchen
+       // search matching template
        sal_uInt16 nTxtColl;
        switch( nToken )
        {
@@ -3974,10 +3953,10 @@ void SwHTMLParser::NewHeading( int nToken )
        default:                                        nTxtColl = 
RES_POOLCOLL_STANDARD;       break;
        }
 
-       // den Kontext anlegen
+       // set context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken), nTxtColl, aClass );
 
-       // Styles parsen (zu Class siehe auch NewPara)
+       // parse styles (to Class see NewPara)
        if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -3986,7 +3965,7 @@ void SwHTMLParser::NewHeading( int nToken )
                if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, 
aPropInfo, &aLang, &aDir ) )
                {
                        ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass 
),
-                                       "Class wird nicht beruecksichtigt" );
+                                       "Class will not be considered" );
                        DoPositioning( aItemSet, aPropInfo, pCntxt );
                        InsertAttrs( aItemSet, aPropInfo, pCntxt );
                }
@@ -3995,27 +3974,27 @@ void SwHTMLParser::NewHeading( int nToken )
        if( SVX_ADJUST_END != eParaAdjust )
         InsertAttr( &aAttrTab.pAdjust, SvxAdjustItem(eParaAdjust, 
RES_PARATR_ADJUST), pCntxt );
 
-       // udn auf den Stack packen
+       // push to Stack
        PushContext( pCntxt );
 
-       // und die Vorlage oder deren Attribute setzen
+       // and set the template or its attributes
        SetTxtCollAttrs( pCntxt );
 
        nFontStHeadStart = aFontStack.Count();
 
-       // Laufbalkenanzeige
+       // progress bar
        ShowStatline();
 }
 
 void SwHTMLParser::EndHeading()
 {
-       // einen neuen Absatz aufmachen
+    // create a new paragraph
        if( pPam->GetPoint()->nContent.GetIndex() )
                AppendTxtNode( AM_SPACE );
        else
                AddParSpace();
 
-       // Kontext zu dem Token suchen und vom Stack holen
+       // get context of current token from stack
        _HTMLAttrContext *pCntxt = 0;
        sal_uInt16 nPos = aContexts.Count();
        while( !pCntxt && nPos>nContextStMin )
@@ -4034,15 +4013,15 @@ void SwHTMLParser::EndHeading()
                }
        }
 
-       // und noch Attribute beenden
+       // and set attributes end
        if( pCntxt )
        {
                EndContext( pCntxt );
-               SetAttr();      // Absatz-Atts wegen JavaScript moeglichst 
schnell setzen
+               SetAttr();      // set paragraph-atts as fast as possible 
because of JavaScript
                delete pCntxt;
        }
 
-       // die bisherige Vorlage neu setzen
+       // reset the previous template
        SetTxtCollAttrs();
 
        nFontStHeadStart = nFontStMin;
@@ -4078,15 +4057,15 @@ void SwHTMLParser::NewTxtFmtColl( int nToken, 
sal_uInt16 nColl )
                }
        }
 
-       // einen neuen Absatz aufmachen
+       // create new paragraph
        SwHTMLAppendMode eMode = AM_NORMAL;
        switch( nToken )
        {
        case HTML_LISTING_ON:
        case HTML_XMP_ON:
-               // Diese beiden Tags werden jetzt auf die PRE-Vorlage gemappt.
-               // Fuer dem Fall, dass ein CLASS angegeben ist, loeschen wir
-               // es damit wir nicht die CLASS der PRE-Vorlage bekommen.
+               // These two tags are now mapped to the PRE template.
+               // In the case that a CLASS is specified, we delete
+               // it so we don't get the CLASS of the PRE template.
                aClass = aEmptyStr;
        case HTML_BLOCKQUOTE_ON:
        case HTML_BLOCKQUOTE30_ON:
@@ -4094,7 +4073,7 @@ void SwHTMLParser::NewTxtFmtColl( int nToken, sal_uInt16 
nColl )
                eMode = AM_SPACE;
                break;
        case HTML_ADDRESS_ON:
-               eMode = AM_NOSPACE;     // ADDRESS kann auf einen <P> ohne </P> 
folgen
+               eMode = AM_NOSPACE;     // ADDRESS may follow a <P> without 
</P>.
                break;
        case HTML_DT_ON:
        case HTML_DD_ON:
@@ -4109,10 +4088,10 @@ void SwHTMLParser::NewTxtFmtColl( int nToken, 
sal_uInt16 nColl )
        else if( AM_SPACE==eMode )
                AddParSpace();
 
-       // ... und in einem Kontext merken
+       // ... and remember in a context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken), nColl, aClass );
 
-       // Styles parsen (zu Class siehe auch NewPara)
+       // parse styles (to Class see NewPara)
        if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -4121,7 +4100,7 @@ void SwHTMLParser::NewTxtFmtColl( int nToken, sal_uInt16 
nColl )
                if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, 
aPropInfo, &aLang, &aDir ) )
                {
                        ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass 
),
-                                       "Class wird nicht beruecksichtigt" );
+                                       "Class will not be considered" );
                        DoPositioning( aItemSet, aPropInfo, pCntxt );
                        InsertAttrs( aItemSet, aPropInfo, pCntxt );
                }
@@ -4129,10 +4108,10 @@ void SwHTMLParser::NewTxtFmtColl( int nToken, 
sal_uInt16 nColl )
 
        PushContext( pCntxt );
 
-       // die neue Vorlage setzen
+       // set the new template
        SetTxtCollAttrs( pCntxt );
 
-       // Laufbalkenanzeige aktualisieren
+       // update progress bar
        ShowStatline();
 }
 
@@ -4162,18 +4141,18 @@ void SwHTMLParser::EndTxtFmtColl( int nToken )
        else if( AM_SPACE==eMode )
                AddParSpace();
 
-       // den aktuellen Kontext vom Stack holen
+       // get the current context from the stack
     _HTMLAttrContext *pCntxt = PopContext( static_cast< sal_uInt16 >(nToken & 
~1) );
 
-       // und noch Attribute beenden
+       // and set end attribute
        if( pCntxt )
        {
                EndContext( pCntxt );
-               SetAttr();      // Absatz-Atts wegen JavaScript moeglichst 
schnell setzen
+               SetAttr();      // set paragraph-atts as fast as possible 
because of JavaScript
                delete pCntxt;
        }
 
-       // und die bisherige Vorlage setzen
+       // and set the previous template
        SetTxtCollAttrs();
 }
 
@@ -4207,14 +4186,14 @@ void SwHTMLParser::NewDefList()
                }
        }
 
-       // einen neuen Absatz aufmachen
+       // create new paragraph
        sal_Bool bSpace = (GetNumInfo().GetDepth() + nDefListDeep) == 0;
        if( pPam->GetPoint()->nContent.GetIndex() )
                AppendTxtNode( bSpace ? AM_SPACE : AM_SOFTNOSPACE );
        else if( bSpace )
                AddParSpace();
 
-       // ein Level mehr
+       // one more level
        nDefListDeep++;
 
 
@@ -4239,22 +4218,21 @@ void SwHTMLParser::NewDefList()
        }
 
 
-       // ... und in einem Kontext merken
+       // ... and remember in a context
        _HTMLAttrContext *pCntxt = new _HTMLAttrContext( HTML_DEFLIST_ON );
 
-       // darin auch die Raender merken
+       // remeber the borders, too
        sal_uInt16 nLeft=0, nRight=0;
        short nIndent=0;
        GetMarginsFromContext( nLeft, nRight, nIndent );
 
-       // Die Einrueckung, die sich schon aus einem DL-ergibt, entspricht der
-       // eines DT auf dem aktuellen Level, und die entspricht der eines
-       // DD auf dem Level davor. Fue einen Level >=2 muss also ein DD-Abstand
-       // hinzugefuegt werden
+       // The indent, which already results from a DL-, corresponds to that
+       // of a DT on the current level, and that corresponds to that of a
+       // DD on the level before. So for a level >=2 a DD distance must be 
added
        if( !bInDD && nDefListDeep > 1 )
        {
 
-               // und den der DT-Vorlage des aktuellen Levels
+               // and that of the DT template of the current level
                SvxLRSpaceItem rLRSpace =
                        pCSS1Parser->GetTxtFmtColl( RES_POOLCOLL_HTML_DD, 
aEmptyStr )
                                           ->GetLRSpace();
@@ -4263,7 +4241,7 @@ void SwHTMLParser::NewDefList()
 
        pCntxt->SetMargins( nLeft, nRight, nIndent );
 
-       // Styles parsen
+       // parse styles
        if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -4278,7 +4256,7 @@ void SwHTMLParser::NewDefList()
 
        PushContext( pCntxt );
 
-       // die Attribute der neuen Vorlage setzen
+       // set the attributes of the new template
        if( nDefListDeep > 1 )
                SetTxtCollAttrs( pCntxt );
 }
@@ -4291,28 +4269,28 @@ void SwHTMLParser::EndDefList()
        else if( bSpace )
                AddParSpace();
 
-       // ein Level weniger
+       // reduce one level
        if( nDefListDeep > 0 )
                nDefListDeep--;
 
-       // den aktuellen Kontext vom Stack holen
+       // get the current context from the stack
        _HTMLAttrContext *pCntxt = PopContext( HTML_DEFLIST_ON );
 
-       // und noch Attribute beenden
+       // and set end Attribute
        if( pCntxt )
        {
                EndContext( pCntxt );
-               SetAttr();      // Absatz-Atts wegen JavaScript moeglichst 
schnell setzen
+               SetAttr();      // set paragraph-atts as fast as possible 
because of JavaScript
                delete pCntxt;
        }
 
-       // und Vorlage setzen
+       // and set Template
        SetTxtCollAttrs();
 }
 
 void SwHTMLParser::NewDefListItem( int nToken )
 {
-       // festellen, ob das DD/DT in einer DL vorkommt
+       // determine whether the DD/DT occurs in a DL
        sal_Bool bInDefList = sal_False, bNotInDefList = sal_False;
        sal_uInt16 nPos = aContexts.Count();
        while( !bInDefList && !bNotInDefList && nPos>nContextStMin )
@@ -4332,12 +4310,12 @@ void SwHTMLParser::NewDefListItem( int nToken )
                }
        }
 
-       // wenn nicht, implizit eine neue DL aufmachen
+       // if not, implicitly open a new DL
        if( !bInDefList )
        {
                nDefListDeep++;
                ASSERT( !nOpenParaToken,
-                               "Jetzt geht ein offenes Absatz-Element 
verloren" );
+                               "Now an open paragraph element is lost" );
         nOpenParaToken = static_cast< sal_uInt16 >(nToken);
        }
 
@@ -4348,11 +4326,11 @@ void SwHTMLParser::NewDefListItem( int nToken )
 void SwHTMLParser::EndDefListItem( int nToken, sal_Bool bSetColl,
                                                                   sal_Bool 
/*bLastPara*/ )
 {
-       // einen neuen Absatz aufmachen
+       // create new paragraph
        if( !nToken && pPam->GetPoint()->nContent.GetIndex() )
                AppendTxtNode( AM_SOFTNOSPACE );
 
-       // Kontext zu dem Token suchen und vom Stack holen
+       // Search context to the token and get it from the stack
        nToken &= ~1;
        _HTMLAttrContext *pCntxt = 0;
        sal_uInt16 nPos = aContexts.Count();
@@ -4370,26 +4348,26 @@ void SwHTMLParser::EndDefListItem( int nToken, sal_Bool 
bSetColl,
                        }
                        break;
                case HTML_DEFLIST_ON:
-                       // keine DD/DT ausserhalb der aktuelen DefListe 
betrachten
+                       // do not consider DD/DT outside the current def list
                case HTML_DIRLIST_ON:
                case HTML_MENULIST_ON:
                case HTML_ORDERLIST_ON:
                case HTML_UNORDERLIST_ON:
-                       // und auch nicht ausserhalb einer anderen Liste
+                       // and also not outside of another list
                        nPos = nContextStMin;
                        break;
                }
        }
 
-       // und noch Attribute beenden
+       // and set end Attribute
        if( pCntxt )
        {
                EndContext( pCntxt );
-               SetAttr();      // Absatz-Atts wegen JavaScript moeglichst 
schnell setzen
+               SetAttr();      // set paragraph-atts as fast as possible 
because of JavaScript
                delete pCntxt;
        }
 
-       // und die bisherige Vorlage setzen
+       // and set the previous template
        if( bSetColl )
                SetTxtCollAttrs();
 }
@@ -4399,11 +4377,11 @@ void SwHTMLParser::EndDefListItem( int nToken, sal_Bool 
bSetColl,
 sal_Bool SwHTMLParser::HasCurrentParaFlys( sal_Bool bNoSurroundOnly,
                                                                           
sal_Bool bSurroundOnly ) const
 {
-       // bNoSurroundOnly:             Der Absatz enthaelt mindestens einen 
Rahmen
-       //                                              ohne Umlauf
-       // bSurroundOnly:               Der Absatz enthaelt mindestens einen 
Rahmen
-       //                                              mit Umlauf aber keinen 
ohne Umlauf
-       // sonst:                               Der Absatz enthaelt irgendeinen 
Rahmen
+       // bNoSurroundOnly: The paragraph contains at least one frame
+       //                  without text flow
+       // bSurroundOnly:   The paragraph contains at least one frame
+       //                  with a text flow but none without a text flow
+       // else:            the paragraph contains at least one frame
        SwNodeIndex& rNodeIdx = pPam->GetPoint()->nNode;
 
        const SwSpzFrmFmts& rFrmFmtTbl = *pDoc->GetSpzFrmFmts();
@@ -4413,12 +4391,12 @@ sal_Bool SwHTMLParser::HasCurrentParaFlys( sal_Bool 
bNoSurroundOnly,
     {
         SwFrmFmt *const pFmt = rFrmFmtTbl[i];
         SwFmtAnchor const*const pAnchor = &pFmt->GetAnchor();
-               // Ein Rahmen wurde gefunden, wenn
-               // - er absatzgebunden ist, und
-               // - im aktuellen Absatz verankert ist, und
-               //   - jeder absatzgebunene Rahmen zaehlt, oder
-               //   - (nur Rahmen oder umlauf zaehlen und ) der Rahmen keinen
-               //     Umlauf besitzt
+               // A frame has been found if
+               // - it is paragraph-bound, and
+               // - it is anchored in the current paragraph, and
+               //    - every paragraph-bound frame counts, or
+               //    - (only frames or text flow counts) the frame has no
+               //      text flow
         SwPosition const*const pAPos = pAnchor->GetCntntAnchor();
         if (pAPos &&
             ((FLY_AT_PARA == pAnchor->GetAnchorId()) ||
@@ -4432,10 +4410,9 @@ sal_Bool SwHTMLParser::HasCurrentParaFlys( sal_Bool 
bNoSurroundOnly,
                        }
                        else
                        {
-                               // fix #42282#: Wenn Rahmen mit Umlauf gesucht 
sind,
-                               // auch keine mit Durchlauf beachten. Dabei 
handelt es
-                               // sich (noch) um HIDDEN-Controls, und denen 
weicht man
-                               // besser auch nicht aus.
+                               // fix #42282#: If frames with circulation are 
wanted,
+                               // do not consider any with circulation either. 
These are
+                               // are (still) HIDDEN controls, and it's better 
not to avoid them.
                                SwSurround eSurround = 
pFmt->GetSurround().GetSurround();
                                if( bNoSurroundOnly )
                                {
@@ -4455,8 +4432,8 @@ sal_Bool SwHTMLParser::HasCurrentParaFlys( sal_Bool 
bNoSurroundOnly,
                                        else if( SURROUND_THROUGHT!=eSurround )
                                        {
                                                bFound = sal_True;
-                                               // weitersuchen: Es koennten ja 
noch welche ohne
-                                               // Umlauf kommen ...
+                                               // continue searching: There 
might still be some without
+                                               // circulation ...
                                        }
                                }
                        }
@@ -4468,7 +4445,7 @@ sal_Bool SwHTMLParser::HasCurrentParaFlys( sal_Bool 
bNoSurroundOnly,
 
 /*  */
 
-// die speziellen Methoden zum Einfuegen von Objecten
+// the special methods for inserting objects
 
 const SwFmtColl *SwHTMLParser::GetCurrFmtColl() const
 {
@@ -4479,16 +4456,16 @@ const SwFmtColl *SwHTMLParser::GetCurrFmtColl() const
 
 void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext *pContext )
 {
-       SwTxtFmtColl *pCollToSet = 0;   // die zu setzende Vorlage
-       SfxItemSet *pItemSet = 0;               // der Set fuer harte Attrs
+       SwTxtFmtColl *pCollToSet = 0;   // the template to be set
+       SfxItemSet *pItemSet = 0;               // the set for hard attributes
        sal_uInt16 nTopColl = pContext ? pContext->GetTxtFmtColl() : 0;
        const String& rTopClass = pContext ? pContext->GetClass() : (const 
String&) aEmptyStr;
        sal_uInt16 nDfltColl = RES_POOLCOLL_TEXT;
 
-       sal_Bool bInPRE=sal_False;                                              
        // etwas Kontext Info
+       sal_Bool bInPRE=sal_False; // some context info
 
-       sal_uInt16 nLeftMargin = 0, nRightMargin = 0;   // die Einzuege und
-       short nFirstLineIndent = 0;                                     // 
Abstaende
+       sal_uInt16 nLeftMargin = 0, nRightMargin = 0; // the margins and
+       short nFirstLineIndent = 0; // Indent
        sal_uInt16 i;
 
        for( i = nContextStAttrMin; i < aContexts.Count(); i++ )
@@ -4498,9 +4475,9 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                sal_uInt16 nColl = pCntxt->GetTxtFmtColl();
                if( nColl )
                {
-                       // Es gibt eine Vorlage, die zu setzen ist. Dann
-                       // muss zunaechst einmal entschieden werden,
-                       // ob die Vorlage auch gesetzt werden kann
+                       // There is a template to be set. Then
+                       // a decision has to be made first,
+                       // whether the template can also be set
                        sal_Bool bSetThis = sal_True;
                        switch( nColl )
                        {
@@ -4508,14 +4485,14 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                                bInPRE = sal_True;
                                break;
                        case sal_uInt16(RES_POOLCOLL_TEXT):
-                               // <TD><P CLASS=xxx> muss TD.xxx werden
+                               // <TD><P CLASS=xxx> must become TD.xxx
                                if( nDfltColl==RES_POOLCOLL_TABLE ||
                                        nDfltColl==RES_POOLCOLL_TABLE_HDLN )
                                        nColl = nDfltColl;
                                break;
                        case sal_uInt16(RES_POOLCOLL_HTML_HR):
-                               // <HR> auch in <PRE> als Vorlage setzen, sonst 
kann man sie
-                               // nicht mehr exportieren
+                               // <HR> also set in <PRE> as template, 
otherwise you can't
+                               // no longer export
                                break;
                        default:
                                if( bInPRE )
@@ -4528,14 +4505,11 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
 
                        if( bSetThis )
                        {
-                               // wenn jetzt eine andere Vorlage gesetzt 
werden soll als
-                               // bisher, muss die bishere Vorlage durch harte 
Attributierung
-                               // ersetzt werden
-
+                               // if now another template should be set than
+                               // previously, the previous template must be 
replaced by hard attributes
                                if( pCollToSet )
                                {
-                                       // die Attribute, die die bisherige 
Vorlage setzt
-                                       // hart einfuegen
+                                       // Force the attributes set by the 
previous template
                                        if( !pItemSet )
                                                pItemSet = new SfxItemSet( 
pCollToSet->GetAttrSet() );
                                        else
@@ -4546,9 +4520,8 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                                                aItemSet.Set( rCollSet );
                                                pItemSet->Put( aItemSet );
                                        }
-                                       // aber die Attribute, die aktuelle 
Vorlage setzt
-                                       // entfernen, weil sie sonst spaeter 
ueberschrieben
-                                       // werden
+                                       // but remove the attributes that the 
current template sets
+                                       // because otherwise they will be 
overwritten later.
                                        pItemSet->Differentiate( 
pNewColl->GetAttrSet() );
                                }
 
@@ -4556,7 +4529,7 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                        }
                        else
                        {
-                               // hart Attributieren
+                               // Force attributes
                                if( !pItemSet )
                                        pItemSet = new SfxItemSet( 
pNewColl->GetAttrSet() );
                                else
@@ -4571,13 +4544,13 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                }
                else
                {
-                       // vielliecht gibt es ja eine Default-Vorlage?
+                       // Maybe there is a default template?
                        nColl = pCntxt->GetDfltTxtFmtColl();
                        if( nColl )
                                nDfltColl = nColl;
                }
 
-               // ggf. neue Absatz-Einzuege holen
+               // get new paragraph inserts if necessary
                if( pCntxt->IsLRSpaceChanged() )
                {
                        sal_uInt16 nLeft=0, nRight=0;
@@ -4588,11 +4561,11 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                }
        }
 
-       // wenn im aktuellen Kontext eine neue Vorlage gesetzt werden soll,
-       // muessen deren Absatz-Abstaende noch in den Kontext eingetragen werden
+       // if a new template is to be set in the current context,
+       // its paragraph spacing must still be entered into the context.
        if( pContext && nTopColl )
        {
-               // <TD><P CLASS=xxx> muss TD.xxx werden
+           // <TD><P CLASS=xxx> must become TD.xxx
                if( nTopColl==RES_POOLCOLL_TEXT &&
                        (nDfltColl==RES_POOLCOLL_TABLE ||
                         nDfltColl==RES_POOLCOLL_TABLE_HDLN) )
@@ -4611,8 +4584,8 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                        sal_Int32 nRight = pLRItem->GetRight();
                        nFirstLineIndent = pLRItem->GetTxtFirstLineOfst();
 
-                       // In Definitions-Listen enthalten die Abstaende auch 
die der
-                       // vorhergehenden Level
+                       // In definition lists, the distances also include 
those of the
+                       // previous level
                        if( RES_POOLCOLL_HTML_DD == nTopColl )
                        {
                                const SvxLRSpaceItem& rDTLRSpace = pCSS1Parser
@@ -4627,7 +4600,7 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                                nRight = 0;
                        }
 
-                       // die Absatz-Abstaende addieren sich
+                       // the paragraph distances add up
             nLeftMargin = nLeftMargin + static_cast< sal_uInt16 >(nLeft);
             nRightMargin = nRightMargin + static_cast< sal_uInt16 >(nRight);
 
@@ -4642,7 +4615,7 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                }
        }
 
-       // wenn gar keine Vorlage im Kontext gesetzt ist, Textkoerper nehmen
+       // if no template is set in context, take text body
        if( !pCollToSet )
        {
                pCollToSet = pCSS1Parser->GetTxtCollFromPool( nDfltColl );
@@ -4655,7 +4628,7 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                        nFirstLineIndent = rLRItem.GetTxtFirstLineOfst();
        }
 
-       // bisherige harte Attributierung des Absatzes entfernen
+       // remove previous hard attribution of the paragraph
        if( aParaAttrs.Count() )
        {
                for( i=0; i<aParaAttrs.Count(); i++ )
@@ -4664,10 +4637,10 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
        }
 
-       // Die Vorlage setzen
+       // Set the template
        pDoc->SetTxtFmtColl( *pPam, pCollToSet );
 
-       // ggf. noch den Absatz-Einzug korrigieren
+       // correct the paragraph indentation if necessary
        const SvxLRSpaceItem& rLRItem = pCollToSet->GetLRSpace();
        sal_Bool bSetLRSpace;
 
@@ -4692,7 +4665,7 @@ void SwHTMLParser::SetTxtCollAttrs( _HTMLAttrContext 
*pContext )
                }
        }
 
-       // und nun noch die Attribute setzen
+       // and now set the attributes
        if( pItemSet )
        {
                InsertParaAttrs( *pItemSet );
@@ -4730,15 +4703,15 @@ void SwHTMLParser::NewCharFmt( int nToken )
                }
        }
 
-       // einen neuen Kontext anlegen
+       // set up a new context
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( static_cast< sal_uInt16 
>(nToken) );
 
-       // die Vorlage setzen und im Kontext merken
+       // Set the template and store it in the context
     SwCharFmt* pCFmt = pCSS1Parser->GetChrFmt( static_cast< sal_uInt16 
>(nToken), aClass );
-       ASSERT( pCFmt, "keine Zeichenvorlage zu Token gefunden" );
+       ASSERT( pCFmt, "no character template found for token" );
 
 
-       // Styles parsen (zu Class siehe auch NewPara)
+       // parse styles (to Class see NewPara)
        if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
        {
                SfxItemSet aItemSet( pDoc->GetAttrPool(), 
pCSS1Parser->GetWhichMap() );
@@ -4753,13 +4726,13 @@ void SwHTMLParser::NewCharFmt( int nToken )
                }
        }
 
-       // Zeichen-Vorlagen werden in einem eigenen Stack gehalten und
-       // koennen nie durch Styles eingefuegt werden. Das Attribut ist deshalb
-       // auch gar nicht im CSS1-Which-Range enthalten
+       // Character templates are kept in their own stack and
+       // can never be inserted by styles. The attribute is therefore
+       // not included in the CSS1 Which range at all.
        if( pCFmt )
                InsertAttr( &aAttrTab.pCharFmts, SwFmtCharFmt( pCFmt ), pCntxt 
);
 
-       // den Kontext merken
+       // memorize context
        PushContext( pCntxt );
 }
 
@@ -4768,7 +4741,7 @@ void SwHTMLParser::NewCharFmt( int nToken )
 
 void SwHTMLParser::InsertSpacer()
 {
-       // und es ggf. durch die Optionen veraendern
+       // and change it by the options if necessary
        String aId;
     sal_Int16 eVertOri = text::VertOrientation::TOP;
     sal_Int16 eHoriOri = text::HoriOrientation::NONE;
@@ -4799,17 +4772,17 @@ void SwHTMLParser::InsertSpacer()
                                   eHoriOri );
                        break;
                case HTML_O_WIDTH:
-                       // erstmal nur als Pixelwerte merken!
+                       // remember only as pixel values for now!
                        bPrcWidth = (pOption->GetString().Search('%') != 
STRING_NOTFOUND);
                        aSize.Width() = (long)pOption->GetNumber();
                        break;
                case HTML_O_HEIGHT:
-                       // erstmal nur als Pixelwerte merken!
+                       // remember only as pixel values for now!
                        bPrcHeight = (pOption->GetString().Search('%') != 
STRING_NOTFOUND);
                        aSize.Height() = (long)pOption->GetNumber();
                        break;
                case HTML_O_SIZE:
-                       // erstmal nur als Pixelwerte merken!
+                       // remember only as pixel values for now!
                        nSize = pOption->GetNumber();
                        break;
                }
@@ -4819,18 +4792,18 @@ void SwHTMLParser::InsertSpacer()
        {
        case HTML_SPTYPE_BLOCK:
                {
-                       // einen leeren Textrahmen anlegen
+                       // create an empty text frame
 
-                       // den Itemset holen
+                       // get the itemset
                        SfxItemSet aFrmSet( pDoc->GetAttrPool(),
                                                                
RES_FRMATR_BEGIN, RES_FRMATR_END-1 );
                        if( !IsNewDoc() )
                                Reader::ResetFrmFmtAttrs( aFrmSet );
 
-                       // den Anker und die Ausrichtung setzen
+                       // set the anchor and the alignment
                        SetAnchorAndAdjustment( eVertOri, eHoriOri, aFrmSet );
 
-                       // und noch die Groesse des Rahmens
+                       // also the size of the frame
                        Size aDfltSz( MINFLY, MINFLY );
                        Size aSpace( 0, 0 );
                        SfxItemSet aDummyItemSet( pDoc->GetAttrPool(),
@@ -4841,17 +4814,17 @@ void SwHTMLParser::InsertSpacer()
                                                aDummyItemSet, aDummyPropInfo, 
aFrmSet );
                        SetSpace( aSpace, aDummyItemSet, aDummyPropInfo, 
aFrmSet );
 
-                       // den Inhalt schuetzen
+                       // protect the content
             SvxProtectItem aProtectItem( RES_PROTECT) ;
                        aProtectItem.SetCntntProtect( sal_True );
                        aFrmSet.Put( aProtectItem );
 
-                       // der Rahmen anlegen
+                       // create the frame
                        RndStdIds eAnchorId =
                                ((const SwFmtAnchor 
&)aFrmSet.Get(RES_ANCHOR)).GetAnchorId();
                        SwFrmFmt *pFlyFmt = pDoc->MakeFlySection( eAnchorId,
                                                                                
        pPam->GetPoint(), &aFrmSet );
-                       // Ggf Frames anlegen und auto-geb. Rahmen registrieren
+                       // If necessary, create frames and register 
auto-generated frames
                        RegisterFlyFrm( pFlyFmt );
                }
                break;
@@ -4865,21 +4838,21 @@ void SwHTMLParser::InsertSpacer()
                                                                                
        MapMode(MAP_TWIP) ).Height();
                        }
 
-                       // einen Absatz-Abstand setzen
+                       // set a paragraph spacing
                        SwTxtNode *pTxtNode = 0;
                        if( !pPam->GetPoint()->nContent.GetIndex() )
                        {
-                               // den unteren Absatz-Abstand des vorherigen 
Nodes aendern,
-                               // wenn moeglich
+                               // change the lower paragraph spacing of the 
previous node,
+                               // if possible
 
-                               SetAttr();      // noch offene Absatz-Attribute 
setzen
+                               SetAttr();      // Set more open paragraph 
attributes
 
                                pTxtNode = 
pDoc->GetNodes()[pPam->GetPoint()->nNode.GetIndex()-1]
                                                           ->GetTxtNode();
 
-                               // Wenn der Abstz davor kein Txtenode ist, dann 
wird jetzt
-                               // ein leere Absatz angelegt, der eh schon eine 
Zeilenhoehe
-                               // Abstand erzeugt.
+                               // If the paragraph in front of it is not a 
txttenode, then now
+                               // an empty paragraph is created which already 
creates a line height
+                               // spacing
                                if( !pTxtNode )
                                        nSize = nSize>HTML_PARSPACE ? 
nSize-HTML_PARSPACE : 0;
                        }
@@ -4896,15 +4869,15 @@ void SwHTMLParser::InsertSpacer()
                 NewAttr( &aAttrTab.pULSpace, SvxULSpaceItem( 0, 
(sal_uInt16)nSize, RES_UL_SPACE ) );
                                EndAttr( aAttrTab.pULSpace, 0, sal_False );
 
-                               AppendTxtNode();        // nicht am Abstand 
drehen!
+                               AppendTxtNode();        // do not change the 
distance!
                        }
                }
                break;
        case HTML_SPTYPE_HORI:
                if( nSize > 0 )
                {
-                       // wenn der Absatz noch leer ist, einen 
Erstzeilen-Einzug
-                       // setzen, sondern Sperrschrift ueber einem Space 
aufspannen
+                       // if the paragraph is still empty, set a first-line 
indentation
+                       // but span blocking font over a space.
 
                        if( nSize && Application::GetDefaultDevice() )
                        {
@@ -5004,27 +4977,27 @@ void SwHTMLParser::InsertIDOption()
 
 void SwHTMLParser::InsertLineBreak()
 {
-       // <BR CLEAR=xxx> wird wie folgt behandelt:
-       // 1.) Es werden nur nur absatzgebundene Rahmen betrachtet, die
-       //     im aktuellen Absatz verankert sind.
-       // 2.) Fuer linksbuendig ausgerichtete Rahmen wird bei CLEAR=LEFT
-       //     oder ALL und auf rechtsbuendige ausgerichtete Rahmen bei
-       //     CLEAR=RIGHT oder ALL der Durchlauf wie folgt geaendert:
-       // 3.) Wenn der Absatz keinen Text enthaelt, bekommt der Rahmen keinen
-       //     Umlauf
-       // 4.) sonst erhaelt ein links ausgerichteter Rahmen eine rechten
-       //     "nur Anker" Umlauf und recht rechst ausg. Rahmen einen linken
-       //     "nur Anker" Umlauf.
-       // 5.) wenn in einem nicht-leeren Absatz der Umlauf eines Rahmens
-       //     geaendert wird, wird ein neuer Absatz aufgemacht
-       // 6.) Wenn von keinem Rahmen der Umlauf geaendert wird, wird ein
-       //     harter Zeilenumbruch eingefuegt
-
-       String aId, aStyle, aClass;                             // die ID der 
Bookmark
+       // <BR CLEAR=xxx> is handled as follows:
+       // 1.) Only paragraph-bound frames are considered, which are
+       //     are anchored in the current paragraph.
+       // 2.) For left-aligned frames at CLEAR=LEFT
+       //     or ALL and for right oriented frames with
+       //     CLEAR=RIGHT or ALL the pass is changed as follows:
+       // 3.) If the paragraph contains no text, the frame gets no
+       //     text flow
+       // 4.) otherwise a left aligned frame receives a right
+       //     "anchor only" text flow and right aligned frame receives a
+       //      left "anchor only" text flow.
+       // 5.) if in a non-empty paragraph the text flow of a frame
+       //     is changed, a new paragraph is opened
+       // 6.) If the text flow is not changed by any frame, a 
+       //     hard line break is inserted
+
+       String aId, aStyle, aClass;                             // the ID of 
the bookmark
        sal_Bool bClearLeft = sal_False, bClearRight = sal_False;
-       sal_Bool bCleared = sal_False;  // wurde ein CLEAR ausgefuehrt?
+       sal_Bool bCleared = sal_False;  // was a CLEAR executed?
 
-       // dann holen wir mal die Optionen
+       // then get the options
        const HTMLOptions *pHTMLOptions = GetOptions();
        for( sal_uInt16 i = pHTMLOptions->Count(); i; )
        {
@@ -5057,7 +5030,7 @@ void SwHTMLParser::InsertLineBreak()
                }
        }
 
-       // CLEAR wird nur fuer den aktuellen Absaetz unterstuetzt
+       // CLEAR is supported only for the current paragraph
        if( bClearLeft || bClearRight )
        {
                SwNodeIndex& rNodeIdx = pPam->GetPoint()->nNode;
@@ -5103,12 +5076,12 @@ void SwHTMLParser::InsertLineBreak()
                         pFmt->SetFmtAttr( aSurround );
                                                bCleared = sal_True;
                                        }
-                               } // Anker ist nicht im Node
-                       } // Schleife ueber Fly-Frames
-               } // kein Text-Node
-       } // kein CLEAR
+                               } // Anchor is not in the node
+                       } // Loop over fly frames
+               } // no text node
+       } // no CLEAR
 
-       // Styles parsen
+       // parse styles
     SvxFmtBreakItem aBreakItem( SVX_BREAK_NONE, RES_BREAK );
        sal_Bool bBreakItem = sal_False;
        if( HasStyleOptions( aStyle, aId, aClass ) )
@@ -5136,18 +5109,18 @@ void SwHTMLParser::InsertLineBreak()
 
        if( !bCleared && !bBreakItem )
        {
-               // wenn kein CLEAR ausgefuehrt werden sollte oder konnte, wird
-               // ein Zeilenumbruch eingef?gt
+               // if no CLEAR should be executed or could be executed
+               // a line break is inserted
                String sTmp( (sal_Unicode)0x0a );       // make the Mac happy 
:-)
         pDoc->InsertString( *pPam, sTmp );
        }
        else if( pPam->GetPoint()->nContent.GetIndex() )
        {
-               // wenn ein Claer in einem nicht-leeren Absatz ausgefuehrt 
wurde,
-               // muss anschliessen ein neuer Absatz aufgemacht werden
-               // MIB 21.02.97: Eigentlich muesste man hier den unteren Absatz-
-               // Absatnd auf 0 drehen. Das geht aber bei sowas wie <BR ..><P>
-               // schief (>Netacpe). Deshalb lassen wir das erstmal.
+               // if a claer was executed in a non-empty paragraph,
+               // a new paragraph must be opened afterwards.
+               // MIB 21.02.97: Actually, the lower paragraph should be set to 
0.
+               // But this works with something like <BR ..><P>.
+               // (>Netacpe). Therefore we leave it for now.
                AppendTxtNode( AM_NOSPACE );
        }
        if( bBreakItem && SVX_BREAK_PAGE_BEFORE==aBreakItem.GetBreak() )
@@ -5171,7 +5144,7 @@ void SwHTMLParser::InsertHorzRule()
        Color aColor;
        String aId;
 
-       // dann holen wir mal die Optionen
+       // get the options
        const HTMLOptions *pHTMLOptions = GetOptions();
        for( sal_uInt16 i = pHTMLOptions->Count(); i; )
        {
@@ -5189,7 +5162,7 @@ void SwHTMLParser::InsertHorzRule()
                        nWidth = (sal_uInt16)pOption->GetNumber();
                        if( bPrcWidth && nWidth>=100 )
                        {
-                               // 100%-Linien sind der default-Fall (keine 
Attrs neotig)
+                               // 100% lines are the default case (no attrs 
needed)
                                nWidth = 0;
                                bPrcWidth = sal_False;
                        }
@@ -5215,22 +5188,22 @@ void SwHTMLParser::InsertHorzRule()
        AppendTxtNode();
        pPam->Move( fnMoveBackward );
 
-       // ... und in einem Kontext merken
+       // ... and remember in a context
        _HTMLAttrContext *pCntxt =
                new _HTMLAttrContext( HTML_HORZRULE, RES_POOLCOLL_HTML_HR, 
aEmptyStr );
 
        PushContext( pCntxt );
 
-       // die neue Vorlage setzen
+       // set the new template
        SetTxtCollAttrs( pCntxt );
 
-       // die harten Attribute an diesem Absatz werden nie mehr ungueltig
+       // the hard attributes on this paragraph will never be invalid again
        if( aParaAttrs.Count() )
                aParaAttrs.Remove( 0, aParaAttrs.Count() );
 
        if( nSize>0 || bColor || bNoShade )
        {
-               // Farbe und/oder Breite der Linie setzen
+               // Set color and/or width of the line
                if( !bColor )
                        aColor.SetColor( COL_GRAY );
 
@@ -5261,18 +5234,18 @@ void SwHTMLParser::InsertHorzRule()
        }
        if( nWidth )
        {
-               // Wenn wir in keiner Tabelle sind, wird die Breitenangabe durch
-               // Absatz-Einzuege "getuerkt". In einer Tabelle macht das wenig
-               // Sinn. Um zu Vermeiden, dass die Linie bei der 
Breitenberechnung
-               // beruecksichtigt wird, bekommt sie aber trotzdem 
entsprechendes
-               // LRSpace-Item verpasst.
+               // If we are not in a table, the width specification will be 
"killed" by
+               // paragraph indents. In a table this makes little
+               // sense. To avoid that the line is taken into account in the 
width calculation
+               // width calculation, it will still be assigned the appropriate
+               // LRSpace item to the line.
 #ifdef FIX41370
                const SwFmtColl *pColl = GetCurrFmtColl();
                SvxLRSpaceItem aLRItem( pColl->GetLRSpace() );
 #endif
                if( !pTable )
                {
-                       // Laenge und Ausrichtung der Linie ueber 
Absatz-Einzuege "tuerken"
+                       // "Tune" the length and alignment of the line using 
paragraph indents
                        long nBrowseWidth = GetCurrentBrowseWidth();
                        nWidth = bPrcWidth ? (sal_uInt16)((nWidth*nBrowseWidth) 
/ 100)
                                                           : ToTwips( 
(sal_uInt16)nBrowseWidth );
@@ -5316,18 +5289,18 @@ void SwHTMLParser::InsertHorzRule()
 #endif
        }
 
-       // Bookmarks koennen nicht in Hyperlinks eingefueht werden
+       // Bookmarks cannot be inserted into hyperlinks
        if( aId.Len() )
                InsertBookmark( aId );
 
-       // den aktuellen Kontext vom Stack holen
+       // get the current context from the stack
        _HTMLAttrContext *pPoppedContext = PopContext( HTML_HORZRULE );
-       ASSERT( pPoppedContext==pCntxt, "wo kommt denn da ein HR-Kontext her?" 
);
+       ASSERT( pPoppedContext==pCntxt, "where does an HR context come from?" );
        delete pPoppedContext;
 
        pPam->Move( fnMoveForward );
 
-       // und im Absatz danach die dort aktuelle Vorlage setzen
+       // and in the paragraph after that set the template that is current 
there
        SetTxtCollAttrs();
 }
 
@@ -5356,10 +5329,10 @@ void SwHTMLParser::ParseMoreMetaOptions()
         }
     }
 
-    // Hier wird es etwas tricky: Wir wissen genau, da? die Dok-Info
-    // nicht geaendert wurde. Deshalb genuegt es, auf Generator und
-    // auf refresh abzufragen, um noch nicht verarbeitete Token zu finden,
-    // denn das sind die einzigen, die die Dok-Info nicht modifizieren.
+    // Here's where it gets a little tricky: we know for a fact that the 
doc-info
+    // has not been changed. Therefore it is sufficient to query on generator 
and
+    // refresh to find tokens which have not been processed yet,
+    // because those are the only ones that do not modify the doc info.
     if( aName.EqualsIgnoreCaseAscii( OOO_STRING_SVTOOLS_HTML_META_generator ) 
||
         aName.EqualsIgnoreCaseAscii( OOO_STRING_SVTOOLS_HTML_META_refresh ) ||
         aName.EqualsIgnoreCaseAscii( OOO_STRING_SVTOOLS_HTML_META_content_type 
) ||
@@ -5450,10 +5423,10 @@ _HTMLAttr::~_HTMLAttr()
 
 _HTMLAttr *_HTMLAttr::Clone( const SwNodeIndex& rEndPara, sal_uInt16 nEndCnt ) 
const
 {
-       // das Attribut mit der alten Start-Position neu anlegen
+       // recreate the attribute with the old start position
        _HTMLAttr *pNew = new _HTMLAttr( *this, rEndPara, nEndCnt, ppHead );
 
-       // die Previous-Liste muss uebernommen werden, die Next-Liste nicht!
+       // the Previous list must be taken over, the Next list must not!
        pNew->pPrev = pPrev;
 
        return pNew;
@@ -5462,13 +5435,13 @@ _HTMLAttr *_HTMLAttr::Clone( const SwNodeIndex& 
rEndPara, sal_uInt16 nEndCnt ) c
 void _HTMLAttr::Reset( const SwNodeIndex& rSttPara, sal_uInt16 nSttCnt,
                                           _HTMLAttr **ppHd )
 {
-       // den Anfang (und das Ende) neu setzen
+       // reset the beginning (and the end)
        nSttPara = rSttPara;
        nSttCntnt = nSttCnt;
        nEndPara = rSttPara;
        nEndCntnt = nSttCnt;
 
-       // den Head korrigieren und die Verkettungen aufheben
+       // correct the head and undo the concatenations
        pNext = 0;
        pPrev = 0;
        ppHead = ppHd;
@@ -5477,11 +5450,11 @@ void _HTMLAttr::Reset( const SwNodeIndex& rSttPara, 
sal_uInt16 nSttCnt,
 void _HTMLAttr::InsertPrev( _HTMLAttr *pPrv )
 {
        ASSERT( !pPrv->pNext || pPrv->pNext == this,
-                       "_HTMLAttr::InsertPrev: pNext falsch" );
+                       "_HTMLAttr::InsertPrev: pNext wrong" );
        pPrv->pNext = 0;
 
        ASSERT( 0 == pPrv->ppHead || ppHead == pPrv->ppHead,
-                       "_HTMLAttr::InsertPrev: ppHead falsch" );
+                       "_HTMLAttr::InsertPrev: ppHead wrong" );
        pPrv->ppHead = 0;
 
        _HTMLAttr *pAttr = this;
diff --git a/main/sw/source/filter/html/swhtml.hxx 
b/main/sw/source/filter/html/swhtml.hxx
index a36528d01a..5ca49cd026 100644
--- a/main/sw/source/filter/html/swhtml.hxx
+++ b/main/sw/source/filter/html/swhtml.hxx
@@ -74,13 +74,13 @@ class SvxCSS1PropertyInfo;
 #define HTML_DFLT_IMG_WIDTH (MM50*4)
 #define HTML_DFLT_IMG_HEIGHT (MM50*2)
 
-// ein par Sachen, die man oefter mal braucht
+// a few things that are needed from time to time
 extern HTMLOptionEnum __FAR_DATA aHTMLPAlignTable[];
 extern HTMLOptionEnum __FAR_DATA aHTMLImgHAlignTable[];
 extern HTMLOptionEnum __FAR_DATA aHTMLImgVAlignTable[];
 
 
-// der Attribut Stack:
+// the attribute stack:
 
 class _HTMLAttr;
 typedef _HTMLAttr *_HTMLAttrPtr;
@@ -94,28 +94,25 @@ class _HTMLAttr
        SwNodeIndex nSttPara, nEndPara;
        xub_StrLen nSttCntnt, nEndCntnt;
        sal_Bool bInsAtStart : 1;
-       sal_Bool bLikePara : 1; // Attribut ueber dem gesamten Absatz setzen
-       sal_Bool bValid : 1;    // ist das Attribut gueltig?
+       sal_Bool bLikePara : 1;// Set attribute over the entire paragraph
+       sal_Bool bValid : 1;// is the attribute valid?
 
        SfxPoolItem* pItem;
-       sal_uInt16 nCount;              // Anzahl noch zu schliessender Attrs 
mit einem Wert
-       _HTMLAttr *pNext;       // noch zu schliessene Attrs mit unterschiedl. 
Werten
-       _HTMLAttr *pPrev;       // bereits geschlossene aber noch nicht gesetze 
Attrs
-       _HTMLAttr **ppHead;     // der Listenkopf
+       sal_uInt16 nCount;// open attrs, with different values
+       _HTMLAttr *pNext;// Attrs with different values still to be closed. 
Values
+       _HTMLAttr *pPrev;// Attrs already closed but not yet legislated
+       _HTMLAttr **ppHead;// the list header
 
-       _HTMLAttr( const SwPosition& rPos, const SfxPoolItem& rItem,
-                          _HTMLAttr **pHd=0 );
+       _HTMLAttr( const SwPosition& rPos, const SfxPoolItem& rItem, _HTMLAttr 
**pHd=0 );
 
-       _HTMLAttr( const _HTMLAttr &rAttr, const SwNodeIndex &rEndPara,
-                          xub_StrLen nEndCnt, _HTMLAttr **pHd );
+       _HTMLAttr( const _HTMLAttr &rAttr, const SwNodeIndex &rEndPara, 
xub_StrLen nEndCnt, _HTMLAttr **pHd );
 
 public:
 
        ~_HTMLAttr();
 
        _HTMLAttr *Clone( const SwNodeIndex& rEndPara, xub_StrLen nEndCnt ) 
const;
-       void Reset( const SwNodeIndex& rSttPara, xub_StrLen nSttCnt,
-                           _HTMLAttr **pHd );
+       void Reset( const SwNodeIndex& rSttPara, xub_StrLen nSttCnt, _HTMLAttr 
**pHd );
        inline void SetStart( const SwPosition& rPos );
 
        sal_uInt32 GetSttParaIdx() const { return nSttPara.GetIndex(); }
@@ -142,27 +139,27 @@ public:
 
        void SetHead( _HTMLAttr **ppHd ) { ppHead = ppHd; }
 
-       // Beim Setzen von Attributen aus Vorlagen kann es passieren,
-       // dass Attribute doch nicht mehr gesetzt werden sollen. Die zu loeschen
-       // waere sehr aufwendig, da man nicht so genau weiss, wo sie eingekettet
-       // sind. Sie werden deshalb einfach invalidiert und erst beim naechsten
-       // _SetAttr() geloescht.
+       // When setting attributes from templates, it can happen,
+       // that attributes should not be set after all. To delete them
+       // would be very time-consuming, because you don't know exactly
+       // where they are chained. Therefore, they are simply invalidated
+       // and deleted with next _SetAttr().
        void Invalidate() { bValid = sal_False; }
        sal_Bool IsValid() const { return bValid; }
 };
 
-// Tabelle der Attribute: Hier ist die Reihenfolge wichtig: Die Attribute
-// vorne in der Tabelle werden in EndAllAttrs auch zuerst gesetzt.
+// Table of attributes: Here the order is important: the attributes
+// at the front of the table are also set first in EndAllAttrs.
 struct _HTMLAttrTable
 {
        _HTMLAttr
-                               *pKeep,                 // 
::com::sun::star::frame::Frame-Attribure
+                               *pKeep,// 
::com::sun::star::frame::Frame-Attribute
                                *pBox,
                                *pBrush,
                                *pBreak,
                                *pPageDesc,
 
-                               *pLRSpace,              // Absatz-Attribute
+                               *pLRSpace,// paragraph-attributes
                                *pULSpace,
                                *pLineSpacing,
                                *pAdjust,
@@ -172,10 +169,10 @@ struct _HTMLAttrTable
                                *pOrphans,
                                *pDirection,
 
-                               *pCharFmts,             // Text-Attribute
+                               *pCharFmts,// text-attributes
                                *pINetFmt,
 
-                               *pBold,                 // Zeichen-Attribute
+                               *pBold,// character-attributes
                                *pBoldCJK,
                                *pBoldCTL,
                                *pItalic,
@@ -193,8 +190,8 @@ struct _HTMLAttrTable
                                *pFontColor,
                                *pEscapement,
                                *pCaseMap,
-                               *pKerning,              // (nur fuer SPACER)
-                               *pCharBrush,    // Zeichen-Hintergrund
+                               *pKerning,// (only for SPACER)
+                               *pCharBrush,// Character background
                                *pLanguage,
                                *pLanguageCJK,
                                *pLanguageCTL
@@ -204,40 +201,40 @@ struct _HTMLAttrTable
 class _HTMLAttrContext_SaveDoc;
 
 enum SwHTMLAppendMode {
-        AM_NORMAL,             // keine Absatz-Abstand-Behandlung
-        AM_NOSPACE,            // Abstand hart auf 0cm setzen
-        AM_SPACE,                      // Abstand hart auf 0.5cm setzen
-        AM_SOFTNOSPACE,        // Abstand nicht setzen aber 0cm merken
-        AM_NONE                        // gar kein Append
+        AM_NORMAL,// no paragraph spacing treatment
+        AM_NOSPACE,// Force 0cm spacing
+        AM_SPACE,// Force 0.5 cm spacing
+        AM_SOFTNOSPACE,// Do not set distance but remember 0cm
+        AM_NONE// no append at all
 };
 
 class _HTMLAttrContext
 {
-       _HTMLAttrs aAttrs;              // die in dem Kontext gestarteten 
Attribute
+       _HTMLAttrs aAttrs;// the attributes started in the context
 
-       String aClass;                  // die Klasse des Kontexts
+       String aClass;// the class of the context
 
        _HTMLAttrContext_SaveDoc *pSaveDocContext;
        SfxItemSet *pFrmItemSet;
 
-       sal_uInt16      nToken;                 // das Token, zu dem der 
Kontext gehoehrt
+       sal_uInt16      nToken;// the token to which the context belongs
 
-       sal_uInt16      nTxtFmtColl;    // eine in dem Kontext begonnene 
Vorlage oder 0
+       sal_uInt16      nTxtFmtColl;// a template started in the context or 0
 
-       sal_uInt16      nLeftMargin;            // ein veraenderter linker Rand
-       sal_uInt16      nRightMargin;           // ein veraenderter rechter Rand
-       sal_uInt16      nFirstLineIndent;       // ein veraenderter 
Erstzeilen-Einzug
+       sal_uInt16      nLeftMargin;// a changed left edge
+       sal_uInt16      nRightMargin;// a changed right edge
+       sal_uInt16      nFirstLineIndent;// a changed first line indent
 
        sal_uInt16      nUpperSpace;
        sal_uInt16      nLowerSpace;
 
        SwHTMLAppendMode eAppend;
 
-       sal_Bool        bLRSpaceChanged : 1;// linker/rechtr Rand, Einzug 
veraendert?
-       sal_Bool        bULSpaceChanged : 1;// oberer/unterer Rand veraendert?
-       sal_Bool        bDfltTxtFmtColl : 1;// nTxtFmtColl ist nur ein default
-       sal_Bool        bSpansSection : 1;      // Der Kontext spannt eine 
SwSection auf
-       sal_Bool        bPopStack : 1;          // Oberhalb liegende 
Stack-Elemente entf.
+       sal_Bool        bLRSpaceChanged : 1;// left/right edge, indent changed?
+       sal_Bool        bULSpaceChanged : 1;// upper/lower edge changed?
+       sal_Bool        bDfltTxtFmtColl : 1;// nTxtFmtColl is only a default
+       sal_Bool        bSpansSection : 1;// The context spans a SwSection
+       sal_Bool        bPopStack : 1;// Delete the element above in the stack
        sal_Bool        bFinishPREListingXMP : 1;
        sal_Bool        bRestartPRE : 1;
        sal_Bool        bRestartXMP : 1;
@@ -366,7 +363,7 @@ SV_DECL_PTRARR( SwHTMLFrmFmts, SwFrmFmtPtr, 2, 2 )
        (HTML_CNTXT_PROTECT_STACK | \
         HTML_CNTXT_STRIP_PARA)
 
-#define HTML_FF_BOX                                    0x0001
+#define HTML_FF_BOX                            0x0001
 #define HTML_FF_BACKGROUND                     0x0002
 #define HTML_FF_PADDING                                0x0004
 #define HTML_FF_DIRECTION                      0x0008
@@ -382,120 +379,119 @@ class SwHTMLParser : public SfxHTMLParser, public 
SwClient
        String          sSaveBaseURL;
        String          aBasicLib;
        String          aBasicModule;
-       String          aScriptSource;  // Inhalt des aktuellen Script-Blocks
-       String          aScriptType;    // Type des gelesenen Scripts 
(StarBasic/VB/JAVA)
-       String          aScriptURL;             // URL eines Scripts
-       String          aStyleSource;   // Inhalt des aktuellen Style-Sheets
-       String          aContents;              // Text des akteullen Marquee, 
Feldes etc.
+       String          aScriptSource;// Content of the current script block
+       String          aScriptType;// Type of the loaded script 
(StarBasic/VB/JAVA)
+       String          aScriptURL;// URL of a script
+       String          aStyleSource;// Contents of the current style sheet
+       String          aContents;// Text of the actual marquee, field, etc.
        String          sTitle;
-       String          aUnknownToken;  // ein gestartetes unbekanntes Token
+       String          aUnknownToken;// a started unknown token
        String          aBulletGrfs[MAXLEVEL];
        String          sJmpMark;
 
-       SvUShorts       aBaseFontStack; // Stack fuer <BASEFONT>
-                                                               // Bit 0-2: 
Fontgroesse (1-7)
-       SvUShorts       aFontStack;     // Stack fuer <FONT>, <BIG>, <SMALL>
-                                                               // Bit 0-2: 
Fontgroesse (1-7)
-                                                               // Bit 15: 
Fontfarbe wurde gesetzt
-
-       _HTMLAttrs              aSetAttrTab;// "geschlossene", noch nicht 
gesetzte Attr.
-       _HTMLAttrs              aParaAttrs;     // vorlauefige Absatz-Attribute
-       _HTMLAttrTable  aAttrTab;       // "offene" Attribute
-       _HTMLAttrContexts aContexts;// der aktuelle Attribut/Token-Kontext
-       SwHTMLFrmFmts   aMoveFlyFrms;// Fly-Frames, the anchor is moved
+       SvUShorts       aBaseFontStack;// Stack for <BASEFONT>
+                                       // Bit 0-2: Font size (1-7)
+       SvUShorts       aFontStack;// Stack for <FONT>, <BIG>, <SMALL>
+                                  // Bit 0-2: Font size (1-7)
+                                  // Bit 15: Font color was set
+
+       _HTMLAttrs              aSetAttrTab;// "closed" attribute, not set yet
+       _HTMLAttrs              aParaAttrs;// leading paragraph attributes
+       _HTMLAttrTable  aAttrTab;// "open" attributes
+       _HTMLAttrContexts aContexts;// the current attribute/token context
+       SwHTMLFrmFmts   aMoveFlyFrms;// Fly-Frames, der Anker wird verschoben
        SvXub_StrLens   aMoveFlyCnts;// and the Content-Positions
 
-       SwApplet_Impl *pAppletImpl;     // das aktuelle Applet
+       SwApplet_Impl *pAppletImpl;// the current applet
 
-       SwCSS1Parser    *pCSS1Parser;   // der Style-Sheet-Parser
+       SwCSS1Parser    *pCSS1Parser;// the style sheet parser
        SwHTMLNumRuleInfo *pNumRuleInfo;
        SwPendingStack  *pPendStack;
 
        SwDoc                   *pDoc;
-       SwPaM                   *pPam;          // SwPosition duerfte doch 
reichen, oder ??
-       ViewShell               *pActionViewShell;      // ViewShell, an der 
das StartAction
-                                                                               
// gerufen wurde.
+       SwPaM                   *pPam;// SwPosition should be enough, right?
+       ViewShell               *pActionViewShell;// ViewShell, at which the 
StartAction
+                                                                               
// was called.
        SwNodeIndex             *pSttNdIdx;
 
-       HTMLTable               *pTable;        // die aktuelle "auesserste" 
Tabelle
-       SwHTMLForm_Impl *pFormImpl;// die aktuelle Form
-       SdrObject               *pMarquee;      // aktuelles Marquee
-       SwField                 *pField;        // aktuelles Feld
-       ImageMap                *pImageMap;     // aktuelle Image-Map
-       ImageMaps               *pImageMaps;// alle gelesenen Image-Maps
+       HTMLTable               *pTable;// the current "outermost" table
+       SwHTMLForm_Impl *pFormImpl;// the current form
+       SdrObject               *pMarquee;// current marquee
+       SwField                 *pField;// current field
+       ImageMap                *pImageMap;// current image map
+       ImageMaps               *pImageMaps;// all image maps read so far
        SwHTMLFootEndNote_Impl *pFootEndNoteImpl;
 
-       Size    aHTMLPageSize;          // die Seitengroesse der HTML-Vorlage
+       Size    aHTMLPageSize;// the page size of the HTML template
 
-       sal_uInt32      aFontHeights[7];        // die Font-Hoehen 1-7
-       sal_uInt32      nScriptStartLineNr;     // Zeilennummer eines 
Script-Blocks
+       sal_uInt32      aFontHeights[7];// the font heights 1-7
+       sal_uInt32      nScriptStartLineNr;// Line number of a script block
        sal_uLong               nEventId;
 
-       sal_uInt16      nBaseFontStMin;         //
-       sal_uInt16      nFontStMin;             //
-       sal_uInt16      nDefListDeep;       //
-       sal_uInt16      nFontStHeadStart;       // Elemente im Font-Stack bei 
<Hn>
-       sal_uInt16      nSBModuleCnt;           // Zaehler fuer Basic-Module
-       sal_uInt16      nMissingImgMaps;        // Wie viele Image-Maps fehlen 
noch?
+       sal_uInt16      nBaseFontStMin;
+       sal_uInt16      nFontStMin; 
+       sal_uInt16      nDefListDeep;
+       sal_uInt16      nFontStHeadStart;// Elements in the font stack at <Hn>.
+       sal_uInt16      nSBModuleCnt;// Counter for Basic modules
+       sal_uInt16      nMissingImgMaps;// How many image maps are missing?
        sal_uInt16      nParaCnt;
-       sal_uInt16      nContextStMin;          // Untergrenze fuer PopContext
-       sal_uInt16      nContextStAttrMin;      // Untergrenze fuer 
Attributierung
-       sal_uInt16      nSelectEntryCnt;        // Anzahl der Eintraege der 
akt. Listbox
-       sal_uInt16      nOpenParaToken;         // ein geoeffnetes 
Absatz-Element
+       sal_uInt16      nContextStMin;// Lower limit for PopContext
+       sal_uInt16      nContextStAttrMin;// Lower limit for attribution
+       sal_uInt16      nSelectEntryCnt;// Number of entries in the current 
list box
+       sal_uInt16      nOpenParaToken;// an opened paragraph element
 
        enum JumpToMarks { JUMPTO_NONE, JUMPTO_MARK, JUMPTO_TABLE, JUMPTO_FRAME,
                                                JUMPTO_REGION, JUMPTO_GRAPHIC } 
eJumpTo;
 
 #ifdef DBG_UTIL
-       sal_uInt16      nContinue;                      // Tiefe der 
Continue-Aufrufe
+       sal_uInt16      nContinue;// Depth of Continue calls
 #endif
 
-       SvxAdjust       eParaAdjust;    // Ausrichtung des aktuellen Absatz
-       HTMLScriptLanguage eScriptLang; // die aktuelle Script-Language
+       SvxAdjust       eParaAdjust;// Alignment of the current paragraph
+       HTMLScriptLanguage eScriptLang;// the current script language
 
-       sal_Bool bOldIsHTMLMode : 1;    // War's mal ein HTML-Dokument?
+       sal_Bool bOldIsHTMLMode : 1;// Was it once an HTML document?
 
-       sal_Bool bDocInitialized : 1;   // Dokument bzw. Shell wurden 
initialisiert
-                                                               // Flag um 
doppeltes init durch Rekursion
-                                                               // zu 
verhindern.
-       sal_Bool bViewCreated : 1;              // die View wurde schon erzeugt 
(asynchron)
-       sal_Bool bSetCrsr : 1;                  // Crsr wieder auf den Anfang 
setzen
+       sal_Bool bDocInitialized : 1;// Document or shell were initialized
+                                     // Flag used to avoid double 
initialization due to recursion
+       sal_Bool bViewCreated : 1;// the view was already created (asynchronous)
+       sal_Bool bSetCrsr : 1;// Set Crsr back to the beginning
        sal_Bool bSetModEnabled : 1;
 
-       sal_Bool bInFloatingFrame : 1;  // Wir sind in einen Floating 
::com::sun::star::frame::Frame
+       sal_Bool bInFloatingFrame : 1;// We are in a floating 
::com::sun::star::frame::Frame
        sal_Bool bInField : 1;
-       sal_Bool bKeepUnknown : 1;              // unbekannte/nicht 
unterstuetze Tokens beh.
+       sal_Bool bKeepUnknown : 1;// unknown/unsupported tokens treatment
        // 8
-       sal_Bool bCallNextToken : 1;    // In Tabellen: NextToken in jedem Fall 
rufen
-       sal_Bool bIgnoreRawData : 1;    // Inhalt eines Scripts/Styles 
ignorieren.
-       sal_Bool bLBEntrySelected : 1;  // Ist der aktuelle Listbox-Eintrag 
selekt.
-       sal_Bool bTAIgnoreNewPara : 1;  // naechstes LF in TextArea ignorieren?
-       sal_Bool bFixMarqueeWidth : 1;  // Groesse einer Laufschrift anpassen?
+       sal_Bool bCallNextToken : 1;// In tables: Call NextToken in any case
+       sal_Bool bIgnoreRawData : 1;// Ignore content of a script/style.
+       sal_Bool bLBEntrySelected : 1;// Is the current listbox entry selected.
+       sal_Bool bTAIgnoreNewPara : 1;// ignore next LF in TextArea?
+       sal_Bool bFixMarqueeWidth : 1;// Adjust the size of a ticker?
        sal_Bool bFixMarqueeHeight : 1;
 
-       sal_Bool bUpperSpace : 1;               // obererer Absatz-Abstand wird 
benoetigt
+       sal_Bool bUpperSpace : 1;// upper paragraph spacing is required
        sal_Bool bNoParSpace : 1;
        // 16
 
-       sal_Bool bAnyStarBasic : 1;             // gibt es ueberhaupt ein 
StarBasic-Modul
-       sal_Bool bInNoEmbed : 1;                // Wir sind in einem 
NOEMBED-Bereich
+       sal_Bool bAnyStarBasic : 1;// there is a StarBasic module at all
+       sal_Bool bInNoEmbed : 1;// We are in a NOEMBED area
 
-       sal_Bool bInTitle : 1;                  // Wir sind im Titel
+       sal_Bool bInTitle : 1;// We are in the title
 
-       sal_Bool bChkJumpMark : 1;              // springe ggfs. zu einem 
vorgegebenem Mark
+       sal_Bool bChkJumpMark : 1;// jump to a given marker if necessary
        sal_Bool bUpdateDocStat : 1;
-       sal_Bool bFixSelectWidth : 1;   // Breite eines Selects neu setzen?
-       sal_Bool bFixSelectHeight : 1;  // Breite eines Selects neu setzen?
+       sal_Bool bFixSelectWidth : 1;// Reset the width of a select?
+       sal_Bool bFixSelectHeight : 1;// Reset the height of a select?
        sal_Bool bTextArea : 1;
        // 24
        sal_Bool bSelect : 1;
        sal_Bool bInFootEndNoteAnchor : 1;
        sal_Bool bInFootEndNoteSymbol : 1;
-    sal_Bool bIgnoreHTMLComments : 1;
-    sal_Bool bRemoveHidden : 1; // the filter implementation might set the 
hidden flag
+        sal_Bool bIgnoreHTMLComments : 1;
+        sal_Bool bRemoveHidden : 1;// the filter implementation might set the 
hidden flag
 
-    /// the names corresponding to the DOCINFO field subtypes INFO[1-4]
-    ::rtl::OUString m_InfoNames[4];
+        // the names corresponding to the DOCINFO field subtypes INFO[1-4]
+        ::rtl::OUString m_InfoNames[4];
 
        SfxViewFrame* pTempViewFrame;
 
@@ -521,13 +517,13 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
 
        _HTMLAttr **GetAttrTabEntry( sal_uInt16 nWhich );
 
-       // Einen neuen Textknoten an PaM-Position anlegen
+       // Create a new text node at PaM position
        sal_Bool AppendTxtNode( SwHTMLAppendMode eMode=AM_NORMAL, sal_Bool 
bUpdateNum=sal_True );
        void AddParSpace();
 
-       // Ein Attribut beginnen/beenden
-       // ppDepAttr gibt einen Attribut-Tabellen-Eintrag an, dessen Attribute
-       // gesetzt sein muessen, bevor das Attribut beendet werden darf
+       // Start/end an attribute
+       // ppDepAttr specifies an attribute table entry whose attributes  
+       // must be set before the attribute can be terminated.
        void NewAttr( _HTMLAttr **ppAttr, const SfxPoolItem& rItem );
        void EndAttr( _HTMLAttr *pAttr, _HTMLAttr **ppDepAttr=0,
                                  sal_Bool bChkEmpty=sal_True );
@@ -566,26 +562,26 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
        SwTwips GetCurrentBrowseWidth();
 
        SwHTMLNumRuleInfo& GetNumInfo() { return *pNumRuleInfo; }
-    // --> OD 2008-04-02 #refactorlists#
-    // add parameter <bCountedInList>
-    void SetNodeNum( sal_uInt8 nLevel, bool bCountedInList );
-    // <--
+        // --> OD 2008-04-02 #refactorlists#
+        // add parameter <bCountedInList>
+        void SetNodeNum( sal_uInt8 nLevel, bool bCountedInList );
+        // <--
 
-       // Verwalten von Absatz-Vorlagen
+       // Manage paragraph templates
 
-       // die Vorlagen auf dem Stack bzw. deren Attribute setzen
+       // set the templates on the stack or their attributes.
        void SetTxtCollAttrs( _HTMLAttrContext *pContext = 0 );
 
        void InsertParaAttrs( const SfxItemSet& rItemSet );
 
-       // Verwalten des Attribut-Kontexts
+       // Manage the attribute context
 
-       // aktuellen Kontext merken
+       // remember current context
        inline void PushContext( _HTMLAttrContext *pCntxt );
 
-       // den obersten/spezifizierten Kontext holen, aber nicht ausserhalb
-       // des Kontexts mit Token nLimit suchen. Wenn bRemove gesetzt ist,
-       // wird er entfernt
+       // get the topmost/specified context, but do not search outside
+       // of the context with token nLimit. If bRemove is set,
+       // it is removed
        _HTMLAttrContext *PopContext( sal_uInt16 nToken=0, sal_uInt16 nLimit=0,
                                                                  sal_Bool 
bRemove=sal_True );
        inline const _HTMLAttrContext *GetTopContext() const;
@@ -599,23 +595,23 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
 
        void MovePageDescAttrs( SwNode *pSrcNd, sal_uLong nDestIdx, sal_Bool 
bFmtBreak );
 
-       // Behandlung von Tags auf Absatz-Ebene
+       // Handling tags at paragraph level
 
-       // <P> und <H1> bis <H6>
+       // <P> and <H1> to <H6>
        void NewPara();
        void EndPara( sal_Bool bReal = sal_False );
        void NewHeading( int nToken );
        void EndHeading();
 
-       // <ADDRESS>, <BLOCKQUOTE> und <PRE>
+       // <ADDRESS>, <BLOCKQUOTE> and <PRE>
        void NewTxtFmtColl( int nToken, sal_uInt16 nPoolId );
        void EndTxtFmtColl( int nToken );
 
-       // <DIV> und <CENTER>
+       // <DIV> and <CENTER>
        void NewDivision( int nToken );
        void EndDivision( int nToken );
 
-       // Fly-Frames einfuegen/verlassen
+       // Insert/exit fly frames
        void InsertFlyFrame( const SfxItemSet& rItemSet, _HTMLAttrContext 
*pCntxt,
                                                 const String& rId, sal_uInt16 
nFlags );
 
@@ -623,7 +619,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
                                           const SwPosition *pNewPos );
        void RestoreDocContext( _HTMLAttrContext *pCntxt );
 
-       // alle durch <DIV> aufgespannten Bereiche verlassen
+       // leave all areas spanned by <DIV>.
        sal_Bool EndSections( sal_Bool bLFStripped );
 
        // <MULTICOL>
@@ -635,16 +631,16 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
        void EndMarquee();
        void InsertMarqueeText();
 
-       // Behandluung von Listen
+       // List handling
 
-       // Numerierungs <OL> und Aufzaehlungs-Listen <UL> mit <LI>
+       // Numbering <OL> and Enumeration Lists <UL> with <LI>
        void NewNumBulList( int nToken );
        void EndNumBulList( int nToken=0 );
        void NewNumBulListItem( int nToken );
        void EndNumBulListItem( int nToken=0, sal_Bool bSetColl=sal_True,
                                                        sal_Bool 
bLastPara=sal_False );
 
-       // Definitions-Listen <DL> mit <DD>, <DT>
+       // Definition lists <DL> with <DD>, <DT>
        void NewDefList();
        void EndDefList();
        void NewDefListItem( int nToken );
@@ -652,10 +648,10 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
                                                 sal_Bool bLastPara=sal_False );
 
 
-       // Behandlung von Tags auf Zeichen-Ebene
+       // Handling tags at character level
 
-       // Tags wie <B>, <I> etc behandeln, die ein bestimmtes Attribut
-       // an und ausschalten, oder die wie SPAN nur Attribute aus Styles holen
+       // handle tags like <B>, <I> etc that turn a specific attribute
+       // on and off, or which like SPAN only fetch attributes from styles.
        void NewStdAttr( int nToken );
        void NewStdAttr( int nToken,
                                         _HTMLAttr **ppAttr, const SfxPoolItem 
& rItem,
@@ -663,55 +659,55 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
                                         _HTMLAttr **ppAttr3=0, const 
SfxPoolItem *pItem3=0 );
        void EndTag( int nToken );
 
-       // Font-Attribute behandeln
-       void NewBasefontAttr();                         // fuer <BASEFONT>
+       // Handle font attributes
+       void NewBasefontAttr();                         // for <BASEFONT>
        void EndBasefontAttr();
-       void NewFontAttr( int nToken ); // fuer <FONT>, <BIG> und <SMALL>
+       void NewFontAttr( int nToken ); // for <FONT>, <BIG> and <SMALL>
        void EndFontAttr( int nToken );
 
-       // Tags, die durch Zeichenvorlagen realisiert werden
+       // Tags realized by character templates
        void NewCharFmt( int nToken );
 
        // <SDFIELD>
 public:
        static sal_uInt16 GetNumType( const String& rStr, sal_uInt16 eDfltType 
);
-private:
-       void NewField();
+private: 
+        void NewField();
        void EndField();
        void InsertFieldText();
 
        // <SPACER>
        void InsertSpacer();
 
-       // Einfuegen von Grafiken, Plugins und Applets
+       // Inserting graphics, plugins and applets
 
-       // Image-Maps suchen und mit Grafik-Nodes verbinden
+       // Search image maps and connect them with graphic nodes
        ImageMap *FindImageMap( const String& rURL ) const;
        void ConnectImageMaps();
 
-       // Verankerung eines Fly-Frames bestimmen und entsprechende Attribute
-       // in den Attrset setzen (htmlgrin.cxx)
-    void SetAnchorAndAdjustment( sal_Int16 eVertOri,
-                                 sal_Int16 eHoriOri,
-                                                                const 
SfxItemSet &rItemSet,
-                                                                const 
SvxCSS1PropertyInfo &rPropInfo,
-                                                                SfxItemSet& 
rFrmSet );
-    void SetAnchorAndAdjustment( sal_Int16 eVertOri,
-                                 sal_Int16 eHoriOri,
-                                                                SfxItemSet& 
rFrmSet,
-                                                                sal_Bool 
bDontAppend=sal_False );
+        // Determine anchoring of a fly frame and set corresponding attributes 
+        // set in the attrset (htmlgrin.cxx)
+        void SetAnchorAndAdjustment( sal_Int16 eVertOri,
+                                     sal_Int16 eHoriOri,
+                                     const SfxItemSet &rItemSet,
+                                     const SvxCSS1PropertyInfo &rPropInfo,
+                                     SfxItemSet& rFrmSet );
+        void SetAnchorAndAdjustment( sal_Int16 eVertOri,
+                                     sal_Int16 eHoriOri,
+                                     SfxItemSet& rFrmSet,
+                                     sal_Bool bDontAppend=sal_False );
        void SetAnchorAndAdjustment( const SfxItemSet &rItemSet,
-                                                                const 
SvxCSS1PropertyInfo &rPropInfo,
-                                                                SfxItemSet 
&rFrmItemSet );
+                                     const SvxCSS1PropertyInfo &rPropInfo,
+                                     SfxItemSet &rFrmItemSet );
 
        void SetFrmFmtAttrs( SfxItemSet &rItemSet, SvxCSS1PropertyInfo 
&rPropInfo,
                                                 sal_uInt16 nFlags, SfxItemSet 
&rFrmItemSet );
 
-       // Frames anlegen und Auto-gebundene Rahmen registrieren
+       // Create frames and register auto-bound frames
        void RegisterFlyFrm( SwFrmFmt *pFlyFrm );
 
-       // Die Groesse des Fly-Frames an die Vorgaben und Gegebenheiten anpassen
-       // (nicht fuer Grafiken, deshalb htmlplug.cxx)
+       // Adapt the size of the fly-frame to the specifications and conditions.
+       // (not for graphics, therefore htmlplug.cxx)
        void SetFixSize( const Size& rPixSize, const Size& rTwipDfltSize,
                                         sal_Bool bPrcWidth, sal_Bool 
bPrcHeight,
                                         SfxItemSet &rItemSet, 
SvxCSS1PropertyInfo &rPropInfo,
@@ -727,112 +723,109 @@ private:
        void GetDefaultScriptType( ScriptType& rType,
                                                           String& rTypeStr ) 
const;
 
-       // die eigentlichen Einfuege-Methoden fuer <IMG>, <EMBED> und <APPLET>
-       // und <PARAM>
-       void InsertImage();             // htmlgrin.cxx
-       void InsertEmbed();             // htmlplug.cxx
+       // the actual insert methods for <IMG>, <EMBED>, and <APPLET>
+       // and <PARAM>
+       void InsertImage();// htmlgrin.cxx
+       void InsertEmbed();// htmlplug.cxx
 
 #ifdef SOLAR_JAVA
-       void NewObject();       // htmlplug.cxx
+       void NewObject();// htmlplug.cxx
 #endif
-       void EndObject();               // CommandLine mit Applet verkn. 
(htmlplug.cxx)
+       void EndObject();// CommandLine with Applet link. (htmlplug.cxx)
 #ifdef SOLAR_JAVA
-       void InsertApplet();    // htmlplug.cxx
+       void InsertApplet();// htmlplug.cxx
 #endif
-       void EndApplet();               // CommandLine mit Applet verkn. 
(htmlplug.cxx)
-       void InsertParam();             // htmlplug.cxx
+       void EndApplet();// CommandLine with Applet link. (htmlplug.cxx)
+       void InsertParam();// htmlplug.cxx
 
        void InsertFloatingFrame();
        void EndFloatingFrame() { bInFloatingFrame = sal_False; }
 
-       // <BODY>-Tag auswerten: Hintergrund-Grafiken und -Farben setzen 
(htmlgrin.cxx)
+       // <BODY> tag evaluate: set background graphics and colors 
(htmlgrin.cxx)
        void InsertBodyOptions();
 
 
-       // Einfuegen von Links und ::com::sun::star::text::Bookmarks 
(htmlgrin.cxx)
+       // Inserting links and ::com::sun::star::text::Bookmarks (htmlgrin.cxx)
 
-       // <A>-Tag auswerten: einen Link bzw. eine 
::com::sun::star::text::Bookmark einfuegen
+       // Evaluate <A> tag: insert a link or ::com::sun::star::text::bookmark.
        void NewAnchor();
        void EndAnchor();
 
-       // eine ::com::sun::star::text::Bookmark einfuegen
+       // insert a ::com::sun::star::text::bookmark
        void InsertBookmark( const String& rName );
 
 
        void InsertCommentText( const sal_Char *pTag = 0 );
        void InsertComment( const String& rName, const sal_Char *pTag = 0 );
 
-       // sind im aktuellen Absatz ::com::sun::star::text::Bookmarks vorhanden?
+       // are there any ::com::sun::star::text::bookmarks in the current 
paragraph?
        sal_Bool HasCurrentParaBookmarks( sal_Bool bIgnoreStack=sal_False ) 
const;
 
 
-       // Einfuegen von Script/Basic-Elementen
+       // Inserting Script/Basic elements
 
-       // das zueletzt gelsene Basic-Modul parsen (htmlbas.cxx)
+       // parse the last Basic module (htmlbas.cxx) that was loaded
        void NewScript();
        void EndScript();
 
        void AddScriptSource();
 
-       // ein Event in die SFX-Konfiguation eintragen (htmlbas.cxx)
+       // add an event to the SFX configuration (htmlbas.cxx)
        void InsertBasicDocEvent( rtl::OUString aEventName, const String& rName,
                                                          ScriptType eScrType, 
const String& rScrType );
 
-       // ein Event an ein VC-Control anhaengen (htmlform.cxx)
+       // attach an event to a VC control (htmlform.cxx)
        void InsertBasicCtrlEvent( sal_uInt16 nEvent, const String& rName );
 
-       // Einfuegen von Styles
+       // Inserting styles
 
        // <STYLE>
        void NewStyle();
        void EndStyle();
 
-       inline sal_Bool HasStyleOptions( const String &rStyle, const String 
&rId,
-                                                                const String 
&rClass, const String *pLang=0,
-                                                                const String 
*pDir=0 );
+       inline sal_Bool HasStyleOptions( const String &rStyle, const String 
&rId,const String &rClass, const String *pLang=0,const String *pDir=0 );
        sal_Bool ParseStyleOptions( const String &rStyle, const String &rId,
                                                        const String &rClass, 
SfxItemSet &rItemSet,
                                                        SvxCSS1PropertyInfo 
&rPropInfo,
                                                         const String *pLang=0, 
const String *pDir=0 );
 
 
-       // Einfuegen von Controls und ::com::sun::star::form::Forms 
(htmlform.cxx)
+       // Inserting controls and ::com::sun::star::form::Forms (htmlform.cxx)
 
-       // Ein Draw-Objekt in das Dokuement eintragen
+       // Add a Draw object to the docuement
        void InsertDrawObject( SdrObject* pNewDrawObj, const Size& rSpace,
-                           sal_Int16 eVertOri,
-                           sal_Int16 eHoriOri,
-                                                  SfxItemSet& rCSS1ItemSet,
-                                                  SvxCSS1PropertyInfo& 
rCSS1PropInfo,
-                                                  sal_Bool bHidden=sal_False );
-                                               
::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >  
InsertControl( const ::com::sun::star::uno::Reference< 
::com::sun::star::form::XFormComponent > & rFormComp,
-                                               const 
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & 
rFCompPropSet,
-                                               const Size& rSize,
-                        sal_Int16 eVertOri,
-                        sal_Int16 eHoriOri,
-                                               SfxItemSet& rCSS1ItemSet,
-                                               SvxCSS1PropertyInfo& 
rCSS1PropInfo,
-                                               const SvxMacroTableDtor& 
rMacroTbl,
-                                               const SvStringsDtor& 
rUnoMacroTbl,
-                                               const SvStringsDtor& 
rUnoMacroParamTbl,
-                                               sal_Bool bSetPropSet = sal_True,
-                                               sal_Bool bHidden = sal_False );
-       void SetControlSize( const ::com::sun::star::uno::Reference< 
::com::sun::star::drawing::XShape > & rShape, const Size& rTextSz,
-                                                sal_Bool bMinWidth, sal_Bool 
bMinHeight, int nToken );
+                               sal_Int16 eVertOri,
+                               sal_Int16 eHoriOri,
+                               SfxItemSet& rCSS1ItemSet,
+                               SvxCSS1PropertyInfo& rCSS1PropInfo,
+                               sal_Bool bHidden=sal_False );
+        ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >  
InsertControl( const ::com::sun::star::uno::Reference< 
::com::sun::star::form::XFormComponent > & rFormComp,
+                                                                               
               const ::com::sun::star::uno::Reference< 
::com::sun::star::beans::XPropertySet > & rFCompPropSet,
+                                                                               
               const Size& rSize,
+                                                                               
               sal_Int16 eVertOri,
+                                                                               
               sal_Int16 eHoriOri,
+                                                                               
              SfxItemSet& rCSS1ItemSet,
+                                                                               
               SvxCSS1PropertyInfo& rCSS1PropInfo,
+                                                                               
              const SvxMacroTableDtor& rMacroTbl,
+                                                                               
              const SvStringsDtor& rUnoMacroTbl,
+                                                                               
              const SvStringsDtor& rUnoMacroParamTbl,
+                                                                               
               sal_Bool bSetPropSet = sal_True,
+                                                                               
               sal_Bool bHidden = sal_False );
+                                                                               
              
+       void SetControlSize( const ::com::sun::star::uno::Reference< 
::com::sun::star::drawing::XShape > & rShape, const Size& rTextSz,sal_Bool 
bMinWidth, sal_Bool bMinHeight, int nToken );
        void SetPendingControlSize( int nToken );
 
 public:
        void ResizeDrawObject( SdrObject* pObj, SwTwips nWidth );
 private:
-       void RegisterDrawObjectToTable( HTMLTable *pCurTable, SdrObject* pObj,
-                                                                       
sal_uInt8 nWidth );
+       void RegisterDrawObjectToTable( HTMLTable *pCurTable, SdrObject* pObj, 
sal_uInt8 nWidth );
 
 
-       // eine neue Form beginnen
+       // start a new form
        void NewForm( sal_Bool bAppend=sal_True );
        void EndForm( sal_Bool bAppend=sal_True );
 
-       // die Einfuege-Methoden fuer <INPUT>, <TEXTAREA> und <SELECT>
+       // the insertion methods for <INPUT>, <TEXTAREA> and <SELECT>
        void InsertInput();
 
        void NewTextArea();
@@ -844,40 +837,33 @@ private:
        void InsertSelectText();
        void EndSelect();
 
-       // Einfuegen von Tabellen (htmltab.cxx)
+       // Insert tables (htmltab.cxx)
 
-public:                        // wird in Tabellen benoetigt
+public:// is needed in tables
 
-       // einen Boxen-Inhalt hinter dem angegebenen Node einfuegen
+       // insert a box content after the specified node
        const SwStartNode *InsertTableSection( const SwStartNode *pPrevStNd );
 
-       // Einen Boxen-Inhalt am Ende der Tabelle einfuegen, in der der PaM
-       // steht un den PaM in die Zelle schieben
+       // Insert a box content at the end of the table containing the PaM
+       // and move the PaM into the cell
        const SwStartNode *InsertTableSection( sal_uInt16 nPoolId );
 
-       // Einfeuge-Methoden fuer die diversen Tabellen-Tags
+       // Insert methods for the various table tags
        HTMLTableCnts *InsertTableContents( sal_Bool bHead );
 
 private:
-       // Eine Section fuer die voruebergende Aufnahme der 
Tabellen-Ueberschrift
-       // anlegen
+       // Create a section for the temporary setting of the table heading
        SwStartNode *InsertTempTableCaptionSection();
 
        void BuildTableCell( HTMLTable *pTable, sal_Bool bReadOptions, sal_Bool 
bHead );
-       void BuildTableRow( HTMLTable *pTable, sal_Bool bReadOptions,
-                        SvxAdjust eGrpAdjust, sal_Int16 eVertOri );
+       void BuildTableRow( HTMLTable *pTable, sal_Bool bReadOptions,SvxAdjust 
eGrpAdjust, sal_Int16 eVertOri );
        void BuildTableSection( HTMLTable *pTable, sal_Bool bReadOptions, 
sal_Bool bHead );
        void BuildTableColGroup( HTMLTable *pTable, sal_Bool bReadOptions );
        void BuildTableCaption( HTMLTable *pTable );
-       HTMLTable *BuildTable( SvxAdjust eCellAdjust,
-                                                  sal_Bool bIsParentHead = 
sal_False,
-                                                  sal_Bool 
bHasParentSection=sal_True,
-                                                  sal_Bool bIsInMulticol = 
sal_False,
-                                                  sal_Bool bHasToFlow = 
sal_False );
-
+       HTMLTable *BuildTable( SvxAdjust eCellAdjust, sal_Bool bIsParentHead = 
sal_False, sal_Bool bHasParentSection=sal_True, sal_Bool bIsInMulticol = 
sal_False, sal_Bool bHasToFlow = sal_False );
 
-       // sonstiges ...
 
+// miscellaneous ...
        void ParseMoreMetaOptions();
 
        sal_Bool FileDownload( const String& rURL, String& rStr );
@@ -895,31 +881,31 @@ private:
        SwNodeIndex *GetFootEndNoteSection( const String& rName );
        void DeleteFootEndNoteImpl();
 
-       // Line-Break am Ende eines Absatzes entfernen
+       // Remove line break at the end of a paragraph
        xub_StrLen StripTrailingLF();
 
-       // Einen leeren Absatz an der PaM-Position entfernen
-       void StripTrailingPara();
 
-       // sind im aktuellen Absatz Fly-Frames vorhanden?
-       sal_Bool HasCurrentParaFlys( sal_Bool bNoSurroundOnly = sal_False,
-                                                        sal_Bool bSurroundOnly 
= sal_False ) const;
+       // Remove an empty paragraph at the PaM position.
+       void StripTrailingPara();
+       
+       // Are there any visible Fly-Frames in the current paragraph?
+       sal_Bool HasCurrentParaFlys( sal_Bool bNoSurroundOnly = sal_False, 
sal_Bool bSurroundOnly = sal_False ) const;
 
-public:                        // wird in Tabellen benoetigt
+public:// is needed in tables
 
-       // generieren eines BrushItems (mit new) oder 0
+       // generate a BrushItem (with new) or 0
        SvxBrushItem* CreateBrushItem( const Color *pColor,
-                                                                  const String 
&rImageURL,
-                                                                  const String 
&rStyle,
-                                                                  const String 
&rId,
-                                                                  const String 
&rClass );
+                                       const String &rImageURL,
+                                       const String &rStyle,
+                                       const String &rId,
+                                       const String &rClass );
 
 protected:
-       // wird fuer jedes Token gerufen, das in CallParser erkannt wird
+       // is called for every token that is recognized in CallParser
        virtual void NextToken( int nToken );
        virtual ~SwHTMLParser();
 
-       // wird das Dok geloescht, ist auch der Parser zu loeschen
+       // if the doc is deleted, the parser has to be deleted as well
        virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew );
 
     virtual void AddMetaUserDefined( ::rtl::OUString const & i_rMetaName );
@@ -930,20 +916,18 @@ public:
                     const String& rFileName,
                     const String& rBaseURL,
                     int bReadNewDoc = sal_True,
-                                       SfxMedium* pMed = 0, sal_Bool bReadUTF8 
= sal_False,
+                    SfxMedium* pMed = 0, sal_Bool bReadUTF8 = sal_False,
                     sal_Bool bIgnoreHTMLComments = sal_False );
 
-       virtual SvParserState CallParser();   // Aufruf des Parsers
+       virtual SvParserState CallParser();// Call the parser
 
 
        sal_uInt16 ToTwips( sal_uInt16 nPixel ) const;
 
-       // fuers asynchrone lesen aus dem SvStream
+       // for asynchronous reading from the SvStream
        virtual void Continue( int nToken );
 
-    virtual bool ParseMetaOptions( const ::com::sun::star::uno::Reference<
-                ::com::sun::star::document::XDocumentProperties>&,
-            SvKeyValueIterator* );
+    virtual bool ParseMetaOptions( const 
::com::sun::star::uno::Reference<::com::sun::star::document::XDocumentProperties>&,
 SvKeyValueIterator* );
 };
 
 
@@ -971,8 +955,7 @@ inline void _HTMLAttr::SetStart( const SwPosition& rPos )
        nEndCntnt = nSttCntnt;
 }
 
-inline void _HTMLAttrContext::SetMargins( sal_uInt16 nLeft, sal_uInt16 nRight,
-                                                                               
  short nIndent )
+inline void _HTMLAttrContext::SetMargins( sal_uInt16 nLeft, sal_uInt16 nRight, 
short nIndent )
 {
        nLeftMargin = nLeft;
        nRightMargin = nRight;
@@ -981,8 +964,8 @@ inline void _HTMLAttrContext::SetMargins( sal_uInt16 nLeft, 
sal_uInt16 nRight,
 }
 
 inline void _HTMLAttrContext::GetMargins( sal_uInt16& nLeft,
-                                                                               
  sal_uInt16& nRight,
-                                                                               
  short& nIndent ) const
+                                          sal_uInt16& nRight,
+                                          short& nIndent ) const
 {
        if( bLRSpaceChanged )
        {
@@ -1010,10 +993,10 @@ inline void _HTMLAttrContext::GetULSpace( sal_uInt16& 
rUpper,
 }
 
 inline sal_Bool SwHTMLParser::HasStyleOptions( const String &rStyle,
-                                                                               
        const String &rId,
-                                                                               
        const String &rClass,
-                                                                               
        const String *pLang,
-                                                                               
        const String *pDir )
+                                               const String &rId,
+                                               const String &rClass,
+                                               const String *pLang,
+                                               const String *pDir )
 {
        return rStyle.Len() || rId.Len() || rClass.Len() ||
                   (pLang && pLang->Len()) || (pDir && pDir->Len());


Reply via email to