[PATCH] fdo#39468: Translate German comments in sw/source/core/edit

Philipp Riemer (via Code Review) gerrit at gerrit.libreoffice.org
Sat Jun 8 15:51:20 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/4203

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/03/4203/1

fdo#39468: Translate German comments in sw/source/core/edit

Change-Id: I48682db4a27be298b8c0392603879d2e12f24cd7
---
M sw/source/core/edit/autofmt.cxx
M sw/source/core/edit/eddel.cxx
M sw/source/core/edit/edfcol.cxx
M sw/source/core/edit/edfld.cxx
M sw/source/core/edit/edglbldc.cxx
M sw/source/core/edit/edglss.cxx
M sw/source/core/edit/editsh.cxx
M sw/source/core/edit/edlingu.cxx
M sw/source/core/edit/ednumber.cxx
M sw/source/core/edit/edtab.cxx
M sw/source/core/edit/edtox.cxx
M sw/source/core/edit/edundo.cxx
M sw/source/core/edit/edws.cxx
13 files changed, 433 insertions(+), 681 deletions(-)



diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index e8a553b..eb6e8cf 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -249,7 +249,7 @@
 {
     // get the Frame
     const SwCntntFrm *pFrm = rTxtNd.getLayoutFrm( pEditShell->GetLayout() );
-    OSL_ENSURE( pFrm, "zum Autoformat muss das Layout vorhanden sein" );
+    OSL_ENSURE( pFrm, "For Autoformat a Layout is needed" );
     if( aFlags.bAFmtByInput && !pFrm->IsValid() )
     {
         SwRect aTmpFrm( pFrm->Frm() );
@@ -298,7 +298,7 @@
     }
 #if OSL_DEBUG_LEVEL > 0
     else
-        sTxt = OUString("Action-Text fehlt");
+        sTxt = OUString("Action text is missing");
 #endif
 
     pDoc->SetAutoFmtRedlineComment( &sTxt, nSeqNo );
@@ -516,8 +516,7 @@
     const String& rStr = rNd.GetTxt();
     if( !rStr.Len() )
         return sal_False;
-    // oder besser: ueber die Anzahl von Alpha/Num- und !AN-Zeichen
-    //              bestimmen.
+    // or better: determine via number of AlphaNum and !AlphaNum characters
     xub_StrLen nANChar = 0, nBlnk = 0;
 
     CharClass& rCC = GetCharClass( rNd.GetSwAttrSet().GetLanguage().GetLanguage() );
@@ -527,7 +526,7 @@
         else if( rCC.isLetterNumeric( rStr, n ))
             ++nANChar;
 
-    // sind zu 75% keine Alpha-Nummerische-Zeichen, dann sal_True
+    // If there are 75% of non-alphanumeric characters, then sal_True
     sal_uLong nLen = rStr.Len() - nBlnk;
     nLen = ( nLen * 3 ) / 4;            // long overflow, if the strlen > sal_uInt16
     return xub_StrLen(nLen) < (rStr.Len() - nANChar - nBlnk);
@@ -566,7 +565,7 @@
 
     if( 2 < nCnt )
     {
-        // dann unterstreiche mal den vorherigen Absatz, wenn es diesen gibt!
+        // then underline the previous paragraph if one exists
         DelEmptyLine( false );
         aDelPam.SetMark();
         aDelPam.GetMark()->nContent = 0;
@@ -662,7 +661,7 @@
 
     if( 1 < aPosArr.size() )
     {
-        // Ausrichtung vom Textnode besorgen:
+        // get the text node's alignment
         sal_uInt16 nColCnt = aPosArr.size() - 1;
         SwTwips nSttPos = aPosArr[ 0 ];
         sal_Int16 eHori;
@@ -675,8 +674,7 @@
             if( nSttPos )
             {
                 eHori = text::HoriOrientation::NONE;
-                // dann muss als letztes noch die akt. FrameBreite
-                // ins Array
+                // then - as last - we need to add the current frame width into the array
                 aPosArr.push_back( static_cast<sal_uInt16>(pAktTxtFrm->Frm().Width()) );
             }
             else
@@ -684,7 +682,7 @@
             break;
         }
 
-        // dann erzeuge eine Tabelle, die den Zeichen entspricht
+        // then create a table that matches the character
         DelEmptyLine();
         SwNodeIndex aIdx( aDelPam.GetPoint()->nNode );
         aDelPam.Move( fnMoveForward );
@@ -704,7 +702,7 @@
 
     for( nL = rStr.Len(), n = 0; n < nL && IsSpace( rStr.GetChar(n) ); ++n )
         ;
-    if( n )     // keine Spaces
+    if( n ) // no Spaces
         rStr.Erase( 0, n );
     return rStr;
 }
@@ -718,7 +716,7 @@
 
     while( --n && IsSpace( rStr.GetChar( n ) )  )
         ;
-    if( n+1 != nL )     // keine Spaces
+    if( n+1 != nL ) // no Spaces
         rStr.Erase( n+1 );
     return rStr;
 }
@@ -767,7 +765,7 @@
 sal_uInt16 SwAutoFormat::GetDigitLevel( const SwTxtNode& rNd, xub_StrLen& rPos,
         String* pPreFix, String* pPostFix, String* pNumTypes ) const
 {
-    // Teste auf 1.) / 1. / 1.1.1 / (1). / (1) / ....
+    // check for 1.) / 1. / 1.1.1 / (1). / (1) / ....
     const OUString& rTxt = rNd.GetTxt();
     xub_StrLen nPos = rPos;
     int eScan = NONE;
@@ -788,7 +786,7 @@
         {
             if( eScan & DELIM )
             {
-                if( eScan & CHG )       // nicht wenns mit einer Zahl beginnt
+                if( eScan & CHG )   // not if it starts with a number
                 {
                     ++nDigitLvl;
                     if( pPostFix )
@@ -803,12 +801,12 @@
             else if( pNumTypes && !(eScan & DIGIT) )
                 *pNumTypes += (sal_Unicode)('0' + SVX_NUM_ARABIC);
 
-            eScan &= ~DELIM;        // Delim raus
+            eScan &= ~DELIM;        // remvoe Delim
             if( 0 != (eScan & ~CHG) && DIGIT != (eScan & ~CHG))
                 return USHRT_MAX;
 
-            eScan |= DIGIT;         // Digit rein
-            if( 3 == ++nDigitCnt )  // mehr als 2 Nummern sind kein Enum mehr
+            eScan |= DIGIT;         // add Digit
+            if( 3 == ++nDigitCnt )  // more than 2 numbers are not an enum anymore
                 return USHRT_MAX;
 
             nStart *= 10;
@@ -822,9 +820,8 @@
             sal_Unicode cLow = rCC.lowercase(rTxt, nPos, 1)[0], cNumTyp;
             int eTmpScan;
 
-            // roemische Zeichen sind "mdclxvi". Da man aber eher mal eine
-            // Numerierung mit c oder d anfangen will, werden diese erstmal
-            // zu chars und spaeter ggfs. zu romischen Zeichen!
+            // Roman numbers are "mdclxvi". Since we want to start numbering with c or d more often,
+            // convert first to characters and later to roman numbers if needed.
 #ifdef WITH_ALPHANUM_AS_NUMFMT
             //detection of 'c' and 'd' a ROMAN numbering should not be done here
             if( 256 > cLow  &&( (eScan & (LOWER_ROMAN|UPPER_ROMAN))
@@ -845,7 +842,7 @@
                 cNumTyp = '0' + SVX_NUM_CHARS_LOWER_LETTER, eTmpScan = LOWER_ALPHA;
 
 
-            //ggfs. auf roemische Zeichen umschalten (nur bei c/d!)?
+            // Switch to roman numbers (only for c/d!)
             if( 1 == nDigitCnt && ( eScan & (UPPER_ALPHA|LOWER_ALPHA) ) &&
                 ( 3 == nStart || 4 == nStart) && 256 > cLow &&
                 strchr( "mdclxvi", cLow ) &&
@@ -866,7 +863,7 @@
 
             if( eScan & DELIM )
             {
-                if( eScan & CHG )       // nicht wenns mit einer Zahl beginnt
+                if( eScan & CHG )   // not if it starts with a number
                 {
                     ++nDigitLvl;
                     if( pPostFix )
@@ -880,20 +877,20 @@
             else if( pNumTypes && !(eScan & eTmpScan) )
                 *pNumTypes += cNumTyp;
 
-            eScan &= ~DELIM;        // Delim raus
+            eScan &= ~DELIM;        // remove Delim
 
-            // falls ein andere Type gesetzt ist, brechen wir ab
+            // if another type is set, stop here
             if( 0 != ( eScan & ~CHG ) && eTmpScan != ( eScan & ~CHG ))
                 return USHRT_MAX;
 
             if( eTmpScan & (UPPER_ALPHA | LOWER_ALPHA) )
             {
-                // Buchstaben nur zulassen, wenn sie einmalig vorkommen
+                // allow characters only if they appear once
                 return USHRT_MAX;
             }
             else
             {
-                // roemische Zahlen: checke ob das gueltige Zeichen sind
+                // roman numbers, check if valid characters
                 sal_uInt16 nVal;
                 bool bError = false;
                 switch( cLow )
@@ -956,7 +953,7 @@
                 if( bError )
                     return USHRT_MAX;
             }
-            eScan |= eTmpScan;          // Digit rein
+            eScan |= eTmpScan;          // add Digit
             ++nDigitCnt;
         }
         else if( (256 > cCurrentChar &&
@@ -970,7 +967,7 @@
                 nOpeningParentheses++;
             else if(cCurrentChar == ')'|| cCurrentChar == 0xFF08)
                 nClosingParentheses++;
-            // nur wenn noch keine Zahlen gelesen wurden!
+            // only if no numbers were read until here
             if( pPreFix && !( eScan & ( NO_DELIM | CHG )) )
                 *pPreFix += rTxt[nPos];
             else if( pPostFix )
@@ -983,8 +980,8 @@
                     (*pPreFix += (sal_Unicode)1)
                               += OUString::number( nStart );
             }
-            eScan &= ~NO_DELIM;     // Delim raus
-            eScan |= DELIM;         // Digit rein
+            eScan &= ~NO_DELIM;     // remove Delim
+            eScan |= DELIM;         // add Digit
             nDigitCnt = 0;
             nStart = 0;
         }
@@ -997,7 +994,7 @@
         (nOpeningParentheses > nClosingParentheses))
         return USHRT_MAX;
 
-    if( (NO_DELIM & eScan) && pPreFix )     // den letzen nicht vergessen
+    if( (NO_DELIM & eScan) && pPreFix )     // do not forget the last one
         (*pPreFix += (sal_Unicode)1) += OUString::number( nStart );
 
     rPos = nPos;
@@ -1011,8 +1008,7 @@
     aDelPam.GetPoint()->nNode = aNdIdx;
     aDelPam.GetPoint()->nContent.Assign( pAktTxtNd, 0 );
 
-    // behalte harte Tabs, Ausrichtung, Sprache, Silbentrennung,
-    // DropCaps und fast alle Frame-Attribute
+    // keep hard tabs, alignment, language, hyphenation, DropCaps and nearly all frame attributes
     SfxItemSet aSet( pDoc->GetAttrPool(),
                         RES_PARATR_ADJUST, RES_PARATR_ADJUST,
                         RES_PARATR_TABSTOP, RES_PARATR_DROP,
@@ -1023,9 +1019,7 @@
     if( pAktTxtNd->HasSwAttrSet() )
     {
         aSet.Put( *pAktTxtNd->GetpSwAttrSet() );
-        // einige Sonderbedingungen:
-        // HeaderLine/Textkoerper: nur zentriert oder rechts mitnehmem
-        // sonst nur den Blocksatz
+        // take HeaderLine/TextBody only if centered or right aligned, otherwise only justification
         SvxAdjustItem* pAdj;
         if( SFX_ITEM_SET == aSet.GetItemState( RES_PARATR_ADJUST,
                         sal_False, (const SfxPoolItem**)&pAdj ))
@@ -1044,8 +1038,8 @@
 
 bool SwAutoFormat::HasSelBlanks( SwPaM& rPam ) const
 {
-    // noch ein Blank am Anfang oder Ende ?
-    // nicht loeschen, wird wieder eingefuegt.
+    // Is there a Blank at the beginning or end?
+    // Do not delete it, it will be inserted again.
     SwPosition * pPos = rPam.End();
     xub_StrLen nBlnkPos = pPos->nContent.GetIndex();
     SwTxtNode* pTxtNd = pPos->nNode.GetNode().GetTxtNode();
@@ -1086,7 +1080,7 @@
 }
 
 
-// ist ein Punkt am Ende ??
+/// Is there a dot at the end?
 bool SwAutoFormat::IsSentenceAtEnd( const SwTxtNode& rTxtNd ) const
 {
     const String& rStr = rTxtNd.GetTxt();
@@ -1100,14 +1094,14 @@
 }
 
 
-// loesche im Node Anfang oder/und Ende
+/// Delete beginning and/or end in a node
 void SwAutoFormat::DeleteAktPara( bool bStart, bool bEnd )
 {
     if( aFlags.bAFmtByInput
         ? aFlags.bAFmtByInpDelSpacesAtSttEnd
         : aFlags.bAFmtDelSpacesAtSttEnd )
     {
-        // Loesche Blanks am Ende vom akt. und am Anfang vom naechsten
+        // delete blanks at the end of the current and at the beginning of the next one
         aDelPam.DeleteMark();
         aDelPam.GetPoint()->nNode = aNdIdx;
         xub_StrLen nPos(0);
@@ -1136,8 +1130,7 @@
 {
     if( aFlags.bWithRedlining )
     {
-        // damit der DelPam auch verschoben wird, in den Shell-Cursr-Ring
-        // mit aufnehmen !!
+        // Add to Shell-Cursor-Ring so that DelPam will be moved as well!
         SwPaM* pShCrsr = pEditShell->_GetCrsr();
         SwPaM aTmp( *pAktTxtNd, 0, pShCrsr );
 
@@ -1146,7 +1139,7 @@
 
         pEditShell->DeleteSel( rDelPam );
 
-        // und den Pam wieder herausnehmen:
+        // and remove Pam again:
         Ring *p, *pNext = (Ring*)&rDelPam;
         do {
             p = pNext;
@@ -1163,7 +1156,7 @@
 
 bool SwAutoFormat::DeleteAktNxtPara( const String& rNxtPara )
 {
-    // Loesche Blanks am Ende vom akt. und am Anfang vom naechsten
+    // delete blanks at the end of the current and at the beginning of the next one
     aDelPam.DeleteMark();
     aDelPam.GetPoint()->nNode = aNdIdx;
     aDelPam.GetPoint()->nContent.Assign( pAktTxtNd,
@@ -1174,7 +1167,7 @@
     SwTxtNode* pTNd = aDelPam.GetNode()->GetTxtNode();
     if( !pTNd )
     {
-        // dann nur bis zum Ende von Absatz loeschen
+        // then delete only up to end of the paragraph
         aDelPam.GetPoint()->nNode--;
         aDelPam.GetPoint()->nContent = pAktTxtNd->GetTxt().getLength();
     }
@@ -1182,8 +1175,8 @@
         aDelPam.GetPoint()->nContent.Assign( pTNd,
                             GetLeadingBlanks( rNxtPara ));
 
-    // noch ein Blank am Anfang oder Ende ?
-    // nicht loeschen, wird wieder eingefuegt.
+    // Is there a Blank at the beginning or end?
+    // Do not delete it, it will be inserted again.
     bool bHasBlnks = HasSelBlanks( aDelPam );
 
     if( *aDelPam.GetPoint() != *aDelPam.GetMark() )
@@ -1197,7 +1190,7 @@
 void SwAutoFormat::DelEmptyLine( bool bTstNextPara )
 {
     SetRedlineTxt( STR_AUTOFMTREDL_DEL_EMPTY_PARA );
-    // Loesche Blanks den leeren Absatz
+    // delete blanks in empty paragraph
     aDelPam.DeleteMark();
     aDelPam.GetPoint()->nNode = aNdIdx;
     aDelPam.GetPoint()->nContent.Assign(
@@ -1207,12 +1200,11 @@
     aDelPam.GetMark()->nNode--;
     SwTxtNode* pTNd = aDelPam.GetNode( sal_False )->GetTxtNode();
     if( pTNd )
-        // erstmal den vorherigen Textnode benutzen.
+        // first use the previous text node
         aDelPam.GetMark()->nContent.Assign(pTNd, pTNd->GetTxt().getLength());
     else if( bTstNextPara )
     {
-        // dann versuche den naechsten (am Anfang vom Dok, Tabellen-Zellen,
-        // Rahmen, ...
+        // then try the next (at the beginning of a Doc, table cells, borders, ...)
         aDelPam.GetMark()->nNode += 2;
         pTNd = aDelPam.GetNode( sal_False )->GetTxtNode();
         if( pTNd )
@@ -1241,7 +1233,7 @@
         ? aFlags.bAFmtByInpDelSpacesBetweenLines
         : aFlags.bAFmtDelSpacesBetweenLines )
     {
-        // loesche alle "Blanks" Links und Rechts vom Einzug
+        // delete all blanks on the left and right of the indentation
         aDelPam.DeleteMark();
         aDelPam.GetPoint()->nNode = aNdIdx;
         aDelPam.GetPoint()->nContent.Assign( pAktTxtNd, 0 );
@@ -1272,7 +1264,7 @@
 }
 
 
-        // loesche den vorherigen Absatz
+// delete the previous paragraph
 void SwAutoFormat::DelPrevPara()
 {
     aDelPam.DeleteMark();
@@ -1296,7 +1288,7 @@
 {
     SetRedlineTxt( STR_AUTOFMTREDL_SET_TMPL_INDENT );
 
-    // lese alle nachfolgenden Absaetze die zu diesem Einzug gehoeren
+    // read all succeeding paragraphs that belong to this indentation
     bool bBreak = true;
     if( bMoreLines )
         DelMoreLinesBlanks( true );
@@ -1334,7 +1326,7 @@
 void SwAutoFormat::BuildTextIndent()
 {
     SetRedlineTxt( STR_AUTOFMTREDL_SET_TMPL_TEXT_INDENT);
-    // lese alle nachfolgenden Absaetze die zu diesem Einzug gehoeren
+    // read all succeeding paragraphs that belong to this indentation
     bool bBreak = true;
     if( bMoreLines )
         DelMoreLinesBlanks( true );
@@ -1373,8 +1365,7 @@
 void SwAutoFormat::BuildText()
 {
     SetRedlineTxt( STR_AUTOFMTREDL_SET_TMPL_TEXT );
-    // lese alle nachfolgenden Absaetze die zu diesem Text
-    // ohne Einzug gehoeren
+    // read all succeeding paragraphs that belong to this text without indentation
     bool bBreak = true;
     if( bMoreLines )
         DelMoreLinesBlanks();
@@ -1415,7 +1406,7 @@
 
     bool bBreak = true;
 
-    // als erstes den akt. Einzug bestimmen und die Framebreite bestimmen
+    // first, determine current indentation and frame width
     SwTwips nFrmWidth = pAktTxtFrm->Prt().Width();;
     SwTwips nLeftTxtPos;
     {
@@ -1443,7 +1434,7 @@
     bool bChgBullet = false, bChgEnum = false;
     xub_StrLen nAutoCorrPos = 0;
 
-    // falls die Numerierung gesetzt werden, die akt. besorgen
+    // if numbering is set, get the current one
     SwNumRule aRule( pDoc->GetUniqueNumRuleName(),
                      // #i89178#
                      numfunc::GetDefaultPositionAndSpaceMode() );
@@ -1452,7 +1443,7 @@
     if( aFlags.bSetNumRule && 0 != (pCur = pAktTxtNd->GetNumRule()) )
         aRule = *pCur;
 
-    // ersetze das Bullet-Zeichen mit dem definiertem
+    // replace bullet character with defined one
     const String& rStr = pAktTxtNd->GetTxt();
     xub_StrLen nTxtStt = 0, nOrigTxtStt = 0;
     const sal_Unicode* pFndBulletChr;
@@ -1468,7 +1459,7 @@
                 SwCharFmt* pCFmt = pDoc->GetCharFmtFromPool(
                                             RES_POOLCHR_BUL_LEVEL );
                 bChgBullet = true;
-                // wurde das Format schon mal angepasst?
+                // Was the format already somewhere adjusted?
                 if( !aRule.GetNumFmt( nLvl ) )
                 {
                     int nBulletPos = pFndBulletChr - pBulletChar;
@@ -1530,11 +1521,10 @@
     }
     else
     {
-        // dann ist das eine Nummerierung
+        // Then it is a numbering
 
-        //JP 21.11.97: Der NumLevel wird entweder der DigitLevel oder
-        //              wenn der nicht vorhanden oder 0 ist, durch den
-        //              (Einrueckungs-)Level.
+        //JP 21.11.97: The NumLevel is either the DigitLevel or, if the latter is not existent or 0,
+        //             it is determined by the indentation level.
 
         String aPostFix, aPreFix, aNumTypes;
         if( USHRT_MAX != ( nDigitLevel = GetDigitLevel( *pAktTxtNd, nTxtStt,
@@ -1542,8 +1532,7 @@
         {
             bChgEnum = true;
 
-            // Ebene 0 und Einrueckung dann wird die Ebene durch den linken
-            // Einzug und der default NumEinrueckung bestimmt.
+            // Level 0 and Indentation, determine level by left indentation and default NumIndent
             if( !nDigitLevel && nLeftTxtPos )
                 nLvl = std::min( sal_uInt16( nLeftTxtPos / lNumIndent ),
                             sal_uInt16( MAXLEVEL - 1 ) );
@@ -1553,7 +1542,7 @@
 
         if( bChgEnum && aFlags.bSetNumRule )
         {
-            if( !pCur )         // NumRule anpassen, wenn sie neu ist
+            if( !pCur )         // adjust NumRule if it is new
             {
                 SwCharFmt* pCFmt = pDoc->GetCharFmtFromPool(
                                             RES_POOLCHR_NUM_LEVEL );
@@ -1604,7 +1593,7 @@
                         aRule.Set( n, aFmt );
                     }
 
-                    // passt alles vollstaendig in den Frame?
+                    // Does it fit completely into the frame?
                     bool bDefStep = nFrmWidth < (nSpaceSteps * MAXLEVEL);
                     for( ; n < MAXLEVEL; ++n )
                     {
@@ -1697,7 +1686,7 @@
 
     if( bBreak )
     {
-        AutoCorrect( nAutoCorrPos );       /* Offset wegen Bullet + Tab */
+        AutoCorrect( nAutoCorrPos );       /* Offset due to Bullet + Tab */
         return;
     }
 
@@ -1727,11 +1716,9 @@
 void SwAutoFormat::BuildNegIndent( SwTwips nSpaces )
 {
     SetRedlineTxt( STR_AUTOFMTREDL_SET_TMPL_NEG_INDENT );
-    // Test auf Gegenueberstellung:
-    // (n Worte, durch Space/Tabs getrennt, mit gleicher
-    //   Einrueckung in der 2.Zeile)
+    // Test of contraposition (n words, divided by spaces/tabs, with same indentation in 2nd line)
 
-    // lese alle nachfolgenden Absaetze die zu dieser Aufzaehlung gehoeren
+    // read all succeeding paragraphs that belong to this enumeration
     bool bBreak = true;
     xub_StrLen nSpacePos, nTxtPos = GetBigIndent( nSpacePos );
     if( bMoreLines )
@@ -1772,7 +1759,7 @@
         aDelPam.GetPoint()->nNode = aNdIdx;
         aDelPam.GetPoint()->nContent.Assign( pAktTxtNd, nSpacePos );
 
-        // alten Spaces, usw. loeschen
+        // delete old Spaces, etc.
         if( nSpaceStt < nSpacePos )
         {
             aDelPam.SetMark();
@@ -1846,7 +1833,7 @@
 }
 
 
-        // dann lasse doch mal das AutoCorrect auf den akt. TextNode los
+/// Start autocorrection for the current TextNode
 void SwAutoFormat::AutoCorrect( xub_StrLen nPos )
 {
     SvxAutoCorrect* pATst = SvxAutoCorrCfg::Get().GetAutoCorrect();
@@ -1948,8 +1935,7 @@
             case '\'':
                 if( ( cChar == '\"' && bReplaceQuote ) || ( cChar == '\'' && bReplaceSglQuote ) )
                 {
-                    // --------------------------------------
-                    // beachte: Sonderfall Symbolfonts !!!
+                    // consider Symbolfonts!
                     if( !aFInfo.GetFrm() )
                         aFInfo.SetFrm( GetFrm( *pAktTxtNd ) );
                     if( !aFInfo.IsBullet( nPos ))
@@ -1996,8 +1982,7 @@
             case '_':
                 if( aFlags.bChgWeightUnderl )
                 {
-                    // --------------------------------------
-                    // beachte: Sonderfall Symbolfonts !!!
+                    // consider Symbolfonts!
                     if( !aFInfo.GetFrm() )
                         aFInfo.SetFrm( GetFrm( *pAktTxtNd ) );
                     if( !aFInfo.IsBullet( nPos ))
@@ -2024,7 +2009,7 @@
                             //#125102# in case of the mode REDLINE_SHOW_DELETE the ** are still contained in pTxt
                             if(0 == (pDoc->GetRedlineMode() & nsRedlineMode_t::REDLINE_SHOW_DELETE))
                                 nPos = aDelPam.GetPoint()->nContent.GetIndex() - 1;
-                            // wurde vorm Start ein Zeichen entfernt?
+                            // Was a character deleted before starting?
                             if (cBlank && cBlank != (*pTxt)[nSttPos - 1])
                                 --nSttPos;
                         }
@@ -2053,7 +2038,7 @@
                 if( !( rAppCC.isLetterNumeric( *pTxt, nPos )
                         || '/' == cChar )) //  '/' should not be a word separator (e.g. '1/2' needs to be handled as one word for replacement)
                 {
-                    --nPos;     // ++nPos von dem for ungueltig machen !
+                    --nPos;     // revert ++nPos which was decremented in for loop
                     ++bBreak;
                 }
                 break;
@@ -2087,7 +2072,7 @@
                     aDelPam.DeleteMark();
                 }
 
-                continue;       // nichts weiter mehr abpruefen
+                continue;       // do not check further
             }
 
             LanguageType eLang = (bGetLanguage && pAktTxtNd)
@@ -2113,13 +2098,13 @@
                     nPos = aDelPam.GetPoint()->nContent.GetIndex();
             else
             {
-                // Zwei Grossbuchstaben am Wort-Anfang ??
+                // two capital letters at the beginning of a word?
                 if( aFlags.bCptlSttWrd )
                 {
                     SetRedlineTxt( STR_AUTOFMTREDL_CPTL_STT_WORD );
                     pATst->FnCptlSttWrd( aACorrDoc, *pTxt, nSttPos, nPos, eLang );
                 }
-                // Grossbuchstabe am Satz-Anfang ??
+                // capital letter at the beginning of a sentence?
                 if( aFlags.bCptlSttSntnc && bFirst )
                 {
                     SetRedlineTxt( STR_AUTOFMTREDL_CPTL_STT_SENT );
@@ -2158,7 +2143,7 @@
     nRedlAutoFmtSeqId( 0 )
 {
     OSL_ENSURE( (pSttNd && pEndNd) || (!pSttNd && !pEndNd),
-            "Kein Bereich angegeben" );
+            "Got no area" );
 
     if( aFlags.bSetNumRule && !aFlags.bAFmtByInput )
         aFlags.bSetNumRule = sal_False;
@@ -2170,26 +2155,26 @@
     sal_Bool bNxtAlpha = sal_False;
     sal_uInt16 nNxtLevel = 0;
 
-    // setze den Bereich zum Autoformatieren
+    // set area for autoformatting
     if( pSttNd )
     {
         aNdIdx = *pSttNd;
-        aNdIdx--;           // fuer GoNextPara, ein Absatz davor
+        aNdIdx--;           // for GoNextPara, one paragraph prior to that
         aEndNdIdx = *pEndNd;
         aEndNdIdx++;
 
-        // teste den vorhergehenden TextNode
+        // check the previous TextNode
         pNxtNd = aNdIdx.GetNode().GetTxtNode();
         bEmptyLine = !pNxtNd ||
                     IsEmptyLine( *pNxtNd ) ||
                     IsNoAlphaLine( *pNxtNd );
     }
     else
-        bEmptyLine = true;      // am Dokument Anfang
+        bEmptyLine = true;      // at document beginning
 
     bEnde = false;
 
-    // setze die Werte fuer die Prozent-Anzeige
+    // set value for percentage display
     nEndNdIdx = aEndNdIdx.GetIndex();
 
     if( !aFlags.bAFmtByInput )
@@ -2210,8 +2195,7 @@
     // save undo state (might be turned off)
     bool const bUndoState = pDoc->GetIDocumentUndoRedo().DoesUndo();
 
-    // wenn mehrere Zeilen, dann erstmal nicht mit
-    // dem nachfolgenden Absatz zusammenfassen.
+    // If multiple lines, then do not merge with next paragraph
     bMoreLines = false;
 
     nLastCalcHeadLvl = nLastCalcEnumLvl = 0;
@@ -2219,10 +2203,10 @@
     sal_uInt16 nLevel = 0;
     sal_uInt16 nDigitLvl = 0;
 
-    // defaulten
+    // set defaults
     SwTxtFrmInfo aFInfo( 0 );
 
-    // das ist unser Automat fuer die Auto-Formatierung
+    // This is the automat for autoformatting
     eStat = READ_NEXT_PARA;
     while( !bEnde )
     {
@@ -2243,9 +2227,9 @@
                     bEmptyLine = true;
                     sal_uLong nOldCnt = pDoc->GetNodes().Count();
                     DelEmptyLine();
-                    // wurde wiklich ein Node geloescht ?
+                    // Was there really a deletion of a node?
                     if( nOldCnt != pDoc->GetNodes().Count() )
-                        aNdIdx--;       // nicht den naechsten Absatz ueberspringen
+                        aNdIdx--;       // do not skip the next paragraph
                 }
                 eStat = READ_NEXT_PARA;
             }
@@ -2256,11 +2240,10 @@
         case TST_ALPHA_LINE:
             if( IsNoAlphaLine( *pAktTxtNd ))
             {
-                // erkenne eine Tabellendefinition +---+---+
+                // recognize a table definition +---+---+
                 if( aFlags.bAFmtByInput && aFlags.bCreateTable && DoTable() )
                 {
-                    //JP 30.09.96: das DoTable() verlaesst sich auf das
-                    //              Pop und Move - Crsr nach dem AutoFormat!
+                    //JP 30.09.96: DoTable() builds on PopCrsr and MoveCrsr after AutoFormat!
                     pEdShell->Pop( sal_False );
                     *pEdShell->GetCrsr() = aDelPam;
                     pEdShell->Push();
@@ -2269,9 +2252,8 @@
                     break;
                 }
 
-                // dann teste mal auf 3 "---" oder "===". In dem Fall
-                // soll der vorherige Absatz unterstrichen und dieser
-                // geloescht werden!
+                // Check for 3 "---" or "===". In this case, the previous paragraph should be
+                // underlined and the current be deleted!
                 if( !DoUnderline() && bReplaceStyles )
                 {
                     SetColl( RES_POOLCOLL_STANDARD, true );
@@ -2287,21 +2269,18 @@
             {
                 if( pAktTxtNd->GetNumRule() )
                 {
-                    // in Numerierung nichts machen, zum naechsten
+                    // do nothing in numbering, go to next
                     bEmptyLine = false;
                     eStat = READ_NEXT_PARA;
-                    // loesche alle Blanks am Anfang/Ende
-                    // und alle mitten drin
-                    //JP 29.04.98: erstmal nur alle "mitten drin".
+                    // delete all blanks at beginning/end and in between
+                    //JP 29.04.98: first only "all in between"
                     DelMoreLinesBlanks( false );
                     break;
                 }
 
                 aFInfo.SetFrm( pAktTxtFrm );
 
-                // erstmal: wurden schon mal entsprechende Vorlagen
-                //          vergeben, so behalte die bei, gehe zum
-                //          naechsten Node.
+                // so far: if there were templates assigned, keep these and go to next node
                 sal_uInt16 nPoolId = pAktTxtNd->GetTxtColl()->GetPoolFmtId();
                 if( IsPoolUserFmt( nPoolId )
                         ? !aFlags.bChgUserColl
@@ -2314,7 +2293,7 @@
                     break;
                 }
 
-                // teste auf Harte oder aus Vorlagen gesetzte LRSpaces
+                // check for hard spaces or LRSpaces set by the template
                 if( IsPoolUserFmt( nPoolId ) ||
                     RES_POOLCOLL_STANDARD == nPoolId )
                 {
@@ -2326,8 +2305,7 @@
                         ( 0 != (nSz = pLRSpace->GetTxtFirstLineOfst()) ||
                             0 != pLRSpace->GetTxtLeft() ) )
                     {
-                        // Ausnahme: Numerierun/Aufzaehlung kann mit Einzug
-                        //      existieren!!
+                        // exception: numbering/enumation can have an indentation
                         if( IsEnumericChar( *pAktTxtNd ))
                         {
                             nLevel = CalcLevel( *pAktTxtNd, &nDigitLvl );
@@ -2338,19 +2316,17 @@
                             break;
                         }
 
-
-                        // nie zusammenfassen, so belassen
-                        // (Opt. vielleicht als Ausnahmen nur Einzug)
+                        // never merge (maybe only indent as exception)
                         bMoreLines = true;
 
                         if( bReplaceStyles )
                         {
-                            // dann setze doch eine unserer Vorlagen
-                            if( 0 < nSz )           // positiver 1. Zeileneinzug
+                            // then use one of our templates
+                            if( 0 < nSz )           // positive 1st line indentation
                                 BuildIndent();
-                            else if( 0 > nSz )      // negativer 1. Zeileneinzug
+                            else if( 0 > nSz )      // negative 1st line indentation
                                 BuildNegIndent( aFInfo.GetLineStart() );
-                            else if( pLRSpace->GetTxtLeft() )   // ist ein Einzug
+                            else if( pLRSpace->GetTxtLeft() )   // is indentation
                                 BuildTextIndent();
                         }
                         eStat = READ_NEXT_PARA;
@@ -2395,10 +2371,10 @@
                 {
                     bEmptyLine = true;
                     eStat = READ_NEXT_PARA;
-                    break;      // naechsten Absatz lesen
+                    break;      // read next paragraph
                 }
 
-                // Teste auf Ueberschrift
+                // check if headline
                 if( !bEmptyLine || !IsFirstCharCapital( *pAktTxtNd ) ||
                     IsBlanksInString( *pAktTxtNd ) )
                     break;
@@ -2407,7 +2383,7 @@
                 String sEndClrStr( sClrStr );
                 xub_StrLen nLen = DelTrailingBlanks( sEndClrStr ).Len();
 
-                // nicht, dann teste auf Ueberschrift
+                // not, then check if headline
                 if( ':' == sEndClrStr.GetChar( nLen - 1 ) )
                 {
                     {
@@ -2425,7 +2401,7 @@
                         )
                     {
 
-                        // eine Ebene runter ?
+                        // one level below?
                         if( nLevel >= MAXLEVEL )
                             nLevel = MAXLEVEL-1;
 
@@ -2436,7 +2412,7 @@
                             if( nLastHeadLvl+1 < MAXLEVEL )
                                 ++nLastHeadLvl;
                         }
-                        // eine Ebene hoch ?
+                        // one level above?
                         else if( nLastCalcHeadLvl > nLevel )
                         {
                             if( nLastHeadLvl )
@@ -2473,15 +2449,15 @@
             break;
 
         case TST_IDENT:
-            // Spaces am Anfang, dann teste doch mal auf Einzuege
+            // Spaces at the beginning, check again for indentation
             if( bMoreLines && nLevel )
             {
                 SwTwips nSz = aFInfo.GetFirstIndent();
-                if( 0 < nSz )           // positiver 1. Zeileneinzug
+                if( 0 < nSz )           // positive 1st line indentation
                     BuildIndent();
-                else if( 0 > nSz )      // negativer 1. Zeileneinzug
+                else if( 0 > nSz )      // negative 1st line indentation
                     BuildNegIndent( aFInfo.GetLineStart() );
-                else                    // ist ein Einzug
+                else                    // is indentation
                     BuildTextIndent();
                 eStat = READ_NEXT_PARA;
             }
@@ -2489,7 +2465,7 @@
                      !bNxtEmpty && !bNxtAlpha && !nNxtLevel &&
                      !IsEnumericChar( *pNxtNd ) )
             {
-                // ist ein Einzug
+                // is an indentation
                 BuildIndent();
                 eStat = READ_NEXT_PARA;
             }
@@ -2498,16 +2474,16 @@
             break;
 
         case TST_NEG_IDENT:
-            // keine Spaces am Anfang, dann teste doch mal auf neg. Einzuege
+            // no spaces at the beginning, check again for negative indentation
             {
                 if( bMoreLines && !nLevel )
                 {
                     SwTwips nSz = aFInfo.GetFirstIndent();
-                    if( 0 < nSz )           // positiver 1. Zeileneinzug
+                    if( 0 < nSz )           // positive 1st line indentation
                         BuildIndent();
-                    else if( 0 > nSz )      // negativer 1. Zeileneinzug
+                    else if( 0 > nSz )      // negative 1st line indentation
                         BuildNegIndent( aFInfo.GetLineStart() );
-                    else                    // ist ein kein Einzug
+                    else                    // is _no_ indentation
                         BuildText();
                     eStat = READ_NEXT_PARA;
                 }
@@ -2515,7 +2491,7 @@
                          !bNxtEmpty && !bNxtAlpha && nNxtLevel &&
                          !IsEnumericChar( *pNxtNd ) )
                 {
-                    // ist ein neg. Einzug
+                    // is a negative indentation
                     BuildNegIndent( aFInfo.GetLineStart() );
                     eStat = READ_NEXT_PARA;
                 }
@@ -2529,11 +2505,11 @@
                 if( bMoreLines )
                 {
                     SwTwips nSz = aFInfo.GetFirstIndent();
-                    if( 0 < nSz )           // positiver 1. Zeileneinzug
+                    if( 0 < nSz )           // positive 1st line indentation
                         BuildIndent();
-                    else if( 0 > nSz )      // negativer 1. Zeileneinzug
+                    else if( 0 > nSz )      // negative 1st line indentation
                         BuildNegIndent( aFInfo.GetLineStart() );
-                    else if( nLevel )       // ist ein Einzug
+                    else if( nLevel )       // is indentation
                         BuildTextIndent();
                     else
                         BuildText();
@@ -2548,17 +2524,14 @@
 
         case HAS_FMTCOLL:
             {
-                // erstmal: wurden schon mal entsprechende Vorlagen
-                //          vergeben, so behalte die bei, gehe zum
-                //          naechsten Node.
+                // so far: if there were templates assigned, keep these and go to next node
                 bEmptyLine = false;
                 eStat = READ_NEXT_PARA;
-                // loesche alle Blanks am Anfang/Ende
-                // und alle mitten drin
-                //JP 29.04.98: erstmal nur alle "mitten drin".
+                // delete all blanks at beginning/end and in between
+                //JP 29.04.98: first only "all in between"
                 DelMoreLinesBlanks( false );
 
-                // behandel die harte Attributierung
+                // handle hard attributes
                 if( pAktTxtNd->HasSwAttrSet() )
                 {
                     short nSz;
@@ -2570,14 +2543,14 @@
                         ( 0 != (nSz = pLRSpace->GetTxtFirstLineOfst()) ||
                             0 != pLRSpace->GetTxtLeft() ) )
                     {
-                        // dann setze doch eine unserer Vorlagen
-                        if( 0 < nSz )           // positiver 1. Zeileneinzug
+                        // then use one of our templates
+                        if( 0 < nSz )           // positive 1st line indentation
                             BuildIndent();
-                        else if( 0 > nSz )      // negativer 1. Zeileneinzug
+                        else if( 0 > nSz )      // negative 1st line indentation
                         {
                             BuildNegIndent( aFInfo.GetLineStart() );
                         }
-                        else if( pLRSpace->GetTxtLeft() )   // ist ein Einzug
+                        else if( pLRSpace->GetTxtLeft() )   // is indentation
                             BuildTextIndent();
                         else
                             BuildText();
@@ -2599,7 +2572,7 @@
     // restore undo (in case it has been changed)
     pDoc->GetIDocumentUndoRedo().DoUndo(bUndoState);
 
-    // Prozent-Anzeige wieder abschalten
+    // disable display of percentage again
     if( !aFlags.bAFmtByInput )
         ::EndProgress( pDoc->GetDocShell() );
 }
@@ -2612,8 +2585,8 @@
     StartAllAction();
     StartUndo( UNDO_AUTOFORMAT );
 
-    SvxSwAutoFmtFlags aAFFlags;     // erst mal default - Werte
-    if( pAFlags )                   // oder doch angegeben ??
+    SvxSwAutoFmtFlags aAFFlags;     // use default values or add params?
+    if( pAFlags )
     {
         aAFFlags = *pAFlags;
         if( !aAFFlags.bAFmtByInput )
@@ -2621,7 +2594,7 @@
     }
 
     SwPaM* pCrsr = GetCrsr();
-    // es gibt mehr als einen oder ist eine Selektion offen
+    // There are more than one or a selection is open
     if( pCrsr->GetNext() != pCrsr || pCrsr->HasMark() )
     {
         FOREACHPAM_START(this)
@@ -2663,7 +2636,7 @@
         }
         else
         {
-            // dann einen Node zurueckspringen
+            // then go one node backwards
             SwNodeIndex aNdIdx( pCrsr->GetMark()->nNode, -1 );
             SwTxtNode* pTxtNd = aNdIdx.GetNode().GetTxtNode();
             if (pTxtNd && !pTxtNd->GetTxt().isEmpty())
@@ -2676,15 +2649,14 @@
 
         if( bRange )
         {
-            Push();     // Cursor sichern
+            Push();     // save cursor
 
-            SvxSwAutoFmtFlags aAFFlags = *GetAutoFmtFlags();        // erst mal default - Werte
+            SvxSwAutoFmtFlags aAFFlags = *GetAutoFmtFlags(); // use default values so far
 
             SwAutoFormat aFmt( this, aAFFlags, &pCrsr->GetMark()->nNode,
                                     &pCrsr->GetPoint()->nNode );
 
-            //JP 30.09.96: das DoTable() verlaesst sich auf das PopCrsr
-            //              und MoveCrsr!
+            //JP 30.09.96: DoTable() builds on PopCrsr and MoveCrsr!
             Pop( sal_False );
             pCrsr = GetCrsr();
         }
@@ -2718,8 +2690,8 @@
     pEditFlags->bAFmtByInpDelSpacesBetweenLines =
                                     pFlags->bAFmtByInpDelSpacesBetweenLines;
 
-    //JP 15.12.98: BulletZeichen und Font in die "normalen" kopieren,
-    //          weil beim Autoformat nur mit diesen gearbeitet wird!
+    //JP 15.12.98: copy BulletChar and Font into "normal" ones
+    //             because AutoFormat can only work with the latter!
     pEditFlags->cBullet             = pFlags->cByInputBullet;
     pEditFlags->aBulletFont         = pFlags->aByInputBulletFont;
     pEditFlags->cByInputBullet      = pFlags->cByInputBullet;
diff --git a/sw/source/core/edit/eddel.cxx b/sw/source/core/edit/eddel.cxx
index ca20b2d..62862fc 100644
--- a/sw/source/core/edit/eddel.cxx
+++ b/sw/source/core/edit/eddel.cxx
@@ -33,27 +33,21 @@
 #include <comcore.hrc>
 #include <list>
 
-/************************************************************
- * Loeschen
- ************************************************************/
-
 void SwEditShell::DeleteSel( SwPaM& rPam, sal_Bool* pUndo )
 {
-    // nur bei Selektion
+    // only for selections
     if( !rPam.HasMark() || *rPam.GetPoint() == *rPam.GetMark())
         return;
 
-    // besteht eine Selection in einer Tabelle ?
-    // dann nur den Inhalt der selektierten Boxen loeschen
-    // jetzt gibt es 2 Faelle die beachtet werden muessen:
-    //  1. Point und Mark stehen in einer Box, Selection normal loeschen
-    //  2. Point und Mark stehen in unterschiedlichen Boxen, alle
-    // selektierten Boxen suchen in den Inhalt loeschen
+    // Is the selection in a table? Then delete only the content of the selected boxes.
+    // Here, there are two cases:
+    // 1. Point and Mark are in one box, delete selection as usual
+    // 2. Point and Mare are in different boxes, search all selected boxes and delete content
     if( rPam.GetNode()->FindTableNode() &&
         rPam.GetNode()->StartOfSectionNode() !=
         rPam.GetNode(sal_False)->StartOfSectionNode() )
     {
-        // in Tabellen das Undo gruppieren
+        // group the Undo in the table
         if( pUndo && !*pUndo )
         {
             GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
@@ -68,37 +62,37 @@
             if( pEndSelPos->nNode.GetIndex() <= rEndNd.GetIndex() )
             {
                 *aDelPam.GetPoint() = *pEndSelPos;
-                pEndSelPos = 0;     // Pointer als Flag missbrauchen
+                pEndSelPos = 0;     // misuse a pointer as a flag
             }
             else
             {
-                // dann ans Ende der Section
+                // then go to the end of the selection
                 aDelPam.GetPoint()->nNode = rEndNd;
                 aDelPam.Move( fnMoveBackward, fnGoCntnt );
             }
-                // geschuetze Boxen ueberspringen !
+            // skip protected boxes
             if( !pNd->IsCntntNode() ||
                 !pNd->IsInProtectSect() )
             {
-                // alles loeschen
+                // delete everything
                 GetDoc()->DeleteAndJoin( aDelPam );
                 SaveTblBoxCntnt( aDelPam.GetPoint() );
             }
 
-            if( !pEndSelPos )               // am Ende der Selection
+            if( !pEndSelPos ) // at the end of a selection
                 break;
             aDelPam.DeleteMark();
-            aDelPam.Move( fnMoveForward, fnGoCntnt );   // naechste Box
+            aDelPam.Move( fnMoveForward, fnGoCntnt ); // next box
         } while( pEndSelPos );
     }
     else
     {
-            // alles loeschen
+        // delete everything
         GetDoc()->DeleteAndJoin( rPam );
         SaveTblBoxCntnt( rPam.GetPoint() );
     }
 
-    // Selection wird nicht mehr benoetigt.
+    // Selection is not needed anymore
     rPam.DeleteMark();
 }
 
@@ -112,7 +106,7 @@
         StartAllAction();
 
         sal_Bool bUndo = GetCrsr()->GetNext() != GetCrsr();
-        if( bUndo )     // mehr als eine Selection ?
+        if( bUndo ) // more than one selection?
         {
             SwRewriter aRewriter;
             aRewriter.AddRule(UndoArg1, SW_RESSTR(STR_MULTISEL));
@@ -124,7 +118,7 @@
             DeleteSel( *PCURCRSR, &bUndo );
         FOREACHPAM_END()
 
-        // falls eine Undo-Klammerung, dann hier beenden
+        // If undo container then close here
         if( bUndo )
         {
             GetDoc()->GetIDocumentUndoRedo().EndUndo(UNDO_END, 0);
@@ -223,14 +217,13 @@
                 GetDoc()->SplitNode( *pPos, false );
         }
 
-        // nur bei Selektion (nicht Textnodes haben Selection,
-        // aber Point/GetMark sind gleich
+        // Only for a selection (non-text nodes have selection but Point/GetMark are equal)
         if( !PCURCRSR->HasMark() || *PCURCRSR->GetPoint() == *PCURCRSR->GetMark() )
             continue;
 
         if( bFirstMove )
         {
-            // Anfangs-Position vom neuen Bereich merken
+            // Store start position of the new area
             aSttNdIdx = pPos->nNode.GetIndex()-1;
             nSttCntIdx = pPos->nContent.GetIndex();
             bFirstMove = false;
@@ -258,27 +251,26 @@
     }
     else
     {
-        // falls beim Move der Cursor "gewandert" ist, so setze hier auch
-        // seinen GetMark um, damit dieser nie in den Wald zeigt.
+        // If the cursor moved during move process, move also its GetMark
         pDestShell->GetCrsr()->SetMark();
         pDestShell->GetCrsr()->DeleteMark();
     }
 #if OSL_DEBUG_LEVEL > 0
-// pruefe ob die Indizies auch in den richtigen Nodes angemeldet sind
+// check if the indices are registered in the correct nodes
 {
-    SwPaM* pCmp = (SwPaM*)pDestShell->GetCrsr();        // sicher den Pointer auf Cursor
+    SwPaM* pCmp = (SwPaM*)pDestShell->GetCrsr();        // store pointer to cursor
     do {
         OSL_ENSURE( pCmp->GetPoint()->nContent.GetIdxReg()
-                    == pCmp->GetCntntNode(), "Point im falschen Node" );
+                    == pCmp->GetCntntNode(), "Point in wrong Node" );
         OSL_ENSURE( pCmp->GetMark()->nContent.GetIdxReg()
-                    == pCmp->GetCntntNode(sal_False), "Mark im falschen Node" );
+                    == pCmp->GetCntntNode(sal_False), "Mark in wrong Node" );
         bool bTst = *pCmp->GetPoint() == *pCmp->GetMark();
         (void) bTst;
     } while( pDestShell->GetCrsr() != ( pCmp = (SwPaM*)pCmp->GetNext() ) );
 }
 #endif
 
-    // Undo-Klammerung hier beenden
+    // close Undo container here
     pDestShell->GetDoc()->GetIDocumentUndoRedo().EndUndo( UNDO_END, NULL );
     pDestShell->EndAllAction();
 
@@ -287,13 +279,13 @@
     return (long)bRet;
 }
 
-
-    // Ersetz einen selektierten Bereich in einem TextNode mit dem
-    // String. Ist fuers Suchen&Ersetzen gedacht.
-    // bRegExpRplc - ersetze Tabs (\\t) und setze den gefundenen String
-    //               ein ( nicht \& )
-    //              z.B.: Fnd: "zzz", Repl: "xx\t\\t..&..\&"
-    //                      --> "xx\t<Tab>..zzz..&"
+/** Replace a selected area in a text node with a given string.
+ *
+ * Intended for "search & replace".
+ *
+ * @param bRegExpRplc if <true> replace tabs (\\t) and replace with found string (not \&).
+ *                    E.g. [Fnd: "zzz", Repl: "xx\t\\t..&..\&"] --> "xx\t<Tab>..zzz..&"
+ */
 sal_Bool SwEditShell::Replace( const String& rNewStr, sal_Bool bRegExpRplc )
 {
     SET_CURR_SHELL( this );
@@ -313,22 +305,21 @@
             }
         FOREACHPAM_END()
 
-        // Undo-Klammerung hier beenden
+        // close Undo container here
         GetDoc()->GetIDocumentUndoRedo().EndUndo(UNDO_EMPTY, NULL);
         EndAllAction();
     }
     return bRet;
 }
 
-
-    // Special-Methode fuer JOE's- Wizzards
+/// special method for JOE's wizards
 sal_Bool SwEditShell::DelFullPara()
 {
     sal_Bool bRet = sal_False;
     if( !IsTableMode() )
     {
         SwPaM* pCrsr = GetCrsr();
-        // keine Mehrfach-Selection
+        // no multi selection
         if( pCrsr->GetNext() == pCrsr && !HasReadonlySel() )
         {
             SET_CURR_SHELL( this );
diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx
index 8008b54..a4b8903 100644
--- a/sw/source/core/edit/edfcol.cxx
+++ b/sw/source/core/edit/edfcol.cxx
@@ -107,12 +107,11 @@
     const SfxItemSet* pSet = pCnt->GetpSwAttrSet();
     if( pSet )
     {
-        // JP 05.10.98: falls eines der Attribute Break/PageDesc/NumRule(auto)
-        //      im ItemSet steht, so entferne die VORM setzen an der Collection.
-        //      Ansonst wird zu viel gemacht oder falsche gemacht (NumRules!)
+        // JP 05.10.98: Special treatment if one of the attribues Break/PageDesc/NumRule(auto) is
+        //      in the ItemSet. Otherwise there will be too much or wrong processing (NumRules!)
         //      Bug 57568
 
-        // AutoNumRules NICHT in die Vorlagen uebernehmen
+        // Do NOT copy AutoNumRules into the template
         const SfxPoolItem* pItem;
         const SwNumRule* pRule = 0;
         if( SFX_ITEM_SET == pSet->GetItemState( RES_BREAK, sal_False ) ||
diff --git a/sw/source/core/edit/edfld.cxx b/sw/source/core/edit/edfld.cxx
index ede37d0..279d3d1 100644
--- a/sw/source/core/edit/edfld.cxx
+++ b/sw/source/core/edit/edfld.cxx
@@ -36,11 +36,7 @@
 #include <switerator.hxx>
 #include <fieldhint.hxx>
 
-/*--------------------------------------------------------------------
-    Beschreibung: Feldtypen zu einer ResId zaehlen
-                  wenn 0 alle zaehlen
- --------------------------------------------------------------------*/
-
+/// count field types with a ResId, if 0 count all
 sal_uInt16 SwEditShell::GetFldTypeCount(sal_uInt16 nResId, sal_Bool bUsed ) const
 {
     const SwFldTypes* pFldTypes = GetDoc()->GetFldTypes();
@@ -62,10 +58,10 @@
         }
     }
 
-    // Alle Typen mit gleicher ResId
+    // all types with the same ResId
     sal_uInt16 nIdx  = 0;
     for(sal_uInt16 i = 0; i < nSize; ++i)
-    {   // Gleiche ResId -> Index erhoehen
+    {   // same ResId -> increment index
         SwFieldType& rFldType = *((*pFldTypes)[i]);
         if(rFldType.Which() == nResId)
             nIdx++;
@@ -73,10 +69,7 @@
     return nIdx;
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: Feldtypen zu einer ResId finden
-                  wenn 0 alle finden
- --------------------------------------------------------------------*/
+/// get field types with a ResId, if 0 get all
 SwFieldType* SwEditShell::GetFldType(sal_uInt16 nFld, sal_uInt16 nResId, sal_Bool bUsed ) const
 {
     const SwFldTypes* pFldTypes = GetDoc()->GetFldTypes();
@@ -104,7 +97,7 @@
 
     sal_uInt16 nIdx = 0;
     for(sal_uInt16 i = 0; i < nSize; ++i)
-    {   // Gleiche ResId -> Index erhoehen
+    {   // same ResId -> increment index
         SwFieldType* pFldType = (*pFldTypes)[i];
         if(pFldType->Which() == nResId)
         {
@@ -119,17 +112,13 @@
     return 0;
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: Den ersten Typen mit ResId und Namen finden
- --------------------------------------------------------------------*/
+/// get first type with given ResId and name
 SwFieldType* SwEditShell::GetFldType(sal_uInt16 nResId, const String& rName) const
 {
     return GetDoc()->GetFldType( nResId, rName, false );
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: Feldtypen loeschen
- --------------------------------------------------------------------*/
+/// delete field type
 void SwEditShell::RemoveFldType(sal_uInt16 nFld, sal_uInt16 nResId)
 {
     if( USHRT_MAX == nResId )
@@ -151,9 +140,7 @@
         }
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: FieldType ueber Name loeschen
- --------------------------------------------------------------------*/
+/// delete field type based on its name
 void SwEditShell::RemoveFldType(sal_uInt16 nResId, const String& rStr)
 {
     const SwFldTypes* pFldTypes = GetDoc()->GetFldTypes();
@@ -164,7 +151,7 @@
 
     for(sal_uInt16 i = 0; i < nSize; ++i)
     {
-        // Gleiche ResId -> Index erhoehen
+        // same ResId -> increment index
         SwFieldType* pFldType = (*pFldTypes)[i];
         if( pFldType->Which() == nResId )
         {
@@ -202,14 +189,7 @@
     EndUndo( UNDO_DELETE );
 }
 
-/*************************************************************************
-|*
-|*                  SwEditShell::Insert( SwField )
-|*
-|*    Beschreibung  an der Cursorposition ein Feld einfuegen
-|*    Quelle:       vgl. SwEditShell::Insert( String )
-|*
-*************************************************************************/
+/// add a field at the cursor position
 void SwEditShell::Insert2(SwField& rFld, const bool bForceExpandHints)
 {
     SET_CURR_SHELL( this );
@@ -220,24 +200,16 @@
         ? nsSetAttrMode::SETATTR_FORCEHINTEXPAND
         : nsSetAttrMode::SETATTR_DEFAULT;
 
-    FOREACHPAM_START(this)                      // fuer jeden PaM
+    FOREACHPAM_START(this) // for each PaM
         bool bSuccess(GetDoc()->InsertPoolItem(*PCURCRSR, aFld, nInsertFlags));
         OSL_ENSURE( bSuccess, "Doc->Insert(Field) failed");
         (void) bSuccess;
-    FOREACHPAM_END()                      // fuer jeden PaM
+    FOREACHPAM_END()
 
     EndAllAction();
 }
 
-/*************************************************************************
-|*
-|*                  SwEditShell::GetCurFld()
-|*
-|*    Beschreibung  Stehen die PaMs auf Feldern ?
-|*    Quelle:       edtfrm.cxx:
-|*
-*************************************************************************/
-
+/// Are the PaMs positioned on fields?
 inline SwTxtFld *GetDocTxtFld( const SwPosition* pPos )
 {
     SwTxtNode * const pNode = pPos->nNode.GetNode().GetTxtNode();
@@ -249,8 +221,7 @@
 
 SwField* SwEditShell::GetCurFld() const
 {
-    // Wenn es keine Selektionen gibt, gilt der Wert der aktuellen
-    // Cursor-Position.
+    // If there are no selections so take the value of the current cursor position.
 
     SwPaM* pCrsr = GetCrsr();
     SwTxtFld *pTxtFld = GetDocTxtFld( pCrsr->Start() );
@@ -266,7 +237,7 @@
          pCrsr->Start()->nContent.GetIndex()) <= 1)
     {
         pCurFld = (SwField*)pTxtFld->GetFld().GetFld();
-        // TabellenFormel ? wandel internen in externen Namen um
+        // Table formula? Convert internal into external name:
         if( RES_TABLEFLD == pCurFld->GetTyp()->Which() )
         {
             const SwTableNode* pTblNd = IsCrsrInTbl();
@@ -281,17 +252,10 @@
 }
 
 
-/*************************************************************************
-|*
-|*                  SwEditShell::UpdateFlds()
-|*
-|*    Beschreibung  Stehen die PaMs auf Feldern ?
-|*
-*************************************************************************/
+/// Are the PaMs positioned on fields?
 static SwTxtFld* lcl_FindInputFld( SwDoc* pDoc, SwField& rFld )
 {
-    // suche das Feld ueber seine Addresse. Muss fuer InputFelder in
-    // geschuetzten Feldern erfolgen
+    // Search field via its address. For input fields this needs to be done in protected fields.
     SwTxtFld* pTFld = 0;
     if( RES_INPUTFLD == rFld.Which() || ( RES_SETEXPFLD == rFld.Which() &&
         ((SwSetExpField&)rFld).GetInputFlag() ) )
@@ -317,8 +281,7 @@
     StartAllAction();
     {
 
-        // Wenn es keine Selektionen gibt, gilt der Wert der aktuellen
-        // Cursor-Position.
+        // // If there are no selections so take the value of the current cursor position.
         SwMsgPoolItem* pMsgHnt = 0;
         SwRefMarkFldUpdate aRefMkHt( GetOut() );
         sal_uInt16 nFldWhich = rFld.GetTyp()->Which();
@@ -340,36 +303,34 @@
                 GetDoc()->UpdateFld(pTxtFld, rFld, pMsgHnt, sal_True);
         }
 
-        // bOkay (statt return wg. EndAllAction) wird false,
-        // 1) wenn nur ein Pam mehr als ein Feld enthaelt oder
-        // 2) bei gemischten Feldtypen
+        // bOkay (instead of return because of EndAllAction) becomes false,
+        // 1) if only one PaM has more than one field or
+        // 2) if there are mixed field types
         bool bOkay = true;
         sal_Bool bTblSelBreak = sal_False;
 
-        SwMsgPoolItem aHint( RES_TXTATR_FIELD );  // Such-Hint
-        FOREACHPAM_START(this)                      // fuer jeden PaM
-            if( PCURCRSR->HasMark() && bOkay )      // ... mit Selektion
+        SwMsgPoolItem aHint( RES_TXTATR_FIELD );  // Search-Hint
+        FOREACHPAM_START(this)                    // for each PaM
+            if( PCURCRSR->HasMark() && bOkay )    // ... with selection
             {
-                // Kopie des PaM
+                // copy of the PaM
                 SwPaM aCurPam( *PCURCRSR->GetMark(), *PCURCRSR->GetPoint() );
                 SwPaM aPam( *PCURCRSR->GetPoint() );
 
                 SwPosition *pCurStt = aCurPam.Start(), *pCurEnd =
                     aCurPam.End();
                 /*
-                 * Fuer den Fall, dass zwei aneinanderliegende Felder in einem
-                 * PaM liegen, hangelt sich aPam portionsweise bis zum Ende.
-                 * aCurPam wird dabei nach jeder Schleifenrunde verkuerzt.
-                 * Wenn aCurPam vollstaendig durchsucht wurde, ist Start = End
-                 * und die Schleife terminiert.
+                 * In case that there are two contiguous fields in a PaM, the aPam goes step by step
+                 * to the end. aCurPam is reduced in each loop. If aCurPam was searched completely,
+                 * the loop terminates because Start = End.
                  */
 
-                // Suche nach SwTxtFld ...
+                // Search for SwTxtFld ...
                 while(  bOkay
                      && pCurStt->nContent != pCurEnd->nContent
                      && aPam.Find( aHint, sal_False, fnMoveForward, &aCurPam ) )
                 {
-                    //  wenn nur ein Pam mehr als ein Feld enthaelt ...
+                    // if only one PaM has more than one field  ...
                     if( aPam.Start()->nContent != pCurStt->nContent )
                         bOkay = false;
 
@@ -378,7 +339,7 @@
                         pFmtFld = (SwFmtFld*)&pTxtFld->GetFld();
                         SwField *pCurFld = pFmtFld->GetFld();
 
-                        // bei gemischten Feldtypen
+                        // if there are mixed field types
                         if( pCurFld->GetTyp()->Which() !=
                             rFld.GetTyp()->Which() )
                             bOkay = false;
@@ -386,24 +347,19 @@
                         bTblSelBreak = GetDoc()->UpdateFld(pTxtFld, rFld,
                                                            pMsgHnt, sal_False);
                     }
-                    // Der Suchbereich wird um den gefundenen Bereich
-                    // verkuerzt.
+                    // The search area is reduced by the found area:
                     pCurStt->nContent++;
                 }
             }
 
-            if( bTblSelBreak )      // wenn Tabellen Selektion und Tabellen-
-                break;              // Formel aktualisiert wurde -> beenden
+            if( bTblSelBreak ) // If table section and table formula are updated -> finish
+                break;
 
-        FOREACHPAM_END()                      // fuer jeden PaM
+        FOREACHPAM_END()
     }
     GetDoc()->SetModified();
     EndAllAction();
 }
-
-/*--------------------------------------------------
- Liefert den logischen fuer die Datenbank zurueck
- --------------------------------------------------*/
 
 SwDBData SwEditShell::GetDBData() const
 {
@@ -432,16 +388,14 @@
     GetDoc()->ChangeDBFields( rOldNames, rNewName );
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung:  Alle Expression-Felder erneuern
- --------------------------------------------------------------------*/
+/// Update all expression fields
 void SwEditShell::UpdateExpFlds(sal_Bool bCloseDB)
 {
     SET_CURR_SHELL( this );
     StartAllAction();
     GetDoc()->UpdateExpFlds(NULL, true);
     if (bCloseDB)
-        GetDoc()->GetNewDBMgr()->CloseAll();    // Alle Datenbankverbindungen dichtmachen
+        GetDoc()->GetNewDBMgr()->CloseAll(); // close all database connections
     EndAllAction();
 }
 
@@ -450,9 +404,7 @@
     return GetDoc()->GetNewDBMgr();
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: Feldtypen einfuegen
- --------------------------------------------------------------------*/
+/// insert field type
 SwFieldType* SwEditShell::InsertFldType(const SwFieldType& rFldType)
 {
     return GetDoc()->InsertFldType(rFldType);
diff --git a/sw/source/core/edit/edglbldc.cxx b/sw/source/core/edit/edglbldc.cxx
index 31045e0..b1be289 100644
--- a/sw/source/core/edit/edglbldc.cxx
+++ b/sw/source/core/edit/edglbldc.cxx
@@ -25,7 +25,7 @@
 #include <ndtxt.hxx>
 #include <docary.hxx>
 #include <swwait.hxx>
-#include <swundo.hxx>       // fuer die UndoIds
+#include <swundo.hxx> // for UndoIds
 #include <section.hxx>
 #include <doctxm.hxx>
 #include <edglbldc.hxx>
@@ -58,7 +58,7 @@
     if( !getIDocumentSettingAccess()->get(IDocumentSettingAccess::GLOBAL_DOCUMENT) )
         return 0;
 
-    // dann alle gelinkten Bereiche auf der obersten Ebene
+    // then all linked areas on the topmost level
     SwDoc* pMyDoc = GetDoc();
     const SwSectionFmts& rSectFmts = pMyDoc->GetSections();
     sal_uInt16 n;
@@ -73,7 +73,7 @@
             {
             case TOX_HEADER_SECTION:    break;      // ignore
             case TOX_CONTENT_SECTION:
-                OSL_ENSURE( pSect->ISA( SwTOXBaseSection ), "keine TOXBaseSection!" );
+                OSL_ENSURE( pSect->ISA( SwTOXBaseSection ), "no TOXBaseSection!" );
                 pNew = new SwGlblDocContent( (SwTOXBaseSection*)pSect );
                 break;
 
@@ -86,14 +86,14 @@
         }
     }
 
-    // und als letztes die Dummies (sonstiger Text) einfuegen
+    // and finally add the dummies (other text)
     SwNode* pNd;
     sal_uLong nSttIdx = pMyDoc->GetNodes().GetEndOfExtras().GetIndex() + 2;
     for( n = 0; n < rArr.size(); ++n )
     {
         const SwGlblDocContent& rNew = *rArr[ n ];
-        // suche von StartPos bis rNew.DocPos nach einem Content Node.
-        // Existiert dieser, so muss ein DummyEintrag eingefuegt werden.
+        // Search from StartPos until rNew.DocPos for a content node.
+        // If one exists then a dummy entry is needed.
         for( ; nSttIdx < rNew.GetDocPos(); ++nSttIdx )
             if( ( pNd = pMyDoc->GetNodes()[ nSttIdx ])->IsCntntNode()
                 || pNd->IsSectionNode() || pNd->IsTableNode() )
@@ -102,16 +102,16 @@
                 if( !rArr.insert( pNew ).second )
                     delete pNew;
                 else
-                    ++n;        // auf die naechste Position
+                    ++n; // to the next position
                 break;
             }
 
-        // StartPosition aufs Ende setzen
+        // set StartPosition to the end
         nSttIdx = pMyDoc->GetNodes()[ rNew.GetDocPos() ]->EndOfSectionIndex();
         ++nSttIdx;
     }
 
-    // sollte man das Ende auch noch setzen??
+    // Should the end also be set?
     if( !rArr.empty() )
     {
         sal_uLong nNdEnd = pMyDoc->GetNodes().GetEndOfContent().GetIndex();
@@ -259,7 +259,7 @@
     sal_uLong nDelIdx = rDelPos.GetDocPos();
     if( 1 == rArr.size() )
     {
-        // ein Node muss aber da bleiben!
+        // we need at least one node!
         rPos.nNode = nDelIdx - 1;
         rPos.nContent.Assign( 0, 0 );
 
diff --git a/sw/source/core/edit/edglss.cxx b/sw/source/core/edit/edglss.cxx
index f63912e..d769b9b 100644
--- a/sw/source/core/edit/edglss.cxx
+++ b/sw/source/core/edit/edglss.cxx
@@ -28,16 +28,12 @@
 #include <editsh.hxx>
 #include <edimp.hxx>
 #include <frmfmt.hxx>
-#include <swundo.hxx>       // fuer die UndoIds
+#include <swundo.hxx>       // for UndoIds
 #include <ndtxt.hxx>
-#include <swtable.hxx>      // fuers kopieren von Tabellen
+#include <swtable.hxx>      // for table copying
 #include <shellio.hxx>      // SwTextBlocks
 #include <acorrect.hxx>
 #include <swerror.h>        // SwTextBlocks
-
-/******************************************************************************
- *              jetzt mit einem verkappten Reader/Writer/Dokument
- ******************************************************************************/
 
 void SwEditShell::InsertGlossary( SwTextBlocks& rGlossary, const String& rStr )
 {
@@ -46,13 +42,7 @@
     EndAllAction();
 }
 
-
-/******************************************************************************
- *              aktuelle Selektion zum Textbaustein machen und ins
- *          Textbausteindokument einfuegen, einschliesslich Vorlagen
- ******************************************************************************/
-
-
+/// convert current selection into text block and add to the text block document, incl. templates
 sal_uInt16 SwEditShell::MakeGlossary( SwTextBlocks& rBlks, const String& rName, const String& rShortName,
                                     sal_Bool bSaveRelFile, const String* pOnlyTxt )
 {
@@ -124,7 +114,7 @@
             pCrsr->GetPoint()->nContent.Assign( pCntntNd, 0 );
         pCrsr->SetMark();
 
-        // dann bis zum Ende vom Nodes Array
+        // then until the end of the Node array
         pCrsr->GetPoint()->nNode = pMyDoc->GetNodes().GetEndOfContent().GetIndex()-1;
         pCntntNd = pCrsr->GetCntntNode();
         if( pCntntNd )
@@ -163,14 +153,10 @@
     return nRet;
 }
 
-/******************************************************************************
- *                  kopiere alle Selectionen und das Doc
- ******************************************************************************/
-
-
+/// copy all selections and the doc
 sal_Bool SwEditShell::_CopySelToDoc( SwDoc* pInsDoc, SwNodeIndex* pSttNd )
 {
-    OSL_ENSURE( pInsDoc, "kein Ins.Dokument"  );
+    OSL_ENSURE( pInsDoc, "no Ins.Document"  );
 
     SwNodes& rNds = pInsDoc->GetNodes();
 
@@ -178,7 +164,7 @@
     SwCntntNode * pNd = aIdx.GetNode().GetCntntNode();
     SwPosition aPos( aIdx, SwIndex( pNd, pNd->Len() ));
 
-    // soll der Index auf Anfang returnt werden ?
+    // Should the index be reset to start?
     if( pSttNd )
     {
         *pSttNd = aPos.nNode;
@@ -192,18 +178,17 @@
 
     if( IsTableMode() )
     {
-        // kopiere Teile aus einer Tabelle: lege eine Tabelle mit der Breite
-        // von der Originalen an und kopiere die selectierten Boxen.
-        // Die Groessen werden prozentual korrigiert.
+        // Copy parts of a table: create a table with the width of the original one and copy the
+        // selected boxes. The sizes are corrected on a percentage basis.
 
-        // lasse ueber das Layout die Boxen suchen
+        // search boxes using the layout
         SwTableNode* pTblNd;
         SwSelBoxes aBoxes;
         GetTblSel( *this, aBoxes );
         if( !aBoxes.empty() && 0 != (pTblNd = (SwTableNode*)aBoxes[0]
             ->GetSttNd()->FindTableNode() ))
         {
-            // teste ob der TabellenName kopiert werden kann
+            // check if the table name can be copied
             sal_Bool bCpyTblNm = aBoxes.size() == pTblNd->GetTable().GetTabSortBoxes().size();
             if( bCpyTblNm )
             {
@@ -255,23 +240,20 @@
     if( !pInsDoc->IsExpFldsLocked() )
         pInsDoc->UpdateExpFlds(NULL, true);
 
-    // die gemerkte Node-Position wieder auf den richtigen Node
+    // set the saved Node position back to the correct Node
     if( bRet && pSttNd )
         ++(*pSttNd);
-
 
     return bRet;
 }
 
-/*------------------------------------------------------------------------
- Beschreibung:  Text innerhalb der Selektion erfragen
- Returnwert:    liefert sal_False, wenn der selektierte Bereich
-                zu gross ist, um in den Stringpuffer kopiert zu werden.
-------------------------------------------------------------------------*/
-
+/** Get text in a Selection
+ *
+ * @return sal_False if the selected area is too big for being copied into the string buffer
+ */
 sal_Bool SwEditShell::GetSelectedText( String &rBuf, int nHndlParaBrk )
 {
-    GetCrsr();  // ggfs. alle Cursor erzeugen lassen
+    GetCrsr();  // creates all cursors if needed
     if( IsSelOnePara() )
     {
         rBuf = GetSelTxt();
@@ -304,7 +286,7 @@
         SwReaderWriter::GetWriter( OUString(FILTER_TEXT), String(), xWrt );
         if( xWrt.Is() )
         {
-                // Selektierte Bereiche in ein ASCII Dokument schreiben
+            // write selected areas into a ASCII document
             SwWriter aWriter( aStream, *this);
             xWrt->SetShowProgress( sal_False );
 
diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx
index 8185efb..a335ba5 100644
--- a/sw/source/core/edit/editsh.cxx
+++ b/sw/source/core/edit/editsh.cxx
@@ -37,11 +37,11 @@
 #include <frame.hxx>
 #include <cntfrm.hxx>
 #include <pam.hxx>
-#include <ndtxt.hxx>            // fuer SwTxtNode
+#include <ndtxt.hxx>   // for SwTxtNode
 #include <grfatr.hxx>
 #include <flyfrm.hxx>
 #include <swtable.hxx>
-#include <swundo.hxx>           // UNDO_START, UNDO_END
+#include <swundo.hxx>  // UNDO_START, UNDO_END
 #include <calc.hxx>
 #include <edimp.hxx>
 #include <ndgrf.hxx>
@@ -200,7 +200,7 @@
     GetDoc()->GetIDocumentUndoRedo().StartUndo(UNDO_EMPTY, NULL);
 
     FOREACHPAM_START(this)
-        // eine Tabellen Zelle wird jetzt zu einer normalen Textzelle!
+        // Here, a table cell becomes a normal text cell.
         GetDoc()->ClearBoxNumAttrs( PCURCRSR->GetPoint()->nNode );
         GetDoc()->SplitNode( *PCURCRSR->GetPoint(), bCheckTableStart );
     FOREACHPAM_END()
@@ -235,12 +235,7 @@
     return bRet;
 }
 
-/******************************************************************************
- *        liefert einen Pointer auf einen SwGrfNode; dieser wird von
- *              GetGraphic() und GetGraphicSize() verwendet.
- ******************************************************************************/
-
-
+// the returned SwGrfNode pointer is used in GetGraphic() and GetGraphicSize()
 SwGrfNode * SwEditShell::_GetGrfNode() const
 {
     SwGrfNode *pGrfNode = 0;
@@ -251,12 +246,9 @@
 
     return pGrfNode;
 }
-/******************************************************************************
- *      liefert Pointer auf eine Graphic, wenn CurCrsr->GetPoint() auf
- *           einen SwGrfNode zeigt (und GetMark nicht gesetzt ist
- *                   oder auf die gleiche Graphic zeigt)
- ******************************************************************************/
 
+// returns a Graphic pointer if CurCrsr->GetPoint() points to a SwGrfNode and
+// GetMark is not set or points to the same Graphic
 const Graphic* SwEditShell::GetGraphic( sal_Bool bWait ) const
 {
     SwGrfNode* pGrfNode = _GetGrfNode();
@@ -311,12 +303,8 @@
     return static_cast<sal_uInt16>(pGrfNode ? pGrfNode->GetGrfObj().GetType() : GRAPHIC_NONE);
 }
 
-/******************************************************************************
- *      liefert die Groesse der Graphic, wenn CurCrsr->GetPoint() auf
- *          einen SwGrfNode zeigt (und GetMark nicht gesetzt ist
- *                  oder auf die gleiche Graphic zeigt)
- ******************************************************************************/
-
+// returns the size of a graphic in <rSz> if CurCrsr->GetPoint() points to a SwGrfNode and
+// GetMark is not set or points to the same graphic
 sal_Bool SwEditShell::GetGrfSize(Size& rSz) const
 {
     SwNoTxtNode* pNoTxtNd;
@@ -331,11 +319,8 @@
     return sal_False;
 
 }
-/******************************************************************************
- *      erneutes Einlesen, falls Graphic nicht Ok ist. Die
- *      aktuelle wird durch die neue ersetzt.
- ******************************************************************************/
 
+/// Read again if graphic is not OK and replace old one
 void SwEditShell::ReRead( const String& rGrfName, const String& rFltName,
                     const Graphic* pGraphic, const GraphicObject* pGrfObj )
 {
@@ -344,18 +329,12 @@
     EndAllAction();
 }
 
-
-/******************************************************************************
- *  liefert den Namen und den FilterNamen einer Graphic, wenn der Cursor
- *  auf einer Graphic steht
- *  Ist ein String-Ptr != 0 dann returne den entsp. Namen
- ******************************************************************************/
-
-
+/// Returns the name and the filter name of a graphic if the pointer is on a graphic.
+/// If a String-pointer is != 0 then return corresponding name.
 void SwEditShell::GetGrfNms( String* pGrfName, String* pFltName,
                             const SwFlyFrmFmt* pFmt ) const
 {
-    OSL_ENSURE( pGrfName || pFltName, "was wird denn nun erfragt?" );
+    OSL_ENSURE( pGrfName || pFltName, "No parameters" );
     if( pFmt )
         GetDoc()->GetGrfNms( *pFmt, pGrfName, pFltName );
     else
@@ -402,24 +381,22 @@
     }
 }
 
-/******************************************************************************
- *      liefert Pointer auf ein SvInPlaceObjectRef, wenn CurCrsr->GetPoint() auf
- *          einen SwOLENode zeigt (und GetMark nicht gesetzt ist
- *                  oder auf das gleiche SvInPlaceObjectRef zeigt)
- *      besorgt den Pointer vom Doc wenn das Objekt per Namen gesucht werden
- *      soll
- ******************************************************************************/
-
+/** Get OLE object at pointer.
+ *
+ * Returns a pointer to a SvInPlaceObjectRef if CurCrsr->GetPoint() points to a SwOLENode and
+ * GetMark is not set or points to the same object reference. Gets this pointer from the Doc
+ * if the object should be searched by name.
+ */
 svt::EmbeddedObjectRef& SwEditShell::GetOLEObject() const
 {
-    OSL_ENSURE(  CNT_OLE == GetCntType(), "GetOLEObj: kein OLENode." );
+    OSL_ENSURE(  CNT_OLE == GetCntType(), "GetOLEObj: no OLENode." );
     OSL_ENSURE( !GetCrsr()->HasMark() ||
             (GetCrsr()->HasMark() &&
                 GetCrsr()->GetPoint()->nNode == GetCrsr()->GetMark()->nNode),
-            "GetOLEObj: kein OLENode." );
+            "GetOLEObj: no OLENode." );
 
     SwOLENode *pOLENode = GetCrsr()->GetNode()->GetOLENode();
-    OSL_ENSURE( pOLENode, "GetOLEObj: kein OLENode." );
+    OSL_ENSURE( pOLENode, "GetOLEObj: no OLENode." );
     SwOLEObj& rOObj = pOLENode->GetOLEObj();
     return rOObj.GetObject();
 }
@@ -456,18 +433,13 @@
     GetDoc()->UpdateCharts( rName );
 }
 
-
-/******************************************************************************
- *      Aenderung des Tabellennamens
- ******************************************************************************/
-
+/// change table name
 void SwEditShell::SetTableName( SwFrmFmt& rTblFmt, const String &rNewName )
 {
     GetDoc()->SetTableName( rTblFmt, rNewName );
 }
 
-// erfragen des akt. Wortes
-
+/// request current word
 String SwEditShell::GetCurWord()
 {
     const SwPaM& rPaM = *GetCrsr();
@@ -500,14 +472,13 @@
 
 // OPT: eddocinl.cxx
 
-
-    // returne zum Namen die im Doc gesetzte Referenz
+/// get the reference of a given name in the Doc
 const SwFmtRefMark* SwEditShell::GetRefMark( const String& rName ) const
 {
     return GetDoc()->GetRefMark( rName );
 }
 
-    // returne die Namen aller im Doc gesetzten Referenzen
+/// get the names of all references in a Doc
 sal_uInt16 SwEditShell::GetRefMarks( std::vector<OUString>* pStrings ) const
 {
     return GetDoc()->GetRefMarks( pStrings );
@@ -586,9 +557,9 @@
 
 String SwEditShell::Calculate()
 {
-    String  aFormel;                    // die entgueltige Formel
+    String  aFormel;                    // the final formula
     SwPaM   *pPaMLast = (SwPaM*)GetCrsr()->GetNext(),
-            *pPaM = pPaMLast;           // die Pointer auf Cursor
+            *pPaM = pPaMLast;           // cursor pointers
     SwCalc  aCalc( *GetDoc() );
     const CharClass& rCC = GetAppCharClass();
 
@@ -659,8 +630,7 @@
 
 void *SwEditShell::GetIMapInventor() const
 {
-    //Als eindeutige Identifikation sollte der Node, auf dem der Crsr steht
-    //genuegen.
+    // The node on which the cursor points should be sufficient as a unique identifier
     return (void*)GetCrsr()->GetNode();
 }
 
@@ -668,7 +638,7 @@
 // remove default parameter, because method is always called this default value
 Graphic SwEditShell::GetIMapGraphic() const
 {
-    //Liefert immer eine Graphic, wenn der Crsr in einem Fly steht.
+    // returns always a graphic if the cursor is in a Fly
     SET_CURR_SHELL( (ViewShell*)this );
     Graphic aRet;
     SwPaM* pCrsr = GetCrsr();
@@ -705,7 +675,7 @@
 
 sal_Bool SwEditShell::InsertURL( const SwFmtINetFmt& rFmt, const String& rStr, sal_Bool bKeepSelection )
 {
-    // URL und Hinweistext (direkt oder via Selektion) notwendig
+    // URL and hint text (directly or via selection) necessary
     if( !rFmt.GetValue().Len() ||   ( !rStr.Len() && !HasSelection() ) )
         return sal_False;
     StartAllAction();
@@ -717,7 +687,7 @@
         SwPaM* pCrsr = GetCrsr();
         if( pCrsr->HasMark() && *pCrsr->GetPoint() != *pCrsr->GetMark() )
         {
-            // Selection vorhanden, MehrfachSelektion?
+            // Selection existent, multi selection?
             bool bDelTxt = true;
             if( pCrsr->GetNext() == pCrsr )
             {
@@ -726,7 +696,7 @@
                 if( sTxt == rStr )
                     bDelTxt = bInsTxt = false;
             }
-            else if( rFmt.GetValue() == rStr )      // Name und URL gleich?
+            else if( rFmt.GetValue() == rStr ) // Are Name and URL equal?
                 bDelTxt = bInsTxt = false;
 
             if( bDelTxt )
@@ -790,9 +760,8 @@
     return rArr.size();
 }
 
-
-    // ist der Cursor in eine INetAttribut, dann wird das komplett
-    // geloescht; inclusive des Hinweistextes (wird beim Drag&Drop gebraucht)
+/// If the cursor is in a INetAttribute then it will be deleted completely (incl. hint text, the
+/// latter is needed for drag & drop)
 sal_Bool SwEditShell::DelINetAttrWithText()
 {
     sal_Bool bRet = SelectTxtAttr( RES_TXTATR_INETFMT, sal_False );
@@ -802,7 +771,7 @@
 }
 
 
-// setzen an den Textzeichenattributen das DontExpand-Flag
+/// Set the DontExpand flag at the text character attributes
 bool SwEditShell::DontExpandFmt()
 {
     bool bRet = false;
@@ -922,7 +891,7 @@
     if( !bActPos )
         aStart = 0;
     else if( rPtIdx > ( nTmpPos = GetDoc()->GetNodes().GetEndOfExtras().GetIndex()) )
-        // BodyBereich => Start ist EndOfIcons + 1
+        // BodyArea => Start is EndOfIcons + 1
         aStart = nTmpPos + 1;
     else
     {
@@ -1033,9 +1002,7 @@
     getIDocumentSettingAccess()->setLinkUpdateMode( nMode );
 }
 
-
-// Schnittstelle fuer die TextInputDaten - ( fuer die Texteingabe
-// von japanischen/chinesischen Zeichen)
+// Interface for TextInputData - (for text input of japanese/chinese characters)
 SwExtTextInput* SwEditShell::CreateExtTextInput(LanguageType eInputLanguage)
 {
     SwExtTextInput* pRet = GetDoc()->CreateExtTextInput( *GetCrsr() );
@@ -1094,11 +1061,11 @@
 
         if( !rData.IsOnlyCursorChanged() )
             pInput->SetInputData( rData );
-        // Cursor positionieren:
+        // position cursor
         const SwPosition& rStt = *pInput->Start();
         xub_StrLen nNewCrsrPos = rStt.nContent.GetIndex() + rData.GetCursorPos();
 
-        // zwar unschoen aber was hilfts
+        // ugly but works
         ShowCrsr();
         long nDiff = nNewCrsrPos - rPos.nContent.GetIndex();
         if( 0 > nDiff )
diff --git a/sw/source/core/edit/edlingu.cxx b/sw/source/core/edit/edlingu.cxx
index 4a77c70..0101486 100644
--- a/sw/source/core/edit/edlingu.cxx
+++ b/sw/source/core/edit/edlingu.cxx
@@ -41,12 +41,12 @@
 #include <IDocumentUndoRedo.hxx>
 #include <rootfrm.hxx>      // SwRootFrm
 #include <pam.hxx>
-#include <swundo.hxx>       // fuer die UndoIds
+#include <swundo.hxx>       // for the UndoIds
 #include <ndtxt.hxx>        // AdjHyphPos
 #include <viewopt.hxx>      // HyphStart/End
 #include <viscrs.hxx>       // SwShellCrsr
-#include <SwGrammarMarkUp.hxx>      // SwWrongList
-#include <mdiexp.hxx>       // Statusanzeige
+#include <SwGrammarMarkUp.hxx> // SwWrongList
+#include <mdiexp.hxx>       // status display
 #include <statstr.hrc>      // StatLine-String
 #include <cntfrm.hxx>
 #include <crsskip.hxx>
@@ -95,7 +95,7 @@
 
     inline sal_uInt16& GetCrsrCnt(){ return nCrsrCnt; }
 
-    // Der UI-Bauchladen:
+    // for the UI:
     void _Start( SwEditShell *pSh, SwDocPositions eStart,
                 SwDocPositions eEnd );
     void _End(bool bRestoreSelection = true);
@@ -191,8 +191,8 @@
 static SwConvIter*  pConvIter = 0;
 static SwHyphIter*  pHyphIter = 0;
 
-// Wir ersparen uns in Hyphenate ein GetFrm()
-// Achtung: in txtedt.cxx stehen extern-Deklarationen auf diese Pointer!
+// With that we save a GetFrm() in Hyphenate.
+// Caution: There are external declaration to these pointers in txtedt.cxx!
 const SwTxtNode *pLinguNode;
       SwTxtFrm  *pLinguFrm;
 
@@ -203,7 +203,7 @@
 SwLinguIter::SwLinguIter()
     : pSh( 0 ), pStart( 0 ), pEnd( 0 ), pCurr( 0 ), pCurrX( 0 )
 {
-    // @@@ es fehlt: Sicherstellen der Reentrance, OSL_ENSURE( etc.
+    // TODO missing: ensurance of re-entrance, OSL_ENSURE( etc.
 }
 
 /*************************************************************************
@@ -215,7 +215,7 @@
 void SwLinguIter::_Start( SwEditShell *pShell, SwDocPositions eStart,
                             SwDocPositions eEnd )
 {
-    // es fehlt: Sicherstellen der Reentrance, Locking
+    // TODO missing: ensurance of re-entrance, locking
     if( pSh )
         return;
 
@@ -225,7 +225,7 @@
 
     SET_CURR_SHELL( pSh );
 
-    OSL_ENSURE( !pEnd, "LinguStart ohne End?");
+    OSL_ENSURE( !pEnd, "SwLinguIter::_Start without End?");
 
     SwPaM *pCrsr = pSh->GetCrsr();
 
@@ -284,7 +284,7 @@
     if( !pSh )
         return;
 
-    OSL_ENSURE( pEnd, "SwEditShell::SpellEnd() ohne Start?");
+    OSL_ENSURE( pEnd, "SwLinguIter::_End without end?");
     if(bRestoreSelection)
     {
         while( nCrsrCnt-- )
@@ -320,13 +320,7 @@
     aLastPositions.clear();
 }
 
-/*************************************************************************
- *                   SwSpellIter::Continue
- *************************************************************************/
-
-// SwSpellIter::Continue ist das alte Original von
-// SwEditShell::SpellContinue()
-
+// This method is the origin of SwEditShell::SpellContinue()
 uno::Any SwSpellIter::Continue( sal_uInt16* pPageCnt, sal_uInt16* pPageSt )
 {
     //!!
@@ -338,7 +332,7 @@
     if( !pMySh )
         return aSpellRet;
 
-    OSL_ENSURE( GetEnd(), "SwEditShell::SpellContinue() ohne Start?");
+    OSL_ENSURE( GetEnd(), "SwSpellIter::Continue without start?");
 
     uno::Reference< uno::XInterface >  xSpellRet;
     bool bGoOn = true;
@@ -412,7 +406,7 @@
     if( !pMySh )
         return aConvRet;
 
-    OSL_ENSURE( GetEnd(), "SwConvIter::Continue() ohne Start?");
+    OSL_ENSURE( GetEnd(), "SwConvIter::Continue() without Start?");
 
     OUString aConvText;
     bool bGoOn = true;
@@ -481,9 +475,8 @@
     if( pMySh )
     {
         pMySh->StartAction();
-        // Ganz fatal: durch das EndAction() werden Formatierungen
-        // angeregt, die dazu fuehren koennen, dass im Hyphenator
-        // neue Worte eingestellt werden. Deswegen sichern!
+        // Caution! Due to EndAction() formatting is started which can lead to the fact that new
+        // words are added to/set in the Hyphenator. Thus: save!
         pMySh->EndAction();
     }
 }
@@ -509,14 +502,7 @@
     _Start( pShell, eStart, eEnd );
 }
 
-/*************************************************************************
- *                 virtual SwHyphIter::End
- *************************************************************************/
-
-// Selektionen wiederherstellen
-
-
-
+// restore selections
 void SwHyphIter::End()
 {
     if( !GetSh() )
@@ -542,7 +528,7 @@
     do {
         SwPaM *pCrsr;
         do {
-            OSL_ENSURE( GetEnd(), "SwEditShell::SpellContinue() ohne Start?" );
+            OSL_ENSURE( GetEnd(), "SwHyphIter::Continue without Start?" );
             pCrsr = pMySh->GetCrsr();
             if ( !pCrsr->HasMark() )
                 pCrsr->SetMark();
@@ -556,7 +542,7 @@
             {
                 *pCrsr->GetMark() = *GetEnd();
 
-                // Muss an der aktuellen Cursorpos das Wort getrennt werden ?
+                // Do we need to break the word at the current cursor position?
                 const Point aCrsrPos( pMySh->GetCharRect().Pos() );
                 xHyphWord = pMySh->GetDoc()->Hyphenate( pCrsr, aCrsrPos,
                                                        pPageCnt, pPageSt );
@@ -585,21 +571,16 @@
     return aHyphRet;
 }
 
-/*************************************************************************
- *                  SwHyphIter::HyphIgnore
- *************************************************************************/
-
-// Beschreibung: Trennstelle ignorieren
-
+/// ignore hyphenation
 void SwHyphIter::Ignore()
 {
     SwEditShell *pMySh = GetSh();
     SwPaM *pCrsr = pMySh->GetCrsr();
 
-    // Alten SoftHyphen loeschen
+    // delete old SoftHyphen
     DelSoftHyph( *pCrsr );
 
-    // und weiter
+    // and continue
     pCrsr->Start()->nContent = pCrsr->End()->nContent;
     pCrsr->SetMark();
 }
@@ -652,17 +633,12 @@
         pSttPos->nContent += nHyphPos;
         SwPaM aRg( *pSttPos );
         pDoc->InsertString( aRg, OUString(CHAR_SOFTHYPHEN) );
-        // Durch das Einfuegen des SoftHyphs ist ein Zeichen hinzugekommen
-//JP 18.07.95: warum, ist doch ein SwIndex, dieser wird doch mitverschoben !!
-//        pSttPos->nContent++;
     }
-    // Die Selektion wird wieder aufgehoben
+    // revoke selection
     pCrsr->DeleteMark();
     pMySh->EndAction();
     pCrsr->SetMark();
 }
-
-// --------------------- Methoden der SwEditShell ------------------------
 
 bool SwEditShell::HasLastSentenceGotGrammarChecked() const
 {
@@ -775,12 +751,7 @@
     }
 }
 
-/*************************************************************************
- *                  SwEditShell::SpellContinue
- *************************************************************************/
-
-// liefert Rueckgabewerte entsprechend SPL_ in splchk.hxx
-
+/// @returns SPL_ return values as in splchk.hxx
 uno::Any SwEditShell::SpellContinue(
         sal_uInt16* pPageCnt, sal_uInt16* pPageSt,
         SwConversionArgs *pConvArgs )
@@ -802,9 +773,8 @@
 
     OSL_ENSURE(  pConvArgs || pSpellIter, "SpellIter missing" );
     OSL_ENSURE( !pConvArgs || pConvIter,  "ConvIter missing" );
-    //JP 18.07.95: verhinder bei Fehlermeldungen die Anzeige der Selektionen
-    //              KEIN StartAction, da damit auch die Paints abgeschaltet
-    //              werden !!!!!
+    //JP 18.07.95: prevent displaying selection on error messages. NO StartAction so that all
+    //             Paints are also disabled.
     ++mnStartAction;
     OUString aRet;
     uno::Reference< uno::XInterface >  xRet;
@@ -822,7 +792,7 @@
 
     if( !aRet.isEmpty() || xRet.is() )
     {
-        // dann die awt::Selection sichtbar machen
+        // then make awt::Selection again visible
         StartAction();
         EndAction();
     }
@@ -832,31 +802,28 @@
  *                  SwEditShell::HyphStart
  *************************************************************************/
 
-/* Interaktive Trennung, BP 10.03.93
+/* Interactive Hyphenation (BP 10.03.93)
  *
  * 1) HyphStart
- *    - Aufheben aller Selektionen
- *    - Sichern des aktuellen Cursors
- *    - falls keine Selektion vorhanden:
- *      - neue Selektion bis zum Dokumentende
+ *    - Revoke all Selections
+ *    - Save current Cursor
+ *    - if no selections existant:
+ *      - create new selection reaching until document end
  * 2) HyphContinue
- *    - nLastHyphLen wird auf den Selektionsstart addiert
- *    - iteriert ueber alle selektierten Bereiche
- *      - pDoc->Hyphenate() iteriert ueber alle Nodes der Selektion
- *          - pTxtNode->Hyphenate() ruft das SwTxtFrm::Hyphenate zur EditShell
- *              - SwTxtFrm:Hyphenate() iteriert ueber die Zeilen des Pams
- *                  - LineIter::Hyphenate() stellt den Hyphenator
- *                    und den Pam auf das zu trennende Wort ein.
- *    - Es gibt nur zwei Returnwerte sal_True, wenn eine Trennstelle anliegt
- *      und sal_False, wenn der Pam abgearbeitet wurde.
- *    - Bei sal_True wird das selektierte Wort zur Anzeige gebracht und
- *      nLastHyphLen gesetzt.
- *    - Bei sal_False wird die aktuelle Selektion geloescht und die naechste
- *      zur aktuellen gewaehlt. Return HYPH_OK, wenn keine mehr vorhanden.
- * 3) InsertSoftHyph (wird ggf. von der UI gerufen)
- *    - Der aktuelle Cursor wird plaziert und das Attribut eingefuegt.
+ *    - add nLastHyphLen onto SelectionStart
+ *    - iterate over all selected areas
+ *      - pDoc->Hyphenate() iterates over all Nodes of a selection
+ *          - pTxtNode->Hyphenate() calls SwTxtFrm::Hyphenate of the EditShell
+ *              - SwTxtFrm:Hyphenate() iterates over all rows of the Pam
+ *                  - LineIter::Hyphenate() sets the Hyphenator and the Pam based on
+ *                    the to be separated word.
+ *    - Returns sal_True if there is a hyphenation and sal_False if the Pam is processed.
+ *      - If sal_True, show the selected word and set nLastHyphLen.
+ *      - If sal_False, delete current selection and select next one. Returns HYPH_OK if no more.
+ * 3) InsertSoftHyph (might be called by UI if needed)
+ *    - Place current cursor and add attribute.
  * 4) HyphEnd
- *    - Wiederherstellen des alten Cursors, EndAction
+ *    - Restore old cursor, EndAction
  */
 
 
@@ -872,33 +839,18 @@
     }
 }
 
-/*************************************************************************
- *                  SwEditShell::HyphEnd
- *************************************************************************/
-
-// Selektionen wiederherstellen
-
-
-
+/// restore selections
 void SwEditShell::HyphEnd()
 {
     if (pHyphIter->GetSh() == this)
     {
-        OSL_ENSURE( pHyphIter, "wo ist mein Iterator?" );
+        OSL_ENSURE( pHyphIter, "No Iterator" );
         pHyphIter->End();
         delete pHyphIter, pHyphIter = 0;
     }
 }
 
-/*************************************************************************
- *                  SwEditShell::HyphContinue
- *************************************************************************/
-
-// Returnwerte: (BP: ich wuerde es genau umdrehen, aber die UI wuenscht es so)
-// HYPH_CONTINUE, wenn eine Trennstelle anliegt
-// HYPH_OK, wenn der selektierte Bereich abgearbeitet wurde.
-
-
+/// @returns HYPH_CONTINUE if hyphenation, HYPH_OK if selected area was processed.
 uno::Reference< uno::XInterface >
     SwEditShell::HyphContinue( sal_uInt16* pPageCnt, sal_uInt16* pPageSt )
 {
@@ -914,14 +866,13 @@
             *pPageCnt = nEndPage;
             ::StartProgress( STR_STATSTR_HYPHEN, 0, nEndPage, GetDoc()->GetDocShell());
         }
-        else                // Hiermit unterdruecken wir ein fuer allemal
-            *pPageSt = 1;   // das StatLineStartPercent
+        else                // here we once and for all suppress StatLineStartPercent
+            *pPageSt = 1;
     }
 
-    OSL_ENSURE( pHyphIter, "wo ist mein Iterator?" );
-    //JP 18.07.95: verhinder bei Fehlermeldungen die Anzeige der Selektionen
-    //              KEIN StartAction, da damit auch die Paints abgeschaltet
-    //              werden !!!!!
+    OSL_ENSURE( pHyphIter, "No Iterator" );
+    //JP 18.07.95: prevent displaying selection on error messages. NO StartAction so that all
+    //             Paints are also disabled.
     ++mnStartAction;
     uno::Reference< uno::XInterface >  xRet;
     pHyphIter->Continue( pPageCnt, pPageSt ) >>= xRet;
@@ -934,33 +885,22 @@
 }
 
 
-/*************************************************************************
- *                  SwEditShell::InsertSoftHyph
- *************************************************************************/
-
-// Zum Einfuegen des SoftHyphens, Position ist der Offset
-// innerhalb des getrennten Wortes.
-
-
+/** Insert soft hyphen
+ *
+ * @param nHyphPos Offset in the to be separated word
+ */
 void SwEditShell::InsertSoftHyph( const xub_StrLen nHyphPos )
 {
     OSL_ENSURE( pHyphIter, "wo ist mein Iterator?" );
     pHyphIter->InsertSoftHyph( nHyphPos );
 }
 
-
-/*************************************************************************
- *                  SwEditShell::HyphIgnore
- *************************************************************************/
-
-// Beschreibung: Trennstelle ignorieren
-
+/// ignore hyphenation
 void SwEditShell::HyphIgnore()
 {
-    OSL_ENSURE( pHyphIter, "wo ist mein Iterator?" );
-    //JP 18.07.95: verhinder bei Fehlermeldungen die Anzeige der Selektionen
-    //              KEIN StartAction, da damit auch die Paints abgeschaltet
-    //              werden !!!!!
+    OSL_ENSURE( pHyphIter, "No Iterator" );
+    //JP 18.07.95: prevent displaying selection on error messages. NO StartAction so that all
+    //             Paints are also disabled.
     ++mnStartAction;
     pHyphIter->Ignore();
     --mnStartAction;
@@ -968,15 +908,14 @@
     pHyphIter->ShowSelection();
 }
 
-/*************************************************************************
- *                  SwEditShell::GetCorrection()
- * liefert eine Liste von Vorschlaegen fuer falsch geschriebene Worte,
- * ein NULL-Pointer signalisiert, dass das Wort richtig geschrieben ist,
- * eine leere Liste, dass das Wort zwar unbekannt ist, aber keine Alternativen
- * geliefert werden koennen.
- *************************************************************************/
-
-
+/** Get a list of potential corrections for misspelled word.
+ *
+ * If empty, word is unknown but there are no corrections available.
+ * If NULL then the word is not misspelled but correct.
+ *
+ * @brief SwEditShell::GetCorrection
+ * @return list or NULL pointer
+ */
 uno::Reference< XSpellAlternatives >
     SwEditShell::GetCorrection( const Point* pPt, SwRect& rSelectRect )
 {
@@ -1031,7 +970,7 @@
 
             if ( xSpellAlt.is() )   // error found?
             {
-                //save the start and end positons of the line and the starting point
+                // save the start and end positons of the line and the starting point
                 Push();
                 LeftMargin();
                 xub_StrLen nLineStart = GetCrsr()->GetPoint()->nContent.GetIndex();
@@ -1500,7 +1439,7 @@
     if( !pMySh )
         return false;
 
-    OSL_ENSURE( GetEnd(), "SwEditShell::SpellSentence() ohne Start?");
+    OSL_ENSURE( GetEnd(), "SwSpellIter::SpellSentence without Start?");
 
     uno::Reference< XSpellAlternatives >  xSpellRet;
     linguistic2::ProofreadingResult aGrammarResult;
diff --git a/sw/source/core/edit/ednumber.cxx b/sw/source/core/edit/ednumber.cxx
index 3fa8bf9..4566903 100644
--- a/sw/source/core/edit/ednumber.cxx
+++ b/sw/source/core/edit/ednumber.cxx
@@ -112,14 +112,11 @@
     return rPam;
 }
 
-
-
-// Numerierung Outline Regelwerk
-
+// Rule book for outline numbering
 
 void SwEditShell::SetOutlineNumRule(const SwNumRule& rRule)
 {
-    StartAllAction();       // Klammern fuers Updaten !!
+    StartAllAction();       // bracketing for updating!
     GetDoc()->SetOutlineNumRule(rRule);
     EndAllAction();
 }
@@ -130,18 +127,17 @@
     return GetDoc()->GetOutlineNumRule();
 }
 
-// setzt, wenn noch keine Numerierung, sonst wird geaendert
-// arbeitet mit alten und neuen Regeln, nur Differenzen aktualisieren
+// Set if there is no numbering yet, else update.
+// Works with old and new rules. Update only differences.
 
-// Absaetze ohne Numerierung, aber mit Einzuegen
-
+// paragraphs without numbering, with indentations
 bool SwEditShell::NoNum()
 {
     bool bRet = true;
     StartAllAction();
 
     SwPaM* pCrsr = GetCrsr();
-    if( pCrsr->GetNext() != pCrsr )         // Mehrfachselektion ?
+    if( pCrsr->GetNext() != pCrsr )         // Multiple selection?
     {
         GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
         SwPamRanges aRangeArr( *pCrsr );
@@ -156,7 +152,7 @@
     EndAllAction();
     return bRet;
 }
-// Loeschen, Splitten der Aufzaehlungsliste
+
 sal_Bool SwEditShell::SelectionHasNumber() const
 {
     sal_Bool bResult = HasNumber();
@@ -281,12 +277,13 @@
 }
 // <- #i29560#
 
+/// delete, split list
 void SwEditShell::DelNumRules()
 {
     StartAllAction();
 
     SwPaM* pCrsr = GetCrsr();
-    if( pCrsr->GetNext() != pCrsr )         // Mehrfachselektion ?
+    if( pCrsr->GetNext() != pCrsr ) // multi-selection?
     {
         GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
         SwPamRanges aRangeArr( *pCrsr );
@@ -300,28 +297,24 @@
     else
         GetDoc()->DelNumRules( *pCrsr );
 
-    // rufe das AttrChangeNotify auf der UI-Seite. Sollte eigentlich
-    // ueberfluessig sein, aber VB hatte darueber eine Bugrep.
+    // Call AttrChangeNotify on the UI-side. Should actually be redundant but there was a bug once.
     CallChgLnk();
 
-    // cursor can not be anymore in front of a label,
-    // because numbering/bullet is deleted.
+    // Cursor cannot be in front of a label anymore, because numbering/bullet is deleted.
     SetInFrontOfLabel( false );
 
     GetDoc()->SetModified();
     EndAllAction();
 }
 
-// Hoch-/Runterstufen
-
-
+// up- & downgrading
 bool SwEditShell::NumUpDown( bool bDown )
 {
     StartAllAction();
 
     bool bRet = true;
     SwPaM* pCrsr = GetCrsr();
-    if( pCrsr->GetNext() == pCrsr )         // keine Mehrfachselektion ?
+    if( pCrsr->GetNext() == pCrsr )         // no multiple selection ?
         bRet = GetDoc()->NumUpDown( *pCrsr, bDown );
     else
     {
@@ -431,7 +424,7 @@
     SwPaM *pCrsr = GetCrsr();
     if( !pCrsr->HasMark() )
     {
-        // sorge dafuer, das Bound1 und Bound2 im gleichen Node stehen
+        // Ensures that Bound1 and Bound2 are in the same Node
         pCrsr->SetMark();
         pCrsr->DeleteMark();
     }
@@ -471,7 +464,7 @@
 {
     StartAllAction();
 
-    // auf alle Selektionen ??
+    // On all selections?
     SwPaM* pCrsr = GetCrsr();
     SwPaM aCrsr( *pCrsr->Start() );
     aCrsr.SetMark();
@@ -486,11 +479,11 @@
     {
         if( bUpperLower )
         {
-            // ueber die naechste Nummerierung
+            // on top of the next numbering
             long nOffset = 0;
             const SwNode* pNd;
 
-            if( bUpperLeft )        // verschiebe nach oben
+            if( bUpperLeft ) // move up
             {
                 SwPosition aPos( *aCrsr.GetMark() );
                 if( GetDoc()->GotoPrevNum( aPos, false ) )
@@ -507,7 +500,7 @@
                         nOffset = nIdx - nStt;
                 }
             }
-            else                    // verschiebe nach unten
+            else             // move down
             {
                 const SwNumRule* pOrig = aCrsr.GetNode(sal_False)->GetTxtNode()->GetNumRule();
                 if( aCrsr.GetNode()->IsTxtNode() &&
@@ -566,7 +559,7 @@
 
     bool bRet = true;
     SwPaM* pCrsr = GetCrsr();
-    if( pCrsr->GetNext() == pCrsr )         // keine Mehrfachselektion ?
+    if( pCrsr->GetNext() == pCrsr ) // no multi selection?
         bRet = GetDoc()->OutlineUpDown( *pCrsr, nOffset );
     else
     {
@@ -683,7 +676,7 @@
 
 sal_Bool SwEditShell::IsNoNum( sal_Bool bChkStart ) const
 {
-    // ein Backspace im Absatz ohne Nummer wird zum Delete
+    // a Backspace in the paragraph without number becomes a Delete
     sal_Bool bResult = sal_False;
     SwPaM* pCrsr = GetCrsr();
 
@@ -703,7 +696,7 @@
 
 sal_uInt8 SwEditShell::GetNumLevel() const
 {
-    // gebe die akt. Ebene zurueck, auf der sich der Point vom Cursor befindet
+    // return current level where the point of the cursor is
     sal_uInt8 nLevel = MAXLEVEL;        //end,zhaojianwei
 
     SwPaM* pCrsr = GetCrsr();
@@ -741,7 +734,7 @@
     GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
 
     SwPaM* pCrsr = GetCrsr();
-    if( pCrsr->GetNext() != pCrsr )         // Mehrfachselektion ?
+    if( pCrsr->GetNext() != pCrsr )         // multiple selection ?
     {
         SwPamRanges aRangeArr( *pCrsr );
         SwPaM aPam( *pCrsr->GetPoint() );
@@ -790,7 +783,7 @@
 {
     StartAllAction();
     SwPaM* pCrsr = pPaM ? pPaM : GetCrsr();
-    if( pCrsr->GetNext() != pCrsr )         // Mehrfachselektion ?
+    if( pCrsr->GetNext() != pCrsr )         // multiple selection ?
     {
         GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
         SwPamRanges aRangeArr( *pCrsr );
@@ -820,7 +813,7 @@
     StartAllAction();
 
     SwPaM* pCrsr = pPaM ? pPaM : GetCrsr();
-    if( pCrsr->GetNext() != pCrsr )         // Mehrfachselektion ?
+    if( pCrsr->GetNext() != pCrsr )         // multiple selection ?
     {
         GetDoc()->GetIDocumentUndoRedo().StartUndo( UNDO_START, NULL );
         SwPamRanges aRangeArr( *pCrsr );
diff --git a/sw/source/core/edit/edtab.cxx b/sw/source/core/edit/edtab.cxx
index c10e243..97e999e 100644
--- a/sw/source/core/edit/edtab.cxx
+++ b/sw/source/core/edit/edtab.cxx
@@ -155,13 +155,12 @@
 
     StartAllAction();
 
-    // verschiebe den akt. Cursor aus dem Tabellen Bereich
-    // angemeldet ist
+    // move current Cursor out of the listing area
     SwNodeIndex aTabIdx( *pTblNd );
     pCrsr->DeleteMark();
     pCrsr->GetPoint()->nNode = *pTblNd->EndOfSectionNode();
     pCrsr->GetPoint()->nContent.Assign( 0, 0 );
-    // SPoint und Mark aus dem Bereich verschieben !!!
+    // move sPoint and Mark out of the area!
     pCrsr->SetMark();
     pCrsr->DeleteMark();
 
@@ -190,7 +189,7 @@
         {
             bOnlyText = sal_True;
 
-            // pruefe ob in der Selection eine Tabelle liegt
+            // check if selection is in listing
             sal_uLong nStt = PCURCRSR->GetMark()->nNode.GetIndex(),
                   nEnd = PCURCRSR->GetPoint()->nNode.GetIndex();
             if( nStt > nEnd )   { sal_uLong n = nStt; nStt = nEnd; nEnd = n; }
@@ -242,9 +241,7 @@
     EndAllAction();
 }
 
-/*--------------------------------------------------------------------
-    Beschreibung: Tabellenfelder einer Tabelle updaten
- --------------------------------------------------------------------*/
+/** update fields of a listing */
 void SwEditShell::UpdateTable()
 {
     const SwTableNode* pTblNd = IsCrsrInTbl();
@@ -264,7 +261,8 @@
     }
 }
 
-    // Change Modus erfragen/setzen
+// get/set Change Mode
+
 TblChgMode SwEditShell::GetTblChgMode() const
 {
     TblChgMode eMode;
@@ -280,7 +278,6 @@
 {
     const SwTableNode* pTblNd = IsCrsrInTbl();
 
-    // Keine Arme keine Kekse
     if( pTblNd )
     {
         ((SwTable&)pTblNd->GetTable()).SetTblChgMode( eMode );
@@ -318,7 +315,7 @@
         const SwTableBoxFmt* pTblFmt = (SwTableBoxFmt*)pSelBox->GetFrmFmt();
         if( !n )
         {
-            // Formeln in die externe Darstellung bringen!
+            // Convert formulae into external presentation
             const SwTable& rTbl = pSelBox->GetSttNd()->FindTableNode()->GetTable();
 
             SwTableFmlUpdate aTblUpdate( (SwTable*)&rTbl );
@@ -354,7 +351,7 @@
         } while( false );
     }
 
-    // beim setzen einer Formel keine Ueberpruefung mehr vornehmen!
+    // When setting a formula, do not check further!
     if( SFX_ITEM_SET == rSet.GetItemState( RES_BOXATR_FORMULA ))
         ClearTblBoxCntnt();
 
@@ -482,13 +479,13 @@
                 bNew == pChkNd->GetTable().IsNewModel() &&
                 // Consider table in table case
                 pChkNd->EndOfSectionIndex() == pTblNd->GetIndex() - 1 )
-                *pChkNxtPrv = sal_True, bRet = sal_True;        // mit Prev ist moeglich
+                *pChkNxtPrv = sal_True, bRet = sal_True;        // using Prev is possible
             else
             {
                 pChkNd = rNds[ pTblNd->EndOfSectionIndex() + 1 ]->GetTableNode();
                 if( pChkNd && !pChkNd->GetTable().ISA( SwDDETable ) &&
                     bNew == pChkNd->GetTable().IsNewModel() )
-                    *pChkNxtPrv = sal_False, bRet = sal_True;       // mit Next ist moeglich
+                    *pChkNxtPrv = sal_False, bRet = sal_True;   // using Next is possible
             }
         }
         else
@@ -512,7 +509,7 @@
     return bRet;
 }
 
-        // setze das InsertDB als Tabelle Undo auf:
+/** create InsertDB as table Undo */
 void SwEditShell::AppendUndoForInsertFromDB( sal_Bool bIsTable )
 {
     GetDoc()->AppendUndoForInsertFromDB( *GetCrsr(), bIsTable );
diff --git a/sw/source/core/edit/edtox.cxx b/sw/source/core/edit/edtox.cxx
index d4f8781..f919129 100644
--- a/sw/source/core/edit/edtox.cxx
+++ b/sw/source/core/edit/edtox.cxx
@@ -54,10 +54,7 @@
 using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::util;
 
-/*--------------------------------------------------------------------
-     Beschreibung: Verzeichnismarkierung ins Dokument einfuegen/loeschen
- --------------------------------------------------------------------*/
-
+// Add/delete listing markers to a document
 
 void SwEditShell::Insert(const SwTOXMark& rMark)
 {
@@ -94,11 +91,7 @@
     EndAllAction();
 }
 
-
-/*--------------------------------------------------------------------
-     Beschreibung: Alle Verzeichnismarkierungen am SPoint zusammensuchen
- --------------------------------------------------------------------*/
-
+/// Collect all listing markers
 sal_uInt16 SwEditShell::GetCurTOXMarks(SwTOXMarks& rMarks) const
 {
     return GetDoc()->GetCurTOXMark( *GetCrsr()->Start(), rMarks );
@@ -133,10 +126,7 @@
     GetDoc()->SetDefaultTOXBase(rBase);
 }
 
-/*--------------------------------------------------------------------
-     Beschreibung: Verzeichnis einfuegen, und Inhalt erzeugen
- --------------------------------------------------------------------*/
-
+/// Insert listing and create content
 void SwEditShell::InsertTableOf( const SwTOXBase& rTOX, const SfxItemSet* pSet )
 {
     SET_CURR_SHELL( this );
@@ -146,36 +136,33 @@
     ::StartProgress( STR_STATSTR_TOX_INSERT, 0, 0, pDocSh );
     ::SetProgressText( STR_STATSTR_TOX_INSERT, pDocSh );
 
-    // Einfuegen des Verzeichnisses
+    // Insert listing
     const SwTOXBaseSection* pTOX = mpDoc->InsertTableOf(
                                         *GetCrsr()->GetPoint(), rTOX, pSet, true );
-    OSL_ENSURE(pTOX, "Kein aktuelles Verzeichnis");
+    OSL_ENSURE(pTOX, "No current TOx");
 
-    // Formatierung anstossen
+    // start formatting
     CalcLayout();
 
-    // Seitennummern eintragen
+    // insert page numbering
     ((SwTOXBaseSection*)pTOX)->UpdatePageNum();
 
     pTOX->SetPosAtStartEnd( *GetCrsr()->GetPoint() );
 
-    // Fix fuer leere Verzeichnisse
+    // Fix for empty listing
     InvalidateWindows( maVisArea );
     ::EndProgress( pDocSh );
     EndAllAction();
 }
 
-/*--------------------------------------------------------------------
-     Beschreibung: Verzeichnisinhalt erneuern
- --------------------------------------------------------------------*/
-
+/// update tables of content
 sal_Bool SwEditShell::UpdateTableOf( const SwTOXBase& rTOX, const SfxItemSet* pSet )
 {
     sal_Bool bRet = sal_False;
 
-    OSL_ENSURE( rTOX.ISA( SwTOXBaseSection ),  "keine TOXBaseSection!" );
+    OSL_ENSURE( rTOX.ISA( SwTOXBaseSection ),  "no TOXBaseSection!" );
     SwTOXBaseSection* pTOX = (SwTOXBaseSection*)&rTOX;
-    OSL_ENSURE(pTOX, "Keine aktuelles Verzeichnis");
+    OSL_ENSURE(pTOX, "no current listing");
     const SwSectionNode* pSectNd;
     if( pTOX && 0 != ( pSectNd = pTOX->GetFmt()->GetSectionNode() ) )
     {
@@ -191,17 +178,17 @@
 
         pMyDoc->GetIDocumentUndoRedo().StartUndo(UNDO_TOXCHANGE, NULL);
 
-        // Verzeichnisrumpf erzeugen
+        // create listing stub
         pTOX->Update(pSet);
 
-        // Cursor korrigieren
+        // correct Cursor
         if( bInIndex )
             pTOX->SetPosAtStartEnd( *GetCrsr()->GetPoint() );
 
-        // Formatierung anstossen
+        // start formatting
         CalcLayout();
 
-        // Seitennummern eintragen
+        // insert page numbering
         pTOX->UpdatePageNum();
 
         pMyDoc->GetIDocumentUndoRedo().EndUndo(UNDO_TOXCHANGE, NULL);
@@ -212,11 +199,7 @@
     return bRet;
 }
 
-/*--------------------------------------------------------------------
-     Beschreibung: Aktuelles Verzeichnis vor oder in dem der Cursor
-                                   steht
- --------------------------------------------------------------------*/
-
+/// Get current listing before or at the Cursor
 const SwTOXBase* SwEditShell::GetCurTOX() const
 {
     return GetDoc()->GetCurTOX( *GetCrsr()->GetPoint() );
@@ -227,18 +210,14 @@
     return GetDoc()->DeleteTOX( (SwTOXBase&)rTOXBase, bDelNodes );
 }
 
-/*--------------------------------------------------------------------
-     Beschreibung: Typen der Verzeichnisse verwalten
- --------------------------------------------------------------------*/
+// manage types of listings
 
 const SwTOXType* SwEditShell::GetTOXType(TOXTypes eTyp, sal_uInt16 nId) const
 {
     return mpDoc->GetTOXType(eTyp, nId);
 }
 
-/*--------------------------------------------------------------------
-     Beschreibung: Schluessel fuer Stichwortverzeichnisse verwalten
- --------------------------------------------------------------------*/
+// manage keys for the alphabetical index
 
 sal_uInt16 SwEditShell::GetTOIKeys( SwTOIKeyType eTyp, std::vector<String>& rArr ) const
 {
@@ -271,15 +250,14 @@
             pSect->GetFmt()->GetSectionNode() &&
             nCnt++ == nPos )
         {
-            OSL_ENSURE( pSect->ISA( SwTOXBaseSection ), "keine TOXBaseSection!" );
+            OSL_ENSURE( pSect->ISA( SwTOXBaseSection ), "no TOXBaseSection!" );
             return (SwTOXBaseSection*)pSect;
         }
     }
     return 0;
 }
 
-
-    // nach einlesen einer Datei alle Verzeichnisse updaten
+/** Update of all listings after reading-in a file */
 void SwEditShell::SetUpdateTOX( sal_Bool bFlag )
 {
     GetDoc()->SetUpdateTOX( bFlag );
diff --git a/sw/source/core/edit/edundo.cxx b/sw/source/core/edit/edundo.cxx
index 5baad3c..09537fe 100644
--- a/sw/source/core/edit/edundo.cxx
+++ b/sw/source/core/edit/edundo.cxx
@@ -106,24 +106,21 @@
 
     StartAllAction();
     {
-        // eigentlich muesste ja nur der aktuelle Cursor berarbeitet
-        // werden, d.H. falls ein Ring besteht, diesen temporaer aufheben,
-        // damit nicht bei Einfuge-Operationen innerhalb von Undo
-        // an allen Bereichen eingefuegt wird.
+        // Actually it should be enough to just work on the current Cursor, i.e. if there is a cycle
+        // cancel the latter temporarily, so that an insert during Undo is not done in all areas.
         KillPams();
-        SetMark();          // Bound1 und Bound2 in den gleichen Node
+        SetMark();          // Bound1 and Bound2 in the same Node
         ClearMark();
 
-        // JP 02.04.98: Cursor merken - beim Auto-Format/-Korrektur
-        //              soll dieser wieder an die Position
+        // Keep Cursor - so that we're able to set it at
+        // the same position for autoformat or autocorrection
         SwUndoId nLastUndoId(UNDO_EMPTY);
         GetDoc()->GetIDocumentUndoRedo().GetLastUndoInfo(0, & nLastUndoId);
         bool bRestoreCrsr = 1 == nCount && (UNDO_AUTOFORMAT == nLastUndoId ||
                                            UNDO_AUTOCORRECT == nLastUndoId );
         Push();
 
-        //JP 18.09.97: gesicherten TabellenBoxPtr zerstoeren, eine autom.
-        //          Erkennung darf nur noch fuer die neue "Box" erfolgen!
+        // Destroy stored TableBoxPtr. A dection is only permitted for the new "Box"!
         ClearTblBoxCntnt();
 
         RedlineMode_t eOld = GetDoc()->GetRedlineMode();
@@ -149,7 +146,7 @@
         GetDoc()->SetRedlineMode( eOld );
         GetDoc()->CompressRedlines();
 
-        // autom. Erkennung  fuer die neue "Box"
+        // automatic detection of the new "Box"
         SaveTblBoxCntnt();
     }
     EndAllAction();
@@ -169,16 +166,13 @@
     StartAllAction();
 
     {
-        // eigentlich muesste ja nur der aktuelle Cursor berarbeitet
-        // werden, d.H. falls ein Ring besteht, diesen temporaer aufheben,
-        // damit nicht bei Einfuge-Operationen innerhalb von Undo
-        // an allen Bereichen eingefuegt wird.
+        // Actually it should be enough to just work on the current Cursor, i.e. if there is a cycle
+        // cancel the latter temporarily, so that an insert during Undo is not done in all areas.
         KillPams();
-        SetMark();          // Bound1 und Bound2 in den gleichen Node
+        SetMark();          // Bound1 and Bound2 in the same Node
         ClearMark();
 
-        //JP 18.09.97: gesicherten TabellenBoxPtr zerstoeren, eine autom.
-        //          Erkennung darf nur noch fuer die neue "Box" erfolgen!
+        // Destroy stored TableBoxPtr. A dection is only permitted for the new "Box"!
         ClearTblBoxCntnt();
 
         RedlineMode_t eOld = GetDoc()->GetRedlineMode();
@@ -198,7 +192,7 @@
         GetDoc()->SetRedlineMode( eOld );
         GetDoc()->CompressRedlines();
 
-        // autom. Erkennung  fuer die neue "Box"
+        // automatic detection of the new "Box"
         SaveTblBoxCntnt();
     }
 
diff --git a/sw/source/core/edit/edws.cxx b/sw/source/core/edit/edws.cxx
index 48a7eab..0c646f9 100644
--- a/sw/source/core/edit/edws.cxx
+++ b/sw/source/core/edit/edws.cxx
@@ -31,12 +31,7 @@
 #include <swundo.hxx>
 #include <SwRewriter.hxx>
 
-/********************************************************
- * Ctor/Dtor
- ********************************************************/
-// verkleideter Copy-Constructor
-
-
+// masqueraded copy constructor
 SwEditShell::SwEditShell( SwEditShell& rEdSH, Window *pWindow )
     : SwCrsrShell( rEdSH, pWindow )
 {
@@ -145,15 +140,12 @@
     EndAllAction();
 }
 
-/******************************************************************************
- *                      Inhaltsform bestimmen, holen
- ******************************************************************************/
-// OPT: wird fuer jedes Attribut gerufen?
-
-
+/** Get the content type of a shell
+ *
+ * @todo Is this called for every attribute?
+ */
 sal_uInt16 SwEditShell::GetCntType() const
 {
-    // nur noch am SPoint ist der Inhalt interessant
     sal_uInt16 nRet = 0;
     if( IsTableMode() )
         nRet = CNT_TXT;
@@ -192,10 +184,7 @@
     return sal_False;
 }
 
-/******************************************************************************
- *              Zugriffsfunktionen fuer Filename-Behandlung
- ******************************************************************************/
-
+// access controll functions for file name handling
 
 SwActContext::SwActContext(SwEditShell *pShell)
     : pSh(pShell)
@@ -222,16 +211,13 @@
     pSh->EndCrsrMove();
 }
 
-
-SwFrmFmt *SwEditShell::GetTableFmt()    // OPT: schnellster Test auf Tabelle?
+SwFrmFmt *SwEditShell::GetTableFmt() // fastest test on a table
 {
     const SwTableNode* pTblNd = IsCrsrInTbl();
     return pTblNd ? (SwFrmFmt*)pTblNd->GetTable().GetFrmFmt() : 0;
 }
 
-// OPT: wieso 3x beim neuen Dokument
-
-
+// TODO: Why is this called 3x for a new document?
 sal_uInt16 SwEditShell::GetTOXTypeCount(TOXTypes eTyp) const
 {
     return mpDoc->GetTOXTypeCount(eTyp);
@@ -266,19 +252,23 @@
     GetDoc()->GetIDocumentUndoRedo().DelAllUndoObj();
 }
 
-// Zusammenfassen von Kontinuierlichen Insert/Delete/Overwrite von
-// Charaktern. Default ist sdbcx::Group-Undo.
+// Combine continuous calls of Insert/Delete/Overwrite on characters. Default: sdbcx::Group-Undo.
 
-// setzt Undoklammerung auf, liefert nUndoId der Klammerung
-
-
+/** open undo container
+ *
+ * @return nUndoId ID of the container
+ */
 SwUndoId SwEditShell::StartUndo( SwUndoId eUndoId,
                                    const SwRewriter *pRewriter )
 { return GetDoc()->GetIDocumentUndoRedo().StartUndo( eUndoId, pRewriter ); }
 
-// schliesst Klammerung der nUndoId, nicht vom UI benutzt
-
-
+/** close undo container
+ *
+ * not used by UI
+ *
+ * @param eUndoId   ID of the undo container
+ * @param pRewriter ?
+*/
 SwUndoId SwEditShell::EndUndo(SwUndoId eUndoId,
                                 const SwRewriter *pRewriter)
 { return GetDoc()->GetIDocumentUndoRedo().EndUndo(eUndoId, pRewriter); }
@@ -294,9 +284,7 @@
 SwUndoId SwEditShell::GetRepeatInfo(OUString *const o_pStr) const
 { return GetDoc()->GetIDocumentUndoRedo().GetRepeatInfo(o_pStr); }
 
-
-
-// AutoKorrektur - JP 27.01.94
+/** Auto correction */
 void SwEditShell::AutoCorrect( SvxAutoCorrect& rACorr, sal_Bool bInsert,
                                 sal_Unicode cChar )
 {

-- 
To view, visit https://gerrit.libreoffice.org/4203
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48682db4a27be298b8c0392603879d2e12f24cd7
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Philipp Riemer <ruderphilipp at gmail.com>



More information about the LibreOffice mailing list