dbaccess/source/core/api/SingleSelectQueryComposer.cxx |   30 +-
 sw/source/core/text/frmcrsr.cxx                        |  179 ++++++++---------
 sw/source/core/text/itratr.hxx                         |   24 +-
 sw/source/core/text/noteurl.cxx                        |    2 
 sw/source/core/text/pordrop.hxx                        |   18 -
 sw/source/core/text/porfly.hxx                         |    6 
 sw/source/core/text/porftn.hxx                         |    6 
 sw/source/core/text/porglue.hxx                        |    4 
 sw/source/core/text/porref.cxx                         |    4 
 sw/source/core/text/portab.hxx                         |    2 
 sw/source/core/text/portox.cxx                         |    6 
 sw/source/core/text/portxt.cxx                         |   51 ++--
 sw/source/core/text/portxt.hxx                         |    4 
 sw/source/core/text/possiz.hxx                         |    2 
 sw/source/core/text/txtinit.cxx                        |   27 +-
 sw/source/core/text/widorp.hxx                         |   10 
 16 files changed, 179 insertions(+), 196 deletions(-)

New commits:
commit 0987fc044ccc73dcb2f4daadc9e08322687a0663
Author: Philipp Weissenbacher <p.weissenbac...@gmail.com>
Date:   Wed Mar 28 17:24:08 2012 +0200

    Translate German comments

diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx 
b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index 4133630..4a72dbd 100644
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@ -505,8 +505,8 @@ void SAL_CALL 
OSingleSelectQueryComposer::appendFilterByColumn( const Reference<
         throw SQLException(sError,*this,SQLSTATE_GENERAL,1000,Any() );
     }
 
-    // filter anhaengen
-    // select ohne where und order by aufbauen
+    // Attach filter
+    // Construct SELECT without WHERE and ORDER BY
     ::rtl::OUString aQuote  = m_xMetaData->getIdentifierQuoteString();
     if ( m_aCurrentColumns[SelectColumns]->hasByName(aName) )
     {
@@ -978,22 +978,22 @@ sal_Bool 
OSingleSelectQueryComposer::setORCriteria(OSQLParseNode* pCondition, OS
                                     ::std::vector< ::std::vector < 
PropertyValue > >& rFilters, const Reference< 
::com::sun::star::util::XNumberFormatter > & xFormatter) const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "ocke.jans...@sun.com", 
"OSingleSelectQueryComposer::setORCriteria" );
-    // Runde Klammern um den Ausdruck
+    // Round brackets around the expression
     if (pCondition->count() == 3 &&
         SQL_ISPUNCTUATION(pCondition->getChild(0),"(") &&
         SQL_ISPUNCTUATION(pCondition->getChild(2),")"))
     {
         return setORCriteria(pCondition->getChild(1), _rIterator, rFilters, 
xFormatter);
     }
-    // oder Verknuepfung
+    // OR logic expression
     // a searchcondition can only look like this: search_condition 
SQL_TOKEN_OR boolean_term
     else if (SQL_ISRULE(pCondition,search_condition))
     {
         sal_Bool bResult = sal_True;
         for (int i = 0; bResult && i < 3; i+=2)
         {
-            // Ist das erste Element wieder eine OR-Verknuepfung?
-            // Dann rekursiv absteigen ...
+            // Is the first element a OR logic expression again?
+            // Then descend recursively ...
             if (SQL_ISRULE(pCondition->getChild(i),search_condition))
                 bResult = setORCriteria(pCondition->getChild(i), _rIterator, 
rFilters, xFormatter);
             else
@@ -1015,14 +1015,14 @@ sal_Bool OSingleSelectQueryComposer::setANDCriteria( 
OSQLParseNode * pCondition,
     OSQLParseTreeIterator& _rIterator, ::std::vector < PropertyValue >& 
rFilter, const Reference< XNumberFormatter > & xFormatter) const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "ocke.jans...@sun.com", 
"OSingleSelectQueryComposer::setANDCriteria" );
-    // Runde Klammern
+    // Round brackets
     if (SQL_ISRULE(pCondition,boolean_primary))
     {
         // this should not occur
         OSL_FAIL("boolean_primary in And-Criteria");
         return sal_False;
     }
-    // Das erste Element ist (wieder) eine AND-Verknuepfung
+    // The first element is an AND logical expression again
     else if ( SQL_ISRULE(pCondition,boolean_term) && pCondition->count() == 3 )
     {
         return setANDCriteria(pCondition->getChild(0), _rIterator, rFilter, 
xFormatter) &&
@@ -1227,7 +1227,7 @@ sal_Bool 
OSingleSelectQueryComposer::setComparsionPredicate(OSQLParseNode * pCon
         aItem.Handle = getPredicateType(pCondition->getChild(1));
         rFilter.push_back(aItem);
     }
-    else // kann sich nur um einen Expr. Ausdruck handeln
+    else // Can only be an expression
     {
         PropertyValue aItem;
         ::rtl::OUString aName, aValue;
@@ -1235,12 +1235,12 @@ sal_Bool 
OSingleSelectQueryComposer::setComparsionPredicate(OSQLParseNode * pCon
         OSQLParseNode *pLhs = pCondition->getChild(0);
         OSQLParseNode *pRhs = pCondition->getChild(2);
 
-        // Feldnamen
+        // Field names
         sal_uInt16 i;
         for (i=0;i< pLhs->count();i++)
              pLhs->getChild(i)->parseNodeToPredicateStr( aName, m_xConnection, 
xFormatter, m_aLocale, static_cast<sal_Char>( m_sDecimalSep.toChar() ) );
 
-        // Kriterium
+        // Criterion
         aItem.Handle = getPredicateType(pCondition->getChild(1));
         aValue       = pCondition->getChild(1)->getTokenValue();
         for(i=0;i< pRhs->count();i++)
@@ -1253,7 +1253,7 @@ sal_Bool 
OSingleSelectQueryComposer::setComparsionPredicate(OSQLParseNode * pCon
     return sal_True;
 }
 
-// functions for analysing SQL
+// Functions for analysing SQL
 ::rtl::OUString OSingleSelectQueryComposer::getColumnName( 
::connectivity::OSQLParseNode* pColumnRef, OSQLParseTreeIterator& _rIterator ) 
const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "ocke.jans...@sun.com", 
"OSingleSelectQueryComposer::getColumnName" );
@@ -1572,7 +1572,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( 
const Reference< XPropert
         m_aCurrentColumns[SelectColumns]->getByName(aName) >>= xColumn;
         
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME),"Property
 REALNAME not available!");
         
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_TABLENAME),"Property
 TABLENAME not available!");
-        
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AggregateFunction"))),"Property
 AggregateFunctionnot available!");
+        
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AggregateFunction"))),"Property
 AggregateFunction not available!");
 
         ::rtl::OUString sRealName,sTableName;
         xColumn->getPropertyValue(PROPERTY_REALNAME)    >>= sRealName;
@@ -1689,8 +1689,8 @@ void OSingleSelectQueryComposer::setConditionByColumn( 
const Reference< XPropert
         lcl_addFilterCriteria_throw(nFilterOp,sEmpty,aSQL);
     }
 
-    // filter anhaengen
-    // select ohne where und order by aufbauen
+    // Attach filter
+    // Construct SELECT without WHERE and ORDER BY
     ::rtl::OUString sFilter = getFilter();
 
     if ( !sFilter.isEmpty() && aSQL.getLength() )
diff --git a/sw/source/core/text/itratr.hxx b/sw/source/core/text/itratr.hxx
index d850112..1dfafbb 100644
--- a/sw/source/core/text/itratr.hxx
+++ b/sw/source/core/text/itratr.hxx
@@ -58,7 +58,7 @@ protected:
     ViewShell *pShell;
     SwFont *pFnt;
     SwpHints  *pHints;
-    const SwAttrSet* pAttrSet;       // das Char-Attribut-Set
+    const SwAttrSet* pAttrSet;       // The char attribute set
     SwScriptInfo* pScriptInfo;
 
 private:
@@ -83,7 +83,7 @@ protected:
         }
 
 public:
-    // Konstruktor, Destruktor
+    // Constructor, destructor
     inline SwAttrIter( SwTxtNode& rTxtNode, SwScriptInfo& rScrInf )
         : pShell(0), pFnt(0), pHints(0), pScriptInfo(0), pLastOut(0), 
nChgCnt(0), pRedln(0),nPropFont(0), m_pTxtNode(&rTxtNode)
         { CtorInitAttrIter( rTxtNode, rScrInf ); }
@@ -91,25 +91,25 @@ public:
     virtual ~SwAttrIter();
 
     inline SwRedlineItr *GetRedln() { return pRedln; }
-    // Liefert im Parameter die Position des naechsten Wechsels vor oder an
-    // der uebergebenen Characterposition zurueck. Liefert sal_False, wenn vor
-    // oder an dieser Position kein Wechsel mehr erfolgt, sal_True sonst.
+    // The parameter returns the position of the next change before or at the
+    // char position.
+    // Returns sal_False, if there's no change before or at the positon,
+    // else sal_True.
     xub_StrLen GetNextAttr( ) const;
-    // Macht die an der Characterposition i gueltigen Attribute im
-    // logischen Font wirksam.
+    // Enables the attributes used at char pos nPos in the logical font
     sal_Bool Seek( const xub_StrLen nPos );
-    // Bastelt den Font an der gew. Position via Seek und fragt ihn,
-    // ob er ein Symbolfont ist.
+    // Creates the font at the specified position via Seek() and checks
+    // if it's a symbol font.
     sal_Bool IsSymbol( const xub_StrLen nPos );
 
-    // Fuehrt ChgPhysFnt aus, wenn Seek() sal_True zurueckliefert.
+    // Executes ChgPhysFnt if Seek() returns sal_True
     sal_Bool SeekAndChgAttrIter( const xub_StrLen nPos, OutputDevice* pOut );
     sal_Bool SeekStartAndChgAttrIter( OutputDevice* pOut, const sal_Bool 
bParaFont = sal_False );
 
-    // Gibt es ueberhaupt Attributwechsel ?
+    // Do we have an attribute change at all?
     inline sal_Bool HasHints() const { return 0 != pHints; }
 
-    // liefert fuer eine Position das Attribut
+    // Returns the attribute for a position
     SwTxtAttr *GetAttr( const xub_StrLen nPos ) const;
 
     inline const SwAttrSet* GetAttrSet() const { return pAttrSet; }
diff --git a/sw/source/core/text/noteurl.cxx b/sw/source/core/text/noteurl.cxx
index 71003e9..8a08e09 100644
--- a/sw/source/core/text/noteurl.cxx
+++ b/sw/source/core/text/noteurl.cxx
@@ -37,7 +37,7 @@
 #include "txttypes.hxx"
 #include "noteurl.hxx"
 
-// globale Variable, wird in noteurl.Hxx bekanntgegeben
+// Global variable
 SwNoteURL *pNoteURL = NULL;
 
 SV_IMPL_PTRARR( SwURLNoteList, SwURLNotePtr )
diff --git a/sw/source/core/text/pordrop.hxx b/sw/source/core/text/pordrop.hxx
index 41179f5..9b463a7 100644
--- a/sw/source/core/text/pordrop.hxx
+++ b/sw/source/core/text/pordrop.hxx
@@ -32,7 +32,7 @@
 
 class SwFont;
 
-// DropCap-Cache, globale Variable, in txtinit.cxx initialisiert/zerstoert
+// DropCap cache, global variable initialized/destroyed in txtinit.cxx
 // und in txtdrop.cxx benutzt bei der Initialenberechnung
 
 class SwDropCapCache;
@@ -72,14 +72,14 @@ public:
 class SwDropPortion : public SwTxtPortion
 {
     friend class SwDropCapCache;
-    SwDropPortionPart* pPart; // due to script / attribute changes
-    MSHORT nLines;          // Anzahl der Zeilen
-    KSHORT nDropHeight;     // Hoehe
-    KSHORT nDropDescent;    // Abstand zur naechsten Zeile
-    KSHORT nDistance;       // Abstand zum Text
-    KSHORT nFix;            // Fixposition
-    short nX;               // X-PaintOffset
-    short nY;               // Y-Offset
+    SwDropPortionPart* pPart; // due to script/attribute changes
+    MSHORT nLines;          // Line count
+    KSHORT nDropHeight;     // Height
+    KSHORT nDropDescent;    // Distance to the next line
+    KSHORT nDistance;       // Distance to the text
+    KSHORT nFix;            // Fixed position
+    short nX;               // X PaintOffset
+    short nY;               // Y Offset
 
     sal_Bool FormatTxt( SwTxtFormatInfo &rInf );
     void PaintTxt( const SwTxtPaintInfo &rInf ) const;
diff --git a/sw/source/core/text/porfly.hxx b/sw/source/core/text/porfly.hxx
index ed2a7d5..2f211cc 100644
--- a/sw/source/core/text/porfly.hxx
+++ b/sw/source/core/text/porfly.hxx
@@ -61,10 +61,10 @@ public:
 class SwFlyCntPortion : public SwLinePortion
 {
     void *pContact; // bDraw ? DrawContact : FlyInCntFrm
-    Point aRef;     // Relativ zu diesem Point wird die AbsPos berechnet.
+    Point aRef;     // Relatively to this point we calculate the AbsPos
     sal_Bool bDraw : 1;  // DrawContact?
-    sal_Bool bMax : 1;   // Zeilenausrichtung und Hoehe == Zeilenhoehe
-    sal_uInt8 nAlign : 3; // Zeilenausrichtung? Nein, oben, mitte, unten
+    sal_Bool bMax : 1;   // Line adjustment and height == line height
+    sal_uInt8 nAlign : 3; // Line adjustment? No, above, middle, bottom
     virtual xub_StrLen GetCrsrOfst( const KSHORT nOfst ) const;
 
 public:
diff --git a/sw/source/core/text/porftn.hxx b/sw/source/core/text/porftn.hxx
index 9bd2b87..ed73693 100644
--- a/sw/source/core/text/porftn.hxx
+++ b/sw/source/core/text/porftn.hxx
@@ -39,7 +39,7 @@ class SwTxtFtn;
 
 class SwFtnPortion : public SwFldPortion
 {
-    SwTxtFrm *pFrm;         // um im Dtor RemoveFtn rufen zu koennen.
+    SwTxtFrm *pFrm;         // To be able to call RemoveFtn in the dtor
     SwTxtFtn *pFtn;
     KSHORT nOrigHeight;
     // #i98418#
@@ -93,7 +93,7 @@ public:
     inline const XubString &GetQuoTxt() const { return aExpand; }
     inline const XubString &GetContTxt() const { return aErgo; }
 
-    // Felder-Cloner fuer SplitGlue
+    // Field cloner for SplitGlue
     virtual SwFldPortion *Clone( const XubString &rExpand ) const;
 
     // Accessibility: pass information about this portion to the PortionHandler
@@ -113,7 +113,7 @@ public:
     virtual xub_StrLen GetCrsrOfst( const KSHORT nOfst ) const;
     virtual sal_Bool Format( SwTxtFormatInfo &rInf );
 
-    // Felder-Cloner fuer SplitGlue
+    // Field cloner for SplitGlue
     virtual SwFldPortion *Clone( const XubString &rExpand ) const;
     OUTPUT_OPERATOR
 };
diff --git a/sw/source/core/text/porglue.hxx b/sw/source/core/text/porglue.hxx
index a498c46..c59cf4b 100644
--- a/sw/source/core/text/porglue.hxx
+++ b/sw/source/core/text/porglue.hxx
@@ -67,7 +67,7 @@ public:
 
 class SwFixPortion : public SwGluePortion
 {
-    KSHORT nFix;        // der Width-Offset in der Zeile
+    KSHORT nFix;        // The width offset in the line
 public:
         SwFixPortion( const SwRect &rFlyRect );
         SwFixPortion( const KSHORT nFixWidth, const KSHORT nFixPos );
@@ -97,7 +97,7 @@ inline short SwGluePortion::GetPrtGlue() const
 
 /*************************************************************************
  *              inline SwGluePortion::AdjFixWidth()
- * Die FixWidth darf niemals groesser sein als die Gesamtbreite !
+ * The FixWidth MUST NEVER be larger than the accumulated width!
  *************************************************************************/
 
 inline void SwGluePortion::AdjFixWidth()
diff --git a/sw/source/core/text/porref.cxx b/sw/source/core/text/porref.cxx
index 376600f..0a94c07 100644
--- a/sw/source/core/text/porref.cxx
+++ b/sw/source/core/text/porref.cxx
@@ -65,8 +65,8 @@ SwIsoRefPortion::SwIsoRefPortion() : nViewWidth(0)
 
 KSHORT SwIsoRefPortion::GetViewWidth( const SwTxtSizeInfo &rInf ) const
 {
-    // Wir stehen zwar im const, aber nViewWidth sollte erst im letzten
-    // Moment errechnet werden:
+    // Although we are const, nViewWidth should be calculated in the last
+    // moment possible
     SwIsoRefPortion* pThis = (SwIsoRefPortion*)this;
     if( !Width() && rInf.OnWin() && SwViewOption::IsFieldShadings() &&
             !rInf.GetOpt().IsReadonly() && !rInf.GetOpt().IsPagePreview() )
diff --git a/sw/source/core/text/portab.hxx b/sw/source/core/text/portab.hxx
index bb5fe9d..7159c60 100644
--- a/sw/source/core/text/portab.hxx
+++ b/sw/source/core/text/portab.hxx
@@ -40,7 +40,7 @@ class SwTabPortion : public SwFixPortion
     const xub_Unicode cFill;
     const bool bAutoTabStop;
 
-    // Das Format() verzweigt entweder in Pre- oder PostFormat()
+    // Format() branches either into PreFormat() or PostFormat()
     sal_Bool PreFormat( SwTxtFormatInfo &rInf );
 public:
     SwTabPortion( const KSHORT nTabPos, const xub_Unicode cFill = '\0', const 
bool bAutoTab = true );
diff --git a/sw/source/core/text/portox.cxx b/sw/source/core/text/portox.cxx
index bda596e..2d8df41 100644
--- a/sw/source/core/text/portox.cxx
+++ b/sw/source/core/text/portox.cxx
@@ -65,10 +65,10 @@ SwIsoToxPortion::SwIsoToxPortion() : nViewWidth(0)
 
 KSHORT SwIsoToxPortion::GetViewWidth( const SwTxtSizeInfo &rInf ) const
 {
-    // Wir stehen zwar im const, aber nViewWidth sollte erst im letzten
-    // Moment errechnet werden:
+    // Although we are const, nViewWidth should be calculated in the last
+    // moment possible
     SwIsoToxPortion* pThis = (SwIsoToxPortion*)this;
-    // nViewWidth muss errechnet werden.
+    // nViewWidth need to be calculated
     if( !Width() && rInf.OnWin() &&
         !rInf.GetOpt().IsPagePreview() &&
             !rInf.GetOpt().IsReadonly() && SwViewOption::IsFieldShadings()   )
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx
index bb70404..5a4d712 100644
--- a/sw/source/core/text/portxt.cxx
+++ b/sw/source/core/text/portxt.cxx
@@ -35,7 +35,7 @@
 #include <SwPortionHandler.hxx>
 #include <porlay.hxx>
 #include <inftxt.hxx>
-#include <guess.hxx>    // SwTxtGuess, Zeilenumbruch
+#include <guess.hxx>    // SwTxtGuess, line break
 #include <porglue.hxx>
 #include <portab.hxx>       // pLastTab->
 #include <porfld.hxx>       // SwFldPortion
@@ -235,9 +235,9 @@ SwTxtPortion::SwTxtPortion( const SwLinePortion &rPortion )
 
 void SwTxtPortion::BreakCut( SwTxtFormatInfo &rInf, const SwTxtGuess &rGuess )
 {
-    // Das Wort/Zeichen ist groesser als die Zeile
-    // Sonderfall Nr.1: Das Wort ist groesser als die Zeile
-    // Wir kappen...
+    // The word/char is larger than the line
+    // Special case 1: The word is larger than the line
+    // We truncate ...
     const KSHORT nLineWidth = (KSHORT)(rInf.Width() - rInf.X());
     xub_StrLen nLen = rGuess.CutPos() - rInf.GetIdx();
     if( nLen )
@@ -304,8 +304,8 @@ sal_Bool lcl_HasContent( const SwFldPortion& rFld, 
SwTxtFormatInfo &rInf )
 
 sal_Bool SwTxtPortion::_Format( SwTxtFormatInfo &rInf )
 {
-    // 5744: wenn nur der Trennstrich nicht mehr passt,
-    // muss trotzdem das Wort umgebrochen werden, ansonsten return sal_True!
+    // 5744: If only the hypen does not fit anymore, we still need to wrap
+    // the word, or else return sal_True!
     if( rInf.IsUnderFlow() && rInf.GetSoftHyphPos() )
     {
         // soft hyphen portion has triggered an underflow event because
@@ -494,14 +494,13 @@ sal_Bool SwTxtPortion::Format( SwTxtFormatInfo &rInf )
  *************************************************************************/
 
 // Format end of line
-// 5083: Es kann schon manchmal unguenstige Faelle geben...
-// "vom {Nikolaus}", Nikolaus bricht um "vom " wird im Blocksatz
-// zu "vom" und " ", wobei der Glue expandiert wird, statt in die
-// MarginPortion aufzugehen.
-// rInf.nIdx steht auf dem naechsten Wort, nIdx-1 ist der letzte
-// Buchstabe der Portion.
-
-
+// 5083: We can have awkward cases e.g.:
+// "from {Santa}"
+// Santa wraps, "from " turns into "from" and " " in a justified
+// paragraph, in which the glue gets expanded instead of merged
+// with the MarginPortion.
+//
+// rInf.nIdx points to the next word, nIdx-1 is the portion's last char
 
 void SwTxtPortion::FormatEOL( SwTxtFormatInfo &rInf )
 {
@@ -517,8 +516,8 @@ void SwTxtPortion::FormatEOL( SwTxtFormatInfo &rInf )
         while( nX && nHoleLen < GetLen() && CH_BLANK == rInf.GetChar( --nX ) )
             nHoleLen++;
 
-        // Erst uns einstellen und dann Inserten, weil wir ja auch ein
-        // SwLineLayout sein koennten.
+        // First set ourselves and the insert, because there could be
+        // a SwLineLayout
         KSHORT nBlankSize;
         if( nHoleLen == GetLen() )
             nBlankSize = Width();
@@ -537,9 +536,6 @@ void SwTxtPortion::FormatEOL( SwTxtFormatInfo &rInf )
 /*************************************************************************
  *               virtual SwTxtPortion::GetCrsrOfst()
  *************************************************************************/
-
-
-
 xub_StrLen SwTxtPortion::GetCrsrOfst( const KSHORT nOfst ) const
 {
     OSL_ENSURE( !this, "SwTxtPortion::GetCrsrOfst: don't use this method!" );
@@ -549,7 +545,7 @@ xub_StrLen SwTxtPortion::GetCrsrOfst( const KSHORT nOfst ) 
const
 /*************************************************************************
  *                virtual SwTxtPortion::GetTxtSize()
  *************************************************************************/
-// Das GetTxtSize() geht davon aus, dass die eigene Laenge korrekt ist
+// The GetTxtSize() assumes that the own length is correct
 
 SwPosSize SwTxtPortion::GetTxtSize( const SwTxtSizeInfo &rInf ) const
 {
@@ -559,9 +555,6 @@ SwPosSize SwTxtPortion::GetTxtSize( const SwTxtSizeInfo 
&rInf ) const
 /*************************************************************************
  *               virtual SwTxtPortion::Paint()
  *************************************************************************/
-
-
-
 void SwTxtPortion::Paint( const SwTxtPaintInfo &rInf ) const
 {
     if (rInf.OnWin() && 1==rInf.GetLen() && 
CH_TXT_ATR_FIELDEND==rInf.GetTxt().GetChar(rInf.GetIdx()))
@@ -614,8 +607,8 @@ sal_Bool SwTxtPortion::GetExpTxt( const SwTxtSizeInfo &, 
XubString & ) const
 /*************************************************************************
  *        xub_StrLen SwTxtPortion::GetSpaceCnt()
  *              long SwTxtPortion::CalcSpacing()
- * sind fuer den Blocksatz zustaendig und ermitteln die Anzahl der Blanks
- * und den daraus resultierenden zusaetzlichen Zwischenraum
+ * Are responsible for the justified paragraph. They calculate the blank
+ * count and the resulting added space.
  *************************************************************************/
 
 xub_StrLen SwTxtPortion::GetSpaceCnt( const SwTxtSizeInfo &rInf,
@@ -627,8 +620,8 @@ xub_StrLen SwTxtPortion::GetSpaceCnt( const SwTxtSizeInfo 
&rInf,
     {
         if( !IsBlankPortion() && !InNumberGrp() && !IsCombinedPortion() )
         {
-            // Bei OnWin() wird anstatt eines Leerstrings gern mal ein Blank
-            // zurueckgeliefert, das koennen wir hier aber gar nicht gebrauchen
+            // OnWin() likes to return a blank instead of an empty string from
+            // time to time. We cannot use that here at all, however.
             sal_Bool bOldOnWin = rInf.OnWin();
             ((SwTxtSizeInfo &)rInf).SetOnWin( sal_False );
 
@@ -657,8 +650,8 @@ long SwTxtPortion::CalcSpacing( long nSpaceAdd, const 
SwTxtSizeInfo &rInf ) cons
     {
         if( !IsBlankPortion() && !InNumberGrp() && !IsCombinedPortion() )
         {
-            // Bei OnWin() wird anstatt eines Leerstrings gern mal ein Blank
-            // zurueckgeliefert, das koennen wir hier aber gar nicht gebrauchen
+            // OnWin() likes to return a blank instead of an empty string from
+            // time to time. We cannot use that here at all, however.
             sal_Bool bOldOnWin = rInf.OnWin();
             ((SwTxtSizeInfo &)rInf).SetOnWin( sal_False );
 
diff --git a/sw/source/core/text/portxt.hxx b/sw/source/core/text/portxt.hxx
index 7f9d12e..f3cf301 100644
--- a/sw/source/core/text/portxt.hxx
+++ b/sw/source/core/text/portxt.hxx
@@ -30,7 +30,7 @@
 #ifdef GCC
 #include <sys/types.h>
 #else
-#include <new.h>    //fuer size_t, FIXEDMEM aus tools
+#include <new.h>    // for size_t, FIXEDMEM from tools
 #endif
 #include <tools/mempool.hxx>
 
@@ -59,7 +59,7 @@ public:
     virtual sal_Bool GetExpTxt( const SwTxtSizeInfo &rInf, XubString &rTxt ) 
const;
     virtual long CalcSpacing( long nSpaceAdd, const SwTxtSizeInfo &rInf ) 
const;
 
-    // zaehlt die Spaces fuer Blocksatz
+    // Counts the spaces for justified paragraph
     xub_StrLen GetSpaceCnt( const SwTxtSizeInfo &rInf, xub_StrLen& rCnt ) 
const;
 
     sal_Bool CreateHyphen( SwTxtFormatInfo &rInf, SwTxtGuess &rGuess );
diff --git a/sw/source/core/text/possiz.hxx b/sw/source/core/text/possiz.hxx
index c97d122..ef56136 100644
--- a/sw/source/core/text/possiz.hxx
+++ b/sw/source/core/text/possiz.hxx
@@ -32,7 +32,7 @@
 #include <tools/gen.hxx>
 #include "txttypes.hxx"
 
-// Im Gegensazt zu den SV-Sizes ist die SwPosSize immer positiv
+// Compared to the SV sizes SwPosSize is always positive
 class SwPosSize
 {
     KSHORT nWidth;
diff --git a/sw/source/core/text/txtinit.cxx b/sw/source/core/text/txtinit.cxx
index 187a996..3681d9d 100644
--- a/sw/source/core/text/txtinit.cxx
+++ b/sw/source/core/text/txtinit.cxx
@@ -28,8 +28,8 @@
 
 
 #include "swcache.hxx"
-#include "fntcache.hxx"     // pFntCache  ( SwFont/ScrFont-PrtFont Cache )
-#include "swfntcch.hxx"     // pSwFontCache  ( SwAttrSet/SwFont Cache )
+#include "fntcache.hxx"     // pFntCache ( SwFont/ScrFont-PrtFont cache )
+#include "swfntcch.hxx"     // pSwFontCache ( SwAttrSet/SwFont cache )
 #include "txtfrm.hxx"
 #include "txtcache.hxx"
 #include "porlay.hxx"
@@ -43,10 +43,10 @@
 #include "porftn.hxx"
 #include "porhyph.hxx"
 #include "pordrop.hxx"
-#include "blink.hxx"    // Blink-Manager
-#include "init.hxx"   // Deklarationen fuer _TextInit() und _TextFinit()
+#include "blink.hxx"    // Blink manager
+#include "init.hxx"     // Declarations for _TextInit() and _TextFinit()
 #include "txtfly.hxx"   // SwContourCache
-#include "dbg_lay.hxx"  // Layout Debug Fileausgabe
+#include "dbg_lay.hxx"  // Layout Debug file output
 
 SwCache *SwTxtFrm::pTxtCache = 0;
 long SwTxtFrm::nMinPrtLine = 0;
@@ -54,22 +54,23 @@ SwContourCache *pContourCache = 0;
 SwDropCapCache *pDropCapCache = 0;
 
 IMPL_FIXEDMEMPOOL_NEWDEL( SwTxtLine )
-IMPL_FIXEDMEMPOOL_NEWDEL( SwParaPortion ) //Absaetze
-IMPL_FIXEDMEMPOOL_NEWDEL( SwLineLayout ) //Zeilen
-IMPL_FIXEDMEMPOOL_NEWDEL( SwHolePortion ) //z.B. Blanks am Zeilenende
-IMPL_FIXEDMEMPOOL_NEWDEL( SwTxtPortion ) //Attributwechsel
+IMPL_FIXEDMEMPOOL_NEWDEL( SwParaPortion ) // Paragraphs
+IMPL_FIXEDMEMPOOL_NEWDEL( SwLineLayout ) // Lines
+IMPL_FIXEDMEMPOOL_NEWDEL( SwHolePortion ) // e.g. Blanks at the line end
+IMPL_FIXEDMEMPOOL_NEWDEL( SwTxtPortion ) // Attribute change
 
 /*************************************************************************
  *                  _TextInit(), _TextFinit()
  *************************************************************************/
 
-// Werden _nur_ in init.cxx verwendet, dort stehen extern void _TextFinit()
-// und extern void _TextInit(...)
+// Are ONLY used in init.cxx.
+// There we have extern void _TextFinit()
+// and extern void _TextInit(...)
 
 void _TextInit()
 {
-    pFntCache = new SwFntCache;                     // Cache for SwSubFont -> 
SwFntObj = { Font aFont, Font* pScrFont, Font* pPrtFont, OutputDevice* 
pPrinter, ... }
-    pSwFontCache = new SwFontCache;                 // Cache for SwTxtFmtColl 
-> SwFontObj = { SwFont aSwFont, SfxPoolItem* pDefaultArray }
+    pFntCache = new SwFntCache; // Cache for SwSubFont -> SwFntObj = { Font 
aFont, Font* pScrFont, Font* pPrtFont, OutputDevice* pPrinter, ... }
+    pSwFontCache = new SwFontCache; // Cache for SwTxtFmtColl -> SwFontObj = { 
SwFont aSwFont, SfxPoolItem* pDefaultArray }
     SwCache *pTxtCache = new SwCache( 250 // Cache for SwTxtFrm -> SwTxtLine = 
{ SwParaPortion* pLine }
 #ifdef DBG_UTIL
     , "static SwTxtFrm::pTxtCache"
diff --git a/sw/source/core/text/widorp.hxx b/sw/source/core/text/widorp.hxx
index a0730d1..ac90f9f 100644
--- a/sw/source/core/text/widorp.hxx
+++ b/sw/source/core/text/widorp.hxx
@@ -55,12 +55,10 @@ public:
 
     sal_Bool IsInside( SwTxtMargin &rLine ) const;
 
-    // Um Sonderfaelle mit Ftn behandeln zu koennen.
-    // Mit SetRstHeight wird dem SwTxtFrmBreak die Resthoehe eingestellt,
-    // Um TruncLines() rufen zu koennen, ohne dass IsBreakNow() einen
-    // anderen Wert zurueckliefert.
-    // Es wird dabei davon ausgegangen, dass rLine auf der letzten Zeile
-    // steht, die nicht mehr passt.
+    // In order to be able to handle special cases with Ftn.
+    // SetRstHeight sets the rest height for SwTxtFrmBreak. This is needed
+    // to call TruncLines() without IsBreakNow() returning another value.
+    // We assume that rLine is pointing to the last non-fitting line.
 
     // OD 2004-02-27 #106629# - no longer inline
     void SetRstHeight( const SwTxtMargin &rLine );
commit 85adb267ac551f5f9ee8aaaef5fa9711fefb782d
Author: Philipp Weissenbacher <p.weissenbac...@gmail.com>
Date:   Wed Mar 28 14:30:17 2012 +0200

    Translate German comments, fix some English ones

diff --git a/sw/source/core/text/frmcrsr.cxx b/sw/source/core/text/frmcrsr.cxx
index 3d5fe6a..2f6dfc2 100644
--- a/sw/source/core/text/frmcrsr.cxx
+++ b/sw/source/core/text/frmcrsr.cxx
@@ -63,11 +63,11 @@ using namespace ::com::sun::star;
 
 
 /*
- * 1170-SurvivalKit: Wie gelangt man hinter das letzte Zeichen der Zeile.
- * - RightMargin verzichtet auf den Positionsausgleich mit -1
- * - GetCharRect liefert bei MV_RIGHTMARGIN ein GetEndCharRect
- * - GetEndCharRect setzt bRightMargin auf sal_True
- * - SwTxtCursor::bRightMargin wird per CharCrsrToLine auf sal_False gesetzt
+ * 1170-SurvivalKit: For how long do we get past the last char of the line.
+ * - RightMargin abstains from adjusting position with -1
+ * - GetCharRect returns a GetEndCharRect for MV_RIGHTMARGIN
+ * - GetEndCharRect sets bRightMargin to sal_True
+ * - SwTxtCursor::bRightMargin is set to sal_False by CharCrsrToLine
  */
 
 /*************************************************************************
@@ -77,7 +77,7 @@ using namespace ::com::sun::star;
 SwTxtFrm *GetAdjFrmAtPos( SwTxtFrm *pFrm, const SwPosition &rPos,
                           const sal_Bool bRightMargin, const sal_Bool 
bNoScroll = sal_True )
 {
-    // 8810: vgl. 1170, RightMargin in der letzten Masterzeile...
+    // 8810: vgl. 1170, RightMargin in the last master line
     const xub_StrLen nOffset = rPos.nContent.GetIndex();
     SwTxtFrm *pFrmAtPos = pFrm;
     if( !bNoScroll || pFrm->GetFollow() )
@@ -116,13 +116,13 @@ SwTxtFrm *GetAdjFrmAtPos( SwTxtFrm *pFrm, const 
SwPosition &rPos,
 
 sal_Bool lcl_ChangeOffset( SwTxtFrm* pFrm, xub_StrLen nNew )
 {
-    // In Bereichen und ausserhalb von Flies wird nicht mehr gescrollt.
+    // Do not scroll in areas and outside of flies
     OSL_ENSURE( !pFrm->IsFollow(), "Illegal Scrolling by Follow!" );
     if( pFrm->GetOfst() != nNew && !pFrm->IsInSct() )
     {
         SwFlyFrm *pFly = pFrm->FindFlyFrm();
-        // Vorsicht, wenn z.B. bei einem spaltigen Rahmen die Groesse noch 
invalide ist,
-        // duerfen wir nicht mal eben herumscrollen
+        // Attention: if e.g. in a column frame the size is still invalid
+        // we must not scroll around just like that
         if ( ( pFly && pFly->IsValid() &&
              !pFly->GetNextLink() && !pFly->GetPrevLink() ) ||
              ( !pFly && pFrm->IsInTab() ) )
@@ -186,11 +186,10 @@ SwTxtFrm *SwTxtFrm::GetFrmAtPos( const SwPosition &rPos )
  *************************************************************************/
 
 /*
- * GetCharRect() findet die Characterzelle des Characters, dass
- * durch aPos beschrieben wird. GetCrsrOfst() findet den
- * umgekehrten Weg: Von einer Dokumentkoordinate zu einem Pam.
- * Beide sind virtuell in der Framebasisklasse und werden deshalb
- * immer angezogen.
+ * GetCharRect() returns the char's char line described by aPos.
+ * GetCrsrOfst() does the reverse: It goes from a document coordinate to
+ * a Pam.
+ * Both are virtual in the frame base class and thus are redefined here.
  */
 
 sal_Bool SwTxtFrm::GetCharRect( SwRect& rOrig, const SwPosition &rPos,
@@ -201,13 +200,13 @@ sal_Bool SwTxtFrm::GetCharRect( SwRect& rOrig, const 
SwPosition &rPos,
     if( IsLocked() || IsHiddenNow() )
         return sal_False;
 
-    //Erstmal den richtigen Frm finden, dabei muss beachtet werden, dass:
-    //- die gecachten Informationen verworfen sein koennen (GetPara() == 0)
-    //- das ein Follow gemeint sein kann
-    //- das die Kette der Follows dynamisch waechst; der in den wir
-    //  schliesslich gelangen muss aber Formatiert sein.
+    // Find the right frame first. We need to keep in mind that:
+    // - the cached information could be invalid  (GetPara() == 0)
+    // - we could have a Follow
+    // - the Follow chain grows dynamically; the one we end up in
+    //   needs to be formatted
 
-    // opt: reading ahead erspart uns ein GetAdjFrmAtPos
+    // Optimisation: reading ahead saves us a GetAdjFrmAtPos
     const sal_Bool bRightMargin = pCMS && ( MV_RIGHTMARGIN == pCMS->eState );
     const sal_Bool bNoScroll = pCMS && pCMS->bNoScroll;
     SwTxtFrm *pFrm = GetAdjFrmAtPos( (SwTxtFrm*)this, rPos, bRightMargin,
@@ -292,8 +291,8 @@ sal_Bool SwTxtFrm::GetCharRect( SwRect& rOrig, const 
SwPosition &rPos,
                 SwTxtSizeInfo aInf( pFrm );
                 SwTxtCursor  aLine( pFrm, &aInf );
                 nNextOfst = aLine.GetEnd();
-                // Siehe Kommentar in AdjustFrm
-                // 1170: das letzte Zeichen der Zeile mitnehmen?
+                // See comment in AdjustFrm
+                // 1170: Include the line's last char?
                 bRet = bRightMargin ? aLine.GetEndCharRect( &rOrig, nOffset, 
pCMS, nMaxY )
                                 : aLine.GetCharRect( &rOrig, nOffset, pCMS, 
nMaxY );
             }
@@ -350,15 +349,15 @@ sal_Bool SwTxtFrm::GetCharRect( SwRect& rOrig, const 
SwPosition &rPos,
     if( bRet )
     {
         SwPageFrm *pPage = pFrm->FindPageFrm();
-        OSL_ENSURE( pPage, "Text esaped from page?" );
+        OSL_ENSURE( pPage, "Text escaped from page?" );
         const SwTwips nOrigTop = (rOrig.*fnRect->fnGetTop)();
         const SwTwips nPageTop = (pPage->Frm().*fnRect->fnGetTop)();
         const SwTwips nPageBott = (pPage->Frm().*fnRect->fnGetBottom)();
 
-        // Following situation: if the frame is in an invalid sectionframe,
-        // it's possible that the frame is outside the page. If we restrict
-        // the cursor position to the page area, we enforce the formatting
-        // of the page, of the section frame and the frame himself.
+        // We have the following situation: if the frame is in an invalid
+        // sectionframe, it's possible that the frame is outside the page.
+        // If we restrict the cursor position to the page area, we enforce
+        // the formatting of the page, of the section frame and the frame 
itself.
         if( (*fnRect->fnYDiff)( nPageTop, nOrigTop ) > 0 )
             (rOrig.*fnRect->fnSetTop)( nPageTop );
 
@@ -374,8 +373,8 @@ sal_Bool SwTxtFrm::GetCharRect( SwRect& rOrig, const 
SwPosition &rPos,
  *************************************************************************/
 
 /*
- * GetAutoPos() findet die Characterzelle des Characters, dass
- * durch aPos beschrieben wird und wird von autopositionierten Rahmen genutzt.
+ * GetAutoPos() looks up the char's char line which is described by rPos
+ * and is used by the auto-positioned frame.
  */
 
 sal_Bool SwTxtFrm::GetAutoPos( SwRect& rOrig, const SwPosition &rPos ) const
@@ -536,7 +535,7 @@ bool SwTxtFrm::GetTopOfLine( SwTwips& _onTopOfLine,
  *                      SwTxtFrm::_GetCrsrOfst()
  *************************************************************************/
 
-// Minimaler Abstand von nichtleeren Zeilen etwas weniger als 2 cm
+// Minimum distance of non-empty lines is a little less than 2 cm
 #define FILL_MIN_DIST 1100
 
 struct SwFillData
@@ -570,8 +569,8 @@ struct SwFillData
 sal_Bool SwTxtFrm::_GetCrsrOfst(SwPosition* pPos, const Point& rPoint,
                     const sal_Bool bChgFrm, SwCrsrMoveState* pCMS ) const
 {
-    // 8804: _GetCrsrOfst wird vom GetCrsrOfst und GetKeyCrsrOfst gerufen.
-    // In keinem Fall nur ein return sal_False.
+    // 8804: _GetCrsrOfst is called by GetCrsrOfst and GetKeyCrsrOfst.
+    // Never just a return sal_False.
 
     if( IsLocked() || IsHiddenNow() )
         return sal_False;
@@ -609,7 +608,7 @@ sal_Bool SwTxtFrm::_GetCrsrOfst(SwPosition* pPos, const 
Point& rPoint,
         SwTxtSizeInfo aInf( (SwTxtFrm*)this );
         SwTxtCursor  aLine( ((SwTxtFrm*)this), &aInf );
 
-        // Siehe Kommentar in AdjustFrm()
+        // See comment in AdjustFrm()
         SwTwips nMaxY = Frm().Top() + Prt().Top() + Prt().Height();
         aLine.TwipsToLine( rPoint.Y() );
         while( aLine.Y() + aLine.GetLineHeight() > nMaxY )
@@ -628,11 +627,11 @@ sal_Bool SwTxtFrm::_GetCrsrOfst(SwPosition* pPos, const 
Point& rPoint,
         if( pCMS && pCMS->eState == MV_NONE && aLine.GetEnd() == nOffset )
             ((SwCrsrMoveState*)pCMS)->eState = MV_RIGHTMARGIN;
 
-    // 6776: pPos ist ein reiner IN-Parameter, der nicht ausgewertet werden 
darf.
-    // Das pIter->GetCrsrOfst returnt aus einer Verschachtelung mit STRING_LEN.
-    // Wenn SwTxtIter::GetCrsrOfst von sich aus weitere GetCrsrOfst
-    // ruft, so aendert sich nNode der Position. In solchen Faellen
-    // darf pPos nicht berechnet werden.
+    // 6776: pPos is a pure IN parameter and must not be evaluated.
+    // pIter->GetCrsrOfst returns from a nesting with STRING_LEN.
+    // If SwTxtIter::GetCrsrOfst calls GetCrsrOfst further by itself
+    // nNode changes the position.
+    // In such cases, pPos must not be calculated.
         if( STRING_LEN != nOffset )
         {
             SwTxtNode* pTxtNd = ((SwTxtFrm*)this)->GetTxtNode();
@@ -707,11 +706,7 @@ sal_Bool SwTxtFrm::GetCrsrOfst(SwPosition* pPos, Point& 
rPoint,
  *************************************************************************/
 
 /*
- * Layout-orientierte Cursorbewegungen
- */
-
-/*
- * an den Zeilenanfang
+ * Layout-oriented cursor movement to the line start.
  */
 
 sal_Bool SwTxtFrm::LeftMargin(SwPaM *pPam) const
@@ -748,11 +743,9 @@ sal_Bool SwTxtFrm::LeftMargin(SwPaM *pPam) const
  *************************************************************************/
 
 /*
- * An das Zeilenende:Das ist die Position vor dem letzten
- * Character in der Zeile. Ausnahme: In der letzten Zeile soll
- * der Cursor auch hinter dem letzten Character stehen koennen,
- * um Text anhaengen zu koennen.
- *
+ * To the line end: That's the position before the last char of the line.
+ * Exception: In the last line, it should be able to place the cursor after
+ * the last char in order to append text.
  */
 
 sal_Bool SwTxtFrm::RightMargin(SwPaM *pPam, sal_Bool bAPI) const
@@ -774,7 +767,7 @@ sal_Bool SwTxtFrm::RightMargin(SwPaM *pPam, sal_Bool bAPI) 
const
         aLine.CharCrsrToLine(pPam->GetPoint()->nContent.GetIndex());
         nRightMargin = aLine.GetStart() + aLine.GetCurr()->GetLen();
 
-        // Harte Zeilenumbrueche lassen wir hinter uns.
+        // We skip hard line brakes
         if( aLine.GetCurr()->GetLen() &&
             CH_BREAK == aInf.GetTxt().GetChar( nRightMargin - 1 ) )
             --nRightMargin;
@@ -794,11 +787,10 @@ sal_Bool SwTxtFrm::RightMargin(SwPaM *pPam, sal_Bool 
bAPI) const
  *                      SwTxtFrm::_UnitUp()
  *************************************************************************/
 
-//Die beiden folgenden Methoden versuchen zunaechst den Crsr in die
-//nachste/folgende Zeile zu setzen. Gibt es im Frame keine vorhergehende/
-//folgende Zeile, so wird der Aufruf an die Basisklasse weitergeleitet.
-//Die Horizontale Ausrichtung des Crsr wird hinterher von der CrsrShell
-//vorgenommen.
+// The following two methods try to put the Crsr into the next/succsessive
+// line. If we do not have a preceding/successive line we forward the call
+// to the base class.
+// The Crsr's horizontal justification is done afterwards by the CrsrShell.
 
 class SwSetToRightMargin
 {
@@ -812,15 +804,15 @@ public:
 sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips nOffset,
                             sal_Bool bSetInReadOnly ) const
 {
-    // 8626: Im Notfall den RightMargin setzen.
+    // 8626: Set the RightMargin if needed
     SwSetToRightMargin aSet;
 
     if( IsInTab() &&
         pPam->GetNode( sal_True )->StartOfSectionNode() !=
         pPam->GetNode( sal_False )->StartOfSectionNode() )
     {
-        //Wenn der PaM in unterschiedlichen Boxen sitzt, so handelt es sich um
-        //eine Tabellenselektion; diese wird von der Basisklasse abgearbeitet.
+        // If the PaM is located within different boxes, we have a table 
selection,
+        // which is handled by the base class.
         return SwCntntFrm::UnitUp( pPam, nOffset, bSetInReadOnly );
     }
 
@@ -839,7 +831,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
             SwTxtSizeInfo aInf( (SwTxtFrm*)this );
             SwTxtCursor  aLine( ((SwTxtFrm*)this), &aInf );
 
-            // 8116: Flys ohne Umlauf und IsDummy(); hier wegoptimiert
+            // 8116: Optimize away flys with no flow and IsDummy()
             if( nPos )
                 aLine.CharCrsrToLine( nPos );
             else
@@ -865,7 +857,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
                 continue;
             }
 
-            // we select the target line for the cursor, in case we are in a
+            // We select the target line for the cursor, in case we are in a
             // double line portion, prev line = curr line
             if( bPrevLine && !bSecondOfDouble )
             {
@@ -881,11 +873,11 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
                 aCharBox.SSize().Width() /= 2;
                 aCharBox.Pos().X() = aCharBox.Pos().X() - 150;
 
-                // siehe Kommentar in SwTxtFrm::GetCrsrOfst()
+                // See comment in SwTxtFrm::GetCrsrOfst()
 #if OSL_DEBUG_LEVEL > 0
                 const sal_uLong nOldNode = pPam->GetPoint()->nNode.GetIndex();
 #endif
-                // Der Node soll nicht gewechselt werden
+                // The node should not be changed
                 xub_StrLen nTmpOfst = aLine.GetCrsrOfst( pPam->GetPoint(),
                                                          aCharBox.Pos(), 
sal_False );
 #if OSL_DEBUG_LEVEL > 0
@@ -893,7 +885,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
                         "SwTxtFrm::UnitUp: illegal node change" );
 #endif
 
-                // 7684: Wir stellen sicher, dass wir uns nach oben bewegen.
+                // 7684: We make sure that we move up.
                 if( nTmpOfst >= nStart && nStart && !bSecondOfDouble )
                 {
                     nTmpOfst = nStart;
@@ -912,10 +904,9 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
             break;
         } while ( sal_True );
     }
-    /* Wenn this ein Follow ist und ein Prev miszlang, so
-     * muessen wir in die letzte Zeile des Master ... und der sind wir.
-     * Oder wir sind ein Follow mit Follow, dann muessen wir uns den
-     * Master extra besorgen...
+    /* If 'this' is a follow and a prev failed, we need to go to the
+     * last line of the master, which is us.
+     * Or: If we are a follow with follow, we need to get the master.
      */
     if ( IsFollow() )
     {
@@ -926,7 +917,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
             ViewShell *pSh = getRootFrm()->GetCurrShell();
             sal_Bool bProtectedAllowed = pSh && 
pSh->GetViewOptions()->IsCursorInProtectedArea();
             const SwTxtFrm *pPrevPrev = pTmpPrev;
-            // Hier werden geschuetzte Frames und Frame ohne Inhalt ausgelassen
+            // We skip protected frames and frames without content here
             while( pPrevPrev && ( pPrevPrev->GetOfst() == nOffs ||
                    ( !bProtectedAllowed && pPrevPrev->IsProtected() ) ) )
             {
@@ -951,7 +942,7 @@ sal_Bool SwTxtFrm::_UnitUp( SwPaM *pPam, const SwTwips 
nOffset,
 // if left arrow or right arrow was pressed. The return values are:
 // nPos: the new visual position
 // bLeft: whether the break iterator has to add or subtract from the
-//          current position
+//        current position
 void lcl_VisualMoveRecursion( const SwLineLayout& rCurrLine, xub_StrLen nIdx,
                               xub_StrLen& nPos, sal_Bool& bRight,
                               sal_uInt8& nCrsrLevel, sal_uInt8 nDefaultDir )
@@ -959,7 +950,7 @@ void lcl_VisualMoveRecursion( const SwLineLayout& 
rCurrLine, xub_StrLen nIdx,
     const SwLinePortion* pPor = rCurrLine.GetFirstPortion();
     const SwLinePortion* pLast = 0;
 
-    // what's the current portion
+    // What's the current portion?
     while ( pPor && nIdx + pPor->GetLen() <= nPos )
     {
         nIdx = nIdx + pPor->GetLen();
@@ -1214,8 +1205,8 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
         pPam->GetNode( sal_True )->StartOfSectionNode() !=
         pPam->GetNode( sal_False )->StartOfSectionNode() )
     {
-        //Wenn der PaM in unterschiedlichen Boxen sitzt, so handelt es sich um
-        //eine Tabellenselektion; diese wird von der Basisklasse abgearbeitet.
+        // If the PaM is located within different boxes, we have a table 
selection,
+        // which is handled by the base class.
         return SwCntntFrm::UnitDown( pPam, nOffset, bSetInReadOnly );
     }
     ((SwTxtFrm*)this)->GetFormatted();
@@ -1251,7 +1242,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
             {
                 aCharBox.SSize().Width() /= 2;
 #if OSL_DEBUG_LEVEL > 0
-                // siehe Kommentar in SwTxtFrm::GetCrsrOfst()
+                // See comment in SwTxtFrm::GetCrsrOfst()
                 const sal_uLong nOldNode = pPam->GetPoint()->nNode.GetIndex();
 #endif
                 if ( pNextLine && ! bFirstOfDouble )
@@ -1264,7 +1255,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
                     "SwTxtFrm::UnitDown: illegal node change" );
 #endif
 
-                // 7684: Wir stellen sicher, dass wir uns nach unten bewegen.
+                // 7684: We make sure that we move down.
                 if( nTmpOfst <= nStart && ! bFirstOfDouble )
                     nTmpOfst = nStart + 1;
                 pPam->GetPoint()->nContent =
@@ -1276,7 +1267,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
                 return sal_True;
             }
             if( 0 != ( pTmpFollow = GetFollow() ) )
-            {   // geschuetzte Follows auslassen
+            {   // Skip protected follows
                 const SwCntntFrm* pTmp = pTmpFollow;
                 ViewShell *pSh = getRootFrm()->GetCurrShell();
                 if( !pSh || !pSh->GetViewOptions()->IsCursorInProtectedArea() )
@@ -1287,7 +1278,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
                         pTmpFollow = pTmpFollow->GetFollow();
                     }
                 }
-                if( !pTmpFollow ) // nur noch geschuetzte
+                if( !pTmpFollow ) // Only protected ones left
                 {
                     if ( IsVertical() )
                         ((SwTxtFrm*)this)->SwapWidthAndHeight();
@@ -1321,7 +1312,7 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
     if ( IsVertical() )
         ((SwTxtFrm*)this)->SwapWidthAndHeight();
 
-    // Bei Follows schlagen wir eine Abkuerzung
+    // We take a shortcut for follows
     if( pTmpFollow )
     {
         aCharBox.Pos().Y() = pTmpFollow->Frm().Top() + 1;
@@ -1338,19 +1329,19 @@ sal_Bool SwTxtFrm::_UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
 sal_Bool SwTxtFrm::UnitUp(SwPaM *pPam, const SwTwips nOffset,
                             sal_Bool bSetInReadOnly ) const
 {
-    /* Im CrsrSh::Up() wird CntntNode::GetFrm() gerufen.
-     * Dies liefert _immer_ den Master zurueck.
-     * Um das Cursortravelling nicht zu belasten, korrigieren wir
-     * hier im SwTxtFrm.
-     * Wir ermittelt UnitUp fuer pFrm, pFrm ist entweder ein Master (=this)
-     * oder ein Follow (!=this)
+    /* We call CntntNode::GertFrm() in CrsrSh::Up().
+     * This _always returns the master.
+     * In order to not mess with cursor travelling, we correct here
+     * in SwTxtFrm.
+     * We calculate UnitUp for pFrm. pFrm is either a master (= this) or a
+     * follow (!= this).
      */
     const SwTxtFrm *pFrm = GetAdjFrmAtPos( (SwTxtFrm*)this, 
*(pPam->GetPoint()),
                                            SwTxtCursor::IsRightMargin() );
     const sal_Bool bRet = pFrm->_UnitUp( pPam, nOffset, bSetInReadOnly );
 
-    // 8626: kein SwTxtCursor::SetRightMargin( sal_False );
-    // statt dessen steht ein SwSetToRightMargin im _UnitUp
+    // 8626: No SwTxtCursor::SetRightMargin( sal_False );
+    // Instead we have a SwSetToRightMargin in _UnitUp
     return bRet;
 }
 
@@ -1370,26 +1361,26 @@ sal_Bool SwTxtFrm::UnitDown(SwPaM *pPam, const SwTwips 
nOffset,
 
 void SwTxtFrm::FillCrsrPos( SwFillData& rFill ) const
 {
-    if( !rFill.bColumn && GetUpper()->IsColBodyFrm() ) // ColumnFrms jetzt mit 
BodyFrm
+    if( !rFill.bColumn && GetUpper()->IsColBodyFrm() ) // ColumnFrms now with 
BodyFrm
     {
         const SwColumnFrm* pTmp =
-            (SwColumnFrm*)GetUpper()->GetUpper()->GetUpper()->Lower(); // die 
1. Spalte
-        // der erste SwFrm im BodyFrm der ersten Spalte
+            (SwColumnFrm*)GetUpper()->GetUpper()->GetUpper()->Lower(); // The 
1st column
+        // The first SwFrm in BodyFrm of the first column
         const SwFrm* pFrm = ((SwLayoutFrm*)pTmp->Lower())->Lower();
         MSHORT nNextCol = 0;
-        // In welcher Spalte landen wir?
+        // In which column do we end up in?
         while( rFill.X() > pTmp->Frm().Right() && pTmp->GetNext() )
         {
             pTmp = (SwColumnFrm*)pTmp->GetNext();
-            if( ((SwLayoutFrm*)pTmp->Lower())->Lower() ) // ColumnFrms jetzt 
mit BodyFrm
+            if( ((SwLayoutFrm*)pTmp->Lower())->Lower() ) // ColumnFrms now 
with BodyFrm
             {
                 pFrm = ((SwLayoutFrm*)pTmp->Lower())->Lower();
                 nNextCol = 0;
             }
             else
-                ++nNextCol; // leere Spalten erfordern Spaltenumbrueche
+                ++nNextCol; // Empty columns require column brakes
         }
-        if( pTmp != GetUpper()->GetUpper() ) // Sind wir in einer anderen 
Spalte gelandet?
+        if( pTmp != GetUpper()->GetUpper() ) // Did we end up in another 
column?
         {
             if( !pFrm )
                 return;
@@ -1403,8 +1394,8 @@ void SwTxtFrm::FillCrsrPos( SwFillData& rFill ) const
                 while( pFrm->GetNext() && pFrm->Frm().Bottom() < rFill.Y() )
                     pFrm = pFrm->GetNext();
             }
-            // Kein Fuellen, wenn als letzter Frame in der anvisierten
-            // Spalte kein Absatz, sondern z.B. eine Tabelle steht
+            // No filling, if the last frame in the targeted column does
+            // not contain a paragraph, but e.g. a table
             if( pFrm->IsTxtFrm() )
             {
                 rFill.Fill().nColumnCnt = nNextCol;
@@ -1716,7 +1707,7 @@ static sal_Char const sDoubleSpace[] = "  ";
                     }
                 }
             }
-            // Gehen wir ueber die Unterkante der Seite/Spalte etc. hinaus?
+            // Do we extend over the page's/column's/etc. lower edge?
             const SwFrm* pUp = GetUpper();
             if( pUp->IsInSct() )
             {
_______________________________________________
Libreoffice-commits mailing list
Libreoffice-commits@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to