Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


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@gmail.com>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.