lazedit: Starts implementing translations support

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2292 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2012-02-15 11:35:36 +00:00
parent 0f0d1b50fd
commit 864d6a59b6
10 changed files with 638 additions and 76 deletions

View File

@ -1,6 +1,6 @@
[Editor] [Editor]
FontName= FontName=Courier New
FontSize=0 FontSize=10
[MainForm] [MainForm]
Left=634 Left=634

View File

@ -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

View File

@ -39,7 +39,7 @@ unit EPlus_Config;
interface interface
uses uses
SysUtils, Classes, EditorPageControl, EPlus_COmmons, CopyLeft, Forms,{FCL_Misc,} IniFiles, SysUtils, Classes, EditorPageControl, EPlus_COmmons, lazedit_constants, Forms,{FCL_Misc,} IniFiles,
LCLProc; LCLProc;
type type
@ -71,6 +71,7 @@ type
FileTypeMaskList: TFileTypeMaskList; FileTypeMaskList: TFileTypeMaskList;
TemplateMaskList: String; TemplateMaskList: String;
RecentFiles: Array[0..MruEntries - 1] of String; RecentFiles: Array[0..MruEntries - 1] of String;
Translation: Integer;
end; end;
function LoadOptions(var Options: TEPlusOptions; FileName: String): Boolean; function LoadOptions(var Options: TEPlusOptions; FileName: String): Boolean;
@ -82,6 +83,8 @@ function GetDefaultIniDir: String;
implementation implementation
const const
scGeneral = 'General';
idTranslation = 'Translation';
scMainForm = 'MainForm'; scMainForm = 'MainForm';
idTop = 'Top'; idTop = 'Top';
idLeft = 'Left'; idLeft = 'Left';
@ -159,6 +162,9 @@ begin
if (S <> '') then Options.FileTypeMaskList[ftIndex] := S; if (S <> '') then Options.FileTypeMaskList[ftIndex] := S;
end; end;
// Translation
Options.Translation := Ini.ReadInteger(scGeneral, idTranslation, 0);
finally finally
Ini.Free; Ini.Free;
Ini := Nil; Ini := Nil;
@ -228,6 +234,9 @@ begin
Ini.WriteString(scFileTypes, eftNames[ftIndex], Options.FileTypeMaskList[ftIndex]); Ini.WriteString(scFileTypes, eftNames[ftIndex], Options.FileTypeMaskList[ftIndex]);
end; end;
// Translation
Ini.WriteInteger(scGeneral, idTranslation, Options.Translation);
try try
Ini.UpdateFile; Ini.UpdateFile;
Result := True; Result := True;

View File

@ -36,7 +36,7 @@ interface
uses uses
Classes, SysUtils, HtmlCode, Controls, Forms, Classes, SysUtils, HtmlCode, Controls, Forms,
NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm, HtmlCharMap, NewTableForm, CopyLeft; NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm, HtmlCharMap, NewTableForm, lazedit_constants;
type type

View File

@ -75,7 +75,7 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="95"> <Units Count="97">
<Unit0> <Unit0>
<Filename Value="lazedit.lpr"/> <Filename Value="lazedit.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -83,7 +83,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="17" Y="10"/> <CursorPos X="17" Y="10"/>
<UsageCount Value="173"/> <UsageCount Value="174"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
@ -94,9 +94,9 @@
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1266"/> <TopLine Value="1182"/>
<CursorPos X="23" Y="1280"/> <CursorPos X="43" Y="1198"/>
<UsageCount Value="173"/> <UsageCount Value="174"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -115,7 +115,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="41" Y="8"/> <CursorPos X="41" Y="8"/>
<UsageCount Value="173"/> <UsageCount Value="174"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="H:\Programmas\SvnLaz\components\synedit\synmemo.pas"/> <Filename Value="H:\Programmas\SvnLaz\components\synedit\synmemo.pas"/>
@ -372,29 +372,29 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="33"/> <TopLine Value="33"/>
<CursorPos X="31" Y="53"/> <CursorPos X="31" Y="53"/>
<UsageCount Value="139"/> <UsageCount Value="140"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
<Filename Value="copyleft.pp"/> <Filename Value="lazedit_constants.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="CopyLeft"/> <UnitName Value="lazedit_constants"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="25"/> <TopLine Value="25"/>
<CursorPos X="21" Y="53"/> <CursorPos X="8" Y="37"/>
<UsageCount Value="136"/> <UsageCount Value="137"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
<Filename Value="eplus_config.pp"/> <Filename Value="eplus_config.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="EPlus_Config"/> <UnitName Value="EPlus_Config"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="231"/> <TopLine Value="221"/>
<CursorPos X="79" Y="261"/> <CursorPos X="58" Y="238"/>
<UsageCount Value="123"/> <UsageCount Value="124"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
@ -445,7 +445,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="178"/> <TopLine Value="178"/>
<CursorPos X="3" Y="181"/> <CursorPos X="3" Y="181"/>
<UsageCount Value="113"/> <UsageCount Value="114"/>
</Unit44> </Unit44>
<Unit45> <Unit45>
<Filename Value="H:\Programmas\SvnLaz\lcl\grids.pas"/> <Filename Value="H:\Programmas\SvnLaz\lcl\grids.pas"/>
@ -564,7 +564,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<UsageCount Value="84"/> <UsageCount Value="85"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit59> </Unit59>
<Unit60> <Unit60>
@ -576,7 +576,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="114"/> <TopLine Value="114"/>
<CursorPos X="24" Y="147"/> <CursorPos X="24" Y="147"/>
<UsageCount Value="81"/> <UsageCount Value="82"/>
</Unit60> </Unit60>
<Unit61> <Unit61>
<Filename Value="newhtmldlgform.lfm"/> <Filename Value="newhtmldlgform.lfm"/>
@ -603,7 +603,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="31" Y="9"/> <CursorPos X="31" Y="9"/>
<UsageCount Value="72"/> <UsageCount Value="73"/>
</Unit63> </Unit63>
<Unit64> <Unit64>
<Filename Value="picturedlgform.pp"/> <Filename Value="picturedlgform.pp"/>
@ -615,7 +615,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="73"/> <TopLine Value="73"/>
<CursorPos X="10" Y="99"/> <CursorPos X="10" Y="99"/>
<UsageCount Value="65"/> <UsageCount Value="66"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit64> </Unit64>
<Unit65> <Unit65>
@ -643,7 +643,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="42"/> <TopLine Value="42"/>
<CursorPos X="32" Y="58"/> <CursorPos X="32" Y="58"/>
<UsageCount Value="55"/> <UsageCount Value="56"/>
</Unit67> </Unit67>
<Unit68> <Unit68>
<Filename Value="..\MijnLib\mrulists.pas"/> <Filename Value="..\MijnLib\mrulists.pas"/>
@ -852,124 +852,147 @@
<CursorPos X="3" Y="461"/> <CursorPos X="3" Y="461"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit94> </Unit94>
<Unit95>
<Filename Value="lazedit_translations.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="lazedit_translations"/>
<EditorIndex Value="7"/>
<WindowIndex Value="0"/>
<TopLine Value="10"/>
<CursorPos X="1" Y="23"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit95>
<Unit96>
<Filename Value="..\..\..\magnifier\translationsvmg.pas"/>
<UnitName Value="translationsvmg"/>
<WindowIndex Value="0"/>
<TopLine Value="865"/>
<CursorPos X="1" Y="898"/>
<UsageCount Value="10"/>
</Unit96>
</Units> </Units>
<JumpHistory Count="29" HistoryIndex="28"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="htmlcode.pp"/> <Filename Value="lazedit_translations.pas"/>
<Caret Line="398" Column="41" TopLine="381"/> <Caret Line="157" Column="5" TopLine="133"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="picturedlgform.pp"/> <Filename Value="main.pp"/>
<Caret Line="156" Column="20" TopLine="135"/> <Caret Line="1149" Column="14" TopLine="1136"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="picturedlgform.pp"/> <Filename Value="main.pp"/>
<Caret Line="9" Column="41" TopLine="1"/> <Caret Line="573" Column="16" TopLine="571"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="50" Column="3" TopLine="33"/> <Caret Line="434" Column="31" TopLine="417"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="430" Column="5" TopLine="413"/> <Caret Line="1143" Column="16" TopLine="1120"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1132" Column="8" TopLine="1115"/> <Caret Line="1334" Column="59" TopLine="1334"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="main.pp"/> <Filename Value="eplus_config.pp"/>
<Caret Line="430" Column="17" TopLine="416"/> <Caret Line="120" Column="60" TopLine="101"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="main.pp"/> <Filename Value="eplus_config.pp"/>
<Caret Line="1133" Column="5" TopLine="1116"/> <Caret Line="84" Column="35" TopLine="61"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="main.pp"/> <Filename Value="lazedit_translations.pas"/>
<Caret Line="1143" Column="5" TopLine="1126"/> <Caret Line="180" Column="3" TopLine="154"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1244" Column="13" TopLine="1227"/> <Caret Line="1399" Column="37" TopLine="1375"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="430" Column="25" TopLine="413"/> <Caret Line="1400" Column="37" TopLine="1376"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1132" Column="25" TopLine="1115"/> <Caret Line="1399" Column="37" TopLine="1375"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1280" Column="46" TopLine="1263"/> <Caret Line="1400" Column="37" TopLine="1376"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1360" Column="34" TopLine="1328"/> <Caret Line="1401" Column="37" TopLine="1377"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1377" Column="8" TopLine="1351"/> <Caret Line="1402" Column="37" TopLine="1378"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1626" Column="48" TopLine="1610"/> <Caret Line="1403" Column="37" TopLine="1379"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1711" Column="7" TopLine="1694"/> <Caret Line="1410" Column="37" TopLine="1386"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1712" Column="9" TopLine="1700"/> <Caret Line="627" Column="44" TopLine="624"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1754" Column="8" TopLine="1732"/> <Caret Line="361" Column="37" TopLine="361"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1761" Column="21" TopLine="1744"/> <Caret Line="395" Column="1" TopLine="378"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="main.pp"/> <Filename Value="lazedit_translations.pas"/>
<Caret Line="1783" Column="21" TopLine="1766"/> <Caret Line="164" Column="51" TopLine="144"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="main.pp"/> <Filename Value="eplus_config.pp"/>
<Caret Line="1850" Column="24" TopLine="1833"/> <Caret Line="266" Column="1" TopLine="240"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="main.pp"/> <Filename Value="eplus_config.pp"/>
<Caret Line="2338" Column="6" TopLine="2326"/> <Caret Line="166" Column="15" TopLine="149"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1152" Column="10" TopLine="1135"/> <Caret Line="1408" Column="1" TopLine="1397"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1280" Column="23" TopLine="1257"/> <Caret Line="579" Column="27" TopLine="562"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1152" Column="14" TopLine="1135"/> <Caret Line="580" Column="21" TopLine="563"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pp"/> <Filename Value="main.pp"/>
<Caret Line="1280" Column="1" TopLine="1266"/> <Caret Line="629" Column="16" TopLine="612"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="main.pp"/> <Filename Value="lazedit_translations.pas"/>
<Caret Line="1283" Column="1" TopLine="1266"/> <Caret Line="23" Column="1" TopLine="6"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="main.pp"/> <Filename Value="lazedit_translations.pas"/>
<Caret Line="1280" Column="23" TopLine="1266"/> <Caret Line="278" Column="43" TopLine="248"/>
</Position29> </Position29>
<Position30>
<Filename Value="lazedit_translations.pas"/>
<Caret Line="153" Column="14" TopLine="122"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -7,7 +7,8 @@ uses
cthreads, cthreads,
{$ENDIF}{$ENDIF} {$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset 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} HtmlDialogs, NewHtmlDlgForm, AnchorDlgForm, PictureDlgForm}
{ you can add units after this }; { you can add units after this };

View File

@ -1,4 +1,4 @@
unit CopyLeft; unit lazedit_constants;
{ {
EPlus: a text editor with built-in features for HTML editing and EPlus: a text editor with built-in features for HTML editing and
@ -42,11 +42,11 @@ interface
//uses GPL; //uses GPL;
const const
AppName = 'EPlus'; AppName = 'LazEdit';
AboutTitle = 'Over ' + AppName; AboutTitle = 'Over ' + AppName;
AppVersion = 'Versie 1.0.0 RC1'; AppVersion = 'Version 1.1';
CopyLeftStatement = 'Copyright (c) 2011, 2012 by Bart Broersma & FlyingSheep Inc.'; CopyLeftStatement = 'Copyright (c) 2011, 2012 by Bart Broersma, FlyingSheep Inc. and Felipe Monteiro de Carvalho';
MetaGeneratorName = AppName + #32 + AppVersion + ' by Bart Broersma and Flying Sheep Inc.'; MetaGeneratorName = AppName + #32 + AppVersion;
AuthorWebName = 'Bart & Mariska''s Webstek'; AuthorWebName = 'Bart & Mariska''s Webstek';
AuthorWebUrl = 'http://home.tiscali.nl/~knmg0017/'; AuthorWebUrl = 'http://home.tiscali.nl/~knmg0017/';
LicenseText = ''; //LGPL_Text; LicenseText = ''; //LGPL_Text;

View File

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

View File

@ -1735,6 +1735,26 @@ object EPlusForm: TEPlusForm
end end
end 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 object mnuAbout: TMenuItem
Action = acAbout Action = acAbout
end end

View File

@ -46,7 +46,8 @@ uses
LMessages, {for overridden IsShortCut} LMessages, {for overridden IsShortCut}
SynEdit, SynEditTypes, SynEdit, SynEditTypes,
EditorPageControl, 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}; MyFileUtils, Fcl_Misc, MruLists, MyGetOpt, ExtAbout, NlAutoTranslation};
type type
@ -107,6 +108,11 @@ type
HtmlToolbarImageList: TImageList; HtmlToolbarImageList: TImageList;
MainToolbarImageList: TImageList; MainToolbarImageList: TImageList;
MainMenu: TMainMenu; MainMenu: TMainMenu;
mnuLanguage: TMenuItem;
mnuEnglish: TMenuItem;
mnuDutch: TMenuItem;
mnuPortuguese: TMenuItem;
mnuTools: TMenuItem;
mnuEditPasteTableContentTab: TMenuItem; mnuEditPasteTableContentTab: TMenuItem;
mnuEditPasteSpecial: TMenuItem; mnuEditPasteSpecial: TMenuItem;
mnuAbout: TMenuItem; mnuAbout: TMenuItem;
@ -352,6 +358,7 @@ type
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure FormDropFiles(Sender: TObject; const FileNames: array of String); procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure mnuLanguageChangeClick(Sender: TObject);
//Main menu events //Main menu events
procedure TopLevelMenuClick(Sender: TObject); procedure TopLevelMenuClick(Sender: TObject);
@ -430,7 +437,8 @@ type
MruList: TStringList; MruList: TStringList;
MruMenuItems: Array[0..MruEntries-1] of TMenuItem; MruMenuItems: Array[0..MruEntries-1] of TMenuItem;
procedure SetUpAndConfigureEPlus; procedure SetUpAndConfigureLazEdit;
procedure DoTranslate;
procedure SaveEplusConfiguration; procedure SaveEplusConfiguration;
procedure CleanUp; procedure CleanUp;
@ -568,7 +576,8 @@ const pXY = 0; //Panels constanten
procedure TEPlusForm.FormCreate(Sender: TObject); procedure TEPlusForm.FormCreate(Sender: TObject);
begin begin
SetUpAndConfigureEPlus; SetUpAndConfigureLazEdit;
Self.DoTranslate();
end; end;
procedure TEPlusForm.FormDestroy(Sender: TObject); procedure TEPlusForm.FormDestroy(Sender: TObject);
@ -615,6 +624,12 @@ begin
Application.QueueAsyncCall(@ParseCommandLineFileNames, 0); Application.QueueAsyncCall(@ParseCommandLineFileNames, 0);
end; end;
procedure TEPlusForm.mnuLanguageChangeClick(Sender: TObject);
begin
vTranslations.TranslateToLanguageID(TMenuItem(Sender).Tag);
DoTranslate();
end;
{ ********************** [ Menu OnClick Handlers ] ************************ } { ********************** [ Menu OnClick Handlers ] ************************ }
@ -1081,7 +1096,7 @@ end;
{ ********************** [ Initializing and cleaning up ] ************* } { ********************** [ Initializing and cleaning up ] ************* }
procedure TEPlusForm.SetUpAndConfigureEPlus; procedure TEPlusForm.SetUpAndConfigureLazEdit;
begin begin
ConfigFileDir := GetDefaultIniDir; ConfigFileDir := GetDefaultIniDir;
ParseCommandLineSwitches; ParseCommandLineSwitches;
@ -1147,6 +1162,143 @@ begin
end; 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; procedure TEPlusForm.SaveEplusConfiguration;
begin begin
GatherAppOptions(AppOptions); GatherAppOptions(AppOptions);
@ -1243,6 +1395,9 @@ begin
if (Options.RecentFiles[i] <> '') then if (Options.RecentFiles[i] <> '') then
MruList.Add(Options.RecentFiles[i]); MruList.Add(Options.RecentFiles[i]);
end; end;
// Translation
vTranslations.TranslateToLanguageID(Options.Translation);
end; end;
procedure TEPlusForm.GatherAppOptions(var Options: TEplusOptions); procedure TEPlusForm.GatherAppOptions(var Options: TEplusOptions);