[PATCH] Translated German comments and removed the redundant ones in the directories accessibility to (incl.) basebmp.

Allmann-Rahn allmann-rahn at ubuntu.ubuntu-domain
Mon Aug 22 02:39:37 PDT 2011


---
 autodoc/inc/ary/ceslot.hxx                   |    2 +-
 autodoc/inc/ary_i/d_token.hxx                |    2 +-
 autodoc/source/parser/adoc/cx_a_std.cxx      |   16 +-
 autodoc/source/parser/cpp/cx_c_std.cxx       |   16 +-
 autodoc/source/parser/cpp/cx_c_sub.cxx       |    2 +-
 autodoc/source/parser/cpp/pe_funct.hxx       |   25 +-
 autodoc/source/parser/cpp/pe_vafu.hxx        |   24 +-
 autodoc/source/parser/tokens/tkpstama.cxx    |    2 +-
 autodoc/source/parser_i/idl/cx_idlco.cxx     |   18 +-
 autodoc/source/parser_i/idoc/cx_dsapi.cxx    |   16 +-
 autodoc/source/parser_i/tokens/tkpstam2.cxx  |    1 -
 automation/inc/automation/commdefines.hxx    |   33 ++--
 automation/inc/automation/communi.hxx        |   14 +-
 automation/inc/automation/simplecm.hxx       |   48 ++---
 automation/source/app/testbasi.hxx           |    8 +-
 automation/source/communi/communi.cxx        |   63 +++---
 automation/source/inc/rcontrol.hxx           |   78 ++++----
 automation/source/inc/testapp.hxx	      |   70 +++++-----
 automation/source/miniapp/testapp.hxx        |    2 +-
 automation/source/server/cmdbasestream.cxx   |   26 +-
 automation/source/server/editwin.cxx         |    2 +-
 automation/source/server/editwin.hxx         |    2 +-
 automation/source/server/prof_nul.cxx        |   15 +-
 automation/source/server/prof_usl.cxx        |   21 +-
 automation/source/server/profiler.cxx        |    6 +-
 automation/source/server/profiler.hxx        |   33 ++--
 automation/source/server/recorder.cxx        |    2 +-
 automation/source/server/retstrm.cxx         |    2 +-
 automation/source/server/server.cxx	      |   68 +++++-----
 automation/source/server/server.hxx          |    2 +-
 automation/source/server/sta_list.cxx        |   26 +-
 automation/source/server/statemnt.cxx        |  305 +++++++++++++-------------
 automation/source/server/statemnt.hxx        |   63 +++---
 automation/source/simplecm/packethandler.cxx |   37 ++--
 automation/source/testtool/cmdstrm.cxx       |   36 ++--
 automation/source/testtool/cmdstrm.hxx       |    4 +-
 automation/source/testtool/comm_bas.cxx      |  192 ++++++++--------
 automation/source/testtool/comm_bas.hxx      |   36 ++--
 automation/source/testtool/httprequest.cxx   |    2 +-
 automation/source/testtool/objtest.cxx	      |  225 ++++++++++++++++----------------
 automation/source/testtool/objtest.hxx       |   25 +-
 automation/source/testtool/tcommuni.cxx      |    6 +-
 basctl/source/basicide/basicbox.cxx          |   10 +-
 basctl/source/basicide/baside2.cxx           |   78 +++----
 basctl/source/basicide/baside2b.cxx          |   65 +++----
 basctl/source/basicide/baside3.cxx           |    4 +-
 basctl/source/basicide/basides1.cxx          |   63 +++---
 basctl/source/basicide/basides2.cxx          |    6 +-
 basctl/source/basicide/basides3.cxx          |    6 +-
 basctl/source/basicide/basidesh.cxx          |   52 ++---
 basctl/source/basicide/basobj3.cxx           |   16 +-
 basctl/source/basicide/bastype2.cxx          |   12 +-
 basctl/source/basicide/bastype2.hxx          |    6 +-
 basctl/source/basicide/bastype3.cxx          |    5 +-
 basctl/source/basicide/bastypes.cxx          |   19 +-
 basctl/source/basicide/brkdlg.cxx            |    2 +-
 basctl/source/basicide/iderdll.cxx           |   20 +-
 basctl/source/basicide/macrodlg.cxx          |   51 ++---
 basctl/source/basicide/moduldl2.cxx          |    4 +-
 basctl/source/basicide/moduldlg.cxx          |   16 +-
 basctl/source/basicide/objdlg.cxx            |    6 +-
 basctl/source/basicide/tbxctl.cxx            |    6 +-
 basctl/source/dlged/dlged.cxx                |    2 +-
 basctl/source/inc/basobj.hxx                 |    2 +-
 basctl/source/inc/bastypes.hxx               |    9 +-
 65 files changed, 973 insertions(+), 1062 deletions(-)


diff --git a/autodoc/inc/ary/ceslot.hxx b/autodoc/inc/ary/ceslot.hxx
index ae0beb2..9dcd159 100644
--- a/autodoc/inc/ary/ceslot.hxx
+++ b/autodoc/inc/ary/ceslot.hxx
@@ -41,7 +41,7 @@ namespace ary

 class Display;

-/** Unterscheidungen von Slots
+/** differentiation of Slots

     Slots:
     -   ReadWrite or ReadOnly
diff --git a/autodoc/inc/ary_i/d_token.hxx b/autodoc/inc/ary_i/d_token.hxx
index 7fed7d1..dd11336 100644
--- a/autodoc/inc/ary_i/d_token.hxx
+++ b/autodoc/inc/ary_i/d_token.hxx
@@ -248,7 +248,7 @@ class DT_SeeAlsoAtTag : public DT_AtTag
     virtual void        DisplayAt(
                             DocumentationDisplay &
                                                 o_rDisplay ) const;
-    const String  &     LinkText() const        { return sTitle; }  // Missbrauch von sTitle
+    const String  &     LinkText() const        { return sTitle; }  // abuse of sTitle
 };

 class DT_ParameterAtTag : public DT_AtTag
diff --git a/autodoc/source/parser/adoc/cx_a_std.cxx b/autodoc/source/parser/adoc/cx_a_std.cxx
index 18d11b5..a295d75 100644
--- a/autodoc/source/parser/adoc/cx_a_std.cxx
+++ b/autodoc/source/parser/adoc/cx_a_std.cxx
@@ -250,16 +250,16 @@ Context_AdocStd::PerformStatusFunction( uintt               i_nStatusSignal,
 void
 Context_AdocStd::SetupStateMachine()
 {
-    // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
-//  const INT16 bas = 0;        // Base-Status
-    const INT16 wht = 1;        // Whitespace-Status
-    const INT16 awd = 2;        // Any-Word-Read-Status
+    // special array statuses (no tokenfinish or change of context):
+//  const INT16 bas = 0;        // base-status
+    const INT16 wht = 1;        // whitespace-status
+    const INT16 awd = 2;        // any-word-read-status

-    // Kontextwechsel-Stati:
+    // change of context statuses
     const INT16 goto_CheckStar = 3;
     const INT16 goto_AtTag = 4;

-    // Tokenfinish-Stati:
+    // tokenfinish statuses:
     const INT16 finError = 5;
 //  const INT16 finIgnore = 6;
     const INT16 finEol = 7;
@@ -267,7 +267,7 @@ Context_AdocStd::SetupStateMachine()
     const INT16 finAnyWord = 9;
     const INT16 finWhitespace = 10;

-    // Konstanten zur Benutzung in der Tabelle:
+    // constants for use in the table:
     const INT16 fof = finEof;
     const INT16 err = finError;
     const INT16 faw = finAnyWord;
@@ -361,7 +361,7 @@ Context_AdocStd::SetupStateMachine()
     DYN StmBoundsStatus *   dpBst_finWhitespace
             = new StmBoundsStatus( *this, *this, nF_fin_Whitespace, true);

-    // dpMain aufbauen:
+    // construct dpMain:
     aStateMachine.AddStatus(dpStatusTop);
     aStateMachine.AddStatus(dpStatusWhite);
     aStateMachine.AddStatus(dpStatusWord);
diff --git a/autodoc/source/parser/cpp/cx_c_std.cxx b/autodoc/source/parser/cpp/cx_c_std.cxx
index 73eed71..c3710d6 100644
--- a/autodoc/source/parser/cpp/cx_c_std.cxx
+++ b/autodoc/source/parser/cpp/cx_c_std.cxx
@@ -239,12 +239,12 @@ Context_CppStd::PerformStatusFunction( uintt                    i_nStatusSignal,
 void
 Context_CppStd::SetupStateMachine()
 {
-    // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
-//  const INT16 top = 0;        // Top-Status
-    const INT16 wht = 1;        // Whitespace-überlese-Status
-    const INT16 bez = 2;        // Bezeichner-lese-Status
+    // special array statuses (no tokenfinish or change of context):
+//  const INT16 top = 0;        // top status
+    const INT16 wht = 1;        // skip whitespace status
+    const INT16 bez = 2;        // read identifier status

-    // Tokenfinish-Stati:
+    // tokenfinish statuses:
     const INT16 finError = 3;
     const INT16 finIgnore = 4;
     const INT16 finBezeichner = 5;
@@ -255,7 +255,7 @@ Context_CppStd::SetupStateMachine()
     const INT16 finEOL = 10;
     const INT16 finEOF = 11;

-    // Kontextwechsel-Stati:
+    // change of context statuses:
     const INT16 gotoComment = 12;
     const INT16 gotoDocu = 13;
     const INT16 gotoPreprocessor = 14;
@@ -264,7 +264,7 @@ Context_CppStd::SetupStateMachine()
     const INT16 gotoConstNumeric = 17;
     const INT16 gotoUnblockMacro = 18;

-    // Abbreviations to be used in status tables:
+    // abbreviations to be used in status tables:
     const INT16 err = finError;
     const INT16 fig = finIgnore;
     const INT16 fbz = finBezeichner;
@@ -378,7 +378,7 @@ Context_CppStd::SetupStateMachine()
     DYN StmBoundsStatus *   dpBst_gotoUnblockMacro
             = new StmBoundsStatus( *this, *pContext_UnblockMacro, nF_goto_UnblockMacro, false );

-    // dpMain aufbauen:
+    // construct dpMain:
     aStateMachine.AddStatus(dpStatusTop);

     aStateMachine.AddStatus(dpStatusWhite);
diff --git a/autodoc/source/parser/cpp/cx_c_sub.cxx b/autodoc/source/parser/cpp/cx_c_sub.cxx
index 76e5779..fbdd505 100644
--- a/autodoc/source/parser/cpp/cx_c_sub.cxx
+++ b/autodoc/source/parser/cpp/cx_c_sub.cxx
@@ -144,7 +144,7 @@ Context_ConstNumeric::ReadCharChain(CharacterSource & io_rText)
             if (cNext == '+' OR cNext == '-')
                 cNext = io_rText.MoveOn();
         }   // endif
-    } while (isalnum(cNext) OR cNext == '.');     // Reicht aus, wenn Zahlen korrekt geschrieben sind
+    } while (isalnum(cNext) OR cNext == '.');     // suffices, if the numbers are spelled correctly
     SetNewToken(new Tok_Constant(io_rText.CutToken()));
 }

diff --git a/autodoc/source/parser/cpp/pe_funct.hxx b/autodoc/source/parser/cpp/pe_funct.hxx
index 20d8b5e..2f6a183 100644
--- a/autodoc/source/parser/cpp/pe_funct.hxx
+++ b/autodoc/source/parser/cpp/pe_funct.hxx
@@ -219,16 +219,16 @@ PE_Function::Result_WithImplementation() const



-/*  // Overview of Stati
+/*  // Overview of statuses

 Undecided
 ---------

-start           // vor und während storage class specifiern
+start           // before and inside storage class specifiers

 ->Typ

-expectName      // Typ ist da
+expectName      // type is there

 afterName

@@ -238,18 +238,17 @@ afterName
 Variable
 --------

-start           // vor und während storage class specifiern
+start           // before and inside storage class specifiers

 ->Typ

-expectName      // Typ ist da  -> im Falle von '(': notyetimplemented
+expectName      // type is there  -> in case of '(': notyetimplemented
 afterName

 expectSize      // after [
 expectFinish
-                // vor ; oder ,
-expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
-
+                // before ; or ,
+expectNextVarName  // in contrast to expectName here can also be a * or &



@@ -257,13 +256,13 @@ expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
 Function
 --------

-start               // vor und während storage class specifiern
+start               // before and inside storage class specifiers

 ->Typ

-expectName          // Typ ist da
-expectBracket       // Nach Name
-expectParameter     // nach ( oder ,
+expectName          // type is there
+expectBracket       // after name
+expectParameter     // after ( or ,
 -> Parameter
 after Parameters    // before const, volatile throw or = 0.
 after throw         // expect (
@@ -271,7 +270,7 @@ expectException     // after (
 after exceptions    // = 0 oder ; oder ,


-expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
+expectNextVarName  // in contrast to expectName here can also be a * or &



diff --git a/autodoc/source/parser/cpp/pe_vafu.hxx b/autodoc/source/parser/cpp/pe_vafu.hxx
index c31bbb5..0fa760c 100644
--- a/autodoc/source/parser/cpp/pe_vafu.hxx
+++ b/autodoc/source/parser/cpp/pe_vafu.hxx
@@ -223,12 +223,12 @@ PE_VarFunc::Result_CeType() const
 #endif


-/*  // Overview of Stati
+/*  // Overview of statuses

 Undecided
 ---------

-start           // vor und während storage class specifiern
+start           // before and inside storage class specifiers
     any         ->stay
     operaator   ->goto Function

@@ -246,17 +246,17 @@ afterName       ->goto Variable or Function
 Variable
 --------

-start           // vor und während storage class specifiern
+start           // before and inside storage class specifiers

 ->Typ

-expectName      // Typ ist da  -> im Falle von '(': notyetimplemented
+expectName      // type is there  -> in case of '(': notyetimplemented
 afterName

 expectSize      // after [
 expectFinish
-                // vor ; oder ,
-expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
+                // before ; or ,
+expectNextVarName  // in contrast to expectName here can also be a * or &



@@ -265,21 +265,21 @@ expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
 Function
 --------

-start               // vor und während storage class specifiern
+start               // before and inside storage class specifiers

 ->Typ

-expectName          // Typ ist da
-expectBracket       // Nach Name
-expectParameter     // nach ( oder ,
+expectName          // type is there
+expectBracket       // after name
+expectParameter     // after ( or ,
 -> Parameter
 after Parameters    // before const, volatile throw or = 0.
 after throw         // expect (
 expectException     // after (
-after exceptions    // = 0 oder ; oder ,
+after exceptions    // = 0 or ; or ,


-expectNextVarName  // anders als bei expectName kann hier auch * oder & kommen
+expectNextVarName  // in contrast to expectName here can also be a * or &



diff --git a/autodoc/source/parser/tokens/tkpstama.cxx b/autodoc/source/parser/tokens/tkpstama.cxx
index aefe72c..f3e88b3 100644
--- a/autodoc/source/parser/tokens/tkpstama.cxx
+++ b/autodoc/source/parser/tokens/tkpstama.cxx
@@ -71,7 +71,7 @@ StateMachine::AddToken( const char *        in_sToken,
     if (csv::no_str(in_sToken))
         return;

-    // Durch existierende Stati durchhangeln:
+
     nCurrentStatus = 0;
     nPeekedStatus = 0;

diff --git a/autodoc/source/parser_i/idl/cx_idlco.cxx b/autodoc/source/parser_i/idl/cx_idlco.cxx
index 42ace94..4e1f1da 100644
--- a/autodoc/source/parser_i/idl/cx_idlco.cxx
+++ b/autodoc/source/parser_i/idl/cx_idlco.cxx
@@ -308,12 +308,12 @@ Context_UidlCode::PerformStatusFunction( uintt              i_nStatusSignal,
 void
 Context_UidlCode::SetupStateMachine()
 {
-    // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
-//  const INT16 top = 0;        // Top-Status
-    const INT16 wht = 1;        // Whitespace-überlese-Status
-    const INT16 bez = 2;        // Bezeichner-lese-Status
+    // special array statuses (no tokenfinish or change of context):
+//  const INT16 top = 0;        // top status
+    const INT16 wht = 1;        // skip whitespace status
+    const INT16 bez = 2;        // read identifier status

-    // Tokenfinish-Stati:
+    // tokenfinish statuses:
     const INT16 finErr = 3;
     const INT16 finIgn = 4;
     const INT16 finBez = 5;
@@ -322,7 +322,7 @@ Context_UidlCode::SetupStateMachine()
     const INT16 finEOL = 8;
     const INT16 finEOF = 9;

-    // Kontextwechsel-Stati:
+    // change of context statuses:
     const INT16 gotoMld = 10;
     const INT16 gotoSld = 11;
     const INT16 gotoMlc = 12;
@@ -330,7 +330,7 @@ Context_UidlCode::SetupStateMachine()
     const INT16 gotoPrp = 14;
     const INT16 gotoAsg = 15;

-    // Konstanten zur Benutzung in der Tabelle:
+    // constants for use in the table:
     const INT16 err = finErr;
     const INT16 fbz = finBez;
     const INT16 fig = finIgn;
@@ -338,7 +338,7 @@ Context_UidlCode::SetupStateMachine()
 //  const INT16 fkw = finKeyw;
 //  const INT16 fpc = finPunct;

-    /// Die '0'en werden spaeter durch AddToken() ersetzt.
+    /// '0's are going to be replaced by AddToken() later

     const INT16 A_nTopStatus[C_nStatusSize] =
     //  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
@@ -435,7 +435,7 @@ Context_UidlCode::SetupStateMachine()
     DYN StmBoundsStatu2 *   dpBst_gotoAsg
             = new StmBoundsStatu2( *this, *dpContext_Assignment, nF_goto_Assignment, false );

-    // dpMain aufbauen:
+    // construct dpMain:
     aStateMachine.AddStatus(dpStatusTop);

     aStateMachine.AddStatus(dpStatusWhite);
diff --git a/autodoc/source/parser_i/idoc/cx_dsapi.cxx b/autodoc/source/parser_i/idoc/cx_dsapi.cxx
index b1cf5fd..662af48 100644
--- a/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+++ b/autodoc/source/parser_i/idoc/cx_dsapi.cxx
@@ -279,12 +279,12 @@ Context_Docu::PerformStatusFunction( uintt              i_nStatusSignal,
 void
 Context_Docu::SetupStateMachine()
 {
-    // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
-//  const INT16 bas = 0;        // Base-Status
-    const INT16 wht = 1;        // Whitespace-overlook-Status
-    const INT16 awd = 2;        // Any-Word-Read-Status
+    // special array statuses (no tokenfinish or change of context):
+//  const INT16 bas = 0;        // base status
+    const INT16 wht = 1;        // skip whitespace status
+    const INT16 awd = 2;        // any word read status

-    // Kontextwechsel-Stati:
+    // change of context statuses:
     const INT16 goto_EoHtml = 3;
     const INT16 goto_EoXmlConst = 4;
     const INT16 goto_EoXmlLink_BeginTag = 5;
@@ -293,7 +293,7 @@ Context_Docu::SetupStateMachine()
     const INT16 goto_EoXmlFormat_EndTag = 8;
     const INT16 goto_CheckStar = 9;

-    // Tokenfinish-Stati:
+    // tokenfinish statuses:
     const INT16 finError = 10;
 //  const INT16 finIgnore = 11;
     const INT16 finEof = 12;
@@ -303,7 +303,7 @@ Context_Docu::SetupStateMachine()
 //  const INT16 finComma = 16;
     const INT16 finWhite = 17;

-    // Konstanten zur Benutzung in der Tabelle:
+    // constants for use in the table:
     const INT16 ght = goto_EoHtml;
 /*
     const INT16 gxc = goto_EoXmlConst;
@@ -435,7 +435,7 @@ Context_Docu::SetupStateMachine()
             = new StmBoundsStatu2( *this, *this, nF_fin_White, false);


-    // dpMain aufbauen:
+    // construct dpMain:
     aStateMachine.AddStatus(dpStatusTop);
     aStateMachine.AddStatus(dpStatusWhite);
     aStateMachine.AddStatus(dpStatusWord);
diff --git a/autodoc/source/parser_i/tokens/tkpstam2.cxx b/autodoc/source/parser_i/tokens/tkpstam2.cxx
index 90978c1..97b0d72 100644
--- a/autodoc/source/parser_i/tokens/tkpstam2.cxx
+++ b/autodoc/source/parser_i/tokens/tkpstam2.cxx
@@ -72,7 +72,6 @@ StateMachin2::AddToken( const char *        in_sToken,
     if (csv::no_str(in_sToken))
         return;

-    // Durch existierende Stati durchhangeln:
     nCurrentStatus = 0;
     nPeekedStatus = 0;


diff --git a/automation/inc/automation/commdefines.hxx b/automation/inc/automation/commdefines.hxx
index 24ca058..7b6d62b 100644
--- a/automation/inc/automation/commdefines.hxx
+++ b/automation/inc/automation/commdefines.hxx
@@ -91,29 +91,28 @@
 #endif // OSL_LITENDIAN

 /**
-    Es gibt zwei arten von Datenpaketen
-    die erste enthält in den ersten 4 Byte die Längenangabe und in den Darauffolgenden die Daten
-    Die Längenangabe bezieht sich nur auf die Daten ohne die Längenangabe selbst.
+    There are two types of data packages:
+    The first one contains in the first 4 bytes the length information and in the following the data.
+    The length information refers to the data only, without the length information itself.

-    Die Zweite Art von Datenpaketen enthält Header mit weitere Informationen
-    wie unten beschrieben.
+    The second type of data packages contains headers with further information as described below.

-    Umgeschaltet wird mit dem Boolean bUseMultiChannel im Konstruktor des Managers.
+    It's switched with the Boolean bUseMultiChanell in the manager's constructor.
 **/
 /**
-Defines für Header Typen:
+Defines for header types:

-Allgemeiner Header:
-        Byte    Länge       Inhalt
-        0..3        4       Länge des Paketes ohne diese 4 Byte
-        4           1       Prüfsumme über die Länge. Stimmt sie nicht wird die Verbindung geschlossen
-        5..6        2       Länge des Headers ohne diese 2 Byte
-        7..8        2       Typ des Headers
+general header:
+        bytes  length       content
+        0..3        4       the package's length without these 4 bytes
+        4           1       Checksum concerning the length. If it's incorrect, the connection is closed.
+        5..6        2       length of the header without these 2 bytes
+        7..8        2       type of the header

 CH_SimpleMultiChannel:
-        9..10       2       Channel
+        9..10       2       channel
 CH_Handshake                Internal Use ONLY
-                            Keine Weiteren Daten!
+                            No further data!

 **/
 typedef comm_UINT16 CMProtocol;
@@ -130,8 +129,8 @@ typedef comm_UINT16 CommunicationOption;
 #define CH_SimpleMultiChannel       0x0001
 #define CH_Handshake                0x0002

-#define CH_REQUEST_HandshakeAlive   ((HandshakeType)0x0101) /// Fordert eine Alive Antwort an
-#define CH_RESPONSE_HandshakeAlive  ((HandshakeType)0x0102) /// Alive Antwort
+#define CH_REQUEST_HandshakeAlive   ((HandshakeType)0x0101) /// aks for alive reply
+#define CH_RESPONSE_HandshakeAlive  ((HandshakeType)0x0102) /// alive reply

 /**
     Announce supported options:
diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
index 68cb3cb..c416d77 100644
--- a/automation/inc/automation/communi.hxx
+++ b/automation/inc/automation/communi.hxx
@@ -58,8 +58,8 @@ protected:
     virtual void CallConnectionOpened( CommunicationLink* pCL );
     virtual void CallConnectionClosed( CommunicationLink* pCL );
     CommunicationLinkList *ActiveLinks;
-    CommunicationLinkList *InactiveLinks;       /// Hier sind die CommunicationLinks drin, die sich noch nicht selbst abgemeldet haben.
-                                                /// allerdings schon ein StopCommunication gekriegt haben, bzw ein ConnectionTerminated
+    CommunicationLinkList *InactiveLinks;       /// CommunicationLinks that have not yet logged off themselves but already have received
+                                                /// a StopCommunication or a ConnectionTerminated
     virtual void DestroyingLink( CommunicationLink *pCL );

     sal_Bool bGracefullShutdown;
@@ -86,7 +86,7 @@ public:
     virtual sal_Bool IsCommunicationError();
     virtual sal_Bool DoTransferDataStream( SvStream *pDataStream, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );

-    // Diese sind Virtuelle Links!!!!
+    // These are virtual links!
     virtual long ConnectionClosed( void* = NULL );
     virtual long DataReceived( void* = NULL );

@@ -102,8 +102,8 @@ protected:
     virtual sal_Bool ShutdownCommunication();
     sal_uLong nConnectionClosedEventId;
     sal_uLong nDataReceivedEventId;
-    osl::Mutex aMConnectionClosed;  // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
-    osl::Mutex aMDataReceived;      // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+    osl::Mutex aMConnectionClosed;  // necessary because no event can be managed before the variable is set
+    osl::Mutex aMDataReceived;      // necessary because no event can be managed before the variable is set
     virtual void WaitForShutdown();

     DECL_LINK( ShutdownLink, void* );
@@ -150,11 +150,11 @@ private:
     sal_uLong nPortToListen;
     sal_uInt16 nMaxConnections;
     sal_uLong nAddConnectionEventId;
-    osl::Mutex aMAddConnection; // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+    osl::Mutex aMAddConnection; // necessary because no event can be managed before the variable is set
     void CallInfoMsg( InfoString aMsg ){ pMyServer->CallInfoMsg( aMsg ); }
     CM_InfoType GetInfoType(){ return pMyServer->GetInfoType(); }

-    // Diese beiden werden zum Transport der Connection vom Thread zum Mainthread verwendet.
+    // these are used for the connection's transport from the thread to the mainthread
     CommunicationLinkRef xmNewConnection;
     DECL_LINK( AddConnection, void* );
 };
diff --git a/automation/inc/automation/simplecm.hxx b/automation/inc/automation/simplecm.hxx
index 9a5211b..7753fc1 100644
--- a/automation/inc/automation/simplecm.hxx
+++ b/automation/inc/automation/simplecm.hxx
@@ -37,7 +37,7 @@

 #include <automation/commdefines.hxx>

-// CM steht f�r CommunicationManager
+// CM stands for CommunicationManager
 #define CM_UNLIMITED_CONNECTIONS    0xffff

 typedef sal_uInt16 CM_NameType;
@@ -45,7 +45,7 @@ typedef sal_uInt16 CM_NameType;
 #define CM_FQDN     ( (CM_NameType) 02 )

 typedef sal_uInt16 CM_InfoType;
-// nur eines dieser 3 defines darf verwendet werden
+// only one of these three defines may be used
 #define CM_NO_TEXT      ( (CM_InfoType) 01 )
 #define CM_SHORT_TEXT   ( (CM_InfoType) 02 )
 #define CM_VERBOSE_TEXT ( (CM_InfoType) 03 )
@@ -122,9 +122,9 @@ protected:
     friend class CommunicationManager;
     friend class MultiCommunicationManager;
     friend class CommunicationManagerServerAcceptThread;
-    // Darf nicht abger�umt werden zwischen Empfang des Streams und ende des Callbacks
+    // may not be stopped between the stream's reception and the callback's end

-protected:  // so da� nur �ber Ref gel�scht werden kann
+protected:  // so that it can only be deleted via Ref
     virtual ~CommunicationLink();
     void InvalidateManager() { pMyManager = NULL; }

@@ -137,13 +137,10 @@ public:
     virtual sal_Bool IsCommunicationError()=0;
     CommunicationManager* GetCommunicationManager(){ return pMyManager; }

-//  Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
     virtual ByteString GetCommunicationPartner( CM_NameType eType )=0;

-//  Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
     virtual ByteString GetMyName( CM_NameType eType )=0;

-//  Liefert einen neuen Stream zum Versenden von Daten.
     virtual SvStream* GetBestCommunicationStream()=0;

     /** will call virtual function DoTransferDataStream to do actual work
@@ -151,20 +148,20 @@ public:
     **/
     sal_Bool TransferDataStream( SvStream *pDataStream, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );

-    // Liefert die ID, die vom Sender angegeben wurde.
-    // Dadurch lassen sich virtuelle Kommunikationen �ber einen physikalischen Link realisiren.
-    // Da die Kommunikation zu �lteren Versionen kompatibel bleiben mu�, mu� der Empf�nger raten,
-    // die neue oder die alte verwendet wird, da sich der Kopf eines Auftrages dann �ndert.
+    // delivers the ID that is named by the server
+    // Due to that virtual communications over a physical link can be realised.
+    // Because the communication must remain compatible to older versions the receiver must guess whether
+    // the new or the old one is used because the order's head changes then
     sal_uInt16 GetProtocol(){ return nServiceProtocol; }

-    // Der Stream wird hier �bergeben. Der Aufrufer ist f�r dessen L�schung zust�ndig
-    // Die Methode MUSS gerufen werden, da sonst keine weiteren Daten empfangen werden.
+    // Commits the stream. The caller is responsible for the deletion.
+    // The method must be called because there would be no further data received otherwise.
     SvStream* GetServiceData(){ SvStream *pTemp = pServiceData; pServiceData = NULL; return pTemp; }

-    /// Erm�glicht das Ausl�sen des n�chsten Callbacks. Wird auch Implizit gerufen.
+    /// Allows for the release of the next callbacks. Is also called implicitly.
     void FinishCallback(){ bIsInsideCallback = sal_False; }

-    /// Syncrones Empfangen der Daten. Nur f�r Kommandozeile, sonst leer implementiert
+    /// Synchronous reception of the data. Only for command line - empty implementation for other uses.
     virtual sal_Bool ReceiveDataStream(){ return sal_False; }

     /// Statistics
@@ -178,7 +175,7 @@ protected:
     void CallInfoMsg( InfoString aMsg );
     CM_InfoType GetInfoType();
     CommunicationManager *pMyManager;
-// Diese Methoden werden im Main Kontext gerufen und an den Manager weitergereicht.
+// These methods are called in the main context and are handed over to the manager.
     virtual DECL_LINK( ConnectionClosed, void* = NULL );
     virtual DECL_LINK( DataReceived, void* = NULL );

@@ -188,7 +185,7 @@ protected:
     sal_uInt16 nServiceProtocol;
     sal_uInt16 nServiceHeaderType;

-    /// Verhindert das vorzeitige Ausl�sen des n�chsten Callbacks.
+    /// Prevents the early release of the next callback.
     void StartCallback(){ bIsInsideCallback = sal_True; }
     sal_Bool bIsInsideCallback;

@@ -227,19 +224,18 @@ public:
     virtual sal_Bool StartCommunication()=0;
     virtual sal_Bool StartCommunication( String aApp, String aParams );
     virtual sal_Bool StartCommunication( ByteString aHost, sal_uLong nPort );
-    virtual sal_Bool StopCommunication()=0;     // H�lt alle CommunicationLinks an
+    virtual sal_Bool StopCommunication()=0;
     virtual sal_Bool IsCommunicationRunning() { return bIsCommunicationRunning; }
 //  virtual sal_Bool IsCommunicationError();

-//  Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
+
     virtual ByteString GetMyName( CM_NameType eType );

-    virtual sal_Bool IsLinkValid( CommunicationLink* pCL )=0;   // Notwendig f�r call im Destruktor
+    virtual sal_Bool IsLinkValid( CommunicationLink* pCL )=0;   // necessary for call in destructor

     virtual sal_uInt16 GetCommunicationLinkCount()=0;
     virtual CommunicationLinkRef GetCommunicationLink( sal_uInt16 nNr )=0;

-    // Liefert den letzten neuen Link oder NULL wenn dieser schon wieder geschlossen ist.
     CommunicationLinkRef GetLastNewLink() { return xLastNewLink; }

     void SetConnectionOpenedHdl( Link lConnectionOpened ){ mlConnectionOpened = lConnectionOpened; }
@@ -255,8 +251,8 @@ public:
     const ByteString& GetApplication() { return maApplication; }

 protected:
-    // Diese Methoden werden innerhalb gerufen. Sie erledigen eventuelles Housekeeping
-    // und rufen dann die entsprechende Methode
+    // These methods are called inside. They care for housekeeping if applicable
+    // and call the respective method then.
     virtual void CallConnectionOpened( CommunicationLink* pCL );
     virtual void CallConnectionClosed( CommunicationLink* pCL );
     void CallDataReceived( CommunicationLink* pCL );
@@ -264,7 +260,7 @@ protected:

     CM_InfoType nInfoType;

-    //  Diese Routinen rufen den Link oder sind �berladen
+    //  These routines call the link or are overloaded.
     virtual void ConnectionOpened( CommunicationLink* pCL ){ mlConnectionOpened.Call( pCL ); }
     virtual void ConnectionClosed( CommunicationLink* pCL ){ mlConnectionClosed.Call( pCL ); }
     virtual void DataReceived( CommunicationLink* pCL ){ mlDataReceived.Call( pCL ); }
@@ -272,7 +268,7 @@ protected:

     sal_Bool bIsCommunicationRunning;

-    virtual void DestroyingLink( CommunicationLink *pCL )=0;    // Link tr�gt sich im Destruktor aus
+    virtual void DestroyingLink( CommunicationLink *pCL )=0;

 private:
     ByteString maApplication;
@@ -289,7 +285,7 @@ class ICommunicationManagerClient
 {
     friend class CommonSocketFunctions;
 protected:
-    virtual sal_Bool RetryConnect() { return sal_False; }   // Kann dann eventuell die Applikation starten
+    virtual sal_Bool RetryConnect() { return sal_False; }   // might be able to start the application
 };

 class TCPIO;
diff --git a/automation/source/app/testbasi.hxx b/automation/source/app/testbasi.hxx
index 2d8cbb5..c21f2d5 100644
--- a/automation/source/app/testbasi.hxx
+++ b/automation/source/app/testbasi.hxx
@@ -48,13 +48,13 @@ public:
     sal_Bool Compile( SbModule* );
     static MyBasic* CreateMyBasic();

-    // nicht mit #ifdefs klammern, da diese Headerdatei für testtool und basic
-    // gleichermaßen verwendet wird.
+    // don't surround with #ifdefs because this header file is
+    // used for testtool and basic as well
     DECL_LINK( CErrorImpl, ErrorEntry* );
-//  SbxObject *pTestObject;         // für das Testtool; ansonsten NULL
+//  SbxObject *pTestObject;         // for testtool; NULL otherwise

     void LoadIniFile();
-    SbTextType GetSymbolType( const String &Symbol, sal_Bool bWasTTControl );   // Besimmt den erweiterten Symboltyp für das Syntaxhighlighting
+    SbTextType GetSymbolType( const String &Symbol, sal_Bool bWasTTControl );
     virtual const String GetSpechialErrorText();
     virtual void ReportRuntimeError( AppBasEd *pEditWin );
     virtual void DebugFindNoErrors( sal_Bool bDebugFindNoErrors );
diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
index db319e2..5c9b1d0 100644
--- a/automation/source/communi/communi.cxx
+++ b/automation/source/communi/communi.cxx
@@ -44,8 +44,8 @@
 #include <automation/communi.hxx>


-/*  Um den Destruktor protected zu machen wurde unten das delete entfernt.
-    Die Methode wird ohnehin hucht benutzt.
+/*  The delete below has been removed to make the destructor protected.
+    The method isn't used anyway.
 //              delete *((AE*)pData+n);
 */

@@ -67,7 +67,7 @@ _SV_SEEK_PTR( nm, AE )

 SV_IMPL_PTRARR_SORT( CommunicationLinkList, CommunicationLink* );

-osl::Mutex *pMPostUserEvent=NULL;       // Notwendig, da nicht threadfest
+osl::Mutex *pMPostUserEvent=NULL;       // necessary because not threadproof

 CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, osl::StreamSocket* pSocket )
 : SimpleCommunicationLinkViaSocket( pMan, pSocket )
@@ -126,10 +126,10 @@ sal_Bool CommunicationLinkViaSocket::ShutdownCommunication()
         if ( GetStreamSocket() )
             GetStreamSocket()->shutdown();

-        if ( GetStreamSocket() )    // Mal wieder nach oben verschoben, da sonst nicht vom Read runtergesprungen wird.
+        if ( GetStreamSocket() )
             GetStreamSocket()->close();

-        resume();   // So da� das run auch die Schleife verlassen kann
+        resume();

         join();

@@ -137,7 +137,7 @@ sal_Bool CommunicationLinkViaSocket::ShutdownCommunication()
         SetStreamSocket( NULL );
         delete pTempSocket;

-//      ConnectionClosed();     Wird am Ende des Thread gerufen
+//      ConnectionClosed();     is being called at the end of a thread

     }
     else
@@ -205,7 +205,7 @@ void CommunicationLinkViaSocket::run()
             continue;

         TimeValue sNochEins = {0, 1000000};
-        while ( schedule() && bIsInsideCallback )   // solange der letzte Callback nicht beendet ist
+        while ( schedule() && bIsInsideCallback )
             wait( sNochEins );
         SetNewPacketAsCurrent();
         StartCallback();
@@ -216,7 +216,7 @@ void CommunicationLinkViaSocket::run()
         }
     }
     TimeValue sNochEins = {0, 1000000};
-    while ( schedule() && bIsInsideCallback )   // solange der letzte Callback nicht beendet ist
+    while ( schedule() && bIsInsideCallback )
         wait( sNochEins );

     StartCallback();
@@ -235,23 +235,23 @@ sal_Bool CommunicationLinkViaSocket::DoTransferDataStream( SvStream *pDataStream
     return SimpleCommunicationLinkViaSocket::DoTransferDataStream( pDataStream, nProtocol );
 }

-/// Dies ist ein virtueller Link!!!
+/// This is a virtual link!
 long CommunicationLinkViaSocket::ConnectionClosed( void* EMPTYARG )
 {
     {
         osl::MutexGuard aGuard( aMConnectionClosed );
-        nConnectionClosedEventId = 0;   // Achtung!! alles andere mu� oben gemacht werden.
+        nConnectionClosedEventId = 0;   // Attention!! everything else must be done above.
     }
     ShutdownCommunication();
     return CommunicationLink::ConnectionClosed( );
 }

-/// Dies ist ein virtueller Link!!!
+/// This is a virtual link!
 long CommunicationLinkViaSocket::DataReceived( void* EMPTYARG )
 {
     {
         osl::MutexGuard aGuard( aMDataReceived );
-        nDataReceivedEventId = 0;   // Achtung!! alles andere mu� oben gemacht werden.
+        nDataReceivedEventId = 0;   // Attention!! everything else must be done above.
     }
     return CommunicationLink::DataReceived( );
 }
@@ -297,8 +297,7 @@ MultiCommunicationManager::~MultiCommunicationManager()
         }
     }

-    // Alles weghauen, was nicht rechtzeitig auf die B�ume gekommen ist
-    // Was bei StopCommunication �brig geblieben ist, da es sich asynchron austragen wollte
+
     sal_uInt16 i = ActiveLinks->Count();
     while ( i-- )
     {
@@ -309,9 +308,7 @@ MultiCommunicationManager::~MultiCommunicationManager()
     }
     delete ActiveLinks;

-    /// Die Links zwischen ConnectionClosed und Destruktor.
-    /// Hier NICHT gerefcounted, da sie sich sonst im Kreis festhaten w�rden,
-    /// da die Links sich erst in ihrem Destruktor austragen
+
     i = InactiveLinks->Count();
     while ( i-- )
     {
@@ -324,15 +321,13 @@ MultiCommunicationManager::~MultiCommunicationManager()

 sal_Bool MultiCommunicationManager::StopCommunication()
 {
-    // Alle Verbindungen abbrechen
-    // ConnectionClosed entfernt die Links aus der Liste. Je nach Implementation syncron
-    // oder asyncron. Daher Von oben nach unten Abr�umen, so da� sich nichts verschiebt.
+
     sal_uInt16 i = ActiveLinks->Count();
     int nFail = 0;
     while ( i )
     {
         if ( !ActiveLinks->GetObject(i-1)->StopCommunication() )
-            nFail++;    // Hochz�hlen, da Verbindung sich nicht (sofort) beenden l�sst.
+            nFail++;
         i--;
     }

@@ -359,7 +354,7 @@ CommunicationLinkRef MultiCommunicationManager::GetCommunicationLink( sal_uInt16

 void MultiCommunicationManager::CallConnectionOpened( CommunicationLink* pCL )
 {
-    CommunicationLinkRef rHold(pCL);    // H�lt den Zeiger bis zum Ende des calls
+    CommunicationLinkRef rHold(pCL);
     ActiveLinks->C40_PTR_INSERT(CommunicationLink, pCL);
     rHold->AddRef();

@@ -368,14 +363,14 @@ void MultiCommunicationManager::CallConnectionOpened( CommunicationLink* pCL )

 void MultiCommunicationManager::CallConnectionClosed( CommunicationLink* pCL )
 {
-    CommunicationLinkRef rHold(pCL);    // H�lt denm Zeiger bis zum Ende des calls
+    CommunicationLinkRef rHold(pCL);

     CommunicationManager::CallConnectionClosed( pCL );

     sal_uInt16 nPos;
     if ( ActiveLinks->Seek_Entry( pCL, &nPos ) )
     {
-        InactiveLinks->C40_PTR_INSERT(CommunicationLink, pCL);  // Ohne Reference
+        InactiveLinks->C40_PTR_INSERT(CommunicationLink, pCL);  // without reference
         ActiveLinks->Remove( nPos );
     }
     pCL->ReleaseReference();
@@ -430,11 +425,9 @@ sal_Bool CommunicationManagerServerViaSocket::StartCommunication()

 sal_Bool CommunicationManagerServerViaSocket::StopCommunication()
 {
-    // Erst den Acceptor anhalten
     delete pAcceptThread;
     pAcceptThread = NULL;

-    // Dann alle Verbindungen kappen
     return CommunicationManagerServer::StopCommunication();
 }

@@ -461,16 +454,16 @@ CommunicationManagerServerAcceptThread::CommunicationManagerServerAcceptThread(

 CommunicationManagerServerAcceptThread::~CommunicationManagerServerAcceptThread()
 {
-#ifndef aUNX        // Weil das Accept nicht abgebrochen werden kann, so terminiert wenigstens das Prog
-    // #62855# pl: gilt auch bei anderen Unixen
-    // die richtige Loesung waere natuerlich, etwas auf die pipe zu schreiben,
-    // was der thread als Abbruchbedingung erkennt
-    // oder wenigstens ein kill anstatt join
+#ifndef aUNX        // because the accept can't be canceled - this way the prog's terminated at leastW
+    // #62855# pl: counts for other unix systems too
+    // correct solution would be of course to write something on the pipe which
+    // the thread recognizes as a cancelling condition
+    // or at least kill instead of join
     terminate();
     if ( pAcceptorSocket )
-        pAcceptorSocket->close();   // Dann das Accept unterbrechen
+        pAcceptorSocket->close();

-    join();     // Warten bis fertig
+    join();

     if ( pAcceptorSocket )
     {
@@ -491,7 +484,7 @@ CommunicationManagerServerAcceptThread::~CommunicationManagerServerAcceptThread(
                 CByteString( "AddConnectionEvent aus Queue gel�scht"),
                 CM_MISC, xNewConnection );
             xNewConnection->InvalidateManager();
-            xNewConnection.Clear(); // sollte das Objekt hier l�schen
+            xNewConnection.Clear();
         }
     }
 }
@@ -527,7 +520,7 @@ void CommunicationManagerServerAcceptThread::run()
                 pStreamSocket->setOption( osl_Socket_OptionTcpNoDelay, 1 );

                 TimeValue sNochEins = {0, 100};
-                while ( schedule() && xmNewConnection.Is() )    // Solange die letzte Connection nicht abgeholt wurde warten wir
+                while ( schedule() && xmNewConnection.Is() )
                     wait( sNochEins );
                 xmNewConnection = new CommunicationLinkViaSocket( pMyServer, pStreamSocket );
                 xmNewConnection->StartCallback();
diff --git a/automation/source/inc/rcontrol.hxx b/automation/source/inc/rcontrol.hxx
index 14a26fe..f41bf7e 100644
--- a/automation/source/inc/rcontrol.hxx
+++ b/automation/source/inc/rcontrol.hxx
@@ -40,7 +40,7 @@
 #define UID_ACTIVE          "UID_ACTIVE"

 #define SI_IPCCommandBlock  1
-#define SI_SocketCommandBlock   SI_IPCCommandBlock  // Zumindest erstmal
+#define SI_SocketCommandBlock   SI_IPCCommandBlock
 #define SI_DirectCommandBlock   2
 #define SIControl           3   // remove after numeric HelpIDs are completely removed and no legacy testtool is used anymore
 #define SISlot              4
@@ -61,9 +61,9 @@
 #define BinSbxValue         15

 // Classes
-// !!!Diese Defines duerfen niemals geaendert werden!!!
+// !!!These defines may never be changed!!!
 #define C_NoType            -1
-// Maximale 32 einfache Controls
+// maximum of 32 easy controls
 #define C_TabControl        0
 #define C_RadioButton       1
 #define C_CheckBox          2
@@ -94,7 +94,7 @@
 #define C_MenuButton        24
 #define C_MoreButton        25

-// Maximale 7 Container
+// maximum of 7 containers
 #define C_TabPage           32
 #define C_ModalDlg          33
 #define C_FloatWin          34
@@ -102,7 +102,7 @@
 #define C_WorkWin           36
 #define C_DockingWin        37

-// Diese Defines koennen geaendert werden
+// These defines may be changed
 #define C_MessBox           40
 #define C_InfoBox           41
 #define C_WarningBox        42
@@ -126,8 +126,8 @@

 #define C_Dialog            68

-#define M_WITH_RETURN       0x0200  // Die Variable wird zum Aufnehmen des Wertes gespeichert
-#define M_KEY_STRING        0x0400  // Key Befehle werden umgewandelt i.e. "<return><up>"
+#define M_WITH_RETURN       0x0200  // the variable is saved until it gets its value
+#define M_KEY_STRING        0x0400  // key orders are converted i.e. "<return><up>"
 #define M_SOFFICE           0x0800  // Command valid for Star/Open Office
 #define M_MOZILLA           0x1000  // Command valid for Mozilla
 // for MacroRecorder
@@ -147,7 +147,7 @@
 #define M_SetPage           31
 #define M_Click             32

-#define M_Close             33      // Push Buttons on Dialog (Auch More Button)
+#define M_Close             33      // Push Buttons on Dialog (also More Button)
 #define M_Cancel            34
 #define M_OK                35
 #define M_Help              36
@@ -202,7 +202,7 @@

 #define M_Restore           85      // Window Control together with M_Maximize and M_Minimize

-#define M_DisplayPercent    200     // Zum Anzeigen der Prozente des Windows
+#define M_DisplayPercent    200

 #define M_LAST_NO_RETURN    200

@@ -259,7 +259,7 @@
 #define M_HasScrollBar      ( M_WITH_RETURN | 38 )
 #define M_IsScrollBarEnabled ( M_WITH_RETURN | 39 )

-// Dieser befehl wird nur intern im Controller (sts library) verwendet. Sie tauchen nicht im Testtool auf!
+// This command is only used in the internal controller (sts library). They don't appear in the testtool!
 #define _M_IsEnabled        ( M_WITH_RETURN | 50 )

 #define M_GetFixedTextCount ( M_WITH_RETURN | 51 )
@@ -318,7 +318,7 @@
 #error "Bereich �berschritten"
 #endif

-// Befehle mit Returnwert
+// commands with return value
 #define RC_GetClipboard     ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 1 )
 #define RC_WinTree          ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 2 )
 #define RC_ResetApplication ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 3 )
@@ -374,30 +374,30 @@
 #define RC_WaitSlot         ( M_SOFFICE             | M_WITH_RETURN | 44 )

 // Flow Control
-#define F_EndCommandBlock   101         // Initiiert R�ckmeldung des Status
-#define F_Sequence          102         // �bergibt Sequence Nummer (1. in jedem Stream)
+#define F_EndCommandBlock   101         // initializes the reply of the status
+#define F_Sequence          102         // commits Sequence number (first in each stream)

 // Return codes
-#define RET_Sequence        132         // �bergibt Sequence Nummer (1. in jedem Stream)
-#define RET_Value           133         // �bergibt Return-wert
-#define RET_WinInfo         134         // Information �ber aktuelles Fenster/Control
-#define RET_ProfileInfo     135         // Profile Information
-#define RET_DirectLoging    136         // Direktes �bertragen von Informationen in das Log
-#define RET_MacroRecorder   137         // MakroRecorder Befehl �bertragen
-
-// Subcodes die in nUId geliefert werden
-// f�r F_ProfileInfo
-#define S_ProfileReset      201         // nNr1 = Anzahl Borders
-    // Achtung!! Diese Defines m�ssen aufeinanderfolgende Nummern haben!!
+#define RET_Sequence        132
+#define RET_Value           133
+#define RET_WinInfo         134
+#define RET_ProfileInfo     135
+#define RET_DirectLoging    136
+#define RET_MacroRecorder   137
+
+// Subcodes which are delivered to nUId
+// for F_ProfileInfo
+#define S_ProfileReset      201         // nNr1 = number of Borders
+    // Attention!! These defines must have numbers in a row!!
 #define S_ProfileBorder1    202         // nNr1 = Border1 in ms
 #define S_ProfileBorder2    203         // nNr1 = Border2 in ms
 #define S_ProfileBorder3    204         // nNr1 = Border3 in ms
 #define S_ProfileBorder4    205         // nNr1 = Border4 in ms
-    // Achtung Ende
-#define S_ProfileTime       210         // nNr1 = remote Zeit des Befehls
-#define S_ProfileDump       211         // Gibt die daten aus.
+    // Attention end
+#define S_ProfileTime       210         // nNr1 = remote time of the command
+#define S_ProfileDump       211         // outputs the data

-// f�r F_DirectLoging
+// for F_DirectLoging
 #define S_AssertError       220
 #define S_AssertWarning     221
 #define S_AssertTrace       222
@@ -413,7 +413,7 @@
 #define CONST_CTTableControl    106
 #define CONST_CTUnknown         199

-// Konstanten f�r das ALignment des gesuchten Splitters
+// constants for the ALignment of the requested splitter
 #define CONST_ALIGN_LEFT        120
 #define CONST_ALIGN_TOP         121
 #define CONST_ALIGN_RIGHT       122
@@ -440,31 +440,31 @@
 #define CONST_WSAborted             702
 #define CONST_WSFinished            703

-// Beschreibt die Parametertypen als Bitfeld  Reihenfolge immer!
-// wie hier Aufgelistet
+// describes the parameter types as bitfield - always sequence!
+// as listed here
 #define PARAM_NONE              0x0000
 #define PARAM_UINT16_1          0x0001
 #define PARAM_UINT16_2          0x0002
-#define PARAM_UINT16_3          0x0100      // Nicht in der Reihe!!
-#define PARAM_UINT16_4          0x0200      // Nicht in der Reihe!!
+#define PARAM_UINT16_3          0x0100      // not in the row!!
+#define PARAM_UINT16_4          0x0200      // not in the row!!
 #define PARAM_UINT32_1          0x0004
 #define PARAM_UINT32_2          0x0008
 #define PARAM_STR_1             0x0010
 #define PARAM_STR_2             0x0020
 #define PARAM_BOOL_1            0x0040
 #define PARAM_BOOL_2            0x0080
-#define PARAM_SBXVALUE_1        0x0400      // hier mit 0x0400 Weiter!!! Siehe Oben!
+#define PARAM_SBXVALUE_1        0x0400      // going on with 0x0400 here!!! see above!

-// Zus�tzliche Beschreibung!! wird auch mit dem Rest verodert
-//#define PARAM_STR_RAW           0x8000        // Der Zeichensatz der Strings wird nicht konvertiert(f�r Fareastern)
+
+//#define PARAM_STR_RAW           0x8000        // the character set of the strings is not being converted (for Fareastern)

 #define ERR_SEND_TIMEOUT        100
 #define ERR_EXEC_TIMEOUT        101
 #define ERR_RESTART_FAIL        102
 #define ERR_RESTART             103
-#define ERR_NO_WIN              104     // Keine *.Win Dateien gefunden
-#define ERR_NO_SID              105     // Keine *.Sid Dateien gefunden
-#define ERR_NO_FILE             106     // Datei nicht gefunden
+#define ERR_NO_WIN              104
+#define ERR_NO_SID              105
+#define ERR_NO_FILE             106

 #endif

diff --git a/automation/source/inc/testapp.hxx b/automation/source/inc/testapp.hxx
index 6b257e2..9070862 100644
--- a/automation/source/inc/testapp.hxx
+++ b/automation/source/inc/testapp.hxx
@@ -77,13 +77,13 @@ class TestToolObj: public SbxObject
     friend class TTBasic;
     friend class Controls;
 public:
-    TestToolObj( String aName, MyBasic* pBas ); // Pfade aus INI, IPC benutzen
+    TestToolObj( String aName, MyBasic* pBas ); // use paths from INI, IPC
     ~TestToolObj();
-    void LoadIniFile();             // Laden der IniEinstellungen, die durch den ConfigDialog geändert werden können
+    void LoadIniFile();             // IniSetup can be changed with the ConfigDialog
     void DebugFindNoErrors( sal_Bool bDebugFindNoErrors );

 private:
-    sal_Bool bWasPrecompilerError;  // True wenn beim letzten Precompile ein Fehler auftrat
+    sal_Bool bWasPrecompilerError;
     sal_Bool CError( sal_uLong, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
     void CalcPosition( String const &aSource, xub_StrLen nPos, xub_StrLen &l, xub_StrLen &c );
     xub_StrLen ImplSearch( const String &aSource, const xub_StrLen nStart, const xub_StrLen nEnd, const String &aSearch, const xub_StrLen nSearchStart = 0 );
@@ -92,12 +92,12 @@ private:
 public:
     String GetRevision(String const &aSourceIn);    // find Revision in the sourcecode
     String PreCompile(String const &aSourceIn); // try catch; testcase endcase ..
-    sal_Bool WasPrecompilerError(); // True wenn beim letzten Precompile ein Fehler auftrat
+    sal_Bool WasPrecompilerError();
     void            SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
     virtual SbxVariable* Find( const String&, SbxClassType );
-//  String aKeyPlusClasses;     // Pfad für keycodes & classes & res_type (Aus Configdatei)
+//  String aKeyPlusClasses;     // path for keycodes & classes & res_type (from Configfile)
     DECL_LINK( ReturnResultsLink, CommunicationLink* );
-    sal_Bool            ReturnResults( SvStream *pIn ); // Rücklieferung des Antwortstreams über IPC oder TCP/IP oder direkt
+    sal_Bool            ReturnResults( SvStream *pIn ); // return of the reply stream over IPC or TCP/IP or directly

     void            SetLogHdl( const Link& rLink ) { aLogHdl = rLink; }
     const Link&     GetLogHdl() const { return aLogHdl; }
@@ -117,41 +117,41 @@ public:
     SfxBroadcaster& GetTTBroadcaster();

 private:
-    ImplTestToolObj *pImpl;     // Alles was von der Implementation abhängt
+    ImplTestToolObj *pImpl;
     static const CErrors* GetFehlerListe() { return pFehlerListe; }
     sal_Bool bUseIPC;
-    Link aLogHdl;               // Zum Logen der Fehlermeldungen im Testtool
-    Link aWinInfoHdl;           // Anzeigen der Windows/Controls der zu testenden App
-    Link aModuleWinExistsHdl;   // Prüft ob das Modul schon im Editor geladen ist
-    Link aCErrorHdl;            // Melden von Compilererror
-    Link aWriteStringHdl;       // Schreiben von text (e.g. MakroRecorder)
-    sal_Bool bReturnOK;             // Bricht WaitForAnswer ab
-    CRevNames *pShortNames;     // Aktuell verwendete Controls, zur gewinnung des Namens aus Fehlermeldung
-    sal_uLong nSequence;            // Sequence um Antwort und Anfrage zu syncronisieren
-    rtl::OString aNextReturnId; // Id des Returnwertes i.e. UId
-    void ReplaceNumbers(String &aText); // Zahlen im String mit speziellem Format in Namen umwandeln
-
-    String aLastRecordedKontext;//  Keeps the last kontext recorded by the Macro Recorder
+    Link aLogHdl;
+    Link aWinInfoHdl;
+    Link aModuleWinExistsHdl;
+    Link aCErrorHdl;
+    Link aWriteStringHdl;
+    sal_Bool bReturnOK;
+    CRevNames *pShortNames;
+    sal_uLong nSequence;
+    rtl::OString aNextReturnId;
+    void ReplaceNumbers(String &aText);
+
+    String aLastRecordedKontext;

 #define FLAT sal_True
-    String ProgPath;            // Dateiname der zu Testenden APP; Gesetzt über Start
-    String aLogFileName;        // Momentaner Logfilename (Wie Programmdatei aber mit .res)
-    sal_Bool IsBlock;               // Innerhalb Begin/EndBlock
-    sal_Bool SingleCommandBlock;    // Implizit um jedes kommando ein Begin/EndBlock
+    String ProgPath;
+    String aLogFileName;
+    sal_Bool IsBlock;
+    sal_Bool SingleCommandBlock;
     CmdStream *In;

-    void AddName(String &aBisher, String &aNeu );   // Name eventuell mit / anhängen
-    void AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem );    //
+    void AddName(String &aBisher, String &aNeu );   // maybe add name with /
+    void AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem );
     CNames *m_pControls;
-    CNames *m_pNameKontext;     // Zeigt auf den aktuellen Namenskontext, der über 'Kontext' gesetzt wurde
+    CNames *m_pNameKontext;
     CNames *m_pSIds;
-    CNames *m_pReverseSlots;        // Slots mit Kurznamen nach Nummer
-    CNames *m_pReverseControls; // Controls mit Kurznamen nach Nummer
-    CNames *m_pReverseControlsSon;// Controls mit Kurznamen nach Nummer nach Fenstern (Son)
-    CNames *m_pReverseUIds;     // Langnamen nach Nummer
+    CNames *m_pReverseSlots;
+    CNames *m_pReverseControls;
+    CNames *m_pReverseControlsSon;
+    CNames *m_pReverseUIds;


-    sal_uInt16 nMyVar;              // Wievielte Var aus Pool ist dran
+    sal_uInt16 nMyVar;

     void InitTestToolObj();
     CommunicationManagerClientViaSocketTT *pCommunicationManager;
@@ -176,9 +176,9 @@ private:
     sal_uInt16 nWindowHandlerCallLevel;

     sal_uInt16 nIdleCount;
-    // wenn DialogHandler gesetzt wird er im IdleHandler inkrementiert und
-    // in WaitForAnswer rückgesetzt. Übersteigt er einen gewissen wert, gehe ich davon aus,
-    // daß WaitForAnswer still ligt und rufe die DialogHander Sub im BASIC auf.
+    // If DialogHandler has been reset it is incremented in the IdleHandler and
+    // is reset in WaitForAnswer. If it exceed a certain value, I expect WaitFor Answer to
+    // stand still and call the DialogHander Sub in BASIC.

     void BeginBlock();
     void EndBlock();
@@ -187,7 +187,7 @@ private:
     static ControlDefLoad const arR_Cmds[];
     static CNames *pRCommands;

-    static CErrors *pFehlerListe;       // Hier werden die Fehler des Testtools gespeichert
+    static CErrors *pFehlerListe;       // the errors from the testtool are stored here

 };

diff --git a/automation/source/miniapp/testapp.hxx b/automation/source/miniapp/testapp.hxx
index fd313c9..883ccaf 100644
--- a/automation/source/miniapp/testapp.hxx
+++ b/automation/source/miniapp/testapp.hxx
@@ -81,7 +81,7 @@ public:
     virtual void SetExecuteMode( sal_uInt16 nMode )
     {
         (void) nMode; /* avoid warning about unused parameter */
-    };  // Ist hier sowieso egal
+    };
 };

 class MyApp : public Application
diff --git a/automation/source/server/cmdbasestream.cxx b/automation/source/server/cmdbasestream.cxx
index 154ca63..364c7d8 100644
--- a/automation/source/server/cmdbasestream.cxx
+++ b/automation/source/server/cmdbasestream.cxx
@@ -63,7 +63,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, comm_UINT32 nUId )
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write(nUId);
-    Write(comm_UINT16(PARAM_NONE));             // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_NONE));
 }

 void CmdBaseStream::GenReturn (comm_UINT16 nRet, rtl::OString *pUId, comm_UINT32 nNr )
@@ -74,7 +74,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, rtl::OString *pUId, comm_UINT32
         Write(comm_UINT32(0));
     else
         Write(pUId);
-    Write(comm_UINT16(PARAM_UINT32_1));         // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT32_1));
     Write(nNr);
 }

@@ -86,7 +86,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, rtl::OString *pUId, comm_String
         Write(comm_UINT32(0));
     else
         Write(pUId);
-    Write(comm_UINT16(PARAM_STR_1));                // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_STR_1));
     Write(pString);
 }

@@ -98,7 +98,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, rtl::OString *pUId, comm_BOOL b
         Write(comm_UINT32(0));
     else
         Write(pUId);
-    Write(comm_UINT16(PARAM_BOOL_1));           // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_BOOL_1));
     Write(bBool);
 }

@@ -110,7 +110,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, rtl::OString *pUId, comm_UINT32
         Write(comm_UINT32(0));
     else
         Write(pUId);
-    Write(comm_UINT16(PARAM_UINT32_1|PARAM_STR_1|PARAM_BOOL_1));        // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT32_1|PARAM_STR_1|PARAM_BOOL_1));
     Write(nNr);
     Write(pString);
     Write(bBool);
@@ -121,7 +121,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, comm_UINT16 nMethod, comm_UINT3
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write((comm_UINT32)nMethod); //HELPID BACKWARD (no sal_uLong needed)
-    Write(comm_UINT16(PARAM_UINT32_1));         // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT32_1));
     Write(nNr);
 }

@@ -130,7 +130,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, comm_UINT16 nMethod, comm_Strin
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write((comm_UINT32)nMethod); //HELPID BACKWARD (no sal_uLong needed)
-    Write(comm_UINT16(PARAM_STR_1));                // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_STR_1));
     Write(pString);
 }

@@ -139,7 +139,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, comm_UINT16 nMethod, comm_BOOL
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write((comm_UINT32)nMethod); //HELPID BACKWARD (no sal_uLong needed)
-    Write(comm_UINT16(PARAM_BOOL_1));           // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_BOOL_1));
     Write(bBool);
 }

@@ -148,7 +148,7 @@ void CmdBaseStream::GenReturn (comm_UINT16 nRet, comm_UINT16 nMethod, comm_UINT1
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write((comm_UINT32)nMethod); //HELPID BACKWARD (no sal_uLong needed)
-    Write(comm_UINT16(PARAM_UINT16_1));         // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT16_1));
     Write(nNr);
 }

@@ -159,7 +159,7 @@ void CmdBaseStream::GenReturn( comm_UINT16 nRet, rtl::OString *pUId, comm_UINT16
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write(pUId);
-    Write(comm_UINT16(PARAM_UINT16_1));     // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT16_1));
     Write(nMethod);
 }

@@ -168,7 +168,7 @@ void CmdBaseStream::GenReturn( comm_UINT16 nRet, rtl::OString *pUId, comm_UINT16
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write(pUId);
-    Write(comm_UINT16(PARAM_UINT16_1|PARAM_STR_1));     // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT16_1|PARAM_STR_1));
     Write(nMethod);
     Write(pString);
 }
@@ -178,7 +178,7 @@ void CmdBaseStream::GenReturn( comm_UINT16 nRet, rtl::OString *pUId, comm_UINT16
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write(pUId);
-    Write(comm_UINT16(PARAM_UINT16_1|PARAM_STR_1|PARAM_BOOL_1));        // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT16_1|PARAM_STR_1|PARAM_BOOL_1));
     Write(nMethod);
     Write(pString);
     Write(bBool);
@@ -189,7 +189,7 @@ void CmdBaseStream::GenReturn( comm_UINT16 nRet, rtl::OString *pUId, comm_UINT16
     Write(comm_UINT16(SIReturn));
     Write(nRet);
     Write(pUId);
-    Write(comm_UINT16(PARAM_UINT16_1|PARAM_UINT32_1));      // Typ der folgenden Parameter
+    Write(comm_UINT16(PARAM_UINT16_1|PARAM_UINT32_1));
     Write(nMethod);
     Write(nNr);
 }
diff --git a/automation/source/server/editwin.cxx b/automation/source/server/editwin.cxx
index 8056eeb..8e17658 100644
--- a/automation/source/server/editwin.cxx
+++ b/automation/source/server/editwin.cxx
@@ -146,7 +146,7 @@ void EditWindow::AddText( const String &rNew )
         if ( nTextLen > 5000 )
         {
             pImpWorkWindow->m_aInhalt.SetText( pImpWorkWindow->m_aInhalt.GetText().Erase(0,1000) );
-            nTextLen = pImpWorkWindow->m_aInhalt.GetText().Len();       // Absolut, um Fehler sonstwo auszubügeln
+            nTextLen = pImpWorkWindow->m_aInhalt.GetText().Len();
         }


diff --git a/automation/source/server/editwin.hxx b/automation/source/server/editwin.hxx
index 9b6d8b9..a949906 100644
--- a/automation/source/server/editwin.hxx
+++ b/automation/source/server/editwin.hxx
@@ -49,7 +49,7 @@ protected:
     String      aMemPreWinText;
     sal_Bool        bShowWin;

-    xub_StrLen      nTextLen;   // aus Performanzgründen eigene Länge mitführen
+    xub_StrLen      nTextLen;

 public:
     EditWindow( WorkWindow *pParent, const UniString &rName = UniString( RTL_CONSTASCII_USTRINGPARAM ( "Debug" ) ), WinBits iWstyle = WB_HSCROLL | WB_VSCROLL );
diff --git a/automation/source/server/prof_nul.cxx b/automation/source/server/prof_nul.cxx
index 46e1e37..58586eb 100644
--- a/automation/source/server/prof_nul.cxx
+++ b/automation/source/server/prof_nul.cxx
@@ -36,29 +36,29 @@

 struct SysdepProfileSnapshot
 {
-    // Hier stehen alle Felder zum Speichern eines Snapshot
+    // fields for saving a snapshot
 };


 struct SysdepStaticData
 {
-    // Hier steht alles, was während des Profiles ständig gebraucht wird
+    // everything that is always needed during profiling
 };


 void TTProfiler::InitSysdepProfiler()
 {
-    if ( !pSysDepStatic )   // Sollte immer so sein!!
+    if ( !pSysDepStatic )   // Should always be like this!!
         pSysDepStatic = new SysdepStaticData;
-    // Hier initialisieren
+    // initialize here

 };

 void TTProfiler::DeinitSysdepProfiler()
 {
-    if ( pSysDepStatic )    // Sollte immer so sein!!
+    if ( pSysDepStatic )    // Should always be like this!!
     {
-        // Hier aufräumen und eventuell Speicher freigeben
+        // tidy up here and free storage if applicable

         delete pSysDepStatic;
     }
@@ -75,19 +75,16 @@ void TTProfiler::DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfile
 };


-// Titelzeile für Logdatei
 String TTProfiler::GetSysdepProfileHeader()
 {
     return String(CUniString("(noch) keine weiteren Daten Implementiert"));
 };


-// Zustand merken
 void TTProfiler::GetSysdepProfileSnapshot( SysdepProfileSnapshot *, sal_uInt16 )
 {};


-// Informationszeile zusammenbauen
 String TTProfiler::GetSysdepProfileLine( SysdepProfileSnapshot *, SysdepProfileSnapshot * )
 {
     return String();
diff --git a/automation/source/server/prof_usl.cxx b/automation/source/server/prof_usl.cxx
index b7ca803..d0b4060 100644
--- a/automation/source/server/prof_usl.cxx
+++ b/automation/source/server/prof_usl.cxx
@@ -45,23 +45,23 @@ struct SysdepProfileSnapshot

 struct SysdepStaticData
 {
-    // Hier steht alles, was während des Profiles ständig gebraucht wird
+    // everything that is always needed during the profile
 };


 void TTProfiler::InitSysdepProfiler()
 {
-    if ( !pSysDepStatic )   // Sollte immer so sein!!
+    if ( !pSysDepStatic )   // Should always be like this!!
         pSysDepStatic = new SysdepStaticData;
-    // Hier initialisieren
+    // initialize here

 };

 void TTProfiler::DeinitSysdepProfiler()
 {
-    if ( pSysDepStatic )    // Sollte immer so sein!!
+    if ( pSysDepStatic )    // Should always be like this!!
     {
-        // Hier aufräumen und eventuell Speicher freigeben
+        // tidy up here and free storage if applicable

         delete pSysDepStatic;
     }
@@ -78,29 +78,28 @@ void TTProfiler::DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfile
 };


-// Titelzeile für Logdatei
 String TTProfiler::GetSysdepProfileHeader()
 {
     return String::CreateFromAscii(" Size(Kb) ResidentSZ  rtime  ktime  utime  total");
 };


-// Zustand merken
+
 void TTProfiler::GetSysdepProfileSnapshot( SysdepProfileSnapshot *pSysdepProfileSnapshot, sal_uInt16 )
 {
-    SvFileStream aStream( String::CreateFromAscii("/proc/self/psinfo"), STREAM_READ );      // Das ist ein expliziter Pfad für UNXSOL!
+    SvFileStream aStream( String::CreateFromAscii("/proc/self/psinfo"), STREAM_READ );      // explicit path for UNXSOL!
     if ( aStream.IsOpen() )
     {
         aStream.Read( &(pSysdepProfileSnapshot->mpsinfo), sizeof( psinfo ) );
         aStream.Close();
     }
-    SvFileStream anotherStream( String::CreateFromAscii("/proc/self/status"), STREAM_READ );        // Das ist ein expliziter Pfad für UNXSOL!
+    SvFileStream anotherStream( String::CreateFromAscii("/proc/self/status"), STREAM_READ );        // explicit path for UNXSOL!
     if ( anotherStream.IsOpen() )
     {
         anotherStream.Read( &(pSysdepProfileSnapshot->mpstatus), sizeof( pstatus ) );
         anotherStream.Close();
     }
-    SvFileStream YetAnotherStream( String::CreateFromAscii("/proc/self/usage"), STREAM_READ );      // Das ist ein expliziter Pfad für UNXSOL!
+    SvFileStream YetAnotherStream( String::CreateFromAscii("/proc/self/usage"), STREAM_READ );      // explicit path for UNXSOL!
     if ( YetAnotherStream.IsOpen() )
     {
         YetAnotherStream.Read( &(pSysdepProfileSnapshot->mprusage), sizeof( prusage ) );
@@ -111,7 +110,7 @@ void TTProfiler::GetSysdepProfileSnapshot( SysdepProfileSnapshot *pSysdepProfile
 #define DIFF2( aFirst, aSecond, Membername ) ( aSecond.Membername - aFirst.Membername )
 #define CALC_MS( nSec, nNSec ) ( nSec * 1000 + (nNSec+500000) / 1000000 )
 #define DIFF_MS( pStart, pEnd, Member ) ( CALC_MS( pEnd->Member.tv_sec, pEnd->Member.tv_nsec ) - CALC_MS( pStart->Member.tv_sec, pStart->Member.tv_nsec ) )
-// Informationszeile zusammenbauen
+
 String TTProfiler::GetSysdepProfileLine( SysdepProfileSnapshot *pStart, SysdepProfileSnapshot *pStop )
 {
     String aProfile;
diff --git a/automation/source/server/profiler.cxx b/automation/source/server/profiler.cxx
index c11ddce..92bd1b4 100644
--- a/automation/source/server/profiler.cxx
+++ b/automation/source/server/profiler.cxx
@@ -158,7 +158,7 @@ void TTProfiler::GetProfileSnapshot( ProfileSnapshot *pProfileSnapshot )
 }


-void TTProfiler::StartProfilingPerCommand()     // Jeden Befehl mitschneiden
+void TTProfiler::StartProfilingPerCommand()
 {
     bIsProfilingPerCommand = sal_True;
 }
@@ -214,11 +214,11 @@ void TTProfiler::Timeout()

     aAutoProfileBuffer += aLine;

-    ProfileSnapshot *pTemp = pAutoStart;        // Tauschen, so daß jetziges Ende nächsten Start wird
+    ProfileSnapshot *pTemp = pAutoStart;        // swap so that current end becomes the next start
     pAutoStart = pAutoEnd;
     pAutoEnd = pTemp;

-    Start();    // Timer neu starten
+    Start();    // restart timer
 }

 String TTProfiler::GetAutoProfiling()
diff --git a/automation/source/server/profiler.hxx b/automation/source/server/profiler.hxx
index 9b8abba..d86361b 100644
--- a/automation/source/server/profiler.hxx
+++ b/automation/source/server/profiler.hxx
@@ -42,7 +42,7 @@


 struct SysdepProfileSnapshot;
-struct SysdepStaticData;    // Nicht wirklich statisch, sondern statisch �ber mehrere Snapshots
+struct SysdepStaticData;    // not really static but static over several snapshots

 struct ProfileSnapshot
 {
@@ -59,13 +59,13 @@ public:
     TTProfiler();
     ~TTProfiler();

-    String GetProfileHeader();  // Titelzeile f�r Logdatei
-    void StartProfileInterval( sal_Bool bReadAnyway = sal_False );  // Zustand merken
-    void EndProfileInterval();  // Informationszeile zusammenbauen
+    String GetProfileHeader();  // headline for logfile
+    void StartProfileInterval( sal_Bool bReadAnyway = sal_False );  // memorize condition
+    void EndProfileInterval();  // construct information line
     String GetProfileLine( String &aPrefix );


-    void StartProfilingPerCommand();    // Jeden Befehl mitschneiden
+    void StartProfilingPerCommand();
     void StopProfilingPerCommand();
     sal_Bool IsProfilingPerCommand() { return bIsProfilingPerCommand; }

@@ -74,16 +74,16 @@ public:
     sal_Bool IsPartitioning() { return bIsPartitioning; }
     sal_uLong GetPartitioningTime();

-    void StartAutoProfiling( sal_uLong nMSec ); // Automatisch alle nMSec Milisekunden sampeln
-    String GetAutoProfiling();  // Aktuelle `Sammlung` abholen
-    void StopAutoProfiling();   // Sampeln beenden
+    void StartAutoProfiling( sal_uLong nMSec ); // sample automatically every nMSec milliseconds
+    String GetAutoProfiling();  // get current 'collection'
+    void StopAutoProfiling();
     sal_Bool IsAutoProfiling() { return bIsAutoProfiling; }

 private:

     void GetProfileSnapshot( ProfileSnapshot *pProfileSnapshot );

-    // Informationszeile zusammenbauen
+
     String GetProfileLine( ProfileSnapshot *pStart, ProfileSnapshot *pStop );


@@ -94,8 +94,6 @@ private:
     sal_Bool bIsPartitioning;


-//  F�r das Automatische Profiling in festen Intervallen
-
     ProfileSnapshot *pAutoStart;
     ProfileSnapshot *pAutoEnd;
     sal_Bool bIsAutoProfiling;
@@ -104,13 +102,12 @@ private:
     virtual void Timeout();


-// Einige Hilfsfunktionen

-    String Dec( sal_uLong nNr );    // Ergebnis = nNr / 100 mit 2 Dezimalen
-    String Pad( const String &aS, xub_StrLen nLen );        // F�gt blanks links an den String an
+    String Dec( sal_uLong nNr );    // result = nNr / 100 with 2 decimals
+    String Pad( const String &aS, xub_StrLen nLen );        // adds blanks links to the string

-/*  Ab hier werden die Methoden Systemabh�ngig in den entsprechenden cxx implementiert
-    Sie werden von den oberen Methoden gerufen.
+/*  from now on the methods are implemented system dependent in the respective cxx
+    they are called by the methods above
 */

     SysdepStaticData *pSysDepStatic;
@@ -121,13 +118,11 @@ private:
     SysdepProfileSnapshot *NewSysdepSnapshotData();
     void DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfileSnapshot );

-    // Titelzeile f�r Logdatei
+
     String GetSysdepProfileHeader();

-    // Zustand merken
     void GetSysdepProfileSnapshot( SysdepProfileSnapshot *pSysdepProfileSnapshot, sal_uInt16 nMode = PROFILE_START | PROFILE_END );

-    // Informationszeile zusammenbauen
     String GetSysdepProfileLine( SysdepProfileSnapshot *pStart, SysdepProfileSnapshot *pStop );
 };

diff --git a/automation/source/server/recorder.cxx b/automation/source/server/recorder.cxx
index c74380d..6b28c84 100644
--- a/automation/source/server/recorder.cxx
+++ b/automation/source/server/recorder.cxx
@@ -612,7 +612,7 @@ IMPL_LINK( MacroRecorder, EventListener, VclSimpleEvent*, pEvent )
     }  // if

     if ( bSendData )
-        new StatementFlow( NULL, F_EndCommandBlock );   // Kommando zum Senden erzeugen und in que eintragen
+        new StatementFlow( NULL, F_EndCommandBlock );   // create command for sending and entry in que

     return 0;
 }
diff --git a/automation/source/server/retstrm.cxx b/automation/source/server/retstrm.cxx
index df36835..21b9ad1 100644
--- a/automation/source/server/retstrm.cxx
+++ b/automation/source/server/retstrm.cxx
@@ -80,7 +80,7 @@ void RetStream::GenReturn ( sal_uInt16 nRet, sal_uInt16 nMethod, SbxValue &aValu
     Write(sal_uInt16(SIReturn));
     Write(nRet);
     Write((comm_UINT32)nMethod); //HELPID BACKWARD (no sal_uLong needed)
-    Write(sal_uInt16(PARAM_SBXVALUE_1));        // Typ der folgenden Parameter
+    Write(sal_uInt16(PARAM_SBXVALUE_1));        // type of the following parameters
     Write(aValue);
 }

diff --git a/automation/source/server/server.cxx b/automation/source/server/server.cxx
index 44c2c0d..a5216ed 100644
--- a/automation/source/server/server.cxx
+++ b/automation/source/server/server.cxx
@@ -49,7 +49,7 @@
 #include <vcl/sound.hxx>
 #include "testtool.hrc"
 #include <vcl/bitmap.hxx>
-// Hat keinen Includeschutz
+// has got no include guard
 #include <svtools/svtdata.hxx>
 #include <rtl/textenc.h>
 #include <rtl/uri.h>
@@ -101,7 +101,7 @@ RemoteControlCommunicationManager::RemoteControlCommunicationManager()
     {
         SetInfoType( CM_SHORT_TEXT | CM_ALL );
         ByteString aByteString;
-        InfoMsg( InfoString( aByteString, CM_ALL ) );   // Anzeigen, da� wir da sind
+        InfoMsg( InfoString( aByteString, CM_ALL ) );
     }
 }

@@ -141,8 +141,8 @@ IMPL_LINK( RemoteControlCommunicationManager, SetWinCaption, Timer*, EMPTYARG )
         StatementList::GetFirstDocFrame()->SetText(String(aOriginalWinCaption).AppendAscii(" TT").Append(aAdditionalWinCaption).AppendAscii("[").Append(UniString::CreateFromInt32(nPortToListen)).AppendAscii("]"));
     }
     else
-    {   // Dann Probieren wir es eben in 1 Sekunde nochmal
-        pTimer = new Timer();   // Wird im Link gel�scht
+    {
+        pTimer = new Timer();   // will be deleted in link
         pTimer->SetTimeout( 1000 );
         pTimer->SetTimeoutHdl( LINK( this, RemoteControlCommunicationManager, SetWinCaption ) );
         pTimer->Start();
@@ -218,7 +218,7 @@ sal_uLong RemoteControlCommunicationManager::GetPort()

         nPortIs = aConf.ReadKey("TTPort","0").toInt32();

-        // noch pr�fen ob dieses Office getestet werden soll.
+
         if ( !bAutomate || aConf.ReadKey( aNoTesttoolKey, "" ) != "" )
             nPortIs = 0;

@@ -232,9 +232,9 @@ sal_uLong RemoteControlCommunicationManager::GetPort()
 }

 #if OSL_DEBUG_LEVEL > 1
-#define MIN_IDLE 10000      // Ruhe vor dem Sturm min 10 Sekunden
+#define MIN_IDLE 10000
 #else
-#define MIN_IDLE 60000      // Ruhe vor dem Sturm min 1 Minuten
+#define MIN_IDLE 60000
 #endif

 class ExtraIdle : public AutoTimer
@@ -252,9 +252,9 @@ ExtraIdle::ExtraIdle( ImplRemoteControl *pRC )
 : nStep( 0 )
 , pRemoteControl (pRC )
 {
-    SetTimeout( 120000 );   // 2 Minuten
+    SetTimeout( 120000 );
 #if OSL_DEBUG_LEVEL > 1
-    SetTimeout( 40000 );    // 40 Sekunden
+    SetTimeout( 40000 );
 #endif
     Start();
 }
@@ -270,7 +270,7 @@ void ExtraIdle::Timeout()
         return;
     }

-    // M�ssen wir selbst idlen?
+
 #if OSL_DEBUG_LEVEL > 1
     sal_uLong nLastInputInterval = Application::GetLastInputInterval();
     sal_Bool bIsInModalMode = Application::IsInModalMode();
@@ -279,7 +279,7 @@ void ExtraIdle::Timeout()
     if ( Application::IsInModalMode() || Application::GetLastInputInterval() < MIN_IDLE )
 #endif
     {
-        if ( nStep )    // Schon angefangen? dann abbrechen, sonst sp�ter nochmal
+        if ( nStep )
         {
             if ( nStep < 15 )
             {
@@ -300,14 +300,14 @@ void ExtraIdle::Timeout()
         return;
     }

-    if ( StatementList::pFirst )    // Verarbeitung neu aufsetzen
+    if ( StatementList::pFirst )    // reset handling
     {
         GetpApp()->PostUserEvent( LINK( pRemoteControl, ImplRemoteControl, CommandHdl ) );
         return;
     }


-    switch ( nStep++ )      // Probieren ob wir noch was machen k�nnen
+    switch ( nStep++ )      // test whether there's still something to do
     {
         case 0:
         {
@@ -509,7 +509,7 @@ void ExtraIdle::Timeout()
         }
     }

-    // Wir sind am Ende
+

 #if OSL_DEBUG_LEVEL < 2
     delete this;
@@ -538,7 +538,7 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )

     if ( StatementList::MaybeResetSafeReschedule() )
     {
-        StatementList::bExecuting = sal_False;      // Wird nacher im SafeReschedule wieder zur�ckgesetzt
+        StatementList::bExecuting = sal_False;      // will be reset in SafeReschedule later
 #if OSL_DEBUG_LEVEL > 1
         m_pDbgWin->AddText( "SafeReschedule has been reset\n" );
 #endif
@@ -565,12 +565,12 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
             }
             m_pDbgWin->AddText( "Leaving CommandHdl\n" );
 #endif
-            return 0;        // Garnicht erst irgendwelchen bl�dsinn machen
+            return 0;
         }

     while( StatementList::pFirst && ( !StatementList::bReadingCommands || StatementList::bDying ) )
-        // Schleift hier bis Befehl nicht zur�ckkommt,
-        // Wird dann rekursiv �ber IdleHdl und PostUserEvent aufgerufen.
+        // loops until command is not coming back,
+        // is then called recursively via IdleHdl and PostUserEvent
     {
         m_bInsideExecutionLoop = sal_True;
 #ifdef TIMERIDLE
@@ -586,7 +586,7 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
 #if OSL_DEBUG_LEVEL > 1
                 m_pDbgWin->AddText( "Leaving CommandHdl\n" );
 #endif
-                return 0;        // So dass die App nochmal �ne chance bekommt
+                return 0;
             }
         }
         else
@@ -598,13 +598,13 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
 #if OSL_DEBUG_LEVEL > 1
                     m_pDbgWin->AddText( "Leaving CommandHdl\n" );
 #endif
-                    return 0;        // So dass die App nochmal �ne chance bekommt
+                    return 0;
                 }
             }
             catch( ... )
             {
                 if ( !StatementFlow::bUseIPC )
-                    throw;  // aus der Hilfe heraus nicht leise abbrechen
+                    throw;

                 try
                 {
@@ -615,7 +615,7 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
                     OSL_FAIL("GPF");
                     pC->ReportError( GEN_RES_STR0( S_GPF_ABORT ) );
                     StatementList::bDying = sal_True;
-                    while ( StatementList::pFirst )         // Kommandos werden �bersprungen
+                    while ( StatementList::pFirst )         // commands are skipped
                         StatementList::NormalReschedule();
                     delete pDlg;
                 }
@@ -630,7 +630,7 @@ IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
         m_bInsideExecutionLoop = sal_False;
     }

-    StatementList::aWindowWaitUId = rtl::OString();  // Warten r�cksetzen, da handler sowieso verlassen wird
+    StatementList::aWindowWaitUId = rtl::OString();

 #if OSL_DEBUG_LEVEL > 1
     m_pDbgWin->AddText( "Leaving CommandHdl\n" );
@@ -688,28 +688,28 @@ sal_Bool ImplRemoteControl::QueCommands( sal_uLong nServiceId, SvStream *pIn )
         {
             case SICommand:
             {
-                new StatementCommand( pCmdStream );     // Wird im Konstruktor an Liste angeh�ngt
+                new StatementCommand( pCmdStream );
                 break;
             }
             case SIControl:
             case SIStringControl:
             {
-                new StatementControl( pCmdStream, nId );     // Wird im Konstruktor an Liste angeh�ngt
+                new StatementControl( pCmdStream, nId );
                 break;
             }
             case SISlot:
             {
-                new StatementSlot( pCmdStream );    // Wird im Konstruktor an Liste angeh�ngt
+                new StatementSlot( pCmdStream );
                 break;
             }
             case SIUnoSlot:
             {
-                new StatementUnoSlot( pCmdStream );    // Wird im Konstruktor an Liste angeh�ngt
+                new StatementUnoSlot( pCmdStream );
                 break;
             }
             case SIFlow:
             {
-                new StatementFlow( nServiceId, pCmdStream, this );              // Wird im Konstruktor an Liste angeh�ngt
+                new StatementFlow( nServiceId, pCmdStream, this );
                 break;
             }
             default:
@@ -791,7 +791,7 @@ ImplRemoteControl::ImplRemoteControl()
 #endif
     }
     if ( RemoteControlCommunicationManager::nComm )
-        new ExtraIdle( this );      // Setzt die Bearbeitung wieder auf
+        new ExtraIdle( this );      // resumes editing
 }

 ImplRemoteControl::~ImplRemoteControl()
@@ -803,20 +803,20 @@ ImplRemoteControl::~ImplRemoteControl()
     StatementList::bDying = sal_True;
 #if OSL_DEBUG_LEVEL > 1
     if ( m_pDbgWin )
-        m_pDbgWin->bQuiet = sal_True;   // Keine Ausgabe mehr im Debugwindow
+        m_pDbgWin->bQuiet = sal_True;   // no more output in the debugwindow
 #endif

 #ifdef DBG_UTIL
-    // Zur�cksetzen, so da� nachfolgende Assertions nicht verloren gehen
+    // reset so that the following assertions are not lost
     DbgSetPrintTestTool( NULL );
     osl_setDebugMessageFunc( StatementCommand::pOriginal_osl_DebugMessageFunc );
 #endif

     if ( StatementList::pFirst )
-    {   // Es sind noch Kommandos da, also auch eine M�glichkeit zur�ckzusenden.
+    {
         StatementList::pFirst->ReportError( GEN_RES_STR0( S_APP_SHUTDOWN ) );
-        while ( StatementList::pFirst )             // Kommandos werden �bersprungen
-            StatementList::NormalReschedule();      // Fehler zur�ckgeschickt
+        while ( StatementList::pFirst )
+            StatementList::NormalReschedule();
     }

     if ( pServiceMgr )

diff --git a/automation/source/server/server.hxx b/automation/source/server/server.hxx
index 3b44ba8..9f61d0f 100644
--- a/automation/source/server/server.hxx
+++ b/automation/source/server/server.hxx
@@ -31,7 +31,7 @@
 #include "editwin.hxx"
 #include <automation/communi.hxx>

-#define TT_PORT_NOT_INITIALIZED     sal_uLong(0xFFFFFFFF)   // Eigentlich ja noch mehr, aber soll mal reichen
+#define TT_PORT_NOT_INITIALIZED     sal_uLong(0xFFFFFFFF)
 #define TT_NO_PORT_DEFINED          0

 class RemoteControlCommunicationManager : public CommunicationManagerServerViaSocket
diff --git a/automation/source/server/sta_list.cxx b/automation/source/server/sta_list.cxx
index 3ff44fa..59ce203 100644
--- a/automation/source/server/sta_list.cxx
+++ b/automation/source/server/sta_list.cxx
@@ -81,13 +81,13 @@ rtl::OString StatementList::aWindowWaitOldHelpId = rtl::OString();
 rtl::OString StatementList::aWindowWaitOldUniqueId = rtl::OString();
 sal_uInt16 StatementList::nUseBindings = 0;

-sal_uInt16 StatementList::aSubMenuId1 = 0;  // Untermen�s bei PopupMenus
-sal_uInt16 StatementList::aSubMenuId2 = 0;  // erstmal 2-Stufig
-sal_uInt16 StatementList::aSubMenuId3 = 0;  // and now even 3 levels #i31512#
+sal_uInt16 StatementList::aSubMenuId1 = 0;
+sal_uInt16 StatementList::aSubMenuId2 = 0;
+sal_uInt16 StatementList::aSubMenuId3 = 0;
 SystemWindow *StatementList::pMenuWindow = NULL;
 TTProperties *StatementList::pTTProperties = NULL;

-sal_uInt16 StatementList::nMinTypeKeysDelay = 0;    // Verz�gerung der einzelnen Anschl�ge f�r TypeKeys
+sal_uInt16 StatementList::nMinTypeKeysDelay = 0;
 sal_uInt16 StatementList::nMaxTypeKeysDelay = 0;
 sal_Bool StatementList::bDoTypeKeysDelay = sal_False;

@@ -134,7 +134,7 @@ StatementList::StatementList()
 , bStatementInQue(sal_False)
 {
     if (!pRet)
-        pRet = new RetStream;       // so Sp�t wie m�glich, aber dennoch Zentral und auf jeden Fall rechtzeitig, da pRet private ist.
+        pRet = new RetStream;       // as late as possible but still central and at any rate early enough because pRet is private
 }

 void StatementList::InitProfile()
@@ -200,7 +200,7 @@ void StatementList::QueStatement(StatementList *pAfterThis)
             pFirst = this;
         }
     }
-    else    // am Ende einf�gen
+    else    // insert at the end
     {
         pNext = NULL;
         if( !pFirst )
@@ -994,7 +994,7 @@ String StatementList::ClientTree(Window *pBase, int Indent)

 sal_Bool StatementList::CheckWindowWait()
 {
-    static Time StartTime = Time(0L);   // Abbruch wenn Fenster absolut nicht schliesst.
+    static Time StartTime = Time(0L);   // cancel if window doesn't want to close at all
     if ( StartTime == Time(0L) )
         StartTime = Time();

@@ -1010,8 +1010,8 @@ sal_Bool StatementList::CheckWindowWait()
             m_pDbgWin->AddText( String::CreateFromInt32( pWindowWaitPointer->GetType() ).AppendAscii("\n") );
 #endif

-            // Ist die Zeit schonn abgelaufen?
-            if ( StartTime + Time(0,0,10) < Time() )    // 10 Sekunden reichen wohl
+
+            if ( StartTime + Time(0,0,10) < Time() )
             {
 #if OSL_DEBUG_LEVEL > 1
                 m_pDbgWin->AddText( "Close timed out. Going on!! " );
@@ -1167,11 +1167,11 @@ void ImplMouseButtonUp( Window* pWin, MouseEvent &aMEvnt, sal_Bool bForceDirect
     {
             if ( pWin->IsTracking() )
         {
-            // siehe #64693 die Position ist f�r Toolboxen relevant
-            // #60020 Jetzt hoffentlich kein GPF mehr
-            // Zuerst Tracking beenden ohne Event
+            // look at #64693 the position is relevant to the toolboxes
+            // #60020 hopefully no more GPF now
+            // stop tracking at first without event
             pWin->EndTracking( ENDTRACK_DONTCALLHDL );
-            // dann eigenen Event mit richtigem Maus-Event senden
+            // then send own event with correct mouse event
             TrackingEvent   aTEvt( aMEvnt, ENDTRACK_END );
             pWin->Tracking( aTEvt );
         }
diff --git a/automation/source/server/statemnt.cxx b/automation/source/server/statemnt.cxx
index ed0e110..7e58786 100644
--- a/automation/source/server/statemnt.cxx
+++ b/automation/source/server/statemnt.cxx
@@ -66,7 +66,7 @@
 #include <svtools/table/tablecontrolinterface.hxx>
 #include <svl/poolitem.hxx>
 #include <svtools/extensionlistbox.hxx>
-// Hat keinen Includeschutz
+// has got no include guard
 #include <svtools/svtdata.hxx>
 #include <tools/time.hxx>
 #include <svtools/stringtransfer.hxx>
@@ -191,12 +191,12 @@ void StatementFlow::SendViaSocket()
     bSending = sal_True;
     if ( pCommLink )
     {
-        if ( !pCommLink->TransferDataStream( pRet->GetStream() ) )  // tritt ein Fehler auf, so wird sofort gel�scht ...
+        if ( !pCommLink->TransferDataStream( pRet->GetStream() ) )  // if there's an error, it's deleted immediately
             pCommLink = NULL;
     }
     else
     {
-        // Macht nix. Wenn das Basic nicht mehr da ist, ist sowiso alles egal
+        // never mind, if the basic is not there it doesn't matter anyway
         OSL_FAIL("Cannot send results to TestTool");
     }

@@ -219,16 +219,16 @@ sal_Bool StatementFlow::Execute()

             if ( !bUseIPC )
             {
-                // bBool1 wurde im CTOR auf sal_False initialisiert
-                if ( !bBool1 )  // also erster Durchlauf
+                // bBool1 has been initialized in CTOR to sal_False
+                if ( !bBool1 )  // means first run
                 {
                     pRemoteControl->pRetStream = pRet->GetStream();
-                    bBool1 = sal_True;  // wurde im CTOR auf sal_False initialisiert
+                    bBool1 = sal_True;
                     nRetryCount = nRetryCount * 4;
                 }
-                if ( pRemoteControl->pRetStream && (nRetryCount--) )    // also solange nicht abgeholt
+                if ( pRemoteControl->pRetStream && (nRetryCount--) )
                 {
-                    return sal_False;   // Bitte einmal vom Callstack runter
+                    return sal_False;
                 }
             }

@@ -241,7 +241,7 @@ sal_Bool StatementFlow::Execute()
     {
     case F_EndCommandBlock:
         if ( !bUseIPC )
-        {   // wird oben abgehandelt
+        {   // is handled above
             pRet->Reset();
             IsError = sal_False;
         }
@@ -270,7 +270,7 @@ sal_Bool StatementFlow::Execute()
 }


-// neue Hilfsfunktion, die stetig erweitert werden muss
+// new help function that should be enhanced constantly
 static short ImpGetRType( Window *pWin )
 {
     short nRT = C_NoType;
@@ -640,10 +640,10 @@ sal_Bool StatementSlot::Execute()
     }


-/*  Neues Verfahren ab 334!
-    Neue Methode zum einstellen, da� Modale Dialoge immer Asynchron aufgerufen werden
-    und echter Returnwert, ob Slot geklappt hat
-    und Testen ob Slot �berhaupt durch UI aufgerufen werden kann        */
+/*  new principle from 334!
+    new method to make dialogues be called asynchronously
+    and real return value that shows whether slot was successfull
+    and to test whether slot can be called by the UI at all        */


     SendProfile( SlotString( nFunctionId ) );
@@ -753,7 +753,7 @@ StatementCommand::StatementCommand( SCmdStream *pCmdIn )
         m_pDbgWin->AddText( "*Deleting all Commands:\n" );
         #endif
         bReadingCommands = sal_False;
-        while ( StatementList::pFirst != this ) // Alles L�schen au�er mich selbst
+        while ( StatementList::pFirst != this ) // delete everything apart from myself
         {
             StatementList *pDeQue = StatementList::pFirst;
             pDeQue->Advance();
@@ -783,7 +783,7 @@ void StatementCommand::WriteControlData( Window *pBase, sal_uLong nConf, sal_Boo
             pBase = pBase->GetParent();
     }

-    {   // Klammerung, so da� der String nicht w�hrend der Rekursion bestehen bleibt
+    {   // bracketing to prevent the string from persisting during the recursion
         String aName;
         sal_Bool bSkip = sal_False;

@@ -888,7 +888,7 @@ void StatementCommand::WriteControlData( Window *pBase, sal_uLong nConf, sal_Boo
                 TypeString(pBase->GetType()).Append(aTypeSuffix).AppendAscii(": ").Append(aName), sal_False );


-            if ( pBase->GetType() == WINDOW_TOOLBOX )   // Buttons und Controls auf Toolboxen.
+            if ( pBase->GetType() == WINDOW_TOOLBOX )
             {
                 ToolBox *pTB = ((ToolBox*)pBase);
                 sal_uInt16 i;
@@ -961,11 +961,11 @@ void StatementCommand::WriteControlData( Window *pBase, sal_uLong nConf, sal_Boo
                     }
                 }

-                return; // ToolBox ist hier schon komplett abgehandelt.
+                return;
             }


-            if ( pBase->GetType() == WINDOW_BUTTONDIALOG    // Buttons auf Buttondialogen mit ID
+            if ( pBase->GetType() == WINDOW_BUTTONDIALOG
                 || pBase->GetType() == WINDOW_MESSBOX
                 || pBase->GetType() == WINDOW_INFOBOX
                 || pBase->GetType() == WINDOW_WARNINGBOX
@@ -1006,12 +1006,12 @@ void StatementCommand::WriteControlData( Window *pBase, sal_uLong nConf, sal_Boo
                             break;
                     }

-                    pRet->GenReturn ( RET_WinInfo, aID, (comm_UINT32)pBD->GetPushButton( pBD->GetButtonId(i) )->GetType(),  // So da� der Text angezeigt wird!
+                    pRet->GenReturn ( RET_WinInfo, aID, (comm_UINT32)pBD->GetPushButton( pBD->GetButtonId(i) )->GetType(),  // so that text is displayed!
                         TypeString(pBD->GetPushButton( pBD->GetButtonId(i) )->GetType()).AppendAscii(": ").Append(aName)
                         .AppendAscii(" ButtonId = ").AppendAscii( aID.GetBuffer() ), sal_False );
                 }

-                return; // ButtonDialog ist hier schon komplett abgehandelt.
+                return;
             }


@@ -1063,7 +1063,7 @@ void StatementCommand::WriteControlData( Window *pBase, sal_uLong nConf, sal_Boo
                     }
                 }

-                return; // Menu ist hier schon komplett abgehandelt.
+                return;
             }
         }
     }
@@ -1363,16 +1363,16 @@ sal_Bool StatementCommand::DisplayHID()
 {
     // Return sal_True -> reexecute command

-    if ( !bBool2 )  // Wird auf sal_False initialisiert
+    if ( !bBool2 )  // is initialized with sal_False
     {
-        bBool2 = sal_True;              // Wir sind initialisiert.
-        GetTTSettings()->pDisplayInstance = this;   // Und haben die Macht (Alle anderen beenden sich)
+        bBool2 = sal_True;
+        GetTTSettings()->pDisplayInstance = this;   // and have the power (all others quit themselves)

         if ( !(nParams & PARAM_UINT32_1) )
         {
-            if( GetTTSettings()->pDisplayHidWin )   // Nichts ver�ndern
+            if( GetTTSettings()->pDisplayHidWin )   // don't change anything
                 nLNr1_and_Pointer.nLNr1 = GetTTSettings()->pDisplayHidWin->GetConfig();
-            else    // Beim ersten Aufruf wollen wir alles richtig einstellen
+            else
                 nLNr1_and_Pointer.nLNr1 = DH_MODE_KURZNAME | DH_MODE_LANGNAME;

             if( ((nParams & PARAM_BOOL_1) && bBool1) )
@@ -1388,7 +1388,7 @@ sal_Bool StatementCommand::DisplayHID()
     if ( GetTTSettings()->pDisplayInstance && GetTTSettings()->pDisplayInstance != this )
     {
         DBG_WARNING("Mehrere DisplayHID am laufen");
-        return sal_False;       // Noch eine andere Instanz macht das gleiche!
+        return sal_False;       // another instance is doing the same!
     }

     if ( !GetTTSettings()->pDisplayHidWin )
@@ -1493,9 +1493,9 @@ sal_Bool StatementCommand::DisplayHID()
             if ( GetTTSettings()->pDisplayHidWin->IsSendData() && GetTTSettings()->Act )
             {
                 if ( !StatementFlow::bSending )
-                {   // Normalerweise syncronisierung �ber Protokoll. Hier ist das aber asyncron!!!
+                {   // usually synchronization over the protocol. But it's asynchronous here!!!
                     WriteControlData( GetTTSettings()->Act, GetTTSettings()->pDisplayHidWin->GetConfig() );
-                    new StatementFlow( this, F_EndCommandBlock );   // Kommando zum Senden erzeugen und in que eintragen
+                    new StatementFlow( this, F_EndCommandBlock );   // create command for sending and enter it on que
                 }
             }
         }
@@ -1508,9 +1508,9 @@ sal_Bool StatementCommand::DisplayHID()
             }
         }

-        if ( pFirst == this )   // Sollte immer so sein, aber besser isses
-            if ( pNext )        // Befehle warten auf Ausf�hrung
-            {                   // An Ende neu einsortieren
+        if ( pFirst == this )
+            if ( pNext )
+            {
                 Advance();
                 QueStatement( NULL );
             }
@@ -1686,11 +1686,11 @@ IMPL_LINK( TranslateWin, DoRestore, PushButton*, EMPTYARG )
     sTT_E_NEW.SearchAndReplaceAll( CUniString("\\t"), CUniString("\t") );

     if ( StatementList::WinPtrValid( pTranslateWin ) && pTranslateWin->GetText().CompareTo( sTT_E_NEW ) == COMPARE_EQUAL )
-    {   // Im ersten schritt nur in der UI zur�ck
+    {
         pTranslateWin->SetText( sTT_E_OLD );
     }
     else
-    {   // Im zweite Schritt auch den eingegebenen Text
+    {
         EditTT_E_NEW.SetText( FixedTextTT_FT_OLD.GetText() );
         PushButtonTT_PB_RESTORE.Disable();
     }
@@ -1796,10 +1796,10 @@ long TranslateWin::VCLEventHook( NotifyEvent& rEvt )
             if ( pTranslateWin )
             {
                 MarkShortcutErrors( pTranslateWin->GetWindow( WINDOW_OVERLAP ), sal_True );
-                // alle CRs quoten (NF)
+                // quote all CRs (NF)
                 String sTT_E_NEW( pTranslateWin->GetText());
                 sTT_E_NEW.SearchAndReplaceAll( CUniString("\n"), CUniString("\\n") );
-                // alle TABSs quoten ()
+                // quote all TABSs ()
                 sTT_E_NEW.SearchAndReplaceAll( CUniString("\t"), CUniString("\\t") );

                 FixedTextTT_FT_OLD.SetText( sTT_E_NEW );
@@ -1835,7 +1835,7 @@ public:
 FindShortcutErrors::FindShortcutErrors()
 : Search( SEARCH_NOOVERLAP | SEARCH_NO_TOPLEVEL_WIN )
 {
-    SetAction( FDS_ACTION_COLLECT );    // Wir fange immer mit sammeln an, ODER??
+    SetAction( FDS_ACTION_COLLECT );
 }

 void FindShortcutErrors::SetAction( sal_uInt16 nA )
@@ -1998,7 +1998,7 @@ void TranslateWin::EnableTranslation()

 void StatementCommand::Translate()
 {
-    // Es wurde eine initale UniqueId mitgegeben. Dann nur die dopelten Shortcuts liefern
+    // there's an initial UniqueId so only deliver the doubled shortcuts
     if( (nParams & PARAM_STR_1) && nLNr1_and_Pointer.nLNr1 )
     {
         String aDouble;
@@ -2039,7 +2039,7 @@ void StatementCommand::Translate()
             if ( pTranslationWindow->GetType() == WINDOW_BORDERWINDOW && pTranslationWindow->GetWindow( WINDOW_CLIENT ) )
             {
                 Window* pNew = pTranslationWindow->GetWindow( WINDOW_CLIENT );
-                // Bei Dockingwindoes das kanze Geraffel von Docking Floating �berspringen
+
                 while ( IsDialog( pNew ) && !pNew->GetUniqueOrHelpId().getLength() && pNew->GetChildCount() == 1 )
                     pNew = pNew->GetChild( 0 );
                 pTranslationWindow = pNew;
@@ -2066,7 +2066,7 @@ void StatementCommand::Translate()
                 aTranslation += TypeString( pParentDialog->GetType() );
             }
             else
-                aTranslation.AppendAscii( "0;" );       // Zahl + leerer String
+                aTranslation.AppendAscii( "0;" );
             aTranslation += ';';

             aTranslation += '\"';
@@ -2085,9 +2085,9 @@ void StatementCommand::Translate()
             aTranslation += GetTTSettings()->pTranslateWin->GetComment();
             aTranslation += '\"';

-            // alle CRs quoten (NF)
+            // quote all CRs (NF)
             aTranslation.SearchAndReplaceAll( CUniString("\n"), CUniString("\\n") );
-            // alle TABSs quoten ()
+            // quote all TABSs ()
             aTranslation.SearchAndReplaceAll( CUniString("\t"), CUniString("\\t") );

             pRet->GenReturn ( RET_Value, nMethodId, aTranslation );
@@ -2119,8 +2119,8 @@ void StatementCommand::Translate()
 }

 Window* StatementCommand::GetNextOverlap( Window* pBase )
-{   // Findet irgendwelche Overlap-Fenster, die schlie�bar aussehen
-    // Eventuell mu� noch die Auswahl verfeinert werden.
+{   // finds some overlap windows that look closable
+    // maybe the choice must be improved

     if ( pBase->GetType() != WINDOW_BORDERWINDOW )
         pBase = pBase->GetWindow( WINDOW_OVERLAP );
@@ -2153,13 +2153,13 @@ Window* StatementCommand::GetNextOverlap( Window* pBase )

 Window* StatementCommand::GetNextRecoverWin()
 {
-    // �ber die TopLevelWindows der App iterieren
+
     Window* pBase = Application::GetFirstTopLevelWindow();
     Window *pControl = NULL;
     Window* pMyFirstDocFrame = NULL;
     while ( pBase )
     {
-        // zuerst weitere Fenster auf dem Fenster suchen und schliessen
+
         pControl = GetNextOverlap( pBase );
         if ( pControl && pControl->GetType() == WINDOW_HELPTEXTWINDOW )
         {}  // skip it
@@ -2174,8 +2174,8 @@ Window* StatementCommand::GetNextRecoverWin()
                     return pControl;
             }

-            // dann das Fenster selbst Schliessen
-               // erstes DocWin �berspringen
+            // then close the window itself
+               // skip first DocWin
             // Assumption that Doc Windows are Borderwindows and ButtonDialog and such are not
             if ( pBase->IsVisible() && !IsFirstDocFrame( pBase ) && pBase->GetType() != WINDOW_BORDERWINDOW && !IsIMEWin( pBase ) )
                 return pBase;
@@ -2250,7 +2250,7 @@ sal_Bool StatementCommand::Execute()
                 nLNr1_and_Pointer.nLNr1 = Time().GetTime() + nNr1/10;
                 bBool1 = sal_True;
             }
-            if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )    // Aktuelle Zeit kleiner Endzeit
+            if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )
                 return sal_False;
             break;
         case RC_DisplayHid:
@@ -2261,13 +2261,12 @@ sal_Bool StatementCommand::Execute()
             {
                 if ( !bBool1 )
                 {
-                    nRetryCount = 150;      // das sollte reichen.
-                    bBool1 = sal_True;          // Nur beim ersten mal!
-                    nNr1 = 1;               // Welcher Button ist dran?
-                    nLNr1_and_Pointer.pWindow = 0;              // Speichern des AppWin
-                    aString1 = UniString(); // Liste der geschlossenen Fenster
+                    nRetryCount = 150;
+                    bBool1 = sal_True;
+                    nNr1 = 1;
+                    nLNr1_and_Pointer.pWindow = 0;      // save the AppWin
+                    aString1 = UniString();             // list of closed windows

-                    // So da� nacher auch wieder alles auf Default steht
                     nUseBindings = 0;
                     bCatchGPF = sal_True;
                     bUsePostEvents = sal_True;
@@ -2298,7 +2297,7 @@ sal_Bool StatementCommand::Execute()
                         short nRT = ImpGetRType( pControl );

                         if ( nRT == C_TabControl && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                        {   // Bei Tabcontrol den zugeh�rigen Tabdialog nehmen
+                        {   // take belonging tab if tabcontrol
                             pControl = pControl->GET_REAL_PARENT();
                             nRT = ImpGetRType( pControl );
                         }
@@ -2322,7 +2321,7 @@ sal_Bool StatementCommand::Execute()
                             case C_ButtonDialog:
                                 {
                                     ButtonDialog* pBD = (ButtonDialog*)pControl;
-                                    // nNr1 >= 10 bedeutet (Custom)-Buttons durchgehen
+                                    // nNr1 >= 10 means go through (Custom)-Buttons
                                     if ( nNr1 >= 10+pBD->GetButtonCount() ) nNr1 = 1;
                                     switch( nNr1 )
                                     {
@@ -2333,7 +2332,7 @@ sal_Bool StatementCommand::Execute()
                                                 SET_WINP_CLOSING(pControl);
                                                 pBD->EndDialog(RET_OK);
                                             }
-                                            nNr1 = 10;  // Nochmal alle Buttons der Reihe nach
+                                            nNr1 = 10;
                                             break;
                                         case 4:
                                             if ( pBD->GetPushButton( BUTTONID_CANCEL ) )
@@ -2398,9 +2397,9 @@ sal_Bool StatementCommand::Execute()
                                 SET_WINP_CLOSING(pControl);
                                 ((DockingWindow*)pControl)->Close();

-                                // Eigentlich nur bei TaskWindows! Hoffen wir mal, da� keine anderen DockingWindows dazwischen hauen.
+                                // actually only for TaskWindows! let's hope there are no DockingWindows messing it up
                                 if ( nLNr1_and_Pointer.pWindow != pControl )
-                                    nNr1 = 1;       // Zum durchprobieren der Buttons beim Schlie�en
+                                    nNr1 = 1;       // to try buttons during closing
                                 nLNr1_and_Pointer.pWindow = pControl;

                                 return sal_False;
@@ -2427,9 +2426,9 @@ sal_Bool StatementCommand::Execute()

                                             pMenu->GetCloserHdl().Call( pMenu );

-                                            // nur bei TaskWindows!
+                                            // only for TaskWindows!
                                             if ( nLNr1_and_Pointer.pWindow != pControl )
-                                                nNr1 = 1;       // Zum durchprobieren der Buttons beim Schlie�en
+                                                nNr1 = 1;
                                             nLNr1_and_Pointer.pWindow = pControl;

                                             return sal_False;
@@ -2443,9 +2442,9 @@ sal_Bool StatementCommand::Execute()
                                 SET_WINP_CLOSING(pControl);
                                 ((SystemWindow*)pControl)->Close();

-                                // Eigentlich nur bei TaskWindows!
+                                // actually only for TaskWindows!
                                 if ( nLNr1_and_Pointer.pWindow != pControl )
-                                    nNr1 = 1;       // Zum durchprobieren der Buttons beim Schlie�en
+                                    nNr1 = 1;
                                 nLNr1_and_Pointer.pWindow = pControl;

                                 return sal_False;
@@ -2460,7 +2459,7 @@ sal_Bool StatementCommand::Execute()
                     nLNr1_and_Pointer.nLNr1 = Time().GetTime() + 100; // 100 = 1 Second
                     bBool2 = sal_True;
                 }
-                if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )    // Aktuelle Zeit kleiner Endzeit
+                if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )
                     return sal_False;
                 else
                     pRet->GenReturn ( RET_Value, nMethodId, aString1);
@@ -2480,7 +2479,7 @@ sal_Bool StatementCommand::Execute()
                     pRet->GenReturn ( RET_Value, nMethodId, comm_UINT16(CONST_WSFinished) );
                 else
                 {
-                    if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )    // Aktuelle Zeit kleiner Endzeit
+                    if ( Time().GetTime() < sal_Int32(nLNr1_and_Pointer.nLNr1) )
                         return sal_False;
                     pRet->GenReturn ( RET_Value, nMethodId, comm_UINT16(CONST_WSTimeout) );
                 }
@@ -2494,12 +2493,12 @@ sal_Bool StatementCommand::Execute()

     switch ( nMethodId )
     {
-        case RC_AppDelay:       // Diese Befehle werden anderswo behandelt
+        case RC_AppDelay:       // these commands are handled elsewhere
         case RC_DisplayHid:
         case RC_ResetApplication:
         case RC_WaitSlot:

-        case RC_AppAbort:       // Sofortiges L�schen aller Befehle
+        case RC_AppAbort:       // delete all commands immediately
             break;
         case RC_Assert:
             {
@@ -2582,12 +2581,12 @@ sal_Bool StatementCommand::Execute()
                 nUseBindings = 0;
             break;
         case RC_Profile:
-            //  Bei folgenden Parametern passiert folgendes:
-            //  ein boolean=false                   Alles Profiling stoppen (Ergebnisse liefern)
-            //  ein boolean=true, 1-4 ints          Einteilung der Zeiten in K�stchen
-            //  kein! boolean keine ints            loggen jeden Befehls
-            //  kein! boolean 1 int                 loggen alle int Millisekunden
-            //  ein String                          wird in das Logfile �bernommen(sonst passiert nichts)
+            //  list of what happens when parameters have these values:
+            //  one boolean=false                   stop all profiling (give results)
+            //  one boolean=true, 1-4 ints          put the times into boxes
+            //  no! boolean no ints                 logging every command
+            //  no! boolean 1 int                   logging every int milliseconds
+            //  one String                          is put into the logfile (nothing else happens)
             if( !(nParams & PARAM_BOOL_1) || bBool1 )
             {
                 if ( !pProfiler )
@@ -2604,23 +2603,22 @@ sal_Bool StatementCommand::Execute()
                     }
                     pProfiler->StartAutoProfiling( nNr1 );

-                    // Der Header ist abh�ngig vom Modus
+                    // the header is not dependent from the mode
                     pRet->GenReturn( RET_ProfileInfo, 0, pProfiler->GetProfileHeader() );
                 }
                 else if ( nParams & PARAM_UINT16_1 )
-                {   // Partitioning initialisieren: Profile true [,nNr][,nNr][,nNr][,nNr]
+                {   // initialize Partitioning: Profile true [,nNr][,nNr][,nNr][,nNr]
                     comm_UINT32 nAnzahl=0;
                     if ( nParams & PARAM_UINT16_1 ) { nAnzahl++; };
                     if ( nParams & PARAM_UINT16_2 ) { nAnzahl++; };
                     if ( nParams & PARAM_UINT16_3 ) { nAnzahl++; };
                     if ( nParams & PARAM_UINT16_4 ) { nAnzahl++; };

-                    // Hier werden die Parameter ans Testtool zur�ck �bertragen.
-                    // Das ist zwar etwas eigenartig, aber ansonsten m�sste man im Testtool
-                    // die einfache Struktur der Remotebefehle aufbrechen.
+                    // Here are the parameters transferred back to the testtool.
+                    // That's a little strange but you'd have to give up the easy
+                    // structure of remote commands in the testtool otherwise.
                     pRet->GenReturn( RET_ProfileInfo, S_ProfileReset, nAnzahl );

-                    // Und die einzelnen Grenzen
                     if ( nParams & PARAM_UINT16_1 ) { pRet->GenReturn( RET_ProfileInfo, S_ProfileBorder1, (comm_UINT32)nNr1 ); };
                     if ( nParams & PARAM_UINT16_2 ) { pRet->GenReturn( RET_ProfileInfo, S_ProfileBorder2, (comm_UINT32)nNr2 ); };
                     if ( nParams & PARAM_UINT16_3 ) { pRet->GenReturn( RET_ProfileInfo, S_ProfileBorder3, (comm_UINT32)nNr3 ); };
@@ -2628,13 +2626,13 @@ sal_Bool StatementCommand::Execute()

                     pProfiler->StartPartitioning();
                 }
-                else if( nParams == PARAM_STR_1 )   // Genau ein String!
-                {   // Nur einen String ins Profiling aufnehmen
+                else if( nParams == PARAM_STR_1 )
+                {
                     aString1 += '\n';
                     pRet->GenReturn( RET_ProfileInfo, 0, aString1 );
                 }
                 else
-                {   // Normales Profiling je Kommando: profile
+                {
                     if ( pProfiler->IsAutoProfiling() )
                     {
                         pRet->GenReturn( RET_ProfileInfo, 0, pProfiler->GetAutoProfiling() );
@@ -2642,11 +2640,11 @@ sal_Bool StatementCommand::Execute()
                     }
                     pProfiler->StartProfilingPerCommand();

-                    // Der Header ist abh�ngig vom Modus
+                    // header is dependent from mode
                     pRet->GenReturn( RET_ProfileInfo, 0, pProfiler->GetProfileHeader() );
                 }
             }
-            else        // Profiling wieder ausschalten: Profile false
+            else
                 if ( pProfiler )
                 {
                     if ( pProfiler->IsProfilingPerCommand() )
@@ -2931,7 +2929,7 @@ sal_Bool StatementCommand::Execute()
                             if ( (nParams & PARAM_STR_1) )
                             {
                                 delete pDir;
-                                pDir = NULL; // wg. Sonderbehandlung Sb_ATTR_VOLUME
+                                pDir = NULL; // because of special treatment Sb_ATTR_VOLUME
                                 DirEntry aEntry( aString1 );
                                 FileStat aStat( aEntry );
                                 if(!aStat.GetError() && (aStat.GetKind() & FSYS_KIND_FILE))
@@ -2948,13 +2946,12 @@ sal_Bool StatementCommand::Execute()
                                     else
                                         nDirFlags = nFlags = Sb_ATTR_HIDDEN | Sb_ATTR_SYSTEM | Sb_ATTR_DIRECTORY;

-                                    // Nur diese Bitmaske ist unter Windows erlaubt
-                                    // Sb_ATTR_VOLUME wird getrennt gehandelt
+                                    // only this bitmask is allowed by ms windows
+                                    // Sb_ATTR_VOLUME is handled seperately
                                     if( nDirFlags & Sb_ATTR_VOLUME )
                                         aPath = aEntry.GetVolume();
                                     else
                                     {
-                                        // Die richtige Auswahl treffen
                                         sal_uInt16 nMode = FSYS_KIND_FILE;
                                         if( nFlags & Sb_ATTR_DIRECTORY )
                                             nMode |= FSYS_KIND_DIR;
@@ -3417,7 +3414,7 @@ StatementControl::StatementControl( SCmdStream *pCmdIn, sal_uInt16 nControlIdTyp
 }

 sal_Bool IsDialog(Window *pWin)
-{   // Alles was von SystemWindow abgeleitet ist
+{   // everything derived from SystemWindow
     if ( !pWin )
         return sal_False;

@@ -3441,7 +3438,7 @@ sal_Bool IsDialog(Window *pWin)
         case WINDOW_PRINTDIALOG:
         case WINDOW_PRINTERSETUPDIALOG:

-// ab hier nicht ansprechbar (da nicht implementiert)
+// from here on not callable anymore (because not implemented)
         case WINDOW_SYSWINDOW:
         case WINDOW_SYSTEMDIALOG:
         case WINDOW_COLORDIALOG:
@@ -3466,7 +3463,7 @@ sal_Bool IsAccessable(Window *pWin)



-// neue Hilfsfunktion
+// new help function
 static Window*ImpGetButton( Window *pBase, WinBits nMask, WinBits nWinBits )
 {
     sal_uInt16 n = pBase->GetChildCount();
@@ -3613,8 +3610,7 @@ void StatementControl::AnimateMouse( Window *pControl, Point aWohin )
     aDiff *= 1000;
     aDiff /= nSteps;

-    StatementList::bExecuting = sal_True;       // Bah ist das ein ekliger Hack
-                                                // Das verhindert, da� schon der n�chste Befehl ausgef�hrt wird.
+    StatementList::bExecuting = sal_True;

     for ( ; nSteps ; nSteps-- )
     {
@@ -3626,7 +3622,7 @@ void StatementControl::AnimateMouse( Window *pControl, Point aWohin )
         SafeReschedule();
     }
     pControl->SetPointerPosPixel(aZiel);
-    StatementList::bExecuting = sal_False;  // Bah ist das ein ekliger Hack
+    StatementList::bExecuting = sal_False;
 }


@@ -3640,13 +3636,13 @@ sal_Bool StatementControl::MaybeDoTypeKeysDelay( Window *pTestWindow )
         Timer aTimer;
         aTimer.SetTimeout( nTimeWait );
         aTimer.Start();
-        StatementList::bExecuting = sal_True;       // Bah ist das ein ekliger Hack
-                                                    // Das verhindert, da� schon der n�chste Befehl ausgef�hrt wird.
+        StatementList::bExecuting = sal_True;
+
         while ( aTimer.IsActive() )
         {
             SafeReschedule( sal_True );
         }
-        StatementList::bExecuting = sal_False;  // Bah ist das ein ekliger Hack
+        StatementList::bExecuting = sal_False;
         if ( !WinPtrValid(pTestWindow ) )
         {
             ReportError( aUId, GEN_RES_STR1( S_WINDOW_DISAPPEARED, MethodString( nMethodId ) ) );
@@ -3658,7 +3654,7 @@ sal_Bool StatementControl::MaybeDoTypeKeysDelay( Window *pTestWindow )

 sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
 {
-    if( pControl )      // Also auch bei Disabled nicht jedoch bei Invisible
+    if( pControl )      // therefore also if disabled but not if invisible
     {
         switch( nMethodId )
         {
@@ -3670,11 +3666,11 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
             break;
         case M_GetPosX:
             if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r FloatingWindows
+                pControl = pControl->GET_REAL_PARENT();     // special treatment for FloatingWindows
             if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r TabDialoge
+                pControl = pControl->GET_REAL_PARENT();     // special treatment for TabDialoge
             if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r Border
+                pControl = pControl->GET_REAL_PARENT();     // special treatment for Border
             if ( (nParams & PARAM_BOOL_1) && bBool1 )
                 pControl = pControl->GetWindow( WINDOW_OVERLAP );

@@ -3689,11 +3685,11 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
             break;
         case M_GetPosY:
             if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r FloatingWindows
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r TabDialoge
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r Border
+                pControl = pControl->GET_REAL_PARENT();
             if ( (nParams & PARAM_BOOL_1) && bBool1 )
                 pControl = pControl->GetWindow( WINDOW_OVERLAP );

@@ -3708,11 +3704,11 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
             break;
         case M_GetSizeX:
             if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r FloatingWindows
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r TabDialoge
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r Border
+                pControl = pControl->GET_REAL_PARENT();
             if ( (nParams & PARAM_BOOL_1) && bBool1 )
                 pControl = pControl->GetWindow( WINDOW_OVERLAP );

@@ -3720,11 +3716,11 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
             break;
         case M_GetSizeY:
             if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r FloatingWindows
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r TabDialoge
+                pControl = pControl->GET_REAL_PARENT();
             if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
-                pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r Border
+                pControl = pControl->GET_REAL_PARENT();
             if ( (nParams & PARAM_BOOL_1) && bBool1 )
                 pControl = pControl->GetWindow( WINDOW_OVERLAP );

@@ -3733,11 +3729,11 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
         case M_SnapShot:
             {
                 if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
-                    pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r FloatingWindows
+                    pControl = pControl->GET_REAL_PARENT();
                 if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
-                    pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r TabDialoge
+                    pControl = pControl->GET_REAL_PARENT();
                 if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
-                    pControl = pControl->GET_REAL_PARENT();     // Sonderbehandlung f�r Border
+                    pControl = pControl->GET_REAL_PARENT();
                 if ( (nParams & PARAM_BOOL_1) && bBool1 )
                     pControl = pControl->GetWindow( WINDOW_OVERLAP );

@@ -3762,7 +3758,7 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )
                     nNr4 = std::min((sal_uInt16)(pControl->GetSizePixel().Height() + 2*(sal_uInt16)aStart.Y()),nNr4);
                 }
                 if( nParams & PARAM_UINT16_4 )
-                {   // Zuschneiden
+                {   // cutting
                     Point aPt(-nNr1,-nNr2);
                     Size aSz(nNr3,nNr4);
                     VirtualDevice aVDev( *pControl );
@@ -3808,9 +3804,9 @@ sal_Bool StatementControl::HandleVisibleControls( Window *pControl )

 sal_Bool StatementControl::HandleCommonMethods( Window *pControl )
 {
-    switch( nMethodId )     // Diese k�nnen an jedem Window ausgef�hrt werden
+    switch( nMethodId )     // can be done with every window
     {
-        case M_Exists:          // Oben schon Behandelt. Unterdr�ckt hier nur Fehler
+        case M_Exists:          // already handled above, prevents errors only here
         case M_NotExists:
         case M_IsEnabled:
         case M_IsVisible:
@@ -3831,12 +3827,12 @@ sal_Bool StatementControl::HandleCommonMethods( Window *pControl )
             break;
         case M_TypeKeys:
             {
-                if( !(nParams & PARAM_UINT16_1) )   // Anzahl wiederholungen
+                if( !(nParams & PARAM_UINT16_1) )   // number of repititions
                     nNr1 = 1;
                 if( !(nParams & PARAM_BOOL_1) )     // Follow Focus
-                    bBool1 = sal_False;     // so bleibt das bisherige Verhalten
+                    bBool1 = sal_False;     // that way behaviour stays like before

-                if ( !bBool1 )          // Altes Verhalten
+                if ( !bBool1 )          // old behaviour
                     pControl->GrabFocus();
                 else    // If focus is not inside given control we grab it once.
                 {
@@ -3848,7 +3844,7 @@ sal_Bool StatementControl::HandleCommonMethods( Window *pControl )

                 // maybe this can get removed since we are using GetPreferredKeyInputWindow()
                 if ( pControl->GetType() == WINDOW_COMBOBOX )
-                {   // Bei COMBOBOX an das Edit direkt liefern
+                {
                     Window *pTemp = NULL;
                     for ( sal_uInt16 i = 0 ; i < pControl->GetChildCount() && !pTemp ; i++ )
                         if ( pControl->GetChild( i )->GetType() == WINDOW_EDIT )
@@ -3867,12 +3863,12 @@ sal_Bool StatementControl::HandleCommonMethods( Window *pControl )
                             if ( !pFocus || !pControl->IsWindowOrChild( pFocus, sal_True ) )
                                 pControl->GrabFocus();
                         }
-                        if ( bBool1 )   // Jedesmal das FocusWindow finden
+                        if ( bBool1 )   // finde FocusWindow every time
                         {
                             Window *pFocus = GetpApp()->GetFocusWindow();
                             if ( pFocus && pControl->IsWindowOrChild( pFocus, sal_True ) )
                                 pDeliverHere = pFocus;
-                            else    // sonst fallback auf das Basisfenster
+                            else    // fallback to base window
                                 pDeliverHere = pControl;
                         }
                         pDeliverHere = pDeliverHere->GetPreferredKeyInputWindow();
@@ -3943,7 +3939,7 @@ sal_Bool StatementControl::HandleCommonMethods( Window *pControl )
                                 aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_NUM + aCh-'0', 0));
                             else if ( aPrintableMisc.Search(aCh) != STRING_NOTFOUND )
                                 aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_MISC + (sal_uInt16)aPrintableMisc.Search(aCh), 0));
-                            else    // Sollte eigentlich nicht auftreten
+                            else    // Should not happen actually
                                 aEvent = KeyEvent(aCh, KeyCode());
                         }
                         ImplKeyInput( pDeliverHere, aEvent );
@@ -4164,7 +4160,7 @@ sal_Bool StatementControl::HandleCommonMethods( Window *pControl )
                     break;
                 }

-                pControl = pTemp;   // So da� wir unten ohne Fehler durchkommen
+                pControl = pTemp;
                 SplitWindow *pSW = (SplitWindow*) pTemp;

                 switch( nMethodId )
@@ -4374,7 +4370,7 @@ sal_Bool StatementControl::Execute()
     if ( pControl && pControl->GetType() == WINDOW_TOOLBOX )
     {
         if ( !aUId.equals( pControl->GetUniqueOrHelpId() ) )
-        {   // Also wenn wir irgendwas auf einer Toolbox gefunden haben
+        {
             switch ( nMethodId )
             {
                 case M_Click:
@@ -4383,7 +4379,7 @@ sal_Bool StatementControl::Execute()
                 case M_GetState:
                     break;
                 case M_IsEnabled:
-                    nMethodId = _M_IsEnabled;   // Umlabeln, da die Behandlung essentiell anders ist!
+                    nMethodId = _M_IsEnabled;   // change label because treatment is essentially different
                     break;
                 default:
                     pControl = NULL;
@@ -4398,25 +4394,25 @@ sal_Bool StatementControl::Execute()
         case M_NotExists:
             Time aT;
             sal_uInt16 aSeconds = aT.GetMin()*60+aT.GetSec();
-            if ( !bBool2 )          // wurde im Konstruktor auf sal_False gesetzt
+            if ( !bBool2 )          // has been set to sal_False in the constructor
             {
                 bBool2 = sal_True;
                 nNr2 = aSeconds;
                 if( !(nParams & PARAM_UINT16_1) )
-                    nNr1 = 0;       // defaultm��ig sofort zur�ck
+                    nNr1 = 0;
             }
-            if ( aSeconds < nNr2 )          // Falls die Stunde umgesprungen ist
+            if ( aSeconds < nNr2 )
                 aSeconds += 60*60;

             if ( !pControl || !pControl->IsVisible() )
                 pControl = NULL;
             if ( ((nMethodId == M_Exists) && pControl) ||
                  ((nMethodId == M_NotExists) && !pControl) )
-            {   // Wenn Bedingung erf�llt
+            {
                 pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)sal_True );
             }
             else
-                if ( aSeconds <= nNr2 + nNr1 )      // Zeit ist noch nicht abgelaufen
+                if ( aSeconds <= nNr2 + nNr1 )
                     return sal_False;
                 else
                     pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)sal_False );
@@ -4429,7 +4425,7 @@ sal_Bool StatementControl::Execute()

     short nRT = 0;

-    if( pControl )          // Das Fenster Existiert irgendwo, kann aber auch hidden sein!
+    if( pControl )          // the window does exist somewhere but may be hidden
     {
         nRT = ImpGetRType( pControl );
 #if OSL_DEBUG_LEVEL > 1
@@ -4479,7 +4475,7 @@ sal_Bool StatementControl::Execute()
         // TODO: handle GetFocus for all Methods and Windows like this (remove part below)
         //       See for impact of changed focus for HandleVisibleControls() (taking Snapshots might be different, possible exclude those methods)
         if (( (nRT == C_TreeListBox) && !bBool2 )
-            && nMethodId != M_TypeKeys          // TypeKeys macht das selbst, falls eigenes Focushandling gew�nscht
+            && nMethodId != M_TypeKeys
             && nMethodId != M_MouseDown
             && nMethodId != M_MouseUp
             && nMethodId != M_MouseMove )
@@ -4520,7 +4516,7 @@ sal_Bool StatementControl::Execute()
               || nRT == C_TreeListBox
              )
             || nMethodId == M_OpenContextMenu )
-            && nMethodId != M_TypeKeys          // TypeKeys macht das selbst, falls eigenes Focushandling gew�nscht
+            && nMethodId != M_TypeKeys
             && nMethodId != M_MouseDown
             && nMethodId != M_MouseUp
             && nMethodId != M_MouseMove )
@@ -4564,7 +4560,7 @@ sal_Bool StatementControl::Execute()
                             pRet->GenReturn ( RET_Value, aUId, Id2Str( ((TabControl*)pControl)->GetTabPage(((TabControl*)pControl)->GetCurPageId())->GetUniqueOrHelpId() ) );
                             break;
                         case M_SetPage :
-                            {       // Wegen lokaler Variablen
+                            {       // because of local variables
                                 TabControl *pTControl = ((TabControl*)pControl);
                                 sal_uInt16 nActive = pTControl->GetCurPageId();
                                 sal_uInt16 i,anz;
@@ -4590,7 +4586,8 @@ sal_Bool StatementControl::Execute()
                                     i++;
                                     if ( i >= pTControl->GetPageCount() )
                                         i = 0;
-                                    if ( !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) )   // 3 Mal aufrufen
+                                    if ( !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) )
+
                                         break;
                                 }
                                 if ( !aID.equals( aWantedID ) )
@@ -4785,7 +4782,7 @@ sal_Bool StatementControl::Execute()
                                             if ( bUnselectBeforeSelect )
                                                 pLB->SetNoSelection();
                                             pLB->SelectEntryPos( nPos, bBool1 );
-                                            if ( pLB->IsEntryPosSelected( nPos ) ? !bBool1 : bBool1 )   // XOR rein mit BOOL
+                                            if ( pLB->IsEntryPosSelected( nPos ) ? !bBool1 : bBool1 )   // XOR in with BOOL
                                                 ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), aString1 ) );
                                         }
                                     }
@@ -4798,7 +4795,7 @@ sal_Bool StatementControl::Execute()
                                             if ( bUnselectBeforeSelect )
                                                 pLB->SetNoSelection();
                                             pLB->SelectEntryPos( nNr1-1, bBool1 );
-                                            if ( pLB->IsEntryPosSelected( nNr1-1 ) ? !bBool1 : bBool1 ) // XOR rein mit BOOL
+                                            if ( pLB->IsEntryPosSelected( nNr1-1 ) ? !bBool1 : bBool1 ) // XOR in with BOOL
                                                 ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), UniString::CreateFromInt32( nNr1 ) ) );
                                         }
                                     }
@@ -5042,7 +5039,7 @@ sal_Bool StatementControl::Execute()
                         if ( !aUId.equals( pTB->GetUniqueOrHelpId() ) ) // So we found a Button on the ToolBox
                         {
                             if ( (nParams == PARAM_NONE) || (nParams == PARAM_UINT16_1) )
-                            {           // Wir f�lschen einen Parameter
+                            {           // we fake a Parameter
                                 nParams |= PARAM_STR_1;
                                 aString1 = Id2Str( aUId );
                             }
@@ -5113,7 +5110,7 @@ sal_Bool StatementControl::Execute()
                             case M_Click :
                                 {
                                     FIND_ITEM;
-                                    if ( bItemFound )   // FIND_ITEM Erfolgreich
+                                    if ( bItemFound )
                                     {
                                         Rectangle aRect = pTB->GetItemRect(pTB->GetItemId(nItemPos));
                                         if ( aRect.IsEmpty() )
@@ -5141,7 +5138,7 @@ sal_Bool StatementControl::Execute()
                             case M_TearOff :
                                 {
                                     FIND_ITEM;
-                                    if ( bItemFound )   // FIND_ITEM Erfolgreich
+                                    if ( bItemFound )
                                     {
                                         Rectangle aRect = pTB->GetItemPosDropDownRect( nItemPos );
                                         AnimateMouse( pControl, aRect.Center() );
@@ -5150,13 +5147,13 @@ sal_Bool StatementControl::Execute()

                                         Window *pWin = NULL;
                                         // Wait for the window to open.
-                                        StatementList::bExecuting = sal_True;       // Bah ist das ein ekliger Hack
-                                        {                                           // Das verhindert, da� schon der n�chste Befehl ausgef�hrt wird.
+                                        StatementList::bExecuting = sal_True;
+                                        {
                                             Time aDelay;
                                             while ( !pWin && ( (pWin = GetPopupFloatingWin()) == NULL ) && ( Time() - aDelay ).GetSec() < 15 )
                                                 SafeReschedule();
                                         }
-                                        StatementList::bExecuting = sal_False;  // Bah ist das ein ekliger Hack
+                                        StatementList::bExecuting = sal_False;

                                         if ( pWin && pWin->GetType() == WINDOW_FLOATINGWINDOW )
                                         {
@@ -5176,7 +5173,7 @@ sal_Bool StatementControl::Execute()
                             case M_OpenMenu :
                                 {
                                     FIND_ITEM;
-                                    if ( bItemFound )   // FIND_ITEM Erfolgreich
+                                    if ( bItemFound )
                                     {
                                         Rectangle aRect = pTB->GetItemPosDropDownRect( nItemPos );
                                         AnimateMouse( pControl, aRect.Center() );
@@ -5184,7 +5181,7 @@ sal_Bool StatementControl::Execute()
                                         ImplMouseButtonDown( pTB, aMEvnt);
                                         ImplMouseButtonUp( pTB, aMEvnt);

-                                        // Das Fenster ist offen.
+                                        // window is opened
                                         aSubMenuId1 = 0;
                                         aSubMenuId2 = 0;
                                         aSubMenuId3 = 0;
@@ -5195,7 +5192,7 @@ sal_Bool StatementControl::Execute()
                             case _M_IsEnabled:
                                 {
                                     FIND_ITEM;
-                                    if ( bItemFound )   // FIND_ITEM Erfolgreich
+                                    if ( bItemFound )
                                     {
                                         pRet->GenReturn ( RET_Value, aUId, pTB->IsItemEnabled( pTB->GetItemId(nItemPos) ) );
                                     }
@@ -5204,7 +5201,7 @@ sal_Bool StatementControl::Execute()
                             case M_GetState :
                                 {
                                     FIND_ITEM;
-                                    if ( bItemFound )   // FIND_ITEM Erfolgreich
+                                    if ( bItemFound )
                                     {
                                         if ( ValueOK( aUId, CUniString("GetState"), nNr1, 4 ) )
                                             switch (nNr1)
@@ -5257,7 +5254,7 @@ sal_Bool StatementControl::Execute()
                             case M_IsMax:
                             case M_Minimize:
                             case M_Maximize:
-                            case M_Help:        // Alles was unten weiterbehandelt werden soll
+                            case M_Help:        // everything that shall be handled below
                                 goto DockingWin;
                             default:
                                 ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ToolBox" ) );
@@ -5971,7 +5968,7 @@ sal_Bool StatementControl::Execute()
                             else
                                 ReportError( aUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_DOCKING_MODE, MethodString( nMethodId ) ) );
                             break;
-                        case M_Help:        // Alles was unten weiterbehandelt werden soll
+                        case M_Help:
                             goto MoreDialog;

                         default:
@@ -6019,7 +6016,7 @@ sal_Bool StatementControl::Execute()
                             SET_WINP_CLOSING(pControl);
                             ((FloatingWindow*)pControl)->Close();
                             break;
-                        case M_Help:        // Alles was unten weiterbehandelt werden soll
+                        case M_Help:
                         case M_Move:
                             goto MoreDialog;
                         default:
@@ -6122,7 +6119,7 @@ sal_Bool StatementControl::Execute()
                             ((WorkWindow*)pControl)->Maximize( sal_False );
                             ((WorkWindow*)pControl)->Restore();
                             break;
-                        case M_Help:        // Alles was unten weiterbehandelt werden soll
+                        case M_Help:
                             goto MoreDialog;
                         default:
                             ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "WorkWindow" ) );
diff --git a/automation/source/server/statemnt.hxx b/automation/source/server/statemnt.hxx
index d278ae2..48d3a51 100644
--- a/automation/source/server/statemnt.hxx
+++ b/automation/source/server/statemnt.hxx
@@ -27,9 +27,9 @@
  ************************************************************************/
 /***************************************************************************
 **
-**       Von StatementList werden alle Statements abgeleitet.
-**   Es gibt immer nur eine Statementliste, die verpointert ist.
-**       jederzeit kann das der Anfang der Kette abgefragt werden.
+**   All statements are derived from StatementList.
+**   There is never more than one statementlist with a pointer on it.
+**   The beginning of the chain can always be requested.
 **
 ***************************************************************************/
 #ifndef _STATEMNT_HXX
@@ -106,8 +106,8 @@ public:
     sal_Bool HasSearchFlag( SearchFlags aQueryFlag ) { return (nmSearchFlags & aQueryFlag) == aQueryFlag; }
 };

-sal_Bool IsDialog(Window *pWin);        // Ist *pWin von SystemWindow abgeleitet (Kann es Active sein)
-sal_Bool IsAccessable(Window *pWin);    // Ist *pWin Zugreifbar (�ber IsEnabled und Parents gepr�ft)
+sal_Bool IsDialog(Window *pWin);        // is *pWin derived from SystemWindow? (can it be active?)
+sal_Bool IsAccessable(Window *pWin);    // is *pWin accessible (tested with IsEnabled and parents)


 class SafePointer
@@ -163,12 +163,12 @@ protected:

     static sal_Bool bIsInReschedule;
         static sal_uInt16 nModalCount;
-    static Window *pLastFocusWindow;        // Wenn dieses sich �ndert wird Safe Reschedule abgebrochen
-    static sal_Bool bWasDragManager;            // Wenn dieses sich �ndert wird Safe Reschedule abgebrochen
-    static sal_Bool bWasPopupMenu;              // Wenn dieses sich �ndert wird Safe Reschedule abgebrochen
+    static Window *pLastFocusWindow;        // Safe Reschedule will be cancelled if this changes
+    static sal_Bool bWasDragManager;        // Safe Reschedule will be cancelled if this changes
+    static sal_Bool bWasPopupMenu;          // Safe Reschedule will be cancelled if this changes
        static sal_Bool bBasicWasRunning;

-    static sal_uInt16 nMinTypeKeysDelay;                /// Verz�gerung der einzelnen Anschl�ge f�r TypeKeys
+    static sal_uInt16 nMinTypeKeysDelay;
     static sal_uInt16 nMaxTypeKeysDelay;
     static sal_Bool bDoTypeKeysDelay;

@@ -178,7 +178,7 @@ protected:

 public:
     static sal_Bool IsInReschedule() { return bIsInReschedule; }
-    void SafeReschedule( sal_Bool bYield = sal_False )  // Setzt Flag, so da� nicht schon der n�chste Befehl ausgef�hrt wird
+    void SafeReschedule( sal_Bool bYield = sal_False )  // sets flag so that the next command is not executed yet
     {
         nModalCount = Application::GetModalModeCount();
         bIsInReschedule = sal_True;
@@ -200,7 +200,7 @@ public:
         nModalCount = 0;
     }
     static sal_Bool MaybeResetSafeReschedule()
-    {       // Implementierung mu� hier zwar nicht sein, ist aber �bersichtlicher so
+    {
         if ( !bIsInReschedule )
             return sal_False;

@@ -216,7 +216,7 @@ public:
         else
             return sal_False;
     }
-    static void NormalReschedule()  // Setzt das flag nicht
+    static void NormalReschedule()  // does not set the flag
     {
         GetpApp()->Reschedule();
     }
@@ -249,13 +249,12 @@ public:
     void Advance();
     virtual sal_Bool Execute() = 0;
 /***************************************************************************
-** Bestimmt erst den n�chsten Befehl, setzt Current
-** und f�hrt dann aus.
-** Returnwert gibt an, ob Befehl nochmal ausgef�hrt
-** werden soll. Dann mu� auch der UserEvent verlassen werden, um der Applikation
-** normales Arbeiten zu erm�glichen (Dialog schliessen)
-** sal_True bedeutet, dass alles klar gegangen ist
-** sal_False bedeutet nochmal Bitte
+** Gets the next command first, sets current and executes then.
+** Return value tells whether the command shall be executed again.
+** Then the UserEvent must be left to allow the application for
+** normal work (close dialog).
+** sal_True means that everything's OK
+** sal_False means again please
 ***************************************************************************/

     void ReportError(String aMessage);
@@ -277,16 +276,16 @@ public:
     static RetStream *pRet;
     static sal_Bool IsError;
     static sal_Bool bDying;
-    static sal_Bool bExecuting;             // Gesetzt, wenn ein Befehl rescheduled ohne einen neuen Befehl zu erlauben
-    sal_Bool bWasExecuting;                 // Wurde bei einem MaybeResetSafeReschedule resettet, so wird der Zustand danach wiederhergestellt
-    static sal_uInt16 aSubMenuId1;          // Untermen�s bei PopupMenus
-    static sal_uInt16 aSubMenuId2;          // erstmal 2-Stufig
+    static sal_Bool bExecuting;             // is set when a command reschedules without allowing a new command
+    sal_Bool bWasExecuting;                 // if it has been resetted during a MaybeResetSafeReschedule, the same condition is restored after
+    static sal_uInt16 aSubMenuId1;          // submenus in PopUpMenus
+    static sal_uInt16 aSubMenuId2;          // 2 levels at first
     static sal_uInt16 aSubMenuId3;          // and now even 3 levels #i31512#
     static SystemWindow *pMenuWindow;   // when using MenuBar as base for MenuCommands
-    static TTProperties *pTTProperties; // Hier stehen die SlotIDs aus dem SFX drin
+    static TTProperties *pTTProperties; // here are the SlotIDs from the SFX

-    sal_Bool CheckWindowWait();         //True heisst, dass Window noch existiert
-                                    //False -> Window weg;
+    sal_Bool CheckWindowWait();         // true means that the window still exists,
+                                        // false that it does not
     static void SetFirstDocFrame( Window* pWin );
     static Window* GetFirstDocFrame();
     static sal_Bool IsFirstDocFrame( Window* pWin );
@@ -305,7 +304,7 @@ public:
 #endif
 };

-class StatementSlot : public StatementList  //Slots aufrufen
+class StatementSlot : public StatementList  // call slots
 {
 protected:
     sal_uInt16 nAnzahl;
@@ -324,7 +323,7 @@ public:
     virtual sal_Bool Execute();
 };

-class StatementUnoSlot : public StatementSlot   //Uno Slots aufrufen
+class StatementUnoSlot : public StatementSlot   // call uno slots
 {
 public:
     StatementUnoSlot(SCmdStream *pIn);
@@ -336,7 +335,7 @@ union munge
     Window *pWindow;
 };

-class StatementCommand : public StatementList   // Befehl ausf�hren (wintree, resetaplication ...)
+class StatementCommand : public StatementList   // execute command (wintree, resetaplication ...)
 {
     friend class ImplRemoteControl;
 protected:
@@ -397,7 +396,7 @@ public:

 };

-class StatementFlow : public StatementList      // Kommunikation mit Sequence
+class StatementFlow : public StatementList      // communication with sequence
 {
     sal_uInt16 nArt;

@@ -415,8 +414,8 @@ public:
     static CommunicationLink *pCommLink;
     static sal_Bool bSending;

-    static sal_Bool bUseIPC;    // Soll zur r�ckmeldung IPC verwendet werden?
-    static ImplRemoteControl *pRemoteControl;   // Static f�r 2. Constructor
+    static sal_Bool bUseIPC;
+    static ImplRemoteControl *pRemoteControl;   // static for second constructor

 private:
     void SendViaSocket();
diff --git a/automation/source/simplecm/packethandler.cxx b/automation/source/simplecm/packethandler.cxx
index aac5804..d6ba5b3 100644
--- a/automation/source/simplecm/packethandler.cxx
+++ b/automation/source/simplecm/packethandler.cxx
@@ -99,7 +99,7 @@ comm_BOOL PacketHandler::ReceiveData( void* &pData, comm_UINT32 &nLen )
         if ( bWasError )
             return sal_False;

-        if ( 0xFFFFFFFF == nBytes )     // Expliziter Request f�r dieses Datenpaket auf MultiChannel umzuschalten
+        if ( 0xFFFFFFFF == nBytes )     // explicit request for this data package to switch to MultiChannel
         {
             READ_SOCKET( &nBytes, sizeof(nBytes) )
             if ( bWasError )
@@ -114,17 +114,14 @@ comm_BOOL PacketHandler::ReceiveData( void* &pData, comm_UINT32 &nLen )
             comm_UINT32 nReadSoFar = 0;
             comm_UINT32 nHeaderReadSoFar = 0;

-            // Pr�fbyte f�r L�ngenangabe
             unsigned char nLenCheck = 0;
             READ_SOCKET_LEN( &nLenCheck, 1, nReadSoFar );
-            // Stimmt das Pr�fbyte?
             bWasError |= nLenCheck != CalcCheckByte( nBytes );


             comm_UINT16 nHeaderBytes;
             READ_SOCKET_LEN( &nHeaderBytes, 2, nReadSoFar );
             nHeaderBytes = NETWORD( nHeaderBytes );
-            // reicht der Header �ber das Ende hinaus?
             bWasError |= !(nBytes >= nReadSoFar + nHeaderBytes);

             READ_SOCKET_LEN( &nReceiveHeaderType, 2, nHeaderReadSoFar );
@@ -153,7 +150,7 @@ comm_BOOL PacketHandler::ReceiveData( void* &pData, comm_UINT32 &nLen )
             if ( bWasError )
                 return sal_False;

-            /// L�ngen anpassen und ggf restheader �berlesen.
+
             while ( nHeaderBytes > nHeaderReadSoFar )
             {
                 unsigned char nDummy;
@@ -211,13 +208,13 @@ comm_BOOL PacketHandler::TransferData( const void* pData, comm_UINT32 nLen, CMPr
 #ifndef FORCE_MULTI_CHANNEL_HEADERS
     if ( bMultiChannel )
 #endif
-        nBuffer += 1+2+2+2; // f�r einen CH_SimpleMultiChannel
+        nBuffer += 1+2+2+2; // for a CH_SimpleMultiChannel

 #ifdef FORCE_MULTI_CHANNEL_HEADERS
     if ( !bMultiChannel )
     {
         comm_UINT32 n32;
-        n32 = 0xffffffff;   // Umschalten auf MultiChannel
+        n32 = 0xffffffff;   // switch to MultiChannel
         n32 = NETDWORD( n32 );
         WRITE_SOCKET( &n32, 4 );
     }
@@ -238,11 +235,11 @@ comm_BOOL PacketHandler::TransferData( const void* pData, comm_UINT32 nLen, CMPr
         c = CalcCheckByte( nBuffer );
         WRITE_SOCKET( &c, 1 );

-        n16 = 4;    // L�nge des Headers f�r einen CH_SimpleMultiChannel
+        n16 = 4;    // header length for a CH_SimpleMultiChannel
         n16 = NETWORD( n16 );
         WRITE_SOCKET( &n16, 2 );

-        n16 = CH_SimpleMultiChannel;    // Typ des Headers
+        n16 = CH_SimpleMultiChannel;    // header type
         n16 = NETWORD( n16 );
         WRITE_SOCKET( &n16, 2 );

@@ -260,24 +257,24 @@ comm_BOOL PacketHandler::SendHandshake( HandshakeType aHandshakeType, const void

     comm_UINT32 nBuffer = 0;

-//  if ( pMyManager->IsMultiChannel() )     Wir senden immer FFFFFFFF vorweg -> immer MultiChannel (Oder GPF bei �lteren)
-        nBuffer += 1+2+2;   // f�r einen CH_Handshake
+//  if ( pMyManager->IsMultiChannel() )     we always send FFFFFFFF before -> always MultiChannel (or GPF for older ones)
+        nBuffer += 1+2+2;   // for a CH_Handshake

-    nBuffer += 2;   // f�r den Typ des Handshakes
+    nBuffer += 2;   // for the Handshake's type

     switch ( aHandshakeType )
     {
         case CH_REQUEST_HandshakeAlive:
-            nBuffer += 0;   // Keine extra Daten
+            nBuffer += 0;   // no extra data
             break;
         case CH_RESPONSE_HandshakeAlive:
-            nBuffer += 0;   // Keine extra Daten
+            nBuffer += 0;   // no extra data
             break;
         case CH_REQUEST_ShutdownLink:
-            nBuffer += 0;   // Keine extra Daten
+            nBuffer += 0;   // no extra data
             break;
         case CH_ShutdownLink:
-            nBuffer += 0;   // Keine extra Daten
+            nBuffer += 0;   // no extra data
             break;
         case CH_SUPPORT_OPTIONS:
             nBuffer += 2 ;  // one word extradata for options
@@ -293,7 +290,7 @@ comm_BOOL PacketHandler::SendHandshake( HandshakeType aHandshakeType, const void
         nBuffer += nLen;    // Extra data in Buffer

     comm_UINT32 n32;
-    n32 = 0xffffffff;   // Umschalten auf MultiChannel
+    n32 = 0xffffffff;   // switch to MultiChannel
     n32 = NETDWORD( n32 );
     WRITE_SOCKET( &n32, 4 );

@@ -307,15 +304,15 @@ comm_BOOL PacketHandler::SendHandshake( HandshakeType aHandshakeType, const void
     c = CalcCheckByte( nBuffer );
     WRITE_SOCKET( &c, 1 );

-    n16 = 2;    // L�nge des Headers f�r einen CH_Handshake
+    n16 = 2;    // header's length for a CH_Handshake
     n16 = NETWORD( n16 );
     WRITE_SOCKET( &n16, 2 );

-    n16 = CH_Handshake; // Typ des Headers
+    n16 = CH_Handshake; // the header's type
     n16 = NETWORD( n16 );
     WRITE_SOCKET( &n16, 2 );

-    n16 = aHandshakeType;   // Typ des Handshakes
+    n16 = aHandshakeType;   // the header's type
     n16 = NETWORD( n16 );
     WRITE_SOCKET( &n16, 2 );

diff --git a/automation/source/testtool/cmdstrm.cxx b/automation/source/testtool/cmdstrm.cxx
index 0e7adc9..b6f3d31 100644
--- a/automation/source/testtool/cmdstrm.cxx
+++ b/automation/source/testtool/cmdstrm.cxx
@@ -90,7 +90,7 @@ String CmdStream::WandleKeyEventString( String aKeys )
         if ( nPos2 != STRING_NOTFOUND )
         {
             String Work = aKeys.Copy(nPos1+1,nPos2-nPos1+1-2);
-            aKeys.Erase(nPos1,nPos2-nPos1+1);   // Inclusive Spitze Klammern weg
+            aKeys.Erase(nPos1,nPos2-nPos1+1);   // includes removing <>'s
             String Result, Token;
             sal_uInt16 nModify = 0;
             while ( Work.Len() > 0 )
@@ -182,7 +182,7 @@ void CmdStream::WriteSortedParams( SbxArray* rPar, sal_Bool IsKeyString )
         {
             switch (rPar->Get( i )->GetType())
             {
-                case SbxLONG:       // alles immer als Short �bertragen
+                case SbxLONG:       // always pass everything as Short
                 case SbxULONG:
                 case SbxSALINT64:
                 case SbxSALUINT64:
@@ -321,15 +321,15 @@ void CmdStream::GenCmdSlot( sal_uInt16 nNr, SbxArray* rPar )
     Write(nNr);
     if (rPar)
     {
-        sal_uInt16 nAnz = (rPar->Count()-1) >> 1;   // Geteilt durch 2
+        sal_uInt16 nAnz = (rPar->Count()-1) >> 1;
         Write(nAnz);
         sal_Bool bWriteUnoSlot = rPar->Get( 1 )->GetType() == SbxSTRING;

         for (sal_uInt16 n = 1 ; n <= nAnz ; n++)
         {
-            /// #59513# nicht mehr ben�tigt
+            /// #59513# not necessary anymore
 //          sal_uLong nUserData = rPar->Get( 2*n-1 )->GetUserData();
-//          rPar->Get( 2*n-1 )->SetUserData(ID_DoNothing);  // Verhindert Ausf�hrung der Slots, die als Parameter �bergeben sind.
+//          rPar->Get( 2*n-1 )->SetUserData(ID_DoNothing);  // prevents execution of the slots that are passed as parameters

             if ( bWriteUnoSlot )
                 Write(rPar->Get( 2*n-1 )->GetString());
@@ -360,7 +360,7 @@ void CmdStream::GenCmdSlot( sal_uInt16 nNr, SbxArray* rPar )
                 case SbxCHAR:
                     if ( !bWriteUnoSlot )
                         Write( (sal_uInt16)BinString);
-                    Write((String)rPar->Get( 2*n )->GetString());    // Cast f�r OS/2
+                    Write((String)rPar->Get( 2*n )->GetString());    // Cast for OS/2
                     break;
                 case SbxBOOL:
                     if ( !bWriteUnoSlot )
@@ -383,20 +383,20 @@ void CmdStream::GenCmdSlot( sal_uInt16 nNr, SbxArray* rPar )
 void CmdStream::GenCmdUNOSlot( const String &aURL )
 {
     Write( sal_uInt16(SIUnoSlot) );
-/*  Write( sal_uInt16(0) );     // Hier wird im Office die SID_OPENURL Eingetragen.
-                            // Dies mu� nat�rlich im Office hart verdratet werden und nicht hier,
-                            // da sich die ID ja mal �ndern kann.
+/*  Write( sal_uInt16(0) );     // The SID_OPENURL is entered here.
+                            // That must be wired hard in the Office and not here of course
+                            // as the ID might change

-    // Da auch die ID f�r das PoolItem im Office entnommen werden mu� hier also kein PoolItem
-    // gesendet werden.
+    // Because the ID must also be taken for the PoolItem from the Office, it is not
+    // necessary to send a PoolItem here.

-    Write( sal_uInt16(0) );     // Anzahl PoolItems
+    Write( sal_uInt16(0) );     // number of PoolItems

-    // Stattdessen wird noch eine extra String gesendet, der dann Officeseitig in ein
-    // SfxStringItem mit entsprechender ID gewandelt wird.
-    Write( aURL );          // String f�r das PoolItem*/
+    // instead there's an extra string sent by the Office which is changed to an
+    // SfxStringItem with the respective ID
+    Write( aURL );          // String for the PoolItem*/

-    Write( aURL );          // Die UNO URL eben
+    Write( aURL );          // UNO URL
 }

 void CmdStream::GenCmdControl( comm_UINT32 nUId, sal_uInt16 nMethodId, SbxArray* rPar )
@@ -419,14 +419,14 @@ void CmdStream::GenCmdFlow( sal_uInt16 nArt )
 {
     Write(sal_uInt16(SIFlow));
     Write(nArt);
-    Write(sal_uInt16(PARAM_NONE));              // Typ der folgenden Parameter
+    Write(sal_uInt16(PARAM_NONE));              // type of the following parameters
 }

 void CmdStream::GenCmdFlow( sal_uInt16 nArt, comm_UINT32 nNr1 )
 {
     Write(sal_uInt16(SIFlow));
     Write(nArt);
-    Write(sal_uInt16(PARAM_UINT32_1));          // Typ der folgenden Parameter
+    Write(sal_uInt16(PARAM_UINT32_1));          // type of the following parameters
     Write(nNr1);
 }

diff --git a/automation/source/testtool/cmdstrm.hxx b/automation/source/testtool/cmdstrm.hxx
index 5dac92d..7b8afef 100644
--- a/automation/source/testtool/cmdstrm.hxx
+++ b/automation/source/testtool/cmdstrm.hxx
@@ -57,11 +57,11 @@ public:

     SvMemoryStream* GetStream();

-    static CNames *pKeyCodes;           // Namen der Sondertasten  MOD1, F1, LEFT ...
+    static CNames *pKeyCodes;           // names of special keys  MOD1, F1, LEFT ...
     static ControlDefLoad const arKeyCodes [];

 private:
-    String WandleKeyEventString( String aKeys );    // Nutzt pKeyCodes.  <RETURN> <SHIFT LEFT LEFT>
+    String WandleKeyEventString( String aKeys );    // uses pKeyCodes.  <RETURN> <SHIFT LEFT LEFT>

     using CmdBaseStream::Write;
     void Write( comm_UINT16 nNr ){CmdBaseStream::Write( nNr );}
diff --git a/automation/source/testtool/comm_bas.cxx b/automation/source/testtool/comm_bas.cxx
index 7c42d22..ebb4297 100644
--- a/automation/source/testtool/comm_bas.cxx
+++ b/automation/source/testtool/comm_bas.cxx
@@ -38,80 +38,80 @@
 #include <automation/communi.hxx>
 #include <basic/ttstrhlp.hxx>

-// Der CommunicationManager hat folgende Elemente:
+// The CommunicationManager consists of the following elements:
 // 1) Properties:
-//    Keine
-// 2) Methoden:
+//    none
+// 2) Methods:
 //    CommunicationLink StartCommunication( Host, Port )
-//    StopAllCommunication      // Alle Kommunikation wird abgebrochen
-//    sal_Bool IsCommunicationRunning       // Läuft noch irgendwas
-//    String GetMyName      Der eigene Name
-//    sal_Bool IsLinkValid( CommunicationLink )     // Ist dieser Link noch gültig
-//    SetCommunicationEventHandler( String )    // Diese Funktion wird aufgerufen bei jedem Event
+//    StopAllCommunication
+//    sal_Bool IsCommunicationRunning
+//    String GetMyName
+//    sal_Bool IsLinkValid( CommunicationLink )
+//    SetCommunicationEventHandler( String )

-// Der CommunicationLink hat folgende Elemente:
+// The CommunicationLink consists of the following elements:
 // 1) Properties:
-//    Keine
-// 2) Methoden:
-//    StopCommunication     Die Kommunikation wird abgebrochen
-//    String GetMyName      Der eigene Name
-//    String GetHostName    Der Name des Anderen
-//    Send(String )         String an den Partner schicken
-//    String GetString      Ergebnis des letzten Empfangs
+//    none
+// 2) Methods:
+//    StopCommunication
+//    String GetMyName
+//    String GetHostName
+//    Send( String )
+//    String GetString


-// Diese Implementation ist ein Beispiel fuer eine tabellengesteuerte
-// Version, die sehr viele Elemente enthalten kann. Die Elemente werden
-// je nach Bedarf aus der Tabelle in das Objekt uebernommen.
+// This implementation is an example for a table-controlled
+// version that can contain a lot of elements. The elements are
+// taken from the table to the object when needed.

-// Das nArgs-Feld eines Tabelleneintrags ist wie folgt verschluesselt:
+// The nArgs-field of a table entry is encrypted as follows:

-#define _ARGSMASK   0x00FF  // Bis zu 255 Argumente
-#define _RWMASK     0x0F00  // Maske fuer R/W-Bits
-#define _TYPEMASK   0xF000  // Maske fuer den Typ des Eintrags
+#define _ARGSMASK   0x00FF  // up to 255 arguments
+#define _RWMASK     0x0F00  // mask for R/W-Bits
+#define _TYPEMASK   0xF000  // mask for the entry type

-#define _READ       0x0100  // kann gelesen werden
-#define _BWRITE     0x0200  // kann as Lvalue verwendet werden
-#define _LVALUE     _BWRITE  // kann as Lvalue verwendet werden
-#define _READWRITE  0x0300  // beides
-#define _OPT        0x0400  // TRUE: optionaler Parameter
-#define _METHOD     0x1000  // Masken-Bit fuer eine Methode
-#define _PROPERTY   0x2000  // Masken-Bit fuer eine Property
-#define _COLL       0x4000  // Masken-Bit fuer eine Collection
-                            // Kombination von oberen Bits:
-#define _FUNCTION   0x1100  // Maske fuer Function
-#define _LFUNCTION  0x1300  // Maske fuer Function, die auch als Lvalue geht
-#define _ROPROP     0x2100  // Maske Read Only-Property
-#define _WOPROP     0x2200  // Maske Write Only-Property
-#define _RWPROP     0x2300  // Maske Read/Write-Property
-#define _COLLPROP   0x4100  // Maske Read-Collection-Element
+#define _READ       0x0100  // can be read
+#define _BWRITE     0x0200  // can be used as Lvalue
+#define _LVALUE     _BWRITE  // can be used as Lvalue
+#define _READWRITE  0x0300  // both
+#define _OPT        0x0400  // TRUE: optional parameter
+#define _METHOD     0x1000  // mask bit for a method
+#define _PROPERTY   0x2000  // mask bit for a property
+#define _COLL       0x4000  // mask bit for a collection
+                            // combination of bits above:
+#define _FUNCTION   0x1100  // mask for a function
+#define _LFUNCTION  0x1300  // mask for a function, that works as Lvalue too
+#define _ROPROP     0x2100  // mask Read Only-Property
+#define _WOPROP     0x2200  // mask Write Only-Property
+#define _RWPROP     0x2300  // mask Read/Write-Property
+#define _COLLPROP   0x4100  // mask Read-Collection-Element

-#define COLLNAME    "Elements"  // Name der Collection, hier mal hart verdrahtet
+#define COLLNAME    "Elements"  // the collection's name, here wired hard



 CommunicationWrapper::Methods CommunicationWrapper::aManagerMethods[] = {
-// Neue Kommunikation aufbauen
+
 { "StartCommunication", SbxEMPTY, &CommunicationWrapper::MStartCommunication, 2 | _FUNCTION },
-    // Zwei Named Parameter
+
     { "Host", SbxSTRING, NULL, 0 },
     { "Port", SbxLONG, NULL, 0 },
-// Alle Kommunikation wird abgebrochen
+
 { "StopAllCommunication", SbxEMPTY, &CommunicationWrapper::MStopAllCommunication, 0 | _FUNCTION },
-// Läuft noch irgendwas
+
 { "IsCommunicationRunning", SbxBOOL, &CommunicationWrapper::MIsCommunicationRunning, 0 | _FUNCTION },
-// Hostname als FQDN erfragen
+// as FQDN
 { "GetMyName", SbxSTRING, &CommunicationWrapper::MGetMyName, 0 | _FUNCTION },
-// Abfragen ob der Link überhaupt noch gültig ist
+
 { "IsLinkValid", SbxBOOL, &CommunicationWrapper::MIsLinkValid, 1 | _FUNCTION },
-    // Ein Named Parameter
+
     { "Link", SbxOBJECT, NULL, 0 },
-// Dieser Handler wird dauernd gerufen
+
 { "SetCommunicationEventHandler", SbxEMPTY, &CommunicationWrapper::MSetCommunicationEventHandler, 1 | _FUNCTION },
-    // Ein Named Parameter
+
     { "FuncName", SbxSTRING, NULL, 0 },

-{ NULL, SbxNULL, NULL, -1 }};  // Tabellenende
+{ NULL, SbxNULL, NULL, -1 }}; // end of the table



@@ -119,26 +119,26 @@ CommunicationWrapper::Methods CommunicationWrapper::aManagerMethods[] = {


 CommunicationWrapper::Methods CommunicationWrapper::aLinkMethods[] = {
-// Die Kommunikation wird abgebrochen
+
 { "StopCommunication", SbxEMPTY, &CommunicationWrapper::LStopCommunication, 0 | _FUNCTION },
-// Der eigene Name
+
 { "GetMyName", SbxSTRING, &CommunicationWrapper::LGetMyName, 0 | _FUNCTION },
-// Der Name des Anderen
+
 { "GetHostName", SbxSTRING, &CommunicationWrapper::LGetHostName, 0 | _FUNCTION },
-// String an den Partner schicken
+
 { "Send", SbxEMPTY, &CommunicationWrapper::LSend, 1 | _FUNCTION },
-    // Ein Named Parameter
+
     { "SendString", SbxSTRING, NULL, 0 },
-// Ergebnis des letzten Empfangs
+
 { "GetString", SbxSTRING, &CommunicationWrapper::LGetString, 0 | _FUNCTION },

-{ NULL, SbxNULL, NULL, -1 }};  // Tabellenende
+{ NULL, SbxNULL, NULL, -1 }};  // end of the table





-// Konstruktor für den Manager
+// constructor for the manager
 CommunicationWrapper::CommunicationWrapper( const String& rClass ) : SbxObject( rClass )
 , m_pLink( NULL )
 , m_bIsManager( sal_True )
@@ -152,7 +152,7 @@ CommunicationWrapper::CommunicationWrapper( const String& rClass ) : SbxObject(
     m_pManager->SetDataReceivedHdl( LINK( this, CommunicationWrapper, Data ) );
 }

-// Konstruktor für den Link
+// constructor for the link
 CommunicationWrapper::CommunicationWrapper( CommunicationLink *pThisLink ) : SbxObject( CUniString("Link") )
 , m_pLink( pThisLink )
 , m_bIsManager( sal_False )
@@ -163,7 +163,7 @@ CommunicationWrapper::CommunicationWrapper( CommunicationLink *pThisLink ) : Sbx
     m_pManager = (CommunicationManagerClientViaSocket*)pThisLink->GetCommunicationManager();
 }

-// Destruktor
+// deconstructor
 CommunicationWrapper::~CommunicationWrapper()
 {
     if ( m_bIsManager )
@@ -171,20 +171,20 @@ CommunicationWrapper::~CommunicationWrapper()
 }


-// Suche nach einem Element:
-// Hier wird linear durch die Methodentabelle gegangen, bis eine
-// passende Methode gefunden wurde.
-// Wenn die Methode/Property nicht gefunden wurde, nur NULL ohne
-// Fehlercode zurueckliefern, da so auch eine ganze Chain von
-// Objekten nach der Methode/Property befragt werden kann.
+// Search for an element:
+// Here it goes through the method table until an appropriate one
+// has been found.
+// If the method/property has not been found, get back only NULL
+// without error code because that way a whole chain of objects
+// can be asked for the method/property.

 SbxVariable* CommunicationWrapper::Find( const String& rName, SbxClassType t )
 {
-    // Ist das Element bereits vorhanden?
+    // Does the element exist already?
     SbxVariable* pRes = SbxObject::Find( rName, t );
     if( !pRes && t != SbxCLASS_OBJECT )
     {
-        // sonst suchen
+        // look for it if not
         Methods* p = m_pMethods;
         short nIndex = 0;
         sal_Bool bFound = sal_False;
@@ -199,7 +199,7 @@ SbxVariable* CommunicationWrapper::Find( const String& rName, SbxClassType t )
         }
         if( bFound )
         {
-            // Args-Felder isolieren:
+            // isolate args-fields:
             short nAccess = ( p->nArgs & _RWMASK ) >> 8;
             short nType   = ( p->nArgs & _TYPEMASK );
             String aName( p->pName, RTL_TEXTENCODING_ASCII_US );
@@ -209,9 +209,8 @@ SbxVariable* CommunicationWrapper::Find( const String& rName, SbxClassType t )
             else if( nType & _METHOD )
                 eCT = SbxCLASS_METHOD;
             pRes = Make( aName, eCT, p->eType );
-            // Wir setzen den Array-Index + 1, da ja noch andere
-            // Standard-Properties existieren, die auch aktiviert
-            // werden muessen.
+            // We set the array-index + 1, because there are still
+            // other standard properties existing, which have to be activated.
             pRes->SetUserData( nIndex + 1 );
             pRes->SetFlags( nAccess );
         }
@@ -219,7 +218,7 @@ SbxVariable* CommunicationWrapper::Find( const String& rName, SbxClassType t )
     return pRes;
 }

-// Aktivierung eines Elements oder Anfordern eines Infoblocks
+// activation of an element or asking for an infoblock

 void CommunicationWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
                              const SfxHint& rHint, const TypeId& rHT )
@@ -230,7 +229,7 @@ void CommunicationWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
         SbxVariable* pVar = pHint->GetVar();
         SbxArray* pPar = pVar->GetParameters();
         sal_uInt16 nIndex = (sal_uInt16) pVar->GetUserData();
-        // kein Index: weiterreichen!
+        // no index: hand on!
         if( nIndex )
         {
             sal_uLong t = pHint->GetId();
@@ -243,13 +242,13 @@ void CommunicationWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
                     bWrite = sal_True;
                 if( t == SBX_HINT_DATAWANTED || bWrite )
                 {
-                    // Parameter-Test fuer Methoden:
+                    // parameter test for methods:
                     sal_uInt16 nPar = m_pMethods[ --nIndex ].nArgs & 0x00FF;
-                    // Element 0 ist der Returnwert
+                    // element 0 is the return value
                     if( ( !pPar && nPar )
                      || ( pPar && pPar->Count() != nPar+1 ) )
                         SetError( SbxERR_WRONG_ARGS );
-                    // Alles klar, man kann den Call ausfuehren
+
                     else
                     {
                         (this->*(m_pMethods[ nIndex ].pFunc))( pVar, pPar, bWrite );
@@ -261,13 +260,13 @@ void CommunicationWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
     }
 }

-// Zusammenbau der Infostruktur fuer einzelne Elemente
+// construction of the info-structure for single elements

 SbxInfo* CommunicationWrapper::GetInfo( short nIdx )
 {
     Methods* p = &m_pMethods[ nIdx ];
-    // Wenn mal eine Hilfedatei zur Verfuegung steht:
-    // SbxInfo* pInfo = new SbxInfo( Hilfedateiname, p->nHelpId );
+    // if there's a help-file some time:
+    // SbxInfo* pInfo = new SbxInfo( helpfilename, p->nHelpId );
     SbxInfo* pRetInfo = new SbxInfo;
     short nPar = p->nArgs & _ARGSMASK;
     for( short i = 0; i < nPar; i++ )
@@ -285,7 +284,7 @@ SbxInfo* CommunicationWrapper::GetInfo( short nIdx )

 ////////////////////////////////////////////////////////////////////////////

-// Hilfsmethoden für den Manager
+// help methods for the manager

 IMPL_LINK( CommunicationWrapper, Open, CommunicationLink*, pLink )
 {
@@ -322,19 +321,18 @@ void CommunicationWrapper::Events( String aType, CommunicationLink* pLink )
         Call( m_aEventHandlerName, pPar );
     }
     else
-        delete pLink->GetServiceData();     // Stream wegschmeissen um nicht zu blockieren
+        delete pLink->GetServiceData();     // give away the stream to prevent blocking
 }


 ////////////////////////////////////////////////////////////////////////////

-// Properties und Methoden legen beim Get (bPut = sal_False) den Returnwert
-// im Element 0 des Argv ab; beim Put (bPut = sal_True) wird der Wert aus
-// Element 0 gespeichert.
+// Properties and methods put down the return value for Get (bPut = sal_False) at
+// element 0 of the Argv; for Put (bPut = sal_True) the value from element 0 is saved.

-// Die Methoden:
+// the methods:

-// Manager
+// manager
 void CommunicationWrapper::MStartCommunication( SbxVariable* pVar, SbxArray* pPar, sal_Bool /*bWrite*/ )
 { //    CommunicationLink StartCommunication( Host, Port )
     m_bCatchOpen = sal_True;
@@ -351,28 +349,28 @@ void CommunicationWrapper::MStartCommunication( SbxVariable* pVar, SbxArray* pPa
 }

 void CommunicationWrapper::MStopAllCommunication( SbxVariable* /*pVar*/, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    StopAllCommunication        // Alle Kommunikation wird abgebrochen
+{ //    StopAllCommunication
     m_pManager->StopCommunication();
 }

 void CommunicationWrapper::MIsCommunicationRunning( SbxVariable* pVar, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    sal_Bool IsCommunicationRunning     // Läuft noch irgendwas
+{ //    sal_Bool IsCommunicationRunning
     pVar->PutBool( m_pManager->IsCommunicationRunning() );
 }

 void CommunicationWrapper::MGetMyName( SbxVariable* pVar, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    String GetMyName        Der eigene Name
+{ //    String GetMyName
     pVar->PutString( UniString( m_pManager->GetMyName( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
 }

 void CommunicationWrapper::MIsLinkValid( SbxVariable* pVar, SbxArray* pPar, sal_Bool /*bWrite*/ )
-{ //    sal_Bool IsLinkValid( CommunicationLink )       // Ist dieser Link noch gültig
+{ //    sal_Bool IsLinkValid( CommunicationLink )
     CommunicationWrapper *pWrapper = (CommunicationWrapper*)(pPar->Get( 1 )->GetObject());
     pVar->PutBool( m_pManager->IsLinkValid( pWrapper->GetCommunicationLink() ) );
 }

 void CommunicationWrapper::MSetCommunicationEventHandler( SbxVariable* /*pVar*/, SbxArray* pPar, sal_Bool /*bWrite*/ )
-{ //    SetCommunicationEventHandler( String )  // Diese Funktion wird aufgerufen bei jedem Event
+{ //    SetCommunicationEventHandler( String )
     m_aEventHandlerName = pPar->Get( 1 )->GetString();
 }

@@ -382,22 +380,22 @@ void CommunicationWrapper::MSetCommunicationEventHandler( SbxVariable* /*pVar*/,

 //      Link
 void CommunicationWrapper::LStopCommunication( SbxVariable* /*pVar*/, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    StopCommunication       Die Kommunikation wird abgebrochen
+{ //    StopCommunication
     m_pLink->StopCommunication();
 }

 void CommunicationWrapper::LGetMyName( SbxVariable* pVar, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    String GetMyName        Der eigene Name
+{ //    String GetMyName
     pVar->PutString( UniString( m_pLink->GetMyName( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
 }

 void CommunicationWrapper::LGetHostName( SbxVariable* pVar, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    String GetHostName  Der Name des Anderen
+{ //    String GetHostName
     pVar->PutString( UniString( m_pLink->GetCommunicationPartner( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
 }

 void CommunicationWrapper::LSend( SbxVariable* /*pVar*/, SbxArray* pPar, sal_Bool /*bWrite*/ )
-{ //    Send(String )           String an den Partner schicken
+{ //    Send(String )
     SvStream *pSendStream = m_pLink->GetBestCommunicationStream();
     String aSendString = pPar->Get( 1 )->GetString();
     pSendStream->WriteByteString( aSendString, RTL_TEXTENCODING_UTF8 );
@@ -406,7 +404,7 @@ void CommunicationWrapper::LSend( SbxVariable* /*pVar*/, SbxArray* pPar, sal_Boo
 }

 void CommunicationWrapper::LGetString( SbxVariable* pVar, SbxArray* /*pPar*/, sal_Bool /*bWrite*/ )
-{ //    String GetString        Ergebnis des letzten Empfangs
+{ //    String GetString
     SvStream *pReceiveStream = m_pLink->GetServiceData();
     if ( pReceiveStream )
     {
@@ -427,8 +425,6 @@ void CommunicationWrapper::LGetString( SbxVariable* pVar, SbxArray* /*pPar*/, sa



-// Die Factory legt unser Objekte an.
-
 SbxObject* CommunicationFactory::CreateObject( const String& rClass )
 {
     if( rClass.CompareIgnoreCaseToAscii( "CommunicationManager" ) == COMPARE_EQUAL )
diff --git a/automation/source/testtool/comm_bas.hxx b/automation/source/testtool/comm_bas.hxx
index 32da48a..7e8553a 100644
--- a/automation/source/testtool/comm_bas.hxx
+++ b/automation/source/testtool/comm_bas.hxx
@@ -36,11 +36,10 @@
 class CommunicationManagerClientViaSocket;
 class CommunicationLink;

-class CommunicationWrapper : public SbxObject   // Einer f�r Manager und Links
+class CommunicationWrapper : public SbxObject   // one for manager(s) and links
 {
-    // Definition eines Tabelleneintrags. Dies wird hier gemacht,
-    // da dadurch die Methoden und Properties als private deklariert
-    // werden koennen.
+    // definition of a table entry. That's done here because the
+    // methods and properties can be declared private that way.
 #if defined ( ICC ) || defined ( C50 )
 public:
 #endif
@@ -51,17 +50,17 @@ private:
 #endif

     struct Methods {
-        const char* pName;      // Name des Eintrags
-        SbxDataType eType;      // Datentyp
-        pMeth pFunc;            // Function Pointer
-        short nArgs;            // Argumente und Flags
+        const char* pName;
+        SbxDataType eType;
+        pMeth pFunc;
+        short nArgs;
     };
-    static Methods aManagerMethods[];   // Methodentabelle
-    static Methods aLinkMethods[];      // Methodentabelle
-    Methods *m_pMethods;    // Aktuelle Methodentabelle
+    static Methods aManagerMethods[];   // method table
+    static Methods aLinkMethods[];      // method table
+    Methods *m_pMethods;    // current method table

-    // Methoden
-    //      Manager
+    // methods
+    //      manager
     void MStartCommunication( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void MStopAllCommunication( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void MIsCommunicationRunning( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
@@ -69,19 +68,18 @@ private:
     void MIsLinkValid( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void MSetCommunicationEventHandler( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );

-    //      Link
+    //      link
     void LStopCommunication( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void LGetMyName( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void LGetHostName( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void LSend( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );
     void LGetString( SbxVariable* pVar, SbxArray* pPar, sal_Bool bWrite );

-    // Interne Member und Methoden
+    // internal members and methods
     CommunicationManagerClientViaSocket *m_pManager;
     CommunicationLink *m_pLink;
-    sal_Bool m_bIsManager;  // Ist es kein Manager, so ist es ein Link
+    sal_Bool m_bIsManager;

-    // Kram f�r Manager
     DECL_LINK( Open, CommunicationLink* );
     DECL_LINK( Close, CommunicationLink* );
     DECL_LINK( Data, CommunicationLink* );
@@ -91,7 +89,6 @@ private:
     String m_aEventHandlerName;

     using SbxVariable::GetInfo;
-    // Infoblock auffuellen
     SbxInfo* GetInfo( short nIdx );

     // Broadcaster Notification
@@ -101,14 +98,13 @@ public:
     CommunicationWrapper( const String& );
     CommunicationWrapper( CommunicationLink *pThisLink );
     ~CommunicationWrapper();
-    // Suchen eines Elements
+
     virtual SbxVariable* Find( const String&, SbxClassType );

     CommunicationLink* GetCommunicationLink() { return m_pLink; }
 };


-// Die dazugehoerige Factory:

 class CommunicationFactory : public SbxFactory
 {
diff --git a/automation/source/testtool/httprequest.cxx b/automation/source/testtool/httprequest.cxx
index 4ec2f64..1ff53ad 100644
--- a/automation/source/testtool/httprequest.cxx
+++ b/automation/source/testtool/httprequest.cxx
@@ -91,7 +91,7 @@ sal_Bool HttpRequest::Execute()
     }

     TimeValue aTV;
-    aTV.Seconds = 10;       // Warte 10 Sekunden
+    aTV.Seconds = 10;       // wait for 10 seconds
     aTV.Nanosec = 0;

     pOutSocket = new osl::ConnectorSocket();

diff --git a/automation/source/testtool/objtest.cxx b/automation/source/testtool/objtest.cxx
index 80de2e2..1701dfb 100644
--- a/automation/source/testtool/objtest.cxx
+++ b/automation/source/testtool/objtest.cxx
@@ -106,7 +106,7 @@ CNames *Controls::pClasses = NULL;
 ControlDefLoad const TestToolObj::arR_Cmds [] =
 #include "r_cmds.hxx"
 CNames *TestToolObj::pRCommands = NULL;
-CErrors *TestToolObj::pFehlerListe = NULL;      // Hier werden die Fehler des Testtools gespeichert
+CErrors *TestToolObj::pFehlerListe = NULL;      // the errors from the testtool are stored here


 DBG_NAME( ControlItem )
@@ -285,7 +285,7 @@ SbxTransportMethod::SbxTransportMethod( SbxDataType DT )
 }


-TestToolObj::TestToolObj( String aName, MyBasic* pBas )                // Aufruf im Testtool
+TestToolObj::TestToolObj( String aName, MyBasic* pBas )                // call in the testtool
 : SbxObject( aName )
 , bUseIPC(sal_True)
 , bReturnOK(sal_True)
@@ -317,7 +317,7 @@ TestToolObj::TestToolObj( String aName, MyBasic* pBas )                // Aufruf
     pCommunicationManager->SetDataReceivedHdl( LINK( this, TestToolObj, ReturnResultsLink ));
 }

-void TestToolObj::LoadIniFile()             // Laden der IniEinstellungen, die durch den ConfigDialog ge�ndert werden k�nnen
+void TestToolObj::LoadIniFile()
 {
 #define GETSET(aVar, KeyName, Dafault)                          \
     {                                                           \
@@ -371,7 +371,7 @@ void TestToolObj::LoadIniFile()             // Laden der IniEinstellungen, die d
     aConf.SetGroup("Misc");

     String aST;
-    GETSET( aST, "ServerTimeout", rtl::OString::valueOf(Time(0,0,45).GetTime()) );     // 45 Sekunden Initial
+    GETSET( aST, "ServerTimeout", rtl::OString::valueOf(Time(0,0,45).GetTime()) );     // 45 seconds initial
     pImpl->aServerTimeout = Time(sal_uLong(aST.ToInt64()));

     String aSOSE;
@@ -459,7 +459,7 @@ void TestToolObj::LoadIniFile()             // Laden der IniEinstellungen, die d
     pMeth->SetUserData( nID );                                                  \
 }

-// SetUserData mu� irgendwas sein, sonst wird es im Find rausgefiltert!!!
+// SetUserData must be something, it will be filtered out later otherwise!!!
 #define MAKE_USHORT_CONSTANT(cName, nValue)                                     \
     {                                                                           \
         SbxProperty *pVal = new SbxProperty( CUniString( cName) , SbxINTEGER ); \
@@ -472,7 +472,7 @@ void TestToolObj::LoadIniFile()             // Laden der IniEinstellungen, die d

 void TestToolObj::InitTestToolObj()
 {
-    pImpl->nNumBorders = 0;                 // F�r Profiling mit k�stchen
+    pImpl->nNumBorders = 0;                 // for profiling with boxes

     pImpl->nMinRemoteCommandDelay = 0;
     pImpl->nMaxRemoteCommandDelay = 0;
@@ -499,7 +499,7 @@ void TestToolObj::InitTestToolObj()
     pImpl->pChildEnv = new Environment;

     if (!pFehlerListe)
-        pFehlerListe = new CErrors;             // Vor allem anderen. Wer weiss, wer alles einen Fehler ausl�st.
+        pFehlerListe = new CErrors;

     In = new CmdStream();

@@ -542,19 +542,19 @@ void TestToolObj::InitTestToolObj()
     MAKE_TT_KEYWORD( "MaybeAddErr", SbxCLASS_METHOD, SbxNULL, ID_MaybeAddErr );
     MAKE_TT_KEYWORD( "ClearError", SbxCLASS_METHOD, SbxNULL, ID_ClearError );
     MAKE_TT_KEYWORD( "SaveIDs", SbxCLASS_METHOD, SbxBOOL, ID_SaveIDs );
-    MAKE_TT_KEYWORD( "AutoExecute", SbxCLASS_PROPERTY, SbxBOOL, ID_AutoExecute );   // Achtung! PROPERTY Also eine Variable
+    MAKE_TT_KEYWORD( "AutoExecute", SbxCLASS_PROPERTY, SbxBOOL, ID_AutoExecute );   // Attention! PROPERTY therefore a variable
     MAKE_TT_KEYWORD( "Execute", SbxCLASS_METHOD, SbxNULL, ID_Execute );
     MAKE_TT_KEYWORD( "StopOnSyntaxError", SbxCLASS_PROPERTY, SbxBOOL, ID_StopOnSyntaxError );

-/*  Dialog Handler werden gebraucht, wenn im internen Testtool ein Dialog
-    hochgerissen wird. Nach versenden der Remote-Kommandos wird IdleHandler aktiviert.
-    Er testet, ob das Reschedule zum WaitForAnswer zur�ckkehrt. Bleibt das aus, so
-    wird erst der RemoteHandler zur�ckgesetzt und dann die Handler-Sub im Basic
-    gerufen.(Entkoppelt �ber PostUserEvent.)
+/*  Dialog Handler are needed for dialogues in the internal testtool.
+    remote commands the IdleHandler is activated. It tests whether the
+    reschedule returns to WaitForAnswer. If this is not the case, the
+    RemoteHandler is resetted and then the Handler-Sub is called in the
+    basic (uncoupled by PostUserEvent).

-    In returndaten_verarbeiten wird flag f�r ausf�hrung des n�chsten remote-befehls
-    r�ckgesetzt. Der Handler wird damit auch entwertet. Er gilt also nur f�r den
-    n�chsten Remotebefehl.
+    In returndaten_verarbeiten flag after flag is resetted for the execution
+    of the next remote command. The Handler is devalued too then.
+    So it counts for the next remote command only.
 */
     MAKE_TT_KEYWORD( "DialogHandler", SbxCLASS_METHOD, SbxNULL, ID_DialogHandler );

@@ -594,7 +594,7 @@ void TestToolObj::InitTestToolObj()
     MAKE_TT_KEYWORD( "HTTPSetProxy", SbxCLASS_METHOD, SbxNULL, ID_HTTPSetProxy );

     // Load the Remote Commands from list
-    if ( !pRCommands )                 // Ist static, wird also nur einmal geladen
+    if ( !pRCommands )                 // is static and called only once therefore
         ReadFlatArray( arR_Cmds, pRCommands );
     sal_uInt16 i;
     for ( i = 0 ; i < pRCommands->Count() ; i++ )
@@ -612,11 +612,11 @@ void TestToolObj::InitTestToolObj()
         StartListening( pMeth->GetBroadcaster(), sal_True );
     }

-// Konstanten f�r SetControlType
+// constants for SetControlType
     MAKE_USHORT_CONSTANT("CTBrowseBox",CONST_CTBrowseBox);
     MAKE_USHORT_CONSTANT("CTValueSet",CONST_CTValueSet);

-// Konstanten f�r das Alignment des gesuchten Splitters
+// constants for the alignment of the requested splitter
     MAKE_USHORT_CONSTANT("AlignLeft",CONST_ALIGN_LEFT);
     MAKE_USHORT_CONSTANT("AlignTop",CONST_ALIGN_TOP);
     MAKE_USHORT_CONSTANT("AlignRight",CONST_ALIGN_RIGHT);
@@ -693,7 +693,7 @@ TestToolObj::~TestToolObj()
     if (pFehlerListe)
     {
         delete pFehlerListe;
-        pFehlerListe = NULL;    // da pFehlerListe static ist!!
+        pFehlerListe = NULL;    // because pFehlerListe is static!!
     }

     if ( pCommunicationManager )
@@ -728,11 +728,11 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s
 {
 /*******************************************************************************
 **
-**               Folgende Dateiendungen sind vorhanden
+**               the following file extensions are available:
 **
-**               hid.lst                Langname UId
-**               *.sid                  Slot Ids Kurzname Langname Datei ist flach
-**               *.win                  Controlname Langname Datei mit *name und +name Notation
+**               hid.lst                long name UId
+**               *.sid                  Slot Ids short name long name file is flat
+**               *.win                  Controlname long name file with *name and +name notation
 **
 **
 *******************************************************************************/
@@ -746,7 +746,7 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s
     ControlDef   *pNewDef, *pNewDef2;
     ControlDef   *pFatherDef = NULL;

-    nLineNr = 0;    // Wir sind ja noch vor der Datei
+    nLineNr = 0;

     if (! pUIds)
     {
@@ -857,7 +857,7 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s
         }
         sal_Bool bMozillaName = ( !bIsFlat && aLongname.Copy( 0, 4 ).EqualsIgnoreCaseAscii( ".moz" ) );

-        if ( aShortname.GetChar(0) == '+' )          // Kompletten Eintrag kopieren
+        if ( aShortname.GetChar(0) == '+' )          // copy complete entry
         {
             aShortname.Erase(0,1);
             ControlDef WhatName(aLongname,rtl::OString());
@@ -896,7 +896,7 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s
             else
             #endif
                 if ( !bUnoName && !bMozillaName )
-            {   // Bestimmen der ID aus der Hid.Lst
+            {   // get the ID from the Hid.Lst
                 ControlDef WhatName(aLongname,rtl::OString());
                 if (pUIds->Seek_Entry(&WhatName,&nElement))
                     aUId = pUIds->GetObject(nElement)->pData->aUId;
@@ -923,7 +923,7 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s



-            if (aShortname.GetChar(0) == '*' || bIsFlat)     // Globaler Kurzname (Dialogname oder SId)
+            if (aShortname.GetChar(0) == '*' || bIsFlat)     // global short name (dialogue name or SId)
             {
                 if (!bIsFlat)
                     aShortname.Erase(0,1);
@@ -935,7 +935,7 @@ void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, s
                     pNewDef->Sons( new CNames() );

                        pNewDef2 = new ControlDef(aShortname,aUId);
-                    if (!pNewDef->SonInsert( pNewDef2 ))         // Dialog in eigenen Namespace eintragen
+                    if (!pNewDef->SonInsert( pNewDef2 ))         // enter dialogue into its own namespace
                     {
                         delete pNewDef2;
                         OSL_FAIL(" !!!! ACHTUNG !!!!  Fehler beim einf�gen in leere Liste!");
@@ -998,7 +998,7 @@ void TestToolObj::AddName(String &aBisher, String &aNeu )


 void TestToolObj::ReadFlat( String Filename, CNames *&pNames, sal_Bool bSortByName )
-//  Wenn bSortByName == sal_False, dann nach UId Sortieren (ControlItemUId statt ControlDef)
+//  if bSortByName == sal_False, sort by UId (ControlItemUId instead of ControlDef)
 {
     SvFileStream Stream;
     String       aLine,aLongname;
@@ -1015,7 +1015,7 @@ void TestToolObj::ReadFlat( String Filename, CNames *&pNames, sal_Bool bSortByNa
         return;
     }

-    nLineNr = 0;    // Wir sind ja noch vor der Datei
+    nLineNr = 0;

     if ( !pNames )
         pNames = new CNames();
@@ -1116,7 +1116,7 @@ void TestToolObj::WaitForAnswer ()
             else
                 aRun = BasicRuntime( NULL );
         }
-        if ( bWasRealWait && aDialogHandlerName.Len() > 0 )     // Damit das ganze auch im Testtool l�uft
+        if ( bWasRealWait && aDialogHandlerName.Len() > 0 )
             CallDialogHandler(GetpApp());
     }
     else
@@ -1155,7 +1155,7 @@ IMPL_LINK( TestToolObj, IdleHdl, Application*, EMPTYARG )
 {
     if ( !bReturnOK )
         nIdleCount++;
-    if ( nIdleCount > 10 )  // d.h. Schon 10 mal hier gewesen und noch keinmal im WaitForAnswer
+    if ( nIdleCount > 10 )  // means been here for 10 times already and none of these in WaitForAnswer
     {
         GetpApp()->RemoveIdleHdl( LINK( this, TestToolObj, IdleHdl ) );
         GetpApp()->PostUserEvent( LINK( this, TestToolObj, CallDialogHandler ) );
@@ -1169,10 +1169,10 @@ IMPL_LINK( TestToolObj, CallDialogHandler, Application*, EMPTYARG )
     String aHandlerName(aDialogHandlerName);
     aDialogHandlerName.Erase();

-    sal_uLong nRememberSequence = nSequence; // Da sich die Sequence im DialogHandler �ndert
+    sal_uLong nRememberSequence = nSequence;
     ((StarBASIC*)GetParent())->Call( aHandlerName );
     nSequence = nRememberSequence;
-    // Die Sequenznummern werden dann zwar doppelt vergeben, aber wen k�mmerts.
+

     nWindowHandlerCallLevel--;
     return 0;
@@ -1231,14 +1231,14 @@ void TestToolObj::SendViaSocket()
         {
             ADD_ERROR(ERR_SEND_TIMEOUT,GEN_RES_STR1(S_TIMOUT_SENDING, String::CreateFromInt64(nSequence)));
             nSequence++;
-            bReturnOK = sal_True;               // Kein Return zu erwarten
+            bReturnOK = sal_True;               // no return to be expected
         }
     }
     else
     {
         ADD_ERROR(ERR_SEND_TIMEOUT,GEN_RES_STR1(S_NO_CONNECTION, String::CreateFromInt64(nSequence)));
         nSequence++;
-        bReturnOK = sal_True;               // Kein Return zu erwarten
+        bReturnOK = sal_True;
     }

 }
@@ -1247,7 +1247,7 @@ void TestToolObj::EndBlock()
 {
     if (IsBlock)
     {
-        pImpl->LocalStarttime = Time::GetSystemTicks(); // Setzen der Anfangszeit f�r Performancemessung
+        pImpl->LocalStarttime = Time::GetSystemTicks(); // setting the initial time for performance measuring

         In->GenCmdFlow (F_EndCommandBlock);

@@ -1381,7 +1381,7 @@ sal_Bool TestToolObj::ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pC
             aUId = rtl::OString();// nUId;
         }

-        if (aName.GetChar(0) == '*' || bIsFlat )     // Globaler Kurzname (Dialogname oder SId)
+        if (aName.GetChar(0) == '*' || bIsFlat )     // global short name (dialogue name or SId)
         {
             if (!bIsFlat)
                 aName.Erase(0,1);
@@ -1391,8 +1391,8 @@ sal_Bool TestToolObj::ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pC
             {
                 pNewDef->Sons(new CNames());

-                pNewDef2 = new ControlDef(aName,aUId);      // Noch einen machen
-                if (!pNewDef->SonInsert(pNewDef2))                              // Dialog in eigenen Namespace eintragen
+                pNewDef2 = new ControlDef(aName,aUId);
+                if (!pNewDef->SonInsert(pNewDef2))          // enter dialogue into its own namespace
                 {
                     delete pNewDef2;
                     OSL_FAIL(" !!!! ACHTUNG !!!!  Fehler beim einf�gen in leere Liste!");
@@ -1492,7 +1492,7 @@ sal_Bool TestToolObj::WriteNamesBin( String Filename, CNames *pSIds, CNames *pCo
 void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                             const SfxHint& rHint, const TypeId& )
 {
-    static CNames *pUIds = NULL;    // Halten der hid.lst
+    static CNames *pUIds = NULL;    // hold the hid.lst

     const SbxHint* p = PTR_CAST(SbxHint,&rHint);
     if( p )
@@ -1512,7 +1512,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     {
                         m_pNameKontext = m_pControls;

-                        // So da� nicht immer mal wieder was aus einem alten Kontext dazwischenhaut
+
                         for (sal_uInt16 i=0;i<VAR_POOL_SIZE;i++)
                         {
                             pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
@@ -1528,7 +1528,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         {
                             m_pNameKontext = ((ControlDef*)m_pControls->GetObject(nElement))->GetSons();

-                            // So da� nicht immer mal wieder was aus einem alten Kontext dazwischenhaut
+
                             for (sal_uInt16 i=0;i<VAR_POOL_SIZE;i++)
                             {
                                 pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
@@ -1573,7 +1573,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     pCommunicationManager->KillApplication();
                     break;
                 case ID_SaveIDs:
-                    if ( rPar && rPar->Count() >= 2 )  // Genau ein Parameter
+                    if ( rPar && rPar->Count() >= 2 )  // one parameter excactly
                     {
                         SbxVariableRef pArg = rPar->Get( 1 );
                     #if defined(WNT)
@@ -1587,7 +1587,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_AutoExecute:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )  // rPar = NULL  <=>  no parameters
                     {
                         pVar->PutBool(SingleCommandBlock);
                     }
@@ -1595,7 +1595,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_Execute:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
                         EndBlock();
                         BeginBlock();
@@ -1604,7 +1604,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_DialogHandler:
-                    if ( rPar && rPar->Count() >= 2 )  // Genau ein Parameter
+                    if ( rPar && rPar->Count() >= 2 )
                     {
                         SbxVariableRef pArg = rPar->Get( 1 );
                         aDialogHandlerName = pArg->GetString();
@@ -1613,7 +1613,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_GetError:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
                         WaitForAnswer();
                         if ( IS_ERROR() )
@@ -1630,7 +1630,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_StartUse:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
                         {
                             BasicRuntime aRun = BasicRuntimeAccess::GetRuntime();
@@ -1790,9 +1790,9 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_FinishUse:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
-                        ADD_CASE_LOG( String() );       // Case abschliessen
+                        ADD_CASE_LOG( String() );       // close case
                         if (!m_pControls)
                             m_pControls = new CNames();

@@ -1823,7 +1823,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_CaseLog:
-                    if ( rPar )  // rPar != NULL  <=>  Es gibt Parameter
+                    if ( rPar )  // rPar != NULL  <=>  there are parameters
                     {
                         sal_uInt16 n;
                         String aX;
@@ -1928,7 +1928,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     }
                     break;
                 case ID_QAErrorLog:
-                    if ( rPar )  // rPar != NULL  <=>  Es gibt Parameter
+                    if ( rPar )
                     {
                         sal_uInt16 n;
                         String aSammel;
@@ -1941,7 +1941,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     }
                     break;
                 case ID_PrintLog:
-                    if ( rPar )  // rPar != NULL  <=>  Es gibt Parameter
+                    if ( rPar )
                     {
                         sal_uInt16 n;
                         String aSammel;
@@ -1954,7 +1954,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     }
                     break;
                 case ID_WarnLog:
-                    if ( rPar )  // rPar != NULL  <=>  Es gibt Parameter
+                    if ( rPar )
                     {
                         sal_uInt16 n;
                         String aSammel;
@@ -1982,7 +1982,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     }
                     break;
                 case ID_GetNextCloseWindow:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
                         SetError( SbxERR_NOTIMP );
                     }
@@ -2012,7 +2012,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         {
                             WaitForAnswer();
                         }
-                        // f�r einige noch etwas Nachbehandlung
+
                         switch ( ((SbxTransportMethod*)pVar)->nValue )
                         {
                             case RC_WinTree:
@@ -2022,7 +2022,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     }
                     break;
                 case ID_Dispatch:
-                    if ( !rPar || (rPar->Count() % 2) == 1 )  // rPar = NULL  <=>  Kein Parameter ansonsten Gerade Anzahl(Ungerade, da immer Anzahl+1
+                    if ( !rPar || (rPar->Count() % 2) == 1 )
                     {
                         if ( SingleCommandBlock )
                             BeginBlock();
@@ -2036,7 +2036,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_UNODispatch:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter ansonsten Gerade Anzahl(Ungerade, da immer Anzahl+1
+                    if ( !rPar )
                     {
                         if ( SingleCommandBlock )
                             BeginBlock();
@@ -2112,11 +2112,11 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     break;
                 case ID_GetUnoApp:
                     {
-                        // Hier wird der Remote UNO Kram gestartet
-                        // Eintrag in die Konfiguration unter
+                        // the remote UNO stuff is started here
+                        // entry into the configuration at
                         // org.openoffice.Office.Common/Start/Connection
                         //  socket,host=0,port=12345;iiop;XBla
-                        // oder
+                        // or
                         //  socket,host=0,port=12345;urp;;XBla

                         String aString;
@@ -2144,7 +2144,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                             Reference< XInterface > xRet( xBridge->getInstance( OUString( RTL_CONSTASCII_USTRINGPARAM("StarOffice.ServiceManager")) ) );

                             smgr_xMultiserviceFactory = Reference< XMultiServiceFactory >(xRet, UNO_QUERY);
-    //MBA fragen!!
+    // ask MBA!!
                         }
                         catch( class Exception & rEx)
                         {
@@ -2168,7 +2168,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     break;
                 case ID_GetIServer:
                     {
-                        // Hier wird der Remote UNO Kram gestartet
+                        // remote UNO stuff is started here

                         String aString;

@@ -2211,7 +2211,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                     {
                         switch (rPar->Get( 1 )->GetType())
                         {
-                            case SbxLONG:       // alles immer als Short �bertragen
+                            case SbxLONG:       // pass always everything as Short
                             case SbxULONG:
                             case SbxSALINT64:
                             case SbxSALUINT64:
@@ -2502,7 +2502,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
             switch( nHintUserData )
             {
                 case ID_AutoExecute:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                     {
                         SingleCommandBlock = pVar->GetBool();
                         if ( SingleCommandBlock )
@@ -2514,7 +2514,7 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                         SetError( SbxERR_WRONG_ARGS );
                     break;
                 case ID_EnableQaErrors:
-                    if ( !rPar )  // rPar = NULL  <=>  Kein Parameter
+                    if ( !rPar )
                         pImpl->bEnableQaErrors = pVar->GetBool();
                     else
                         SetError( SbxERR_WRONG_ARGS );
@@ -2547,12 +2547,12 @@ void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
         else if( nHintId == SBX_HINT_BASICSTOP )
         {
             // Log summary to journal
-            ADD_CASE_LOG( String() );       // Case abschliessen
+            ADD_CASE_LOG( String() );       // close case
             ADD_MESSAGE_LOG( CUniString("***************************************************") );
             if ( pImpl->nErrorCount )
             {
                 ADD_WARNING_LOG( GEN_RES_STR1( S_ERRORS_DETECTED, String::CreateFromInt32( pImpl->nErrorCount ) ) );
-                pImpl->nWarningCount--;     // Anpassen, da diese Warnung nicht in die Statistik soll
+                pImpl->nWarningCount--;     // adjust because this warning shall not be in the statistics
             }
             else
                 ADD_MESSAGE_LOG( GEN_RES_STR0( S_NO_ERRORS_DETECTED ) );
@@ -2596,7 +2596,7 @@ void TestToolObj::DebugFindNoErrors( sal_Bool bDebugFindNoErrors )
 SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
 {
     if ( BasicRuntimeAccess::IsRunInit()
-    || ( aStr == String( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) ) ) )            // wegen Find im "Global" Befehl des Basic
+    || ( aStr == String( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) ) ) )            // because of find in the "global" command of the basic
         return NULL;

     SbxVariableRef Old = SbxObject::Find(aStr, aType );
@@ -2615,7 +2615,7 @@ SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
         sal_uInt16 nElement;
         ControlDef *pWhatName = new ControlDef(aStr,rtl::OString());

-        /// nach Controls suchen
+        /// look for controls
         if (m_pNameKontext && m_pNameKontext->Seek_Entry(pWhatName,&nElement))
         {
             delete pWhatName;
@@ -2661,7 +2661,7 @@ SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
             return pImpl->pControlsObj;
         }

-        /// Nach slots suchen
+        /// look for slots
         if (m_pSIds && m_pSIds->Seek_Entry(pWhatName,&nElement))
         {
             SbxTransportMethodRef pMyVar;
@@ -2689,13 +2689,13 @@ SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
             return pMyVar;
         }

-        /// es kann sich noch um eine SlotID handeln, die numerisch abgefragt wird, statt ausgef�hrt zu werden
+        /// it might be a SlotID that is asked numerically instead of being executed
         if ( aStr.Copy( aStr.Len()-3, 3 ).CompareIgnoreCaseToAscii("_ID") == COMPARE_EQUAL && m_pSIds )
         {
             delete pWhatName;
             pWhatName = new ControlDef( aStr.Copy( 0, aStr.Len()-3 ), rtl::OString() );
             if ( m_pSIds->Seek_Entry( pWhatName, &nElement ) )
-            {   // Nach slots suchen
+            {   // look for slots
                 SbxVariable *pReturn = new SbxVariable;
                 delete pWhatName;
                 pWhatName = ( (ControlDef*)m_pSIds->GetObject( nElement ) );
@@ -2836,7 +2836,7 @@ xub_StrLen TestToolObj::PreCompilePart( String &aSource, xub_StrLen nStart, xub_

     xub_StrLen nTry2 = 0;
     while ( !WasPrecompilerError() && (nTry2 = ImplSearch( aSource, nStart, nEnd, CUniString("try"), nTry+1 )) != STRING_NOTFOUND )
-    {   // Wir rekursieren erstmal mit dem 2. Try
+    {
         if ( nTry2 < nCatch )
             nEnd += PreCompilePart( aSource, nTry2, nEndcatch+8, aCatchLabel, nLabelCount ) - nEndcatch-8;
         else
@@ -2859,7 +2859,7 @@ xub_StrLen TestToolObj::PreCompilePart( String &aSource, xub_StrLen nStart, xub_
     }

     String aReplacement;
-    int nTotalLength = -3 -5 -8;    // try, catch und endcatch fallen raus
+    int nTotalLength = -3 -5 -8;    // try, catch and endcatch are separated out

     aReplacement.AppendAscii( "on error goto " );
     aReplacement += aCatchLabel;
@@ -2926,7 +2926,7 @@ sal_Bool TestToolObj::WasPrecompilerError()

 String TestToolObj::PreCompile( String const &aSourceIn )
 {
-    // Im CTOR zu fr�h, und hier grade nicg rechtzeitig. Start und Stop von Programmausf�hrung
+
     StartListening( ((StarBASIC*)GetParent())->GetBroadcaster(), sal_True );

     xub_StrLen nTestCase;
@@ -2936,10 +2936,9 @@ String TestToolObj::PreCompile( String const &aSourceIn )
     bWasPrecompilerError = sal_False;

 HACK("Ich gestehe alles: Ich war zu faul das richtig zu machen.")
-    aSource = String(' ').Append( aSource );        // Da Schl�sselworte an Position 0 sonst nicht gefunden werden
+    aSource = String(' ').Append( aSource );


-//      Erstmal alle "'" Kommentare raus

     xub_StrLen nComment;
     while ( (nComment = aSource.SearchAscii("'",nStartPos)) != STRING_NOTFOUND )
@@ -2952,7 +2951,7 @@ HACK("Ich gestehe alles: Ich war zu faul das richtig zu machen.")
                 nStringEndCount++;
             nIndex--;
         }
-        if ( (nStringEndCount & 1) == 0 )       // Wir waren also nicht innerhalb eines Strings
+        if ( (nStringEndCount & 1) == 0 )
         {
             xub_StrLen nComEnd = aSource.SearchAscii("\n",nComment);

@@ -3028,7 +3027,7 @@ void TestToolObj::AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem )
     {
         AddName( pControls->GetObject(nNr)->pData->Kurzname, pNewItem->pData->Kurzname );
         delete pNewItem;
-        pNewItem = (ControlItemUId*)pControls->GetObject(nNr);  // f�r einf�gen der S�hne
+        pNewItem = (ControlItemUId*)pControls->GetObject(nNr);
     }
     else
     {
@@ -3044,7 +3043,7 @@ IMPL_LINK( TestToolObj, ReturnResultsLink, CommunicationLink*, pCommLink )

 void TestToolObj::ReadHidLstByNumber()
 {
-    // Die Hid.Lst nach Nummern sortiert einlesen
+
     if ( !m_pReverseUIds )
     {
         String aName = (pImpl->aHIDDir + DirEntry(CUniString("hid.lst"))).GetFull();
@@ -3065,7 +3064,7 @@ void TestToolObj::ReadHidLstByNumber()

 void TestToolObj::SortControlsByNumber( sal_Bool bIncludeActive )
 {
-    // Die Controls einmal hirarchisch und einmal alle flach nach nummer sortiert
+
     if ( !m_pReverseControls && !m_pReverseControlsSon && m_pControls )
     {
         m_pReverseControls = new CNames;
@@ -3080,7 +3079,7 @@ void TestToolObj::SortControlsByNumber( sal_Bool bIncludeActive )
             if (! ((ControlItemUIdSon*)pNewFather)->GetSons() )
                 ((ControlItemUIdSon*)pNewFather)->Sons( new CNames );

-            // Existieren S�hne, diese in beide Listen eintragen
+
             CNames *pControlList = ((ControlItemSon*)m_pControls->GetObject(nWin))->GetSons();
             if ( pControlList )
                 for ( nCont = 0 ; nCont < pControlList->Count() ; nCont++ )
@@ -3105,7 +3104,7 @@ void TestToolObj::SortControlsByNumber( sal_Bool bIncludeActive )
             if ( m_pReverseControls->Seek_Entry( pZeroItem, &nNr ) )
             {
                 m_pReverseControls->DeleteAndDestroy( nNr );
-// um VorlagenLaden/UntergeordneteIniDatei/SpeichernDlg/OrdnerDlg/OeffnenDlg/MessageBox/LetzteVersion/GrafikEinfuegenDlg/FarbeDlg/ExportierenDlg/DruckerEinrichten/DruckenDlg/DateiEinfuegenDlg/Active zu verhindern
+// to prevent VorlagenLaden/UntergeordneteIniDatei/SpeichernDlg/OrdnerDlg/OeffnenDlg/MessageBox/LetzteVersion/GrafikEinfuegenDlg/FarbeDlg/ExportierenDlg/DruckerEinrichten/DruckenDlg/DateiEinfuegenDlg/Active
             }
             delete pZeroItem;
         }
@@ -3145,7 +3144,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
             else
             {
                 comm_UINT32 nUId;
-                pRetStream->Read( nUId );         // bei Sequence einfach die Sequence
+                pRetStream->Read( nUId );
                 // FIXME: HELPID
                 #if 0
                 aUId = rtl::OString( nUId );
@@ -3234,7 +3233,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                         ReadHidLstByNumber();
                         SortControlsByNumber();

-                        // Alle Slots nach Nummer Sortiert
+
                         if ( !m_pReverseSlots && m_pSIds )
                         {
                             m_pReverseSlots = new CNames;
@@ -3258,7 +3257,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                         pWinInfo->aKurzname.Erase();
                         pWinInfo->aSlotname.Erase();

-                        // eventuell den Kontext feststellen. Passiert nur beim ersten Eintrag nach reset
+                        // detect context maybe - happens only at the first entry after reset
                         if ( !pReverseControlsKontext && m_pReverseControlsSon )
                         {
                             sal_uInt16 nNr;
@@ -3274,13 +3273,13 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                             delete pNewItem;
                         }

-                        // Reset. Mu� nach bestimmen des Kontext stehen, da sonst mit dem reset-record
-                        // der Kontext falsch gesetzt wird.
+                        // Reset. Must be done after determining the context because the context is set the
+                        // wrong way with the reset record otherwise.
                         if ( pWinInfo->bIsReset )
-                            pReverseControlsKontext = NULL; // Reihenfolge wichtig!
+                            pReverseControlsKontext = NULL; // order important!


-                        // Kurzname feststellen
+                        // get short name
                         if ( pReverseControlsKontext )
                         {
                             sal_uInt16 nNr;
@@ -3292,7 +3291,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                             delete pNewItem;
                         }

-                        // Slotname feststellen
+
                         if ( m_pReverseSlots )
                         {
                             sal_uInt16 nNr;
@@ -3302,7 +3301,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                             delete pNewItem;
                         }

-                        // Langname feststellen
+
                         // FIXME: HELPID
                         #if 0
                         if ( aUId.HasString() )
@@ -3492,7 +3491,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                         sal_Bool bWriteNewKontext = sal_False;

                         aControls.Erase();
-                        // Kurzname feststellen
+
                         if ( m_pReverseControls )
                         {
                             sal_uInt16 nNr;
@@ -3525,7 +3524,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                                 Sound::Beep( SOUND_WARNING );
                             }

-                            // now determin the best common kontext
+                            // now determine the best common kontext
                             sal_uInt16 i,j;
                             sal_Bool bFoundUlongName = sal_False, bFoundControl = sal_False;
                             // check for current kontext
@@ -3647,7 +3646,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
                                 xub_StrLen i;
                                 for ( i = 0; i < aString1.Len(); i++ )
                                 {
-                                    if ( ((sal_uInt16)aString1.GetChar(i)) == 1 )   // we have a spechial char
+                                    if ( ((sal_uInt16)aString1.GetChar(i)) == 1 )   // we have a special char
                                     {
                                         i++;
                                         if ( !bIsProsa )
@@ -3762,7 +3761,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
             else
             {
                 comm_UINT32 nUId;
-                pRetStream->Read( nUId );         // bei Sequence einfach die Sequence
+                pRetStream->Read( nUId );
                 // FIXME: HELPID
                 #if 0
                 aUId = rtl::OString( nUId );
@@ -3808,7 +3807,7 @@ sal_Bool TestToolObj::ReturnResults( SvStream *pIn )
 String TestToolObj::GetMethodName( sal_uLong nMethodId )
 {
     sal_uInt16 nElement;
-    if ( !Controls::pClasses )                        // Ist static, wird also nur einmal geladen
+    if ( !Controls::pClasses )
         ReadFlatArray( Controls::arClasses, Controls::pClasses );
     if ( Controls::pClasses )
     {
@@ -3828,7 +3827,7 @@ String TestToolObj::GetMethodName( sal_uLong nMethodId )
 String TestToolObj::GetKeyName( sal_uInt16 nKeyCode )
 {
     sal_uInt16 nElement;
-    if ( !CmdStream::pKeyCodes )                        // Ist static, wird also nur einmal geladen
+    if ( !CmdStream::pKeyCodes )
         ReadFlatArray( CmdStream::arKeyCodes, CmdStream::pKeyCodes );
     if ( CmdStream::pKeyCodes )
     {
@@ -3881,7 +3880,7 @@ static ControlDefLoad const arRes_Type [] =
         if ( aType.CompareTo(RcKenn ) == COMPARE_EQUAL )
         {
             bFound = sal_True;
-            if ( !pRCommands )                 // Ist static, wird also nur einmal geladen
+            if ( !pRCommands )
                 ReadFlatArray( arR_Cmds, pRCommands );

             sal_uInt16 nElement;
@@ -3903,7 +3902,7 @@ static ControlDefLoad const arRes_Type [] =
         if ( aType.CompareTo(TypeKenn ) == COMPARE_EQUAL )
         {
             bFound = sal_True;
-            if ( !pRTypes )                 // Ist static, wird also nur einmal geladen
+            if ( !pRTypes )
                 ReadFlatArray( arRes_Type, pRTypes );

             sal_uInt16 nElement;
@@ -3966,7 +3965,7 @@ SbTextType TestToolObj::GetSymbolType( const String &rSymbol, sal_Bool bWasContr

     if ( bWasControl )
     {
-        if ( !Controls::pClasses )                        // Ist static, wird also nur einmal geladen
+        if ( !Controls::pClasses )
             ReadFlatArray( Controls::arClasses, Controls::pClasses );

         if ( (Controls::pClasses && Controls::pClasses->Seek_Entry( &WhatName ))
@@ -3977,7 +3976,7 @@ SbTextType TestToolObj::GetSymbolType( const String &rSymbol, sal_Bool bWasContr
             return TT_NOMETHOD;
     }

-    // Die Controls durchsuchen
+
     if ( m_pControls )
     {
         sal_uInt16 nWin;
@@ -3989,24 +3988,24 @@ SbTextType TestToolObj::GetSymbolType( const String &rSymbol, sal_Bool bWasContr
         }
     }

-    // Die Slots durchsuchen
+
     if ( m_pSIds && m_pSIds->Seek_Entry( &WhatName ) )
         return TT_SLOT;

-    // Ist es ein RemoteCommand
-    if ( !pRCommands )                 // Ist static, wird also nur einmal geladen
+
+    if ( !pRCommands )
         ReadFlatArray( arR_Cmds, pRCommands );
     if ( pRCommands && pRCommands->Seek_Entry( &WhatName ) )
         return TT_REMOTECMD;

-    // Wenns sonst nix war, dann vielleicht ein Lokales Kommando
+
     SbxVariable *pVar = SbxObject::Find( rSymbol, SbxCLASS_DONTCARE );
     if ( pVar && ( pVar->ISA(SbxMethod) || pVar->ISA(SbxProperty) ) )
     {
         return TT_LOCALCMD;
     }

-    return SB_SYMBOL;   // Alles was hier landet ist vom Typ SB_SYMBOL und bleibt es auch
+    return SB_SYMBOL;
 }


@@ -4040,7 +4039,7 @@ void Controls::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,

 SbxVariable* Controls::Find( const String& aStr, SbxClassType aType)
 {
-    if ( !pClasses )                        // Ist static, wird also nur einmal geladen
+    if ( !pClasses )
         ReadFlatArray( arClasses, pClasses );

     if ( GetUserData() == ID_ErrorDummy )
@@ -4078,9 +4077,9 @@ SbxVariable* Controls::Find( const String& aStr, SbxClassType aType)

 String TTFormat::ms2s( sal_uLong nMilliSeconds )
 {
-    if ( nMilliSeconds < 100000 )       // 100 Sekunden
+    if ( nMilliSeconds < 100000 )
         return String::CreateFromInt64( nMilliSeconds );
-    if ( nMilliSeconds < 100000*60 )    // 100 Minuten
+    if ( nMilliSeconds < 100000*60 )
         return String::CreateFromInt32( nMilliSeconds / 1000 ).AppendAscii("Sec");
     return String::CreateFromInt32( nMilliSeconds / 1000 / 60 ).AppendAscii("Min");
 }

diff --git a/automation/source/testtool/objtest.hxx b/automation/source/testtool/objtest.hxx
index 5c95fea..df1b06c 100644
--- a/automation/source/testtool/objtest.hxx
+++ b/automation/source/testtool/objtest.hxx
@@ -44,7 +44,7 @@
 //  #define ID_EndBlock     2
 #define ID_Kontext      3
 #define ID_GetError     4
-#define ID_ErrorDummy   5            // Intern zum Behandlen von Fehlenden Controls und Methoden
+#define ID_ErrorDummy   5            // internal for handling of missing controls and methods
 #define ID_RecordError  6
 #define ID_Start        7
 //#define ID_Kill           8
@@ -139,7 +139,7 @@ SV_DECL_PTRARR_SORT_DEL(CNames, ControlItem*, 50, 10)
 class ControlSon
 {
 protected:
-    CNames *pSons;      // um sicherzustelle, da� nur S�hne des richtien Type reinkommen
+    CNames *pSons;

 public:
     ControlSon() : pSons( NULL ) {};
@@ -223,7 +223,7 @@ public:

     void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
     virtual SbxVariable* Find( const String&, SbxClassType );
-    SbxTransportMethodRef pMethodVar;     // zum Transport von Find nach Notify
+    SbxTransportMethodRef pMethodVar;     // for transport from Find to Notify
     static CNames  *pClasses;
     static ControlDefLoad const arClasses [];
 };
@@ -234,23 +234,24 @@ typedef std::map< String, String > Environment;
 class ImplTestToolObj
 {
 public:
-    String ProgParam;           // Parameter der zu Testenden APP; Gesetzt �ber Start
+    String ProgParam;           // parameters of the APP to be tested; set over Start

-    DirEntry aFileBase;         // Grundpfad f�r die *.sid und *.win Dateien (Aus Configdatei)
-    DirEntry aLogFileBase;      // Grundpfad f�r die *.res Dateien (Aus Configdatei)
-    DirEntry aHIDDir;           // Verzeichnis, in dem die hid.lst gesucht wird
+    DirEntry aFileBase;         // base path for the *.sid and *.win files (from the configfile)
+    DirEntry aLogFileBase;      // base path for the *.res files (from the configfile)
+    DirEntry aHIDDir;           // directory in which the hid.lst is searched for

-    SbxTransportMethodRef pNextReturn;  // Verweis auf die Var, die den Returnwert aufnimmt.
+    SbxTransportMethodRef pNextReturn;
+
+    ControlsRef pControlsObj;

-    ControlsRef pControlsObj;           // Jeweiliges Objekt, an dem Methoden aufgerufen weden.

 #define VAR_POOL_SIZE 8
-    SbxTransportMethodRef pMyVars[VAR_POOL_SIZE];  // Falls in Ausdr�cken mehrere verwendet werden
+    SbxTransportMethodRef pMyVars[VAR_POOL_SIZE];

     Time aServerTimeout;


-// Profiling Datenfelder
+// profiling data fields
     sal_uLong LocalStarttime;
     sal_uInt16 nNumBorders;
     sal_uLong naValBorders[4];
@@ -262,7 +263,7 @@ public:
     sal_uLong nMaxRemoteCommandDelay;
     sal_Bool bDoRemoteCommandDelay;

-    sal_Bool bLnaguageExtensionLoaded;      // Wurde �ber 'use' was geladen? F�r syntax highlighting
+    sal_Bool bLnaguageExtensionLoaded;      // something loaded via 'use'? for syntax highlighting
     SfxBroadcaster *pTTSfxBroadcaster;

     sal_uLong nErrorCount;
diff --git a/automation/source/testtool/tcommuni.cxx b/automation/source/testtool/tcommuni.cxx
index 32b9707..d3bbcc7 100644
--- a/automation/source/testtool/tcommuni.cxx
+++ b/automation/source/testtool/tcommuni.cxx
@@ -71,7 +71,7 @@ sal_Bool CommunicationManagerClientViaSocketTT::RetryConnect()
 {
     if ( !bApplicationStarted )
     {
-        // Die App ist wohl nicht da. Starten wir sie mal.
+
         if ( aAppPath.Len() )
         {
             delete pProcess;
@@ -84,7 +84,7 @@ sal_Bool CommunicationManagerClientViaSocketTT::RetryConnect()

             if ( bSucc )
             {
-                aFirstRetryCall = Time() + Time( 0, 1 );    // Max eine Minute Zeit
+                aFirstRetryCall = Time() + Time( 0, 1 );
                 for ( int i = 10 ; i-- ; )
                     GetpApp()->Reschedule();
             }
@@ -97,7 +97,7 @@ sal_Bool CommunicationManagerClientViaSocketTT::RetryConnect()
         if ( aFirstRetryCall > Time() )
         {
             Timer aWait;
-            aWait.SetTimeout( 500 );         // Max 500 mSec
+            aWait.SetTimeout( 500 );
             aWait.Start();
             while ( aWait.IsActive() )
                 GetpApp()->Yield();
diff --git a/basctl/source/basicide/basicbox.cxx b/basctl/source/basicide/basicbox.cxx
index 6eda4be..b66e141 100644
--- a/basctl/source/basicide/basicbox.cxx
+++ b/basctl/source/basicide/basicbox.cxx
@@ -166,7 +166,7 @@ BasicLibBox::BasicLibBox( Window* pParent, const uno::Reference< frame::XFrame >
     m_xFrame( rFrame )
 {
     FillBox();
-    bIgnoreSelect = sal_True;   // Select von 0 noch nicht weiterleiten
+    bIgnoreSelect = sal_True;   // do not yet transfer select of 0
     bFillBox = sal_True;
     SelectEntryPos( 0 );
     aCurText = GetEntry( 0 );
@@ -183,7 +183,7 @@ BasicLibBox::~BasicLibBox()

 void BasicLibBox::Update( const SfxStringItem* pItem )
 {
-    // Immer auf dem laufenden sein...
+
 //  if ( !pItem  || !pItem->GetValue().Len() )
         FillBox();

@@ -206,7 +206,7 @@ void BasicLibBox::ReleaseFocus()
     if ( pCurSh )
     {
         Window* pShellWin = pCurSh->GetWindow();
-        if ( !pShellWin )       // sonst werde ich ihn nicht los
+        if ( !pShellWin )
             pShellWin = Application::GetDefDialogParent();

         pShellWin->GrabFocus();
@@ -243,7 +243,7 @@ void BasicLibBox::FillBox()
     SelectEntry( aCurText );
     if ( !GetSelectEntryCount() )
     {
-        SelectEntryPos( GetEntryCount() );  // gibst es nicht => leer?
+        SelectEntryPos( GetEntryCount() );
         aCurText = GetSelectEntry();
     }
     bIgnoreSelect = sal_False;
@@ -321,7 +321,7 @@ void BasicLibBox::Select()
         if ( !bIgnoreSelect )
             NotifyIDE();
         else
-            SelectEntry( aCurText );    // Seit 306... (Select nach Escape)
+            SelectEntry( aCurText );    // since 306... (Select after Escape)
     }
 }

diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index 294bda7..5c20eff 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -116,7 +116,7 @@ void lcl_PrintHeader( Printer* pPrinter, sal_uInt16 nPages, sal_uInt16 nCurPage,

     long nFontHeight = pPrinter->GetTextHeight();

-    // 1.Border => Strich, 2+3 Border = Freiraum.
+    // 1st Border => line, 2+3 Border = free space
     long nYTop = TMARGPRN-3*nBorder-nFontHeight;

     long nXLeft = nLeftMargin-nBorder;
@@ -167,14 +167,14 @@ void lcl_ConvertTabsToSpaces( String& rLine )
         {
             if ( rLine.GetChar( nPos ) == '\t' )
             {
-                // Nicht 4 Blanks, sondern an 4er TabPos:
+                // not 4 Blanks, but at 4 TabPos:
                 String aBlanker;
                 aBlanker.Fill( ( 4 - ( nPos % 4 ) ), ' ' );
                 rLine.Erase( nPos, 1 );
                 rLine.Insert( aBlanker, nPos );
                 nMax = rLine.Len();
             }
-            nPos++; // Nicht optimal, falls Tab, aber auch nicht verkehrt...
+            nPos++;
         }
     }
 }
@@ -235,13 +235,13 @@ void ModulWindow::GetFocus()
         return;
     DBG_CHKTHIS( ModulWindow, 0 );
     aXEditorWindow.GetEdtWindow().GrabFocus();
-    // Basisklasse nicht rufen, weil Focus jetzt woanders...
+    // don't call basic calls because focus is somewhere else...
 }

 void ModulWindow::DoInit()
 {
     DBG_CHKTHIS( ModulWindow, 0 );
-    // Wird beim Umschalten der Fenster gerufen...
+
     if ( GetVScrollBar() )
         GetVScrollBar()->Hide();
     GetHScrollBar()->Show();
@@ -269,7 +269,7 @@ void ModulWindow::CheckCompileBasic()

     if ( XModule().Is() )
     {
-        // Zur Laufzeit wird niemals compiliert!
+        // never compile while running!
         sal_Bool bRunning = StarBASIC::IsRunning();
         sal_Bool bModified = ( !xModule->IsCompiled() ||
             ( GetEditEngine() && GetEditEngine()->IsModified() ) );
@@ -337,7 +337,7 @@ sal_Bool ModulWindow::BasicExecute()
             // Init cursor to top
             nCurMethodStart = ( aSel.GetStart().GetPara() + 1 );
             SbMethod* pMethod = 0;
-            // erstes Macro, sonst blind "Main" (ExtSearch?)
+            // first Macro, else blind "Main" (ExtSearch?)
             for ( sal_uInt16 nMacro = 0; nMacro < xModule->GetMethods()->Count(); nMacro++ )
             {
                 SbMethod* pM = (SbMethod*)xModule->GetMethods()->Get( nMacro );
@@ -361,13 +361,13 @@ sal_Bool ModulWindow::BasicExecute()
                 BasicDLL::SetDebugMode( sal_True );
                 BasicIDE::RunMethod( pMethod );
                 BasicDLL::SetDebugMode( sal_False );
-                // Falls waehrend Interactive=sal_False abgebrochen
+                // if cancelled during Interactive=sal_False
                 BasicDLL::EnableBreak( sal_True );
             }
             ClearStatus( BASWIN_RUNNINGBASIC );
         }
         else
-            aStatus.bIsRunning = sal_False; // Abbruch von Reschedule()
+            aStatus.bIsRunning = sal_False; // cancel of Reschedule()
     }

     sal_Bool bDone = !aStatus.bError;
@@ -471,7 +471,7 @@ sal_Bool ModulWindow::LoadBasic()
             GetEditEngine()->SetUpdateMode( sal_False );
             GetEditView()->Read( *pStream );
             GetEditEngine()->SetUpdateMode( sal_True );
-            GetEditorWindow().Update(); // Es wurde bei UpdateMode = sal_True nur Invalidiert
+            GetEditorWindow().Update();
             GetEditorWindow().ForceSyntaxTimeout();
             GetEditorWindow().DestroyProgress();
             sal_uLong nError = aMedium.GetError();
@@ -568,12 +568,12 @@ sal_Bool ModulWindow::ToggleBreakPoint( sal_uLong nLine )
         }

         BreakPoint* pBrk = GetBreakPoints().FindBreakPoint( nLine );
-        if ( pBrk ) // entfernen
+        if ( pBrk ) // remove
         {
             xModule->ClearBP( (sal_uInt16)nLine );
             delete GetBreakPoints().remove( pBrk );
         }
-        else // einen erzeugen
+        else // create one
         {
             if ( xModule->SetBP( (sal_uInt16)nLine) )
             {
@@ -620,7 +620,7 @@ sal_Bool ModulWindow::BasicToggleBreakPoint()
     AssertValidEditEngine();

     TextSelection aSel = GetEditView()->GetSelection();
-    aSel.GetStart().GetPara()++;    // Basic-Zeilen beginnen bei 1!
+    aSel.GetStart().GetPara()++;    // Basic lines start at 1!
     aSel.GetEnd().GetPara()++;

     sal_Bool bNewBreakPoint = sal_False;
@@ -677,8 +677,8 @@ IMPL_LINK( ModulWindow, BasicErrorHdl, StarBASIC *, pBasic )
     GoOnTop();

     // ReturnWert: BOOL
-    //  FALSE:  Abbrechen
-    //  TRUE:   Weiter....
+    //  FALSE:  cancel
+    //  TRUE:   go on....
     String aErrorText( pBasic->GetErrorText() );
     sal_uInt16 nErrorLine = pBasic->GetLine() - 1;
     sal_uInt16 nErrCol1 = pBasic->GetCol1();
@@ -701,8 +701,7 @@ IMPL_LINK( ModulWindow, BasicErrorHdl, StarBASIC *, pBasic )
         aErrorTextPrefix += ' ';
         pLayout->GetStackWindow().UpdateCalls();
     }
-    // Wenn anderes Basic, dan sollte die IDE versuchen, da richtige
-    // Modul anzuzeigen...
+    // if other basic, the IDE should try to display the correct module
     sal_Bool bMarkError = ( pBasic == GetBasic() ) ? sal_True : sal_False;
     if ( bMarkError )
         aXEditorWindow.GetBrkWindow().SetMarkerPos( nErrorLine, sal_True );
@@ -729,20 +728,20 @@ long ModulWindow::BasicBreakHdl( StarBASIC* pBasic )
     // #i69280 Required in Window despite normal usage in next command!
     (void)pBasic;

-    // ReturnWert: sal_uInt16 => siehe SB-Debug-Flags
+    // Return value: sal_uInt16 => see SB-Debug-Flags
     sal_uInt16 nErrorLine = pBasic->GetLine();

-    // Gibt es hier einen BreakPoint?
+
     BreakPoint* pBrk = GetBreakPoints().FindBreakPoint( nErrorLine );
     if ( pBrk )
     {
         pBrk->nHitCount++;
         if ( pBrk->nHitCount < pBrk->nStopAfter && GetBasic()->IsBreak() )
-            return aStatus.nBasicFlags; // weiterlaufen...
+            return aStatus.nBasicFlags; // go on...
     }

-    nErrorLine--;   // EditEngine begint bei 0, Basic bei 1
-    // Alleine schon damit gescrollt wird...
+    nErrorLine--;   // EditEngine starts at 0, Basic at 1
+
     AssertValidEditEngine();
     GetEditView()->SetSelection( TextSelection( TextPaM( nErrorLine, 0 ), TextPaM( nErrorLine, 0 ) ) );
     aXEditorWindow.GetBrkWindow().SetMarkerPos( nErrorLine );
@@ -834,14 +833,13 @@ void ModulWindow::EditMacro( const String& rMacroName )
                 pMethod->GetLineRange( nStart, nEnd );
                 if ( nStart )
                 {
-                    // Basic beginnt bei 1
                     nStart--;
                     nEnd--;
                 }
                 TextSelection aSel( TextPaM( nStart, 0 ), TextPaM( nStart, 0 ) );
                 AssertValidEditEngine();
                 TextView * pView = GetEditView();
-                // ggf. hinscrollen, so dass erste Zeile oben...
+                // scroll if applicabel so that first line is at the top
                 long nVisHeight = GetOutputSizePixel().Height();
                 if ( (long)pView->GetTextEngine()->GetTextHeight() > nVisHeight )
                 {
@@ -865,10 +863,9 @@ void ModulWindow::EditMacro( const String& rMacroName )
 void ModulWindow::StoreData()
 {
     DBG_CHKTHIS( ModulWindow, 0 );
-    // StoreData wird gerufen, wenn der BasicManager zerstoert oder
-    // dieses Fenster beendet wird.
-    // => Keine Unterbrechungen erwuenscht!
-    // Und bei SAVE, wenn AppBasic...
+    // StoreData is called when the BasicManager is destroyed or
+    // this window is closed.
+    // => interrupts undesired!
     GetEditorWindow().SetSourceInBasic( sal_True );
 }

@@ -889,9 +886,8 @@ void ModulWindow::UpdateData()
 {
     DBG_CHKTHIS( ModulWindow, 0 );
     DBG_ASSERT( XModule().Is(), "Kein Modul!" );
-    // UpdateData wird gerufen, wenn sich der Source von aussen
-    // geaendert hat.
-    // => Keine Unterbrechungen erwuenscht!
+    // UpdateData is called when the source has changed from outside
+    // => interrupts undesired!

     if ( XModule().Is() )
     {
@@ -949,7 +945,7 @@ sal_Int32 ModulWindow::FormatAndPrint( Printer* pPrinter, sal_Int32 nPrintPage )
     aPaperSz.Width() -= (LMARGPRN+RMARGPRN);
     aPaperSz.Height() -= (TMARGPRN+BMARGPRN);

-    // nLinepPage stimmt nicht, wenn Zeilen umgebrochen werden muessen...
+    // nLinepPage is not correct if there's a line break
     sal_uInt16 nLinespPage = (sal_uInt16) (aPaperSz.Height()/nLineHeight);
     sal_uInt16 nCharspLine = (sal_uInt16) (aPaperSz.Width() / pPrinter->GetTextWidth( 'X' ) );
     sal_uLong nParas = GetEditEngine()->GetParagraphCount();
@@ -957,7 +953,6 @@ sal_Int32 ModulWindow::FormatAndPrint( Printer* pPrinter, sal_Int32 nPrintPage )
     sal_uInt16 nPages = (sal_uInt16) (nParas/nLinespPage+1 );
     sal_uInt16 nCurPage = 1;

-    // Header drucken...
     lcl_PrintHeader( pPrinter, nPages, nCurPage, aTitle, nPrintPage == 0 );
     Point aPos( LMARGPRN, TMARGPRN );
     for ( sal_uLong nPara = 0; nPara < nParas; nPara++ )
@@ -1120,7 +1115,6 @@ void ModulWindow::GetState( SfxItemSet &rSet )
     {
         switch ( nWh )
         {
-            // allgemeine Items:
             case SID_CUT:
             {
                 if ( !GetEditView() || !GetEditView()->HasSelection() )
@@ -1183,8 +1177,7 @@ void ModulWindow::DoScroll( ScrollBar* pCurScrollBar )
     DBG_CHKTHIS( ModulWindow, 0 );
     if ( ( pCurScrollBar == GetHScrollBar() ) && GetEditView() )
     {
-        // Nicht mit dem Wert Scrollen, sondern lieber die Thumb-Pos fuer die
-        // VisArea verwenden:
+        // don't scroll with the value but rather use the Thumb-Pos for the VisArea:
         long nDiff = GetEditView()->GetStartDocPos().X() - pCurScrollBar->GetThumbPos();
         GetEditView()->Scroll( nDiff, 0 );
         GetEditView()->ShowCursor( sal_False, sal_True );
@@ -1264,8 +1257,7 @@ void ModulWindow::Deactivating()

 sal_uInt16 ModulWindow::StartSearchAndReplace( const SvxSearchItem& rSearchItem, sal_Bool bFromStart )
 {
-    // Mann koennte fuer das blinde Alle-Ersetzen auch auf
-    // Syntaxhighlighting/Formatierung verzichten...
+    // one could also relinquish syntaxhighlighting/formatting instead of the stupid replace-everything...
     AssertValidEditEngine();
     ExtTextView* pView = GetEditView();
     TextSelection aSel;
@@ -1493,7 +1485,7 @@ ModulWindowLayout::~ModulWindowLayout()

 void ModulWindowLayout::Resize()
 {
-    // ScrollBars, etc. passiert in BasicIDEShell:Adjust...
+    // ScrollBars, etc. happens in BasicIDEShell:Adjust...
     ArrangeWindows();
 }

@@ -1507,7 +1499,7 @@ void ModulWindowLayout::ArrangeWindows()
 {
     Size aSz = GetOutputSizePixel();

-    // prueffen, ob der Splitter in einem gueltigen Bereich liegt...
+    // test whether the splitter is in a valid area...
     long nMinPos = SPLIT_MARGIN;
     long nMaxPos = aSz.Height() - SPLIT_MARGIN;

@@ -1515,13 +1507,11 @@ void ModulWindowLayout::ArrangeWindows()
     long nHSplitPos = aHSplitter.GetSplitPosPixel();
     if ( !bVSplitted )
     {
-        // Wenn noch nie gesplitted wurde, Verhaeltniss = 3 : 4
         nVSplitPos = aSz.Height() * 3 / 4;
         aVSplitter.SetSplitPosPixel( nVSplitPos );
     }
     if ( !bHSplitted )
     {
-        // Wenn noch nie gesplitted wurde, Verhaeltniss = 2 : 3
         nHSplitPos = aSz.Width() * 2 / 3;
         aHSplitter.SetSplitPosPixel( nHSplitPos );
     }
@@ -1587,7 +1577,7 @@ IMPL_LINK( ModulWindowLayout, SplitHdl, Splitter *, pSplitter )

 sal_Bool ModulWindowLayout::IsToBeDocked( DockingWindow* pDockingWindow, const Point& rPos, Rectangle& rRect )
 {
-    // prueffen, ob als Dock oder als Child:
+    // test whether dock or child:
     // TRUE:    Floating
     // FALSE:   Child
     Point aPosInMe = ScreenToOutputPixel( rPos );
@@ -1623,12 +1613,10 @@ void ModulWindowLayout::DockaWindow( DockingWindow* pDockingWindow )
 {
     if ( pDockingWindow == &aWatchWindow )
     {
-        // evtl. Sonderbehandlung...
         ArrangeWindows();
     }
     else if ( pDockingWindow == &aStackWindow )
     {
-        // evtl. Sonderbehandlung...
         ArrangeWindows();
     }
 #if OSL_DEBUG_LEVEL > 0
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 28df6b1..63bfc5b 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -279,15 +279,15 @@ void EditorWindow::RequestHelp( const HelpEvent& rHEvt )
                         SbxVariable* pVar = (SbxVariable*)pSBX;
                         SbxDataType eType = pVar->GetType();
                         if ( (sal_uInt8)eType == (sal_uInt8)SbxOBJECT )
-                            // Kann zu Absturz, z.B. bei Selections-Objekt fuehren
-                            // Type == Object heisst nicht, dass pVar == Object!
+                            // might cause a crash e. g. at the selections-object
+                            // Type == Object does not mean pVar == Object!
                             ; // aHelpText = ((SbxObject*)pVar)->GetClassName();
                         else if ( eType & SbxARRAY )
                             ; // aHelpText = "{...}";
                         else if ( (sal_uInt8)eType != (sal_uInt8)SbxEMPTY )
                         {
                             aHelpText = pVar->GetName();
-                            if ( !aHelpText.Len() )     // Bei Uebergabeparametern wird der Name nicht kopiert
+                            if ( !aHelpText.Len() )     // name is not copied with the passed parameters
                                 aHelpText = aWord;
                             aHelpText += '=';
                             aHelpText += pVar->GetString();
@@ -418,7 +418,7 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt )
     if ( !bDone && ( !TextEngine::DoesKeyChangeText( rKEvt ) || ImpCanModify()  ) )
     {
         if ( ( rKEvt.GetKeyCode().GetCode() == KEY_Y ) && rKEvt.GetKeyCode().IsMod1() )
-            bDone = sal_True; // CTRL-Y schlucken, damit kein Vorlagenkatalog
+            bDone = sal_True;
         else
         {
             if ( ( rKEvt.GetKeyCode().GetCode() == KEY_TAB ) && !rKEvt.GetKeyCode().IsMod1() &&
@@ -553,7 +553,7 @@ void EditorWindow::CreateEditEngine()
     aHighlighter.initialize( HIGHLIGHT_BASIC );

     sal_Bool bWasDoSyntaxHighlight = bDoSyntaxHighlight;
-    bDoSyntaxHighlight = sal_False; // Bei grossen Texten zu langsam...
+    bDoSyntaxHighlight = sal_False; // too slow for large texts...
     ::rtl::OUString aOUSource( pModulWindow->GetModule() );
     sal_Int32 nLines = 0;
     sal_Int32 nIndex = -1;
@@ -565,8 +565,8 @@ void EditorWindow::CreateEditEngine()
     while ( nIndex >= 0 );

     // nLines*4: SetText+Formatting+DoHighlight+Formatting
-    // 1 Formatting koennte eingespart werden, aber dann wartet man
-    // bei einem langen Sourcecode noch laenger auf den Text...
+    // it could be cut down on one formatting but you would wait even longer
+    // for the text then if the source code is long...
     pProgress = new ProgressInfo( IDE_DLL()->GetShell()->GetViewFrame()->GetObjectShell(), String( IDEResId( RID_STR_GENERATESOURCE ) ), nLines*4 );
     setTextEngineText( pEditEngine, aOUSource );

@@ -574,9 +574,8 @@ void EditorWindow::CreateEditEngine()
     pEditView->SetSelection( TextSelection() );
     pModulWindow->GetBreakPointWindow().GetCurYOffset() = 0;
     pEditEngine->SetUpdateMode( sal_True );
-    Update();   // Es wurde bei UpdateMode = sal_True nur Invalidiert
+    Update();   // has only been invalidated at UpdateMode = sal_True

-    // Die anderen Fenster auch, damit keine halben Sachen auf dem Bildschirm!
     pModulWindow->GetLayout()->GetWatchWindow().Update();
     pModulWindow->GetLayout()->GetStackWindow().Update();
     pModulWindow->GetBreakPointWindow().Update();
@@ -585,7 +584,6 @@ void EditorWindow::CreateEditEngine()

     StartListening( *pEditEngine );

-    // Das Syntax-Highlightning legt ein rel. groesse VDev an.
     aSyntaxIdleTimer.Stop();
     bDoSyntaxHighlight = bWasDoSyntaxHighlight;

@@ -714,7 +712,7 @@ void EditorWindow::ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uIn

 void EditorWindow::SetScrollBarRanges()
 {
-    // Extra-Methode, nicht InitScrollBars, da auch fuer EditEngine-Events.
+    // extra method, not InitScrollBars, because for EditEngine events too
     if ( !pEditEngine )
         return;

@@ -772,7 +770,6 @@ void EditorWindow::ImpDoHighlight( sal_uLong nLine )
             pEditEngine->SetAttrib( TextAttribFontColor( rColor ), nLine, r.nBegin, r.nEnd, sal_True );
         }

-        // Das Highlighten soll kein Modify setzen
         pEditEngine->SetModified( bWasModified );
     }
 }
@@ -807,11 +804,11 @@ void EditorWindow::ImplSetFont()

 void EditorWindow::DoSyntaxHighlight( sal_uLong nPara )
 {
-    // Durch das DelayedSyntaxHighlight kann es passieren,
-    // dass die Zeile nicht mehr existiert!
+    // because of the DelayedSyntaxHighlight it's possible
+    // that this line does not exist anymore!
     if ( nPara < pEditEngine->GetParagraphCount() )
     {
-        // leider weis ich nicht, ob genau diese Zeile Modified() ...
+        // unfortunately I'm not sure that excactly this line does Modified() ...
         if ( pProgress )
             pProgress->StepProgress();
         ImpDoHighlight( nPara );
@@ -820,8 +817,8 @@ void EditorWindow::DoSyntaxHighlight( sal_uLong nPara )

 void EditorWindow::DoDelayedSyntaxHighlight( sal_uLong nPara )
 {
-    // Zeile wird nur in 'Liste' aufgenommen, im TimerHdl abgearbeitet.
-    // => Nicht Absaetze manipulieren, waehrend EditEngine formatiert.
+    // line is only added to 'Liste' (list), processed in TimerHdl
+    // => don't manipulate breaks while EditEngine is formatting
     if ( pProgress )
         pProgress->StepProgress();

@@ -879,13 +876,8 @@ void EditorWindow::ParagraphInsertedDeleted( sal_uLong nPara, sal_Bool bInserted
     }
     else
     {
-        // Brechpunkte Aktualisieren...
-        // keine Sonderbehandlung fuer EditEngine-CTOR ( Erste-Zeile-Problem ),
-        // da in diesem Moment noch keine BreakPoints.
-        // +1: Basic-Zeilen beginnen bei 1!
         pModulWindow->GetBreakPoints().AdjustBreakPoints( (sal_uInt16)nPara+1, bInserted );

-        // Im BreakPointWindow invalidieren...
         long nLineHeight = GetTextHeight();
         Size aSz = pModulWindow->GetBreakPointWindow().GetOutputSize();
         Rectangle aInvRec( Point( 0, 0 ), aSz );
@@ -928,9 +920,7 @@ BreakPointWindow::BreakPointWindow( Window* pParent ) :
     setBackgroundColor(GetSettings().GetStyleSettings().GetFieldColor());
     nMarkerPos = MARKER_NOMARKER;

-    // nCurYOffset merken und nicht von EditEngine holen.
-    // Falls in EditEngine autom. gescrollt wurde, wuesste ich sonst nicht,
-    // wo ich gerade stehe.
+    // memorize nCurYOffset and not take it from EditEngine

     SetHelpId( HID_BASICIDE_BREAKPOINTWINDOW );
 }
@@ -993,10 +983,10 @@ void BreakPointWindow::SetMarkerPos( sal_uInt16 nLine, sal_Bool bError )
     if ( SyncYOffset() )
         Update();

-    ShowMarker( sal_False );    // Alten wegzeichen...
+    ShowMarker( sal_False );
     nMarkerPos = nLine;
     bErrorMarker = bError;
-    ShowMarker( sal_True );     // Neuen zeichnen...
+    ShowMarker( sal_True );
 }

 void BreakPointWindow::ShowMarker( sal_Bool bShow )
@@ -1054,7 +1044,6 @@ void BreakPointWindow::MouseButtonDown( const MouseEvent& rMEvt )
         long nYPos = aMousePos.Y() + nCurYOffset;
         long nLine = nYPos / nLineHeight + 1;
         pModulWindow->ToggleBreakPoint( (sal_uLong)nLine );
-        // vielleicht mal etwas genauer...
         Invalidate();
     }
 }
@@ -1070,7 +1059,7 @@ void BreakPointWindow::Command( const CommandEvent& rCEvt )
         BreakPoint* pBrk = rCEvt.IsMouseEvent() ? FindBreakPoint( aEventPos ) : 0;
         if ( pBrk )
         {
-            // prueffen, ob Brechpunkt enabled....
+            // test if break point is enabled...
             PopupMenu aBrkPropMenu( IDEResId( RID_POPUP_BRKPROPS ) );
             aBrkPropMenu.CheckItem( RID_ACTIV, pBrk->bEnabled );
             switch ( aBrkPropMenu.Execute( this, aPos ) )
@@ -1245,7 +1234,7 @@ void WatchWindow::Resize()
     Size aSz = GetOutputSizePixel();
     Size aBoxSz( aSz.Width() - 2*DWBORDER, aSz.Height() - nVirtToolBoxHeight - DWBORDER );

-    if ( aBoxSz.Width() < 4 )   // < 4, weil noch Border...
+    if ( aBoxSz.Width() < 4 )
         aBoxSz.Width() = 0;
     if ( aBoxSz.Height() < 4 )
         aBoxSz.Height() = 0;
@@ -1257,7 +1246,7 @@ void WatchWindow::Resize()
     aBoxSz.Height() = nHeaderBarHeight;
     aHeaderBar.SetSizePixel( aBoxSz );

-    Invalidate();   //Wegen DrawLine im Paint...
+    Invalidate();
 }

 struct MemberList
@@ -1536,14 +1525,14 @@ void StackWindow::Resize()
     Size aSz = GetOutputSizePixel();
     Size aBoxSz( aSz.Width() - 2*DWBORDER, aSz.Height() - nVirtToolBoxHeight - DWBORDER );

-    if ( aBoxSz.Width() < 4 )   // < 4, weil noch Border...
+    if ( aBoxSz.Width() < 4 )
         aBoxSz.Width() = 0;
     if ( aBoxSz.Height() < 4 )
         aBoxSz.Height() = 0;

     aTreeListBox.SetSizePixel( aBoxSz );

-    Invalidate();   //Wegen DrawLine im Paint...
+    Invalidate();
 }


@@ -1580,7 +1569,7 @@ void StackWindow::UpdateCalls()
             if ( pParams )
             {
                 aEntry += '(';
-                // 0 ist der Name der Sub...
+                // 0 is the sub's name...
                 for ( sal_uInt16 nParam = 1; nParam < pParams->Count(); nParam++ )
                 {
                     SbxVariable* pVar = pParams->Get( nParam );
@@ -1972,16 +1961,14 @@ sal_Bool WatchTreeListBox::ImplBasicEntryEdited( SvLBoxEntry* pEntry, const Stri
     {
         if ( pToBeChanged->ISA( SbxVariable ) )
         {
-            // Wenn der Typ variabel ist, macht die Konvertierung des SBX nichts,
-            // bei festem Typ wird der String konvertiert.
+            // If the type is variable, the conversion of the SBX does not matter,
+            // else the string is converted.
             ((SbxVariable*)pToBeChanged)->PutStringExt( aResult );
         }
         else
             bError = sal_True;
     }

-    // Wenn jemand z.B. einen zu grossen Wert fuer ein Int eingegeben hat,
-    // folgt beim naechsten Step() ein Runtime-Error.
     if ( SbxBase::IsError() )
     {
         bError = sal_True;
@@ -2099,7 +2086,7 @@ void WatchTreeListBox::UpdateWatches( bool bBasicStopped )
                 SbxDataType eType = pVar->GetType();
                 if ( eType & SbxARRAY )
                 {
-                    // Mehrdimensionale Arrays beruecksichtigen!
+                    // consider multidimensinal arrays!
                     SbxBase* pBase = pVar->GetObject();
                     if ( pBase && pBase->ISA( SbxDimArray ) )
                     {
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index b5b48b9..1c3132d 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -108,7 +108,6 @@ DialogWindow::DialogWindow( Window* pParent, const ScriptDocument& rDocument, St
     pEditor->SetWindow( this );
     pEditor->SetDialog( xDialogModel );

-    // Undo einrichten
     pUndoMgr = new SfxUndoManager;

     Link aDummyLink;
@@ -326,10 +325,9 @@ void DialogWindow::GetState( SfxItemSet& rSet )
             }
             break;

-            // Nur Dialogfenster:
             case SID_DIALOG_TESTMODE:
             {
-                // ist die IDE noch aktiv?
+                // is the IDE still active?
                 if( IDE_DLL()->GetShell()->GetFrame() )
                 {
                     rSet.Put( SfxBoolItem( SID_DIALOG_TESTMODE,
diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx
index 4fecf6e..955d727 100644
--- a/basctl/source/basicide/basides1.cxx
+++ b/basctl/source/basicide/basides1.cxx
@@ -83,7 +83,7 @@ using namespace ::com::sun::star::frame;

 class SvxSearchItem;

-//  Egal was, einfach ans aktuelle Fenster:
+
 void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
 {
     if ( !pCurWin )
@@ -105,7 +105,6 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )

             if ( pCurWin->ISA( ModulWindow ) )
             {
-                // module
                 if ( QueryDelModule( aName, pCurWin ) )
                 {
                     if ( aDocument.removeModule( aLibName, aName ) )
@@ -116,7 +115,6 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
             }
             else
             {
-                // dialog
                 if ( QueryDelDialog( aName, pCurWin ) )
                 {
                     if ( BasicIDE::RemoveDialog( aDocument, aLibName, aName ) )
@@ -139,14 +137,14 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
             {
                 DBG_ASSERT( rReq.GetArgs(), "arguments expected" );
                 const SfxItemSet* pArgs = rReq.GetArgs();
-                // Leider kenne ich die ID nicht:
+                // unfortunately I don't know the ID:
                 sal_uInt16 nWhich = pArgs->GetWhichByPos( 0 );
                 DBG_ASSERT( nWhich, "Wich fuer SearchItem ?" );
                 const SfxPoolItem& rItem = pArgs->Get( nWhich );
                 DBG_ASSERT( rItem.ISA( SvxSearchItem ), "Kein Searchitem!" );
                 if ( rItem.ISA( SvxSearchItem ) )
                 {
-                    // Item wegen der Einstellungen merken...
+                    // memorize item because of the adjustments...
                     IDE_DLL()->GetExtraData()->SetSearchItem( (const SvxSearchItem&)rItem );
                     sal_uInt16 nFound = 0;
                     sal_Bool bCanceled = sal_False;
@@ -184,10 +182,9 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
                         nFound = ((ModulWindow*)pCurWin)->StartSearchAndReplace( (const SvxSearchItem&)rItem );
                         if ( !nFound && !((const SvxSearchItem&)rItem).GetSelection() )
                         {
-                            // Andere Module durchsuchen...
+                            // search other modules...
                             sal_Bool bChangeCurWindow = sal_False;
                             aIDEWindowTable.Seek( pCurWin );
-                            // Erstmal beim naechsten Anfangen, ggf. spaeter von vorne
                             IDEBaseWindow* pWin = aIDEWindowTable.Next();
                             sal_Bool bSearchedFromStart = sal_False;
                             while ( !nFound && !bCanceled && ( pWin || !bSearchedFromStart ) )
@@ -211,8 +208,6 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
                                 {
                                     if ( pWin != pCurWin )
                                     {
-                                        // Groesse einstellen, damit die View
-                                        // gleich richtig justiert werden kann.
                                         if ( pCurWin )
                                             pWin->SetSizePixel( pCurWin->GetSizePixel() );
                                         nFound = ((ModulWindow*)pWin)->StartSearchAndReplace( (const SvxSearchItem&)rItem, sal_True );
@@ -226,9 +221,9 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
                                 if ( pWin && ( pWin != pCurWin ) )
                                     pWin = aIDEWindowTable.Next();
                                 else
-                                    pWin = 0;   // Dann sind wir durch...
+                                    pWin = 0;
                             }
-                            if ( !nFound && bSearchedFromStart )    // Aktuelles von vorne...
+                            if ( !nFound && bSearchedFromStart )
                                 nFound = ((ModulWindow*)pCurWin)->StartSearchAndReplace( (const SvxSearchItem&)rItem, sal_True );
                             if ( bChangeCurWindow )
                                 SetCurWindow( pWin, sal_True );
@@ -264,7 +259,7 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
     }
 }

-//  Egal, wer oben, Einfluss auf die Shell:
+//  no matter who's at the top, influence on the shell:
 void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
 {
     sal_uInt16 nSlot = rReq.GetSlot();
@@ -272,7 +267,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
     {
         case SID_BASICSTOP:
         {
-            // Evtl. nicht einfach anhalten, falls auf Brechpunkt!
+            // maybe do not simply stop if on breakpoint!
             if ( pCurWin && pCurWin->IsA( TYPE( ModulWindow ) ) )
                 ((ModulWindow*)pCurWin)->BasicStop();
             BasicIDE::StopBasic();
@@ -283,7 +278,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
         {
             if ( pCurWin )
             {
-                // Daten ins BASIC zurueckschreiben
+                // rewrite date into the BASIC
                 StoreAllWindowData();

                 // document basic
@@ -367,7 +362,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )

             ScriptDocument aDocument( ScriptDocument::getDocumentForBasicManager( pBasMgr ) );

-            StartListening( *pBasMgr, sal_True /* Nur einmal anmelden */ );
+            StartListening( *pBasMgr, sal_True /* log on only once */ );
             String aLibName( rInfo.GetLib() );
             if ( !aLibName.Len() )
                 aLibName = String::CreateFromAscii( "Standard" );
@@ -544,7 +539,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
                 }
                 else
                 {
-                    // alten Wert einstellen...
+                    // adjust old value...
                     SfxBindings* pBindings = BasicIDE::GetBindingsPtr();
                     if ( pBindings )
                         pBindings->Invalidate( SID_BASICIDE_LIBSELECTOR, sal_True, sal_False );
@@ -559,7 +554,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
                     {
                         m_aCurDocument = ScriptDocument::getApplicationScriptDocument();
                         m_aCurLibName = String();
-                        // Kein UpdateWindows!
+                        // no UpdateWindows!
                         SfxBindings* pBindings = BasicIDE::GetBindingsPtr();
                         if ( pBindings )
                             pBindings->Invalidate( SID_BASICIDE_LIBSELECTOR );
@@ -879,7 +874,7 @@ void BasicIDEShell::GetState(SfxItemSet &rSet)
             break;
             case SID_BASICSTOP:
             {
-                // Stop immermoeglich, wenn irgendein Basic lauft...
+                // stop is always possible when some Basic is running...
                 if ( !StarBASIC::IsRunning() )
                     rSet.DisableItem( nWh );
             }
@@ -966,14 +961,14 @@ void BasicIDEShell::GetState(SfxItemSet &rSet)
                 }
             }
             break;
-            // Werden vom Controller ausgewertet:
+            // are interpreted by the controller:
             case SID_ATTR_SIZE:
             case SID_ATTR_INSERT:
             break;
             case SID_UNDO:
             case SID_REDO:
             {
-                if( GetUndoManager() )  // sonst rekursives GetState
+                if( GetUndoManager() )  // recursive GetState else
                     GetViewFrame()->GetSlotState( nWh, NULL, &rSet );
             }
             break;
@@ -1049,9 +1044,7 @@ sal_Bool BasicIDEShell::HasUIFeature( sal_uInt32 nFeature )

 void BasicIDEShell::SetCurWindow( IDEBaseWindow* pNewWin, sal_Bool bUpdateTabBar, sal_Bool bRememberAsCurrent )
 {
-    // Es muss ein EditWindow am Sfx gesetzt sein, sonst kommt kein
-    // Resize, also stehen die Controls auf den Wiese...
-    // Sieht dann sowieso besser aus, wenn das Modul-Layout angezeigt wird...
+    // an EditWindow must be set at Sfx for resizing...
     if ( !pNewWin && ( GetWindow() != pModulLayout ) )
     {
         pModulLayout->Show();
@@ -1105,7 +1098,7 @@ void BasicIDEShell::SetCurWindow( IDEBaseWindow* pNewWin, sal_Bool bUpdateTabBar
                 }
             }

-            if ( GetViewFrame()->GetWindow().IsVisible() ) // sonst macht es spaeter der SFX
+            if ( GetViewFrame()->GetWindow().IsVisible() ) // SFX will do it later otherwise
                 pCurWin->Show();

             pCurWin->Init();
@@ -1126,10 +1119,10 @@ void BasicIDEShell::SetCurWindow( IDEBaseWindow* pNewWin, sal_Bool bUpdateTabBar
         {
             sal_uLong nKey = aIDEWindowTable.GetKey( pCurWin );
             if ( pCurWin && ( pTabBar->GetPagePos( (sal_uInt16)nKey ) == TAB_PAGE_NOTFOUND ) )
-                pTabBar->InsertPage( (sal_uInt16)nKey, pCurWin->GetTitle() );   // wurde neu eingeblendet
+                pTabBar->InsertPage( (sal_uInt16)nKey, pCurWin->GetTitle() );   // has just been faded in
             pTabBar->SetCurPageId( (sal_uInt16)nKey );
         }
-        if ( pCurWin && pCurWin->IsSuspended() )    // Wenn das Fenster im Fehlerfall angezeigt wird...
+        if ( pCurWin && pCurWin->IsSuspended() )    // if the window is shown in the case of an error...
             pCurWin->SetStatus( pCurWin->GetStatus() & ~BASWIN_SUSPENDED );
         if ( pCurWin )
         {
@@ -1249,7 +1242,7 @@ long BasicIDEShell::CallBasicBreakHdl( StarBASIC* pBasic )

         nRet = pModWin->BasicBreakHdl( pBasic );

-        if ( StarBASIC::IsRunning() )   // Falls abgebrochen...
+        if ( StarBASIC::IsRunning() )   // if cancelled...
         {
             if ( bAppWindowDisabled )
                 Application::GetDefDialogParent()->Enable( sal_False );
@@ -1296,7 +1289,7 @@ ModulWindow* BasicIDEShell::ShowActiveModuleWindow( StarBASIC* pBasic )
         }
         BasicManager* pBasicMgr = BasicIDE::FindBasicManager( pBasic );
         if ( pBasicMgr )
-            StartListening( *pBasicMgr, sal_True /* Nur einmal anmelden */ );
+            StartListening( *pBasicMgr, sal_True /* log on only once */ );
         return pWin;
     }
     return 0;
@@ -1304,7 +1297,7 @@ ModulWindow* BasicIDEShell::ShowActiveModuleWindow( StarBASIC* pBasic )

 void BasicIDEShell::AdjustPosSizePixel( const Point &rPos, const Size &rSize )
 {
-    // Nicht wenn minimiert, weil dann bei Restore der Text verschoben ist.
+    // not if iconified because the whole text would be displaced then at restore
     if ( GetViewFrame()->GetWindow().GetOutputSizePixel().Height() == 0 )
         return;

@@ -1318,7 +1311,7 @@ void BasicIDEShell::AdjustPosSizePixel( const Point &rPos, const Size &rSize )
     aVScrollBar.SetPosSizePixel( Point( rPos.X()+aSz.Width(), rPos.Y() ), Size( aScrollBarBoxSz.Width(), aSz.Height() ) );
     if ( bTabBarSplitted )
     {
-        // SplitSize ist beim Resize 0 !
+        // SplitSize is 0 at a resize!
         long nSplitPos = pTabBar->GetSizePixel().Width();
         if ( nSplitPos > aSz.Width() )
             nSplitPos = aSz.Width();
@@ -1337,7 +1330,7 @@ void BasicIDEShell::AdjustPosSizePixel( const Point &rPos, const Size &rSize )
     if ( pEdtWin )
     {
         if( pCurWin && pCurWin->IsA( TYPE( DialogWindow ) ) )
-            pEdtWin->SetPosSizePixel( rPos, aSz );  // Ohne ScrollBar
+            pEdtWin->SetPosSizePixel( rPos, aSz );  // without ScrollBar
         else
             pEdtWin->SetPosSizePixel( rPos, aOutSz );
     }
@@ -1366,8 +1359,8 @@ void BasicIDEShell::Activate( sal_Bool bMDI )

 void BasicIDEShell::Deactivate( sal_Bool bMDI )
 {
-    // bMDI sal_True heisst, dass ein anderes MDI aktiviert wurde, bei einem
-    // Deactivate durch eine MessageBox ist bMDI FALSE
+    // bMDI sal_True means that another MDI has been activated; in case of a
+    // deactivate due to a MessageBox bMDI is FALSE
     if ( bMDI )
     {
         if( pCurWin && pCurWin->IsA( TYPE( DialogWindow ) ) )
@@ -1378,8 +1371,8 @@ void BasicIDEShell::Deactivate( sal_Bool bMDI )
                 BasicIDE::MarkDocumentModified( pXDlgWin->GetDocument() );
         }

-        // CanClose pruefen, damit auch beim deaktivieren der BasicIDE geprueft wird,
-        // ob in einem Modul der Sourcecode zu gross ist...
+        // test CanClose to also test during deactivating the BasicIDE whether
+        // the sourcecode is too large in one of the modules...
         for ( sal_uLong nWin = 0; nWin < aIDEWindowTable.Count(); nWin++ )
         {
             IDEBaseWindow* pWin = aIDEWindowTable.GetObject( nWin );
diff --git a/basctl/source/basicide/basides2.cxx b/basctl/source/basicide/basides2.cxx
index 1aba814..eccd867 100644
--- a/basctl/source/basicide/basides2.cxx
+++ b/basctl/source/basicide/basides2.cxx
@@ -207,7 +207,7 @@ ModulWindow* BasicIDEShell::CreateBasWin( const ScriptDocument& rDocument, const
     if ( !aModName.Len() )
         aModName = rDocument.createObjectName( E_SCRIPTS, aLibName );

-    // Vielleicht gibt es ein suspendiertes?
+    // maybe there's an suspended one?
     pWin = FindBasWin( rDocument, aLibName, aModName, sal_False, sal_True );

     if ( !pWin )
@@ -273,7 +273,7 @@ ModulWindow* BasicIDEShell::FindBasWin( const ScriptDocument& rDocument, const S
     {
         if ( ( !pWin->IsSuspended() || bFindSuspended ) && pWin->IsA( TYPE( ModulWindow ) ) )
         {
-            if ( !rLibName.Len() )  // nur irgendeins finden...
+            if ( !rLibName.Len() )
                 pModWin = (ModulWindow*)pWin;
             else if ( pWin->IsDocument( rDocument ) && pWin->GetLibName() == rLibName && pWin->GetName() == rModName )
                 pModWin = (ModulWindow*)pWin;
@@ -301,7 +301,7 @@ void BasicIDEShell::ShowCursor( bool bOn )
 // Hack for #101048
 sal_Int32 getBasicIDEShellCount( void );

-// Nur wenn Basicfenster oben:
+// only if basic window above:
 void BasicIDEShell::ExecuteBasic( SfxRequest& rReq )
 {
     if ( !pCurWin || !pCurWin->IsA( TYPE( ModulWindow ) ) )
diff --git a/basctl/source/basicide/basides3.cxx b/basctl/source/basicide/basides3.cxx
index 9391011..410d575 100644
--- a/basctl/source/basicide/basides3.cxx
+++ b/basctl/source/basicide/basides3.cxx
@@ -73,7 +73,7 @@ DialogWindow* BasicIDEShell::CreateDlgWin( const ScriptDocument& rDocument, cons
     if ( !aDlgName.Len() )
         aDlgName = rDocument.createObjectName( E_DIALOGS, aLibName );

-    // Vielleicht gibt es ein suspendiertes?
+    // maybe there's a suspended one?
     pWin = FindDlgWin( rDocument, aLibName, aDlgName, sal_False, sal_True );

     if ( !pWin )
@@ -144,7 +144,7 @@ DialogWindow* BasicIDEShell::FindDlgWin( const ScriptDocument& rDocument, const
     {
         if ( ( !pWin->IsSuspended() || bFindSuspended ) && pWin->IsA( TYPE( DialogWindow ) ) )
         {
-            if ( !rLibName.Len() )  // nur irgendeins finden...
+            if ( !rLibName.Len() )
                 pDlgWin = (DialogWindow*)pWin;
             else if ( pWin->IsDocument( rDocument ) && pWin->GetLibName() == rLibName && pWin->GetName() == rDlgName )
                 pDlgWin = (DialogWindow*)pWin;
@@ -166,7 +166,7 @@ SdrView* BasicIDEShell::GetCurDlgView() const
     return pWin->GetView();
 }

-// Nur wenn Dialogfenster oben:
+// only if dialogue window above:
 void BasicIDEShell::ExecuteDialog( SfxRequest& rReq )
 {
     if ( pCurWin && ( pCurWin->IsA( TYPE( DialogWindow) ) ||
diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx
index 8814f35..eb65391 100644
--- a/basctl/source/basicide/basidesh.cxx
+++ b/basctl/source/basicide/basidesh.cxx
@@ -44,7 +44,7 @@

 #define ITEMID_SIZE 0

-// Falls ohne PCH's:
+// if without PCH's:
 #include <ide_pch.hxx>


@@ -256,18 +256,17 @@ BasicIDEShell::~BasicIDEShell()
     if ( IDE_DLL() && IDE_DLL()->pShell == this )
         IDE_DLL()->pShell = NULL;

-    // Damit bei einem Basic-Fehler beim Speichern die Shell nicht sofort
-    // wieder hoch kommt:
+
     IDE_DLL()->GetExtraData()->ShellInCriticalSection() = sal_True;

     SetWindow( 0 );
     SetCurWindow( 0 );

-    // Alle Fenster zerstoeren:
+
     IDEBaseWindow* pWin = aIDEWindowTable.First();
     while ( pWin )
     {
-        // Kein Store, passiert bereits, wenn die BasicManager zerstoert werden.
+        // no store; does already happen when the BasicManagers are destroyed
         delete pWin;
         pWin = aIDEWindowTable.Next();
     }
@@ -410,7 +409,7 @@ sal_uInt16 BasicIDEShell::PrepareClose( sal_Bool bUI, sal_Bool bForBrowsing )
 {
     (void)bForBrowsing;

-    // da es nach Drucken etc. (DocInfo) modifiziert ist, hier resetten
+    // reset here because it's modified after printing etc. (DocInfo)
     GetViewFrame()->GetObjectShell()->SetModified(sal_False);

     if ( StarBASIC::IsRunning() )
@@ -439,7 +438,7 @@ sal_uInt16 BasicIDEShell::PrepareClose( sal_Bool bUI, sal_Bool bForBrowsing )
         }

         if ( bCanClose )
-            StoreAllWindowData( sal_False );    // Nicht auf Platte schreiben, das passiert am Ende automatisch
+            StoreAllWindowData( sal_False );    // don't write on the disk, that will be done later automatically

         return bCanClose;
     }
@@ -477,7 +476,6 @@ Size BasicIDEShell::GetOptimalSizePixel() const

 void BasicIDEShell::OuterResizePixel( const Point &rPos, const Size &rSize )
 {
-    // Adjust fliegt irgendwann raus...
     AdjustPosSizePixel( rPos, rSize );
 }

@@ -564,7 +562,7 @@ void BasicIDEShell::ShowObjectDialog( sal_Bool bShow, sal_Bool bCreateOrDestroy
         if ( !pObjectCatalog && bCreateOrDestroy )
         {
             pObjectCatalog = new ObjectCatalog( &GetViewFrame()->GetWindow() );
-            // Position wird in BasicIDEData gemerkt und vom Dlg eingestellt
+            // position is memorized in BasicIDEData and adjusted by the Dlg
             if ( pObjectCatalog )
             {
                 pObjectCatalog->SetCancelHdl( LINK( this, BasicIDEShell, ObjectDialogCancelHdl ) );
@@ -576,7 +574,7 @@ void BasicIDEShell::ShowObjectDialog( sal_Bool bShow, sal_Bool bCreateOrDestroy
             }
         }

-        // Die allerletzten Aenderungen...
+        // the very last changes...
         if ( pCurWin )
             pCurWin->StoreData();

@@ -591,7 +589,7 @@ void BasicIDEShell::ShowObjectDialog( sal_Bool bShow, sal_Bool bCreateOrDestroy
         pObjectCatalog->Hide();
         if ( bCreateOrDestroy )
         {
-            // Wegen OS/2-Focus-Problem pObjectCatalog vorm delete auf NULL
+            // pObjectCatalog to NULL before the delete because of OS/2-focus-problem
             ObjectCatalog* pTemp = pObjectCatalog;
             pObjectCatalog = 0;
             delete pTemp;
@@ -612,7 +610,7 @@ void BasicIDEShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId&,
             {
                 case SFX_HINT_DYING:
                 {
-                    EndListening( rBC, sal_True /* Alle abmelden */ );
+                    EndListening( rBC, sal_True /* log off all */ );
                     if ( pObjectCatalog )
                         pObjectCatalog->UpdateEntries();
                 }
@@ -653,10 +651,10 @@ void BasicIDEShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId&,

                     if ( nHintId == SBX_HINT_BASICSTOP )
                     {
-                        // Nicht nur bei Error/Break oder explizitem anhalten,
-                        // falls durch einen Programmierfehler das Update abgeschaltet ist.
+                        // not only at error/break or explicit stoppage,
+                        // if the update is turned off due to a programming bug
                         BasicIDE::BasicStopped();
-                        UpdateModulWindowLayout( true );    // Leer machen...
+                        UpdateModulWindowLayout( true );    // clear...
                         if( m_pCurLocalizationMgr )
                             m_pCurLocalizationMgr->handleBasicStopped();
                     }
@@ -726,7 +724,7 @@ void BasicIDEShell::RemoveWindows( const ScriptDocument& rDocument, const String

 void BasicIDEShell::UpdateWindows()
 {
-    // Alle Fenster, die nicht angezeigt werden duerfen, entfernen
+    // remove all windows that may not be displayed
     sal_Bool bChangeCurWindow = pCurWin ? sal_False : sal_True;
     if ( m_aCurLibName.Len() )
     {
@@ -738,10 +736,9 @@ void BasicIDEShell::UpdateWindows()
                 if ( pWin == pCurWin )
                     bChangeCurWindow = sal_True;
                 pWin->StoreData();
-                // Die Abfrage auf RUNNING verhindert den Absturz, wenn in Reschedule.
-                // Fenster bleibt erstmal stehen, spaeter sowieso mal umstellen,
-                // dass Fenster nur als Hidden markiert werden und nicht
-                // geloescht.
+                // The request of RUNNING prevents the crash when in reschedule.
+                // Window is frozen at first, later the windows should be changed
+                // anyway to be marked as hidden instead of being deleted.
                 if ( !(pWin->GetStatus() & ( BASWIN_TOBEKILLED | BASWIN_RUNNINGBASIC | BASWIN_SUSPENDED ) ) )
                 {
                     RemoveWindow( pWin, sal_False, sal_False );
@@ -756,14 +753,14 @@ void BasicIDEShell::UpdateWindows()

     IDEBaseWindow* pNextActiveWindow = 0;

-    // Alle anzuzeigenden Fenster anzeigen
+    // show all windows that are to be shown
     ScriptDocuments aDocuments( ScriptDocument::getAllScriptDocuments( ScriptDocument::AllWithApplication ) );
     for (   ScriptDocuments::const_iterator doc = aDocuments.begin();
             doc != aDocuments.end();
             ++doc
         )
     {
-        StartListening( *doc->getBasicManager(), sal_True /* Nur einmal anmelden */ );
+        StartListening( *doc->getBasicManager(), sal_True /* log on only once */ );

         // libraries
         Sequence< ::rtl::OUString > aLibNames( doc->getLibraryNames() );
@@ -906,10 +903,10 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa
             if ( bStop )
             {
                 StarBASIC::Stop();
-                // Es kommt kein Notify...
+                // there will be no notify...
                 pWindow_->BasicStopped();
             }
-            aIDEWindowTable.Insert( nKey, pWindow_ );   // wieder einhaegen
+            aIDEWindowTable.Insert( nKey, pWindow_ );   // jump in again
         }
     }
     else
@@ -917,7 +914,7 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa
         pWindow_->Hide();
         pWindow_->AddStatus( BASWIN_SUSPENDED );
         pWindow_->Deactivating();
-        aIDEWindowTable.Insert( nKey, pWindow_ );   // wieder einhaegen
+        aIDEWindowTable.Insert( nKey, pWindow_ );   // jump in again
     }

 }
@@ -926,7 +923,6 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa

 sal_uInt16 BasicIDEShell::InsertWindowInTable( IDEBaseWindow* pNewWin )
 {
-    // Eigentlich prueffen,
     nCurKey++;
     aIDEWindowTable.Insert( nCurKey, pNewWin );
     return nCurKey;
@@ -936,7 +932,7 @@ sal_uInt16 BasicIDEShell::InsertWindowInTable( IDEBaseWindow* pNewWin )

 void BasicIDEShell::InvalidateBasicIDESlots()
 {
-    // Nur die, die eine optische Auswirkung haben...
+    // only those that have an optic effect...

     if ( IDE_DLL()->GetShell() )
     {
@@ -1047,7 +1043,7 @@ void BasicIDEShell::SetCurLibForLocalization( const ScriptDocument& rDocument, S

 void BasicIDEShell::ImplStartListening( StarBASIC* pBasic )
 {
-    StartListening( pBasic->GetBroadcaster(), sal_True /* Nur einmal anmelden */ );
+    StartListening( pBasic->GetBroadcaster(), sal_True /* log on only once */ );
 }

 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/basicide/basobj3.cxx b/basctl/source/basicide/basobj3.cxx
index ff27f54..398e927 100644
--- a/basctl/source/basicide/basobj3.cxx
+++ b/basctl/source/basicide/basobj3.cxx
@@ -107,7 +107,7 @@ SbMethod* CreateMacro( SbModule* pModule, const String& rMacroName )
             {
                 aMacroName = aStdMacroText;
                 aMacroName += String::CreateFromInt32( nMacro );
-                // Pruefen, ob vorhanden...
+                // test whether existing...
                 bValid = pModule->GetMethods()->Find( aMacroName, SbxCLASS_METHOD ) ? sal_False : sal_True;
                 nMacro++;
             }
@@ -116,7 +116,7 @@ SbMethod* CreateMacro( SbModule* pModule, const String& rMacroName )

     ::rtl::OUString aOUSource( pModule->GetSource32() );

-    // Nicht zu viele Leerzeilen erzeugen...
+    // don't produce too many empty lines...
     sal_Int32 nSourceLen = aOUSource.getLength();
     if ( nSourceLen > 2 )
     {
@@ -294,7 +294,7 @@ BasicManager* FindBasicManager( StarBASIC* pLib )

 void MarkDocumentModified( const ScriptDocument& rDocument )
 {
-    // Muss ja nicht aus einem Document kommen...
+    // does not have to come from a document...
     if ( rDocument.isApplication() )
     {
         BasicIDEShell* pIDEShell = IDE_DLL()->GetShell();
@@ -314,7 +314,7 @@ void MarkDocumentModified( const ScriptDocument& rDocument )
         pBindings->Update( SID_SAVEDOC );
     }

-    // Objectcatalog updaten...
+
     BasicIDEShell* pIDEShell = IDE_DLL()->GetShell();
     ObjectCatalog* pObjCatalog = pIDEShell ? pIDEShell->GetObjectCatalog() : 0;
     if ( pObjCatalog )
@@ -342,8 +342,8 @@ void StopBasic()
         IDEBaseWindow* pWin = rWindows.First();
         while ( pWin )
         {
-            // BasicStopped von Hand rufen, da das Stop-Notify ggf. sonst nicht
-            // durchkommen kann.
+            // call BasicStopped manually because the Stop-Notify
+            // might not get through otherwise
             pWin->BasicStopped();
             pWin = rWindows.Next();
         }
@@ -357,8 +357,8 @@ void BasicStopped( sal_Bool* pbAppWindowDisabled,
         sal_Bool* pbDispatcherLocked, sal_uInt16* pnWaitCount,
         SfxUInt16Item** ppSWActionCount, SfxUInt16Item** ppSWLockViewCount )
 {
-    // Nach einem Error oder dem expliziten abbrechen des Basics muessen
-    // ggf. einige Locks entfernt werden...
+    // maybe there are some locks to be removed after an error
+    // or an explicit cancelling of the basic...

     if ( pbAppWindowDisabled )
         *pbAppWindowDisabled = sal_False;
diff --git a/basctl/source/basicide/bastype2.cxx b/basctl/source/basicide/bastype2.cxx
index 1fd2953..5244a9f 100644
--- a/basctl/source/basicide/bastype2.cxx
+++ b/basctl/source/basicide/bastype2.cxx
@@ -197,7 +197,7 @@ BasicTreeListBox::BasicTreeListBox( Window* pParent, const ResId& rRes ) :
 {
     SetNodeDefaultImages();
     SetSelectionMode( SINGLE_SELECTION );
-    nMode = 0xFF;   // Alles
+    nMode = 0xFF;   // everything
 }


@@ -206,7 +206,7 @@ BasicTreeListBox::~BasicTreeListBox()
 {
     m_aNotifier.dispose();

-    // UserDaten zerstoeren
+    // destroy user data
     SvLBoxEntry* pEntry = First();
     while ( pEntry )
     {
@@ -223,7 +223,7 @@ void BasicTreeListBox::ScanEntry( const ScriptDocument& rDocument, LibraryLocati

     // can be called multiple times for updating!

-    // eigentlich prueffen, ob Basic bereits im Baum ?!
+    // actually test if basic's in the tree already?!
     SetUpdateMode( sal_False );

     // level 1: BasicManager (application, document, ...)
@@ -584,7 +584,7 @@ void BasicTreeListBox::UpdateEntries()
 {
     BasicEntryDescriptor aCurDesc( GetEntryDescriptor( FirstSelected() ) );

-    // Erstmal die vorhandenen Eintraege auf existens pruefen:
+
     SvLBoxEntry* pLastValid = 0;
     SvLBoxEntry* pEntry = First();
     while ( pEntry )
@@ -599,7 +599,7 @@ void BasicTreeListBox::UpdateEntries()
         pEntry = pLastValid ? Next( pLastValid ) : First();
     }

-    // Jetzt ueber die Basics rennen und in die Zweige eintragen
+
     ScanAllEntries();

     SetCurrentEntry( aCurDesc );
@@ -636,7 +636,7 @@ SvLBoxEntry* BasicTreeListBox::FindEntry( SvLBoxEntry* pParent, const String& rT

 long BasicTreeListBox::ExpandingHdl()
 {
-    // Expanding oder Collaps?
+    // expanding or collapsing?
     sal_Bool bOK = sal_True;
     if ( GetModel()->GetDepth( GetHdlEntry() ) == 1 )
     {
diff --git a/basctl/source/basicide/bastype2.hxx b/basctl/source/basicide/bastype2.hxx
index 6300f6c..a23b99a 100644
--- a/basctl/source/basicide/bastype2.hxx
+++ b/basctl/source/basicide/bastype2.hxx
@@ -138,8 +138,8 @@ public:
 };


-/****************************************
-    Zuordnung von Typen und Pointern in BasicEntrys:
+/************************************************************
+    Classification of types and pointers in the BasicEntries:

     OBJ_TYPE_DOCUMENT        BasicDocumentEntry
     OBJ_TYPE_LIBRARY         BasicEntry
@@ -147,7 +147,7 @@ public:
     OBJ_TYPE_DIALOG          BasicEntry
     OBJ_TYPE_METHOD          BasicEntry

-******************************************/
+**************************************************************/

 class BasicTreeListBox  :public SvTreeListBox
                         ,public ::basctl::DocumentEventListener
diff --git a/basctl/source/basicide/bastype3.cxx b/basctl/source/basicide/bastype3.cxx
index 6f49212..267ff94 100644
--- a/basctl/source/basicide/bastype3.cxx
+++ b/basctl/source/basicide/bastype3.cxx
@@ -147,14 +147,13 @@ void BasicTreeListBox::ExpandedHdl()
 {
     SvLBoxEntry* pEntry = GetHdlEntry();
     DBG_ASSERT( pEntry, "Was wurde zugeklappt?" );
-    // Die OnDemand erzeugten Childs loeschen,
-    // SubChilds werden automatisch geloescht.
+
     if ( !IsExpanded( pEntry ) && pEntry->HasChildsOnDemand() )
     {
         SvLBoxEntry* pChild = FirstChild( pEntry );
         while ( pChild )
         {
-            GetModel()->Remove( pChild );   // Ruft auch den DTOR
+            GetModel()->Remove( pChild );   // does also call the DTOR
             pChild = FirstChild( pEntry );
         }
     }
diff --git a/basctl/source/basicide/bastypes.cxx b/basctl/source/basicide/bastypes.cxx
index 10a78a5..4d10d02 100644
--- a/basctl/source/basicide/bastypes.cxx
+++ b/basctl/source/basicide/bastypes.cxx
@@ -41,7 +41,7 @@
 #include <basidesh.hrc>
 #include <bastypes.hxx>
 #include <bastype2.hxx>
-#include <baside2.hxx>  // Leider brauche ich teilweise pModulWindow...
+#include <baside2.hxx>  // unfortunately pModulWindow is needed partly...
 #include <baside3.hxx>
 #include <baside2.hrc>
 #include <svtools/textview.hxx>
@@ -100,7 +100,7 @@ void IDEBaseWindow::Init()
         pShellVScrollBar->SetScrollHdl( LINK( this, IDEBaseWindow, ScrollHdl ) );
     if ( pShellHScrollBar )
         pShellHScrollBar->SetScrollHdl( LINK( this, IDEBaseWindow, ScrollHdl ) );
-    DoInit();   // virtuell...
+    DoInit();   // virtual...
 }


@@ -116,7 +116,7 @@ void IDEBaseWindow::GrabScrollBars( ScrollBar* pHScroll, ScrollBar* pVScroll )
     DBG_CHKTHIS( IDEBaseWindow, 0 );
     pShellHScrollBar = pHScroll;
     pShellVScrollBar = pVScroll;
-//  Init(); // macht kein Sinn, fuehrt zu flackern, fuehr zu Fehlern...
+//  Init(); // does not make sense, leads to flickering and errors...
 }


@@ -303,7 +303,7 @@ void BreakPointList::InsertSorted( BreakPoint* pNewBrk )
             return;
         }
     }
-    // Keine Einfuegeposition gefunden => LIST_APPEND
+    // no insert position found => LIST_APPEND
     maBreakPoints.push_back( pNewBrk );
 }

@@ -441,7 +441,7 @@ sal_Bool BasicDockingWindow::Docking( const Point& rPos, Rectangle& rRect )
     {
         rRect.SetSize( aTmpRec.GetSize() );
     }
-    else    // Alte Groesse einstellen
+    else    // adjust old size
     {
         if ( !aFloatingPosAndSize.IsEmpty() )
             rRect.SetSize( aFloatingPosAndSize.GetSize() );
@@ -483,7 +483,7 @@ sal_Bool BasicDockingWindow::PrepareToggleFloatingMode()
 {
     if ( IsFloatingMode() )
     {
-        // Position und Groesse auf dem Desktop merken...
+        // memorize position and size on the desktop...
         aFloatingPosAndSize.SetPos( GetParent()->OutputToScreenPixel( GetPosPixel() ) );
         aFloatingPosAndSize.SetSize( GetSizePixel() );
     }
@@ -494,7 +494,6 @@ sal_Bool BasicDockingWindow::PrepareToggleFloatingMode()

 void BasicDockingWindow::StartDocking()
 {
-    // Position und Groesse auf dem Desktop merken...
     if ( IsFloatingMode() )
     {
         aFloatingPosAndSize.SetPos( GetParent()->OutputToScreenPixel( GetPosPixel() ) );
@@ -577,7 +576,7 @@ void BasicIDETabBar::Command( const CommandEvent& rCEvt )
     if ( ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU ) && !IsInEditMode() )
     {
         Point aPos( rCEvt.IsMouseEvent() ? rCEvt.GetMousePosPixel() : Point(1,1) );
-        if ( rCEvt.IsMouseEvent() )     // Richtige Tab selektieren
+        if ( rCEvt.IsMouseEvent() )     // select right tab
         {
             Point aP = PixelToLogic( aPos );
             MouseEvent aMouseEvent( aP, 1, MOUSE_SIMPLECLICK, MOUSE_LEFT );
@@ -737,7 +736,7 @@ void CutLines( ::rtl::OUString& rStr, sal_Int32 nStartLine, sal_Int32 nLines, sa
         nStartPos = searchEOL( rStr, nStartPos );
         if( nStartPos == -1 )
             break;
-        nStartPos++;    // nicht das \n.
+        nStartPos++;    // not the \n.
         nLine++;
     }

@@ -750,7 +749,7 @@ void CutLines( ::rtl::OUString& rStr, sal_Int32 nStartLine, sal_Int32 nLines, sa
         for ( sal_Int32 i = 0; i < nLines; i++ )
             nEndPos = searchEOL( rStr, nEndPos+1 );

-        if ( nEndPos == -1 ) // kann bei letzter Zeile passieren
+        if ( nEndPos == -1 ) // might happen at the last line
             nEndPos = rStr.getLength();
         else
             nEndPos++;
diff --git a/basctl/source/basicide/brkdlg.cxx b/basctl/source/basicide/brkdlg.cxx
index 7c640c5..2cdff12 100644
--- a/basctl/source/basicide/brkdlg.cxx
+++ b/basctl/source/basicide/brkdlg.cxx
@@ -194,7 +194,7 @@ IMPL_LINK( BreakPointDialog, ButtonHdl, Button *, pButton )
     }
     else if ( pButton == &aNewButton )
     {
-        // Checkbox beruecksichtigen!
+        // keep checkbox in mind!
         String aText( aComboBox.GetText() );
         size_t nLine;
         bool bValid = lcl_ParseText( aText, nLine );
diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx
index ea88275..db1f3cd 100644
--- a/basctl/source/basicide/iderdll.cxx
+++ b/basctl/source/basicide/iderdll.cxx
@@ -80,7 +80,7 @@ BasicIDEDLL::BasicIDEDLL()
     pShell = 0;
     pExtraData = 0;

-    GetExtraData(); // damit GlobalErrorHdl gesetzt wird.
+    GetExtraData(); // to cause GlobalErrorHdl to be set
 }

 BasicIDEDLL::~BasicIDEDLL()
@@ -136,10 +136,10 @@ BasicIDEData::BasicIDEData() : aObjCatPos( INVPOSITION, INVPOSITION )

 BasicIDEData::~BasicIDEData()
 {
-    // ErrorHdl zuruecksetzen ist zwar sauberer, aber diese Instanz wird
-    // sowieso sehr spaet, nach dem letzten Basic, zerstoert.
-    // Durch den Aufruf werden dann aber wieder AppDaten erzeugt und nicht
-    // mehr zerstoert => MLK's beim Purify
+    // Resetting ErrorHdl is cleaner indeed but this instance is destroyed
+    // pretty late, after the last Basic, anyway.
+    // Due to the call there is AppData created then though and not
+    // destroyed anymore => MLK's at Purify
 //  StarBASIC::SetGlobalErrorHdl( Link() );
 //  StarBASIC::SetGlobalBreakHdl( Link() );
 //  StarBASIC::setGlobalStarScriptListener( XEngineListenerRef() );
@@ -168,10 +168,10 @@ IMPL_LINK( BasicIDEData, GlobalBasicBreakHdl, StarBASIC *, pBasic )
         BasicManager* pBasMgr = BasicIDE::FindBasicManager( pBasic );
         if ( pBasMgr )
         {
-            // Hier lande ich zweimal, wenn Step into protected Basic
-            // => schlecht, wenn Passwortabfrage 2x, ausserdem sieht man in
-            // dem PasswordDlg nicht, fuer welche Lib...
-            // => An dieser Stelle keine Passwort-Abfrage starten
+            // I do get here twice if Step into protected Basic
+            // => bad, if password query twice, also you don't see
+            // the lib in the PasswordDlg...
+            // => start no password query at this point
             ScriptDocument aDocument( ScriptDocument::getDocumentForBasicManager( pBasMgr ) );
             OSL_ENSURE( aDocument.isValid(), "BasicIDEData::GlobalBasicBreakHdl: no document for the basic manager!" );
             if ( aDocument.isValid() )
@@ -183,7 +183,7 @@ IMPL_LINK( BasicIDEData, GlobalBasicBreakHdl, StarBASIC *, pBasic )
                     Reference< script::XLibraryContainerPassword > xPasswd( xModLibContainer, UNO_QUERY );
                     if ( xPasswd.is() && xPasswd->isLibraryPasswordProtected( aOULibName ) && !xPasswd->isLibraryPasswordVerified( aOULibName ) )
                     {
-                           // Ein Step-Out muesste mich aus den geschuetzten Bereich befoerdern...
+                           // a step-out should get me out of the protected area...
                         nRet = SbDEBUG_STEPOUT;
                     }
                     else
diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx
index f6fdd77..d4714d7 100644
--- a/basctl/source/basicide/macrodlg.cxx
+++ b/basctl/source/basicide/macrodlg.cxx
@@ -87,15 +87,14 @@ MacroChooser::MacroChooser( Window* pParnt, sal_Bool bCreateEntries ) :
     nMode = MACROCHOOSER_ALL;
     bNewDelIsDel = sal_True;

-    // Der Sfx fragt den BasicManager nicht, ob modified
-    // => Speichern anschmeissen, wenn Aenderung, aber kein Sprung in
-    // die BasicIDE.
+    // the Sfx doesn't aske the BasicManger whether modified or not
+    // => start saving in case of a change without a into the BasicIDE.
     bForceStoreBasic = sal_False;

     aMacrosInTxtBaseStr = aMacrosInTxt.GetText();

     aMacroBox.SetSelectionMode( SINGLE_SELECTION );
-    aMacroBox.SetHighlightRange(); // ueber ganze Breite selektieren
+    aMacroBox.SetHighlightRange(); // select over the whole width

     aRunButton.SetClickHdl( LINK( this, MacroChooser, ButtonHdl ) );
     aCloseButton.SetClickHdl( LINK( this, MacroChooser, ButtonHdl ) );
@@ -255,7 +254,7 @@ short MacroChooser::Execute()
     Window* pPrevDlgParent = Application::GetDefDialogParent();
     Application::SetDefDialogParent( this );
     short nRet = ModalDialog::Execute();
-    // #57314# Wenn die BasicIDE aktiviert wurde, dann nicht den DefModalDialogParent auf das inaktive Dokument zuruecksetzen.
+    // #57314# If the BasicIDE has been activated, don't reset the DefModalDialogParent to the inactive document.
     if ( Application::GetDefDialogParent() == this )
         Application::SetDefDialogParent( pPrevDlgParent );
     return nRet;
@@ -268,7 +267,6 @@ void MacroChooser::EnableButton( Button& rButton, sal_Bool bEnable )
     {
         if ( nMode == MACROCHOOSER_CHOOSEONLY || nMode == MACROCHOOSER_RECORDING )
         {
-            // Nur der RunButton kann enabled werden
             if ( &rButton == &aRunButton )
                 rButton.Enable();
             else
@@ -316,13 +314,13 @@ void MacroChooser::DeleteMacro()
             pDispatcher->Execute( SID_BASICIDE_STOREALLMODULESOURCES );
         }

-        // Aktuelles Doc als geaendert markieren:
+        // mark current doc as modified:
         StarBASIC* pBasic = BasicIDE::FindBasic( pMethod );
         DBG_ASSERT( pBasic, "Basic?!" );
         BasicManager* pBasMgr = BasicIDE::FindBasicManager( pBasic );
         DBG_ASSERT( pBasMgr, "BasMgr?" );
         ScriptDocument aDocument( ScriptDocument::getDocumentForBasicManager( pBasMgr ) );
-        if ( aDocument.isDocument() )    // Muss ja nicht aus einem Document kommen...
+        if ( aDocument.isDocument() )
         {
             aDocument.setDocumentModified();
             SfxBindings* pBindings = BasicIDE::GetBindingsPtr();
@@ -411,7 +409,7 @@ SbMethod* MacroChooser::CreateMacro()

 void MacroChooser::SaveSetCurEntry( SvTreeListBox& rBox, SvLBoxEntry* pEntry )
 {
-    // Durch das Highlight wird das Edit sonst platt gemacht:
+    // the edit would be killed by the highlight otherwise:

     String aSaveText( aMacroNameEdit.GetText() );
     Selection aCurSel( aMacroNameEdit.GetSelection() );
@@ -453,7 +451,7 @@ void MacroChooser::CheckButtons()
         EnableButton( aRunButton, bEnable );
     }

-    // Organisieren immer moeglich ?
+    // organising still possible?

     // Assign...
     EnableButton( aAssignButton, pMethod ? sal_True : sal_False );
@@ -518,10 +516,10 @@ IMPL_LINK_INLINE_END( MacroChooser, MacroDoubleClickHdl, SvTreeListBox *, EMPTYA

 IMPL_LINK( MacroChooser, MacroSelectHdl, SvTreeListBox *, pBox )
 {
-    // Wird auch gerufen, wenn Deselektiert!
-    // 2 Funktionsaufrufe in jedem SelectHdl, nur weil Olli
-    // keinen separatren DeselctHdl einfuehren wollte:
-    // Also: Feststellen, ob Select oder Deselect:
+    // Is also called if deselected!
+    // Two function calls in every SelectHdl because
+    // there's no separate DeselectHDL.
+    // So find out if select or deselect:
     if ( pBox->IsSelected( pBox->GetHdlEntry() ) )
     {
         UpdateFields();
@@ -534,10 +532,10 @@ IMPL_LINK( MacroChooser, BasicSelectHdl, SvTreeListBox *, pBox )
 {
     static String aSpaceStr = String::CreateFromAscii(" ");

-    // Wird auch gerufen, wenn Deselektiert!
-    // 2 Funktionsaufrufe in jedem SelectHdl, nur weil Olli
-    // keinen separatren DeselctHdl einfuehren wollte:
-    // Also: Feststellen, ob Select oder Deselect:
+    // Is also called if deselected!
+    // Two function calls in every SelectHdl because
+    // there's no separate DeselectHDL.
+    // So find out if select or deselect:
     if ( !pBox->IsSelected( pBox->GetHdlEntry() ) )
         return 0;

@@ -552,8 +550,8 @@ IMPL_LINK( MacroChooser, BasicSelectHdl, SvTreeListBox *, pBox )

         aMacrosInTxt.SetText( aStr );

-        // Die Macros sollen in der Reihenfolge angezeigt werden,
-        // wie sie im Modul stehen.
+        // The macros should be called in the same order that they
+        // are written down in the module.

         map< sal_uInt16, SbMethod* > aMacros;
         size_t nMacroCount = pModule->GetMethods()->Count();
@@ -563,7 +561,6 @@ IMPL_LINK( MacroChooser, BasicSelectHdl, SvTreeListBox *, pBox )
             if( pMethod->IsHidden() )
                 continue;
             DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
-            // Eventuell weiter vorne ?
             sal_uInt16 nStart, nEnd;
             pMethod->GetLineRange( nStart, nEnd );
             aMacros.insert( map< sal_uInt16, SbMethod*>::value_type( nStart, pMethod ) );
@@ -593,15 +590,15 @@ IMPL_LINK( MacroChooser, EditModifyHdl, Edit *, pEdit )
 {
     (void)pEdit;

-    // Das Modul, in dem bei Neu das Macro landet, selektieren,
-    // wenn BasicManager oder Lib selektiert.
+    // select the module in which the macro is put at Neu (new),
+    // if BasicManager or Lib is selecting
     SvLBoxEntry* pCurEntry = aBasicBox.GetCurEntry();
     if ( pCurEntry )
     {
         sal_uInt16 nDepth = aBasicBox.GetModel()->GetDepth( pCurEntry );
         if ( ( nDepth == 1 ) && ( aBasicBox.IsEntryProtected( pCurEntry ) ) )
         {
-            // Dann auf die entsprechende Std-Lib stellen...
+            // then put to the respective Std-Lib...
             SvLBoxEntry* pManagerEntry = aBasicBox.GetModel()->GetParent( pCurEntry );
             pCurEntry = aBasicBox.GetModel()->FirstChild( pManagerEntry );
         }
@@ -637,7 +634,7 @@ IMPL_LINK( MacroChooser, EditModifyHdl, Edit *, pEdit )
             if ( !bFound )
             {
                 SvLBoxEntry* pEntry = aMacroBox.FirstSelected();
-                // Wenn es den Eintrag gibt ->Select ->Desription...
+                // if the entry exists ->Select ->Desription...
                 if ( pEntry )
                     aMacroBox.Select( pEntry, sal_False );
             }
@@ -652,7 +649,7 @@ IMPL_LINK( MacroChooser, EditModifyHdl, Edit *, pEdit )

 IMPL_LINK( MacroChooser, ButtonHdl, Button *, pButton )
 {
-    // ausser bei New/Record wird die Description durch LoseFocus uebernommen.
+    // apart from New/Record the Description is done by LoseFocus
     if ( pButton == &aRunButton )
     {
         StoreMacroDescription();
@@ -831,7 +828,7 @@ IMPL_LINK( MacroChooser, ButtonHdl, Button *, pButton )
         sal_uInt16 nRet = pDlg->Execute();
         delete pDlg;

-        if ( nRet ) // Nicht einfach nur geschlossen
+        if ( nRet ) // not only closed
         {
             EndDialog( MACRO_EDIT );
             return 0;
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index e12c469..f4396a5 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -168,8 +168,8 @@ BasicCheckBox::BasicCheckBox( Window* pParent, const ResId& rResId )
     ,m_aDocument( ScriptDocument::getApplicationScriptDocument() )
 {
     nMode = LIBMODE_MANAGER;
-    long aTabs_[] = { 1, 12 };  // Mindestens einen braucht die TabPos...
-                                // 12 wegen der Checkbox
+    long aTabs_[] = { 1, 12 };  // TabPos needs at least one...
+                                // 12 because of the CheckBox
     SetTabs( aTabs_ );
     Init();
 }
diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx
index 9a29fd2..ac77118 100644
--- a/basctl/source/basicide/moduldlg.cxx
+++ b/basctl/source/basicide/moduldlg.cxx
@@ -146,7 +146,7 @@ sal_Bool ExtBasicTreeListBox::EditedEntry( SvLBoxEntry* pEntry, const String& rN
     SetCurEntry( pEntry );
     SetCurEntry( pEntry );
     Select( pEntry, sal_False );
-    Select( pEntry );       // damit Handler gerufen wird => Edit updaten
+    Select( pEntry );       // so that handler is called => update edit

     return sal_True;
 }
@@ -269,7 +269,7 @@ sal_Bool ExtBasicTreeListBox::NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* p
 sal_Bool ExtBasicTreeListBox::NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
                         SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos )
 {
-//  return sal_False;   // Wie kopiere ich ein SBX ?!
+//  return sal_False;   // how do I copy an SBX?!
     return NotifyCopyingMoving( pTarget, pEntry,
                                     rpNewParent, rNewChildPos, sal_False );
 }
@@ -335,19 +335,19 @@ sal_Bool ExtBasicTreeListBox::NotifyCopyingMoving( SvLBoxEntry* pTarget, SvLBoxE
                         SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos, sal_Bool bMove )
 {
     (void)pEntry;
-    DBG_ASSERT( pEntry, "Kein Eintrag?" );  // Hier ASS ok, sollte nicht mit
-    DBG_ASSERT( pTarget, "Kein Ziel?" );    // NULL (ganz vorne) erreicht werden
+    DBG_ASSERT( pEntry, "Kein Eintrag?" );  // ASS is ok here, should not be reached
+    DBG_ASSERT( pTarget, "Kein Ziel?" );    // with NULL (right at the beginning)
     sal_uInt16 nDepth = GetModel()->GetDepth( pTarget );
     DBG_ASSERT( nDepth, "Tiefe?" );
     if ( nDepth == 1 )
     {
-        // Target = Basic => Modul/Dialog unter das Basic haengen...
+        // Target = Basic => put module/dialog under the Basic
         rpNewParent = pTarget;
         rNewChildPos = 0;
     }
     else if ( nDepth >= 2 )
     {
-        // Target = Modul/Dialog => Modul/Dialog unter das uebergeordnete Basic haengen...
+        // Target = module/dialog => put module/dialog under the superordinate Basic
         rpNewParent = GetParent( pTarget );
         rNewChildPos = GetModel()->GetRelPos( pTarget ) + 1;
     }
@@ -474,7 +474,7 @@ sal_Bool ExtBasicTreeListBox::NotifyCopyingMoving( SvLBoxEntry* pTarget, SvLBoxE
         }
     }

-    return 2;   // Aufklappen...
+    return 2;   // open...
 }

 OrganizeDialog::OrganizeDialog( Window* pParent, sal_Int16 tabId, BasicEntryDescriptor& rDesc )
@@ -527,7 +527,7 @@ short OrganizeDialog::Execute()
 IMPL_LINK( OrganizeDialog, ActivatePageHdl, TabControl *, pTabCtrl )
 {
     sal_uInt16 nId = pTabCtrl->GetCurPageId();
-    // Wenn TabPage noch nicht erzeugt wurde, dann erzeugen
+
     if ( !pTabCtrl->GetTabPage( nId ) )
     {
         TabPage* pNewTabPage = 0;
diff --git a/basctl/source/basicide/objdlg.cxx b/basctl/source/basicide/objdlg.cxx
index b630fd0..0bae4d9 100644
--- a/basctl/source/basicide/objdlg.cxx
+++ b/basctl/source/basicide/objdlg.cxx
@@ -113,7 +113,7 @@ ObjectCatalog::ObjectCatalog( Window * pParent )
     Size aSize = IDE_DLL()->GetExtraData()->GetObjectCatalogSize();
     if ( aPos.X() == INVPOSITION )
     {
-        // Zentriert nach AppWin:
+        // centered after AppWin:
         Window* pWin = GetParent();
         aPos = pWin->OutputToScreenPixel( Point( 0, 0 ) );
         Size aAppWinSz = pWin->GetSizePixel();
@@ -127,7 +127,7 @@ ObjectCatalog::ObjectCatalog( Window * pParent )
     if ( aSize.Width() )
         SetOutputSizePixel( aSize );

-    Resize();   // damit der Resize-Handler die Controls anordnet
+    Resize();   // so that the resize-handler arranges the controls

     // make object catalog keyboard accessible
     pParent->GetSystemWindow()->GetTaskPaneList()->AddWindow( this );
@@ -176,7 +176,7 @@ void ObjectCatalog::Resize()
         aMacroDescr.SetText(aDesc);
     }

-    // Die Buttons oben bleiben immer unveraendert stehen...
+    // the buttons above always stay unmodified
 }

 IMPL_LINK( ObjectCatalog, ToolBoxHdl, ToolBox*, pToolBox )
diff --git a/basctl/source/basicide/tbxctl.cxx b/basctl/source/basicide/tbxctl.cxx
index a0b9ff0..186c941 100644
--- a/basctl/source/basicide/tbxctl.cxx
+++ b/basctl/source/basicide/tbxctl.cxx
@@ -147,9 +147,9 @@ void TbxControls::Select( sal_uInt16 nModifier )

 /*************************************************************************
 |*
-|* Hier wird das Fenster erzeugt
-|* Lage der Toolbox mit GetToolBox() abfragbar
-|* rItemRect sind die Screen-Koordinaten
+|* the window is created here
+|* position of the toolbox can be requested with GetToolBox()
+|* rItemRect are the screen coordinates
 |*
 \************************************************************************/
 SfxPopupWindow* TbxControls::CreatePopupWindow()
diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index 110bdb8..ab2e056 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -1213,7 +1213,7 @@ void lcl_PrintHeader( Printer* pPrinter, const String& rTitle ) // not working y

     long nFontHeight = pPrinter->GetTextHeight();

-    // 1.Border => Strich, 2+3 Border = Freiraum.
+    // 1st border => line, 2+3 border = free space
     long nYTop = TMARGPRN-3*nBorder-nFontHeight;

     long nXLeft = nLeftMargin-nBorder;
diff --git a/basctl/source/inc/basobj.hxx b/basctl/source/inc/basobj.hxx
index 08126ad..95d2431 100644
--- a/basctl/source/inc/basobj.hxx
+++ b/basctl/source/inc/basobj.hxx
@@ -53,7 +53,7 @@ namespace BasicIDE
     void            Organize( sal_Int16 tabId );


-    // Hilfsmethoden fuer den allg. Gebrauch:
+    // help methods for the general use:
     SbMethod*   CreateMacro( SbModule* pModule, const String& rMacroName );
     void            RunMethod( SbMethod* pMethod );

diff --git a/basctl/source/inc/bastypes.hxx b/basctl/source/inc/bastypes.hxx
index 3d57ce7..0e7b639 100644
--- a/basctl/source/inc/bastypes.hxx
+++ b/basctl/source/inc/bastypes.hxx
@@ -61,11 +61,10 @@ class SfxItemSet;
 sal_Int32 searchEOL( const ::rtl::OUString& rStr, sal_Int32 fromIndex );


-// Bedeutung von bToBeKilled:
-// Wenn in Reschedule-Schleife, darf ich das Fenster nicht zerstoeren.
-// Es muss erst aus der Reschedule-Schleife Fallen, um sich dann
-// selbst zu zerstoeren.
-// Geht so leider nicht: Destroying Window with living Child!
+// Meaning of bToBeKilled:
+// While being in a reschedule-loop, I may not destroy the window.
+// It must first break from the reschedule-loop to self-destroy then.
+// Does unfortunately not work that way: Destroying Window with living Child!


 struct BasicStatus
--
1.7.4.1


--========GMX28734131404274932167--


More information about the LibreOffice mailing list