Browse Source

* new set of Gabor changes: see fixes.txt

pierre 25 years ago
parent
commit
2126a0993e

+ 27 - 0
ide/text/fixes.txt

@@ -1,3 +1,30 @@
+Gabor's log 1/5/2000 commits
+========================= Already fixed ================================
+
+ [*] a just freshly created editor window (without any chars entered) simply
+     "ate" all Save commands
+
+========================== Other improvements ============================
+
+ [+] source paths are now "adjusted" to show only important path elements
+     when they don't fit in the title area of the source window
+ [+] template macros implemented (you can use them in the .PT files)
+     $TIME - actual time
+     $DATE - actual date
+     $DATE('yyyy/mm/dd hh.nn.ss') - actual date formatted using specified str
+     $PROMPT('paramname') - variable parameter entered by user
+ [+] the size of some windows is now dependant on the current resolution
+ [+] all IDE strings contants converted to resourcestrings
+ [+] /hm command-line switch for enabling/disabling heap monitor
+
+=========================== Todo ========================================
+
+ [!] convert all API,FV,etc. message strings to resourcestrings
+ [!] add "Find in files" command, probably using internal grep routine
+ [!] implement Projects & project managment
+     - specifying project files
+     - todo list mangment
+     - generating project list file
 Gabor's log 25/4/2000 commits
 
 ========================= Fixes to apply ==============================

+ 20 - 0
ide/text/fp.ans

@@ -0,0 +1,20 @@
+ロロロロロロロロワ゚゚  ワワ゚ロロロロワ゚゚゚゚゚゚ワロロ ワ゚ワワ゚゚ワロロロロロロロロロロロロロロロロロロロロロロロロロロロ゙
+ロロロロロロワワワ゚ロロワ゚゚゚゚ワロロ゚ワ゚ワロロロロロロロロロロロロロロロロロロロロロロロロ゙
+ワロロロロ゚  ワワロワロワ゚ワロ゚ワワ゚ロロロロロロロロロロロロロロロロロロロロロロロ゙
+  ゚゚゚゚゚ワロ゚ワロロワ゚゚゚゚゚゚゚゚゚゚゚゚ワロロロロロロロロロロロ゙
+ワワワワワワワワワワワワワワワワワワワワワワワワワワ゚゚ワロロロロロロ゙
+ロ゚゚゚゚ロロロワワワワワワワワワワワワワワロロロロロロ゙  イアーワワワワロロロロ゚゚゚゚゚゚ロロロロロワワワ゚ワロロロ゙
+ロン  ワワヷ゙ロロ゚゚゚ロロロロロロロロロ゚゚゚゚゚゚゚゚ワワロロ゚゚゚゚゚゚゚゚゚゚ロ゚゚ワ゚ロロロロ゙
+゙  ンロロロ ロロンワワワワワワワワワワワワワワ ワワワロ゚゚  ーワロロロン ゙ロロ゚ワワワワ゚ロロロロロロ゙
+ン  ロロロ゙゙ロロンワワワワロ゚゚゚゚゚゚゚゚゚ロロワンロロ゚ロン  ンロロロロロロワ ワワ゚ロロロロロロロロ゙
+ン ゙ロ゚ロン゙゙ロンワ゚゚゚゙゙ロン゚ワワイロロロン  ンロロロロロロロロロロロロロロロロロロロ゙
+ン ゙ロロ゙ワヷロロワワロン゙゙ロロロワワワワヷロロワ゚゚ロロロロン  ンロロロロロロロロロロロロロロロロロロロ゙
+ン ゙ロロ゙゚゚゚ロロロ゚゚゚ンロロンロ゚゚゚゚゚゚゚゚゚゚゚゚ワロンンロ゚ロンロロロロロロロロロロロロロロロロロロロ゙
+ン ゙ロ゚ロン ゙゙ロロ゙゙゙ロロ゙ンンアロ゙ンワ  ゙ンロロロロロロ゚゙ロロロ゙
+゙  ロ゙ン゙  ゙ロロン゙ロロンワワワ゚ロワ゚゚ロロロロロワ゚ワワワワワ  ゙ロロロ゙
+ロン ンロ゚ロン  ゙ロロワヷロン゚゚ロワ  ゚゚゚゚゚゚ワワロロロ゚ン  ゚ロロロ゙
+ロ゙ ゙ロ゚ワ゚  ゙ロロロロワロロワワ  ゚゚ロワワワワワ ワワワワワワワワロロ゚゚゚゚  ワ゚ロロロロ゙
+゚゚゚ ゚゚゚゚  ゙ロロロロロンワワロ゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚ワワワ゚ロロロロロロ゙
+GeCワロロ゚ロワ  ゚゚ ワワ゚ロ゚ワワワワワワワワワワワ゚゚ロロロロロロロロロロロ゙
+゚
+

+ 19 - 6
ide/text/fp.pas

@@ -63,6 +63,21 @@ begin
       begin
         Param:=copy(Param,2,255);
         if Param<>'' then
+        if UpcaseStr(copy(Param,1,2))='HM' then
+          { HeapMonitor }
+          begin
+            if (copy(Param,3,1)='+') or (copy(Param,3,1)='') then
+              StartupOptions:=StartupOptions or soHeapMonitor
+            else
+            if (copy(Param,3,1)='-') then
+              StartupOptions:=StartupOptions and not soHeapMonitor;
+          end else
+{$ifdef go32v2}
+        if UpcaseStr(Param)='NOLFN' then
+          begin
+            LFNSupport:=false;
+           end else
+{$endif go32v2}
         case Upcase(Param[1]) of
           'C' : { custom config file (BP compatiblity) }
            if BeforeINI then
@@ -71,11 +86,6 @@ begin
                 Delete(Param,1,1); { eat separator }
               IniFileName:=Param;
             end;
-{$ifdef go32v2}
-          'N' :
-             if UpCase(Param)='NOLFN' then
-               LFNSupport:=false;
-{$endif go32v2}
           'R' : { enter the directory last exited from (BP comp.) }
             begin
               Param:=copy(Param,2,255);
@@ -238,7 +248,10 @@ BEGIN
 END.
 {
   $Log$
-  Revision 1.44  2000-04-25 08:42:32  pierre
+  Revision 1.45  2000-05-02 08:42:26  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.44  2000/04/25 08:42:32  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.43  2000/04/18 11:42:36  pierre

+ 6 - 3
ide/text/fpcalc.pas

@@ -96,7 +96,7 @@ procedure RegisterFPCalc;
 
 implementation
 
-uses FPUtils,FPConst;
+uses FPString,FPUtils,FPConst;
 
 const
   cmCalcButton  = 100;
@@ -359,7 +359,7 @@ var
   R: TRect;
 begin
   R.Assign(5, 3, 43, 18);
-  inherited Init(R, 'Calculator');
+  inherited Init(R, dialog_Calculator);
   Options := Options or ofFirstClick or ofTopSelect;
   HelpCtx:=hcCalcWindow;
 
@@ -463,7 +463,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.9  2000-04-18 11:42:36  pierre
+  Revision 1.10  2000-05-02 08:42:26  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.9  2000/04/18 11:42:36  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.8  2000/03/21 23:34:10  pierre

+ 6 - 3
ide/text/fpcatch.pas

@@ -43,7 +43,7 @@ uses
   drivers,
 {$endif FPC}
   app,commands,msgbox,
-  fpide,fpviews;
+  FPString,FPViews,FPIDE;
 
 
 {$ifdef HasSignal}
@@ -76,7 +76,7 @@ begin
                else
                  begin
                    if Assigned(Application) then
-                     MustQuit:=MessageBox(#3'Do You really want to quit?',nil,mferror+mfyesbutton+mfnobutton)=cmYes
+                     MustQuit:=MessageBox(#3+msg_QuitConfirm,nil,mferror+mfyesbutton+mfnobutton)=cmYes
                    else
                      MustQuit:=true;
                  end;
@@ -112,7 +112,10 @@ end.
 
 {
   $Log$
-  Revision 1.4  2000-03-07 21:09:20  pierre
+  Revision 1.5  2000-05-02 08:42:26  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.4  2000/03/07 21:09:20  pierre
     * Use globdir.inc HasSignal conditional
     + Uses PutKeyEvent for CtrlC
 

+ 15 - 9
ide/text/fpcodcmp.pas

@@ -122,7 +122,7 @@ var R,R2,R3: TRect;
     SB: PScrollBar;
 begin
   R.Assign(0,0,46,16);
-  inherited Init(R,'CodeComplete');
+  inherited Init(R,dialog_codecomplete);
 
   GetExtent(R); R.Grow(-3,-2); Inc(R.A.Y); R3.Copy(R); Dec(R.B.X,12);
   R2.Copy(R); R2.Move(1,0); R2.A.X:=R2.B.X-1;
@@ -130,18 +130,18 @@ begin
   New(CodeCompleteLB, Init(R,1,SB));
   Insert(CodeCompleteLB);
   R2.Copy(R); R2.Move(0,-1); R2.B.Y:=R2.A.Y+1; Dec(R2.A.X);
-  Insert(New(PLabel, Init(R2, '~K~eywords', CodeCompleteLB)));
+  Insert(New(PLabel, Init(R2, label_codecomplete_keywords, CodeCompleteLB)));
 
   R.Copy(R3); R.A.X:=R.B.X-10; R.B.Y:=R.A.Y+2;
-  Insert(New(PButton, Init(R, 'O~K~', cmOK, bfNormal)));
+  Insert(New(PButton, Init(R, button_OK, cmOK, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~E~dit', cmEditItem, bfDefault)));
+  Insert(New(PButton, Init(R, button_Edit, cmEditItem, bfDefault)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~N~ew', cmAddItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_New, cmAddItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~D~elete', cmDeleteItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_Delete, cmDeleteItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
+  Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
   SelectNext(false);
 end;
 
@@ -226,7 +226,10 @@ begin
       begin
         CanExit:=PCodeCompleteWordList(CodeCompleteLB^.List)^.Search(@S,I)=false;
         if CanExit=false then
-          ErrorBox('"'+S+'" is already in the list',nil);
+        begin
+          ClearFormatParams; AddFormatParamStr(S);
+          ErrorBox(msg_codecomplete_alreadyinlist,@FormatParams);
+        end;
       end;
   until CanExit;
 
@@ -261,7 +264,10 @@ begin
         CanExit:=PCodeCompleteWordList(CodeCompleteLB^.List)^.Search(@S,T)=false;
         CanExit:=CanExit or (T=I);
         if CanExit=false then
-          ErrorBox('"'+S+'" is already in the list',nil);
+        begin
+          ClearFormatParams; AddFormatParamStr(S);
+          ErrorBox(msg_codecomplete_alreadyinlist,@FormatParams);
+        end;
       end;
   until CanExit;
 

+ 18 - 12
ide/text/fpcodtmp.pas

@@ -262,10 +262,10 @@ begin
   GetExtent(R); R.Grow(-3,-2); R3.Copy(R);
   Inc(R.A.Y); R.B.Y:=R.A.Y+1; R.B.X:=R.A.X+46;
   New(ShortCutIL, Init(R, 128)); Insert(ShortcutIL);
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, '~S~hortcut', ShortcutIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_codetemplate_shortcut, ShortcutIL)));
   R.Move(0,3); R.B.Y:=R.A.Y+8;
   New(CodeMemo, Init(R, nil,nil,nil{,4096 does not compile !! })); Insert(CodeMemo);
-  R2.Copy(R); R2.Move(-1,-1); R2.B.Y:=R2.A.Y+1; Insert(New(PLabel, Init(R2, '~T~emplate content', CodeMemo)));
+  R2.Copy(R); R2.Move(-1,-1); R2.B.Y:=R2.A.Y+1; Insert(New(PLabel, Init(R2, label_codetemplate_content, CodeMemo)));
 
   InsertButtons(@Self);
 
@@ -309,7 +309,7 @@ begin
   New(CodeTemplatesLB, Init(R,1,SB));
   Insert(CodeTemplatesLB);
   R2.Copy(R); R2.Move(0,-1); R2.B.Y:=R2.A.Y+1; Dec(R2.A.X);
-  Insert(New(PLabel, Init(R2, '~T~emplates', CodeTemplatesLB)));
+  Insert(New(PLabel, Init(R2, label_codetemplate_templates, CodeTemplatesLB)));
 
   GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y,12);
   R2.Copy(R); R2.Move(1,0); R2.A.X:=R2.B.X-1;
@@ -323,15 +323,15 @@ begin
   Insert(TemplateViewer);
 
   R.Copy(R3); R.A.X:=R.B.X-10; R.B.Y:=R.A.Y+2;
-  Insert(New(PButton, Init(R, 'O~K~', cmOK, bfNormal)));
+  Insert(New(PButton, Init(R, button_OK, cmOK, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~E~dit', cmEditItem, bfDefault)));
+  Insert(New(PButton, Init(R, button_Edit, cmEditItem, bfDefault)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~N~ew', cmAddItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_New, cmAddItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~D~elete', cmDeleteItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_Delete, cmDeleteItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
+  Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
   SelectNext(false);
 end;
 
@@ -441,14 +441,17 @@ begin
     end;
   New(P, Init(S,L));
   repeat
-    Cmd:=Application^.ExecuteDialog(New(PCodeTemplateDialog, Init('New template',P)), nil);
+    Cmd:=Application^.ExecuteDialog(New(PCodeTemplateDialog, Init(dialog_newtemplate,P)), nil);
     CanExit:=(Cmd<>cmOK);
     if CanExit=false then
       begin
         P2:=PCodeTemplateCollection(CodeTemplatesLB^.List)^.SearchByShortCut(P^.GetShortCut);
         CanExit:=(Assigned(P2)=false);
         if CanExit=false then
-          ErrorBox('A template named "'+P^.GetShortCut+'" is already in the list',nil);
+        begin
+          ClearFormatParams; AddFormatParamStr(P^.GetShortCut);
+          ErrorBox(msg_codetemplate_alreadyinlist,@FormatParams);
+        end;
       end;
   until CanExit;
   if Cmd=cmOK then
@@ -478,14 +481,17 @@ begin
   O^.GetParams(S,L);
   P:=New(PCodeTemplate, Init(S, L));
   repeat
-    Cmd:=Application^.ExecuteDialog(New(PCodeTemplateDialog, Init('Modify template',P)), nil);
+    Cmd:=Application^.ExecuteDialog(New(PCodeTemplateDialog, Init(dialog_modifytemplate,P)), nil);
     CanExit:=(Cmd<>cmOK);
     if CanExit=false then
       begin
         P2:=PCodeTemplateCollection(CodeTemplatesLB^.List)^.SearchByShortCut(P^.GetShortCut);
         CanExit:=(Assigned(P2)=false) or (CodeTemplatesLB^.List^.IndexOf(P2)=I);
         if CanExit=false then
-          ErrorBox('A template named "'+P^.GetShortCut+'" is already in the list',nil);
+        begin
+          ClearFormatParams; AddFormatParamStr(P^.GetShortCut);
+          ErrorBox(msg_codetemplate_alreadyinlist,@FormatParams);
+        end;
       end;
   until CanExit;
   if Cmd=cmOK then

+ 65 - 47
ide/text/fpcompil.pas

@@ -95,7 +95,7 @@ uses
   App,Commands,tokens,
   CompHook, Compiler, systems, browcol, switches,
   WEditor,
-  FPRedir,FPDesk,FPUsrScr,FPHelp,
+  FPString,FPRedir,FPDesk,FPUsrScr,FPHelp,
   FPIde,FPConst,FPVars,FPUtils,FPIntf,FPSwitch;
 
 {$ifndef NOOBJREG}
@@ -211,22 +211,22 @@ var
   S: string;
 begin
   if TClass=
-    V_Fatal       then ClassS:='Fatal'       else if TClass =
-    V_Error       then ClassS:='Error'       else if TClass =
-    V_Normal      then ClassS:=''            else if TClass =
-    V_Warning     then ClassS:='Warning'     else if TClass =
-    V_Note        then ClassS:='Note'        else if TClass =
-    V_Hint        then ClassS:='Hint'
+    V_Fatal       then ClassS:=msg_class_Fatal   else if TClass =
+    V_Error       then ClassS:=msg_class_Error   else if TClass =
+    V_Normal      then ClassS:=msg_class_Normal  else if TClass =
+    V_Warning     then ClassS:=msg_class_Warning else if TClass =
+    V_Note        then ClassS:=msg_class_Note    else if TClass =
+    V_Hint        then ClassS:=msg_class_Hint
 {$ifdef VERBOSETXT}
     else if TClass =
-    V_Macro       then ClassS:='Macro'       else if TClass =
-    V_Procedure   then ClassS:='Procedure'   else if TClass =
-    V_Conditional then ClassS:='Conditional' else if TClass =
-    V_Info        then ClassS:='Info'        else if TClass =
-    V_Status      then ClassS:='Status'      else if TClass =
-    V_Used        then ClassS:='Used'        else if TClass =
-    V_Tried       then ClassS:='Tried'       else if TClass =
-    V_Debug       then ClassS:='Debug'
+    V_Macro       then ClassS:=msg_class_macro   else if TClass =
+    V_Procedure   then ClassS:=msg_class_procedure else if TClass =
+    V_Conditional then ClassS:=msg_class_conditional else if TClass =
+    V_Info        then ClassS:=msg_class_info    else if TClass =
+    V_Status      then ClassS:=msg_class_status  else if TClass =
+    V_Used        then ClassS:=msg_class_used    else if TClass =
+    V_Tried       then ClassS:=msg_class_tried   else if TClass =
+    V_Debug       then ClassS:=msg_class_debug
   else
    ClassS:='???';
 {$else}
@@ -297,7 +297,7 @@ var R: TRect;
 begin
   Desktop^.GetExtent(R);
   R.A.Y:=R.B.Y-7;
-  inherited Init(R,'Compiler Messages',{SearchFreeWindowNo}wnNoNumber);
+  inherited Init(R,dialog_compilermessages,{SearchFreeWindowNo}wnNoNumber);
   HelpCtx:=hcMessagesWindow;
 
   AutoNumber:=true;
@@ -420,7 +420,8 @@ constructor TCompilerStatusDialog.Init;
 var R: TRect;
 begin
   R.Assign(0,0,50,11);
-  inherited Init(R, 'Compiling  ('+KillTilde(SwitchesModeName[SwitchesMode])+' mode)');
+  ClearFormatParams; AddFormatParamStr(KillTilde(SwitchesModeName[SwitchesMode]));
+  inherited Init(R, FormatStrF(dialog_compilingwithmode, FormatParams));
   GetExtent(R); R.B.Y:=11;
   R.Grow(-3,-2);
   New(ST, Init(R, ''));
@@ -433,12 +434,6 @@ end;
 
 
 procedure TCompilerStatusDialog.Update;
-const
-  CtrlBS      = 'Press ESC to cancel';
-  SuccessS    = 'Compile successful: ~Press Enter~';
-  FailS       = 'Compile failed';
-  AbortS      = 'Compile aborted';
-  PleaseWaitS = 'Please wait...';
 var
   StatusS,KeyS: string;
 begin
@@ -448,38 +443,48 @@ begin
   case CompilationPhase of
     cpCompiling :
       begin
-        StatusS:='Compiling '+SmartPath(Status.CurrentSource);
-        KeyS:=CtrlBS;
+        ClearFormatParams; AddFormatParamStr(SmartPath(Status.CurrentSource));
+        StatusS:=FormatStrF(msg_compilingfile,FormatParams);
+        KeyS:=msg_hint_pressesctocancel;
       end;
     cpLinking   :
       begin
-        StatusS:='Linking '+ExeFile;
-        KeyS:={CtrlBS}PleaseWaitS;
+        ClearFormatParams; AddFormatParamStr(ExeFile);
+        StatusS:=FormatStrF(msg_linkingfile,FormatParams);
+        KeyS:=msg_hint_pleasewait;
       end;
     cpDone      :
       begin
-        StatusS:='Done.';
-        KeyS:=SuccessS;
+        StatusS:=msg_compiledone;
+        KeyS:=msg_hint_compilesuccessfulpressenter;
       end;
     cpFailed    :
       begin
-        StatusS:='Failed to compile...';
-        KeyS:=FailS;
+        StatusS:=msg_failedtocompile;
+        KeyS:=msg_hint_compilefailed;
       end;
     cpAborted    :
       begin
-        StatusS:='Compilation aborted...';
-        KeyS:=AbortS;
+        StatusS:=msg_compilationaborted;
+        KeyS:=msg_hint_compileaborted;
       end;
   end;
+  ClearFormatParams;
+  AddFormatParamStr(SmartPath(MainFile));
+  AddFormatParamStr(StatusS);
+  AddFormatParamStr(KillTilde(TargetSwitches^.ItemName(TargetSwitches^.GetCurrSel)));
+  AddFormatParamInt(Status.CurrentLine);
+  AddFormatParamInt(MemAvail div 1024);
+  AddFormatParamInt(Status.CompiledLines);
+  AddFormatParamInt(Status.ErrorCount);
   ST^.SetText(
-    'Main file: '+SmartPath(MainFile)+#13+
-    StatusS+#13#13+
-    'Target: '+LExpand(KillTilde(TargetSwitches^.ItemName(TargetSwitches^.GetCurrSel)),12)+'    '+
-    'Line number: '+IntToStrL(Status.CurrentLine,7)+#13+
-    'Free memory: '+IntToStrL(MemAvail div 1024,6)+'K'+ '    '+
-    'Total lines: '+IntToStrL(Status.CompiledLines,7)+#13+
-    'Total errors: '+IntToStrL(Status.ErrorCount,5)
+   FormatStrF(
+    'Main file: %s'#13+
+    '%s'+#13#13+
+    'Target: %12s    '+     'Line number: %7d'+#13+
+    'Free memory: %6dK    '+'Total lines: %7d'+#13+
+    'Total errors: %5d',
+   FormatParams)
   );
   KeyST^.SetText(^C+KeyS);
 {$ifdef TEMPHEAP}
@@ -645,12 +650,12 @@ begin
   FileName:=GetMainFile;
   if FileName='' then
     begin
-      ErrorBox('Oooops, nothing to compile.',nil);
+      ErrorBox(msg_nothingtocompile,nil);
       Exit;
     end else
   if FileName='*' then
     begin
-      ErrorBox('Can''t compile unsaved file.',nil);
+      ErrorBox(msg_cantcompileunsavedfile,nil);
       Exit;
     end;
 { Show Compiler Messages Window }
@@ -738,7 +743,8 @@ begin
        if not ExistsFile(EXEFile) then
          begin
            Inc(status.errorCount);
-           CompilerMessageWindow^.AddMessage(V_error,'could not create '+ExeFile,'',0,0);
+           ClearFormatParams; AddFormatParamStr(ExeFile);
+           CompilerMessageWindow^.AddMessage(V_error,FormatStrF(msg_couldnotcreatefile,FormatParams),'',0,0);
            Assign(ErrFile,FPErrFileName);
            Reset(ErrFile);
            LinkErrorCount:=0;
@@ -749,8 +755,11 @@ begin
                inc(LinkErrorCount);
              end;
            if not eof(ErrFile) then
+           begin
+             ClearFormatParams; AddFormatParamStr(FPErrFileName);
              CompilerMessageWindow^.AddMessage(V_error,
-               'There are more errors in file '+FPErrFileName,'',0,0);
+               FormatStrF(msg_therearemoreerrorsinfile,FormatParams),'',0,0);
+           end;
 
            Close(ErrFile);
          end;
@@ -838,9 +847,12 @@ begin
       if Need then
         begin
           if verbose then
+          begin
+            ClearFormatParams; AddFormatParamStr(GetMainFile);
             CompilerMessageWindow^.AddMessage(V_info,
-              'First compilation of '+GetMainFile,
+              FormatStrF(msg_firstcompilationof,FormatParams),
               '',0,0);
+          end;
         end
       else
         for I:=0 to SourceFiles^.Count-1 do
@@ -861,9 +873,12 @@ begin
                 begin
                   Need:=true;
                   if verbose then
+                  begin
+                    ClearFormatParams; AddFormatParamStr(SF^.GetSourceFileName);
                     CompilerMessageWindow^.AddMessage(V_info,
-                      'Recompiling because of '+SF^.GetSourceFileName,
+                      FormatStrF(msg_recompilingbecauseof,FormatParams),
                       SF^.GetSourceFileName,1,1);
+                  end;
                   Break;
                 end;
           end;
@@ -885,7 +900,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.56  2000-04-25 08:42:32  pierre
+  Revision 1.57  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.56  2000/04/25 08:42:32  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.55  2000/04/18 11:42:36  pierre

+ 7 - 6
ide/text/fpconst.pas

@@ -45,15 +45,12 @@ const
      DesktopTempName      = 'fp___.dsk';
 
      HTMLIndexExt         = '.htx';
+     HTMLExt              = '.htm';
      HelpFileExts         = '*.tph;*.htm*;*'+HTMLIndexExt;
+     TemplateExt          = '.pt';
 
      EnterSign            = #17#196#217;
 
-     { Strings/Messages }
-     strLoadingHelp       = 'Loading help files...';
-     strBuildingHelpIndex = 'Building Help Index...';
-     strLocatingTopic     = 'Locating topic...';
-
      { Main menu submenu indexes }
      menuFile             = 0;
      menuTools            = 6;
@@ -71,6 +68,7 @@ const
 
      { Startup Option constants }
      soReturnToLastDir    = $00000001;
+     soHeapMonitor        = $00000002;
 
      { Desktop Flag constants - what to include in the desktop file }
      dfHistoryLists       = $00000001;
@@ -395,7 +393,10 @@ implementation
 END.
 {
   $Log$
-  Revision 1.37  2000-04-25 08:42:33  pierre
+  Revision 1.38  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.37  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.36  2000/04/18 11:42:36  pierre

+ 59 - 49
ide/text/fpdebug.pas

@@ -348,7 +348,7 @@ uses
   Windebug,
 {$endif win32}
   Systems,
-  FPVars,FPUtils,FPConst,FPSwitch,
+  FPString,FPVars,FPUtils,FPConst,FPSwitch,
   FPIntf,FPCompile,FPIde,FPHelp,
   Validate,WEditor,WUtils;
 
@@ -863,14 +863,12 @@ begin
    ResetDebuggerRows;
    LastExitCode:=Code;
    If HiddenStepsCount=0 then
-     InformationBox(#3'Program exited with '#13#3'exitcode = %d',@code)
+     InformationBox(msg_programexitedwithexitcode,@code)
    else
      begin
         P[1]:=code;
         P[2]:=HiddenStepsCount;
-        WarningBox(#3'Program exited with '#13+
-                   #3'exitcode = %d'#13+
-                   #3'hidden steps = %d',@P);
+        WarningBox(msg_programexitedwithcodeandsteps,@P);
      end;
 end;
 
@@ -898,11 +896,11 @@ begin
   Inc(RunCount);
   if NoSwitch then
     begin
-      PushStatus('Executable running in another window..');
+      PushStatus(msg_runninginanotherwindow);
     end
   else
     begin
-      PushStatus('Running...');
+      PushStatus(msg_runningprogram);
       IDEApp.ShowUserScreen;
     end;
 {$ifdef win32}
@@ -1062,11 +1060,19 @@ begin
         begin
           GDBIndex:=0;
           if (typ=bt_file_line) and assigned(FileName) then
-            ErrorBox(#3'Could not set Breakpoint'#13+
-              #3+NameAndExtOf(FileName^)+':'+IntToStr(Line),nil)
+            begin
+              ClearFormatParams;
+              AddFormatParamStr(NameAndExtOf(FileName^));
+              AddFormatParamInt(Line);
+              ErrorBox(msg_couldnotsetbreakpointat,@FormatParams);
+            end
           else
-            ErrorBox(#3'Could not set Breakpoint'#13+
-              #3+BreakpointTypeStr[typ]+' '+GetStr(Name),nil);
+            begin
+              ClearFormatParams;
+              AddFormatParamStr(BreakpointTypeStr[typ]);
+              AddFormatParamStr(GetStr(Name));
+              ErrorBox(msg_couldnotsetbreakpointtype,@FormatParams);
+            end;
           state:=bs_disabled;
         end;
     end
@@ -1328,11 +1334,11 @@ var M: PMenu;
 begin
   if (Owner<>nil) and (Owner^.GetState(sfModal)) then M:=nil else
   M:=NewMenu(
-    NewItem('~G~oto source','',kbNoKey,cmMsgGotoSource,hcMsgGotoSource,
-    NewItem('~E~dit breakpoint','',kbNoKey,cmEditBreakpoint,hcEditBreakpoint,
-    NewItem('~N~ew breakpoint','',kbNoKey,cmNewBreakpoint,hcNewBreakpoint,
-    NewItem('~D~elete breakpoint','',kbNoKey,cmDeleteBreakpoint,hcDeleteBreakpoint,
-    NewItem('~T~oggle state','',kbNoKey,cmToggleBreakpoint,hcToggleBreakpoint,
+    NewItem(menu_bplocal_gotosource,'',kbNoKey,cmMsgGotoSource,hcMsgGotoSource,
+    NewItem(menu_bplocal_editbreakpoint,'',kbNoKey,cmEditBreakpoint,hcEditBreakpoint,
+    NewItem(menu_bplocal_newbreakpoint,'',kbNoKey,cmNewBreakpoint,hcNewBreakpoint,
+    NewItem(menu_bplocal_deletebreakpoint,'',kbNoKey,cmDeleteBreakpoint,hcDeleteBreakpoint,
+    NewItem(menu_bplocal_togglestate,'',kbNoKey,cmToggleBreakpoint,hcToggleBreakpoint,
     nil))))));
   GetLocalMenu:=M;
 end;
@@ -1647,12 +1653,12 @@ var R,R2: TRect;
 const White = 15;
 begin
   Desktop^.GetExtent(R); R.A.Y:=R.B.Y-18;
-  inherited Init(R, 'Breakpoint list', wnNoNumber);
+  inherited Init(R, dialog_breakpointlist, wnNoNumber);
 
   HelpCtx:=hcBreakpointListWindow;
 
   GetExtent(R); R.Grow(-1,-1); R.B.Y:=R.A.Y+1;
-  S:=' Type      | State   | Position          | Ignore | Conditions ';
+  S:=label_breakpointpropheader;
   New(ST, Init(R,S));
   ST^.GrowMode:=gfGrowHiX;
   Insert(ST);
@@ -1675,22 +1681,22 @@ begin
   X:=(R.B.X-R.A.X) div 4;
   X1:=R.A.X+(X div 2);
   R.A.X:=X1-3;R.B.X:=X1+7;
-  New(Btn, Init(R, '~C~lose', cmClose, bfDefault));
+  New(Btn, Init(R, button_Close, cmClose, bfDefault));
   Btn^.GrowMode:=gfGrowLoY+gfGrowHiY;
   Insert(Btn);
   X1:=X1+X;
   R.A.X:=X1-3;R.B.X:=X1+7;
-  New(Btn, Init(R, '~N~ew', cmNewBreakpoint, bfNormal));
+  New(Btn, Init(R, button_New, cmNewBreakpoint, bfNormal));
   Btn^.GrowMode:=gfGrowLoY+gfGrowHiY;
   Insert(Btn);
   X1:=X1+X;
   R.A.X:=X1-3;R.B.X:=X1+7;
-  New(Btn, Init(R, '~E~dit', cmEditBreakpoint, bfNormal));
+  New(Btn, Init(R, button_Edit, cmEditBreakpoint, bfNormal));
   Btn^.GrowMode:=gfGrowLoY+gfGrowHiY;
   Insert(Btn);
   X1:=X1+X;
   R.A.X:=X1-3;R.B.X:=X1+7;
-  New(Btn, Init(R, '~D~elete', cmDeleteBreakpoint, bfNormal));
+  New(Btn, Init(R, button_Delete, cmDeleteBreakpoint, bfNormal));
   Btn^.GrowMode:=gfGrowLoY+gfGrowHiY;
   Insert(Btn);
   BreakLB^.Select;
@@ -1808,24 +1814,24 @@ begin
   KeyCount:=longint(high(BreakpointType));
 
   R.Assign(0,0,60,Max(3+KeyCount,18));
-  inherited Init(R,'Modify/New Breakpoint');
+  inherited Init(R,dialog_modifynewbreakpoint);
   Breakpoint:=ABreakpoint;
 
   GetExtent(R); R.Grow(-3,-2); R3.Copy(R);
   Inc(R.A.Y); R.B.Y:=R.A.Y+1; R.B.X:=R.A.X+36;
   New(NameIL, Init(R, 128)); Insert(NameIL);
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, '~N~ame', NameIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_breakpoint_name, NameIL)));
   R.Move(0,3);
   New(LineIL, Init(R, 128)); Insert(LineIL);
   LineIL^.SetValidator(New(PRangeValidator, Init(0,MaxInt)));
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, '~L~ine', LineIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_breakpoint_line, LineIL)));
   R.Move(0,3);
   New(ConditionsIL, Init(R, 128)); Insert(ConditionsIL);
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, 'Conditions', ConditionsIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_breakpoint_conditions, ConditionsIL)));
   R.Move(0,3);
   New(IgnoreIL, Init(R, 128)); Insert(IgnoreIL);
   IgnoreIL^.SetValidator(New(PRangeValidator, Init(0,MaxInt)));
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, '~I~gnore count', IgnoreIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_breakpoint_ignorecount, IgnoreIL)));
 
   R.Copy(R3); Inc(R.A.X,38); R.B.Y:=R.A.Y+KeyCount;
   Items:=nil;
@@ -2276,9 +2282,9 @@ var M: PMenu;
 begin
   if (Owner<>nil) and (Owner^.GetState(sfModal)) then M:=nil else
   M:=NewMenu(
-    NewItem('~E~dit watch','',kbNoKey,cmEdit,hcNoContext,
-    NewItem('~N~ew watch','',kbNoKey,cmNew,hcNoContext,
-    NewItem('~D~elete watch','',kbNoKey,cmDelete,hcNoContext,
+    NewItem(menu_watchlocal_edit,'',kbNoKey,cmEdit,hcNoContext,
+    NewItem(menu_watchlocal_new,'',kbNoKey,cmNew,hcNoContext,
+    NewItem(menu_watchlocal_delete,'',kbNoKey,cmDelete,hcNoContext,
     nil))));
   GetLocalMenu:=M;
 end;
@@ -2374,7 +2380,7 @@ end;
     begin
       Desktop^.GetExtent(R);
       R.A.Y:=R.B.Y-5;
-      inherited Init(R, 'Watches', wnNoNumber);
+      inherited Init(R, dialog_watches, wnNoNumber);
       Palette:=wpCyanWindow;
       GetExtent(R);
       HelpCtx:=hcWatches;
@@ -2445,12 +2451,12 @@ begin
   Inc(R.A.Y); R.B.Y:=R.A.Y+1; R.B.X:=R.A.X+36;
   New(NameIL, Init(R, 255)); Insert(NameIL);
   R2.Copy(R); R2.Move(-1,-1);
-  Insert(New(PLabel, Init(R2, '~E~xpression to watch', NameIL)));
+  Insert(New(PLabel, Init(R2, label_watch_expressiontowatch, NameIL)));
   GetExtent(R);
   R.Grow(-1,-1);
   R.A.Y:=R.A.Y+3;
   R.B.X:=R.A.X+36;
-  TextST:=New(PAdvancedStaticText, Init(R, 'Watch values'));
+  TextST:=New(PAdvancedStaticText, Init(R, label_watch_values));
   Insert(TextST);
 
   InsertButtons(@Self);
@@ -2475,13 +2481,15 @@ begin
   else
     S2:='';
 
+  ClearFormatParams;
+  AddFormatParamStr(S1);
+  AddFormatParamStr(S2);
   if assigned(Watch^.Last_value) and
      assigned(Watch^.Current_value) and
      (strcomp(Watch^.Last_value,Watch^.Current_value)=0) then
-    S1:='Current value: '+#13+S1
+    S1:=FormatStrF(msg_watch_currentvalue,FormatParams)
   else
-    S1:='Current value: '+#13+S1+#13+
-        'Previous value: '+#13+S2;
+    S1:=FormatStrF(msg_watch_currentandpreviousvalue,FormatParams);
 
   TextST^.SetText(S1);
 
@@ -2687,7 +2695,7 @@ end;
        Desktop^.GetExtent(R);
        R.A.X:=R.B.X-28;
        R.B.Y:=R.A.Y+11;
-       inherited Init(R,'Register View', wnNoNumber);
+       inherited Init(R,dialog_registers, wnNoNumber);
        Flags:=wfClose or wfMove;
        Palette:=wpCyanWindow;
        HelpCtx:=hcRegisters;
@@ -2927,7 +2935,7 @@ end;
        Desktop^.GetExtent(R);
        R.A.X:=R.B.X-28;
        R.B.Y:=R.A.Y+11;
-       inherited Init(R,'FPU View', wnNoNumber);
+       inherited Init(R,dialog_fpu, wnNoNumber);
        Flags:=wfClose or wfMove;
        Palette:=wpCyanWindow;
        HelpCtx:=hcRegisters;
@@ -3068,7 +3076,7 @@ end;
     begin
       Desktop^.GetExtent(R);
       R.A.Y:=R.B.Y-5;
-      inherited Init(R, 'Call Stack', wnNoNumber);
+      inherited Init(R, dialog_callstack, wnNoNumber);
       Palette:=wpCyanWindow;
       GetExtent(R);
       HelpCtx:=hcStack;
@@ -3162,10 +3170,10 @@ begin
   NeedRecompileExe:=false;
   if TargetSwitches^.GetCurrSelParam<>source_os.shortname then
     begin
-     cm:=ConfirmBox(#3'Sorry, can not debug'#13#3'programs compiled for '
-       +TargetSwitches^.GetCurrSelParam+'.'#13#3
-       +'Change target to '
-       +source_os.shortname+'?',nil,true);
+     ClearFormatParams;
+     AddFormatParamStr(TargetSwitches^.GetCurrSelParam);
+     AddFormatParamStr(source_os.shortname);
+     cm:=ConfirmBox(msg_cantdebugchangetargetto,@FormatParams,true);
      if cm=cmCancel then
        Exit;
      if cm=cmYes then
@@ -3183,9 +3191,8 @@ begin
      (PrevMainFile<>MainFile) or NeedRecompile(false);
   if Not NeedRecompileExe and Not MainHasDebugInfo then
     begin
-     cm:=ConfirmBox(#3'Warning, the program'#13#3'was compiled without'#13#3
-       +'debugging info.'#13#3
-       +'Recompile it?',nil,true);
+     ClearFormatParams;
+     cm:=ConfirmBox(msg_compiledwithoutdebuginforecompile,nil,true);
      if cm=cmCancel then
        Exit;
      if cm=cmYes then
@@ -3202,11 +3209,11 @@ begin
     Exit;
   if (EXEFile='') then
    begin
-     ErrorBox('Oooops, nothing to debug.',nil);
+     ErrorBox(msg_nothingtodebug,nil);
      Exit;
    end;
 {$ifdef DEBUG}
-  PushStatus('Starting debugger');
+  PushStatus(msg_startingdebugger);
 {$endif DEBUG}
 { init debugcontroller }
   if assigned(Debugger) then
@@ -3340,7 +3347,10 @@ end.
 
 {
   $Log$
-  Revision 1.60  2000-04-18 21:45:35  pierre
+  Revision 1.61  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.60  2000/04/18 21:45:35  pierre
    * Red line for breakpoint was off by one line
 
   Revision 1.59  2000/04/18 11:42:36  pierre

+ 46 - 39
ide/text/fpdesk.pas

@@ -51,7 +51,7 @@ uses Dos,
 {$ifndef NODEBUG}
      fpdebug,
 {$endif ndef NODEBUG}
-     FPConst,FPVars,FPUtils,FPViews,FPCompile,FPTools,FPHelp,
+     FPConst,FPVars,FPString,FPUtils,FPViews,FPCompile,FPTools,FPHelp,
      FPCodCmp,FPCodTmp;
 
 type
@@ -81,7 +81,7 @@ function ReadHistory(F: PResourceFile): boolean;
 var S: PMemoryStream;
     OK: boolean;
 begin
-  PushStatus('Reading history...');
+  PushStatus(msg_readinghistory);
   New(S, Init(32*1024,4096));
   OK:=F^.ReadResourceEntryToStream(resHistory,langDefault,S^);
   S^.Seek(0);
@@ -89,7 +89,7 @@ begin
     LoadHistory(S^);
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error loading history',nil);
+    ErrorBox(msg_errorloadinghistory,nil);
   PopStatus;
   ReadHistory:=OK;
 end;
@@ -98,7 +98,7 @@ function WriteHistory(F: PResourceFile): boolean;
 var S: PMemoryStream;
     OK: boolean;
 begin
-  PushStatus('Storing history...');
+  PushStatus(msg_storinghistory);
 
   New(S, Init(10*1024,4096));
   StoreHistory(S^);
@@ -107,7 +107,7 @@ begin
   OK:=F^.AddResourceEntryFromStream(resHistory,langDefault,0,S^,S^.GetSize);
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error storing history',nil);
+    ErrorBox(msg_errorstoringhistory,nil);
   PopStatus;
   WriteHistory:=OK;
 end;
@@ -143,7 +143,7 @@ var S: PMemoryStream;
 {$endif}
 begin
 {$ifndef NODEBUG}
-  PushStatus('Reading watches...');
+  PushStatus(msg_readingwatches);
   New(S, Init(32*1024,4096));
   OK:=F^.ReadResourceEntryToStream(resWatches,langDefault,S^);
   S^.Seek(0);
@@ -158,7 +158,7 @@ begin
         WatchesCollection:=OWC;
     end;
   if OK=false then
-    ErrorBox('Error loading watches',nil);
+    ErrorBox(msg_errorloadingwatches,nil);
   ReadWatches:=OK;
   Dispose(S, Done);
   PopStatus;
@@ -179,7 +179,7 @@ begin
 {$ifndef NODEBUG}
   else
     begin
-      PushStatus('Storing watches...');
+      PushStatus(msg_storingwatches);
       New(S, Init(30*1024,4096));
       S^.Put(WatchesCollection);
       S^.Seek(0);
@@ -187,7 +187,7 @@ begin
       OK:=F^.AddResourceEntryFromStream(resWatches,langDefault,0,S^,S^.GetSize);
       Dispose(S, Done);
       if OK=false then
-        ErrorBox('Error storing watches',nil);
+        ErrorBox(msg_errorstoringwatches,nil);
       PopStatus;
       WriteWatches:=OK;
     end;
@@ -202,7 +202,7 @@ var S: PMemoryStream;
 {$endif}
 begin
 {$ifndef NODEBUG}
-  PushStatus('Reading breakpoints...');
+  PushStatus(msg_readingbreakpoints);
   New(S, Init(32*1024,4096));
   OK:=F^.ReadResourceEntryToStream(resBreakpoints,langDefault,S^);
   S^.Seek(0);
@@ -221,7 +221,7 @@ begin
         BreakpointsCollection:=OBC;
     end;
   if OK=false then
-    ErrorBox('Error loading breakpoints',nil);
+    ErrorBox(msg_errorloadingbreakpoints,nil);
   ReadBreakpoints:=OK;
   Dispose(S, Done);
   PopStatus;
@@ -242,7 +242,7 @@ begin
 {$ifndef NODEBUG}
   else
     begin
-      PushStatus('Storing breakpoints...');
+      PushStatus(msg_storingbreakpoints);
       New(S, Init(30*1024,4096));
       BreakpointsCollection^.Store(S^);
       S^.Seek(0);
@@ -250,7 +250,7 @@ begin
       OK:=F^.AddResourceEntryFromStream(resBreakpoints,langDefault,0,S^,S^.GetSize);
       Dispose(S, Done);
       if OK=false then
-        ErrorBox('Error storing breakpoints',nil);
+        ErrorBox(msg_errorstoringbreakpoints,nil);
       WriteBreakPoints:=OK;
       PopStatus;
     end;
@@ -286,7 +286,11 @@ begin
         GetData(St[1],ord(St[0]));
         W:=ITryToOpenFile(@WI.Bounds,St,0,0,false,false,true);
         if Assigned(W)=false then
-          ErrorBox('Can''t open '+St,nil)
+          begin
+            ClearFormatParams;
+            AddFormatParamStr(St);
+            ErrorBox(msg_cantopenfile,@FormatParams);
+          end
         else
         begin
           GetData(TP,sizeof(TP)); GetData(TP2,sizeof(TP2));
@@ -313,7 +317,7 @@ begin
       W^.Hide;
 end;
 begin
-  PushStatus('Reading desktop contents...');
+  PushStatus(msg_readingdesktopcontents);
   New(S, Init(32*1024,4096));
   OK:=F^.ReadResourceEntryToStream(resDesktop,langDefault,S^);
   S^.Seek(0);
@@ -322,7 +326,7 @@ begin
     S^.Read(W,SizeOf(W));
     OK:=(W=DesktopVersion);
     if OK=false then
-      ErrorBox('Invalid desktop version. Desktop layout lost.',nil);
+      ErrorBox(msg_invaliddesktopversionlayoutlost,nil);
   end;
   if OK then
     begin
@@ -368,7 +372,7 @@ begin
           Message(Application,evBroadcast,cmUpdate,nil);
         end;*)
       if OK=false then
-        ErrorBox('Error loading desktop',nil);
+        ErrorBox(msg_errorloadingdesktop,nil);
     end;
   Dispose(S, Done);
   PopStatus;
@@ -440,7 +444,7 @@ var W: word;
     OK: boolean;
     PV: PView;
 begin
-  PushStatus('Storing desktop contents...');
+  PushStatus(msg_storingdesktopcontents);
 
   New(S, Init(30*1024,4096));
   OK:=Assigned(S);
@@ -485,7 +489,7 @@ begin
     Dispose(S, Done);
   end;
   if OK=false then
-    ErrorBox('Error storing desktop',nil);
+    ErrorBox(msg_errorstoringdesktop,nil);
   PopStatus;
   WriteOpenWindows:=OK;
 end;
@@ -498,7 +502,7 @@ begin
   OK:=F^.AddResourceEntry(resDesktopFlags,langDefault,0,DesktopFileFlags,
     SizeOf(DesktopFileFlags));
   if OK=false then
-    ErrorBox('Error writing flags',nil);
+    ErrorBox(msg_errorwritingflags,nil);
   WriteFlags:=OK;
 end;
 
@@ -506,7 +510,7 @@ function ReadCodeComplete(F: PResourceFile): boolean;
 var S: PMemoryStream;
     OK: boolean;
 begin
-  PushStatus('Reading CodeComplete wordlist...');
+  PushStatus(msg_readingcodecompletewordlist);
   New(S, Init(1024,1024));
   OK:=F^.ReadResourceEntryToStream(resCodeComplete,langDefault,S^);
   S^.Seek(0);
@@ -514,7 +518,7 @@ begin
     OK:=LoadCodeComplete(S^);
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error loading CodeComplete wordlist',nil);
+    ErrorBox(msg_errorloadingcodecompletewordlist,nil);
   PopStatus;
   ReadCodeComplete:=OK;
 end;
@@ -523,7 +527,7 @@ function WriteCodeComplete(F: PResourceFile): boolean;
 var OK: boolean;
     S: PMemoryStream;
 begin
-  PushStatus('Writing CodeComplete wordlist...');
+  PushStatus(msg_storingcodecompletewordlist);
   New(S, Init(1024,1024));
   OK:=StoreCodeComplete(S^);
   if OK then
@@ -534,7 +538,7 @@ begin
   end;
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error writing CodeComplete wordlist',nil);
+    ErrorBox(msg_errorstoringcodecompletewordlist,nil);
   PopStatus;
   WriteCodeComplete:=OK;
 end;
@@ -543,7 +547,7 @@ function ReadCodeTemplates(F: PResourceFile): boolean;
 var S: PMemoryStream;
     OK: boolean;
 begin
-  PushStatus('Reading CodeTemplates...');
+  PushStatus(msg_readingcodetemplates);
   New(S, Init(1024,4096));
   OK:=F^.ReadResourceEntryToStream(resCodeTemplates,langDefault,S^);
   S^.Seek(0);
@@ -551,7 +555,7 @@ begin
     OK:=LoadCodeTemplates(S^);
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error loading CodeTemplates wordlist',nil);
+    ErrorBox(msg_errorloadingcodetemplates,nil);
   PopStatus;
   ReadCodeTemplates:=OK;
 end;
@@ -560,7 +564,7 @@ function WriteCodeTemplates(F: PResourceFile): boolean;
 var OK: boolean;
     S: PMemoryStream;
 begin
-  PushStatus('Writing CodeTemplates...');
+  PushStatus(msg_storingcodetemplates);
   New(S, Init(1024,4096));
   OK:=StoreCodeTemplates(S^);
   if OK then
@@ -571,7 +575,7 @@ begin
   end;
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error writing CodeTemplates',nil);
+    ErrorBox(msg_errorstoringcodetemplates,nil);
   PopStatus;
   WriteCodeTemplates:=OK;
 end;
@@ -584,7 +588,7 @@ begin
   OK:=F^.ReadResourceEntry(resDesktopFlags,langDefault,DesktopFileFlags,
     size);
   if OK=false then
-    ErrorBox('Error loading flags',nil);
+    ErrorBox(msg_errorreadingflags,nil);
   ReadFlags:=OK;
 end;
 
@@ -596,7 +600,7 @@ begin
   OK:=F^.AddResourceEntry(resVideo,langDefault,0,ScreenMode,
     SizeOf(TVideoMode));
   if OK=false then
-    ErrorBox('Error storing video mode',nil);
+    ErrorBox(msg_errorstoringvideomode,nil);
   WriteVideoMode:=OK;
 end;
 
@@ -612,7 +616,7 @@ begin
     NewScreenMode:=ScreenMode;
   OK:=test and (size = SizeOf(TVideoMode));
   if OK=false then
-    ErrorBox('Error loading video mode',nil);
+    ErrorBox(msg_errorreadingvideomode,nil);
   ReadVideoMode:=OK;
 end;
 
@@ -625,7 +629,7 @@ begin
   R:=F^.FindResource(resSymbols);
   if not Assigned(R) then
     exit;
-  PushStatus('Reading symbol information...');
+  PushStatus(msg_readingsymbolinformation);
   New(S, Init(32*1024,4096));
   OK:=F^.ReadResourceEntryToStream(resSymbols,langDefault,S^);
   S^.Seek(0);
@@ -633,7 +637,7 @@ begin
     OK:=LoadBrowserCol(S);
   Dispose(S, Done);
   if OK=false then
-    ErrorBox('Error loading symbol information',nil);
+    ErrorBox(msg_errorloadingsymbolinformation,nil);
   PopStatus;
   ReadSymbols:=OK;
 end;
@@ -646,7 +650,7 @@ begin
 
   if OK then
   begin
-    PushStatus('Storing symbol information...');
+    PushStatus(msg_storingsymbolinformation);
 
     New(S, Init(200*1024,4096));
     OK:=Assigned(S);
@@ -660,7 +664,7 @@ begin
       end;
     Dispose(S, Done);
     if OK=false then
-      ErrorBox('Error storing symbol information',nil);
+      ErrorBox(msg_errorstoringsymbolinformation,nil);
     PopStatus;
   end;
   WriteSymbols:=OK;
@@ -671,7 +675,7 @@ var OK,VOK: boolean;
     F: PResourceFile;
     VM : TVideoMode;
 begin
-  PushStatus('Reading desktop file...');
+  PushStatus(msg_readingdesktopfile);
   New(F, LoadFile(DesktopPath));
 
   OK:=false;
@@ -714,7 +718,7 @@ var OK: boolean;
     TempPath: string;
 begin
   TempPath:=DirOf(DesktopPath)+DesktopTempName;
-  PushStatus('Writing desktop file...');
+  PushStatus(msg_writingdesktopfile);
   New(F, CreateFile(TempPath));
 
   if Assigned(Clipboard) then
@@ -751,7 +755,7 @@ begin
         OK:=EraseFile(DesktopPath);
       OK:=OK and RenameFile(TempPath,DesktopPath);
       if OK=false then
-        ErrorBox('Failed to replace desktop file.',nil);
+        ErrorBox(msg_failedtoreplacedesktopfile,nil);
     end;
   PopStatus;
   SaveDesktop:=OK;
@@ -793,7 +797,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.27  2000-04-25 08:42:33  pierre
+  Revision 1.28  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.27  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.26  2000/04/18 11:42:36  pierre

+ 142 - 140
ide/text/fphelp.pas

@@ -67,7 +67,7 @@ implementation
 
 uses Objects,Views,App,MsgBox,Commands,
      WUtils,WHTMLHlp,
-     FPConst,FPVars,FPUtils;
+     FPString,FPConst,FPVars,FPUtils;
 
 const
     MaxStatusLevel = {$ifdef FPC}10{$else}1{$endif};
@@ -102,132 +102,132 @@ begin
     hcBrowserWindow : S:='';
     hcMessagesWindow: S:='';
     hcASCIITableWindow: S:='';
-    hcGDBWindow     : S:='Raw GDB communication window';
-    hcBreakpointListWindow : S:='All current breakpoints';
-
-    hcSystemMenu    : S:='System menu';
-    hcUpdate        : S:='Refresh and redraw display';
-    hcAbout         : S:='Show version and copyright information';
-
-    hcFileMenu      : S:='File managment commands (Open, New, Save, etc.)';
-    hcNew           : S:='Create a new file in a new edit window';
-    hcNewFromTemplate:S:='Create a new file using a code template';
-    hcOpen          : S:='Locate and open a file in an edit window';
-    hcSave          : S:='Save the file in the active edit window';
-    hcSaveAs        : S:='Save the current file under a different name, directory or drive';
-    hcSaveAll       : S:='Save all modified files';
-    hcChangeDir     : S:='Choose a new default directory';
-    hcDOSShell      : S:='Temporarily exit to DOS';
-    hcQuit          : S:='Exit the IDE';
+    hcGDBWindow     : S:=hint_rawgdbwindow;
+    hcBreakpointListWindow : S:=hint_allbreakpoints;
+
+    hcSystemMenu    : S:=hint_systemmenu;
+    hcUpdate        : S:=hint_update;
+    hcAbout         : S:=hint_about;
+
+    hcFileMenu      : S:=hint_filemenu;
+    hcNew           : S:=hint_filenew;
+    hcNewFromTemplate:S:=hint_filenewfromtemplate;
+    hcOpen          : S:=hint_fileopen;
+    hcSave          : S:=hint_filesave;
+    hcSaveAs        : S:=hint_filesaveas;
+    hcSaveAll       : S:=hint_filesaveall;
+    hcChangeDir     : S:=hint_changedir;
+    hcDOSShell      : S:=hint_dosshell;
+    hcQuit          : S:=hint_exit;
     hcRecentFileBase..hcRecentFileBase+10
-                    : S:='Open indicated file in a new editor window';
-
-    hcEditMenu      : S:='Clipboard editing commands';
-    hcUndo          : S:='Undo the previous editor operation';
-    hcRedo          : S:='Redo the previously undone editor operation';
-    hcCut           : S:='Remove the selected text and put it in the clipboard';
-    hcCopy          : S:='Copy the selected text in the clipboard';
-    hcPaste         : S:='Insert selected text from the clipboard at the cursor position';
-    hcCopyWin       : S:='Copy the selected text in windows clipboard';
-    hcPasteWin      : S:='Insert selected text from windows clipboard at the cursor position';
-    hcClear         : S:='Delete the selected text';
-    hcShowClipboard : S:='Open then clipboard window';
-
-    hcSearchMenu    : S:='Text and symbols search commands';
-    hcFind          : S:='Search for text';
-    hcReplace       : S:='Search for text and replace it with new text';
-    hcSearchAgain   : S:='Repeat the last Search or Replace command';
-    hcGotoLine      : S:='Move the cursor to a specified line number';
-    hcObjects       : S:='Open a browser displaying all objects in the program';
-    hcModules       : S:='Open a browser displaying all modules of the program';
-    hcGlobals       : S:='Open a browser displaying all global symbols in the program';
-    hcSymbol        : S:='Open a browser a current word (not yet scope sensitive)';
-    hcRunMenu       : S:='Execution and parameters';
-    hcRun           : S:='Run the current program';
-    hcParameters    : S:='Set command-line parameters passed to program at execution';
-    hcResetDebugger : S:='Reset Program';
-    hcContToCursor  : S:='Go on until Cursor position';
-    hcUntilReturn   : S:='Go on until end of current function';
-    hcUserScreen    : S:='Switch to the full-screen user output';
-
-    hcCompileMenu   : S:='Compile, build & make';
-    hcCompile       : S:='Compile the current source file';
-    hcMake          : S:='Rebuild source file and all other files that have been modified';
-    hcBuild         : S:='Rebuild program and all available source files';
-    hcTarget        : S:='Select target platform to compile for';
-    hcPrimaryFile   : S:='Define then file that is the focus of Make and Build';
-    hcClearPrimary  : S:='Clear the file previously set to Primary';
-    hcInformation   : S:='Show compiler messages and program information';
-    hcCompilerMessages:S:='Show compiler messages window';
-
-    hcDebugMenu     : S:='Debug Program';
-    hcToggleBreakpoint : S:='Toggles Breakpoint';
-    hcNewBreakpoint    : S:='Create a new breakpoint';
-    hcEditBreakpoint   : S:='Edit focused breakpoint';
-    hcDeleteBreakpoint : S:='Delete focused breakpoint';
-    hcOpenGDBWindow : S:='Open direct window to GDB';
-    hcAddWatch      : S:='Add a new expression to watch';
-    hcWatches       : S:='Open the Watches Window';
-    hcStack         : S:='Show call stack';
-    hcBreakpointList : S:='Edit breakpoints';
-    hcToolsMenu     : S:='User installed tools';
-    hcCalculator    : S:='Show calculator';
-    hcGrep          : S:='Run grep';
-    hcMsgGotoSource : S:='Edit source';
-    hcRegisters     : S:='Open the Registers Window';
-
-    hcToolsMessages : S:='Open the message window';
+                    : S:=hint_openrecentfile;
+
+    hcEditMenu      : S:=hint_editmenu;
+    hcUndo          : S:=hint_editundo;
+    hcRedo          : S:=hint_editredo;
+    hcCut           : S:=hint_editcut;
+    hcCopy          : S:=hint_editcopy;
+    hcPaste         : S:=hint_editpaste;
+    hcCopyWin       : S:=hint_editcopywin;
+    hcPasteWin      : S:=hint_editpastewin;
+    hcClear         : S:=hint_editclear;
+    hcShowClipboard : S:=hint_showclipboard;
+
+    hcSearchMenu    : S:=hint_searchmenu;
+    hcFind          : S:=hint_searchfind;
+    hcReplace       : S:=hint_searchreplace;
+    hcSearchAgain   : S:=hint_searchagain;
+    hcGotoLine      : S:=hint_gotoline;
+    hcObjects       : S:=hint_objects;
+    hcModules       : S:=hint_modules;
+    hcGlobals       : S:=hint_globals;
+    hcSymbol        : S:=hint_symbol;
+    hcRunMenu       : S:=hint_runmenu;
+    hcRun           : S:=hint_run;
+    hcParameters    : S:=hint_runparameters;
+    hcResetDebugger : S:=hint_resetprogram;
+    hcContToCursor  : S:=hint_rununtilcursor;
+    hcUntilReturn   : S:=hint_rununtilreturn;
+    hcUserScreen    : S:=hint_userscreen;
+
+    hcCompileMenu   : S:=hint_compilemenu;
+    hcCompile       : S:=hint_compile;
+    hcMake          : S:=hint_make;
+    hcBuild         : S:=hint_build;
+    hcTarget        : S:=hint_target;
+    hcPrimaryFile   : S:=hint_primaryfile;
+    hcClearPrimary  : S:=hint_clearprimaryfile;
+    hcInformation   : S:=hint_information;
+    hcCompilerMessages:S:=hint_showmessages;
+
+    hcDebugMenu     : S:=hint_debugmenu;
+    hcToggleBreakpoint : S:=hint_togglebreakpoint;
+    hcNewBreakpoint    : S:=hint_createnewbreakpoint;
+    hcEditBreakpoint   : S:=hint_editbreakpoint;
+    hcDeleteBreakpoint : S:=hint_deletebreakpoint;
+    hcOpenGDBWindow : S:=hint_opengdbwindow;
+    hcAddWatch      : S:=hint_addwatch;
+    hcWatches       : S:=hint_watches;
+    hcStack         : S:=hint_callstack;
+    hcBreakpointList : S:=hint_editbreakpoints;
+    hcToolsMenu     : S:=hint_toolsmenu;
+    hcCalculator    : S:=hint_calculator;
+    hcGrep          : S:=hint_grep;
+    hcMsgGotoSource : S:=hint_gotosource;
+    hcRegisters     : S:=hint_registers;
+
+    hcToolsMessages : S:=hint_messageswindow;
     hcToolsBase..
     hcToolsBase+MaxToolCount
-                    : S:='User installed tool';
-    hcASCIITable    : S:='Show ASCII table';
-
-    hcOptionsMenu   : S:='Setting for compiler, editor, mouse, etc.';
-    hcSwitchesMode  : S:='Select settings for normal, debug or release version';
-    hcCompiler      : S:='Set default compiler directives and conditional defines';
-    hcMemorySizes   : S:='Set default stack and heap sizes for generated programs';
-    hcLinker        : S:='Set linker options';
-    hcDebugger      : S:='Set debug information options';
-    hcDirectories   : S:='Set paths for units, include, object and generated files';
-    hcBrowser       : S:='Specify global browser settings';
-    hcTools         : S:='Create or change tools';
-
-    hcEnvironmentMenu:S:='Specify environment settins';
-    hcPreferences   : S:='Specify desktop settings';
-    hcEditor        : S:='Specify default editor settings';
-    hcCodeCompleteOptions:S:='Specify CodeComplete keywords';
-    hcCodeTemplateOptions:S:='Specify CodeCompletes';
-    hcMouse         : S:='Specify mouse settings';
-    hcDesktopOptions: S:='Specify desktop settings';
-    hcStartup       : S:='Permanently change default startup options';
-    hcColors        : S:='Customize IDE colors for windows, menus, editors, etc.';
-    hcOpenINI       : S:='Load a previously saved options file';
-    hcSaveINI       : S:='Save all the changes made in the options menu';
-    hcSaveAsINI     : S:='Save all the changes made under a different name';
-
-    hcWindowMenu    : S:='Windows managment commands';
-    hcTile          : S:='Arrange windows on desktop by tiling';
-    hcCascade       : S:='Arrange windows on desktop by cascading';
-    hcCloseAll      : S:='Close all windows on the desktop';
-    hcResize        : S:='Change the size/postion of the active window';
-    hcZoom          : S:='Enlarge or restore the size of the active window';
-    hcNext          : S:='Make the next window active';
-    hcPrev          : S:='Make the previous window active';
-    hcClose         : S:='Close the active window';
-    hcWindowList    : S:='Show a list of all open windows';
-    hcUserScreenWindow:S:='Show contents of user screen in a window';
-
-    hcHelpMenu      : S:='Get online help';
-    hcHelpContents  : S:='Show table of contents for Online Help';
-    hcHelpIndex     : S:='Show index for Online Help';
-    hcHelpTopicSearch:S:='Display help on the word at cursor';
-    hcHelpPrevTopic : S:='Redisplay the last-viewed Online Help screen';
-    hcHelpUsingHelp : S:='How to use Online Help';
-    hcHelpFiles     : S:='Install or remove installed help files';
-
-    hcOpenAtCursor  : S:='Attempt to open the file indicated by the word at cursor';
-    hcBrowseAtCursor: S:='Attempt to browse the symbol at cursor';
-    hcEditorOptions : S:='Specify editor settings';
+                    : S:=hint_usertool;
+    hcASCIITable    : S:=hint_asciitable;
+
+    hcOptionsMenu   : S:=hint_optionsmenu;
+    hcSwitchesMode  : S:=hint_switchesmode;
+    hcCompiler      : S:=hint_compiler;
+    hcMemorySizes   : S:=hint_memorysizes;
+    hcLinker        : S:=hint_linkeroptions;
+    hcDebugger      : S:=hint_debugoptions;
+    hcDirectories   : S:=hint_directories;
+    hcBrowser       : S:=hint_browser;
+    hcTools         : S:=hint_tools;
+
+    hcEnvironmentMenu:S:=hint_environmentmenu;
+    hcPreferences   : S:=hint_preferences;
+    hcEditor        : S:=hint_editoroptions;
+    hcCodeCompleteOptions:S:=hint_codecomplete;
+    hcCodeTemplateOptions:S:=hint_codetemplates;
+    hcMouse         : S:=hint_mouseoptions;
+    hcDesktopOptions: S:=hint_desktopoptions;
+    hcStartup       : S:=hint_startup;
+    hcColors        : S:=hint_colors;
+    hcOpenINI       : S:=hint_openini;
+    hcSaveINI       : S:=hint_saveini;
+    hcSaveAsINI     : S:=hint_saveasini;
+
+    hcWindowMenu    : S:=hint_windowmenu;
+    hcTile          : S:=hint_tile;
+    hcCascade       : S:=hint_cascade;
+    hcCloseAll      : S:=hint_closeall;
+    hcResize        : S:=hint_resize;
+    hcZoom          : S:=hint_zoom;
+    hcNext          : S:=hint_next;
+    hcPrev          : S:=hint_prev;
+    hcClose         : S:=hint_closewindow;
+    hcWindowList    : S:=hint_windowlist;
+    hcUserScreenWindow:S:=hint_userscreenwindow;
+
+    hcHelpMenu      : S:=hint_helpmenu;
+    hcHelpContents  : S:=hint_helpcontents;
+    hcHelpIndex     : S:=hint_helpindex;
+    hcHelpTopicSearch:S:=hint_helptopicsearch;
+    hcHelpPrevTopic : S:=hint_helpprevtopic;
+    hcHelpUsingHelp : S:=hint_helphowtouse;
+    hcHelpFiles     : S:=hint_helpfiles;
+
+    hcOpenAtCursor  : S:=hint_openatcursor;
+    hcBrowseAtCursor: S:=hint_browseatcursor;
+    hcEditorOptions : S:=hint_editoroptionscur;
   else S:='???';
   end;
   Hint:=S;
@@ -235,7 +235,7 @@ end;
 
 procedure TFPHTMLFileLinkScanner.ProcessDoc(Doc: PHTMLLinkScanFile);
 begin
-  PushStatus('Indexing file '+Doc^.GetDocumentURL);
+  PushStatus(FormatStrStr(msg_indexingfile,Doc^.GetDocumentURL));
   inherited ProcessDoc(Doc);
   PopStatus;
 end;
@@ -266,23 +266,23 @@ procedure InitHelpSystem;
 
   procedure AddOAFile(HelpFile: string);
   begin
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp+' ('+SmartPath(HelpFile)+')');{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile+' ('+SmartPath(HelpFile)+')');{$ENDIF}
     HelpFacility^.AddOAHelpFile(HelpFile);
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp);{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile);{$ENDIF}
   end;
 
   procedure AddHTMLFile(TOCEntry,HelpFile: string);
   begin
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp+' ('+SmartPath(HelpFile)+')');{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile+' ('+SmartPath(HelpFile)+')');{$ENDIF}
     HelpFacility^.AddHTMLHelpFile(HelpFile, TOCEntry);
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp);{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile);{$ENDIF}
   end;
 
   procedure AddHTMLIndexFile(HelpFile: string);
   begin
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp+' ('+SmartPath(HelpFile)+')');{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile+' ('+SmartPath(HelpFile)+')');{$ENDIF}
     HelpFacility^.AddHTMLIndexHelpFile(HelpFile);
-    {$IFDEF DEBUG}SetStatus(strLoadingHelp);{$ENDIF}
+    {$IFDEF DEBUG}SetStatus(msg_LoadingHelpFile);{$ENDIF}
   end;
 
 var I,P: sw_integer;
@@ -290,8 +290,7 @@ var I,P: sw_integer;
     TopicTitle: string;
 begin
   New(HelpFacility, Init);
-  PushStatus(strLoadingHelp);
-{  AddHTMLFile('User''s guide','C:\FP\USER\USER.HTM');}
+  PushStatus(msg_LoadingHelpFiles);
   for I:=0 to HelpFiles^.Count-1 do
     begin
       S:=HelpFiles^.At(I)^; TopicTitle:='';
@@ -299,9 +298,9 @@ begin
       if P>0 then
         begin TopicTitle:=copy(S,P+1,255); S:=copy(S,1,P-1); end;
       if TopicTitle='' then TopicTitle:=S;
-      if copy(UpcaseStr(ExtOf(S)),1,4)='.HTM' then { this recognizes both .htm and .html }
+      if copy(UpcaseStr(ExtOf(S)),1,length(HTMLExt))=HTMLExt then { this recognizes both .htm and .html }
           AddHTMLFile(TopicTitle,S) else
-      if UpcaseStr(ExtOf(S))='.HTX' then
+      if UpcaseStr(ExtOf(S))=UpcaseStr(HTMLIndexExt) then
           AddHTMLIndexFile(S) else
         AddOAFile(S);
     end;
@@ -332,7 +331,7 @@ begin
   if HelpWindow=nil then
   begin
      Desktop^.GetExtent(R); R.Grow(-15,-3); Dec(R.A.Y);
-     New(HelpWindow, Init(R, 'Help', 0, 0, SearchFreeWindowNo));
+     New(HelpWindow, Init(R, dialog_help, 0, 0, SearchFreeWindowNo));
      if HelpWindow<>nil then
      begin
        HelpWindow^.Hide;
@@ -344,7 +343,7 @@ end;
 procedure Help(FileID, Context: THelpCtx; Modal: boolean);
 begin
   if Modal then
-     begin MessageBox('Sorry, modal help not yet implemented.',nil,mfInformation+mfInsertInApp+mfOKButton); Exit; end;
+     begin MessageBox(msg_modalhelpnotimplemented,nil,mfInformation+mfInsertInApp+mfOKButton); Exit; end;
   HelpCreateWindow;
   with HelpWindow^ do
   begin
@@ -369,7 +368,7 @@ var FileID: word;
 var Found: boolean;
 begin
   CheckHelpSystem;
-  PushStatus(strLocatingTopic);
+  PushStatus(msg_LocatingTopic);
   Found:=HelpFacility^.TopicSearch(S,FileID,Ctx);
   PopStatus;
   if Found then
@@ -383,7 +382,7 @@ begin
   HelpCreateWindow;
   with HelpWindow^ do
   begin
-    PushStatus(strBuildingHelpIndex);
+    PushStatus(msg_BuildingHelpIndex);
     HelpWindow^.ShowIndex;
     if Keyword<>'' then
        HelpWindow^.HelpView^.Lookup(Keyword);
@@ -457,7 +456,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.29  2000-04-25 08:42:33  pierre
+  Revision 1.30  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.29  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.28  2000/03/21 23:31:14  pierre

+ 5 - 1
ide/text/fpide.pas

@@ -264,6 +264,7 @@ begin
   { heap viewer }
   GetExtent(R); Dec(R.B.X); R.A.X:=R.B.X-9; R.A.Y:=R.B.Y-1;
   New(HeapView, InitKb(R));
+  if (StartupOptions and soHeapMonitor)=0 then HeapView^.Hide;
   Insert(HeapView);
   Drivers.ShowMouse;
 end;
@@ -991,7 +992,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.58  2000-04-25 08:42:33  pierre
+  Revision 1.59  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.58  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.57  2000/04/18 11:42:37  pierre

+ 9 - 4
ide/text/fpintf.pas

@@ -102,11 +102,11 @@ begin
       if not ExecuteRedir(ExternalCompilerExe,cmd,'','ppc___.out','ppc___.err') then
         begin
           CompilerMessageWindow^.AddMessage(
-            V_error,'Error in external compilation','',0,0);
+            V_error,msg_errorinexternalcompilation,'',0,0);
           CompilerMessageWindow^.AddMessage(
-            V_error,'IOStatus = '+IntTostr(IOStatus),'',0,0);
+            V_error,FormatStrInt(msg_iostatusis,IOStatus),'',0,0);
           CompilerMessageWindow^.AddMessage(
-            V_error,'ExecuteResult = '+IntTostr(ExecuteResult),'',0,0);
+            V_error,FormatStrInt(msg_executeresultis,ExecuteResult),'',0,0);
           if IOStatus<>0 then
             exit;
         end;
@@ -131,6 +131,8 @@ begin
                 val(copy(Line,1,p2-1),ColumnNb,error);
               Line:=Copy(Line,p2+1,255);
               V:=0;
+              { using constants here isn't a good idea, because this won't
+                work with localized versions of the compiler - Gabor }
               If Pos(' Error:',line)=1 then
                 begin
                   V:=V_error;
@@ -206,7 +208,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.9  2000-03-01 22:37:25  pierre
+  Revision 1.10  2000-05-02 08:42:27  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.9  2000/03/01 22:37:25  pierre
    + USE_EXTERNAL_COMPILER
 
   Revision 1.8  2000/01/03 11:38:34  michael

+ 7 - 4
ide/text/fpmcomp.inc

@@ -24,7 +24,7 @@ var R,R2: TRect;
 begin
   TargetCount:=TargetSwitches^.ItemCount;
   R.Assign(0,0,36,4+TargetCount);
-  New(D, Init(R, 'Target'));
+  New(D, Init(R, dialog_target));
   with D^ do
   begin
     GetExtent(R); R.Grow(-3,-1); Inc(R.A.Y);
@@ -38,7 +38,7 @@ begin
     Insert(RB);
     R2.Copy(R);
     R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Target platform', RB)));
+    Insert(New(PLabel, Init(R2, label_target_platform, RB)));
   end;
   InsertButtons(D);
   RB^.Select;
@@ -83,7 +83,7 @@ var
   D : PFileDialog;
   FileName : string;
 begin
-  New(D, Init('*.pri;*.pas','Primary file','*.pri;*.pas',fdOpenButton,0));
+  New(D, Init('*.pri;*.pas',label_primaryfile_primaryfile,'*.pri;*.pas',fdOpenButton,0));
   if Desktop^.ExecView(D)<>cmCancel then
   begin
     D^.GetFileName(FileName);
@@ -128,7 +128,10 @@ end;
 
 {
   $Log$
-  Revision 1.8  2000-03-07 21:45:33  pierre
+  Revision 1.9  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.8  2000/03/07 21:45:33  pierre
    + TIDEApp.UpdateMode
 
   Revision 1.7  2000/01/10 14:59:08  pierre

+ 5 - 2
ide/text/fpmdebug.inc

@@ -34,7 +34,7 @@ procedure TIDEApp.DoUserScreen;
 begin
   if UserScreen=nil then
    begin
-     ErrorBox('Sorry, user screen not available.',nil);
+     ErrorBox(msg_userscreennotavailable,nil);
      Exit;
    end;
 
@@ -139,7 +139,10 @@ end;
 
 {
   $Log$
-  Revision 1.11  2000-02-04 00:13:59  pierre
+  Revision 1.12  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.11  2000/02/04 00:13:59  pierre
    * AddWatch calls DoShowWatches
 
   Revision 1.10  2000/01/08 18:26:20  florian

+ 19 - 15
ide/text/fpmfile.inc

@@ -30,10 +30,10 @@ var D: PCenterDialog;
     TE: PSourceWindow;
 begin
   if GetTemplateCount=0 then
-     begin InformationBox('No templates available.',nil); Exit; end;
+     begin InformationBox(msg_notemplatesavailable,nil); Exit; end;
   New(C, Init(10,10));
   R.Assign(0,0,40,14);
-  New(D, Init(R, 'New from template'));
+  New(D, Init(R, dialog_newfromtemplate));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); Dec(R.B.X,12);
@@ -47,26 +47,26 @@ begin
     LB^.NewList(C);
     Insert(LB);
     Dec(R.A.Y); R.B.Y:=R.A.Y+1;
-    Insert(New(PLabel, Init(R, 'Available ~t~emplates', LB)));
+    Insert(New(PLabel, Init(R, label_availabletemplates, LB)));
 
     GetExtent(R2); R2.Grow(-2,-3); R2.A.X:=R.B.X+2; R2.B.Y:=R2.A.Y+2;
-    Insert(New(PButton, Init(R2, 'O~K~', cmOK, bfDefault)));
+    Insert(New(PButton, Init(R2, button_OK, cmOK, bfDefault)));
     R2.Move(0,2);
-    Insert(New(PButton, Init(R2, 'Cancel', cmCancel, bfNormal)));
+    Insert(New(PButton, Init(R2, button_Cancel, cmCancel, bfNormal)));
   end;
   LB^.Select;
   if Desktop^.ExecView(D)=cmOK then
   begin
-    Desktop^.Lock;
+{    Desktop^.Lock;}
     TE:=OpenEditorWindow(nil,'',0,0);
     if TE<>nil then
     begin
       StartTemplate(LB^.Focused,TE^.Editor);
       TE^.Editor^.SetModified(false); { if nothing changes, we don't need to save it }
-      TE^.Hide; { we need this trick to get the editor updated }
-      TE^.Show;
+(*      TE^.Hide; { we need this trick to get the editor updated }
+      TE^.Show;*)
     end;
-    Desktop^.UnLock;
+{    Desktop^.UnLock;}
   end;
   Dispose(D, Done);
   Dispose(C, Done);
@@ -99,7 +99,7 @@ begin
        end;
      if FileDir<>'' then
        ChDir(TrimEndSlash(FileDir));
-     New(D, Init(OpenExts,'Open a file','File to ope~n~',fdOpenButton,0));
+     New(D, Init(OpenExts,dialog_openafile,label_filetoopen,fdOpenButton,0));
      OpenIt:=Desktop^.ExecView(D)<>cmCancel;
      { if I go to root under go32v2 and there is no
        floppy I get a InOutRes = 152
@@ -131,12 +131,14 @@ function TIDEApp.OpenSearch(FileName: string) : boolean;
 var D: PFileDialog;
     OpenIt: boolean;
     P : PString;
-    Dir : String;
+    Dir,S : String;
 begin
   OpenIt:=False;
   if not OpenIt then
    begin
-     New(D, Init(FileName+'*','Open a file','Looking for '+FileName,fdOpenButton,0));
+     ClearFormatParams; AddFormatParamStr(FileName);
+     FormatStr(S,label_lookingfor,FormatParams);
+     New(D, Init(FileName+'*',dialog_openafile,S,fdOpenButton,0));
      OpenIt:=Desktop^.ExecView(D)<>cmCancel;
      if OpenIt then
        Begin
@@ -150,8 +152,7 @@ begin
      Dir:=DirOf(FileName);
      P:=@Dir;
      If Pos(Dir+';',GetSourceDirectories)=0 then
-       if ConfirmBox(#3'Directory %s is not in list'#13#3+
-            'Should we add it ?',@P,false)=cmYes then
+       if ConfirmBox(msg_confirmsourcediradd,@P,false)=cmYes then
           SourceDirs:=SourceDirs+';'+Dir;
 
      OpenEditorWindow(nil,FileName,0,0);
@@ -198,7 +199,10 @@ end;
 
 {
   $Log$
-  Revision 1.19  2000-04-25 08:42:33  pierre
+  Revision 1.20  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.19  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.18  2000/03/21 23:29:52  pierre

+ 28 - 22
ide/text/fpmhelp.inc

@@ -72,12 +72,12 @@ var R,R2: TRect;
     SB: PScrollBar;
     I: integer;
 begin
-  R.Assign(0,0,50,15);
-  inherited Init(R, 'Install Help Files');
+  R.Assign(0,0,round(ScreenWidth*5/8),ScreenHeight-10);
+  inherited Init(R, dialog_helpfiles);
 
   New(C, Init(20,10));
 
-  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.B.X:=37;
+  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.B.X:=R.B.X-13;
   R2.Copy(R); R2.Move(1,0); R2.A.X:=R2.B.X-1;
   New(SB, Init(R2)); Insert(SB);
   New(LB, Init(R, 1, SB));
@@ -90,16 +90,16 @@ begin
   LB^.NewList(C);
   Insert(LB);
   R2.Copy(R); Dec(R2.A.Y); R2.B.Y:=R2.A.Y+1;
-  Insert(New(PLabel, Init(R2, '~H~elp files', LB)));
+  Insert(New(PLabel, Init(R2, label_helpfiles_helpfiles, LB)));
 
-  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.A.X:=38; R.B.Y:=R.A.Y+2;
-  Insert(New(PButton, Init(R, 'O~K~', cmOK, bfDefault)));
+  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.A.X:=R.B.X-13+1; R.B.Y:=R.A.Y+2;
+  Insert(New(PButton, Init(R, button_OK, cmOK, bfDefault)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~N~ew', cmAddItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_New, cmAddItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~D~elete', cmDeleteItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_Delete, cmDeleteItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
+  Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
 
   LB^.Select;
 end;
@@ -133,47 +133,50 @@ begin
         cmAddItem :
           begin
             S:='';
-            New(D, Init(HelpFileExts,'Install a help file','~H~elp file name',fdOpenButton,0));
+            New(D, Init(HelpFileExts,
+              dialog_installhelpfile,
+              label_installhelpfile_filename,
+              fdOpenButton,0));
             Re:=Desktop^.ExecView(D);
             if Re<>cmCancel then
             begin
               D^.GetFileName(FileName);
-              if UpcaseStr(ExtOf(FileName))='.HTX' then
+              if UpcaseStr(ExtOf(FileName))=UpcaseStr(HTMLIndexExt) then
                 begin
                   S:='HTML Index';
                 end
               else
-              if UpcaseStr(copy(ExtOf(FileName),1,4))='.HTM' then
+              if UpcaseStr(copy(ExtOf(FileName),1,length(HTMLExt)))=UpcaseStr(HTMLExt) then
               begin
-                Re:=ConfirmBox('Create keyword index from help file?',nil,true);
+                Re:=ConfirmBox(msg_createkeywordindexforhelpfile,nil,true);
                 if Re<>cmCancel then
                 if Re=cmNo then
-                  Re:=InputBox('Topic title','Title',S,40)
+                  Re:=InputBox(dialog_topictitle,label_topictitle_title,S,40)
                 else
                   begin
-                    ShowMessage('Please wait while creating index...');
+                    ShowMessage(msg_pleasewaitwhilecreatingindex);
                     S:='HTML Index';
-                    PushStatus('Building index file '+FileName);
+                    PushStatus(FormatStrStr(msg_buildingindexfile,FileName));
                     New(LS, Init);
                     LS^.ProcessDocument(FileName,[soSubDocsOnly]);
                     if LS^.GetDocumentCount=0 then
                       begin
-                        ErrorBox(FileName+' doesn''t contain any links, thus it isn''t suitable for indexing.',nil);
+                        ErrorBox(FormatStrStr(msg_filedoesnotcontainanylinks,FileName),nil);
                         Re:=cmCancel;
                       end
                     else
                       begin
                         FileName:=DirAndNameOf(FileName)+HTMLIndexExt;
                         if ExistsFile(FileName) then
-                          if ConfirmBox('Index file '+FileName+' already exists. Overwrite?',nil,true)<>cmYes then
+                          if ConfirmBox(FormatStrStr(msg_filealreadyexistsoverwrite,FileName),nil,true)<>cmYes then
                             Re:=cmCancel;
                         if Re<>cmCancel then
                         begin
-                          PushStatus('Storing HTML index in '+FileName);
+                          PushStatus(FormatStrStr(msg_storinghtmlindexinfile,FileName));
                           New(BS, Init(FileName, stCreate, 4096));
                           if Assigned(BS)=false then
                             begin
-                              ErrorBox('Can''t create '+FileName,nil);
+                              ErrorBox(FormatStrStr(msg_cantcreatefile,FileName),nil);
                               Re:=cmCancel;
                             end
                           else
@@ -183,7 +186,7 @@ begin
                               LS^.StoreDocuments(BS^);
                               if BS^.Status<>stOK then
                                 begin
-                                  ErrorBox('Error storing index data',nil);
+                                  ErrorBox(msg_errorstoringindexdata,nil);
                                   Re:=cmCancel;
                                 end;
                               Dispose(BS, Done);
@@ -249,7 +252,10 @@ end;
 
 {
   $Log$
-  Revision 1.9  2000-04-25 08:42:33  pierre
+  Revision 1.10  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.9  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.8  2000/02/07 08:29:13  michael

+ 175 - 176
ide/text/fpmopts.inc

@@ -25,7 +25,7 @@ var R,R2: TRect;
 begin
   SwitchesCount:=ord(high(TSwitchMode))-ord(low(TSwitchMode))+1;
   R.Assign(0,0,36,4+SwitchesCount);
-  New(D, Init(R, 'SwitchesMode'));
+  New(D, Init(R, dialog_switchesmode));
   with D^ do
   begin
     GetExtent(R);
@@ -48,7 +48,7 @@ begin
     Insert(RB);
     R2.Copy(R);
     R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Switches Mode', RB)));
+    Insert(New(PLabel, Init(R2, static_switchesmode_switchesmode, RB)));
   end;
   InsertButtons(D);
   RB^.Select;
@@ -74,7 +74,7 @@ var R,R2,TabR,TabIR: TRect;
     Label51,Label52,Label53: PLabel;
 begin
   R.Assign(0,0,72,18);
-  New(D, Init(R, 'Compiler Switches'));
+  New(D, Init(R, dialog_compilerswitches));
   with D^ do
   begin
     GetExtent(R);
@@ -100,7 +100,7 @@ begin
         CB1^.Press(I);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label11, Init(R2, 'Syntax Switches', CB1));
+    New(Label11, Init(R2, label_compiler_syntaxswitches, CB1));
 
     { --- Sheet 2 --- }
     Count:=CodegenSwitches^.ItemCount;
@@ -116,7 +116,7 @@ begin
         CB3^.Press(I);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label21, Init(R2, 'Run-time checks', CB3));
+    New(Label21, Init(R2, label_compiler_runtimechecks, CB3));
 
     Count:=OptimizingGoalSwitches^.ItemCount;
     R2.Copy(TabIR);
@@ -132,7 +132,7 @@ begin
         RB3^.Press(I);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label22, Init(R2, 'Optimizations', RB3));
+    New(Label22, Init(R2, label_compiler_optimizations, RB3));
 
     Count:=OptimizationSwitches^.ItemCount;
     R2.Copy(TabIR);
@@ -163,7 +163,7 @@ begin
     RB1^.SetData(L);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label23, Init(R2, 'Target processor', RB1));
+    New(Label23, Init(R2, label_compiler_targetprocessor, RB1));
 
     { --- Sheet 3 --- }
     Count:=VerboseSwitches^.ItemCount;
@@ -180,7 +180,7 @@ begin
         CB4^.Press(I);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label31, Init(R2, 'Verbose Switches', CB4));
+    New(Label31, Init(R2, label_compiler_verboseswitches, CB4));
 
     { --- Sheet 4 --- }
     Count:=BrowserSwitches^.ItemCount;
@@ -196,7 +196,7 @@ begin
     RB4^.SetData(L);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label41, Init(R2, 'Browser', RB4));
+    New(Label41, Init(R2, label_compiler_browser, RB4));
 
     { --- Sheet 5 --- }
     Count:=AsmReaderSwitches^.ItemCount;
@@ -212,7 +212,7 @@ begin
     RB5^.SetData(L);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label51, Init(R2, 'Assembler reader', RB5));
+    New(Label51, Init(R2, label_compiler_assemblerreader, RB5));
 
     R2.Copy(TabIR);
     R2.B.X:=R2.B.X-(R2.B.X-R2.A.X) div 2;
@@ -229,7 +229,7 @@ begin
         CB5^.Press(I);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label52, Init(R2, 'Assembler info', CB5));
+    New(Label52, Init(R2, label_compiler_assemblerinfo, CB5));
 
     Count:=AsmOutputSwitches^.ItemCount;
     R2.Copy(TabIR);
@@ -244,15 +244,15 @@ begin
     RB6^.SetData(L);
     Dec(R2.A.Y);
     R2.B.Y:=R2.A.Y+1;
-    New(Label53, Init(R2, 'Assembler output', RB6));
+    New(Label53, Init(R2, label_compiler_assembleroutput, RB6));
 
     { create tabs }
     New(Tab, Init(TabR,
-      NewTabDef('S~y~ntax',CB1,
+      NewTabDef(page_compiler_syntax,CB1,
         NewTabItem(Label11,
         NewTabItem(CB1,
         nil)),
-      NewTabDef('Code ~g~eneration',CB3,
+      NewTabDef(page_compiler_codegeneration,CB3,
         NewTabItem(Label21,
         NewTabItem(CB3,
         NewTabItem(Label22,
@@ -261,15 +261,15 @@ begin
         NewTabItem(RB3,
         NewTabItem(RB1,
         nil))))))),
-      NewTabDef('~V~erbose',CB4,
+      NewTabDef(page_compiler_verbose,CB4,
         NewTabItem(Label31,
         NewTabItem(CB4,
         nil)),
-      NewTabDef('~B~rowser',RB4,
+      NewTabDef(page_compiler_browser,RB4,
         NewTabItem(Label41,
         NewTabItem(RB4,
         nil)),
-      NewTabDef('~A~ssembler',CB1,
+      NewTabDef(page_compiler_assembler,CB1,
         NewTabItem(Label51,
         NewTabItem(RB5,
         NewTabItem(Label52,
@@ -319,7 +319,7 @@ var R,R2,R3: TRect;
     I: integer;
 begin
   R.Assign(0,0,40,2+MemorySwitches^.ItemCount*2);
-  New(D, Init(R, 'Memory sizes'));
+  New(D, Init(R, dialog_memorysizes));
   with D^ do
   begin
     GetExtent(R); R.Grow(-3,-1);
@@ -364,8 +364,8 @@ var R,R2: TRect;
     Items: PSItem;
     L: longint;
 begin
-  R.Assign(0,0,56,8);
-  New(D, Init(R, 'Linker'));
+  R.Assign(0,0,66,8);
+  New(D, Init(R, dialog_linker));
   with D^ do
   begin
     GetExtent(R); R.Grow(-3,-1);
@@ -398,7 +398,7 @@ begin
     RB2^.SetData(L);
     Insert(RB2);
     R2.Copy(R); R2.B.Y:=R2.A.Y+1; R2.A.X:=R2.B.X-(R2.B.X-R2.A.X) div 2+1;
-    Insert(New(PLabel, Init(R2, 'Preferred library type', RB2)));
+    Insert(New(PLabel, Init(R2, label_linker_preferredlibtype, RB2)));
   end;
   InsertButtons(D);
   if Desktop^.ExecView(D)=cmOK then
@@ -437,7 +437,7 @@ const
 begin
   R.Assign(0,0,60,2+DebugInfoSwitches^.ItemCount+2
       +ProfileInfoSwitches^.ItemCount+2+2+1+OtherFieldLines);
-  New(D, Init(R, 'Browsing/Debugging/Profiling'));
+  New(D, Init(R, dialog_debugger));
   with D^ do
   begin
     GetExtent(R); R.Grow(-3,-1);
@@ -450,7 +450,7 @@ begin
     RB^.SetData(L);
     Insert(RB);
     R2.Copy(R); Inc(R2.A.Y); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Debugging information', RB)));
+    Insert(New(PLabel, Init(R2, label_debugger_debuginfo, RB)));
 
     R2.Copy(R); Inc(R2.A.Y,2+DebugInfoSwitches^.ItemCount+2); R2.B.Y:=R2.A.Y+ProfileInfoSwitches^.ItemCount;
     Items:=nil;
@@ -462,7 +462,7 @@ begin
     CB^.SetData(L);
     Insert(CB);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Profiling Switches', CB)));
+    Insert(New(PLabel, Init(R2, label_debugger_profileswitches, CB)));
 
     {custom }
     Inc(R2.A.Y,1+DebugInfoSwitches^.ItemCount+2); R2.B.Y:=R2.A.Y+1;
@@ -470,10 +470,10 @@ begin
     IL2^.Data^:=CustomArg[SwitchesMode];
     Insert(IL2);
     R2.Move(0,-1);
-    Insert(New(PLabel, Init(R2,'~A~dditional compiler args', IL2)));
+    Insert(New(PLabel, Init(R2,label_debugger_compilerargs, IL2)));
 {$ifdef win32}
     R2.Move(0,4);
-    New(CB2,Init(R2,NewSItem('Use ~A~nother console ', nil)));
+    New(CB2,Init(R2,NewSItem(label_debugger_useanotherconsole, nil)));
     Insert(CB2);
     if DebuggeeTTY<>'' then
       L:=1
@@ -481,7 +481,7 @@ begin
       L:=0;
     CB2^.SetData(L);
     R2.Move(0,-1);
-    Insert(New(PLabel, Init(R2,'Debuggee ~R~edirection', CB2)));
+    Insert(New(PLabel, Init(R2,label_debugger_redirection, CB2)));
 {$endif win32}
 {$ifdef linux}
     R2.Move(0,4);
@@ -489,7 +489,7 @@ begin
     IL^.Data^:=DebuggeeTTY;
     Insert(IL);
     R2.Move(0,-1);
-    Insert(New(PLabel, Init(R2,'Use ~A~nother tty for Debuggee', IL)));
+    Insert(New(PLabel, Init(R2,label_debugger_useanothertty, IL)));
 {$endif win32}
   end;
   InsertButtons(D);
@@ -529,8 +529,8 @@ const
   LW = 25;
 begin
   Count:=DirectorySwitches^.ItemCount;
-  R.Assign(0,0,64,2+Count*2);
-  New(D, Init(R, 'Directories'));
+  R.Assign(0,0,round(ScreenWidth*64/80),2+Count*2);
+  New(D, Init(R, dialog_directories));
   with D^ do
   begin
     GetExtent(R);
@@ -704,7 +704,7 @@ begin
       VP:=VP^.Next;
     end;
   R.Assign(0,0,64,15);
-  New(D, Init(R, 'Preferences'));
+  New(D, Init(R, dialog_preferences));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-2);
@@ -717,28 +717,28 @@ begin
       CurIdx:=C^.IndexOf(CurM);
     if CurIdx<>-1 then
       VMLB^.FocusItem(CurIdx);
-    Insert(New(PGroupView, Init(R, 'Video mode', VMLB)));
+    Insert(New(PGroupView, Init(R, label_preferences_videomode, VMLB)));
     Insert(VMLB);
 
     R.Move(0,R.B.Y-R.A.Y{+1}); R.B.Y:=R.A.Y+4;
     R2.Copy(R); R2.Grow(-1,-1);
     New(RB1, Init(R2,
-      NewSItem('C~u~rrent directory',
-      NewSItem('Conf~i~g file directory',
+      NewSItem(label_preferences_currentdirectory,
+      NewSItem(label_preferences_configdirectory,
       nil))));
     RB1^.Press(DesktopLocation);
-    Insert(New(PGroupView, Init(R, 'Desktop file', RB1)));
+    Insert(New(PGroupView, Init(R, label_preferences_desktopfile, RB1)));
     Insert(RB1);
 
     R.Move(0,R.B.Y-R.A.Y{+1}); R.B.Y:=R.A.Y+5;
     R2.Copy(R); R2.Grow(-1,-1);
     New(CB1, Init(R2,
-      NewSItem('Editor ~f~iles',
-      NewSItem('~E~nvironment',
-      NewSItem('~D~esktop',
+      NewSItem(label_preferences_editorfiles,
+      NewSItem(label_preferences_environment,
+      NewSItem(label_preferences_desktop,
       nil)))));
     CB1^.Value:=AutoSaveOptions;
-    Insert(New(PGroupView, Init(R, 'Auto save', CB1)));
+    Insert(New(PGroupView, Init(R, label_preferences_autosave, CB1)));
     Insert(CB1);
 
     GetExtent(R); R.Grow(-2,-2);
@@ -748,12 +748,12 @@ begin
     R.Move(0,R.B.Y-R.A.Y{+1}); R.B.Y:=R.A.Y+5;
     R2.Copy(R); R2.Grow(-1,-1);
     New(CB2, Init(R2,
-      NewSItem('~A~uto track source',
-      NewSItem('C~l~ose on go to source',
-      NewSItem('C~h~ange dir on open',
+      NewSItem(label_preferences_autotracksource,
+      NewSItem(label_preferences_closeongotosource,
+      NewSItem(label_preferences_changedironopen,
       nil)))));
     CB2^.Value:=MiscOptions;
-    Insert(New(PGroupView, Init(R, 'Options', CB2)));
+    Insert(New(PGroupView, Init(R, label_preferences_options, CB2)));
     Insert(CB2);
 
   end;
@@ -789,12 +789,12 @@ begin
   if Editor=nil then
     begin
       TabSize:=DefaultTabSize; EFlags:=DefaultCodeEditorFlags;
-      Title:='Default Editor Options';
+      Title:=dialog_defaulteditoroptions;
     end
   else
     begin
       TabSize:=Editor^.GetTabSize; EFlags:=Editor^.GetFlags;
-      Title:='Editor Options';
+      Title:=dialog_editoroptions;
     end;
 
   EFValue:=0;
@@ -813,32 +813,32 @@ begin
   if (EFlags and efKeepTrailingSpaces)<>0 then EFValue:=EFValue or (1 shl 12);
   if (EFlags and efCodeComplete      )<>0 then EFValue:=EFValue or (1 shl 13);
 
-  R.Assign(0,0,56,19);
+  R.Assign(0,0,66,19);
   New(D, Init(R, Title));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-2); R.B.Y:=R.A.Y+8;
     R2.Copy(R); Inc(R2.A.Y);
     New(CB, Init(R2,
-      NewSItem('Create backup ~f~iles',
-      NewSItem('~I~nsert mode',
-      NewSItem('~A~uto indent mode',
-      NewSItem('~U~se tab characters',
-      NewSItem('~B~ackspace unindents',
-      NewSItem('~P~ersistent blocks',
-      NewSItem('~S~yntax highlight',
-      NewSItem('B~l~ock insert cursor',
-      NewSItem('~V~ertical blocks',
-      NewSItem('Highlight ~c~olumn',
-      NewSItem('Highlight ~r~ow',
-      NewSItem('Aut~o~-closing brackets',
-      NewSItem('~K~eep trailing spaces',
-      NewSItem('Co~d~eComplete enabled',
+      NewSItem(label_editor_backupfiles,
+      NewSItem(label_editor_insertmode,
+      NewSItem(label_editor_autoindentmode,
+      NewSItem(label_editor_usetabcharacters,
+      NewSItem(label_editor_backspaceunindents,
+      NewSItem(label_editor_persistentblocks,
+      NewSItem(label_editor_syntaxhighlight,
+      NewSItem(label_editor_blockinsertcursor,
+      NewSItem(label_editor_verticalblocks,
+      NewSItem(label_editor_highlightcolumn,
+      NewSItem(label_editor_highlightrow,
+      NewSItem(label_editor_autoclosingbrackets,
+      NewSItem(label_editor_keeptrailingspaces,
+      NewSItem(label_editor_codecomplete,
       nil))))))))))))))));
     CB^.Value:=EFValue;
     Insert(CB);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, '~E~ditor options', CB)));
+    Insert(New(PLabel, Init(R2, label_editor_editoroptions, CB)));
 
     R.Move(0,(R.B.Y-R.A.Y)+1); R.B.Y:=R.A.Y+1;
     R2.Copy(R); Inc(R2.A.Y); R2.B.Y:=R2.A.Y;
@@ -847,7 +847,7 @@ begin
     IL^.Data^:=IntToStr(TabSize);
     Insert(IL);
     R3.Copy(R); R3.B.X:=R3.A.X+10;
-    Insert(New(PLabel, Init(R3, '~T~ab size', IL)));
+    Insert(New(PLabel, Init(R3, label_editor_tabsize, IL)));
 
     R.Move(0,(R.B.Y-R.A.Y)+1); R.B.Y:=R.A.Y+2;
     R2.Copy(R); Inc(R2.A.Y);
@@ -855,7 +855,7 @@ begin
     ExtIL^.SetData(HighlightExts);
     Insert(ExtIL);
     R2.Move(0,-1);
-    Insert(New(PLabel, Init(R2, '~H~ighlight extensions', ExtIL)));
+    Insert(New(PLabel, Init(R2, label_editor_highlightextensions, ExtIL)));
 
     R.Move(0,(R.B.Y-R.A.Y)+1); R.B.Y:=R.A.Y+2;
     R2.Copy(R); Inc(R2.A.Y);
@@ -863,7 +863,7 @@ begin
     TabExtIL^.SetData(TabsPattern);
     Insert(TabExtIL);
     R2.Move(0,-1);
-    Insert(New(PLabel, Init(R2, 'File ~p~atterns needing tabs', TabExtIL)));
+    Insert(New(PLabel, Init(R2, label_editor_filepatternsneedingtabs, TabExtIL)));
   end;
   InsertButtons(D);
   CB^.Select;
@@ -914,68 +914,64 @@ end;
 procedure TIDEApp.BrowserOptions(Browser: PBrowserWindow);
 var D: PCenterDialog;
     R,R2,R3 : TRect;
-    PreS: string[15];
+    TitleS: string;
     CB1,CB2: PCheckBoxes;
     RB1,RB2: PRadioButtons;
 begin
   if Browser=nil then
-    begin
-      PreS:='';
-    end
+    TitleS:=dialog_browseroptions
   else
-    begin
-      PreS:='Local ';
-    end;
+    TitleS:=dialog_localbrowseroptions;
   R.Assign(0,0,56,15);
-  New(D, Init(R, PreS+'Browser Options'));
+  New(D, Init(R, TitleS));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-2);
     R.B.Y:=R.A.Y+1+3; R2.Copy(R); Inc(R2.A.Y);
     New(CB1, Init(R2,
-      NewSItem(RExpand('~L~abels',21+2),
-      NewSItem('~C~onstants',
-      NewSItem('~T~ypes',
-      NewSItem('~V~ariables',
-      NewSItem('~P~rocedures',
-      NewSItem('~I~nherited',
+      NewSItem(RExpand(label_browser_labels,21+2),
+      NewSItem(label_browser_constants,
+      NewSItem(label_browser_types,
+      NewSItem(label_browser_variables,
+      NewSItem(label_browser_procedures,
+      NewSItem(label_browser_inherited,
       nil)))))))
     );
     Insert(CB1);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Symbols', CB1)));
+    Insert(New(PLabel, Init(R2, label_browser_symbols, CB1)));
 
     R.Move(0,R.B.Y-R.A.Y+1);
     R.B.Y:=R.A.Y+1+2; R2.Copy(R);
     R3.Copy(R2); R3.B.X:=R3.A.X+(R3.B.X-R3.A.X) div 2-1; Inc(R3.A.Y);
     New(RB1, Init(R3,
-      NewSItem('~N~ew browser',
-      NewSItem('~R~eplace current',
+      NewSItem(label_browser_newbrowser,
+      NewSItem(label_browser_currentbrowser,
       nil)))
     );
     Insert(RB1);
     R3.Move(0,-1); R3.B.Y:=R3.A.Y+1;
-    Insert(New(PLabel, Init(R3, 'Sub-browsing', RB1)));
+    Insert(New(PLabel, Init(R3, label_browser_subbrowsing, RB1)));
     R3.Copy(R2); R3.A.X:=R3.B.X-(R3.B.X-R3.A.X) div 2+1; Inc(R3.A.Y);
     New(RB2, Init(R3,
-      NewSItem('~S~cope',
-      NewSItem('R~e~ference',
+      NewSItem(label_browser_scope,
+      NewSItem(label_browser_reference,
       nil)))
     );
     Insert(RB2);
     R3.Move(0,-1); R3.B.Y:=R3.A.Y+1;
-    Insert(New(PLabel, Init(R3, 'Preferred pane', RB2)));
+    Insert(New(PLabel, Init(R3, label_browser_preferredpane, RB2)));
 
     R.Move(0,R.B.Y-R.A.Y+1);
     R.B.Y:=R.A.Y+1+1; R2.Copy(R); Inc(R2.A.Y);
     New(CB2, Init(R2,
-      NewSItem(RExpand('~Q~ualified symbols',21+2),
-      NewSItem('S~o~rt always',
+      NewSItem(RExpand(label_browser_qualifiedsymbols,21+2),
+      NewSItem(label_browser_sortsymbols,
       nil)))
     );
     Insert(CB2);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Display', CB2)));
+    Insert(New(PLabel, Init(R2, label_browser_display, CB2)));
   end;
   InsertButtons(D);
   CB1^.Select;
@@ -996,24 +992,24 @@ var R: TRect;
     CB: PCheckBoxes;
 begin
   R.Assign(0,0,40,12);
-  New(D, Init(R, 'Desktop Preferences'));
+  New(D, Init(R, dialog_desktoppreferences));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.B.Y:=R.A.Y+8;
     New(CB, Init(R,
-      NewSItem('~H~istory lists',
-      NewSItem('~C~lipboard content',
-      NewSItem('~W~atch expressions',
-      NewSItem('~B~reakpoints',
-      NewSItem('~O~pen windows',
-      NewSItem('~S~ymbol information',
-      NewSItem('Co~d~eComplete wordlist',
-      NewSItem('Code~T~emplates',
+      NewSItem(label_desktop_historylists,
+      NewSItem(label_desktop_clipboard,
+      NewSItem(label_desktop_watches,
+      NewSItem(label_desktop_breakpoints,
+      NewSItem(label_desktop_openwindow,
+      NewSItem(label_desktop_symbolinfo,
+      NewSItem(label_desktop_codecompletewords,
+      NewSItem(label_desktop_codetemplates,
       nil))))))))));
     CB^.Value:=DesktopFileFlags;
     Insert(CB);
     R.Move(0,-1); R.B.Y:=R.A.Y+1;
-    Insert(New(PLabel, Init(R, '~P~reserved across sessions', CB)));
+    Insert(New(PLabel, Init(R, label_desktop_preservedacrosssessions, CB)));
   end;
   InsertButtons(D);
   CB^.Select;
@@ -1032,7 +1028,7 @@ var R,R2: TRect;
     RB1,RB2: PRadioButtons;
 begin
   R.Assign(0,0,62,15);
-  New(D, Init(R, 'Mouse Options'));
+  New(D, Init(R, dialog_mouseoptions));
   with D^ do
   begin
     GetExtent(R); R.Grow(-3,-2); R.B.Y:=R.A.Y+3;
@@ -1041,45 +1037,45 @@ begin
     SB^.SetParams(DoubleDelay,1,20,1,1);
     Insert(SB);
     R2.Move(0,-1);
-    Insert(New(PStaticText, Init(R2, 'Fast       Medium      Slow')));
+    Insert(New(PStaticText, Init(R2, label_mouse_speedbar)));
     R2.Move(-1,-1);
-    Insert(New(PLabel, Init(R2, '~M~ouse double click', SB)));
+    Insert(New(PLabel, Init(R2, label_mouse_doubleclickspeed, SB)));
 
     R2.Copy(R); Inc(R2.A.Y,2); R2.A.X:=R2.B.X-(R2.B.X-R2.A.X) div 2 +1;
-    New(CB, Init(R2, NewSItem('~R~everse mouse buttons', nil) ));
+    New(CB, Init(R2, NewSItem(label_mouse_reversebuttons, nil) ));
     if MouseReverse then CB^.Press(0);
     Insert(CB);
 
     R.Move(0,(R.B.Y-R.A.Y)+1); R.B.Y:=R.A.Y+8;
     R2.Copy(R); Inc(R2.A.Y); R2.B.X:=R2.A.X+(R2.B.X-R2.A.X) div 2 -1;
     New(RB1, Init(R2,
-      NewSItem('~N~othing',
-      NewSItem('~T~opic search',
-      NewSItem('~G~o to cursor',
-      NewSItem('~B~reakpoint',
-      NewSItem('~E~valuate',
-      NewSItem('~A~dd watch',
-      NewSItem('Browse ~s~ymbol',
+      NewSItem(label_mouse_act_nothing,
+      NewSItem(label_mouse_act_topicsearch,
+      NewSItem(label_mouse_act_gotocursor,
+      NewSItem(label_mouse_act_breakpoint,
+      NewSItem(label_mouse_act_evaluate,
+      NewSItem(label_mouse_act_addwatch,
+      NewSItem(label_mouse_act_browsesymbol,
       nil)))))))));
     RB1^.Press(CtrlMouseAction);
     Insert(RB1);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Ctrl+Right mouse button', RB1)));
+    Insert(New(PLabel, Init(R2, label_mouse_crtlrightmousebuttonaction, RB1)));
 
     R2.Copy(R); Inc(R2.A.Y); R2.A.X:=R2.B.X-(R2.B.X-R2.A.X) div 2 +1;
     New(RB2, Init(R2,
-      NewSItem('N~o~thing',
-      NewSItem('To~p~ic search',
-      NewSItem('Go to ~c~ursor',
-      NewSItem('Brea~k~point',
-      NewSItem('E~v~aluate',
-      NewSItem('Add ~w~atch',
-      NewSItem('Browse s~y~mbol',
+      NewSItem(label_mouse_act_nothing,
+      NewSItem(label_mouse_act_topicsearch,
+      NewSItem(label_mouse_act_gotocursor,
+      NewSItem(label_mouse_act_breakpoint,
+      NewSItem(label_mouse_act_evaluate,
+      NewSItem(label_mouse_act_addwatch,
+      NewSItem(label_mouse_act_browsesymbol,
       nil)))))))));
     RB2^.Press(AltMouseAction);
     Insert(RB2);
     R2.Move(0,-1); R2.B.Y:=R2.A.Y+1;
-    Insert(New(PLabel, Init(R2, 'Alt+Right mouse button', RB2)));
+    Insert(New(PLabel, Init(R2,  label_mouse_altrightmousebuttonaction, RB2)));
   end;
   InsertButtons(D);
   RB1^.Select;
@@ -1097,61 +1093,61 @@ procedure TIDEApp.Colors;
 var D: PColorDialog;
 begin
   New(D, Init(AppPalette,
-    ColorGroup('Browser',
-      ColorItem('Frame passive'   , 215,
-      ColorItem('Frame active'    , 216,
-      ColorItem('Frame icon'      , 217,
-      ColorItem('Scroll bar page' , 218,
-      ColorItem('Scroll bar icons', 219,
-      ColorItem('Normal text'     , 220,
-      ColorItem('Selected text'   , 221,
-      ColorItem('Active item'     , 222,
-      ColorItem('Inactive item'   , 223,
-      ColorItem('Focused item'    , 224,
-      ColorItem('Selected item'   , 225,
-      ColorItem('Divider'         , 226,
+    ColorGroup(label_colors_grp_browser,
+      ColorItem(label_colors_framepassive   , 215,
+      ColorItem(label_colors_frameactive    , 216,
+      ColorItem(label_colors_frameicon      , 217,
+      ColorItem(label_colors_scrollbarpage  , 218,
+      ColorItem(label_colors_scrollbaricons , 219,
+      ColorItem(label_colors_normaltext     , 220,
+      ColorItem(label_colors_selectedtext   , 221,
+      ColorItem(label_colors_activeitem     , 222,
+      ColorItem(label_colors_inactiveitem   , 223,
+      ColorItem(label_colors_focuseditem    , 224,
+      ColorItem(label_colors_selecteditem   , 225,
+      ColorItem(label_colors_divider        , 226,
       nil)))))))))))),
-    ColorGroup('Clock',
-      ColorItem('clock view'      , 227,
+    ColorGroup(label_colors_grp_clock,
+      ColorItem(label_colors_clockview      , 227,
       nil),
-    ColorGroup('Desktop', DesktopColorItems(nil),
-    ColorGroup('Dialogs', DialogColorItems(dpGrayDialog,nil),
-    ColorGroup('Editor',
-      ColorItem('Frame passive'   , 167,
-      ColorItem('Frame active'    , 168,
-      ColorItem('Frame icon'      , 169,
-      ColorItem('Scroll bar page' , 170,
-      ColorItem('Scroll bar icons', 171,
-      ColorItem('Normal text'     , 199,
-      ColorItem('Selected text'   , 208,
-      ColorItem('Highlight column', 209,
-      ColorItem('Highlight row'   , 210,
-      ColorItem('Error messages'  , 214,
+    ColorGroup(label_colors_grp_desktop, DesktopColorItems(nil),
+    ColorGroup(label_colors_grp_dialogs, DialogColorItems(dpGrayDialog,nil),
+    ColorGroup(label_colors_grp_editor,
+      ColorItem(label_colors_framepassive   , 167,
+      ColorItem(label_colors_frameactive    , 168,
+      ColorItem(label_colors_frameicon      , 169,
+      ColorItem(label_colors_scrollbarpage  , 170,
+      ColorItem(label_colors_scrollbaricons , 171,
+      ColorItem(label_colors_normaltext     , 199,
+      ColorItem(label_colors_selectedtext   , 208,
+      ColorItem(label_colors_highlighcolumn , 209,
+      ColorItem(label_colors_highlightrow   , 210,
+      ColorItem(label_colors_errormessages  , 214,
       nil)))))))))),
-    ColorGroup('Help',
-      ColorItem('Frame passive'   , 128,
-      ColorItem('Frame active'    , 129,
-      ColorItem('Frame icon'      , 130,
-      ColorItem('Scroll bar page' , 131,
-      ColorItem('Scroll bar icons', 132,
-      ColorItem('Help text'       , 160,
-      ColorItem('Help links'      , 161,
-      ColorItem('Selected link'   , 162,
-      ColorItem('Selected text'   , 163,
+    ColorGroup(label_colors_grp_help,
+      ColorItem(label_colors_framepassive   , 128,
+      ColorItem(label_colors_frameactive    , 129,
+      ColorItem(label_colors_frameicon      , 130,
+      ColorItem(label_colors_scrollbarpage  , 131,
+      ColorItem(label_colors_scrollbaricons , 132,
+      ColorItem(label_colors_helptext       , 160,
+      ColorItem(label_colors_helplinks      , 161,
+      ColorItem(label_colors_selectedlink   , 162,
+      ColorItem(label_colors_selectedtext   , 163,
       nil))))))))),
-    ColorGroup('Menus',   MenuColorItems(nil),
-    ColorGroup('Syntax',
-      ColorItem('Whitespace'      , 200,
-      ColorItem('Comments'        , 201,
-      ColorItem('Reserved words'  , 202,
-      ColorItem('Identifiers'     , 203,
-      ColorItem('Strings'         , 204,
-      ColorItem('Numbers'         , 205,
-      ColorItem('Hex numbers'     , 212,
-      ColorItem('Assembler'       , 206,
-      ColorItem('Symbols'         , 207,
-      ColorItem('Directives'      , 211,
-      ColorItem('Tabs'            , 213,
+    ColorGroup(label_colors_grp_menus,   MenuColorItems(nil),
+    ColorGroup(label_colors_grp_syntax,
+      ColorItem(label_colors_whitespace      , 200,
+      ColorItem(label_colors_comments        , 201,
+      ColorItem(label_colors_reservedwords   , 202,
+      ColorItem(label_colors_identifiers     , 203,
+      ColorItem(label_colors_strings         , 204,
+      ColorItem(label_colors_numbers         , 205,
+      ColorItem(label_colors_hexnumbers      , 212,
+      ColorItem(label_colors_assembler       , 206,
+      ColorItem(label_colors_symbols         , 207,
+      ColorItem(label_colors_directives      , 211,
+      ColorItem(label_colors_tabs            , 213,
       nil))))))))))),
     nil))))))))));
   if ExecuteDialog(D, @AppPalette)=cmOK then
@@ -1167,11 +1163,11 @@ procedure TIDEApp.OpenINI;
 var D: PFileDialog;
     FileName: string;
 begin
-  New(D, Init(INIFileName,'Open Options',INIFileName,fdOpenButton,0));
+  New(D, Init(INIFileName,dialog_openoptions,INIFileName,fdOpenButton,0));
   if Desktop^.ExecView(D)<>cmCancel then
     begin
       D^.GetFileName(FileName);
-      if ExistsFile(FileName)=false then ErrorBox('Can''t open config file.',nil) else
+      if ExistsFile(FileName)=false then ErrorBox(msg_cantopenconfigfile,nil) else
         begin
           IniFileName:=FileName;
           ReadINIFile;
@@ -1184,7 +1180,7 @@ end;
 procedure TIDEApp.SaveINI;
 begin
   if WriteINIFile=false then
-    ErrorBox('Error saving config file.',nil);
+    ErrorBox(msg_errorsavingconfigfile,nil);
 end;
 
 procedure TIDEApp.SaveAsINI;
@@ -1192,18 +1188,18 @@ var D: PFileDialog;
     FileName: string;
     CanWrite: boolean;
 begin
-  New(D, Init(INIFileName,'Save Options',INIFileName,fdOpenButton,0));
+  New(D, Init(INIFileName,dialog_saveoptions,INIFileName,fdOpenButton,0));
   if Desktop^.ExecView(D)<>cmCancel then
     begin
       D^.GetFileName(FileName);
       CanWrite:=(ExistsFile(FileName)=false);
       if CanWrite=false then
-        CanWrite:=ConfirmBox('File '+SmartPath(FileName)+' already exists. Overwrite?',nil,false)=cmYes;
+        CanWrite:=ConfirmBox(FormatStrStr(msg_filealreadyexistsoverwrite,SmartPath(FileName)),nil,false)=cmYes;
       if CanWrite then
         begin
           IniFileName:=FileName;
           if WriteINIFile=false then
-            ErrorBox('Error saving config file.',nil);
+            ErrorBox(msg_errorsavingconfigfile,nil);
           Message(Application,evBroadcast,cmUpdate,nil);
         end;
     end;
@@ -1212,7 +1208,10 @@ end;
 
 {
   $Log$
-  Revision 1.32  2000-04-25 08:42:33  pierre
+  Revision 1.33  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.32  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.31  2000/03/21 23:28:13  pierre

+ 15 - 12
ide/text/fpmrun.inc

@@ -105,13 +105,13 @@ begin
         Exit;
       if (EXEFile='') then
        begin
-         ErrorBox('Oooops, nothing to run.',nil);
+         ErrorBox(msg_nothingtorun,nil);
          Exit;
        end;
       if not ExistsFile(ExeFile) then
         begin
           MsgParms[1].Ptr:=@EXEFile;
-          ErrorBox('Invalid filename %s',@MsgParms);
+          ErrorBox(msg_invalidfilename,@MsgParms);
           Exit;
         end;
       RunDirect:=true;
@@ -137,13 +137,13 @@ begin
         begin
           MsgParms[1].Ptr:=@EXEFile;
           MsgParms[2].long:=IOStatus;
-          InformationBox(#3'Program %s'#13#3'not run'#13#3'DosError = %d',@MsgParms);
+          InformationBox(msg_programnotrundoserroris,@MsgParms);
         end
       else If LastExitCode<>0 then
         begin
           MsgParms[1].Ptr:=@EXEFile;
           MsgParms[2].long:=LastExitCode;
-          InformationBox(#3'Program %s'#13#3'exited with '#13#3'exitcode = %d',@MsgParms);
+          InformationBox(msg_programfileexitedwithexitcode,@MsgParms);
         end;
     end
 {$ifndef NODEBUG}
@@ -159,17 +159,17 @@ var R,R2: TRect;
     D: PCenterDialog;
     IL: PInputLine;
 begin
-  R.Assign(0,0,54,4);
-  New(D, Init(R, 'Program parameters'));
+  R.Assign(0,0,round(ScreenWidth*54/80),4);
+  New(D, Init(R, dialog_programparameters));
   with D^ do
   begin
     GetExtent(R); R.Grow(-2,-1); Inc(R.A.Y); R.B.Y:=R.A.Y+1;
-    R2.Copy(R); R2.A.X:=14;
+    R2.Copy(R); R2.A.X:=16;
     New(IL, Init(R2, 255));
     IL^.Data^:=GetRunParameters;
     Insert(IL);
-    R2.Copy(R); R2.B.X:=14;
-    Insert(New(PLabel, Init(R2, '~P~arameter', IL)));
+    R2.Copy(R); R2.B.X:=16;
+    Insert(New(PLabel, Init(R2, label_parameters_parameter, IL)));
   end;
   InsertButtons(D);
   IL^.Select;
@@ -203,7 +203,7 @@ begin
   if (DeskTop^.Current=nil) or
      (TypeOf(DeskTop^.Current^)<>TypeOf(TSourceWindow)) then
     Begin
-       ErrorBox('Impossible to reach current cursor',nil);
+       ErrorBox(msg_impossibletoreachcursor,nil);
        Exit;
     End;
 
@@ -250,7 +250,7 @@ begin
   if (DeskTop^.Current=nil) or
      (TypeOf(DeskTop^.Current^)<>TypeOf(TSourceWindow)) then
     Begin
-       ErrorBox('Impossible to set breakpoints here',nil);
+       ErrorBox(msg_impossibletosetbreakpoint,nil);
        Exit;
     End;
 
@@ -270,7 +270,10 @@ end;
 
 {
   $Log$
-  Revision 1.31  2000-04-18 11:42:37  pierre
+  Revision 1.32  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.31  2000/04/18 11:42:37  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.30  2000/03/21 23:27:35  pierre

+ 15 - 12
ide/text/fpmsrch.inc

@@ -22,9 +22,9 @@ end;
 procedure TIDEApp.Objects;
 begin
   if ObjectTree=nil then
-     begin ErrorBox('No debug info available.',nil); Exit; end;
+     begin ErrorBox(msg_nodebuginfoavailable,nil); Exit; end;
 
-  OpenSymbolBrowser(0,0,'Objects','Global scope',nil,nil,nil,nil,ObjectTree,nil);
+  OpenSymbolBrowser(0,0,label_sym_objects,label_sym_globalscope,nil,nil,nil,nil,ObjectTree,nil);
 end;
 
 procedure TIDEApp.Globals;
@@ -57,7 +57,7 @@ var R: TRect;
 begin
   level:=0;
   if BrowCol.Modules=nil then
-     begin ErrorBox('No debug info available.',nil); Exit; end;
+     begin ErrorBox(msg_nodebuginfoavailable,nil); Exit; end;
   Overflow:=false;
   if assigned(GlobalsCollection) then
     begin
@@ -68,10 +68,10 @@ begin
   GlobalsCollection:=S;
   BrowCol.Modules^.ForEach(@InsertInS);
   if Overflow then
-    WarningBox('Too many symbols. Can''t display all of them.',nil);
+    WarningBox(msg_toomanysymbolscantdisplayall,nil);
   Desktop^.GetExtent(R); R.A.X:=R.B.X-35;
   Desktop^.Insert(New(PBrowserWindow, Init(R,
-    'Browse: Globals',SearchFreeWindowNo,nil,'Global scope','',S,nil,nil,nil)));
+    FormatStrStr(dialog_browse,label_sym_globals),SearchFreeWindowNo,nil,label_sym_globalscope,'',S,nil,nil,nil)));
 end;
 
 procedure TIDEApp.Modules;
@@ -83,7 +83,7 @@ begin
 end;
 begin
   if BrowCol.Modules=nil then
-     begin ErrorBox('No debug info available.',nil); Exit; end;
+     begin ErrorBox(msg_nodebuginfoavailable,nil); Exit; end;
   if assigned(ModulesCollection) then
     begin
       ModulesCollection^.deleteAll;
@@ -92,7 +92,7 @@ begin
   New(S, Init(500,500));
   ModulesCollection:=S;
   BrowCol.Modules^.ForEach(@InsertInS);
-  OpenSymbolBrowser(0,0,'Units','Global scope',nil,nil,S,nil,nil,nil);
+  OpenSymbolBrowser(0,0,dialog_units,label_sym_globalscope,nil,nil,S,nil,nil,nil);
 end;
 
 function SymbolDialog(S : string) : PDialog;
@@ -101,7 +101,7 @@ var D: PDialog;
     IL: PInputLine;
 begin
   R.Assign(0,0,40,8);
-  New(D, Init(R, 'Browse Symbol'));
+  New(D, Init(R, dialog_browsesymbol));
   with D^ do
   begin
     Options:=Options or ofCentered;
@@ -111,11 +111,11 @@ begin
     New(IL, Init(R2,255));
     Insert(IL);
     IL^.SetData(S);
-    Insert(New(PLabel, Init(R1, 'Enter S~y~mbol to browse', IL)));
+    Insert(New(PLabel, Init(R1, label_entersymboltobrowse, IL)));
     GetExtent(R); R.Grow(-8,-1); R.A.Y:=R.B.Y-2; R.B.X:=R.A.X+10;
-    Insert(New(PButton, Init(R, '~O~K', cmOK, bfDefault)));
+    Insert(New(PButton, Init(R, button_OK, cmOK, bfDefault)));
     R.Move(15,0);
-    Insert(New(PButton, Init(R, '~C~ancel', cmCancel, bfNormal)));
+    Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
   end;
   IL^.Select;
   SymbolDialog:=D;
@@ -137,7 +137,10 @@ end;
 
 {
   $Log$
-  Revision 1.12  2000-03-07 21:57:01  pierre
+  Revision 1.13  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.12  2000/03/07 21:57:01  pierre
    * adapted to change of OpenSymbolBrowser
 
   Revision 1.11  1999/07/28 23:11:21  peter

+ 24 - 19
ide/text/fpmtools.inc

@@ -58,7 +58,7 @@ begin
   Err:=ParseToolParams(Params,false);
   if Err=-1 then Exit;
   if Err<>0 then
-    begin ErrorBox(^C'Error parsing tool params.',nil); Exit; end;
+    begin ErrorBox(msg_errorparsingtoolparams,nil); Exit; end;
   if CaptureToolTo<>capNone then
     begin
       CaptureFile:=ToolCaptureName;
@@ -81,7 +81,7 @@ begin
   else
     ToFocus:=-1;
   if CaptureToolTo<>capNone then
-    ShowMessage('Executing tool '+KillTilde(Title)+'...');
+    ShowMessage(FormatStrStr(msg_executingtool,KillTilde(Title)));
 
   Executed:=DoExecute(ProgramPath,Params,'',CaptureFile,ExecMode);
 
@@ -96,27 +96,27 @@ begin
           W:=OpenEditorWindow(nil,'',0,0);
           if W<>nil then
             if StartEditor(W^.Editor,CaptureFile)=false then
-              ErrorBox('Error reading output.',nil);
+              ErrorBox(msg_errorreadingoutput,nil);
         end
       else
       if ToolFilter<>'' then
         begin
-          ShowMessage('Executing filter for '+KillTilde(Title)+'...');
+          ShowMessage(FormatStrStr(msg_executingfilterfor,KillTilde(Title)));
           DoExecute(ToolFilter,'',CaptureFile,FilterCaptureName,exNoSwap);
           HideMessage;
           if (DosError=0) and (DosExitCode=0) then
             begin
               if ExistsFile(FilterCaptureName)=false then
-                ErrorBox('Can''t find filtered output.',nil)
+                ErrorBox(msg_cantfindfilteredoutput,nil)
               else
                 if ProcessMessageFile(FilterCaptureName)=false then
-                  ErrorBox('Error processing filtered output.',nil);
+                  ErrorBox(msg_errorprocessingfilteredoutput,nil);
             end
           else
             if (DosError<>0) then
-              ErrorBox('Error executing filter '+KillTilde(GetToolName(Idx-1)),nil) else
+              ErrorBox(FormatStrStr(msg_errorexecutingfilter,KillTilde(GetToolName(Idx-1))),nil) else
             if DosExitCode<>0 then
-              ErrorBox('Filter execution successful. Exit code '+IntToStr(DosExitCode),nil);
+              ErrorBox(FormatStrInt(msg_filterexecutionsuccessfulexitcodeis,DosExitCode),nil);
           UpdateToolMessages;
           if (ToFocus<>-1) then
             if Assigned(MessagesWindow) then
@@ -126,9 +126,9 @@ begin
         end;
     end else
   if (DosError<>0) then
-    ErrorBox('Error executing tool '+KillTilde(GetToolName(Idx-1)),nil) else
+    ErrorBox(FormatStrStr(msg_errorexecutingtool,KillTilde(GetToolName(Idx-1))),nil) else
   if DosExitCode<>0 then
-    ErrorBox('Tool execution successful. Exit code '+IntToStr(DosExitCode),nil);
+    ErrorBox(FormatStrInt(msg_toolexecutionsuccessfulexitcodeis,DosExitCode),nil);
 {$ifndef DEBUG}
   EraseFile(CaptureFile);
   EraseFile(FilterCaptureName);
@@ -162,7 +162,7 @@ begin
   GrepExe:=GrepExeName;
   If not LocateExeFile(GrepExe) then
     Begin
-      ErrorBox('Grep program not found',nil);
+      ErrorBox(msg_grepprogramnotfound,nil);
       Exit;
     End;
 { Try to load the word from the editor }
@@ -182,7 +182,7 @@ begin
   GrepArgs:=' -i "$TEXT" '+s;
 { Dialog }
   R.Assign(0,0,50,8);
-  new(PGrepDialog,Init(R,'Grep arguments'));
+  new(PGrepDialog,Init(R,dialog_greparguments));
   with PGrepDialog^ do
     begin
       R2.A.Y:=R.A.Y+3;
@@ -193,7 +193,7 @@ begin
       IL1^.Data^:=SearchWord;
       Insert(IL1);
       R2.Move(0,-1);
-      Insert(New(PLabel, Init(R2, '~T~ext to find', IL1)));
+      Insert(New(PLabel, Init(R2, label_grep_texttofind, IL1)));
       R1.Assign(R2.B.X, R2.A.Y+1, R2.B.X+3, R2.B.Y+1);
       Control := New(PHistory, Init(R1, IL1, TextGrepId));
       Insert(Control);
@@ -203,7 +203,7 @@ begin
       IL2^.Data^:=GrepArgs;
       Insert(IL2);
       R2.Move(0,-1);
-      Insert(New(PLabel, Init(R2, '~G~rep arguments', IL2)));
+      Insert(New(PLabel, Init(R2, label_grep_greparguments, IL2)));
       R1.Assign(R2.B.X, R2.A.Y+1, R2.B.X+3, R2.B.Y+1);
       Control := New(PHistory, Init(R1, IL2, GrepArgsId));
       Insert(Control);
@@ -227,7 +227,7 @@ begin
            MessagesWindow^.FocusItem(ToFocus);
          showmsg:=true;
          Messages;
-         PushStatus('Running Grep '+' -n '+GrepArgs);
+         PushStatus(FormatStrStr(msg_runninggrepwithargs,GrepArgs));
          if not ExecuteRedir(GrepExe,'-n '+GrepArgs,'',GrepOutName,GrepErrName) then
            Begin
               PopStatus;
@@ -237,7 +237,7 @@ begin
                 begin
                   Params[0]:=IOStatus;
                   Params[1]:=ExecuteResult;
-                  WarningBox(#3'Error running Grep'#13#3'DosError = %d'#13#3'Exit code = %d',@Params);
+                  WarningBox(msg_errorrunninggrep,@Params);
                 end;
            End
          else
@@ -269,8 +269,10 @@ begin
            Erase(GrepOut)
          else
            begin
-             Params[0]:=GrepOutputLine;
-             WarningBox(#3'Error reading Grep output'#13#3'In line %d of '+GrepOutName,@Params);
+             ClearFormatParams;
+             AddFormatParamInt(GrepOutputLine);
+             AddFormatParamStr(GrepOutName);
+             WarningBox(msg_errorreadinggrepoutput,@FormatParams);
            end;
        { Delete also grep$$.err }
          if not error_in_reading then
@@ -294,7 +296,10 @@ end;
 
 {
   $Log$
-  Revision 1.19  2000-03-13 20:32:56  pierre
+  Revision 1.20  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.19  2000/03/13 20:32:56  pierre
    + Grep running also in Status line
 
   Revision 1.18  2000/03/02 22:33:36  pierre

+ 12 - 9
ide/text/fpmwnd.inc

@@ -81,12 +81,12 @@ constructor TWindowListDialog.Init;
 var R,R2: TRect;
     SB: PScrollBar;
 begin
-  R.Assign(0,0,50,15);
-  inherited Init(R, 'Window List');
+  R.Assign(0,0,round(ScreenWidth*5/8),15);
+  inherited Init(R, dialog_windowlist);
 
   New(C, Init(20,10));
 
-  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.B.X:=37;
+  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.B.X:=R.B.X-13;
   R2.Copy(R); R2.Move(1,0); R2.A.X:=R2.B.X-1;
   New(SB, Init(R2)); Insert(SB);
   New(LB, Init(R, SB));
@@ -96,14 +96,14 @@ begin
   if C^.Count>=2 then LB^.FocusItem(1); { focus the 2nd one }
   Insert(LB);
   R2.Copy(R); Dec(R2.A.Y); R2.B.Y:=R2.A.Y+1;
-  Insert(New(PLabel, Init(R2, '~W~indows', LB)));
+  Insert(New(PLabel, Init(R2, label_wndlist_windows, LB)));
 
-  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.A.X:=38; R.B.Y:=R.A.Y+2;
-  Insert(New(PButton, Init(R, 'O~K~', cmOK, bfDefault)));
+  GetExtent(R); R.Grow(-2,-2); Inc(R.A.Y); R.A.X:=R.B.X-13+1; R.B.Y:=R.A.Y+2;
+  Insert(New(PButton, Init(R, button_OK, cmOK, bfDefault)));
   R.Move(0,3);
-  Insert(New(PButton, Init(R, '~D~elete', cmDeleteItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_Delete, cmDeleteItem, bfNormal)));
   R.Move(0,3);
-  Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
+  Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
 
   LB^.Select;
 end;
@@ -168,7 +168,10 @@ end;
 
 {
   $Log$
-  Revision 1.16  2000-04-18 11:42:37  pierre
+  Revision 1.17  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.16  2000/04/18 11:42:37  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.15  2000/03/07 21:51:52  pierre

+ 950 - 0
ide/text/fpstre.inc

@@ -0,0 +1,950 @@
+{
+    $Id$
+    This file is part of the Free Pascal Integrated Development Environment
+    Copyright (c) 2000 by Florian Klaempfl & Berczi Gabor
+
+    Strings for menus, dialogs etc
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+const
+      menu_local_gotosource = '~G~oto source';
+      menu_local_tracksource = '~T~rack source';
+      menu_local_options = '~O~ptions...';
+      menu_local_clear = '~C~lear';
+
+      menu_common_contents     = '~C~ontents';
+      menu_common_index        = '~I~ndex';
+      menu_common_topicsearch  = '~T~opic search';
+      menu_common_prevtopic    = '~P~revious topic';
+      menu_common_copy = '~C~opy';
+
+      menu_key_common_helpindex = 'Shift+F1';
+      menu_key_common_topicsearch = 'Ctrl+F1';
+      menu_key_common_prevtopic = 'Alt+F1';
+      menu_key_common_copy = 'Ctrl+Ins';
+
+      { Symbol browser tabs }
+      label_browsertab_scope = 'S';
+      label_browsertab_reference = 'R';
+      label_browsertab_inheritance = 'I';
+      label_browsertab_memory = 'M';
+
+{$ifdef USERESSTRINGS}
+    resourcestring
+{$else}
+    const
+{$endif}
+      { menu entries }
+      menu_file              = '~F~ile';
+      menu_file_new          = '~N~ew';
+      menu_file_template     = 'New from ~t~emplate...';
+      menu_file_open         = '~O~pen...';
+      menu_file_save         = '~S~ave';
+      menu_file_saveas       = 'Save ~a~s...';
+      menu_file_saveall      = 'Save a~l~l';
+      menu_file_changedir    = '~C~hange dir...';
+      menu_file_dosshell     = '~D~OS shell';
+      menu_file_exit         = 'E~x~it';
+
+      menu_edit              = '~E~dit';
+      menu_edit_copywin      = 'Cop~y~ to Windows';
+      menu_edit_pastewin     = 'Paste from ~W~indows';
+      menu_edit_undo         = '~U~ndo';
+      menu_edit_redo         = '~R~edo';
+      menu_edit_cut          = 'Cu~t~';
+      menu_edit_copy         = menu_common_copy;
+      menu_edit_paste        = '~P~aste';
+      menu_edit_clear        = 'C~l~ear';
+      menu_edit_showclipboard= '~S~how clipboard';
+
+      menu_search            = '~S~earch';
+      menu_search_find       = '~F~ind...';
+      menu_search_replace    = '~R~eplace...';
+      menu_search_searchagain= '~S~earch again';
+      menu_search_jumpline   = '~G~o to line number...';
+      menu_search_findproc   = 'Find ~p~rocedure...';
+      menu_search_objects    = '~O~bjects';
+      menu_search_modules    = 'Mod~u~les';
+      menu_search_globals    = 'G~l~obals';
+      menu_search_symbol     = 'S~y~mbol...';
+
+      menu_run               = '~R~un';
+      menu_run_run           = '~R~un';
+      menu_run_stepover      = '~S~tep over';
+      menu_run_traceinto     = '~T~race into';
+      menu_run_conttocursor  = '~G~oto Cursor';
+      menu_run_untilreturn   = '~U~ntil return';
+      menu_run_parameters    = 'P~a~rameters...';
+      menu_run_resetdebugger = '~P~rogram reset';
+
+      menu_compile           = '~C~ompile';
+      menu_compile_compile   = '~C~ompile';
+      menu_compile_make      = '~M~ake';
+      menu_compile_build     = '~B~uild';
+      menu_compile_target    = '~T~arget...';
+      menu_compile_primaryfile = '~P~rimary file...';
+      menu_compile_clearprimaryfile = 'C~l~ear primary file';
+      menu_compile_information = '~I~nformation...';
+      menu_compile_compilermessages = 'C~o~mpiler messages';
+
+      menu_debug             = '~D~ebug';
+      menu_debug_output      = '~O~utput';
+      menu_debug_userscreen  = '~U~ser screen';
+      menu_debug_breakpoint  = '~B~reakpoint';
+      menu_debug_callstack   = '~C~all stack';
+      menu_debug_registers   = '~R~egisters';
+      menu_debug_addwatch    = '~A~dd Watch';
+      menu_debug_watches     = '~W~atches';
+      menu_debug_breakpointlist = 'Breakpoint ~L~ist';
+      menu_debug_gdbwindow   = '~G~DB window';
+
+      menu_tools             = '~T~ools';
+      menu_tools_messages    = '~M~essages';
+      menu_tools_msgnext     = 'Goto ~n~ext';
+      menu_tools_msgprev     = 'Goto ~p~revious';
+      menu_tools_grep        = '~G~rep';
+      menu_tools_calculator  = '~C~alculator';
+      menu_tools_asciitable  = 'Ascii ~t~able';
+
+      menu_options           = '~O~ptions';
+      menu_options_mode      = 'Mode~.~..';
+      menu_options_compiler  = '~C~ompiler...';
+      menu_options_memory    = '~M~emory sizes...';
+      menu_options_linker    = '~L~inker...';
+      menu_options_debugger  = 'De~b~ugger...';
+      menu_options_directories = '~D~irectories...';
+      menu_options_browser   = 'Bro~w~ser...';
+      menu_options_tools     = '~T~ools...';
+      menu_options_env       = '~E~nvironment';
+      menu_options_env_preferences = '~P~references...';
+      menu_options_env_editor= '~E~ditor...';
+      menu_options_env_codecomplete = 'Code~C~omplete...';
+      menu_options_env_codetemplates = 'Code~T~emplates...';
+      menu_options_env_desktop = '~D~esktop...';
+      menu_options_env_mouse = '~M~ouse...';
+      menu_options_env_startup = '~S~tartup...';
+      menu_options_env_colors= '~C~olors';
+      menu_options_open      = '~O~pen...';
+      menu_options_save      = '~S~ave';
+      menu_options_saveas    = 'Save ~a~s...';
+
+      menu_window            = '~W~indow';
+      menu_window_tile       = '~T~ile';
+      menu_window_cascade    = 'C~a~scade';
+      menu_window_closeall   = 'Cl~o~se all';
+      menu_window_resize     = '~S~ize/Move';
+      menu_window_zoom       = '~Z~oom';
+      menu_window_next       = '~N~ext';
+      menu_window_previous   = '~P~revious';
+      menu_window_close      = '~C~lose';
+      menu_window_list       = '~L~ist...';
+      menu_window_update     = '~R~efresh display';
+
+      menu_help              = '~H~elp';
+      menu_help_contents     = menu_common_contents;
+      menu_help_index        = menu_common_index;
+      menu_help_topicsearch  = menu_common_topicsearch;
+      menu_help_prevtopic    = menu_common_prevtopic;
+      menu_help_using        = '~U~sing help';
+      menu_help_files        = '~F~iles...';
+      menu_help_about        = '~A~bout...';
+
+      { Breakpoints window local menu items }
+      menu_bplocal_gotosource  = menu_local_gotosource;
+      menu_bplocal_editbreakpoint = '~E~dit breakpoint';
+      menu_bplocal_newbreakpoint = '~N~ew breakpoint';
+      menu_bplocal_deletebreakpoint = '~D~elete breakpoint';
+      menu_bplocal_togglestate = '~T~oggle state';
+
+      { Watches local menu items }
+      menu_watchlocal_edit = '~E~dit watch';
+      menu_watchlocal_new = '~N~ew watch';
+      menu_watchlocal_delete = '~D~elete watch';
+
+      { Symbol view local menu items }
+      menu_symlocal_browse = '~B~rowse';
+      menu_symlocal_gotosource = menu_local_gotosource;
+      menu_symlocal_tracksource = menu_local_tracksource;
+      menu_symlocal_options = menu_local_options;
+
+      { Source editor local menu items }
+      menu_srclocal_openfileatcursor = 'Open ~f~ile at cursor';
+      menu_srclocal_browseatcursor = '~B~rowse symbol at cursor';
+      menu_srclocal_topicsearch = 'Topic ~s~earch';
+      menu_srclocal_options = menu_local_options;
+
+      { Help viewer local menu items }
+      menu_hlplocal_contents = menu_common_contents;
+      menu_hlplocal_index = menu_common_index;
+      menu_hlplocal_topicsearch = menu_common_topicsearch;
+      menu_hlplocal_prevtopic = menu_common_prevtopic;
+      menu_hlplocal_copy = menu_common_copy;
+
+      { Messages local menu items }
+      menu_msglocal_clear = menu_local_clear;
+      menu_msglocal_gotosource = menu_local_gotosource;
+      menu_msglocal_tracksource = menu_local_tracksource;
+
+      { short cut entries in menu }
+      menu_key_file_open     = 'F3';
+      menu_key_file_save     = 'F2';
+      menu_key_file_exit     = 'Alt+X';
+
+      menu_key_edit_undo     = 'Alt+BkSp';
+      menu_key_edit_cut      = 'Shift+Del';
+      menu_key_edit_copy     = menu_key_common_copy;
+      menu_key_edit_paste    = 'Shift+Ins';
+      menu_key_edit_clear    = 'Ctrl+Del';
+
+      menu_key_run_run       = 'Ctrl+F9';
+      menu_key_run_stepover  = 'F8';
+      menu_key_run_traceinto = 'F7';
+      menu_key_run_conttocursor = 'F4';
+      menu_key_run_resetdebugger = 'Ctrl+F2';
+
+      menu_key_compile_compile = 'Alt+F9';
+      menu_key_compile_make = 'F9';
+      menu_key_compile_compilermessages = 'F12';
+
+      menu_key_debug_userscreen = 'Alt+F5';
+      menu_key_debug_breakpoint = 'Ctrl+F8';
+      menu_key_debug_callstack = 'Ctrl+F3';
+      menu_key_debug_addwatch = 'Ctrl+F7';
+
+      menu_key_tools_messages= 'F11';
+      menu_key_tools_msgnext = 'Alt+F8';
+      menu_key_tools_msgprev = 'Alt+F7';
+      menu_key_tools_grep    = 'Shift+F2';
+
+      menu_key_window_resize = 'Ctrl+F5';
+      menu_key_window_zoom   = 'F5';
+      menu_key_window_next   = 'F6';
+      menu_key_window_previous = 'Shift+F6';
+      menu_key_window_close  = 'Alt+F3';
+      menu_key_window_list   = 'Alt+0';
+
+      menu_key_help_helpindex= menu_key_common_helpindex;
+      menu_key_help_topicsearch = menu_key_common_topicsearch;
+      menu_key_help_prevtopic= menu_key_common_prevtopic;
+
+      menu_key_hlplocal_index = menu_key_common_helpindex;
+      menu_key_hlplocal_topicsearch = menu_key_common_topicsearch;
+      menu_key_hlplocal_prevtopic = menu_key_common_prevtopic;
+      menu_key_hlplocal_copy = menu_key_common_copy;
+
+      dialog_openafile        = 'Open a file';
+      label_filetoopen        = 'File to ope~n~';
+      label_lookingfor        = 'Looking for %s';
+
+      msg_confirmsourcediradd = 'Directory %s is not in search path for source files. '+
+                                'Should we add it ?';
+
+      dialog_fillintemplateparameter = 'Fill in template parameter';
+
+      dialog_calculator       = 'Calculator';
+
+      msg_quitconfirm         = 'Do You really want to quit?';
+
+      { CodeComplete dialog }
+      dialog_codecomplete     = 'CodeComplete';
+      label_codecomplete_keywords = '~K~eywords';
+
+      dialog_codecomplete_add = 'Add new keyword';
+      label_codecomplete_add_keyword = 'Keyword';
+
+      dialog_codecomplete_edit = 'Edit keyword';
+      label_codecomplete_edit_keyword = 'Keyword';
+
+      { CodeTemplates dialog }
+      dialog_codetemplates_add = 'Add new template';
+      dialog_codetemplates_edit = 'Edit template';
+
+      msg_codecomplete_alreadyinlist = '"%s" is already in the list';
+
+      { File|New from template dialog }
+      msg_notemplatesavailable = 'No templates available.';
+      dialog_newfromtemplate   = 'New from template';
+      label_availabletemplates = 'Available ~t~emplates';
+
+      label_codetemplate_shortcut = '~S~hortcut';
+      label_codetemplate_content = '~T~emplate content';
+      label_codetemplate_templates = '~T~emplates';
+
+      dialog_newtemplate = 'New template';
+      dialog_modifytemplate = 'Modify template';
+      msg_codetemplate_alreadyinlist = 'A template named "%s" is already in the list';
+
+      dialog_compilermessages = 'Compiler Messages';
+
+      dialog_compilingwithmode = 'Compiling  (%s mode)';
+
+      { Breakpoints window }
+      dialog_breakpointlist = 'Breakpoint list';
+      label_breakpointpropheader = ' Type      | State   | Position          | Ignore | Conditions ';
+
+      dialog_modifynewbreakpoint = 'Modify/New Breakpoint';
+      label_breakpoint_name = '~N~ame';
+      label_breakpoint_line = '~L~ine';
+      label_breakpoint_conditions = 'Conditions';
+      label_breakpoint_ignorecount = '~I~gnore count';
+
+      { Watches window }
+      dialog_watches = 'Watches';
+
+      label_watch_expressiontowatch = '~E~xpression to watch';
+      label_watch_values = 'Watch values';
+
+      msg_watch_currentvalue = 'Current value: '+#13+
+                               '%s';
+      msg_watch_currentandpreviousvalue = 'Current value: '+#13+
+                                          '%s'+#13+
+                                          'Previous value: '+#13+
+                                          '%s';
+
+      dialog_registers = 'Register View';
+
+      dialog_fpu = 'FPU View';
+
+      dialog_callstack = 'Call Stack';
+
+      dialog_help = 'Help';
+      msg_modalhelpnotimplemented = 'Sorry, modal help not yet implemented.';
+
+      dialog_browse = 'Browse: %s';
+      dialog_units = 'Units';
+
+      dialog_browsesymbol = 'Browse Symbol';
+      label_entersymboltobrowse = 'Enter S~y~mbol to browse';
+
+      dialog_gdbwindow = 'GDB window';
+
+      dialog_clipboard = 'Clipboard';
+
+      dialog_userscreen = 'User screen';
+
+      dialog_messages = 'Messages';
+
+      dialog_memorysizes = 'Memory sizes';
+
+      dialog_directories = 'Directories';
+
+      dialog_programparameters = 'Program parameters';
+      label_parameters_parameter = '~P~arameter';
+
+      dialog_openoptions = 'Open Options';
+      msg_cantopenconfigfile = 'Can''t open config file.';
+      msg_errorsavingconfigfile = 'Error saving config file.';
+
+      dialog_saveoptions = 'Save Options';
+
+      dialog_preferences = 'Preferences';
+      label_preferences_videomode = 'Video mode';
+      label_preferences_currentdirectory = 'C~u~rrent directory';
+      label_preferences_configdirectory = 'Conf~i~g file directory';
+      label_preferences_desktopfile = 'Desktop file';
+      label_preferences_editorfiles = 'Editor ~f~iles';
+      label_preferences_environment = '~E~nvironment';
+      label_preferences_desktop = '~D~esktop';
+      label_preferences_autosave = 'Auto save';
+      label_preferences_autotracksource = '~A~uto track source';
+      label_preferences_closeongotosource = 'C~l~ose on go to source';
+      label_preferences_changedironopen = 'C~h~ange dir on open';
+      label_preferences_options = 'Options';
+
+      dialog_defaulteditoroptions = 'Default Editor Options';
+      dialog_editoroptions = 'Editor Options';
+      label_editor_backupfiles = 'Create backup ~f~iles';
+      label_editor_insertmode = '~I~nsert mode';
+      label_editor_autoindentmode = '~A~uto indent mode';
+      label_editor_usetabcharacters = '~U~se tab characters';
+      label_editor_backspaceunindents = '~B~ackspace unindents';
+      label_editor_persistentblocks = '~P~ersistent blocks';
+      label_editor_syntaxhighlight = '~S~yntax highlight';
+      label_editor_blockinsertcursor = 'B~l~ock insert cursor';
+      label_editor_verticalblocks = '~V~ertical blocks';
+      label_editor_highlightcolumn = 'Highlight ~c~olumn';
+      label_editor_highlightrow = 'Highlight ~r~ow';
+      label_editor_autoclosingbrackets = 'Aut~o~-closing brackets';
+      label_editor_keeptrailingspaces = '~K~eep trailing spaces';
+      label_editor_codecomplete = 'Co~d~eComplete enabled';
+      label_editor_editoroptions = '~E~ditor options';
+      label_editor_tabsize = '~T~ab size';
+      label_editor_highlightextensions = '~H~ighlight extensions';
+      label_editor_filepatternsneedingtabs = 'File ~p~atterns needing tabs';
+
+      dialog_browseroptions = 'Browser Options';
+      dialog_localbrowseroptions = 'Local Browser Options';
+      label_browser_labels = '~L~abels';
+      label_browser_constants = '~C~onstants';
+      label_browser_types = '~T~ypes';
+      label_browser_variables = '~V~ariables';
+      label_browser_procedures = '~P~rocedures';
+      label_browser_inherited = '~I~nherited';
+      label_browser_symbols = 'Symbols';
+      label_browser_newbrowser = '~N~ew browser';
+      label_browser_currentbrowser = '~R~eplace current';
+      label_browser_subbrowsing = 'Sub-browsing';
+      label_browser_scope = '~S~cope';
+      label_browser_reference = 'R~e~ference';
+      label_browser_preferredpane = 'Preferred pane';
+      label_browser_qualifiedsymbols = '~Q~ualified symbols';
+      label_browser_sortsymbols = 'S~o~rt always';
+      label_browser_display = 'Display';
+
+      dialog_desktoppreferences = 'Desktop Preferences';
+      label_desktop_historylists = '~H~istory lists';
+      label_desktop_clipboard = '~C~lipboard content';
+      label_desktop_watches = '~W~atch expressions';
+      label_desktop_breakpoints = '~B~reakpoints';
+      label_desktop_openwindow = '~O~pen windows';
+      label_desktop_symbolinfo = '~S~ymbol information';
+      label_desktop_codecompletewords = 'Co~d~eComplete wordlist';
+      label_desktop_codetemplates = 'Code~T~emplates';
+      label_desktop_preservedacrosssessions = '~P~reserved across sessions';
+
+      dialog_mouseoptions = 'Mouse Options';
+      label_mouse_speedbar = 'Fast       Medium      Slow';
+      label_mouse_doubleclickspeed = '~M~ouse double click';
+      label_mouse_reversebuttons = '~R~everse mouse buttons';
+      label_mouse_crtlrightmousebuttonaction = 'Ctrl+Right mouse button';
+      label_mouse_altrightmousebuttonaction = 'Alt+Right mouse button';
+      label_mouse_act_nothing = '~N~othing';
+      label_mouse_act_topicsearch = '~T~opic search';
+      label_mouse_act_gotocursor = '~G~o to cursor';
+      label_mouse_act_breakpoint = '~B~reakpoint';
+      label_mouse_act_evaluate = '~E~valuate';
+      label_mouse_act_addwatch = '~A~dd watch';
+      label_mouse_act_browsesymbol = 'Browse ~s~ymbol';
+
+      label_colors_grp_browser = 'Browser';
+      label_colors_framepassive = 'Frame passive';
+      label_colors_frameactive = 'Frame active';
+      label_colors_frameicon = 'Frame icon';
+      label_colors_scrollbarpage = 'Scroll bar page';
+      label_colors_scrollbaricons = 'Scroll bar icons';
+      label_colors_normaltext = 'Normal text';
+      label_colors_selectedtext = 'Selected text';
+      label_colors_activeitem = 'Active item';
+      label_colors_inactiveitem = 'Inactive item';
+      label_colors_focuseditem = 'Focused item';
+      label_colors_selecteditem = 'Selected item';
+      label_colors_divider = 'Divider';
+      label_colors_grp_clock = 'Clock';
+      label_colors_clockview = 'clock view';
+      label_colors_grp_desktop = 'Desktop';
+      label_colors_grp_dialogs = 'Dialogs';
+      label_colors_grp_editor = 'Editor';
+      label_colors_highlighcolumn = 'Highlight column';
+      label_colors_highlightrow = 'Highlight row';
+      label_colors_errormessages = 'Error messages';
+      label_colors_grp_help = 'Help';
+      label_colors_helptext = 'Help text';
+      label_colors_helplinks = 'Help links';
+      label_colors_selectedlink = 'Selected link';
+      label_colors_grp_menus = 'Menus';
+      label_colors_grp_syntax = 'Syntax';
+      label_colors_whitespace = 'Whitespace';
+      label_colors_comments = 'Comments';
+      label_colors_reservedwords = 'Reserved words';
+      label_colors_identifiers = 'Identifiers';
+      label_colors_strings = 'Strings';
+      label_colors_numbers = 'Numbers';
+      label_colors_hexnumbers = 'Hex numbers';
+      label_colors_assembler = 'Assembler';
+      label_colors_symbols = 'Symbols';
+      label_colors_directives = 'Directives';
+      label_colors_tabs = 'Tabs';
+
+      dialog_linker = 'Linker';
+      label_linker_preferredlibtype = 'Preferred library type';
+
+      dialog_debugger = 'Browsing/Debugging/Profiling';
+      label_debugger_debuginfo = 'Debugging information';
+      label_debugger_profileswitches = 'Profiling Switches';
+      label_debugger_compilerargs = '~A~dditional compiler args';
+      label_debugger_useanotherconsole = 'Use ~A~nother console';
+      label_debugger_redirection = 'Debuggee ~R~edirection';
+      label_debugger_useanothertty = 'Use ~A~nother tty for Debuggee';
+
+      dialog_helpfiles = 'Install Help Files';
+      label_helpfiles_helpfiles = '~H~elp files';
+
+      dialog_installhelpfile = 'Install a help file';
+      label_installhelpfile_filename = '~H~elp file name';
+
+      msg_createkeywordindexforhelpfile = 'Create keyword index from help file?';
+
+      dialog_topictitle = 'Topic title';
+      label_topictitle_title = 'Title';
+
+      msg_pleasewaitwhilecreatingindex = 'Please wait while creating index...';
+      msg_buildingindexfile = 'Building index file %s';
+      msg_filedoesnotcontainanylinks = '%s doesn''t contain any links, thus it isn''t suitable for indexing.';
+      msg_filealreadyexistsoverwrite = 'File %s already exists. Overwrite?';
+      msg_storinghtmlindexinfile = 'Storing HTML index in %s';
+      msg_errorstoringindexdata = 'Error storing index data';
+
+      dialog_switchesmode = 'SwitchesMode';
+      static_switchesmode_switchesmode = 'Switches Mode';
+
+      dialog_compilerswitches = 'Compiler Switches';
+      label_compiler_syntaxswitches = 'Syntax Switches';
+      label_compiler_runtimechecks = 'Run-time checks';
+      label_compiler_optimizations = 'Optimizations';
+      label_compiler_targetprocessor = 'Target processor';
+      label_compiler_verboseswitches = 'Verbose Switches';
+      label_compiler_browser = 'Browser';
+      label_compiler_assemblerreader = 'Assembler reader';
+      label_compiler_assemblerinfo = 'Assembler info';
+      label_compiler_assembleroutput = 'Assembler output';
+      page_compiler_syntax = 'S~y~ntax';
+      page_compiler_codegeneration = 'Code ~g~eneration';
+      page_compiler_verbose = '~V~erbose';
+      page_compiler_browser = '~B~rowser';
+      page_compiler_assembler = '~A~ssembler';
+
+      dialog_target = 'Target';
+      label_target_platform = 'Target platform';
+
+      label_primaryfile_primaryfile = 'Primary file';
+
+      { About window }
+      dialog_about = 'About';
+      label_about_compilerversion = 'Compiler Version';
+      label_about_debugger = 'Debugger';
+
+      { Program info window }
+      dialog_programinformation = 'Program Information';
+      label_proginfo_currentmodule = 'Current module';
+      label_proginfo_lastexitcode = 'Last exit code';
+      label_proginfo_availablememory = 'Available memory';
+
+      { Tools }
+      dialog_tools = 'Tools';
+      label_tools_programtitles = '~P~rogram titles';
+      dialog_modifynewtool = 'Modify/New Tool';
+      label_toolprop_title = '~T~itle';
+      label_toolprop_programpath = 'Program ~p~ath';
+      label_toolprop_commandline = 'Command ~l~ine';
+      msg_errorparsingparametersatpos = ^C'Error parsing parameters line at line position %d.';
+      msg_cantinstallmoretools = ^C'Can''t install more tools...';
+      msg_requiredparametermissingin = 'Required parameter missing in [%s]';
+      msg_requiredpropertymissingin = 'Required property missing in [%s]';
+      msg_unknowntypein = 'Unknown type in [%s]';
+      msg_propertymissingin = '%s property missing in [%s]';
+      msg_invaliditemsin = 'Invalid number of items in [%s]';
+      msg_errorparsingtoolparams = ^C'Error parsing tool params.';
+      msg_executingtool = 'Executing tool %s ...';
+      msg_errorreadingoutput = 'Error reading output.';
+      msg_executingfilterfor = 'Executing filter for %s ...';
+      msg_cantfindfilteredoutput = 'Can''t find filtered output.';
+      msg_errorprocessingfilteredoutput = 'Error processing filtered output.';
+      msg_errorexecutingfilter = 'Error executing filter %s';
+      msg_errorexecutingtool = 'Error executing tool %s';
+      msg_filterexecutionsuccessfulexitcodeis = 'Filter execution successful. Exit code = %d';
+      msg_toolexecutionsuccessfulexitcodeis = 'Tool execution successful. Exit code = %d';
+
+      dialog_greparguments = 'Grep arguments';
+      msg_grepprogramnotfound = 'Grep program not found';
+      label_grep_texttofind = '~T~ext to find';
+      label_grep_greparguments = '~G~rep arguments';
+      msg_runninggrepwithargs = 'Running Grep -n %s';
+      msg_errorrunninggrep = #3'Error running Grep'#13#3'DosError = %d'#13#3'Exit code = %d';
+      msg_errorreadinggrepoutput = #3'Error reading Grep output'#13#3'In line %d of %s';
+
+      dialog_windowlist = 'Window List';
+      label_wndlist_windows = '~W~indows';
+
+      msg_userscreennotavailable = 'Sorry, user screen not available.';
+
+      { Tools $PROMPT() dialog }
+      dialog_programarguments = 'Program Arguments';
+      label_enterprogramargument = '~E~nter program argument';
+
+      { Debugger confirmations and messages }
+      msg_nodebuginfoavailable = 'No debug info available.';
+      msg_nodebuggersupportavailable = 'No debugger support available.';
+      msg_cantdebugchangetargetto = #3'Sorry, can not debug'#13+
+                                    #3'programs compiled for %s.'#13+
+                                    #3'Change target to %s?';
+      msg_compiledwithoutdebuginforecompile =
+                                 #3'Warning, the program'#13+
+                                 #3'was compiled without'#13+
+                                 #3'debugging info.'#13+
+                                 #3'Recompile it?';
+      msg_nothingtodebug = 'Oooops, nothing to debug.';
+      msg_startingdebugger = 'Starting debugger';
+
+      { Desktop file messages }
+      msg_readingdesktopfile = 'Reading desktop file...';
+      msg_writingdesktopfile = 'Writing desktop file...';
+      msg_readingdesktopcontents = 'Reading desktop contents...';
+      msg_storingdesktopcontents = 'Storing desktop contents...';
+      msg_readinghistory = 'Reading history...';
+      msg_storinghistory = 'Storing history...';
+      msg_readingwatches = 'Reading watches...';
+      msg_storingwatches = 'Storing watches...';
+      msg_readingbreakpoints = 'Reading breakpoints...';
+      msg_storingbreakpoints = 'Storing breakpoints...';
+      msg_readingcodecompletewordlist = 'Reading CodeComplete wordlist...';
+      msg_storingcodecompletewordlist = 'Writing CodeComplete wordlist...';
+      msg_readingcodetemplates = 'Reading CodeTemplates...';
+      msg_storingcodetemplates = 'Writing CodeTemplates...';
+      msg_readingsymbolinformation = 'Reading symbol information...';
+      msg_storingsymbolinformation = 'Storing symbol information...';
+      msg_failedtoreplacedesktopfile = 'Failed to replace desktop file.';
+      msg_errorloadinghistory = 'Error loading history';
+      msg_errorstoringhistory = 'Error storing history';
+      msg_errorloadingwatches = 'Error loading watches';
+      msg_errorstoringwatches = 'Error storing watches';
+      msg_errorloadingbreakpoints = 'Error loading breakpoints';
+      msg_errorstoringbreakpoints = 'Error storing breakpoints';
+      msg_errorloadingdesktop = 'Error loading desktop';
+      msg_errorstoringdesktop = 'Error storing desktop';
+      msg_errorreadingflags = 'Error loading flags';
+      msg_errorwritingflags = 'Error writing flags';
+      msg_errorreadingvideomode = 'Error reading video mode';
+      msg_errorstoringvideomode = 'Error storing video mode';
+      msg_errorloadingcodetemplates = 'Error loading CodeTemplates';
+      msg_errorstoringcodetemplates = 'Error writing CodeTemplates';
+      msg_errorloadingsymbolinformation = 'Error loading symbol information';
+      msg_errorstoringsymbolinformation = 'Error storing symbol information';
+      msg_errorloadingcodecompletewordlist = 'Error loading CodeComplete wordlist';
+      msg_errorstoringcodecompletewordlist = 'Error writing CodeComplete wordlist';
+      msg_invaliddesktopversionlayoutlost = 'Invalid desktop version. Desktop layout lost.';
+
+      msg_cantopenfile = 'Can''t open %s';
+      msg_cantcreatefile = 'Can''t create %s';
+      msg_cantfindfile = 'Can''t find %s';
+      msg_errorreadingfile = 'Error reading file %s';
+      msg_loadingfile = 'Loading %s';
+      msg_storingfile = 'Storing %s';
+      msg_closingfile = 'Closing %s';
+      msg_invalidfilename = 'Invalid filename %s';
+
+      msg_openingsourcefile = 'Opening source file... (%s)';
+      msg_readingfileineditor = 'Reading %s into editor...';
+
+      label_sym_objects = 'Objects';
+      label_sym_globalscope = 'Global scope';
+      label_sym_globals = 'Globals';
+
+      { Symbol browser meminfo page }
+      msg_sizeinmemory = 'Size in memory';
+      msg_sizeonstack = 'Size on stack';
+
+      { Help messages }
+      msg_indexingfile = 'Indexing file %s';
+      msg_loadinghelpfiles = 'Loading help files...';
+      msg_loadinghelpfile = 'Loading help file...';
+      msg_buildinghelpindex = 'Building Help Index...';
+      msg_locatingtopic = 'Locating topic...';
+
+      { Browser messages }
+      msg_symbolnotfound = #3'Symbol %s not found';
+      msg_nobrowserinfoavailable = 'No Browser info available';
+      msg_toomanysymbolscantdisplayall= 'Too many symbols. Can''t display all of them.';
+
+      { Status hints during compilation }
+      msg_hint_pressesctocancel = 'Press ESC to cancel';
+      msg_hint_compilesuccessfulpressenter = 'Compile successful: ~Press Enter~';
+      msg_hint_compilefailed = 'Compile failed';
+      msg_hint_compileaborted = 'Compile aborted';
+      msg_hint_pleasewait = 'Please wait...';
+
+      { Compile status dialog texts }
+      msg_compilingfile      = 'Compiling %s';
+      msg_linkingfile        = 'Linking %s';
+      msg_compiledone        = 'Done.';
+      msg_failedtocompile    = 'Failed to compile...';
+      msg_compilationaborted = 'Compilation aborted...';
+
+      msg_nothingtocompile = 'Oooops, nothing to compile.';
+      msg_cantcompileunsavedfile = 'Can''t compile unsaved file.';
+
+      msg_couldnotcreatefile = 'could not create %s';
+      msg_therearemoreerrorsinfile = 'There are more errors in file %s';
+      msg_firstcompilationof = 'First compilation of %s';
+      msg_recompilingbecauseof = 'Recompiling because of %s';
+
+      msg_errorinexternalcompilation = 'Error in external compilation';
+      msg_iostatusis = 'IOStatus = %d';
+      msg_executeresultis = 'ExecuteResult = %d';
+
+      msg_nothingtorun = 'Oooops, nothing to run.';
+
+      msg_impossibletoreachcursor = 'Impossible to reach current cursor';
+      msg_impossibletosetbreakpoint = 'Impossible to set breakpoints here';
+
+      msg_programnotrundoserroris = #3'Program %s'#13#3'not run'#13#3'DosError = %d';
+      msg_programfileexitedwithexitcode = #3'Program %s'#13#3'exited with '#13#3'exitcode = %d';
+
+      msg_automaticallycreateddontedit = 'Automaticly created file, don''t edit.';
+
+      { Compiler options }
+      opt_delphi2extensions = '~D~elphi 2 extensions on';
+      opt_clikeoperators = '~C~-like operators';
+      opt_stopafterfirsterror = 'S~t~op after first error';
+      opt_allowlabelandgoto = 'Allo~w~ LABEL and GOTO';
+      opt_cplusplusstyledinline = 'C++ styled ~i~nline';
+      opt_globalcmacros = 'Global C ~m~acros';
+      opt_tp7compatibility = 'TP/BP ~7~.0 compatibility';
+      opt_delphicompatibility = 'Del~p~hi compatibility';
+      opt_allowstaticinobjects = 'A~l~low STATIC in objects';
+      opt_strictvarstrings = 'Strict ~v~ar-strings';
+      opt_extendedsyntax = 'E~x~tended syntax';
+      opt_allowmmxoperations = 'Allow MMX op~e~rations';
+      { Verbose options }
+      opt_warnings = '~W~arnings';
+      opt_notes = 'N~o~tes';
+      opt_hints = '~H~ints';
+      opt_generalinfo = 'General ~I~nfo';
+      opt_usedtriedinfo = '~U~sed,tried info';
+      opt_all = '~A~ll';
+      opt_showallprocsonerror = 'Show all ~P~rocedures if error';
+      { Checking options }
+      opt_rangechecking = '~R~ange checking';
+      opt_stackchecking = '~S~tack checking';
+      opt_iochecking = '~I~/O checking';
+      opt_overflowchecking = 'Integer ~o~verflow checking';
+      { Code options }
+      opt_generatefastercode = 'Generate ~f~aster code';
+      opt_generatesmallercode = 'Generate s~m~aller code';
+      opt_useregistervariables = 'Use regis~t~er-variables';
+      opt_uncertainoptimizations = '~U~ncertain optimizations';
+      opt_level1optimizations = 'Level ~1~ optimizations';
+      opt_level2optimizations = 'Level ~2~ optimizations';
+      opt_i386486 = 'i~3~86/i486';
+      opt_pentiumandmmx = 'Pentium/PentiumMM~X~ (tm)';
+      opt_pentiumpro = 'P~P~ro/PII/c6x86/K6 (tm)';
+      { Assembler options }
+      opt_directassembler = '~D~irect assembler';
+      opt_attassembler = '~A~T&T style assembler';
+      opt_intelassembler = '~I~ntel style assembler';
+      opt_listsource = '~L~ist source';
+      opt_listregisterallocation = 'list ~r~egister allocation';
+      opt_listtempallocation = 'list ~t~emp allocation';
+      opt_usegnuas = 'Use ~G~NU as';
+      opt_usenasmcoff = 'Use ~N~ASM coff';
+      opt_usenasmelf = 'Use NASM ~e~lf';
+      opt_usenasmobj = 'Use NASM ~o~bj';
+      opt_usemasm = 'Use ~M~ASM';
+      opt_usetasm = 'Use ~T~ASM';
+      opt_usecoff = 'Use ~c~off';
+      opt_usepecoff = 'Use ~p~ecoff';
+      { Browser options }
+      opt_nobrowser = 'N~o~ browser';
+      opt_globalonlybrowser = 'Only Glob~a~l browser';
+      opt_localglobalbrowser = '~L~ocal and global browser';
+      { Conditional defines }
+      opt_conditionaldefines = 'Conditio~n~al defines';
+      { Memory sizes }
+      opt_stacksize = '~S~tack size';
+      opt_heapsize = '~H~eap size';
+      { Directory options }
+      opt_unitdirectories = '~U~nit directories';
+      opt_includedirectories = '~I~nclude directories';
+      opt_librarydirectories = '~L~ibrary directories';
+      opt_objectdirectories = '~O~bject directories';
+      opt_exeppudirectories = '~E~XE & PPU directories';
+      { Library options }
+      opt_dynamiclibraries = '~D~ynamic libraries';
+      opt_staticlibraries = '~S~tatic libraries';
+      { Symbol info options }
+      opt_stripalldebugsymbols = '~S~trip all debug symbols from executable';
+      opt_gendebugsymbolinfo = 'Generate ~d~ebug symbol information';
+      opt_gensymbolandbacktraceinfo = 'Generate also backtrace ~l~ine information';
+      { Profiling options }
+      opt_noprofileinfo = '~N~o profile information';
+      opt_gprofinfo = 'Generate profile code for g~p~rof';
+
+      { Debugger messages and status hints }
+      msg_programexitedwithcodeandsteps = #3'Program exited with '#13+
+                                          #3'exitcode = %d'#13+
+                                          #3'hidden steps = %d';
+
+      msg_programexitedwithexitcode = #3'Program exited with '#13+
+                                      #3'exitcode = %d';
+
+      msg_runningprogram = 'Running...';
+      msg_runninginanotherwindow = 'Executable running in another window..';
+      msg_couldnotsetbreakpointat = #3'Could not set Breakpoint'#13+
+                                    #3+'%s:%d';
+      msg_couldnotsetbreakpointtype = #3'Could not set Breakpoint'#13+
+                                      #3+'%s %s';
+
+      { standard button texts }
+      button_OK          = 'O~K~';
+      button_Cancel      = 'Cancel';
+      button_New         = '~N~ew';
+      button_Edit        = '~E~dit';
+      button_Delete      = '~D~elete';
+      button_Close       = '~C~lose';
+
+      { Compiler message classes }
+      msg_class_normal   = '';
+      msg_class_fatal    = 'Fatal';
+      msg_class_error    = 'Error';
+      msg_class_warning  = 'Warning';
+      msg_class_note     = 'Note';
+      msg_class_hint     = 'Hint';
+      msg_class_macro    = 'Macro';
+      msg_class_procedure= 'Procedure';
+      msg_class_conditional = 'Conditional';
+      msg_class_info     = 'Info';
+      msg_class_status   = 'Status';
+      msg_class_used     = 'Used';
+      msg_class_tried    = 'Tried';
+      msg_class_debug    = 'Debug';
+
+      { status line entries }
+      status_help            = '~F1~ Help';
+      status_help_on_help    = '~F1~ Help on help';
+      status_help_previoustopic = '~Alt+F1~ Previous topic';
+      status_help_index      = '~Shift+F1~ Help index';
+      status_help_close      = '~Esc~ Close help';
+      status_save            = '~F2~ Save';
+      status_open            = '~F3~ Open';
+      status_compile         = '~Alt+F9~ Compile';
+      status_make            = '~F9~ Make';
+      status_localmenu       = '~Alt+F10~ Local menu';
+      status_transferchar    = '~Ctrl+Enter~ Transfer char';
+      status_msggotosource   = '~'+EnterSign+'~ Goto source';
+      status_msgtracksource  = '~Space~ Track source';
+      status_close           = '~Esc~ Close';
+      status_calculatorpaste = '~Ctrl+Enter~ Transfer result';
+
+      { Menu hints }
+      hint_systemmenu        = 'System menu';
+      hint_update            = 'Refresh and redraw display';
+      hint_about             = 'Show version and copyright information';
+      hint_filemenu          = 'File managment commands (Open, New, Save, etc.)';
+      hint_filenew           = 'Create a new file in a new edit window';
+      hint_filenewfromtemplate='Create a new file using a code template';
+      hint_fileopen          = 'Locate and open a file in an edit window';
+      hint_filesave          = 'Save the file in the active edit window';
+      hint_filesaveas        = 'Save the current file under a different name, directory or drive';
+      hint_filesaveall       = 'Save all modified files';
+      hint_changedir         = 'Choose a new default directory';
+      hint_dosshell          = 'Temporarily exit to DOS';
+      hint_exit              = 'Exit the IDE';
+      hint_openrecentfile    = 'Open indicated file in a new editor window';
+      hint_editmenu          = 'Clipboard editing commands';
+      hint_editundo          = 'Undo the previous editor operation';
+      hint_editredo          = 'Redo the previously undone editor operation';
+      hint_editcut           = 'Remove the selected text and put it in the clipboard';
+      hint_editcopy          = 'Copy the selected text in the clipboard';
+      hint_editpaste         = 'Insert selected text from the clipboard at the cursor position';
+      hint_editcopywin       = 'Copy the selected text in windows clipboard';
+      hint_editpastewin      = 'Insert selected text from windows clipboard at the cursor position';
+      hint_editclear         = 'Delete the selected text';
+      hint_showclipboard     = 'Open then clipboard window';
+      hint_searchmenu        = 'Text and symbols search commands';
+      hint_searchfind        = 'Search for text';
+      hint_searchreplace     = 'Search for text and replace it with new text';
+      hint_searchagain       = 'Repeat the last Search or Replace command';
+      hint_gotoline          = 'Move the cursor to a specified line number';
+      hint_objects           = 'Open a browser displaying all objects in the program';
+      hint_modules           = 'Open a browser displaying all modules of the program';
+      hint_globals           = 'Open a browser displaying all global symbols in the program';
+      hint_symbol            = 'Open a browser a current word (not yet scope sensitive)';
+      hint_runmenu           = 'Execution and parameters';
+      hint_run               = 'Run the current program';
+      hint_runparameters     = 'Set command-line parameters passed to program at execution';
+      hint_resetprogram      = 'Reset Program';
+      hint_rununtilcursor    = 'Go on until Cursor position';
+      hint_rununtilreturn    = 'Go on until end of current function';
+      hint_userscreen        = 'Switch to the full-screen user output';
+      hint_compilemenu       = 'Compile, build & make';
+      hint_compile           = 'Compile the current source file';
+      hint_make              = 'Rebuild source file and all other files that have been modified';
+      hint_build             = 'Rebuild program and all available source files';
+      hint_target            = 'Select target platform to compile for';
+      hint_primaryfile       = 'Define then file that is the focus of Make and Build';
+      hint_clearprimaryfile  = 'Clear the file previously set to Primary';
+      hint_information       = 'Show compiler messages and program information';
+      hint_showmessages      = 'Show compiler messages window';
+      hint_debugmenu         = 'Debug Program';
+      hint_togglebreakpoint  = 'Toggles Breakpoint';
+      hint_createnewbreakpoint = 'Create a new breakpoint';
+      hint_editbreakpoint    = 'Edit focused breakpoint';
+      hint_deletebreakpoint  = 'Delete focused breakpoint';
+      hint_opengdbwindow     = 'Open direct window to GDB';
+      hint_addwatch          = 'Add a new expression to watch';
+      hint_watches           = 'Open the Watches Window';
+      hint_callstack         = 'Show call stack';
+      hint_editbreakpoints   = 'Edit breakpoints';
+      hint_toolsmenu         = 'User installed tools';
+      hint_calculator        = 'Show calculator';
+      hint_grep              = 'Run grep';
+      hint_gotosource        = 'Edit source';
+      hint_registers         = 'Open the Registers Window';
+      hint_messageswindow    = 'Open the message window';
+      hint_usertool          = 'User installed tool';
+      hint_asciitable        = 'Show ASCII table';
+      hint_optionsmenu       = 'Setting for compiler, editor, mouse, etc.';
+      hint_switchesmode      = 'Select settings for normal, debug or release version';
+      hint_compiler          = 'Set default compiler directives and conditional defines';
+      hint_memorysizes       = 'Set default stack and heap sizes for generated programs';
+      hint_linkeroptions     = 'Set linker options';
+      hint_debugoptions      = 'Set debug information options';
+      hint_directories       = 'Set paths for units, include, object and generated files';
+      hint_browser           = 'Specify global browser settings';
+      hint_tools             = 'Create or change tools';
+      hint_environmentmenu   = 'Specify environment settins';
+      hint_preferences       = 'Specify desktop settings';
+      hint_editoroptions     = 'Specify default editor settings';
+      hint_codecomplete      = 'Specify CodeComplete keywords';
+      hint_codetemplates     = 'Specify CodeTemplates';
+      hint_mouseoptions      = 'Specify mouse settings';
+      hint_desktopoptions    = 'Specify desktop settings';
+      hint_startup           = 'Permanently change default startup options';
+      hint_colors            = 'Customize IDE colors for windows, menus, editors, etc.';
+      hint_openini           = 'Load a previously saved options file';
+      hint_saveini           = 'Save all the changes made in the options menu';
+      hint_saveasini         = 'Save all the changes made under a different name';
+      hint_windowmenu        = 'Windows managment commands';
+      hint_tile              = 'Arrange windows on desktop by tiling';
+      hint_cascade           = 'Arrange windows on desktop by cascading';
+      hint_closeall          = 'Close all windows on the desktop';
+      hint_resize            = 'Change the size/postion of the active window';
+      hint_zoom              = 'Enlarge or restore the size of the active window';
+      hint_next              = 'Make the next window active';
+      hint_prev              = 'Make the previous window active';
+      hint_closewindow       = 'Close the active window';
+      hint_windowlist        = 'Show a list of all open windows';
+      hint_userscreenwindow  = 'Show contents of user screen in a window';
+      hint_helpmenu          = 'Get online help';
+      hint_helpcontents      = 'Show table of contents for Online Help';
+      hint_helpindex         = 'Show index for Online Help';
+      hint_helptopicsearch   = 'Display help on the word at cursor';
+      hint_helpprevtopic     = 'Redisplay the last-viewed Online Help screen';
+      hint_helphowtouse      = 'How to use Online Help';
+      hint_helpfiles         = 'Install or remove installed help files';
+      hint_openatcursor      = 'Attempt to open the file indicated by the word at cursor';
+      hint_browseatcursor    = 'Attempt to browse the symbol at cursor';
+      hint_editoroptionscur  = 'Specify editor settings';
+      hint_rawgdbwindow      = 'Raw GDB communication window';
+      hint_allbreakpoints    = 'All current breakpoints';
+
+      { error messages }
+      error_saving_cfg_file  = 'Error saving configuration.';
+      error_saving_dsk_file  = 'Error saving desktop file.'#13+
+                               'Desktop layout could not be stored.';
+      error_user_screen_not_avail = 'Sorry, user screen not available.';
+
+{
+  $Log$
+  Revision 1.1  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+
+}

+ 950 - 0
ide/text/fpstrh.inc

@@ -0,0 +1,950 @@
+{
+    $Id$
+    This file is part of the Free Pascal Integrated Development Environment
+    Copyright (c) 2000 by Florian Klaempfl & Berczi Gabor
+
+    Strings for menus, dialogs etc
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+const
+      menu_local_gotosource = '~G~oto source';
+      menu_local_tracksource = '~T~rack source';
+      menu_local_options = '~O~ptions...';
+      menu_local_clear = '~C~lear';
+
+      menu_common_copy = '~M~ sol s';
+      menu_common_contents = '~T~artalom';
+      menu_common_index = '~I~ndex';
+      menu_common_topicsearch = 'T‚ma ~k~eres‚se';
+      menu_common_prevtopic = '~E~l‹z‹ t‚ma';
+
+      menu_key_common_helpindex = 'Shift+F1';
+      menu_key_common_topicsearch = 'Ctrl+F1';
+      menu_key_common_prevtopic = 'Alt+F1';
+      menu_key_common_copy = 'Ctrl+Ins';
+
+      { Symbol browser tabs }
+      label_browsertab_scope = 'S';
+      label_browsertab_reference = 'R';
+      label_browsertab_inheritance = 'I';
+      label_browsertab_memory = 'M';
+
+{$ifdef USERESSTRINGS}
+    resourcestring
+{$else}
+    const
+{$endif}
+      { menu entries }
+      menu_file              = '~F~ jl';
+      menu_file_new          = 'é~j~';
+      menu_file_template     = 'éj min~t~a alapj n...';
+      menu_file_open         = 'Meg~n~yit s...';
+      menu_file_save         = '~M~ent‚s';
+      menu_file_saveas       = 'Ment‚~s~ m sk‚nt...';
+      menu_file_saveall      = 'Mindent e~l~ment';
+      menu_file_changedir    = 'K”nyvt r~v~ lt s...';
+      menu_file_dosshell     = '~D~OS parancssor';
+      menu_file_exit         = '~K~il‚p‚s';
+
+      menu_edit              = 'S~z~erk.';
+      menu_edit_copywin      = 'M ~s~ol s Windows-b¢l';
+      menu_edit_pastewin     = 'B~e~illeszt‚s ~W~indows-ba';
+      menu_edit_undo         = '~V~isszavon s';
+      menu_edit_redo         = 'M‚~g~is';
+      menu_edit_cut          = '~K~iv g s';
+      menu_edit_copy         = menu_common_copy;
+      menu_edit_paste        = '~B~eilleszt‚s';
+      menu_edit_clear        = '~T~”rl‚se';
+      menu_edit_showclipboard= 'V g¢l~a~p megjelen¡t‚se';
+
+      menu_search            = '~K~eres‚s';
+      menu_search_find       = '~K~eres‚s...';
+      menu_search_replace    = 'C~s~ere...';
+      menu_search_searchagain= '~I~sm‚telt keres‚s';
+      menu_search_jumpline   = 'U~g~r s sorra...';
+      menu_search_findproc   = '~E~lj r s keres‚se...';
+      menu_search_objects    = '~O~bjektumok';
+      menu_search_modules    = 'Mod~u~lok';
+      menu_search_globals    = 'G~l~ob lis azonos¡t¢k';
+      menu_search_symbol     = 'S~z~imb¢lum...';
+
+      menu_run               = 'F~u~t s';
+      menu_run_run           = '~F~uttat s';
+      menu_run_stepover      = 'µ~t~l‚p‚s';
+      menu_run_traceinto     = '~L~‚p‚senk‚nti futtat s';
+      menu_run_conttocursor  = 'Futtat s a ~k~urzorig';
+      menu_run_untilreturn   = 'Futtat s ~v~isszat‚r‚sig';
+      menu_run_parameters    = 'P~a~ram‚terek...';
+      menu_run_resetdebugger = '~P~rogram alap llapotba';
+
+      menu_compile           = 'Fo~r~d¡t s';
+      menu_compile_compile   = '~F~ord¡t s';
+      menu_compile_make      = '~K~‚sz¡t‚s';
+      menu_compile_build     = '�~p~¡t‚s';
+      menu_compile_target    = '~C~‚l...';
+      menu_compile_primaryfile = '~E~ls‹dleges f jl...';
+      menu_compile_clearprimaryfile = 'E~l~s‹dleges f jl t”rl‚se';
+      menu_compile_information = '~I~nform ci¢...';
+      menu_compile_compilermessages = 'F~o~rd¡t si �zenetek';
+
+      menu_debug             = '~D~ebug';
+      menu_debug_output      = '~K~imenet';
+      menu_debug_userscreen  = '~F~elhaszn l¢i k‚perny‹';
+      menu_debug_breakpoint  = '~T~”r‚spont';
+      menu_debug_callstack   = '~H~¡v si verem';
+      menu_debug_registers   = '~R~egiszterek';
+      menu_debug_addwatch    = 'N‚z‹ke hozz ~a~d sa';
+      menu_debug_watches     = '~N~‚z‹k‚k';
+      menu_debug_breakpointlist = 'T”r‚spontok ~l~ist ja';
+      menu_debug_gdbwindow   = '~G~DB ablak';
+
+      menu_tools             = '~E~szk”z';
+      menu_tools_messages    = 'š~z~enetek';
+      menu_tools_msgnext     = 'Ugr s a ~k~”vetkez‹re';
+      menu_tools_msgprev     = 'Ugr s az ~e~l‹z‹re';
+      menu_tools_grep        = '~G~rep';
+      menu_tools_calculator  = '~S~z mol¢g‚p';
+      menu_tools_asciitable  = 'Ascii ~t~ bla';
+
+      menu_options           = '~O~pci¢k';
+      menu_options_mode      = 'M¢d~.~..';
+      menu_options_compiler  = '~F~ord¡t¢...';
+      menu_options_memory    = '~M~em¢ria-m‚retek...';
+      menu_options_linker    = '~L~inker...';
+      menu_options_debugger  = 'De~b~ugger...';
+      menu_options_directories = '~K~”nyvt rak...';
+      menu_options_browser   = '~T~all¢z¢...';
+      menu_options_tools     = '~E~szk”z”k...';
+      menu_options_env       = 'K”~r~nyezet';
+      menu_options_env_preferences = '~B~e ll¡t sok...';
+      menu_options_env_editor= 'S~z~erkeszt‹...';
+      menu_options_env_codecomplete = 'Code~C~omplete...';
+      menu_options_env_codetemplates = 'Code~T~emplates...';
+      menu_options_env_desktop = '~A~sztal...';
+      menu_options_env_mouse = 'E~g~‚r...';
+      menu_options_env_startup = '~I~ndul s...';
+      menu_options_env_colors= 'Sz¡~n~ek';
+      menu_options_open      = 'Megn~y~it s...';
+      menu_options_save      = 'Ment‚~s~';
+      menu_options_saveas    = 'Ment‚s m~ ~sk‚nt...';
+
+      menu_window            = '~A~blak';
+      menu_window_tile       = '~M~ozaikszerû elrendez‚s';
+      menu_window_cascade    = 'µ~t~lapol s';
+      menu_window_closeall   = 'Mindent ~b~ez r';
+      menu_window_resize     = 'M‚~r~etez‚s/Mozgat s';
+      menu_window_zoom       = '~N~agy¡t s';
+      menu_window_next       = '~K~”vetkez‹';
+      menu_window_previous   = '~E~l‹z‹';
+      menu_window_close      = 'Be~z~ r s';
+      menu_window_list       = '~L~ista...';
+      menu_window_update     = 'Megjelen¡t‹ ~f~riss¡t‚se';
+
+      menu_help              = '~S~£g¢';
+      menu_help_contents     = menu_common_contents;
+      menu_help_index        = menu_common_index;
+      menu_help_topicsearch  = menu_common_topicsearch;
+      menu_help_prevtopic    = menu_common_prevtopic;
+      menu_help_using        = 'S£g¢ ~h~aszn lata';
+      menu_help_files        = '~F~ jlok...';
+      menu_help_about        = '~N~‚vjegy...';
+
+      { Breakpoints window local menu items }
+      menu_bplocal_gotosource  = menu_local_gotosource;
+      menu_bplocal_editbreakpoint = 'T”r‚spont s~z~erkeszt‚se';
+      menu_bplocal_newbreakpoint = 'é~j~ t”r‚spont';
+      menu_bplocal_deletebreakpoint = 'T”r‚spont ~t~”rl‚se';
+      menu_bplocal_togglestate = 'µllapot ~v~ lt sa';
+
+      { Watches local menu items }
+      menu_watchlocal_edit = 'N‚z‹ke s~z~erkeszt‚se';
+      menu_watchlocal_new = 'é~j~ n‚z‹ke';
+      menu_watchlocal_delete = 'N‚z‹ke ~t~”rl‚se';
+
+      { Symbol view local menu items }
+      menu_symlocal_browse = '~T~alloz s';
+      menu_symlocal_gotosource = menu_local_gotosource;
+      menu_symlocal_tracksource = menu_local_tracksource;
+      menu_symlocal_options = menu_local_options;
+
+      { Source editor local menu items }
+      menu_srclocal_openfileatcursor = 'Kurzor alatti ~f~ jl megnyit sa';
+      menu_srclocal_browseatcursor = 'Kurzor alatt ~s~zimb¢lum tall¢z sa';
+      menu_srclocal_topicsearch = 'T‚ma ~k~eres‚se';
+      menu_srclocal_options = menu_local_options;
+
+      { Help viewer local menu items }
+      menu_hlplocal_contents = menu_common_contents;
+      menu_hlplocal_index = menu_common_index;
+      menu_hlplocal_topicsearch = menu_common_topicsearch;
+      menu_hlplocal_prevtopic = menu_common_prevtopic;
+      menu_hlplocal_copy = menu_common_copy;
+
+      { Messages local menu items }
+      menu_msglocal_clear = menu_local_clear;
+      menu_msglocal_gotosource = menu_local_gotosource;
+      menu_msglocal_tracksource = menu_local_tracksource;
+
+      { short cut entries in menu }
+      menu_key_file_open     = 'F3';
+      menu_key_file_save     = 'F2';
+      menu_key_file_exit     = 'Alt+X';
+
+      menu_key_edit_undo     = 'Alt+BkSp';
+      menu_key_edit_cut      = 'Shift+Del';
+      menu_key_edit_copy     = menu_key_common_copy;
+      menu_key_edit_paste    = 'Shift+Ins';
+      menu_key_edit_clear    = 'Ctrl+Del';
+
+      menu_key_run_run       = 'Ctrl+F9';
+      menu_key_run_stepover  = 'F8';
+      menu_key_run_traceinto = 'F7';
+      menu_key_run_conttocursor = 'F4';
+      menu_key_run_resetdebugger = 'Ctrl+F2';
+
+      menu_key_compile_compile = 'Alt+F9';
+      menu_key_compile_make = 'F9';
+      menu_key_compile_compilermessages = 'F12';
+
+      menu_key_debug_userscreen = 'Alt+F5';
+      menu_key_debug_breakpoint = 'Ctrl+F8';
+      menu_key_debug_callstack = 'Ctrl+F3';
+      menu_key_debug_addwatch = 'Ctrl+F7';
+
+      menu_key_tools_messages= 'F11';
+      menu_key_tools_msgnext = 'Alt+F8';
+      menu_key_tools_msgprev = 'Alt+F7';
+      menu_key_tools_grep    = 'Shift+F2';
+
+      menu_key_window_resize = 'Ctrl+F5';
+      menu_key_window_zoom   = 'F5';
+      menu_key_window_next   = 'F6';
+      menu_key_window_previous = 'Shift+F6';
+      menu_key_window_close  = 'Alt+F3';
+      menu_key_window_list   = 'Alt+0';
+
+      menu_key_help_helpindex= menu_key_common_helpindex;
+      menu_key_help_topicsearch = menu_key_common_topicsearch;
+      menu_key_help_prevtopic= menu_key_common_prevtopic;
+
+      menu_key_hlplocal_index = menu_key_common_helpindex;
+      menu_key_hlplocal_topicsearch = menu_key_common_topicsearch;
+      menu_key_hlplocal_prevtopic = menu_key_common_prevtopic;
+      menu_key_hlplocal_copy = menu_key_common_copy;
+
+      dialog_openafile        = 'F jl megnyit sa';
+      label_filetoopen        = 'Meg~n~yitand¢ f jl';
+      label_lookingfor        = '%s felkutat sa';
+
+      msg_confirmsourcediradd = 'A %s k”nyvt r nincs a keres‚si £tvonalban. '+
+                                'Hozz adja ?';
+
+      dialog_fillintemplateparameter = 'Minta param‚tereinek megad sa';
+
+      dialog_calculator       = 'Sz mol¢g‚p';
+
+      msg_quitconfirm         = 'Biztosan ki akar l‚pni?';
+
+      { CodeComplete dialog }
+      dialog_codecomplete     = 'CodeComplete';
+      label_codecomplete_keywords = '~K~ulcszavak';
+
+      dialog_codecomplete_add = 'éj kulcssz¢ hozz ad sa';
+      label_codecomplete_add_keyword = 'Kulcssz¢';
+
+      dialog_codecomplete_edit = 'Kulcssz¢ szerkeszt‚se';
+      label_codecomplete_edit_keyword = 'Kulcssz¢';
+
+      { CodeTemplates dialog }
+      dialog_codetemplates_add = 'éj minta hozz ad sa';
+      dialog_codetemplates_edit = 'Minta szerkeszt‚se';
+
+      msg_codecomplete_alreadyinlist = '"%s" m r van a list ban';
+
+      { File|New from template dialog }
+      msg_notemplatesavailable = 'Nincsenek mint k.';
+      dialog_newfromtemplate   = 'éj dokumentum minta alapj n';
+      label_availabletemplates = 'Felhaszn lhat¢ ~m~int k';
+
+      label_codetemplate_shortcut = '~R~”vid¡t‚s';
+      label_codetemplate_content = 'Minta t~a~rtalm';
+      label_codetemplate_templates = '~M~int k';
+
+      dialog_newtemplate = 'éj minta';
+      dialog_modifytemplate = 'Minta szerkeszt‚se';
+      msg_codetemplate_alreadyinlist = '"%s" nevû minta m r van a list ban';
+
+      dialog_compilermessages = 'A ford¡t¢ �zenetei';
+
+      dialog_compilingwithmode = 'Ford¡t s  (%s m¢d)';
+
+      { Breakpoints window }
+      dialog_breakpointlist = 'T”r‚spontok list ja';
+      label_breakpointpropheader = ' T¡pus     | µllapot | Poz¡ci¢           | Ignor. | Felt‚telek ';
+
+      dialog_modifynewbreakpoint = 'T”r‚spont szerkeszt‚se/felv‚tele';
+      label_breakpoint_name = '~N~‚v';
+      label_breakpoint_line = '~S~or';
+      label_breakpoint_conditions = 'Felt‚telek';
+      label_breakpoint_ignorecount = '~I~gnor l sok sz ma';
+
+      { Watches window }
+      dialog_watches = 'N‚z‹k‚k';
+
+      label_watch_expressiontowatch = '~K~ifejez‚s';
+      label_watch_values = 'N‚z‹ke ‚rt‚ke';
+
+      msg_watch_currentvalue = 'Aktu lis ‚rt‚k: '+#13+
+                               '%s';
+      msg_watch_currentandpreviousvalue = 'Aktu lis ‚rt‚k: '+#13+
+                                          '%s'+#13+
+                                          'El‹z‹ ‚rt‚k: '+#13+
+                                          '%s';
+
+      dialog_registers = 'Regiszterek';
+
+      dialog_fpu = 'FPU  llapota';
+
+      dialog_callstack = 'H¡v si verem';
+
+      dialog_help = 'S£g¢';
+      msg_modalhelpnotimplemented = 'A mod lis s£g¢ m‚g nincs implement lva.';
+
+      dialog_browse = 'Tall¢z s: %s';
+      dialog_units = 'Modulok';
+
+      dialog_browsesymbol = 'Szimb¢lum tall¢z sa';
+      label_entersymboltobrowse = 'Tall¢zand¢ ~s~zimb¢lum';
+
+      dialog_gdbwindow = 'GDB ablak';
+
+      dialog_clipboard = 'V g¢lap';
+
+      dialog_userscreen = 'Felhaszn l¢i k‚perny‹';
+
+      dialog_messages = 'šzenetek';
+
+      dialog_memorysizes = 'Mem¢ria-m‚retek';
+
+      dialog_directories = 'K”nyvt rak';
+
+      dialog_programparameters = 'Program param‚terei';
+      label_parameters_parameter = '~P~aram‚terek';
+
+      dialog_openoptions = 'Opci¢k bet”lt‚se';
+      msg_cantopenconfigfile = 'Nem tudom megnyitni a konfigur ci¢s f jlt.';
+      msg_errorsavingconfigfile = 'Hiba a konfigur ci¢s f jl ment‚se k”zben.';
+
+      dialog_saveoptions = 'Opci¢k ment‚se';
+
+      dialog_preferences = 'Be ll¡t sok';
+      label_preferences_videomode = 'Vide¢-m¢d';
+      label_preferences_currentdirectory = 'Akt~u~ lis k”nyvt r';
+      label_preferences_configdirectory = 'Konf~i~g. f jl k”nyvt ra';
+      label_preferences_desktopfile = 'Asztal-f jl';
+      label_preferences_editorfiles = 'Szerkesztett ~f~ jlok';
+      label_preferences_environment = 'K”rny~e~zet';
+      label_preferences_desktop = 'As~z~tal';
+      label_preferences_autosave = 'Automatikus ment‚s';
+      label_preferences_autotracksource = 'Forr s ~a~utom. k”vet‚se';
+      label_preferences_closeongotosource = 'Bez~ ~r s ugr skor';
+      label_preferences_changedironopen = 'K”nyvt r~v~ lt s megyit skor';
+      label_preferences_options = 'Opci¢k';
+
+      dialog_defaulteditoroptions = 'Szerkeszt‹ alap‚rt‚keinek be ll¡t sa';
+      dialog_editoroptions = 'Szerkeszt‹ be ll¡t sa';
+      label_editor_backupfiles = 'Biztons gi ~f~ jlok';
+      label_editor_insertmode = 'Besz£r s~i~ m¢d';
+      label_editor_autoindentmode = '~A~uto-bekezd‚s m¢d';
+      label_editor_usetabcharacters = 'Tab-karakterek has~z~n lata';
+      label_editor_backspaceunindents = '~B~acksp. t”rli a beh£z st';
+      label_editor_persistentblocks = 'Ta~r~t¢s blokkok';
+      label_editor_syntaxhighlight = '~S~zintakszis-kiemel‚s';
+      label_editor_blockinsertcursor = 'B~l~okk alak£ besz£r¢ kurzor';
+      label_editor_verticalblocks = '~F~�gg‹leges blokkok';
+      label_editor_highlightcolumn = 'Oszlop kiemel~‚~se';
+      label_editor_highlightrow = 'So~r~ kiemel‚se';
+      label_editor_autoclosingbrackets = 'Aut~o~matikus z r¢jelez‚se';
+      label_editor_keeptrailingspaces = 'Z r¢ sz”~k~”z”k megtart sa';
+      label_editor_codecomplete = 'Co~d~eComplete enged‚lyezve';
+      label_editor_editoroptions = 'Sz~e~rkeszt‹ opci¢k';
+      label_editor_tabsize = '~T~ab m‚rete';
+      label_editor_highlightextensions = 'Kieme~l~‚s a k”vetkez‹ kiterjeszt‚sek eset‚n';
+      label_editor_filepatternsneedingtabs = 'File ~p~atterns needing tabs';
+
+      dialog_browseroptions = 'Tall¢z¢ be ll¡t sai';
+      dialog_localbrowseroptions = 'Helyi tall¢z¢ be ll¡t sai';
+      label_browser_labels = '~C~¡mk‚k';
+      label_browser_constants = '~K~onstansok';
+      label_browser_types = '~T~¡pusok';
+      label_browser_variables = '~V~ ltoz¢k';
+      label_browser_procedures = '~E~lj r sok';
+      label_browser_inherited = '™~r~”kl‚sek';
+      label_browser_symbols = 'Szimb¢lumok';
+      label_browser_newbrowser = 'é~j~ tall¢z¢';
+      label_browser_currentbrowser = 'Aktu lis cse~r~‚je';
+      label_browser_subbrowsing = 'Al-tall¢z s';
+      label_browser_scope = '~H~at¢k”r';
+      label_browser_reference = 'H~i~vatkoz sok';
+      label_browser_preferredpane = 'Alap lap';
+      label_browser_qualifiedsymbols = '~Q~ualified symbols';
+      label_browser_sortsymbols = '~M~indig rendez';
+      label_browser_display = 'Megjelen¡t‚s';
+
+      dialog_desktoppreferences = 'Asztal be ll¡t sai';
+      label_desktop_historylists = '~E~l‹zm‚nyek';
+      label_desktop_clipboard = '~V~ g¢lap tartalma';
+      label_desktop_watches = '~N~‚z‹k‚k';
+      label_desktop_breakpoints = '~T~”r‚spontok';
+      label_desktop_openwindow = 'N~y~itott ablakok';
+      label_desktop_symbolinfo = '~S~zimb¢lum-inform ci¢';
+      label_desktop_codecompletewords = 'Co~d~eComplete sz¢lista';
+      label_desktop_codetemplates = 'Code~T~emplates';
+      label_desktop_preservedacrosssessions = 'Menete~k~ k”z”tt meg‹rz‚sre ker�l';
+
+      dialog_mouseoptions = 'Eg‚r be ll¡t sai';
+      label_mouse_speedbar = 'Gyors     K”zepes     Lass£';
+      label_mouse_doubleclickspeed = '~E~g‚r dupla-kattint sok';
+      label_mouse_reversebuttons = 'Felcser‚lt eg‚~r~gombok';
+      label_mouse_crtlrightmousebuttonaction = 'Ctrl+Jobb eg‚rgomb';
+      label_mouse_altrightmousebuttonaction = 'Alt+Jobb eg‚rgomb';
+      label_mouse_act_nothing = 'S~e~mmi';
+      label_mouse_act_topicsearch = '~T~‚ma keres‚se';
+      label_mouse_act_gotocursor = '~G~o to cursor';
+      label_mouse_act_breakpoint = 'T~”~r‚spont';
+      label_mouse_act_evaluate = '~K~i‚rt‚kel‚s';
+      label_mouse_act_addwatch = 'N‚z‹ke hozz ~a~d sa';
+      label_mouse_act_browsesymbol = '~S~zimb¢lum tall¢z sa';
+
+      label_colors_grp_browser = 'Tall¢z¢';
+      label_colors_framepassive = 'Passz¡v keret';
+      label_colors_frameactive = 'Akt¡v keret';
+      label_colors_frameicon = 'Keret ikon';
+      label_colors_scrollbarpage = 'G”rget‹s v oldal';
+      label_colors_scrollbaricons = 'G”rget‹s v ikon';
+      label_colors_normaltext = 'Norm l sz”veg';
+      label_colors_selectedtext = 'Kiv lasztott sz”veg';
+      label_colors_activeitem = 'Akt¡v elem';
+      label_colors_inactiveitem = 'Inakt¡v elem';
+      label_colors_focuseditem = 'F¢kusz lt elem';
+      label_colors_selecteditem = 'Kiv lasztott elem';
+      label_colors_divider = 'Oszt¢';
+      label_colors_grp_clock = 'àra';
+      label_colors_clockview = 'àra elem';
+      label_colors_grp_desktop = 'Asztal';
+      label_colors_grp_dialogs = 'P rbesz‚dablakok';
+      label_colors_grp_editor = 'Szerkeszt‹';
+      label_colors_highlighcolumn = 'Oszlop kiemel‚se';
+      label_colors_highlightrow = 'Sor kiemel‚se';
+      label_colors_errormessages = 'Hiba�zenetek';
+      label_colors_grp_help = 'S£g¢';
+      label_colors_helptext = 'S£g¢ sz”veg';
+      label_colors_helplinks = 'S£g¢ kapcsok';
+      label_colors_selectedlink = 'Kiv lasztott kapocs';
+      label_colors_grp_menus = 'Men�k';
+      label_colors_grp_syntax = 'Szintakszis';
+      label_colors_whitespace = 'Sz¢k”z';
+      label_colors_comments = 'Megjegyz‚sek';
+      label_colors_reservedwords = 'Fenntartott szavak';
+      label_colors_identifiers = 'Azonos¡t¢k';
+      label_colors_strings = 'Karakterl ncok';
+      label_colors_numbers = 'Sz mok';
+      label_colors_hexnumbers = 'Hexa sz mok';
+      label_colors_assembler = 'Assembler';
+      label_colors_symbols = 'Szimb¢lumok';
+      label_colors_directives = 'Direkt¡v k';
+      label_colors_tabs = 'Tabul torok';
+
+      dialog_linker = 'Linker';
+      label_linker_preferredlibtype = 'Preferr lt k”nyvt r-t¡pus';
+
+      dialog_debugger = 'Tall¢z s/Debugging/Profiling';
+      label_debugger_debuginfo = 'Debugging inform ci¢';
+      label_debugger_profileswitches = 'Profiling kapcsol¢k';
+      label_debugger_compilerargs = 'Tov~ ~bbi ford¡t si kapcsol¢k';
+      label_debugger_useanotherconsole = 'M sik konzol h~a~szn lata';
+      label_debugger_redirection = 'Debuggolt prog.  ti~r~ nyt¡s sa';
+      label_debugger_useanothertty = 'M sik tty h~a~szn lata';
+
+      dialog_helpfiles = 'S£g¢-f jlok telep¡t‚se';
+      label_helpfiles_helpfiles = '~S~£g¢-f jlok';
+
+      dialog_installhelpfile = 'S£g¢-f jl telep¡t‚se';
+      label_installhelpfile_filename = '~S~£g¢-f jl neve';
+
+      msg_createkeywordindexforhelpfile = 'Indexeljem a s£g¢ f jlt?';
+
+      dialog_topictitle = 'T‚ma c¡me';
+      label_topictitle_title = 'C¡m';
+
+      msg_pleasewaitwhilecreatingindex = 'K‚rem v rjon am¡g az index elk‚sz�l...';
+      msg_buildingindexfile = 'A %s index-f jl k‚sz¡t‚se folyamatban';
+      msg_filedoesnotcontainanylinks = 'a %s nem tartalmaz kapcsokat, ¡gy nem alkalmas indexel‚sre.';
+      msg_filealreadyexistsoverwrite = 'A %s f jl m r l‚tezik. Fel�l¡rja?';
+      msg_storinghtmlindexinfile = 'HTML index t rol sa a %s f jlban';
+      msg_errorstoringindexdata = 'Hiba az index adatok t rol sa k”zben';
+
+      dialog_switchesmode = 'SwitchesMode';
+      static_switchesmode_switchesmode = 'Switches Mode';
+
+      dialog_compilerswitches = 'Ford¡t¢ kapcsol¢k';
+      label_compiler_syntaxswitches = 'Szintaktikai kapcsol¢k';
+      label_compiler_runtimechecks = 'Fut s-idejû ellen‹rz‚sek';
+      label_compiler_optimizations = 'Optimaliz ci¢k';
+      label_compiler_targetprocessor = 'C‚l-processzor';
+      label_compiler_verboseswitches = 'Verbose kapcsol¢k';
+      label_compiler_browser = 'Tall¢z¢';
+      label_compiler_assemblerreader = 'Assembler olvas¢';
+      label_compiler_assemblerinfo = 'Assembler inf¢';
+      label_compiler_assembleroutput = 'Assembler kimenet';
+      page_compiler_syntax = 'Sz~i~ntaxis';
+      page_compiler_codegeneration = 'K¢d-~g~ener ci¢';
+      page_compiler_verbose = '~V~erbose';
+      page_compiler_browser = '~T~all¢z¢';
+      page_compiler_assembler = '~A~ssembler';
+
+      dialog_target = 'C‚l';
+      label_target_platform = 'C‚l-platform';
+
+      label_primaryfile_primaryfile = 'Els‹dleges f jl';
+
+      { About window }
+      dialog_about = 'N‚vjegy';
+      label_about_compilerversion = 'Ford¡t¢ verzi¢';
+      label_about_debugger = 'Debugger';
+
+      { Program info window }
+      dialog_programinformation = 'Program inform ci¢';
+      label_proginfo_currentmodule = 'Aktu lis modul';
+      label_proginfo_lastexitcode = 'Utols¢ kil‚p‚si k¢d';
+      label_proginfo_availablememory = 'Szabad mem¢ria';
+
+      { Tools }
+      dialog_tools = 'Eszk”z”k';
+      label_tools_programtitles = '~P~rogram c¡mek';
+      dialog_modifynewtool = 'Eszk”z szerkeszt‚se/felv‚tele';
+      label_toolprop_title = '~C~¡m';
+      label_toolprop_programpath = '~P~rogram el‚r‚si £tja';
+      label_toolprop_commandline = 'Parancs~s~or';
+      msg_errorparsingparametersatpos = ^C'Hiba a param‚terek ‚rtelmez‚se k”zen a %d. karaktern‚l.';
+      msg_cantinstallmoretools = ^C'T”bb eszk”z nem vehet‹ fel...';
+      msg_requiredparametermissingin = 'Egy k”telez‹ param‚ter hi nyzik [%s] szekci¢ban';
+      msg_requiredpropertymissingin = 'Egy k”telez‹ jellemz‹ hi nyzik a [%s] szekci¢ban';
+      msg_unknowntypein = 'Ismeretlen t¡pus a [%s] szekci¢ban';
+      msg_propertymissingin = 'A %s jellemz‹ hi nyzik a [%s] szekci¢b¢l';
+      msg_invaliditemsin = '�rv‚nytelen elemsz m a [%s] szekci¢ban';
+      msg_errorparsingtoolparams = ^C'Hiba a param‚terek ‚rtelmez‚se k”zben.';
+      msg_executingtool = 'A %s eszk”z futtat sa...';
+      msg_errorreadingoutput = 'Hiba a kimenet olvas sa k”zben.';
+      msg_executingfilterfor = 'Szûr‹ futtat sa a %s eszk”zh”z...';
+      msg_cantfindfilteredoutput = 'Nem tal lom a szûr‹ kimenet‚t.';
+      msg_errorprocessingfilteredoutput = 'Hiba a szûrt kimenet feldolgoz sa k”zben.';
+      msg_errorexecutingfilter = 'Hiba a szûr‹ futtat sa k”zben'; {%s}
+      msg_errorexecutingtool = 'Hiba a %s eszk”z futtat sa k”zben';
+      msg_filterexecutionsuccessfulexitcodeis = 'Szûr‹ futtat sa sikeres. Kil‚p‚si k¢d = %d';
+      msg_toolexecutionsuccessfulexitcodeis = 'Eszk”z futtat sa sikeres. Kil‚p‚si k¢d = %d';
+
+      dialog_greparguments = 'Grep param‚terei';
+      msg_grepprogramnotfound = 'Nem tal lom a Grep programot';
+      label_grep_texttofind = 'K~e~resend‹ sz”veg';
+      label_grep_greparguments = '~G~rep param‚terei';
+      msg_runninggrepwithargs = '"Grep -n %s" futtat sa';
+      msg_errorrunninggrep = #3'Hiba a Grep futtat sa k”zben'#13#3'DosError = %d'#13#3'Kil‚p‚si k¢d = %d';
+      msg_errorreadinggrepoutput = #3'Hiba Grep kimenet olvas sa'#13#3'k”zben a %d. sorban. (%s)';
+
+      dialog_windowlist = 'Ablakok list ja';
+      label_wndlist_windows = '~A~blakok';
+
+      msg_userscreennotavailable = 'A felhaszn l¢i k‚perny‹ nem el‚rhet‹.';
+
+      { Tools $PROMPT() dialog }
+      dialog_programarguments = 'Program param‚terei';
+      label_enterprogramargument = '’rja b~e~ a program param‚tereit';
+
+      { Debugger confirmations and messages }
+      msg_nodebuginfoavailable = 'Nincs debug inform ci¢.';
+      msg_nodebuggersupportavailable = 'Debugger t mogat s nem el‚rhet‹.';
+      msg_cantdebugchangetargetto = #3'A %s platformra ford¡tott'#13+
+                                    #3'programok nem debuggolhat¢k.'#13+
+                                    #3'A c‚lt ink bb %s-ra v ltoztatja?';
+      msg_compiledwithoutdebuginforecompile =
+                                 #3'Figyelem, a program'#13+
+                                 #3'debug inform ci¢ n‚lk�l'#13+
+                                 #3'lett ford¡tva.'#13+
+                                 #3'éjraford¡tja?';
+      msg_nothingtodebug = 'Hopp , nincs mit debuggolni.';
+      msg_startingdebugger = 'Debugger ind¡t sa';
+
+      { Desktop file messages }
+      msg_readingdesktopfile = 'Asztal-f jl olvas sa...';
+      msg_writingdesktopfile = 'Asztal-f jl ¡r sa...';
+      msg_readingdesktopcontents = 'Asztal tartalm nak olvas sa...';
+      msg_storingdesktopcontents = 'Asztal tartalm nak ¡r sa...';
+      msg_readinghistory = 'El‹zm‚nyek olvas sa...';
+      msg_storinghistory = 'El‹zm‚nyek t rol sa...';
+      msg_readingwatches = 'N‚z‹k‚k olvas sa...';
+      msg_storingwatches = 'N‚z‹k‚k t rol sa...';
+      msg_readingbreakpoints = 'T”r‚spontok olvas sa...';
+      msg_storingbreakpoints = 'T”r‚spontok t rol sa...';
+      msg_readingcodecompletewordlist = 'CodeComplete sz¢lista olvas sa...';
+      msg_storingcodecompletewordlist = 'CodeComplete sz¢lista t rol sa...';
+      msg_readingcodetemplates = 'CodeTemplate-ek olvas sa...';
+      msg_storingcodetemplates = 'CodeTemplate-ek t rol sa...';
+      msg_readingsymbolinformation = 'Szimb¢lum-inform ci¢ olvas sa...';
+      msg_storingsymbolinformation = 'Szimb¢lum-inform ci¢ t rol sa...';
+      msg_failedtoreplacedesktopfile = 'Nem siker�lt az asztal-f jlt lecser‚lni.';
+      msg_errorloadinghistory = 'Hiba az el‹zm‚nyek bet”lt‚se k”zben';
+      msg_errorstoringhistory = 'Hiba az el‹zm‚nyek t rol sa k”zben';
+      msg_errorloadingwatches = 'Hiba a n‚z‹k‚k bet”lt‚se k”zben';
+      msg_errorstoringwatches = 'Hiba a n‚z‹k‚k t rol sa k”zben';
+      msg_errorloadingbreakpoints = 'Hiba a t”r‚spontok olvas sa k”zben';
+      msg_errorstoringbreakpoints = 'Hiba a t”r‚spontok t rol sa k”zben';
+      msg_errorloadingdesktop = 'Hiba az asztal bet”lt‚se k”zben';
+      msg_errorstoringdesktop = 'Hiba az asztal t rol sa k”zben';
+      msg_errorreadingflags = 'Hiba a flagek bet”lt‚se k”zben';
+      msg_errorwritingflags = 'Hiba a flagek ¡r sa k”zben';
+      msg_errorreadingvideomode = 'Hiba a vide¢-m¢d olvas sa k”zben';
+      msg_errorstoringvideomode = 'Hiba a vide¢-m¢d ¡r sa k”zben';
+      msg_errorloadingcodetemplates = 'Hiba a CodeTemplate-ek olvas sa k”zben';
+      msg_errorstoringcodetemplates = 'Hiba a CodeTemplate-ek ¡r sa k”zben';
+      msg_errorloadingsymbolinformation = 'Hiba a szimb¢lum-inform ci¢ olvas sa k”zben';
+      msg_errorstoringsymbolinformation = 'Hiba a szimb¢lum-inform ci¢ ¡r sa k”zben';
+      msg_errorloadingcodecompletewordlist = 'Hiba a CodeComplete sz¢lista olvas sa k”zben';
+      msg_errorstoringcodecompletewordlist = 'Hiba a CodeComplete sz¢lista ¡r sa k”zben';
+      msg_invaliddesktopversionlayoutlost = '�rv‚nytelen asztal verzi¢. Az asztal tartalma elveszett.';
+
+      msg_cantopenfile = 'Nem tudom megnyitni a %s f jlt';
+      msg_cantcreatefile = 'Nem tudom l‚trehozni a %s f jlt';
+      msg_cantfindfile = 'Nem tal lom a %s f jlt';
+      msg_errorreadingfile = 'Hiba a %s f jl olvas sa k”zben';
+      msg_loadingfile = '%s bet”lt‚se';
+      msg_storingfile = '%s t rol sa';
+      msg_closingfile = '%s bez r sa';
+      msg_invalidfilename = 'A %s ‚rv‚nytelen f jln‚v';
+
+      msg_openingsourcefile = 'Forr sf jl megnyit sa... (%s)';
+      msg_readingfileineditor = '%s beolvas sa a szerkeszt‹be...';
+
+      label_sym_objects = 'Objektumok';
+      label_sym_globalscope = 'Glob lis hat¢k”r';
+      label_sym_globals = 'Glob lis elemek';
+
+      { Symbol browser meminfo page }
+      msg_sizeinmemory = 'M‚ret a mem¢ri ban';
+      msg_sizeonstack = 'M‚ret a vermen';
+
+      { Help messages }
+      msg_indexingfile = '%s f jl indexel‚se';
+      msg_loadinghelpfiles = 'S£g¢ f jlok bet”lt‚se...';
+      msg_loadinghelpfile = 'S£g¢ f jl bet”lt‚se...';
+      msg_buildinghelpindex = 'S£g¢index k‚sz¡t‚se...';
+      msg_locatingtopic = 'T‚ma bet”lt‚se...';
+
+      { Browser messages }
+      msg_symbolnotfound = #3'Nem tal lom a %s szimb¢lumot';
+      msg_nobrowserinfoavailable = 'Nincs tall¢z si inform ci¢';
+      msg_toomanysymbolscantdisplayall= 'T£l sok szimb¢lum. Nem tudom mindet megjelen¡teni.';
+
+      { Status hints during compilation }
+      msg_hint_pressesctocancel = 'Nyomjon ESC-et a megszak¡t shoz';
+      msg_hint_compilesuccessfulpressenter = 'A ford¡t s sikeres: ~Nyomjon Enter-t~';
+      msg_hint_compilefailed = 'A ford¡t s sikertelen';
+      msg_hint_compileaborted = 'A ford¡t s megszak¡tva';
+      msg_hint_pleasewait = 'K‚rem v rjon...';
+
+      { Compile status dialog texts }
+      msg_compilingfile      = 'Ford¡t s alatt %s';
+      msg_linkingfile        = 'Linkel‚s alatt %s';
+      msg_compiledone        = 'K‚sz.';
+      msg_failedtocompile    = 'Nem siker�lt leford¡tani...';
+      msg_compilationaborted = 'A ford¡t s megszak¡tva...';
+
+      msg_nothingtocompile = 'Hopp , nincs mit ford¡tani.';
+      msg_cantcompileunsavedfile = 'El nem mentett f jlt nem tudok ford¡tani.';
+
+      msg_couldnotcreatefile = 'A %s f jl l‚trehoz sa nem siker�lt';
+      msg_therearemoreerrorsinfile = 'A %s f jlban t”bb hiba is tal lhat¢';
+      msg_firstcompilationof = 'A %s els‹ ford¡t sa';
+      msg_recompilingbecauseof = 'éjraford¡t sa %s miatt';
+
+      msg_errorinexternalcompilation = 'Hiba a k�ls‹ ford¡t s k”zben';
+      msg_iostatusis = 'IOStatus = %d';
+      msg_executeresultis = 'ExecuteResult = %d';
+
+      msg_nothingtorun = 'Hopp , nincs mit futtatni.';
+
+      msg_impossibletoreachcursor = 'A kurzor-poz¡ci¢ra sosem ker�l a vez‚rl‚s';
+      msg_impossibletosetbreakpoint = 'Itt nem helyezhet‹ el t”r‚spont';
+
+      msg_programnotrundoserroris = #3'A %s programot'#13#3'nem siker�lt futtatni'#13#3'DosError = %d';
+      msg_programfileexitedwithexitcode = #3'A %s program'#13#3'kil‚pett '#13#3'exitcode = %d';
+
+      msg_automaticallycreateddontedit = 'Automatikusan l‚trehozott f jl, ne szerkessze!';
+
+      { Compiler options }
+      opt_delphi2extensions = '~D~elphi 2 b‹v¡t‚sek be';
+      opt_clikeoperators = '~C~-szerû oper torok';
+      opt_stopafterfirsterror = 'S~t~op az els‹ hiba ut n';
+      opt_allowlabelandgoto = 'LABEL, GOTO enged‚l~y~ezve';
+      opt_cplusplusstyledinline = 'C++ st~¡~lus£ inline';
+      opt_globalcmacros = 'Glob lis C ~m~akr¢k';
+      opt_tp7compatibility = 'TP/BP ~7~.0 kompatibilit s';
+      opt_delphicompatibility = 'Del~p~hi kompatibilit s';
+      opt_allowstaticinobjects = 'STATIC enged‚~l~yez‚se az objektumokban';
+      opt_strictvarstrings = 'Szigor£an vett ~v~ar-sztringek';
+      opt_extendedsyntax = 'Ki~t~erjesztett szintakszis';
+      opt_allowmmxoperations = 'MMX mûv~e~letek enged‚lyez‚se';
+      { Verbose options }
+      opt_warnings = '~F~igyelmeztet‚sek';
+      opt_notes = 'Meg~j~egyz‚sek';
+      opt_hints = '~T~ippek';
+      opt_generalinfo = 'µltal nos ~i~nf¢';
+      opt_usedtriedinfo = '~H~aszn lt, pr¢b lt inf¢';
+      opt_all = '~M~inden';
+      opt_showallprocsonerror = 'Hiba eset‚n az ~”~sszes elj r s megmutat sa';
+      { Checking options }
+      opt_rangechecking = 'Hat ~r~-ellen‹rz‚s';
+      opt_stackchecking = 'Veremviz~s~g lat';
+      opt_iochecking = '~I~/O ellen‹rz‚s';
+      opt_overflowchecking = 'Eg‚szek t£lcs~o~rdul s-vizsg lata';
+      { Code options }
+      opt_generatefastercode = '~G~yorsabb k¢d gener l sa';
+      opt_generatesmallercode = '~K~isebb k¢d gener l sa';
+      opt_useregistervariables = 'Regisz~t~er-v ltoz¢k haszn lata';
+      opt_uncertainoptimizations = '~B~izonztalan optimiz ci¢k';
+      opt_level1optimizations = '~1~.szintû optimiz ci¢k';
+      opt_level2optimizations = '~2~.szintû optimiz ci¢k';
+      opt_i386486 = 'i~3~86/i486';
+      opt_pentiumandmmx = 'Pentium/PentiumMM~X~ (tm)';
+      opt_pentiumpro = 'P~P~ro/PII/c6x86/K6 (tm)';
+      { Assembler options }
+      opt_directassembler = '~D~irekt assembler';
+      opt_attassembler = '~A~T&T st¡lus£ assembler';
+      opt_intelassembler = '~I~ntel st¡lus£ assembler';
+      opt_listsource = 'Forr s ~l~ist z sa';
+      opt_listregisterallocation = '~r~egister-foglal s list.';
+      opt_listtempallocation = ' ~t~meneti foglal s list.';
+      opt_usegnuas = '~G~NU as haszn lata';
+      opt_usenasmcoff = '~N~ASM coff haszn lata';
+      opt_usenasmelf = 'Use NASM ~e~lf haszn lata';
+      opt_usenasmobj = 'Use NASM ~o~bj haszn lata';
+      opt_usemasm = '~M~ASM haszn lata';
+      opt_usetasm = '~T~ASM haszn lata';
+      opt_usecoff = '~c~off haszn lata';
+      opt_usepecoff = '~p~ecoff haszn lata';
+      { Browser options }
+      opt_nobrowser = 'Nincs tall~¢~z¢';
+      opt_globalonlybrowser = 'Cs~a~k glob lis tall¢z¢';
+      opt_localglobalbrowser = '~L~ok lis ‚s glob lis tall¢z¢';
+      { Conditional defines }
+      opt_conditionaldefines = 'Felt‚teles defi~n~¡ci¢k';
+      { Memory sizes }
+      opt_stacksize = '~V~erem-m‚ret';
+      opt_heapsize = '~H~eap-m‚ret';
+      { Directory options }
+      opt_unitdirectories = '~U~nit k”nyvt rak';
+      opt_includedirectories = '~I~nclude k”nyvt rak';
+      opt_librarydirectories = '~L~ibrary k”nyvt rak';
+      opt_objectdirectories = '~O~bject k”nyvt rak';
+      opt_exeppudirectories = '~E~XE & PPU k”nyvt rak';
+      { Library options }
+      opt_dynamiclibraries = '~D~inamikus k”nyvt rak';
+      opt_staticlibraries = '~S~tatikus k”nyvt rak';
+      { Symbol info options }
+      opt_stripalldebugsymbols = 'Debug szimb¢lumok elt vol¡t ~s~a';
+      opt_gendebugsymbolinfo = '~D~ebug szimb¢lum info gener l sa';
+      opt_gensymbolandbacktraceinfo = 'Backtrace sorinfom ci¢ gener ~l~ sa is';
+      { Profiling options }
+      opt_noprofileinfo = '~N~incs profile inform ci¢';
+      opt_gprofinfo = 'Profile inf¢ gener l sa g~p~rof-hoz';
+
+      { Debugger messages and status hints }
+      msg_programexitedwithcodeandsteps = #3'A program kil‚pett '#13+
+                                          #3'exitcode = %d'#13+
+                                          #3'rejtett l‚p‚sek = %d';
+
+      msg_programexitedwithexitcode = #3'A program kil‚pett '#13+
+                                      #3'exitcode = %d';
+
+      msg_runningprogram = 'Futtat s...';
+      msg_runninginanotherwindow = 'Program futtat sa m sik ablakban...';
+      msg_couldnotsetbreakpointat = #3'Nem siker�lt a t”r‚spont felv‚tele'#13+
+                                    #3+'%s:%d';
+      msg_couldnotsetbreakpointtype = #3'Nem siker�lt a t”r‚spont felv‚tele'#13+
+                                      #3+'%s %s';
+
+      { standard button texts }
+      button_OK          = 'O~K~';
+      button_Cancel      = 'M‚gsem';
+      button_New         = 'é~j~';
+      button_Edit        = 'S~z~erk.';
+      button_Delete      = '~T~”rl‚s';
+      button_Close       = 'Be~z~ r';
+
+      { Compiler message classes }
+      msg_class_normal   = '';
+      msg_class_fatal    = 'Fat lis';
+      msg_class_error    = 'Hiba';
+      msg_class_warning  = 'Figyelmeztet‚s';
+      msg_class_note     = 'Megjegyz‚s';
+      msg_class_hint     = 'Tipp';
+      msg_class_macro    = 'Makro';
+      msg_class_procedure= 'Elj r s';
+      msg_class_conditional = 'Conditional';
+      msg_class_info     = 'Info';
+      msg_class_status   = 'St tusz';
+      msg_class_used     = 'Haszn lva';
+      msg_class_tried    = 'Pr¢b lva';
+      msg_class_debug    = 'Debug';
+
+      { status line entries }
+      status_help            = '~F1~ S£g¢';
+      status_help_on_help    = '~F1~ Seg¡ts‚g a s£g¢hoz';
+      status_help_previoustopic = '~Alt+F1~ El‹z‹ t‚ma';
+      status_help_index      = '~Shift+F1~ S£g¢ index';
+      status_help_close      = '~Esc~ S£g¢ bez r sa';
+      status_save            = '~F2~ Ment';
+      status_open            = '~F3~ Megnyit';
+      status_compile         = '~Alt+F9~ Ford¡t';
+      status_make            = '~F9~ K‚sz¡t';
+      status_localmenu       = '~Alt+F10~ Helyi men�';
+      status_transferchar    = '~Ctrl+Enter~ Karakter  tvitele';
+      status_msggotosource   = '~'+EnterSign+'~ Ugr s forr sba';
+      status_msgtracksource  = '~Space~ Forr s k”vet‚se';
+      status_close           = '~Esc~ Bez r';
+      status_calculatorpaste = '~Ctrl+Enter~ Eredm‚ny  tvitele';
+
+      { Menu hints }
+      hint_systemmenu        = 'Rendszermen�';
+      hint_update            = 'Kijelz‹ friss¡t‚se ‚s £jrarajzol sa';
+      hint_about             = 'Verzi¢- ‚s copyright inform ci¢k megjelen¡t‚se';
+      hint_filemenu          = 'F jl-kezel‚si parancsok (Megnyit s, éj, Ment‚s, stb.)';
+      hint_filenew           = 'éj f jl l‚trehoz sa egy £j szerkeszt‹-ablakban';
+      hint_filenewfromtemplate='éj f jl l‚trehoz sa minta alapj n';
+      hint_fileopen          = 'F jl felkutat sa ‚s megnyit sa szerkeszt‹-ablakban';
+      hint_filesave          = 'Az akt¡v szerkeszt‹-ablak ment‚se f jlba';
+      hint_filesaveas        = 'Az aktu lis f jl ment‚se m sik n‚ven, k”nyvt rba vagy meghajt¢ra';
+      hint_filesaveall       = 'Minden m¢dos¡tott f jl ment‚se';
+      hint_changedir         = 'éj alap‚rtelmezett k”nyvt r kiv laszt sa';
+      hint_dosshell          = 'µtmeneti kil‚p‚s a DOS-ba';
+      hint_exit              = 'Kil‚p‚s az IDE-b‹l';
+      hint_openrecentfile    = 'Megjel”lt f jlt megnyit sa egy £j szerkeszt‹-ablakban';
+      hint_editmenu          = 'V g¢lap-szerkeszt‹ parancsok';
+      hint_editundo          = 'Utols¢ szerkeszt‚si mûvelet visszavon sa';
+      hint_editredo          = 'Utols¢ vissavont szerkeszt‚si mûvelet £jb¢li elv‚gz‚se';
+      hint_editcut           = 'Kiv lasztott sz”veg elt vol¡t sa ‚s elhelyez‚se a v g¢lapon';
+      hint_editcopy          = 'Kiv lasztott sz”veg m sol sa a v g¢lapra';
+      hint_editpaste         = 'Kiv lasztott sz”veg beilleszt‚se a v g¢lapr¢l';
+      hint_editcopywin       = 'Kiv lasztott sz”veg m sol sa a Windows v g¢lapra';
+      hint_editpastewin      = 'Kiv lasztott sz”veg beilleszt‚se a Windows v g¢lapr¢l';
+      hint_editclear         = 'Kiv lasztott sz”veg t”rl‚se';
+      hint_showclipboard     = 'V g¢lap ablak nak megnyit sa';
+      hint_searchmenu        = 'Sz”veg- ‚s szimb¢lum-keres‹ parancsok';
+      hint_searchfind        = 'Sz”veg keres‚se';
+      hint_searchreplace     = 'Sz”veg keres‚se ‚s cser‚je m sik sz”vegre';
+      hint_searchagain       = 'Repeat the last Search or Replace command';
+      hint_gotoline          = 'Kurzor mozgat sa a megadott sz m£ sorra';
+      hint_objects           = 'A program objektumait tartalmaz¢ tall¢z¢ megjelen¡t‚se';
+      hint_modules           = 'A program moduljait tartalmaz¢ tall¢z¢ megjelen¡t‚se';
+      hint_globals           = 'A program gl¢b lis szimb¢lumait tartalmaz¢ tall¢z¢ megjelen¡t‚se';
+      hint_symbol            = 'Tall¢z¢ megjelen¡t‚se az aktu lis sz¢hoz';
+      hint_runmenu           = 'Futtat s ‚s param‚terek';
+      hint_run               = 'Az aktu lis program futtat sa';
+      hint_runparameters     = 'A programnak futtat skor  tadott parancssori param‚terek megad sa';
+      hint_resetprogram      = 'Program alaphelyzetbe';
+      hint_rununtilcursor    = 'Futtat s a kurzor-poz¡ci¢ig';
+      hint_rununtilreturn    = 'Futtat s az aktu lis elj r s v‚g‚ig';
+      hint_userscreen        = 'µtv lt s a teljes-k‚perny‹s kiementre';
+      hint_compilemenu       = 'Ford¡t s, ‚p¡t‚s & k‚sz¡t‚se';
+      hint_compile           = 'Aktu lis forr sf jl ford¡t sa';
+      hint_make              = 'Forr s ‚s minden m¢dos¡tott f jl £jra‚p¡t‚se';
+      hint_build             = 'A program- ‚s minden el‚rhet‹ forr s-f jl £jra‚p¡t‚se';
+      hint_target            = 'Ford¡t si c‚lplatform kiv laszt sa';
+      hint_primaryfile       = 'A k‚sz¡t‚s ‚s ‚p¡t‚s c‚lf jlj nak megad sa';
+      hint_clearprimaryfile  = 'Az el‹z‹leg megadott els‹dleges f jl t”rl‚se';
+      hint_information       = 'Ford¡t si �zenetek ‚s program-inform ci¢ megjelen¡t‚se';
+      hint_showmessages      = 'Ford¡t si �zenetek ablak megjelen¡t‚se';
+      hint_debugmenu         = 'Program debugol sa';
+      hint_togglebreakpoint  = 'T”r‚spont v lt sa';
+      hint_createnewbreakpoint = 'éj t”r‚spont l‚trehoz sa';
+      hint_editbreakpoint    = 'F¢kusz lt t”r‚spont szerkeszt‚se';
+      hint_deletebreakpoint  = 'F¢kusz lt t”r‚spont t”rl‚se';
+      hint_opengdbwindow     = 'K”zvetlen GDB ablak megnyit sa';
+      hint_addwatch          = 'éj n‚z‹ke-kifejez‚s felv‚tele';
+      hint_watches           = 'N‚z‹k‚k ablak megjelen¡t‚se';
+      hint_callstack         = 'H¡v si verem megjelen¡t‚se';
+      hint_editbreakpoints   = 'T”r‚spontok szerkeszt‚se';
+      hint_toolsmenu         = 'Felhaszn l¢  ltal telep¡tett eszk”z”k';
+      hint_calculator        = 'Sz mol¢g‚p megjelen¡t‚se';
+      hint_grep              = 'Grep futtat sa';
+      hint_gotosource        = 'Forr s szerkeszt‚se';
+      hint_registers         = 'Regiszterek ablak megnyit sa';
+      hint_messageswindow    = 'šzenetek ablak megnyit sa';
+      hint_usertool          = 'Felhaszn l¢  ltal telep¡tett eszk”z';
+      hint_asciitable        = 'Show ASCII table';
+      hint_optionsmenu       = 'Ford¡t¢, szerkeszt‹, eg‚r, stb. be ll¡t sai';
+      hint_switchesmode      = 'Norm l, debug vagy release verzi¢ kiv laszt sa';
+      hint_compiler          = 'Alap‚rtelmezett ford¡t si ‚s felt‚teles direkt¡v k be ll¡t sa';
+      hint_memorysizes       = 'Alap‚rtelmezett verem-‚s heap-m‚ret be ll¡t sa';
+      hint_linkeroptions     = 'Linker opci¢k be ll¡t sa';
+      hint_debugoptions      = 'Debug inform ci¢ opci¢k';
+      hint_directories       = 'El‚r‚si utak be ll¡t sa (unit, include, object f jlokhoz)';
+      hint_browser           = 'Glob lis tall¢z si opci¢k be ll¡t sa';
+      hint_tools             = 'Eszk”z”k felv‚tele vagy m¢dos¡t sa';
+      hint_environmentmenu   = 'K”rnyezeti be ll¡t sok megad sa';
+      hint_preferences       = 'Be ll¡t sok megad sa';
+      hint_editoroptions     = 'Szerkeszt‹ be ll¡t sainak megad sa';
+      hint_codecomplete      = 'CodeComplete kulcsszavak megad sa';
+      hint_codetemplates     = 'CodeTemplate-ek megad sa';
+      hint_mouseoptions      = 'Eg‚r-be ll¡t sok megad sa';
+      hint_desktopoptions    = 'Asztal be ll¡t sainak megad sa';
+      hint_startup           = 'Ind¡t si opci¢k permanens megv ltoztat sa';
+      hint_colors            = 'Az IDE  ltal haszn lt sz¡nek megv ltoztat sa';
+      hint_openini           = 'El‹z‹leg elmentett konfigur ci¢s f jl megnyit sa';
+      hint_saveini           = 'Minden v ltoztat s ment‚se a konfigur ci¢s f jlba';
+      hint_saveasini         = 'V ltoztat sok ment‚se m s n‚ven';
+      hint_windowmenu        = 'Ablak-kezel‹ parancsok';
+      hint_tile              = 'Ablakok mozaikszerû elrendez‚se az asztalon';
+      hint_cascade           = 'Ablakok  tlapolt elrendez‚se az asztalon';
+      hint_closeall          = 'Az asztal ”sszes ablak nak bez r sa';
+      hint_resize            = 'Akt¡v ablak m‚ret‚nek/poz¡ci¢j nak v ltozat sa';
+      hint_zoom              = 'Akt¡v ablak megnagyobb¡t sa vagy m‚ret‚nek vissz ll¡t sa';
+      hint_next              = 'A k”vetkez‹ ablak aktiv l sa';
+      hint_prev              = 'Az el‹z‹ ablak aktiv l sa';
+      hint_closewindow       = 'Akt¡v ablak bez r sa';
+      hint_windowlist        = 'Az ”sszes nyitott ablak list j nak megjelen¡t‚se';
+      hint_userscreenwindow  = 'Felhaszn l¢i k‚perny‹ tartalm nak megjelen¡t‚se ablakban';
+      hint_helpmenu          = 'Seg¡ts‚g k‚r‚se';
+      hint_helpcontents      = 'Online S£g¢ tartlomjegyz‚k‚nek megjelen¡t‚se';
+      hint_helpindex         = 'Online S£g¢ index‚nek megjelen¡t‚se';
+      hint_helptopicsearch   = 'A kurzor alatti sz¢val kapcsolatos s£g¢ megjelen¡t‚se';
+      hint_helpprevtopic     = 'Az utols¢nak megtekintett S£g¢ oldal megjelen¡t‚se';
+      hint_helphowtouse      = 'Az Online S£g¢ haszn lata';
+      hint_helpfiles         = 'S£g¢ f jlok telep¡t‚se ‚s elt vol¡t sa';
+      hint_openatcursor      = 'A kurzor alatti f jl megnyit sa';
+      hint_browseatcursor    = 'A kurzor alatti szimb¢lum tall¢z sa';
+      hint_editoroptionscur  = 'Szerkeszt‹ be ll¡t sainak megad sa';
+      hint_rawgdbwindow      = 'Nyers GDB kommunik ci¢s ablak';
+      hint_allbreakpoints    = '™sszes t”r‚spont';
+
+      { error messages }
+      error_saving_cfg_file  = 'Hiba a konfigur ci¢ ment‚se k”zben.';
+      error_saving_dsk_file  = 'Hiba az asztal f jl t rol sa k”zben.'#13+
+                               'Az asztal tartalma nem ker�lt t rol sra.';
+      error_user_screen_not_avail = 'A felhaszn l¢i k‚perny‹ nem el‚rhet‹.';
+
+{
+  $Log$
+  Revision 1.1  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+
+}

+ 11 - 193
ide/text/fpstring.pas

@@ -22,207 +22,25 @@ unit fpstring;
     uses
        fpconst;
 
-{$ifdef USERESSTRINGS}
-    resourcestring
+{$ifdef LANG_HUN}
+{$i fpstrh.inc}    { Hungarian language file }
 {$else}
-    const
+ {$ifdef LANG_GER}
+ {$i fpstrg.inc}    { German language file }
+ {$else}
+   {$i fpstre.inc}  { English language file }
+ {$endif}
 {$endif}
-      { menu entries }
-      menu_file              = '~F~ile';
-      menu_file_new          = '~N~ew';
-      menu_file_template     = 'New from ~t~emplate...';
-      menu_file_open         = '~O~pen...';
-      menu_file_save         = '~S~ave';
-      menu_file_saveas       = 'Save ~a~s...';
-      menu_file_saveall      = 'Save a~l~l';
-      menu_file_changedir    = '~C~hange dir...';
-      menu_file_dosshell     = '~D~OS shell';
-      menu_file_exit         = 'E~x~it';
-
-      menu_edit              = '~E~dit';
-      menu_edit_copywin      = 'Cop~y~ to Windows';
-      menu_edit_pastewin     = 'Paste from ~W~indows';
-      menu_edit_undo         = '~U~ndo';
-      menu_edit_redo         = '~R~edo';
-      menu_edit_cut          = 'Cu~t~';
-      menu_edit_copy         = '~C~opy';
-      menu_edit_paste        = '~P~aste';
-      menu_edit_clear        = 'C~l~ear';
-      menu_edit_showclipboard= '~S~how clipboard';
-
-      menu_search            = '~S~earch';
-      menu_search_find       = '~F~ind...';
-      menu_search_replace    = '~R~eplace...';
-      menu_search_searchagain= '~S~earch again';
-      menu_search_jumpline   = '~G~o to line number...';
-      menu_search_findproc   = 'Find ~p~rocedure...';
-      menu_search_objects    = '~O~bjects';
-      menu_search_modules    = 'Mod~u~les';
-      menu_search_globals    = 'G~l~obals';
-      menu_search_symbol     = 'S~y~mbol...';
-
-      menu_run               = '~R~un';
-      menu_run_run           = '~R~un';
-      menu_run_stepover      = '~S~tep over';
-      menu_run_traceinto     = '~T~race into';
-      menu_run_conttocursor  = '~G~oto Cursor';
-      menu_run_untilreturn   = '~U~ntil return';
-      menu_run_parameters    = 'P~a~rameters...';
-      menu_run_resetdebugger = '~P~rogram reset';
-
-      menu_compile           = '~C~ompile';
-      menu_compile_compile   = '~C~ompile';
-      menu_compile_make      = '~M~ake';
-      menu_compile_build     = '~B~uild';
-      menu_compile_target    = '~T~arget...';
-      menu_compile_primaryfile = '~P~rimary file...';
-      menu_compile_clearprimaryfile = 'C~l~ear primary file';
-      menu_compile_information = '~I~nformation...';
-      menu_compile_compilermessages = 'C~o~mpiler messages';
-
-      menu_debug             = '~D~ebug';
-      menu_debug_output      = '~O~utput';
-      menu_debug_userscreen  = '~U~ser screen';
-      menu_debug_breakpoint  = '~B~reakpoint';
-      menu_debug_callstack   = '~C~all stack';
-      menu_debug_registers   = '~R~egisters';
-      menu_debug_addwatch    = '~A~dd Watch';
-      menu_debug_watches     = '~W~atches';
-      menu_debug_breakpointlist = 'Breakpoint ~L~ist';
-      menu_debug_gdbwindow   = '~G~DB window';
-
-      menu_tools             = '~T~ools';
-      menu_tools_messages    = '~M~essages';
-      menu_tools_msgnext     = 'Goto ~n~ext';
-      menu_tools_msgprev     = 'Goto ~p~revious';
-      menu_tools_grep        = '~G~rep';
-      menu_tools_calculator  = '~C~alculator';
-      menu_tools_asciitable  = 'Ascii ~t~able';
-
-      menu_options           = '~O~ptions';
-      menu_options_mode      = 'Mode~.~..';
-      menu_options_compiler  = '~C~ompiler...';
-      menu_options_memory    = '~M~emory sizes...';
-      menu_options_linker    = '~L~inker...';
-      menu_options_debugger  = 'De~b~ugger...';
-      menu_options_directories = '~D~irectories...';
-      menu_options_browser   = 'Bro~w~ser...';
-      menu_options_tools     = '~T~ools...';
-      menu_options_env       = '~E~nvironment';
-      menu_options_env_preferences = '~P~references...';
-      menu_options_env_editor= '~E~ditor...';
-      menu_options_env_codecomplete = 'Code~C~omplete...';
-      menu_options_env_codetemplates = 'Code~T~emplates...';
-      menu_options_env_desktop = '~D~esktop...';
-      menu_options_env_mouse = '~M~ouse...';
-      menu_options_env_startup = '~S~tartup...';
-      menu_options_env_colors= '~C~olors';
-      menu_options_open      = '~O~pen...';
-      menu_options_save      = '~S~ave';
-      menu_options_saveas    = 'Save ~a~s...';
-
-      menu_window            = '~W~indow';
-      menu_window_tile       = '~T~ile';
-      menu_window_cascade    = 'C~a~scade';
-      menu_window_closeall   = 'Cl~o~se all';
-      menu_window_resize     = '~S~ize/Move';
-      menu_window_zoom       = '~Z~oom';
-      menu_window_next       = '~N~ext';
-      menu_window_previous   = '~P~revious';
-      menu_window_close      = '~C~lose';
-      menu_window_list       = '~L~ist...';
-      menu_window_update     = '~R~efresh display';
-
-      menu_help              = '~H~elp';
-      menu_help_contents     = '~C~ontents';
-      menu_help_index        = '~I~ndex';
-      menu_help_topicsearch  = '~T~opic search';
-      menu_help_prevtopic    = '~P~revious topic';
-      menu_help_using        = '~U~sing help';
-      menu_help_files        = '~F~iles...';
-      menu_help_about        = '~A~bout...';
-
-      { short cut entries in menu }
-      menu_key_file_open     = 'F3';
-      menu_key_file_save     = 'F2';
-      menu_key_file_exit     = 'Alt+X';
-
-      menu_key_edit_undo     = 'Alt+BkSp';
-      menu_key_edit_cut      = 'Shift+Del';
-      menu_key_edit_copy     = 'Ctrl+Ins';
-      menu_key_edit_paste    = 'Shift+Ins';
-      menu_key_edit_clear    = 'Ctrl+Del';
-
-      menu_key_run_run       = 'Ctrl+F9';
-      menu_key_run_stepover  = 'F8';
-      menu_key_run_traceinto = 'F7';
-      menu_key_run_conttocursor = 'F4';
-      menu_key_run_resetdebugger = 'Ctrl+F2';
-
-      menu_key_compile_compile = 'Alt+F9';
-      menu_key_compile_make = 'F9';
-      menu_key_compile_compilermessages = 'F12';
-
-      menu_key_debug_userscreen = 'Alt+F5';
-      menu_key_debug_breakpoint = 'Ctrl+F8';
-      menu_key_debug_callstack = 'Ctrl+F3';
-      menu_key_debug_addwatch = 'Ctrl+F7';
-
-      menu_key_tools_messages= 'F11';
-      menu_key_tools_msgnext = 'Alt+F8';
-      menu_key_tools_msgprev = 'Alt+F7';
-      menu_key_tools_grep    = 'Shift+F2';
-
-      menu_key_window_resize = 'Ctrl+F5';
-      menu_key_window_zoom   = 'F5';
-      menu_key_window_next   = 'F6';
-      menu_key_window_previous = 'Shift+F6';
-      menu_key_window_close  = 'Alt+F3';
-      menu_key_window_list   = 'Alt+0';
-
-      menu_key_help_helpindex= 'Shift+F1';
-      menu_key_help_topicsearch = 'Ctrl+F1';
-      menu_key_help_prevtopic= 'Alt+F1';
-
-      dialog_codecomplete_add = 'Add new keyword';
-      label_codecomplete_add_keyword = 'Keyword';
-
-      dialog_codecomplete_edit = 'Edit keyword';
-      label_codecomplete_edit_keyword = 'Keyword';
-
-      dialog_codetemplates_add = 'Add new template';
-      dialog_codetemplates_edit = 'Edit template';
-
-      { status line entries }
-      status_help            = '~F1~ Help';
-      status_help_on_help    = '~F1~ Help on help';
-      status_help_previoustopic = '~Alt+F1~ Previous topic';
-      status_help_index      = '~Shift+F1~ Help index';
-      status_help_close      = '~Esc~ Close help';
-      status_save            = '~F2~ Save';
-      status_open            = '~F3~ Open';
-      status_compile         = '~Alt+F9~ Compile';
-      status_make            = '~F9~ Make';
-      status_localmenu       = '~Alt+F10~ Local menu';
-      status_transferchar    = '~Ctrl+Enter~ Transfer char';
-      status_msggotosource   = '~'+EnterSign+'~ Goto source';
-      status_msgtracksource  = '~Space~ Track source';
-      status_close           = '~Esc~ Close';
-      status_calculatorpaste = '~Ctrl+Enter~ Transfer result';
-
-      { error messages }
-      error_saving_cfg_file  = 'Error saving configuration.';
-      error_saving_dsk_file  = 'Error saving desktop file.'#13+
-                               'Desktop layout could not be stored.';
-      error_user_screen_not_avail = 'Sorry, user screen not available.';
-
 
   implementation
 
 end.
 {
   $Log$
-  Revision 1.3  2000-04-18 11:42:37  pierre
+  Revision 1.4  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.3  2000/04/18 11:42:37  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.2  2000/02/07 08:29:13  michael

+ 70 - 67
ide/text/fpswitch.pas

@@ -173,7 +173,7 @@ implementation
 uses
   Dos,
   GlobType,Tokens,Compiler,
-  FPUtils,FPVars;
+  FPString,FPVars,FPUtils;
 
 var
   CfgFile : text;
@@ -646,7 +646,7 @@ begin
   {$I+}
   if ioresult<>0 then
    exit;
-  writeln(CfgFile,'# Automaticly created file, don''t edit.');
+  writeln(CfgFile,'# '+msg_automaticallycreateddontedit);
   OldSwitchesMode:=SwitchesMode;
   for SwitchesMode:=low(TSwitchMode) to high(TSwitchMode) do
    begin
@@ -788,58 +788,58 @@ begin
   New(SyntaxSwitches,Init('S'));
   with SyntaxSwitches^ do
    begin
-     AddBooleanItem('~D~elphi 2 extensions on','2',idNone);
-     AddBooleanItem('~C~-like operators','c',idNone);
-     AddBooleanItem('S~t~op after first error','e',idNone);
-     AddBooleanItem('Allo~w~ LABEL and GOTO','g',idNone);
-     AddBooleanItem('C++ styled ~i~nline','i',idNone);
-     AddBooleanItem('Global C ~m~acros','m',idNone);
-     AddBooleanItem('TP/BP ~7~.0 compatibility','o',idNone);
-     AddBooleanItem('Del~p~hi compatibility','d',idNone);
-     AddBooleanItem('A~l~low STATIC in objects','s',idNone);
-     AddBooleanItem('Strict ~v~ar-strings','',idStrictVarStrings);
-     AddBooleanItem('E~x~tended syntax','',idExtendedSyntax);
-     AddBooleanItem('Allow MMX op~e~rations','',idMMXOps);
+     AddBooleanItem(opt_delphi2extensions,'2',idNone);
+     AddBooleanItem(opt_clikeoperators,'c',idNone);
+     AddBooleanItem(opt_stopafterfirsterror,'e',idNone);
+     AddBooleanItem(opt_allowlabelandgoto,'g',idNone);
+     AddBooleanItem(opt_cplusplusstyledinline,'i',idNone);
+     AddBooleanItem(opt_globalcmacros,'m',idNone);
+     AddBooleanItem(opt_tp7compatibility,'o',idNone);
+     AddBooleanItem(opt_delphicompatibility,'d',idNone);
+     AddBooleanItem(opt_allowstaticinobjects,'s',idNone);
+     AddBooleanItem(opt_strictvarstrings,'',idStrictVarStrings);
+     AddBooleanItem(opt_extendedsyntax,'',idExtendedSyntax);
+     AddBooleanItem(opt_allowmmxoperations,'',idMMXOps);
    end;
   New(VerboseSwitches,Init('v'));
   with VerboseSwitches^ do
    begin
-     AddBooleanItem('~W~arnings','w',idNone);
-     AddBooleanItem('N~o~tes','n',idNone);
-     AddBooleanItem('~H~ints','h',idNone);
-     AddBooleanItem('General ~I~nfo','i',idNone);
-     AddBooleanItem('~U~sed,tried info','ut',idNone);
-     AddBooleanItem('~A~ll','a',idNone);
-     AddBooleanItem('Show all ~P~rocedures if error','b',idNone);
+     AddBooleanItem(opt_warnings,'w',idNone);
+     AddBooleanItem(opt_notes,'n',idNone);
+     AddBooleanItem(opt_hints,'h',idNone);
+     AddBooleanItem(opt_generalinfo,'i',idNone);
+     AddBooleanItem(opt_usedtriedinfo,'ut',idNone);
+     AddBooleanItem(opt_all,'a',idNone);
+     AddBooleanItem(opt_showallprocsonerror,'b',idNone);
    end;
   New(CodegenSwitches,Init('C'));
   with CodegenSwitches^ do
    begin
-     AddBooleanItem('~R~ange checking','r',idRangeChecks);
-     AddBooleanItem('~S~tack checking','t',idStackChecks);
-     AddBooleanItem('~I~/O checking','i',idIOChecks);
-     AddBooleanItem('Integer ~o~verflow checking','o',idOverflowChecks);
+     AddBooleanItem(opt_rangechecking,'r',idRangeChecks);
+     AddBooleanItem(opt_stackchecking,'t',idStackChecks);
+     AddBooleanItem(opt_iochecking,'i',idIOChecks);
+     AddBooleanItem(opt_overflowchecking,'o',idOverflowChecks);
    end;
   New(OptimizingGoalSwitches,InitSelect('O'));
   with OptimizingGoalSwitches^ do
     begin
-       AddSelectItem('Generate ~f~aster code','G',idNone);
-       AddSelectItem('Generate s~m~aller code','g',idNone);
+       AddSelectItem(opt_generatefastercode,'G',idNone);
+       AddSelectItem(opt_generatesmallercode,'g',idNone);
     end;
   New(OptimizationSwitches,Init('O'));
   with OptimizationSwitches^ do
    begin
-     AddBooleanItem('Use regis~t~er-variables','r',idNone);
-     AddBooleanItem('~U~ncertain optimizations','u',idNone);
-     AddBooleanItem('Level ~1~ optimizations','1',idNone);
-     AddBooleanItem('Level ~2~ optimizations','2',idNone);
+     AddBooleanItem(opt_useregistervariables,'r',idNone);
+     AddBooleanItem(opt_uncertainoptimizations,'u',idNone);
+     AddBooleanItem(opt_level1optimizations,'1',idNone);
+     AddBooleanItem(opt_level2optimizations,'2',idNone);
    end;
   New(ProcessorSwitches,InitSelect('O'));
   with ProcessorSwitches^ do
    begin
-     AddSelectItem('i~3~86/i486','p1',idNone);
-     AddSelectItem('Pentium/PentiumMM~X~ (tm)','p2',idNone);
-     AddSelectItem('P~P~ro/PII/c6x86/K6 (tm)','p3',idNone);
+     AddSelectItem(opt_i386486,'p1',idNone);
+     AddSelectItem(opt_pentiumandmmx,'p2',idNone);
+     AddSelectItem(opt_pentiumpro,'p3',idNone);
    end;
   New(TargetSwitches,InitSelect('T'));
   with TargetSwitches^ do
@@ -853,77 +853,77 @@ begin
   New(AsmReaderSwitches,InitSelect('R'));
   with AsmReaderSwitches^ do
    begin
-     AddSelectItem('~D~irect assembler','direct',idAsmDirect);
-     AddSelectItem('~A~T&T style assembler','att',idAsmATT);
-     AddSelectItem('~I~ntel style assembler','intel',idAsmIntel);
+     AddSelectItem(opt_directassembler,'direct',idAsmDirect);
+     AddSelectItem(opt_attassembler,'att',idAsmATT);
+     AddSelectItem(opt_intelassembler,'intel',idAsmIntel);
    end;
   New(AsmInfoSwitches,Init('a'));
   with AsmInfoSwitches^ do
    begin
-     AddBooleanItem('~L~ist source','l',idNone);
-     AddBooleanItem('list ~r~egister allocation','r',idNone);
-     AddBooleanItem('list ~t~emp allocation','t',idNone);
+     AddBooleanItem(opt_listsource,'l',idNone);
+     AddBooleanItem(opt_listregisterallocation,'r',idNone);
+     AddBooleanItem(opt_listtempallocation,'t',idNone);
    end;
   New(AsmOutputSwitches,InitSelect('A'));
   with AsmOutputSwitches^ do
    begin
-     AddSelectItem('Use ~G~NU as','as',idNone);
-     AddSelectItem('Use ~N~ASM coff','nasmcoff',idNone);
-     AddSelectItem('Use NASM ~e~lf','nasmelf',idNone);
-     AddSelectItem('Use NASM ~o~bj','nasmobj',idNone);
-     AddSelectItem('Use ~M~ASM','masm',idNone);
-     AddSelectItem('Use ~T~ASM','tasm',idNone);
-     AddSelectItem('Use ~c~off','coff',idNone);
-     AddSelectItem('Use ~p~ecoff','pecoff',idNone);
+     AddSelectItem(opt_usegnuas,'as',idNone);
+     AddSelectItem(opt_usenasmcoff,'nasmcoff',idNone);
+     AddSelectItem(opt_usenasmelf,'nasmelf',idNone);
+     AddSelectItem(opt_usenasmobj,'nasmobj',idNone);
+     AddSelectItem(opt_usemasm,'masm',idNone);
+     AddSelectItem(opt_usetasm,'tasm',idNone);
+     AddSelectItem(opt_usecoff,'coff',idNone);
+     AddSelectItem(opt_usepecoff,'pecoff',idNone);
    end;
   New(BrowserSwitches,InitSelect('b'));
   with BrowserSwitches^ do
    begin
-     AddSelectItem('N~o~ browser','-',idSymInfNone);
-     AddSelectItem('Only Glob~a~l browser','+',idSymInfGlobalOnly);
-     AddSelectItem('~L~ocal and global browser','l',idSymInfGlobalLocal);
+     AddSelectItem(opt_nobrowser,'-',idSymInfNone);
+     AddSelectItem(opt_globalonlybrowser,'+',idSymInfGlobalOnly);
+     AddSelectItem(opt_localglobalbrowser,'l',idSymInfGlobalLocal);
    end;
   New(ConditionalSwitches,Init('d'));
   with ConditionalSwitches^ do
    begin
-     AddStringItem('Conditio~n~al defines','',idNone,true);
+     AddStringItem(opt_conditionaldefines,'',idNone,true);
    end;
   New(MemorySwitches,Init('C'));
   with MemorySwitches^ do
    begin
-     AddLongintItem('~S~tack size','s',idStackSize);
-     AddLongintItem('~H~eap size','h',idHeapSize);
+     AddLongintItem(opt_stacksize,'s',idStackSize);
+     AddLongintItem(opt_heapsize,'h',idHeapSize);
    end;
   New(DirectorySwitches,Init('F'));
   with DirectorySwitches^ do
    begin
-     AddStringItem('~U~nit directories','u',idNone,true);
-     AddStringItem('~I~nclude directories','i',idNone,true);
-     AddStringItem('~L~ibrary directories','l',idNone,true);
-     AddStringItem('~O~bject directories','o',idNone,true);
-     AddStringItem('~E~XE & PPU directories','E',idNone,true);
+     AddStringItem(opt_unitdirectories,'u',idNone,true);
+     AddStringItem(opt_includedirectories,'i',idNone,true);
+     AddStringItem(opt_librarydirectories,'l',idNone,true);
+     AddStringItem(opt_objectdirectories,'o',idNone,true);
+     AddStringItem(opt_exeppudirectories,'E',idNone,true);
    end;
 
   New(LibLinkerSwitches,InitSelect('X'));
   with LibLinkerSwitches^ do
    begin
-     AddSelectItem('~D~ynamic libraries','D',idNone);
-     AddSelectItem('~S~tatic libraries','S',idNone);
+     AddSelectItem(opt_dynamiclibraries,'D',idNone);
+     AddSelectItem(opt_staticlibraries,'S',idNone);
    end;
   New(DebugInfoSwitches,InitSelect('g'));
   with DebugInfoSwitches^ do
    begin
-     AddSelectItem('~S~trip all debug symbols from executable','-',idNone);
-     AddSelectItem('Generate ~d~ebug symbol information','',idNone);
-     AddSelectItem('Generate also backtrace ~l~ine information','l',idNone);
+     AddSelectItem(opt_stripalldebugsymbols,'-',idNone);
+     AddSelectItem(opt_gendebugsymbolinfo,'',idNone);
+     AddSelectItem(opt_gensymbolandbacktraceinfo,'l',idNone);
      { AddSelectItem('Generate ~d~bx symbol information','d');
        does not work anyhow (PM) }
    end;
   New(ProfileInfoSwitches,InitSelect('p'));
   with ProfileInfoSwitches^ do
    begin
-     AddSelectItem('~N~o profile information','-',idNone);
-     AddSelectItem('Generate profile code for g~p~rof','g',idNone);
+     AddSelectItem(opt_noprofileinfo,'-',idNone);
+     AddSelectItem(opt_gprofinfo,'g',idNone);
    end;
   {New(MemorySizeSwitches,Init('C'));
   with MemorySizeSwitches^ do
@@ -1113,7 +1113,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.21  2000-04-25 08:42:33  pierre
+  Revision 1.22  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.21  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.20  2000/03/08 16:51:50  pierre

+ 24 - 17
ide/text/fpsymbol.pas

@@ -207,7 +207,7 @@ uses Commands,App,
      symconst,
 {$endif BROWSERCOL}
      WUtils,WEditor,
-     FPConst,FPUtils,FPVars,{$ifndef FPDEBUG}FPDebug{$endif},FPIDE;
+     FPConst,FPString,FPUtils,FPVars,{$ifndef FPDEBUG}FPDebug{$endif},FPIDE;
 
 procedure CloseAllBrowsers;
   procedure SendCloseIfBrowser(P: PView); {$ifndef FPC}far;{$endif}
@@ -309,11 +309,11 @@ begin
        else
          begin
            P:=@Name;
-           ErrorBox(#3'Symbol %s not found',@P);
+           ErrorBox(msg_symbolnotfound,@P);
          end;
      end
    else
-     ErrorBox('No Browser info available',nil);
+     ErrorBox(msg_nobrowserinfoavailable,nil);
 end;
 
 (*procedure ReadBrowseLog(FileName: string);
@@ -614,11 +614,11 @@ end;
 function TSymbolView.GetLocalMenu: PMenu;
 begin
   GetLocalMenu:=NewMenu(
-    NewItem('~B~rowse','',kbNoKey,cmSymBrowse,hcSymBrowse,
-    NewItem('~G~oto source','',kbNoKey,cmSymGotoSource,hcSymGotoSource,
-    NewItem('~T~rack source','',kbNoKey,cmSymTrackSource,hcSymTrackSource,
+    NewItem(menu_symlocal_browse,'',kbNoKey,cmSymBrowse,hcSymBrowse,
+    NewItem(menu_symlocal_gotosource,'',kbNoKey,cmSymGotoSource,hcSymGotoSource,
+    NewItem(menu_symlocal_tracksource,'',kbNoKey,cmSymTrackSource,hcSymTrackSource,
     NewLine(
-    NewItem('~O~ptions...','',kbNoKey,cmSymOptions,hcSymOptions,
+    NewItem(menu_symlocal_options,'',kbNoKey,cmSymOptions,hcSymOptions,
     nil))))));
 end;
 
@@ -673,7 +673,8 @@ begin
   end;
   Desktop^.UnLock;
   if Assigned(W)=false then
-    ErrorBox('Can''t find '+R^.GetFileName,nil);
+    ErrorBox(FormatStrStr(msg_cantfindfile,R^.GetFileName),nil);
+
   TrackReference:=W<>nil;
 end;
 
@@ -686,7 +687,7 @@ begin
     W^.Select;
   Desktop^.UnLock;
   if Assigned(W)=false then
-    ErrorBox('Can''t find '+R^.GetFileName,nil);
+    ErrorBox(FormatStrStr(msg_cantfindfile,R^.GetFileName),nil);
   GotoReference:=W<>nil;
 end;
 
@@ -937,6 +938,9 @@ begin
   AddrStr:='$'+IntToHexL(HiW,4)+IntToHexL(HiW,4);
 end;
 begin
+  ClearFormatParams;
+  AddFormatParamStr(msg_sizeinmemory);
+  AddFormatParamStr(msg_sizeonstack);
   S:=
    #13+
 {  ' Memory location: '+AddrStr(MemInfo^.Addr)+#13+
@@ -944,8 +948,8 @@ begin
 
   { ??? internal linker ??? }
 
-  '  Size in memory: '+SizeStr(MemInfo^.Size)+#13+
-  '   Size on stack: '+SizeStr(MemInfo^.PushSize)+#13+
+  '%18s: '+SizeStr(MemInfo^.Size)+#13+
+  '%18s: '+SizeStr(MemInfo^.PushSize)+#13+
   ''
   ;
 end;
@@ -1233,7 +1237,7 @@ begin
   CreateHSB:=SB;
 end;
 begin
-  inherited Init(Bounds, 'Browse: '+ATitle, ANumber);
+  inherited Init(Bounds, FormatStrStr(dialog_browse,ATitle), ANumber);
   HelpCtx:=hcBrowserWindow;
   Sym:=ASym;
   Prefix:=NewStr(APrefix);
@@ -1294,10 +1298,10 @@ begin
 
   GetExtent(R); R.Grow(-1,-1); R.Move(0,1); R.B.Y:=R.A.Y+1;
   New(PageTab, Init(R,
-    NewBrowserTabItem('S',ScopeView,
-    NewBrowserTabItem('R',ReferenceView,
-    NewBrowserTabItem('I',InheritanceView,
-    NewBrowserTabItem('M',MemInfoView,
+    NewBrowserTabItem(label_browsertab_scope,ScopeView,
+    NewBrowserTabItem(label_browsertab_reference,ReferenceView,
+    NewBrowserTabItem(label_browsertab_inheritance,InheritanceView,
+    NewBrowserTabItem(label_browsertab_memory,MemInfoView,
     nil))
     ))));
   PageTab^.GrowMode:=gfGrowHiX;
@@ -1551,7 +1555,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.25  2000-04-18 11:42:37  pierre
+  Revision 1.26  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.25  2000/04/18 11:42:37  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.24  2000/03/21 23:26:55  pierre

+ 125 - 3
ide/text/fptemplt.pas

@@ -19,6 +19,12 @@ interface
 
 uses FPViews;
 
+const
+      tsDate         = '$DATE';
+      tsDateCustom   = '$DATE(';
+      tsTime         = '$TIME';
+      tsPrompt       = '$PROMPT(';
+
 function  GetTemplateCount: integer;
 function  GetTemplateName(Index: integer): string;
 function  StartTemplate(Index: integer; Editor: PSourceEditor): boolean;
@@ -30,12 +36,14 @@ implementation
 
 uses
   Dos,Objects,
+  Commands,MsgBox,
+  WUtils,
 {$ifdef EDITORS}
   Editors,
 {$else}
   WEditor,
 {$endif}
-  FPVars,FPUtils;
+  FPConst,FPVars,FPString,FPUtils;
 
 type
     PTemplate = ^TTemplate;
@@ -109,6 +117,113 @@ begin
   GetTemplateName:=Templates^.At(Index)^.Name^;
 end;
 
+function SearchStr(const InS, SubS: string; var P: sw_integer): boolean;
+begin
+  P:=Pos(SubS,InS);
+  SearchStr:=(P<>0);
+end;
+
+procedure ReplaceStr(var S: string; StartP,Len: sw_integer; const NewS: string);
+begin
+  Delete(S,StartP,Len);
+  Insert(NewS,S,StartP);
+end;
+
+function ReadStringPos(const InS: string; StartP: sw_integer; var Expr: string; var EndPos: sw_integer): sw_integer;
+const Enclosers : string[2] = '''"';
+var OK: boolean;
+    Encloser: char;
+    P: sw_integer;
+begin
+  OK:=false; Expr:=''; P:=StartP; EndPos:=-1;
+  if length(InS)>=P then
+  begin
+    P:=Pos(InS[P],Enclosers);
+    OK:=(P<>0);
+    if OK then
+    begin
+      OK:=false;
+      Encloser:=Enclosers[P];
+      P:=StartP;
+      Inc(P);
+      while (P<=length(InS)) do
+      begin
+        if InS[P]<>Encloser then
+          Expr:=Expr+InS[P]
+        else
+          if (P+1<=length(InS)) and (InS[P+1]=Encloser) then
+            Expr:=Expr+InS[P]
+          else
+            begin
+              OK:=true;
+              Break;
+            end;
+        Inc(P);
+      end;
+      EndPos:=P;
+    end;
+  end;
+  if OK then
+    ReadStringPos:=length(Expr)
+  else
+    ReadStringPos:=-1;
+end;
+
+function ReadString(const InS: string; StartP: sw_integer; var Expr: string): sw_integer;
+var P: sw_integer;
+begin
+  ReadString:=ReadStringPos(InS,StartP,Expr,P);
+end;
+
+function ProcessTemplateLine(var S: string): boolean;
+var OK: boolean;
+    P,EndP: sw_integer;
+    Name,Expr: string;
+begin
+  OK:=true;
+  repeat
+    P:=0; Expr:='';
+    if OK and SearchStr(S,tsPrompt,P) then
+      if ReadStringPos(S,P+length(tsPrompt),Name,EndP)>=0 then
+        if copy(S,EndP+1,1)=')' then
+         begin
+           OK:=InputBox(dialog_fillintemplateparameter,Name,Expr,255)=cmOK;
+           if OK then
+             ReplaceStr(S,P,EndP-P+1+1,Expr);
+         end;
+    if OK and SearchStr(S,tsDateCustom,P) then
+      if ReadStringPos(S,P+length(tsDateCustom),Expr,EndP)>=0 then
+        if copy(S,EndP+1,1)=')' then
+           ReplaceStr(S,P,EndP-P+1+1,FormatDateTimeL(Now,Expr));
+    if OK and SearchStr(S,tsDate,P) then
+      ReplaceStr(S,P,length(tsDate),FormatDateTimeL(Now,'yyyy/mm/dd'));
+    if OK and SearchStr(S,tsTime,P) then
+      ReplaceStr(S,P,length(tsTime),FormatDateTimeL(Now,'hh:nn:ss'));
+  until P=0;
+  ProcessTemplateLine:=OK;
+end;
+
+function ProcessTemplate(Editor: PSourceEditor): boolean;
+var OK: boolean;
+    I: sw_integer;
+    S,OrigS: string;
+begin
+  OK:=true;
+  with Editor^ do
+  for I:=0 to GetLineCount-1 do
+  begin
+    S:=GetDisplayText(I); OrigS:=S;
+    OK:=ProcessTemplateLine(S);
+    if OK=false then Break;
+    if S<>OrigS then
+    begin
+      SetDisplayText(I,S);
+      UpdateAttrs(I,attrAll);
+     end;
+  end;
+  ProcessTemplate:=OK;
+end;
+
 function StartTemplate(Index: integer; Editor: PSourceEditor): boolean;
 var
     T: PTemplate;
@@ -116,6 +231,10 @@ var
 begin
   T:=Templates^.At(Index);
   OK:=StartEditor(Editor,T^.Path^);
+  if OK then
+  begin
+    ProcessTemplate(Editor);
+  end;
   StartTemplate:=OK;
 end;
 
@@ -133,7 +252,7 @@ procedure InitTemplates;
       i : sw_integer; 
   begin
     if copy(Dir,length(Dir),1)<>DirSep then Dir:=Dir+DirSep;
-    FindFirst(Dir+'*.pt',AnyFile,SR);
+    FindFirst(Dir+'*'+TemplateExt,AnyFile,SR);
     while (DosError=0) do
     begin
       S:=NameOf(SR.Name);
@@ -170,7 +289,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.8  1999-06-25 00:33:40  pierre
+  Revision 1.9  2000-05-02 08:42:28  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.8  1999/06/25 00:33:40  pierre
    * avoid lost memory on duplicate Template Items
 
   Revision 1.7  1999/03/08 14:58:11  peter

+ 25 - 22
ide/text/fptools.pas

@@ -367,7 +367,7 @@ end;
 procedure TToolParamValidator.Error;
 begin
   MsgParms[1].Long:=ErrorPos;
-  ErrorBox(^C'Error parsing parameters line at line position %d.',@MsgParms);
+  ErrorBox(msg_errorparsingparametersatpos,@MsgParms);
 end;
 
 function TToolParamValidator.IsValid(const S: string): Boolean;
@@ -386,20 +386,20 @@ begin
   KeyCount:=GetHotKeyCount;
 
   R.Assign(0,0,60,Max(3+KeyCount,12));
-  inherited Init(R,'Modify/New Tool');
+  inherited Init(R,dialog_modifynewtool);
   Tool:=ATool;
 
   GetExtent(R); R.Grow(-3,-2); R3.Copy(R);
   Inc(R.A.Y); R.B.Y:=R.A.Y+1; R.B.X:=R.A.X+36;
   New(TitleIL, Init(R, 128)); Insert(TitleIL);
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, '~T~itle', TitleIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_toolprop_title, TitleIL)));
   R.Move(0,3);
   New(ProgramIL, Init(R, 128)); Insert(ProgramIL);
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, 'Program ~p~ath', ProgramIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_toolprop_programpath, ProgramIL)));
   R.Move(0,3);
   New(ParamIL, Init(R, 128)); Insert(ParamIL);
   ParamIL^.SetValidator(New(PToolParamValidator, Init));
-  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, 'Command ~l~ine', ParamIL)));
+  R2.Copy(R); R2.Move(-1,-1); Insert(New(PLabel, Init(R2, label_toolprop_commandline, ParamIL)));
 
   R.Copy(R3); Inc(R.A.X,38); R.B.Y:=R.A.Y+KeyCount;
   Items:=nil;
@@ -438,7 +438,7 @@ var R,R2,R3: TRect;
     SB: PScrollBar;
 begin
   R.Assign(0,0,46,16);
-  inherited Init(R,'Tools');
+  inherited Init(R,dialog_tools);
 
   GetExtent(R); R.Grow(-3,-2); Inc(R.A.Y); R3.Copy(R); Dec(R.B.X,12);
   R2.Copy(R); R2.Move(1,0); R2.A.X:=R2.B.X-1;
@@ -446,18 +446,18 @@ begin
   New(ToolsLB, Init(R,1,SB));
   Insert(ToolsLB);
   R2.Copy(R); R2.Move(0,-1); R2.B.Y:=R2.A.Y+1; Dec(R2.A.X);
-  Insert(New(PLabel, Init(R2, '~P~rogram titles', ToolsLB)));
+  Insert(New(PLabel, Init(R2, label_tools_programtitles, ToolsLB)));
 
   R.Copy(R3); R.A.X:=R.B.X-10; R.B.Y:=R.A.Y+2;
-  Insert(New(PButton, Init(R, 'O~K~', cmOK, bfNormal)));
+  Insert(New(PButton, Init(R, button_OK, cmOK, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~E~dit', cmEditItem, bfDefault)));
+  Insert(New(PButton, Init(R, button_Edit, cmEditItem, bfDefault)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~N~ew', cmAddItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_New, cmAddItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, '~D~elete', cmDeleteItem, bfNormal)));
+  Insert(New(PButton, Init(R, button_Delete, cmDeleteItem, bfNormal)));
   R.Move(0,2);
-  Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
+  Insert(New(PButton, Init(R, button_Cancel, cmCancel, bfNormal)));
   SelectNext(false);
 end;
 
@@ -532,7 +532,7 @@ var P: PTool;
     W: word;
 begin
   if ToolsLB^.Range>=MaxToolCount then
-    begin InformationBox(^C'Can''t install more tools...',nil); Exit; end;
+    begin InformationBox(msg_cantinstallmoretools,nil); Exit; end;
   IC:=ToolsLB^.Range=0;
   if IC=false then
     begin
@@ -691,14 +691,14 @@ var
         (Sec^.SearchEntry(tieOrigin)<>nil) and
         (Sec^.SearchEntry(tieSize)<>nil);
     if OK=false then
-      begin ErrorBox('Required property missing in ['+Sec^.GetName+']',nil); Exit; end;
+      begin ErrorBox(FormatStrStr(msg_requiredparametermissingin,Sec^.GetName),nil); Exit; end;
 
     Typ:=UpcaseStr(Trim(F^.GetEntry(Sec^.GetName,tieType,'')));
     if Typ=vtsCheckBox    then ViewTypes[ViewCount]:=vtCheckBox    else
     if Typ=vtsRadioButton then ViewTypes[ViewCount]:=vtRadioButton else
     if Typ=vtsInputLine   then ViewTypes[ViewCount]:=vtInputLine   else
     if Typ=vtsLabel       then ViewTypes[ViewCount]:=vtLabel       else
-     begin OK:=false; ErrorBox('Unknown type in ['+Sec^.GetName+']',nil); Exit; end;
+     begin OK:=false; ErrorBox(FormatStrStr(msg_unknowntypein,Sec^.GetName),nil); Exit; end;
 
     ViewNames[ViewCount]:=Sec^.GetName;
     GetCoordEntry(F,Sec^.GetName,tieOrigin,P1);
@@ -712,14 +712,14 @@ var
           OK:=OK and (Sec^.SearchEntry(tieLink)<>nil) and
                      (Sec^.SearchEntry(tieText)<>nil);
           if OK=false then
-            begin ErrorBox('Required property missing in ['+Sec^.GetName+']',nil); Exit; end;
+            begin ErrorBox(FormatStrStr(msg_requiredpropertymissingin,Sec^.GetName),nil); Exit; end;
         end;
       vtInputLine  : ;
       vtCheckBox   :
         begin
           OK:=OK and (Sec^.SearchEntry(tieName)<>nil);
           if OK=false then
-            begin ErrorBox(tieName+' property missing in ['+Sec^.GetName+']',nil); Exit; end;
+            begin ErrorBox(FormatStrStr2(msg_propertymissingin,tieName,Sec^.GetName),nil); Exit; end;
         end;
       vtRadioButton:
         begin
@@ -729,7 +729,7 @@ var
           ViewItemCount[ViewCount]:=Count;
           OK:=Count>0;
           if OK=false then
-            begin ErrorBox('Invalid number of items in ['+Sec^.GetName+']',nil); Exit; end;
+            begin ErrorBox(FormatStrStr(msg_invaliditemsin,Sec^.GetName),nil); Exit; end;
         end;
     end;
 
@@ -751,7 +751,7 @@ begin
     OK:=OK and (CmdLine<>'');
   end;
   if OK=false then
-    begin ErrorBox('Required property missing in ['+_IS^.GetName+']',nil); Exit; end;
+    begin ErrorBox(FormatStrStr(msg_requiredpropertymissingin,_IS^.GetName),nil); Exit; end;
 
   if OK then
     begin
@@ -1168,7 +1168,7 @@ begin
                   if CheckOnly=false then
                     begin
                       S:=copy(Params,I+1,255);
-                      if InputBox('Program Arguments', '~E~nter program argument',
+                      if InputBox(dialog_programarguments, label_enterprogramargument,
                         S,255-I+1)=cmOK then
                         begin
                           ReplacePart(LastWordStart,255,S);
@@ -1419,7 +1419,7 @@ var R: TRect;
     HSB,VSB: PScrollBar;
 begin
   Desktop^.GetExtent(R); R.A.Y:=R.B.Y-7;
-  inherited Init(R,'Messages',SearchFreeWindowNo);
+  inherited Init(R,dialog_messages,SearchFreeWindowNo);
   HelpCtx:=hcMessagesWindow;
 
   HSB:=StandardScrollBar(sbHorizontal+sbHandleKeyboard); Insert(HSB);
@@ -1507,7 +1507,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.18  2000-04-25 08:42:33  pierre
+  Revision 1.19  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.18  2000/04/25 08:42:33  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.17  2000/04/18 11:42:37  pierre

+ 65 - 37
ide/text/fpviews.pas

@@ -159,6 +159,7 @@ type
       Editor    : PSourceEditor;
       Indicator : PIndicator;
       constructor Init(var Bounds: TRect; AFileName: string);
+      function    GetTitle(MaxSize: sw_Integer): TTitleStr; virtual;
       procedure   SetTitle(ATitle: string); virtual;
       procedure   UpdateTitle; virtual;
       procedure   HandleEvent(var Event: TEvent); virtual;
@@ -434,7 +435,7 @@ uses
   gdbint,
 {$endif NODEBUG}
   {$ifdef VESA}Vesa,{$endif}
-  FPSwitch,FPSymbol,FPDebug,FPVars,FPUtils,FPCompile,FPHelp,
+  FPString,FPSwitch,FPSymbol,FPDebug,FPVars,FPUtils,FPCompile,FPHelp,
   FPTools,FPIDE,FPCodTmp,FPCodCmp;
 
 const
@@ -994,16 +995,16 @@ function TSourceEditor.GetLocalMenu: PMenu;
 var M: PMenu;
 begin
   M:=NewMenu(
-    NewItem('Cu~t~','Shift+Del',kbShiftDel,cmCut,hcCut,
-    NewItem('~C~opy','Ctrl+Ins',kbCtrlIns,cmCopy,hcCopy,
-    NewItem('~P~aste','Shift+Ins',kbShiftIns,cmPaste,hcPaste,
-    NewItem('C~l~ear','Ctrl+Del',kbCtrlDel,cmClear,hcClear,
+    NewItem(menu_edit_cut,menu_key_edit_cut,kbShiftDel,cmCut,hcCut,
+    NewItem(menu_edit_copy,menu_key_edit_copy,kbCtrlIns,cmCopy,hcCopy,
+    NewItem(menu_edit_paste,menu_key_edit_paste,kbShiftIns,cmPaste,hcPaste,
+    NewItem(menu_edit_clear,menu_key_edit_clear,kbCtrlDel,cmClear,hcClear,
     NewLine(
-    NewItem('Open ~f~ile at cursor','',kbNoKey,cmOpenAtCursor,hcOpenAtCursor,
-    NewItem('~B~rowse symbol at cursor','',kbNoKey,cmBrowseAtCursor,hcBrowseAtCursor,
-    NewItem('Topic ~s~earch','Ctrl+F1',kbCtrlF1,cmHelpTopicSearch,hcHelpTopicSearch,
+    NewItem(menu_srclocal_openfileatcursor,'',kbNoKey,cmOpenAtCursor,hcOpenAtCursor,
+    NewItem(menu_srclocal_browseatcursor,'',kbNoKey,cmBrowseAtCursor,hcBrowseAtCursor,
+    NewItem(menu_srclocal_topicsearch,menu_key_help_topicsearch,kbCtrlF1,cmHelpTopicSearch,hcHelpTopicSearch,
     NewLine(
-    NewItem('~O~ptions...','',kbNoKey,cmEditorOptions,hcEditorOptions,
+    NewItem(menu_srclocal_options,'',kbNoKey,cmEditorOptions,hcEditorOptions,
     nil)))))))))));
   GetLocalMenu:=M;
 end;
@@ -1218,12 +1219,12 @@ function TFPHelpViewer.GetLocalMenu: PMenu;
 var M: PMenu;
 begin
   M:=NewMenu(
-    NewItem('C~o~ntents','',kbNoKey,cmHelpContents,hcHelpContents,
-    NewItem('~I~ndex','Shift+F1',kbShiftF1,cmHelpIndex,hcHelpIndex,
-    NewItem('~T~opic search','Ctrl+F1',kbCtrlF1,cmHelpTopicSearch,hcHelpTopicSearch,
-    NewItem('~P~revious topic','Alt+F1',kbAltF1,cmHelpPrevTopic,hcHelpPrevTopic,
+    NewItem(menu_hlplocal_contents,'',kbNoKey,cmHelpContents,hcHelpContents,
+    NewItem(menu_hlplocal_index,menu_key_hlplocal_index,kbShiftF1,cmHelpIndex,hcHelpIndex,
+    NewItem(menu_hlplocal_topicsearch,menu_key_hlplocal_topicsearch,kbCtrlF1,cmHelpTopicSearch,hcHelpTopicSearch,
+    NewItem(menu_hlplocal_prevtopic,menu_key_hlplocal_prevtopic,kbAltF1,cmHelpPrevTopic,hcHelpPrevTopic,
     NewLine(
-    NewItem('~C~opy','Ctrl+Ins',kbCtrlIns,cmCopy,hcCopy,
+    NewItem(menu_hlplocal_copy,menu_key_hlplocal_copy,kbCtrlIns,cmCopy,hcCopy,
     nil)))))));
   GetLocalMenu:=M;
 end;
@@ -1329,7 +1330,7 @@ begin
   if LoadFile then
     begin
       if Editor^.LoadFile=false then
-        ErrorBox(#3'Error reading file.',nil)
+        ErrorBox(FormatStrStr(msg_errorreadingfile,''),nil)
       else if Editor^.GetModified then
         begin
           PA[1]:=@AFileName;
@@ -1359,6 +1360,11 @@ begin
   end;
 end;
 
+function TSourceWindow.GetTitle(MaxSize: sw_Integer): TTitleStr;
+begin
+  GetTitle:=OptimizePath(inherited GetTitle(255),MaxSize);
+end;
+
 procedure TSourceWindow.SetTitle(ATitle: string);
 begin
   if Title<>nil then DisposeStr(Title);
@@ -1386,6 +1392,9 @@ begin
         case Event.Command of
           cmSave :
             if Editor^.IsClipboard=false then
+             if Editor^.FileName='' then
+              Editor^.SaveAs
+             else
               Editor^.Save;
           cmSaveAs :
             if Editor^.IsClipboard=false then
@@ -1458,7 +1467,7 @@ end;
 constructor TSourceWindow.Load(var S: TStream);
 begin
   Title:=S.ReadStr;
-  PushStatus('Loading '+GetStr(Title));
+  PushStatus(FormatStrStr(msg_loadingfile,GetStr(Title)));
   inherited Load(S);
   GetSubViewPtr(S,Indicator);
   GetSubViewPtr(S,Editor);
@@ -1470,7 +1479,7 @@ end;
 procedure TSourceWindow.Store(var S: TStream);
 begin
   S.WriteStr(Title);
-  PushStatus('Storing '+GetStr(Title));
+  PushStatus(FormatStrStr(msg_storingfile,GetStr(Title)));
   inherited Store(S);
 
   PutSubViewPtr(S,Indicator);
@@ -1480,7 +1489,7 @@ end;
 
 destructor TSourceWindow.Done;
 begin
-  PushStatus('Closing '+GetStr(Title));
+  PushStatus(FormatStrStr(msg_closingfile,GetStr(Title)));
   if not IDEApp.IsClosing then
     Message(Application,evBroadcast,cmSourceWndClosing,@Self);
   inherited Done;
@@ -1544,7 +1553,7 @@ constructor TGDBWindow.Init(var Bounds: TRect);
 var HSB,VSB: PScrollBar;
     R: TRect;
 begin
-  inherited Init(Bounds,'GDB window',0);
+  inherited Init(Bounds,dialog_gdbwindow,0);
   Options:=Options or ofTileAble;
   AutoNumber:=true;
   HelpCtx:=hcGDBWindow;
@@ -1562,7 +1571,7 @@ begin
   if ExistsFile(GDBOutputFile) then
     begin
       if Editor^.LoadFile=false then
-        ErrorBox(#3'Error reading file'#13#3+GDBOutputFile,nil);
+        ErrorBox(FormatStrStr(msg_errorreadingfile,GDBOutputFile),nil);
     end
   else
   { Empty files are buggy !! }
@@ -1662,7 +1671,7 @@ var R: TRect;
 begin
   Desktop^.GetExtent(R);
   inherited Init(R, '');
-  SetTitle('Clipboard');
+  SetTitle(dialog_clipboard);
   HelpCtx:=hcClipboardWindow;
   Number:=wnNoNumber;
   AutoNumber:=true;
@@ -1723,10 +1732,10 @@ var M: PMenu;
 begin
   if (Owner<>nil) and (Owner^.GetState(sfModal)) then M:=nil else
   M:=NewMenu(
-    NewItem('~C~lear','',kbNoKey,cmMsgClear,hcMsgClear,
+    NewItem(menu_msglocal_clear,'',kbNoKey,cmMsgClear,hcMsgClear,
     NewLine(
-    NewItem('~G~oto source','',kbNoKey,cmMsgGotoSource,hcMsgGotoSource,
-    NewItem('~T~rack source','',kbNoKey,cmMsgTrackSource,hcMsgTrackSource,
+    NewItem(menu_msglocal_gotosource,'',kbNoKey,cmMsgGotoSource,hcMsgGotoSource,
+    NewItem(menu_msglocal_tracksource,'',kbNoKey,cmMsgTrackSource,hcMsgTrackSource,
     nil)))));
   GetLocalMenu:=M;
 end;
@@ -2076,7 +2085,7 @@ var R,R2: TRect;
 const White = 15;
 begin
   Desktop^.GetExtent(R); R.A.Y:=R.B.Y-13;
-  inherited Init(R, 'Program Information', wnNoNumber);
+  inherited Init(R, dialog_programinformation, wnNoNumber);
 
   HelpCtx:=hcInfoWindow;
 
@@ -2150,12 +2159,21 @@ end;
 
 procedure TProgramInfoWindow.Update;
 begin
+  ClearFormatParams;
+  AddFormatParamStr(label_proginfo_currentmodule);
+  AddFormatParamStr(MainFile);
+  AddFormatParamStr(label_proginfo_lastexitcode);
+  AddFormatParamInt(LastExitCode);
+  AddFormatParamStr(label_proginfo_availablememory);
+  AddFormatParamInt(MemAvail div 1024);
   InfoST^.SetText(
+   FormatStrF(
     {#13+ }
-    '   Current module : '+MainFile+#13+
-    '   Last exit code : '+IntToStr(LastExitCode)+#13+
-    ' Available memory : '+IntToStrL(MemAvail div 1024,5)+'K'+#13+
-    ''
+    '%24s : %s'#13+
+    '%24s : %d'#13+
+    '%24s : %5d'+'K'+#13+
+    '',
+   FormatParams)
   );
 end;
 
@@ -2604,7 +2622,7 @@ var R: TRect;
     VSB,HSB: PScrollBar;
 begin
   Desktop^.GetExtent(R);
-  inherited Init(R, 'User screen', ANumber);
+  inherited Init(R, dialog_userscreen, ANumber);
   Options:=Options or ofTileAble;
   GetExtent(R); R.Grow(-1,-1); R.Move(1,0); R.A.X:=R.B.X-1;
   New(VSB, Init(R)); VSB^.Options:=VSB^.Options or ofPostProcess;
@@ -2681,7 +2699,7 @@ var R: TRect;
 begin
   if Assigned(Bounds) then R.Copy(Bounds^) else
     GetNextEditorBounds(R);
-  PushStatus('Opening source file... ('+SmartPath(FileName)+')');
+  PushStatus(FormatStrStr(msg_openingsourcefile,SmartPath(FileName)));
   New(W, Init(R, FileName));
   if ShowIt=false then
     W^.Hide;
@@ -2860,13 +2878,20 @@ begin
   R.Assign(0,0,0,0);
   New(E, Init(R,nil,nil,nil,nil,FileName));
   OK:=E<>nil;
-  if OK then OK:=E^.LoadFile;
+  if OK then
+  begin
+    PushStatus(FormatStrStr(msg_readingfileineditor,FileName));
+    OK:=E^.LoadFile;
+    PopStatus;
+   end;
   if OK then
     begin
+      Editor^.Lock;
       E^.SelectAll(true);
       Editor^.InsertFrom(E);
       Editor^.SetCurPtr(0,0);
       Editor^.SelectAll(false);
+      Editor^.UnLock;
       Dispose(E, Done);
     end;
   StartEditor:=OK;
@@ -2981,7 +3006,7 @@ begin
   OSStr:='OS/2';
 {$endif}
   R.Assign(0,0,38,14{$ifdef NODEBUG}-1{$endif});
-  inherited Init(R, 'About');
+  inherited Init(R, dialog_about);
 
   GetExtent(R); R.Grow(-3,-2);
   R2.Copy(R); R2.B.Y:=R2.A.Y+1;
@@ -2991,12 +3016,12 @@ begin
     {$ifdef FPC}+' '+{$i %date%}{$endif}
     )));
   R2.Move(0,1);
-  Insert(New(PStaticText, Init(R2, ^C'(Compiler Version '+Version_String+')')));
+  Insert(New(PStaticText, Init(R2, FormatStrStr2(^C'(%s %s)',label_about_compilerversion,Version_String))));
 {$ifndef NODEBUG}
   if pos('Fake',GDBVersion)=0 then
     begin
       R2.Move(0,1);
-      Insert(New(PStaticText, Init(R2, ^C'(Debugger '+GDBVersion+')')));
+      Insert(New(PStaticText, Init(R2, FormatStrStr2(^C'(%s %s)',label_about_debugger,GDBVersion))));
       R2.Move(0,1);
     end
   else
@@ -3347,7 +3372,7 @@ end;
 
 procedure NoDebugger;
 begin
-  InformationBox('No debugger support available.',nil);
+  InformationBox(msg_nodebuggersupportavailable,nil);
 end;
 
 procedure RegisterFPViews;
@@ -3369,7 +3394,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.68  2000-04-25 08:42:34  pierre
+  Revision 1.69  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.68  2000/04/25 08:42:34  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.67  2000/04/18 11:42:37  pierre

+ 1 - 0
ide/text/globdir.inc

@@ -106,6 +106,7 @@
   {$define DEBUG}
   {$undef EXEDEBUG}
   {$undef USERESSTRINGS}
+  {$define LANG_HUN}
 {$endif}
 
 {$ifdef NOWINCLIP}

+ 11 - 9
ide/text/gplprog.pt

@@ -1,9 +1,9 @@
 {
-    $Id$
-    <partof>
-    Copyright (c) 1998 by <yourname>
+    $Id$DATE $TIME peter Exp $
+    This file is part of $PROMPT('This file is part of')
+    Copyright (c) $DATE('yyyy') by $PROMPT('Your name')
 
-    <infoline>
+    $PROMPT('Description of file')
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -13,16 +13,18 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
-program ;
+program $PROMPT('program');
 
-uses ;
+uses $PROMPT('uses');
 
 BEGIN
 END.
 {
   $Log$
-  Revision 1.1  1999-02-19 15:37:26  peter
-    + init
+  Revision 1.2  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
 
-}
+  Revision 1.1  1999/02/19 15:37:26  peter
+    + init
 
+}

+ 10 - 7
ide/text/gplunit.pt

@@ -1,9 +1,9 @@
 {
-    $Id$
-    <partof>
-    Copyright (c) 1998 by <yourname>
+    $Id$DATE $TIME peter Exp $
+    This file is part of $PROMPT('This file is part of')
+    Copyright (c) $DATE('yyyy') by $PROMPT('Your name')
 
-    <infoline>
+    $PROMPT('Description of file')
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -13,11 +13,11 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
-unit ;
+unit $PROMPT('unit');
 
 interface
 
-uses ;
+uses $PROMPT('uses');
 
 const
 
@@ -30,7 +30,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.1  1999-02-19 15:37:26  peter
+  Revision 1.2  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.1  1999/02/19 15:37:26  peter
     + init
 
 }

+ 2 - 2
ide/text/program.pt

@@ -1,6 +1,6 @@
-program ;
+program $PROMPT('program');
 
-uses ;
+uses $PROMPT('uses');
 
 BEGIN
 END.

+ 2 - 2
ide/text/unit.pt

@@ -1,8 +1,8 @@
-unit ;
+unit $PROMPT('unit');
 
 interface
 
-uses ;
+uses $PROMPT('uses');
 
 const
 

+ 148 - 4
ide/text/wutils.pas

@@ -21,7 +21,7 @@ interface
 
 
 uses
-  Objects;
+  Dos,Objects;
 
 type
   PByteArray = ^TByteArray;
@@ -86,10 +86,13 @@ function UpcaseStr(const S: string): string;
 function LowCase(C: char): char;
 function LowcaseStr(S: string): string;
 function RExpand(const S: string; MinLen: byte): string;
+function LExpand(const S: string; MinLen: byte): string;
 function LTrim(const S: string): string;
 function RTrim(const S: string): string;
 function Trim(const S: string): string;
 function IntToStr(L: longint): string;
+function IntToStrL(L: longint; MinLen: sw_integer): string;
+function IntToStrZ(L: longint; MinLen: sw_integer): string;
 function StrToInt(const S: string): longint;
 function IntToHex(L: longint): string;
 function GetStr(P: PString): string;
@@ -107,6 +110,7 @@ function GetFileTime(const FileName: string): longint;
 function GetShortName(const n:string):string;
 function GetLongName(const n:string):string;
 function TrimEndSlash(const Path: string): string;
+function OptimizePath(Path: string; MaxLen: integer): string;
 function CompareText(S1, S2: string): integer;
 
 function FormatPath(Path: string): string;
@@ -115,6 +119,11 @@ function CompleteURL(const Base, URLRef: string): string;
 
 function EatIO: integer;
 
+function Now: longint;
+
+function FormatDateTimeL(L: longint; const Format: string): string;
+function FormatDateTime(const D: DateTime; const Format: string): string;
+
 procedure GiveUpTimeSlice;
 
 const LastStrToIntResult : integer = 0;
@@ -128,7 +137,7 @@ uses
 {$ifdef win32}
   windows,
 {$endif win32}
-  Strings, Dos;
+  Strings;
 
 {$ifndef NOOBJREG}
 const
@@ -249,6 +258,14 @@ begin
     RExpand:=S;
 end;
 
+function LExpand(const S: string; MinLen: byte): string;
+begin
+  if length(S)<MinLen then
+    LExpand:=CharStr(' ',MinLen-length(S))+S
+  else
+    LExpand:=S;
+end;
+
 function LTrim(const S: string): string;
 var
   i : longint;
@@ -281,6 +298,19 @@ begin
   IntToStr:=S;
 end;
 
+function IntToStrL(L: longint; MinLen: sw_integer): string;
+begin
+  IntToStrL:=LExpand(IntToStr(L),MinLen);
+end;
+
+function IntToStrZ(L: longint; MinLen: sw_integer): string;
+var S: string;
+begin
+  S:=IntToStr(L);
+  if length(S)<MinLen then
+    S:=CharStr('0',MinLen-length(S))+S;
+  IntToStrZ:=S;
+end;
 
 function StrToInt(const S: string): longint;
 var L: longint;
@@ -690,7 +720,7 @@ begin
   P:=Pos(':',D); if P=0 then Drv:='' else begin Drv:=copy(D,1,P); Delete(D,1,P); end;
   FSplit(FormatPath(Base),BD,BN,BE);
   P:=Pos(':',BD); if P=0 then BDrv:='' else begin BDrv:=copy(BD,1,P); Delete(BD,1,P); end;
-  if copy(D,1,1)<>'\' then
+  if copy(D,1,1)<>DirSep then
     Complete:=BD+D+N+E;
   if Drv='' then
     Complete:=BDrv+Complete;
@@ -716,6 +746,117 @@ begin
   CompleteURL:=S;
 end;
 
+function OptimizePath(Path: string; MaxLen: integer): string;
+var i                : integer;
+    BackSlashs       : array[1..20] of integer;
+    BSCount          : integer;
+    Jobbra           : boolean;
+    Jobb, Bal        : byte;
+    Hiba             : boolean;
+begin
+ if length(Path)>MaxLen then
+ begin
+  BSCount:=0; Jobbra:=true;
+  for i:=1 to length(Path) do if Path[i]=DirSep then
+      begin
+        Inc(BSCount);
+        BackSlashs[BSCount]:=i;
+      end;
+  i:=BSCount div 2;
+  Hiba:=false;
+  Bal:=i; Jobb:=i+1;
+  case i of 0  : ;
+            1  : Path:=copy(Path, 1, BackSlashs[1])+'..'+
+                       copy(Path, BackSlashs[2], length(Path));
+            else begin
+                   while (BackSlashs[Bal]+(length(Path)-BackSlashs[Jobb]) >=
+                          MaxLen) and not Hiba do
+                         begin
+                           if Jobbra then begin
+                                           if Jobb<BSCount then inc(Jobb)
+                                                           else Hiba:=true;
+                                           Jobbra:=false;
+                                          end
+                                     else begin
+                                           if Bal>1 then dec(Bal)
+                                                    else Hiba:=true;
+                                           Jobbra:=true;
+                                          end;
+                         end;
+                   Path:=copy(Path, 1, BackSlashs[Bal])+'..'+
+                         copy(Path, BackSlashs[Jobb], length(Path));
+                 end;
+  end;
+ end;
+  if length(Path)>MaxLen then
+  begin
+    i:=Pos('\..\',Path);
+    if i>0 then Path:=copy(Path,1,i-1)+'..'+copy(Path,i+length('\..\'),length(Path));
+  end;
+ OptimizePath:=Path;
+end;
+
+function Now: longint;
+var D: DateTime;
+    W: word;
+    L: longint;
+begin
+  FillChar(D,sizeof(D),0);
+  GetDate(D.Year,D.Month,D.Day,W);
+  GetTime(D.Hour,D.Min,D.Sec,W);
+  PackTime(D,L);
+  Now:=L;
+end;
+
+function FormatDateTimeL(L: longint; const Format: string): string;
+var D: DateTime;
+begin
+  UnpackTime(L,D);
+  FormatDateTimeL:=FormatDateTime(D,Format);
+end;
+
+function FormatDateTime(const D: DateTime; const Format: string): string;
+var I: sw_integer;
+    CurCharStart: sw_integer;
+    CurChar: char;
+    CurCharCount: integer;
+    DateS: string;
+    C: char;
+procedure FlushChars;
+var S: string;
+    I: sw_integer;
+begin
+  S:='';
+  for I:=1 to CurCharCount do
+    S:=S+CurChar;
+  case CurChar of
+    'y' : S:=IntToStrL(D.Year,length(S));
+    'm' : S:=IntToStrZ(D.Month,length(S));
+    'd' : S:=IntToStrZ(D.Day,length(S));
+    'h' : S:=IntToStrZ(D.Hour,length(S));
+    'n' : S:=IntToStrZ(D.Min,length(S));
+    's' : S:=IntToStrZ(D.Sec,length(S));
+  end;
+  DateS:=DateS+S;
+end;
+begin
+  DateS:='';
+  CurCharStart:=-1; CurCharCount:=0; CurChar:=#0;
+  for I:=1 to length(Format) do
+  begin
+    C:=Format[I];
+    if (C<>CurChar) or (CurCharStart=-1) then
+      begin
+        if CurCharStart<>-1 then FlushChars;
+        CurCharCount:=1; CurCharStart:=I;
+      end
+    else
+      Inc(CurCharCount);
+    CurChar:=C;
+  end;
+  FlushChars;
+  FormatDateTime:=DateS;
+end;
 
 procedure GiveUpTimeSlice;
 {$ifdef GO32V2}{$define DOS}{$endif}
@@ -748,7 +889,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.20  2000-04-25 08:42:36  pierre
+  Revision 1.21  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.20  2000/04/25 08:42:36  pierre
    * New Gabor changes : see fixes.txt
 
   Revision 1.19  2000/04/18 11:42:39  pierre

+ 80 - 1
ide/text/wviews.pas

@@ -193,6 +193,21 @@ function  GetMenuItemBefore(Menu:PMenu; BeforeOf: PMenuItem): PMenuItem;
 
 procedure NotImplemented;
 
+var  FormatParams     : array[1..20] of longint;
+     FormatParamCount : integer;
+     FormatParamStrs  : array[1..10] of string;
+     FormatParamStrCount: integer;
+
+procedure ClearFormatParams;
+procedure AddFormatParam(P: pointer);
+procedure AddFormatParamInt(L: longint);
+procedure AddFormatParamChar(C: char);
+procedure AddFormatParamStr(const S: string);
+function FormatStrF(const Format: string; var Params): string;
+function FormatStrStr(const Format, Param: string): string;
+function FormatStrStr2(const Format, Param1,Param2: string): string;
+function FormatStrInt(const Format: string; L: longint): string;
+
 procedure RegisterWViews;
 
 implementation
@@ -2063,6 +2078,67 @@ begin
   S.Write(Default,SizeOf(Default));
 end;
 
+procedure ClearFormatParams;
+begin
+  FormatParamCount:=0; FillChar(FormatParams,sizeof(FormatParams),0);
+  FormatParamStrCount:=0;
+end;
+
+procedure AddFormatParam(P: pointer);
+begin
+  AddFormatParamInt(longint(P));
+end;
+
+procedure AddFormatParamInt(L: longint);
+begin
+  Inc(FormatParamCount);
+  FormatParams[FormatParamCount]:=L;
+end;
+
+procedure AddFormatParamChar(C: char);
+begin
+  AddFormatParamInt(ord(C));
+end;
+
+procedure AddFormatParamStr(const S: string);
+begin
+  Inc(FormatParamStrCount); FormatParamStrs[FormatParamStrCount]:=S;
+  AddFormatParam(@FormatParamStrs[FormatParamStrCount]);
+end;
+
+function FormatStrF(const Format: string; var Params): string;
+var S: string;
+begin
+  S:='';
+  FormatStr(S,Format,Params);
+  FormatStrF:=S;
+end;
+
+function FormatStrStr(const Format, Param: string): string;
+var S: string;
+    P: pointer;
+begin
+  P:=@Param;
+  FormatStr(S,Format,P);
+  FormatStrStr:=S;
+end;
+
+function FormatStrStr2(const Format, Param1,Param2: string): string;
+var S: string;
+    P: array[1..2] of pointer;
+begin
+  P[1]:=@Param1; P[2]:=@Param2;
+  FormatStr(S,Format,P);
+  FormatStrStr2:=S;
+end;
+
+function FormatStrInt(const Format: string; L: longint): string;
+var S: string;
+begin
+  FormatStr(S,Format,L);
+  FormatStrInt:=S;
+end;
+
 procedure RegisterWViews;
 begin
 {$ifndef NOOBJREG}
@@ -2077,7 +2153,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.12  2000-04-18 11:42:39  pierre
+  Revision 1.13  2000-05-02 08:42:29  pierre
+   * new set of Gabor changes: see fixes.txt
+
+  Revision 1.12  2000/04/18 11:42:39  pierre
    lot of Gabor changes : see fixes.txt
 
   Revision 1.11  2000/01/10 15:53:37  pierre