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]
FontName=
FontSize=0
FontName=Courier New
FontSize=10
[MainForm]
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
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;

View File

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

View File

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

View File

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

View File

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

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

View File

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