diff --git a/applications/lazedit/EPlus.ini b/applications/lazedit/EPlus.ini
index 56ceb5887..002d1f51d 100644
--- a/applications/lazedit/EPlus.ini
+++ b/applications/lazedit/EPlus.ini
@@ -1,6 +1,6 @@
[Editor]
-FontName=
-FontSize=0
+FontName=Courier New
+FontSize=10
[MainForm]
Left=634
diff --git a/applications/lazedit/build/innosetup.iss b/applications/lazedit/build/innosetup.iss
new file mode 100644
index 000000000..88f4b66d9
--- /dev/null
+++ b/applications/lazedit/build/innosetup.iss
@@ -0,0 +1,52 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+[Setup]
+AppName=LazEyes
+AppVerName=LazEyes v2.0
+AppPublisherURL=http://wiki.lazarus.freepascal.org/LazEyes
+AppSupportURL=http://wiki.lazarus.freepascal.org/LazEyes
+AppUpdatesURL=http://wiki.lazarus.freepascal.org/LazEyes
+DefaultDirName={pf}\LazEyes
+DefaultGroupName=Free Pascal Applications Suite
+; LicenseFile=..\license.txt
+OutputDir=.\
+OutputBaseFilename=LazEyes2.0_install
+Compression=lzma
+SolidCompression=yes
+VersionInfoVersion=2.0
+AllowNoIcons=yes
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
+Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
+Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
+Name: "french"; MessagesFile: "compiler:Languages\French.isl"
+Name: "german"; MessagesFile: "compiler:Languages\German.isl"
+Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
+Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
+Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
+Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+Source: "..\lazeyes2.exe"; DestDir: "{app}"; Flags: ignoreversion
+; Source: "..\Images\*.png"; DestDir: "{app}\Images"; Flags: ignoreversion
+; Source: "..\libraries\pas_overlays\pas_overlays.dll"; DestDir: "{app}"; Flags: ignoreversion
+; Source: "..\libraries\videocard_checker\videocard_checker.dll"; DestDir: "{app}"; Flags: ignoreversion
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\LazEyes"; Filename: "{app}\lazeyes2.exe"
+Name: "{group}\{cm:ProgramOnTheWeb,LazEyes}"; Filename: "http://wiki.lazarus.freepascal.org/LazEyes"
+Name: "{group}\{cm:UninstallProgram,LazEyes}"; Filename: "{uninstallexe}"
+Name: "{commondesktop}\LazEyes"; Filename: "{app}\lazeyes2.exe"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\lazeyes2.exe"; Description: "{cm:LaunchProgram,LazEyes}"; Flags: nowait postinstall skipifsilent
+
+
+
diff --git a/applications/lazedit/eplus_config.pp b/applications/lazedit/eplus_config.pp
index 6c033e8d5..78c67a72b 100644
--- a/applications/lazedit/eplus_config.pp
+++ b/applications/lazedit/eplus_config.pp
@@ -39,7 +39,7 @@ unit EPlus_Config;
interface
uses
- SysUtils, Classes, EditorPageControl, EPlus_COmmons, CopyLeft, Forms,{FCL_Misc,} IniFiles,
+ SysUtils, Classes, EditorPageControl, EPlus_COmmons, lazedit_constants, Forms,{FCL_Misc,} IniFiles,
LCLProc;
type
@@ -71,6 +71,7 @@ type
FileTypeMaskList: TFileTypeMaskList;
TemplateMaskList: String;
RecentFiles: Array[0..MruEntries - 1] of String;
+ Translation: Integer;
end;
function LoadOptions(var Options: TEPlusOptions; FileName: String): Boolean;
@@ -82,6 +83,8 @@ function GetDefaultIniDir: String;
implementation
const
+ scGeneral = 'General';
+ idTranslation = 'Translation';
scMainForm = 'MainForm';
idTop = 'Top';
idLeft = 'Left';
@@ -159,6 +162,9 @@ begin
if (S <> '') then Options.FileTypeMaskList[ftIndex] := S;
end;
+ // Translation
+ Options.Translation := Ini.ReadInteger(scGeneral, idTranslation, 0);
+
finally
Ini.Free;
Ini := Nil;
@@ -228,6 +234,9 @@ begin
Ini.WriteString(scFileTypes, eftNames[ftIndex], Options.FileTypeMaskList[ftIndex]);
end;
+ // Translation
+ Ini.WriteInteger(scGeneral, idTranslation, Options.Translation);
+
try
Ini.UpdateFile;
Result := True;
diff --git a/applications/lazedit/htmldialogs.pp b/applications/lazedit/htmldialogs.pp
index cb32b768f..e38ae9dc0 100644
--- a/applications/lazedit/htmldialogs.pp
+++ b/applications/lazedit/htmldialogs.pp
@@ -36,7 +36,7 @@ interface
uses
Classes, SysUtils, HtmlCode, Controls, Forms,
- NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm, HtmlCharMap, NewTableForm, CopyLeft;
+ NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm, HtmlCharMap, NewTableForm, lazedit_constants;
type
diff --git a/applications/lazedit/lazedit.lpi b/applications/lazedit/lazedit.lpi
index b453430b3..789f617c4 100644
--- a/applications/lazedit/lazedit.lpi
+++ b/applications/lazedit/lazedit.lpi
@@ -75,7 +75,7 @@
-
+
@@ -83,7 +83,7 @@
-
+
@@ -94,9 +94,9 @@
-
-
-
+
+
+
@@ -115,7 +115,7 @@
-
+
@@ -372,29 +372,29 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
@@ -445,7 +445,7 @@
-
+
@@ -564,7 +564,7 @@
-
+
@@ -576,7 +576,7 @@
-
+
@@ -603,7 +603,7 @@
-
+
@@ -615,7 +615,7 @@
-
+
@@ -643,7 +643,7 @@
-
+
@@ -852,124 +852,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
diff --git a/applications/lazedit/lazedit.lpr b/applications/lazedit/lazedit.lpr
index bc613d2b7..6e8f307eb 100644
--- a/applications/lazedit/lazedit.lpr
+++ b/applications/lazedit/lazedit.lpr
@@ -7,7 +7,8 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
- Forms, main {,newtableform, test_ed, eplus_commons, CopyLeft, eplus_config, HtmlCharMap,
+ Forms, main,
+lazedit_translations {,newtableform, test_ed, eplus_commons, CopyLeft, eplus_config, HtmlCharMap,
HtmlDialogs, NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm}
{ you can add units after this };
diff --git a/applications/lazedit/copyleft.pp b/applications/lazedit/lazedit_constants.pp
similarity index 92%
rename from applications/lazedit/copyleft.pp
rename to applications/lazedit/lazedit_constants.pp
index c12f8dfca..89574f5bf 100644
--- a/applications/lazedit/copyleft.pp
+++ b/applications/lazedit/lazedit_constants.pp
@@ -1,4 +1,4 @@
-unit CopyLeft;
+unit lazedit_constants;
{
EPlus: a text editor with built-in features for HTML editing and
@@ -42,11 +42,11 @@ interface
//uses GPL;
const
- AppName = 'EPlus';
+ AppName = 'LazEdit';
AboutTitle = 'Over ' + AppName;
- AppVersion = 'Versie 1.0.0 RC1';
- CopyLeftStatement = 'Copyright (c) 2011, 2012 by Bart Broersma & FlyingSheep Inc.';
- MetaGeneratorName = AppName + #32 + AppVersion + ' by Bart Broersma and Flying Sheep Inc.';
+ AppVersion = 'Version 1.1';
+ CopyLeftStatement = 'Copyright (c) 2011, 2012 by Bart Broersma, FlyingSheep Inc. and Felipe Monteiro de Carvalho';
+ MetaGeneratorName = AppName + #32 + AppVersion;
AuthorWebName = 'Bart & Mariska''s Webstek';
AuthorWebUrl = 'http://home.tiscali.nl/~knmg0017/';
LicenseText = ''; //LGPL_Text;
diff --git a/applications/lazedit/lazedit_translations.pas b/applications/lazedit/lazedit_translations.pas
new file mode 100644
index 000000000..2585b0397
--- /dev/null
+++ b/applications/lazedit/lazedit_translations.pas
@@ -0,0 +1,302 @@
+unit lazedit_translations;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils;
+
+type
+
+ { TTranslations }
+
+ TTranslations = class(TObject)
+ public
+ { Main form }
+ { mnuEditPasteTableContentTab: TMenuItem;
+ mnuEditPasteSpecial: TMenuItem;
+ mnuAbout: TMenuItem;
+ mnuViewFont: TMenuItem;}
+ //File menu
+ mnuFile,
+ mnuFileOpen,
+ mnuFileNewFromTemplate,
+ mnuFileNew,
+{ mnuFileNewText,
+ mnuFileNewHtml: TMenuItem;
+ mnuFileNewXml: TMenuItem;
+ mnuFileNewCss: TMenuItem;
+ mnuFileNewJS: TMenuItem;
+ mnuFileNewFpc: TMenuItem;
+ mnuFileNewC: TMenuItem;
+ mnuFileNewPy: TMenuItem;
+ mnuFileNewPhp: TMenuItem;
+ mnuFileNewPerl: TMenuItem;
+ mnuFileNewShellScript: TMenuItem;
+ mnuFileNewBat: TMenuItem;
+ mnuFileNewIni: TMenuItem;}
+ mnuFileSave,
+ mnuFileSaveAs,
+ mnuFileSaveAll,
+ mnuFileCloseCurrent,
+ //mnuSep1: TMenuItem;
+ mnuFileOpenInBrowser,
+ //mnuSepAboveMru: TMenuItem;
+ mnuFileCloseApp,
+ //Edit menu
+ mnuEdit,
+ mnuEditUndo,
+ mnuEditRedo,
+ //mnuSep11: TMenuItem;
+ mnuEditCopy,
+ mnuEditCut,
+ mnuEditPaste,
+ mnuEditSelectAll
+ //mnuSep12: TMenuItem;
+{ mnuEditReplace: TMenuItem;
+ mnuEditFindNext: TMenuItem;
+ mnuEditFind: TMenuItem;
+ //Insert menu
+ mnuInsert: TMenuItem;
+ mnuInsertAnchor: TMenuItem;
+ mnuInsertList: TMenuItem;
+ mnuInsertUList: TMenuItem;
+ mnuInsertNList: TMenuItem;
+ mnuInsertWordList: TMenuItem;
+ mnuInsetListItem: TMenuItem;
+ mnuInsertWordTerm: TMenuItem;
+ mnuInsertWordDefinition: TMenuItem;
+ mnuInsertTable: TMenuItem;
+ mnInsertNewTable: TMenuItem;
+ mnuInsertTableCell: TMenuItem;
+ mnuInsertTableRow: TMenuItem;
+ mnuInsertPicture: TMenuItem;
+ mnuInsertSpecialChars: TMenuItem;
+ mnuInsertLineBreak: TMenuItem;
+ mnuInsertSep1: TMenuItem;
+ mnuInsertHtmlComment: TMenuItem;
+ mnuInsertJS: TMenuItem;
+ mnuInsertCssStyle: TMenuItem;
+ //Layout menu
+ mnuLayout: TMenuItem;
+ mnuLayoutBold: TMenuItem;
+ mnuLayoutAlignJustify: TMenuItem;
+ mnuLayoutItalic: TMenuItem;
+ mnuLayoutUnderline: TMenuItem;
+ mnuLayoutSub: TMenuItem;
+ mnuLayoutSup: TMenuItem;
+ mnuLayoutEmphasis: TMenuItem;
+ mnuLayoutStrong: TMenuItem;
+ mnuLayoutHeadings: TMenuItem;
+ mnuLayoutH1: TMenuItem;
+ mnuLayoutH2: TMenuItem;
+ mnuLayoutH3: TMenuItem;
+ mnuLayoutH4: TMenuItem;
+ mnuLayoutH5: TMenuItem;
+ mnuLayoutH6: TMenuItem;
+ mnuLayoutAlign: TMenuItem;
+ mnuLayoutAlignLeft: TMenuItem;
+ mnuLayoutAlignRight: TMenuItem;
+ mnuLayoutAlignCenter: TMenuItem;
+ mnuLayoutCode: TMenuItem;
+ mnuLayoutQuote: TMenuItem;
+ mnuLayoutBlockQuote: TMenuItem;
+ mnuLayoutPreformatted: TMenuItem;
+ //Grouping menu
+ mnuGrouping: TMenuItem;
+ mnuGroupingParagraph: TMenuItem;
+ mnuGroupingDiv: TMenuItem;
+ mnuGroupingSpan: TMenuItem;
+ //View menu
+ mnuView: TMenuItem;
+ mnuViewFontsize: TMenuItem;
+ mnuViewFontSizeUp: TMenuItem;
+ mnuViewFontsizeDown: TMenuItem;
+ mnuViewHighlighter: TMenuItem;
+ //these menu items MUST have names that are built like this:
+ //'mnuViewHL' + eftNames[SomeIndex]
+ mnuViewHLeftNone: TMenuItem;
+ mnuViewHLeftHtml: TMenuItem;
+ mnuViewHLeftXml: TMenuItem;
+ mnuViewHLeftCss: TMenuItem;
+ mnuViewHLeftJS: TMenuItem;
+ mnuViewHLeftFpc: TMenuItem;
+ mnuViewHLeftLfm: TMenuItem;
+ mnuViewHLeftC: TMenuItem;
+ mnuViewHLeftPy: TMenuItem;
+ mnuViewHLeftPhp: TMenuItem;
+ mnuViewHLeftPerl: TMenuItem;
+ mnuViewHLeftUNIXShell: TMenuItem;
+ mnuViewHLeftBat: TMenuItem;
+ mnuViewHLeftDiff: TMenuItem;
+ mnuViewHLeftIni: TMenuItem;
+ mnuViewHLeftPo: TMenuItem;
+ //Popup menus
+ //Popup menu for editor
+ EditorPopupMenu: TPopupMenu;
+ mnuEditPopupSelectAll: TMenuItem;
+ mnuEditPopupPaste: TMenuItem;
+ mnuEditPopupCut: TMenuItem;
+ mnuEditPopupCopy: TMenuItem;
+ //Dropdownmenu for HeadingBtn
+ HeadingDropDownMenu: TPopupMenu;
+ mnuPopupLayoutH6: TMenuItem;
+ mnuPopupLayoutH5: TMenuItem;
+ mnuPopupLayoutH4: TMenuItem;
+ mnuPopupLayoutH3: TMenuItem;
+ mnuPopupLayoutH2: TMenuItem;
+ mnuPopupLayoutH1: TMenuItem; }
+ { About box strings }
+// lpSupport, lpSupportInfo, lpLicense, lpLicenseInfo, lpAuthors,
+// lpContributorsTitle, lpAboutWindow, lpClose, lpInformation: string;
+ : string;
+ { Methods }
+ procedure TranslateToEnglish;
+ procedure TranslateToPortuguese;
+ procedure TranslateToDutch;
+ procedure TranslateToLanguageID(AID: Integer);
+ end;
+
+var
+ vTranslations: TTranslations;
+
+implementation
+
+{ TTranslations }
+
+procedure TTranslations.TranslateToEnglish;
+begin
+ mnuFile := 'File';
+ mnuFileOpen := 'Open';
+ mnuFileNewFromTemplate := 'New from template ...';
+ mnuFileNew := 'New';
+ { mnuFileNewText,
+ mnuFileNewHtml: TMenuItem;
+ mnuFileNewXml: TMenuItem;
+ mnuFileNewCss: TMenuItem;
+ mnuFileNewJS: TMenuItem;
+ mnuFileNewFpc: TMenuItem;
+ mnuFileNewC: TMenuItem;
+ mnuFileNewPy: TMenuItem;
+ mnuFileNewPhp: TMenuItem;
+ mnuFileNewPerl: TMenuItem;
+ mnuFileNewShellScript: TMenuItem;
+ mnuFileNewBat: TMenuItem;
+ mnuFileNewIni: TMenuItem;}
+ mnuFileSave := 'Save';
+ mnuFileSaveAs := 'Save as';
+ mnuFileSaveAll := 'Save all';
+ mnuFileCloseCurrent := 'Close current';
+ //mnuSep1: TMenuItem;
+ mnuFileOpenInBrowser := 'Open in browser';
+ //mnuSepAboveMru: TMenuItem;
+ mnuFileCloseApp := 'Close application';
+ //Edit menu
+ mnuEdit := 'Edit';
+ mnuEditUndo := 'Undo';
+ mnuEditRedo := 'Redo';
+ //mnuSep11: TMenuItem;
+ mnuEditCopy := 'Copy';
+ mnuEditCut := 'Cut';
+ mnuEditPaste := 'Paste';
+ mnuEditSelectAll := 'Select all';
+end;
+
+procedure TTranslations.TranslateToPortuguese;
+begin
+ mnuFile := '&Arquivo';
+ mnuFileOpen := 'Open';
+ mnuFileNewFromTemplate := 'Nieuw van sjabloon ...';
+ mnuFileNew := 'Open';
+ { mnuFileNewText,
+ mnuFileNewHtml: TMenuItem;
+ mnuFileNewXml: TMenuItem;
+ mnuFileNewCss: TMenuItem;
+ mnuFileNewJS: TMenuItem;
+ mnuFileNewFpc: TMenuItem;
+ mnuFileNewC: TMenuItem;
+ mnuFileNewPy: TMenuItem;
+ mnuFileNewPhp: TMenuItem;
+ mnuFileNewPerl: TMenuItem;
+ mnuFileNewShellScript: TMenuItem;
+ mnuFileNewBat: TMenuItem;
+ mnuFileNewIni: TMenuItem;}
+ mnuFileSave := 'Open';
+ mnuFileSaveAs := 'Open';
+ mnuFileSaveAll := 'Open';
+ mnuFileCloseCurrent := 'Open';
+ //mnuSep1: TMenuItem;
+ mnuFileOpenInBrowser := 'Open';
+ //mnuSepAboveMru: TMenuItem;
+ mnuFileCloseApp := 'Open';
+ //Edit menu
+ mnuEdit := 'Open';
+ mnuEditUndo := 'Open';
+ mnuEditRedo := 'Open';
+ //mnuSep11: TMenuItem;
+ mnuEditCopy := 'Open';
+ mnuEditCut := 'Open';
+ mnuEditPaste := 'Open';
+ mnuEditSelectAll := 'Open';
+end;
+
+procedure TTranslations.TranslateToDutch;
+begin
+ mnuFile := 'Bestand';
+ mnuFileOpen := 'Open';
+ mnuFileNewFromTemplate := 'Nieuw van sjabloon ...';
+ mnuFileNew := 'Open';
+ { mnuFileNewText,
+ mnuFileNewHtml: TMenuItem;
+ mnuFileNewXml: TMenuItem;
+ mnuFileNewCss: TMenuItem;
+ mnuFileNewJS: TMenuItem;
+ mnuFileNewFpc: TMenuItem;
+ mnuFileNewC: TMenuItem;
+ mnuFileNewPy: TMenuItem;
+ mnuFileNewPhp: TMenuItem;
+ mnuFileNewPerl: TMenuItem;
+ mnuFileNewShellScript: TMenuItem;
+ mnuFileNewBat: TMenuItem;
+ mnuFileNewIni: TMenuItem;}
+ mnuFileSave := 'Op&slaan';
+ mnuFileSaveAs := 'Opslaan &als ...';
+ mnuFileSaveAll := '&Alles opslaan';
+ mnuFileCloseCurrent := 'Sl&uiten';
+ //mnuSep1: TMenuItem;
+ mnuFileOpenInBrowser := 'Open in &browser';
+ //mnuSepAboveMru: TMenuItem;
+ mnuFileCloseApp := 'Afsluiten';
+ //Edit menu
+ mnuEdit := 'Be&werken';
+ mnuEditUndo := '&Ongedaan maken';
+ mnuEditRedo := '&Herhalen';
+ //mnuSep11: TMenuItem;
+ mnuEditCopy := '&Kopiëren';
+ mnuEditCut := 'K&nippen';
+ mnuEditPaste := '&Plakken';
+ mnuEditSelectAll := '&Alles selecteren';
+end;
+
+procedure TTranslations.TranslateToLanguageID(AID: Integer);
+begin
+ case AID of
+ 1: TranslateToDutch;
+ 2: TranslateToPortuguese;
+ else
+ TranslateToEnglish;
+ end;
+end;
+
+initialization
+
+vTranslations := TTranslations.Create;
+vTranslations.TranslateToEnglish
+
+finalization
+
+FreeAndNil(vTranslations);
+
+end.
+
diff --git a/applications/lazedit/main.lfm b/applications/lazedit/main.lfm
index 2a8f17b21..fdac082d2 100644
--- a/applications/lazedit/main.lfm
+++ b/applications/lazedit/main.lfm
@@ -1735,6 +1735,26 @@ object EPlusForm: TEPlusForm
end
end
end
+ object mnuTools: TMenuItem
+ Caption = 'Tools'
+ object mnuLanguage: TMenuItem
+ Caption = 'Language'
+ object mnuEnglish: TMenuItem
+ Caption = 'English'
+ OnClick = mnuLanguageChangeClick
+ end
+ object mnuDutch: TMenuItem
+ Tag = 1
+ Caption = 'Dutch'
+ OnClick = mnuLanguageChangeClick
+ end
+ object mnuPortuguese: TMenuItem
+ Tag = 2
+ Caption = 'Português'
+ OnClick = mnuLanguageChangeClick
+ end
+ end
+ end
object mnuAbout: TMenuItem
Action = acAbout
end
diff --git a/applications/lazedit/main.pp b/applications/lazedit/main.pp
index 8102abb76..b44b976e6 100644
--- a/applications/lazedit/main.pp
+++ b/applications/lazedit/main.pp
@@ -46,7 +46,8 @@ uses
LMessages, {for overridden IsShortCut}
SynEdit, SynEditTypes,
EditorPageControl,
- EPlus_Commons, EPlus_Config, HtmlCode, HtmlDialogs, CopyLeft{
+ EPlus_Commons, EPlus_Config, HtmlCode, HtmlDialogs, lazedit_constants,
+ lazedit_translations{
MyFileUtils, Fcl_Misc, MruLists, MyGetOpt, ExtAbout, NlAutoTranslation};
type
@@ -107,6 +108,11 @@ type
HtmlToolbarImageList: TImageList;
MainToolbarImageList: TImageList;
MainMenu: TMainMenu;
+ mnuLanguage: TMenuItem;
+ mnuEnglish: TMenuItem;
+ mnuDutch: TMenuItem;
+ mnuPortuguese: TMenuItem;
+ mnuTools: TMenuItem;
mnuEditPasteTableContentTab: TMenuItem;
mnuEditPasteSpecial: TMenuItem;
mnuAbout: TMenuItem;
@@ -352,6 +358,7 @@ type
procedure FormDestroy(Sender: TObject);
procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
procedure FormShow(Sender: TObject);
+ procedure mnuLanguageChangeClick(Sender: TObject);
//Main menu events
procedure TopLevelMenuClick(Sender: TObject);
@@ -430,7 +437,8 @@ type
MruList: TStringList;
MruMenuItems: Array[0..MruEntries-1] of TMenuItem;
- procedure SetUpAndConfigureEPlus;
+ procedure SetUpAndConfigureLazEdit;
+ procedure DoTranslate;
procedure SaveEplusConfiguration;
procedure CleanUp;
@@ -568,7 +576,8 @@ const pXY = 0; //Panels constanten
procedure TEPlusForm.FormCreate(Sender: TObject);
begin
- SetUpAndConfigureEPlus;
+ SetUpAndConfigureLazEdit;
+ Self.DoTranslate();
end;
procedure TEPlusForm.FormDestroy(Sender: TObject);
@@ -615,6 +624,12 @@ begin
Application.QueueAsyncCall(@ParseCommandLineFileNames, 0);
end;
+procedure TEPlusForm.mnuLanguageChangeClick(Sender: TObject);
+begin
+ vTranslations.TranslateToLanguageID(TMenuItem(Sender).Tag);
+ DoTranslate();
+end;
+
{ ********************** [ Menu OnClick Handlers ] ************************ }
@@ -1081,7 +1096,7 @@ end;
{ ********************** [ Initializing and cleaning up ] ************* }
-procedure TEPlusForm.SetUpAndConfigureEPlus;
+procedure TEPlusForm.SetUpAndConfigureLazEdit;
begin
ConfigFileDir := GetDefaultIniDir;
ParseCommandLineSwitches;
@@ -1147,6 +1162,143 @@ begin
end;
+procedure TEPlusForm.DoTranslate;
+begin
+{ mnuEditPasteTableContentTab: TMenuItem;
+ mnuEditPasteSpecial: TMenuItem;
+ mnuAbout: TMenuItem;
+ mnuViewFont: TMenuItem;}
+ //File menu
+ mnuFile.Caption := vTranslations.mnuFile;
+ mnuFileOpen.Caption := vTranslations.mnuFileOpen;
+ mnuFileNewFromTemplate.Caption := vTranslations.mnuFileNewFromTemplate;
+ mnuFileNew.Caption := vTranslations.mnuFileNew;
+{ mnuFileNewText: TMenuItem;
+ mnuFileNewHtml: TMenuItem;
+ mnuFileNewXml: TMenuItem;
+ mnuFileNewCss: TMenuItem;
+ mnuFileNewJS: TMenuItem;
+ mnuFileNewFpc: TMenuItem;
+ mnuFileNewC: TMenuItem;
+ mnuFileNewPy: TMenuItem;
+ mnuFileNewPhp: TMenuItem;
+ mnuFileNewPerl: TMenuItem;
+ mnuFileNewShellScript: TMenuItem;
+ mnuFileNewBat: TMenuItem;
+ mnuFileNewIni: TMenuItem;}
+ mnuFileSave.Caption := vTranslations.mnuFileSave;
+ mnuFileSaveAs.Caption := vTranslations.mnuFileSaveAs;
+ mnuFileSaveAll.Caption := vTranslations.mnuFileSaveAll;
+ mnuFileCloseCurrent.Caption := vTranslations.mnuFileCloseCurrent;
+ //mnuSep1: TMenuItem;
+ mnuFileOpenInBrowser.Caption := vTranslations.mnuFileOpenInBrowser;
+ //mnuSepAboveMru: TMenuItem;
+ mnuFileCloseApp.Caption := vTranslations.mnuFileCloseApp;
+ //Edit menu
+ mnuEdit.Caption := vTranslations.mnuEdit;
+ mnuEditUndo.Caption := vTranslations.mnuEditUndo;
+ mnuEditRedo.Caption := vTranslations.mnuEditRedo;
+ //mnuSep11: TMenuItem;
+ mnuEditCopy.Caption := vTranslations.mnuEditCopy;
+ mnuEditCut.Caption := vTranslations.mnuEditCut;
+ mnuEditPaste.Caption := vTranslations.mnuEditPaste;
+ mnuEditSelectAll.Caption := vTranslations.mnuEditSelectAll;
+ {mnuSep12: TMenuItem;
+ mnuEditReplace: TMenuItem;
+ mnuEditFindNext: TMenuItem;
+ mnuEditFind: TMenuItem;
+ //Insert menu
+ mnuInsert: TMenuItem;
+ mnuInsertAnchor: TMenuItem;
+ mnuInsertList: TMenuItem;
+ mnuInsertUList: TMenuItem;
+ mnuInsertNList: TMenuItem;
+ mnuInsertWordList: TMenuItem;
+ mnuInsetListItem: TMenuItem;
+ mnuInsertWordTerm: TMenuItem;
+ mnuInsertWordDefinition: TMenuItem;
+ mnuInsertTable: TMenuItem;
+ mnInsertNewTable: TMenuItem;
+ mnuInsertTableCell: TMenuItem;
+ mnuInsertTableRow: TMenuItem;
+ mnuInsertPicture: TMenuItem;
+ mnuInsertSpecialChars: TMenuItem;
+ mnuInsertLineBreak: TMenuItem;
+ mnuInsertSep1: TMenuItem;
+ mnuInsertHtmlComment: TMenuItem;
+ mnuInsertJS: TMenuItem;
+ mnuInsertCssStyle: TMenuItem;
+ //Layout menu
+ mnuLayout: TMenuItem;
+ mnuLayoutBold: TMenuItem;
+ mnuLayoutAlignJustify: TMenuItem;
+ mnuLayoutItalic: TMenuItem;
+ mnuLayoutUnderline: TMenuItem;
+ mnuLayoutSub: TMenuItem;
+ mnuLayoutSup: TMenuItem;
+ mnuLayoutEmphasis: TMenuItem;
+ mnuLayoutStrong: TMenuItem;
+ mnuLayoutHeadings: TMenuItem;
+ mnuLayoutH1: TMenuItem;
+ mnuLayoutH2: TMenuItem;
+ mnuLayoutH3: TMenuItem;
+ mnuLayoutH4: TMenuItem;
+ mnuLayoutH5: TMenuItem;
+ mnuLayoutH6: TMenuItem;
+ mnuLayoutAlign: TMenuItem;
+ mnuLayoutAlignLeft: TMenuItem;
+ mnuLayoutAlignRight: TMenuItem;
+ mnuLayoutAlignCenter: TMenuItem;
+ mnuLayoutCode: TMenuItem;
+ mnuLayoutQuote: TMenuItem;
+ mnuLayoutBlockQuote: TMenuItem;
+ mnuLayoutPreformatted: TMenuItem;
+ //Grouping menu
+ mnuGrouping: TMenuItem;
+ mnuGroupingParagraph: TMenuItem;
+ mnuGroupingDiv: TMenuItem;
+ mnuGroupingSpan: TMenuItem;
+ //View menu
+ mnuView: TMenuItem;
+ mnuViewFontsize: TMenuItem;
+ mnuViewFontSizeUp: TMenuItem;
+ mnuViewFontsizeDown: TMenuItem;
+ mnuViewHighlighter: TMenuItem;
+ //these menu items MUST have names that are built like this:
+ //'mnuViewHL' + eftNames[SomeIndex]
+ mnuViewHLeftNone: TMenuItem;
+ mnuViewHLeftHtml: TMenuItem;
+ mnuViewHLeftXml: TMenuItem;
+ mnuViewHLeftCss: TMenuItem;
+ mnuViewHLeftJS: TMenuItem;
+ mnuViewHLeftFpc: TMenuItem;
+ mnuViewHLeftLfm: TMenuItem;
+ mnuViewHLeftC: TMenuItem;
+ mnuViewHLeftPy: TMenuItem;
+ mnuViewHLeftPhp: TMenuItem;
+ mnuViewHLeftPerl: TMenuItem;
+ mnuViewHLeftUNIXShell: TMenuItem;
+ mnuViewHLeftBat: TMenuItem;
+ mnuViewHLeftDiff: TMenuItem;
+ mnuViewHLeftIni: TMenuItem;
+ mnuViewHLeftPo: TMenuItem;
+ //Popup menus
+ //Popup menu for editor
+ EditorPopupMenu: TPopupMenu;
+ mnuEditPopupSelectAll: TMenuItem;
+ mnuEditPopupPaste: TMenuItem;
+ mnuEditPopupCut: TMenuItem;
+ mnuEditPopupCopy: TMenuItem;
+ //Dropdownmenu for HeadingBtn
+ HeadingDropDownMenu: TPopupMenu;
+ mnuPopupLayoutH6: TMenuItem;
+ mnuPopupLayoutH5: TMenuItem;
+ mnuPopupLayoutH4: TMenuItem;
+ mnuPopupLayoutH3: TMenuItem;
+ mnuPopupLayoutH2: TMenuItem;
+ mnuPopupLayoutH1: TMenuItem; }
+end;
+
procedure TEPlusForm.SaveEplusConfiguration;
begin
GatherAppOptions(AppOptions);
@@ -1243,6 +1395,9 @@ begin
if (Options.RecentFiles[i] <> '') then
MruList.Add(Options.RecentFiles[i]);
end;
+
+ // Translation
+ vTranslations.TranslateToLanguageID(Options.Translation);
end;
procedure TEPlusForm.GatherAppOptions(var Options: TEplusOptions);