From d318d9f39934e77e9629a55083297a3d5f68ebcd Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Thu, 19 Dec 2013 12:52:06 +0000 Subject: LangPackMgr and replacer tools update (from Jebifor) git-svn-id: http://svn.miranda-ng.org/main/trunk@7282 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- tools/langpackmgr/LangPackMgr.dpr | 19 -- tools/langpackmgr/LangPackMgr.dproj | 218 -------------- tools/langpackmgr/Unit1.dfm | 102 ------- tools/langpackmgr/Unit1.pas | 534 +++++++++++++++++------------------ tools/langpackmgr/langpackmgr.ico | Bin 0 -> 15086 bytes tools/langpackmgr/langpackmgr.lpi | 91 ++++++ tools/langpackmgr/langpackmgr.lpr | 21 ++ tools/langpackmgr/langpackmgr.lps | 171 +++++++++++ tools/langpackmgr/lpmanager_Icon.ico | Bin 5430 -> 0 bytes tools/langpackmgr/unit1.lfm | 142 ++++++++++ 10 files changed, 681 insertions(+), 617 deletions(-) delete mode 100644 tools/langpackmgr/LangPackMgr.dpr delete mode 100644 tools/langpackmgr/LangPackMgr.dproj delete mode 100644 tools/langpackmgr/Unit1.dfm create mode 100644 tools/langpackmgr/langpackmgr.ico create mode 100644 tools/langpackmgr/langpackmgr.lpi create mode 100644 tools/langpackmgr/langpackmgr.lpr create mode 100644 tools/langpackmgr/langpackmgr.lps delete mode 100644 tools/langpackmgr/lpmanager_Icon.ico create mode 100644 tools/langpackmgr/unit1.lfm (limited to 'tools/langpackmgr') diff --git a/tools/langpackmgr/LangPackMgr.dpr b/tools/langpackmgr/LangPackMgr.dpr deleted file mode 100644 index 028bee13c4..0000000000 --- a/tools/langpackmgr/LangPackMgr.dpr +++ /dev/null @@ -1,19 +0,0 @@ -program LangPackMgr; - -uses - Vcl.Forms, - Unit1 in 'Unit1.pas' {Form1}; - -{ IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or - IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} - {$WEAKLINKRTTI ON} - {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} -{$R *.res} - -begin - Application.Initialize; - Application.MainFormOnTaskbar := True; - Application.Title := 'Miranda LangPack Manager'; - Application.CreateForm(TForm1, Form1); - Application.Run; -end. diff --git a/tools/langpackmgr/LangPackMgr.dproj b/tools/langpackmgr/LangPackMgr.dproj deleted file mode 100644 index 31b4ad8a33..0000000000 --- a/tools/langpackmgr/LangPackMgr.dproj +++ /dev/null @@ -1,218 +0,0 @@ - - - {2DD0A017-C6BD-47BC-89F3-19A1F4372290} - 14.6 - VCL - LangPackMgr.dpr - True - Release - Win32 - 3 - Application - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - - - true - Base - true - - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - - - 1049 - CompanyName=;FileDescription=;FileVersion=2.0.1.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=2.0.0.0;Comments= - None - System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) - $(BDS)\bin\delphi_PROJECTICON.ico - .\$(Platform)\$(Config) - .\..\..\langpacks\ - false - false - false - false - false - - - bindcompfmx;DBXSqliteDriver;vcldbx;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;inetdb;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;DataSnapProviderClient;xmlrtl;svnui;DBXSybaseASEDriver;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;MetropolisUILiveTile;bindcompdbx;vclactnband;bindengine;vcldb;soaprtl;vcldsnap;bindcompvcl;vclie;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;VclSmp;dsnap;IndyIPServer;DBXInformixDriver;IndyCore;vcl;DataSnapConnectors;IndyIPCommon;CloudService;DBXMSSQLDriver;dsnapcon;DBXFirebirdDriver;inet;vclx;inetdbxpress;webdsnap;svn;DBXSybaseASADriver;bdertl;dbexpress;adortl;DataSnapIndy10ServerTransport;IndyIPClient;$(DCC_UsePackage) - $(BDS)\bin\default_app.manifest - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - true - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - 1033 - - - bindcompfmx;DBXSqliteDriver;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;inetdb;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;DataSnapProviderClient;xmlrtl;DBXSybaseASEDriver;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;MetropolisUILiveTile;bindcompdbx;vclactnband;bindengine;vcldb;soaprtl;vcldsnap;bindcompvcl;vclie;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;VclSmp;dsnap;IndyIPServer;DBXInformixDriver;IndyCore;vcl;DataSnapConnectors;IndyIPCommon;CloudService;DBXMSSQLDriver;dsnapcon;DBXFirebirdDriver;inet;vclx;inetdbxpress;webdsnap;DBXSybaseASADriver;dbexpress;adortl;DataSnapIndy10ServerTransport;IndyIPClient;$(DCC_UsePackage) - $(BDS)\bin\default_app.manifest - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) - true - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - 1033 - - - DEBUG;$(DCC_Define) - true - false - true - true - true - - - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - $(BDS)\bin\default_app.manifest - 1033 - true - false - - - 1033 - $(BDS)\bin\default_app.manifest - true - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - - - false - RELEASE;$(DCC_Define) - 0 - false - - - 1 - 2 - true - 1059 - $(BDS)\bin\default_app.manifest - true - CompanyName=;FileDescription=;FileVersion=2.0.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=2.0.0.1;Comments= - LPmanager_Icon.ico - - - 1059 - $(BDS)\bin\default_app.manifest - true - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - - - - MainSource - - -
Form1
- dfm -
- - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - -
- - Delphi.Personality.12 - - - - - False - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - - - - - - - - - - - - - - - LangPackMgr.dpr - - - Microsoft Office 2000 Sample Automation Server Wrapper Components - Microsoft Office XP Sample Automation Server Wrapper Components - - - - - True - True - - False - - 12 - - - -
diff --git a/tools/langpackmgr/Unit1.dfm b/tools/langpackmgr/Unit1.dfm deleted file mode 100644 index 94b856409d..0000000000 --- a/tools/langpackmgr/Unit1.dfm +++ /dev/null @@ -1,102 +0,0 @@ -object Form1: TForm1 - Left = 0 - Top = 0 - AutoSize = True - BorderIcons = [biSystemMenu] - Caption = 'Miranda NG Langpack Manager' - ClientHeight = 343 - ClientWidth = 643 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = 15 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 14 - object ListBox1: TListBox - Left = 0 - Top = 0 - Width = 137 - Height = 343 - ItemHeight = 14 - TabOrder = 0 - OnClick = ListBox1Click - OnDblClick = ListBox12Click - end - object Memo1: TMemo - Left = 143 - Top = 0 - Width = 500 - Height = 343 - ScrollBars = ssBoth - TabOrder = 1 - end - object Memo2: TMemo - Left = 143 - Top = 153 - Width = 500 - Height = 150 - ScrollBars = ssBoth - TabOrder = 2 - Visible = False - end - object Button1: TButton - Left = 142 - Top = 318 - Width = 75 - Height = 25 - Caption = 'Copy' - TabOrder = 3 - Visible = False - OnClick = Button1Click - end - object Button2: TButton - Left = 223 - Top = 318 - Width = 75 - Height = 25 - Caption = 'Translate' - TabOrder = 4 - Visible = False - OnClick = Button2Click - end - object Button3: TButton - Left = 566 - Top = 318 - Width = 75 - Height = 25 - Caption = 'Save' - TabOrder = 5 - Visible = False - OnClick = Button3Click - end - object ComboBox1: TComboBox - Left = 0 - Top = 318 - Width = 136 - Height = 22 - Style = csOwnerDrawFixed - Enabled = False - ItemIndex = 1 - TabOrder = 6 - Text = 'Untranslated items' - Visible = False - Items.Strings = ( - 'All items' - 'Untranslated items') - end - object Button4: TButton - Left = 304 - Top = 317 - Width = 75 - Height = 25 - Caption = 'Find lines' - TabOrder = 7 - Visible = False - OnClick = Button4Click - end -end diff --git a/tools/langpackmgr/Unit1.pas b/tools/langpackmgr/Unit1.pas index 978102cfe6..3b3e810edc 100644 --- a/tools/langpackmgr/Unit1.pas +++ b/tools/langpackmgr/Unit1.pas @@ -1,94 +1,204 @@ -unit Unit1; +unit unit1; interface uses - Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, - Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, ShellApi; + classes, sysutils, fileutil, forms, controls, graphics, dialogs, stdctrls, + extctrls, Windows; type - TForm1 = class(TForm) - ListBox1: TListBox; - Memo1: TMemo; - Memo2: TMemo; - Button1: TButton; - Button2: TButton; - Button3: TButton; - ComboBox1: TComboBox; - Button4: TButton; - procedure ListBox12Click(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure ListBox1Click(Sender: TObject); - procedure langlist; - procedure fileslist; - procedure stringview; - procedure savestring; + + { tform1 } + + tform1 = class(tform) + button1: tbutton; + button2: tbutton; + button3: tbutton; + button4: tbutton; + CheckBox1: TCheckBox; + memo1: tmemo; + memo2: tmemo; + listbox: tlistbox; + combobox1: tcombobox; + combobox2: tcombobox; + radiogroup1: tradiogroup; + procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); - procedure Button1Click(Sender: TObject); procedure Button4Click(Sender: TObject); + procedure combobox1change(sender: tobject); + procedure ComboBox2Change(Sender: TObject); + procedure formcreate(sender: tobject); + procedure listbox1click(sender: tobject); + procedure listbox2click(sender: tobject); + procedure stringview; + procedure savestring; + procedure stringlist; private - { Private declarations } + { private declarations } public - { Public declarations } + { public declarations } end; var - Form1: TForm1; - locale:string; - z,j,i,qq,l:integer; + form1: tform1; + locale: string; + z,j,i,l:integer; sr:tsearchrec; res:integer; s:array[0..1,1..6000] of string; - u:array[1..6000] of integer; + u:array[0..6000] of integer; first:string; filename:string; + im,m:integer; + sse:string; implementation -{$R *.dfm} +{$r *.lfm} + +{ tform1 } + + -procedure TForm1.Button1Click(Sender: TObject); + +procedure tform1.stringlist; + var llist:TStringList; + begin + for i := 1 to 6000 do + begin s[0,i]:='';s[1,i]:='';end; + j:=0; + lList:=TstringList.Create; + lList.LoadFromFile(extractfilePath(application.exename)+'/english/' + +combobox1.items[combobox1.itemindex]+'.txt'); + first:=lList[0]; + for i := 1 to lList.Count-1 do + begin + j:=j+1; + s[0,j]:=lList[i]; + end; + lList.LoadFromFile(extractfilePath(application.exename)+'/' + +locale+'/'+combobox1.items[combobox1.itemindex]+'.txt'); + for z:= 1 to j do + for i := 1 to lList.count-2 do + if (copy(s[0,z],1,1)='[')and(s[0,z]=lList[i]) + and (copy(lList[i+1],1,1)<>'[')then + s[1,z]:=lList[i+1]; + lList.free; + form1.Caption:='Miranda NG Langpack Tools: Editor -' + +locale+'\'+combobox1.items[combobox1.itemindex]; + filename:=combobox1.items[combobox1.itemindex]; + listbox.items.Clear; + z:=0; + for i := 1 to j do + if ((copy(s[0,i],1,1)='[')and(s[1,i]='') and (radiogroup1.ItemIndex=0)) + or ((copy(s[0,i],1,1)='[')and (radiogroup1.ItemIndex=1)) + then + begin + u[z]:=i; + z:=z+1; + listbox.items.add(copy(s[0,i],2,length(s[0,i])-2)); + end; + end; + +procedure tform1.stringview; + begin + sse:=copy(s[0,u[listbox.itemindex]],2, + length(s[0,u[listbox.itemindex]])-2); + m:=1; + for im := 1 to length(sse)-1 do + begin + if copy(sse,im,2)='\n' then + begin + memo1.Lines.Add(copy(sse,m,im-m)); + m:=im+2; + end; + end; + memo2.Lines.Clear; + l:=listbox.itemindex; + if m=1 then memo1.Lines.Add(sse) + else memo1.Lines.Add(copy(sse,m,length(sse)-m+2)); + if s[1,u[listbox.itemindex]]<>'' then + begin + m:=1; + for im := 1 to length(s[1,u[listbox.itemindex]])-1 do + begin + if copy(s[1,u[listbox.itemindex]],im,2)='\n' then + begin + memo2.Lines.Add(copy(s[1,u[listbox.itemindex]],m,im-m)); + m:=im+2; + end; + end; + if m=1 then memo2.Lines.Add(s[1,u[listbox.itemindex]]) + else memo2.Lines.Add(copy(s[1,u[listbox.itemindex]],m, + length(s[1,u[listbox.itemindex]])-m+2)); + end; + end; + +procedure tform1.savestring; +var sa:integer; begin -memo2.lines:=memo1.lines; + s[1,u[l]]:=''; + for sa:=0 to memo2.Lines.Count-1 do + begin + s[1,u[l]]:=s[1,u[l]]+memo2.Lines[sa]; + if sa<>memo2.Lines.Count-1 then s[1,u[l]]:=s[1,u[l]]+'\n'; + end; end; -procedure TForm1.Button2Click(Sender: TObject); -var str:string; i:integer; - begin - str:='http://translate.google.com/?hl=&ie=yhgg#auto/'; - if locale='belarusian' then str:=str+'be/'; - if locale='bulgarian' then str:=str+'bg/'; - if locale='chinese' then str:=str+'zh-CN/'; - if locale='czech' then str:=str+'cs/'; - if locale='dutch' then str:=str+'da/'; - if locale='estonian' then str:=str+'et/'; - if locale='french' then str:=str+'fr/'; - if locale='german' then str:=str+'de/'; - if locale='hebrew' then str:=str+'iw/'; - if locale='hungarian' then str:=str+'hu/'; - if locale='italian' then str:=str+'it/'; - if locale='japanese' then str:=str+'ja/'; - if locale='korean' then str:=str+'ko/'; - if locale='norwegian' then str:=str+'no/'; - if locale='polish' then str:=str+'pl/'; - if locale='portuguese_br' then str:=str+'pt/'; - if locale='russian' then str:=str+'ru/'; - if locale='slovak' then str:=str+'sk/'; - if locale='spanish' then str:=str+'es/'; - if locale='turkish' then str:=str+'tr/'; - if locale='ukrainian' then str:=str+'uk/'; - for i:=0 to memo1.Lines.Count-1 do +procedure tform1.formcreate(sender: tobject); + var + sr:tsearchrec; + res:integer; +begin + if (paramstr(1)='-r') then begin - str:=str+memo1.Lines[i]; - if i'english') then + ListBox.items.add(sr.name); + res:=findnext(sr); + end; + SysUtils.FindClose(sr); +end; + end; -procedure TForm1.Button3Click(Sender: TObject); -var sList:TStringList; +procedure tform1.combobox1change(sender: tobject); + var + f:textfile; +begin + if not FileExists(extractfilePath(application.exename) + +'/'+locale+'/'+combobox1.items[combobox1.itemindex]+'.txt') + then + begin + assignfile(f,extractfilePath(application.exename) + +'/'+locale+'/'+combobox1.items[combobox1.itemindex]+'.txt'); + rewrite(f); + closefile(f); + end; + stringlist; + memo1.lines.clear; + memo2.lines.clear; +end; + +procedure tform1.ComboBox2Change(Sender: TObject); +begin + +end; + +procedure tform1.Button1Click(Sender: TObject); + var sList:TStringList; begin savestring; sList:=TstringList.Create; @@ -111,18 +221,53 @@ var sList:TStringList; end; end; sList.SavetoFile(extractfilePath(application.exename) - +'/'+locale+'/'+filename+'.txt',TEncoding.UTF8); + +'/'+locale+'/'+filename+'.txt'); sList.free; + stringview; +end; + +procedure tform1.Button4Click(Sender: TObject); + var str:utf8string; i:integer; + begin + str:='http://translate.google.com/?hl=&ie=yhgg#auto/'; + if locale='belarusian' then str:=str+'be/'; + if locale='bulgarian' then str:=str+'bg/'; + if locale='chinese' then str:=str+'zh-CN/'; + if locale='czech' then str:=str+'cs/'; + if locale='dutch' then str:=str+'da/'; + if locale='estonian' then str:=str+'et/'; + if locale='french' then str:=str+'fr/'; + if locale='german' then str:=str+'de/'; + if locale='hebrew' then str:=str+'iw/'; + if locale='hungarian' then str:=str+'hu/'; + if locale='italian' then str:=str+'it/'; + if locale='japanese' then str:=str+'ja/'; + if locale='korean' then str:=str+'ko/'; + if locale='norwegian' then str:=str+'no/'; + if locale='polish' then str:=str+'pl/'; + if locale='portuguese_br' then str:=str+'pt/'; + if locale='russian' then str:=str+'ru/'; + if locale='slovak' then str:=str+'sk/'; + if locale='spanish' then str:=str+'es/'; + if locale='turkish' then str:=str+'tr/'; + if locale='ukrainian' then str:=str+'uk/'; + for i:=0 to memo1.Lines.Count-1 do + begin + str:=str+memo1.Lines[i]; + if i'[')then begin @@ -132,229 +277,62 @@ for i := 1 to search.count-1 do search.free; end; -procedure tform1.fileslist; +procedure tform1.Button3Click(Sender: TObject); begin - ListBox1.Items.Add('=CORE='); - Res:=FindFirst(ExtractFilePath(Application.ExeName) - +'\english\plugins\*.txt', faAnyFile, SR); - while Res = 0 do - begin - listBox1.Items.Add('plugins\'+copy(extractfilename(SR.Name),1, - length(extractfilename(SR.Name))-4)); - Res:=FindNext(SR); - end; - FindClose(SR); - Res:=FindFirst(ExtractFilePath(Application.ExeName) - +'\english\weather\*.txt', faAnyFile, SR); - while Res = 0 do - begin - listBox1.Items.Add('weather\'+copy(extractfilename(SR.Name),1, - length(extractfilename(SR.Name))-4)); - Res:=FindNext(SR); - end; - FindClose(SR); +memo2.lines:=memo1.lines; end; -procedure tform1.langlist; - begin - res:=findfirst(extractfilePath(application.exename)+'*',faanyfile,SR); - while Res = 0 do - begin - if ((SR.attr and fadirectory)=fadirectory) - and ((SR.name='.')or(SR.name='..')) then - begin res:=findnext(SR); continue; end; - if ((SR.attr and fadirectory)=fadirectory) - and (fileexists(extractfilepath(application.exename)+ - '/'+SR.name+'/=HEAD=.txt')) and (sr.name<>'english') then - ListBox1.Items.Add(SR.name); - Res:=FindNext(SR); - end; - FindClose(SR); - end; - -procedure tform1.savestring; -var sa:integer; +procedure tform1.ListBox1Click(sender: tobject); begin - s[1,u[l]]:=''; - for sa:=0 to memo2.Lines.Count-1 do - begin - s[1,u[l]]:=s[1,u[l]]+memo2.Lines[sa]; - if sa<>memo2.Lines.Count-1 then s[1,u[l]]:=s[1,u[l]]+'\n'; - end; -end; - - -procedure tform1.stringview; -var -im,m:integer; -sse:string; - begin - sse:=copy(s[0,u[listbox1.itemindex]],2, - length(s[0,u[listbox1.itemindex]])-2); - m:=1; - for im := 1 to length(sse)-1 do - begin - if copy(sse,im,2)='\n' then - begin - memo1.Lines.Add(copy(sse,m,im-m)); - m:=im+2; - end; - end; - memo2.Lines.Clear; - l:=listbox1.itemindex; - if m=1 then memo1.Lines.Add(sse) - else memo1.Lines.Add(copy(sse,m,length(sse)-m+2)); - if s[1,u[listbox1.itemindex]]<>'' then - begin - m:=1; - for im := 1 to length(s[1,u[listbox1.itemindex]])-1 do - begin - if copy(s[1,u[listbox1.itemindex]],im,2)='\n' then - begin - memo2.Lines.Add(copy(s[1,u[listbox1.itemindex]],m,im-m)); - m:=im+2; - end; - end; - if m=1 then memo2.Lines.Add(s[1,u[listbox1.itemindex]]) - else memo2.Lines.Add(copy(s[1,u[listbox1.itemindex]],m, - length(s[1,u[listbox1.itemindex]])-m+2)); - end; - end; - -procedure TForm1.FormCreate(Sender: TObject); - begin - langlist; - qq:=0; - - end; - -procedure TForm1.ListBox1Click(Sender: TObject); - begin - if qq=0 then - begin - if listbox1.itemindex<>-1 then - begin - memo1.Lines.Clear; - memo1.Lines.LoadFromFile(extractfilePath(application.exename) - +'/'+listbox1.items[listbox1.itemindex]+'/=HEAD=.txt'); - end; - end; - if (qq=2) and (listbox1.itemindex>0)then + if (form1.caption<>'Miranda NG Langpack Tools: Editor') + then begin savestring; - memo1.Lines.clear; - memo2.Lines.clear; + memo1.lines.clear; + memo2.lines.clear; +{} stringview; end; - end; +end; -procedure TForm1.ListBox12Click(Sender: TObject); -var llist:TStringList; -f:textfile; +procedure tform1.listbox2click(sender: tobject); + var + sr:tsearchrec; + res:integer; begin -case qq of - - 0:begin - ListBox1.height:=300; - Combobox1.Visible:=true; - Memo1.Lines.Clear; - locale:=listbox1.items[listbox1.itemindex]; - listbox1.items.clear; - form1.Caption:='Miranda NG Langpack Manager: '+locale; - listbox1.items.add('..'); - fileslist; - qq:=1; - end; - - 1:begin - if listbox1.items[listbox1.itemindex]='..' then - begin - ListBox1.height:=343; - Combobox1.Visible:=false; - ListBox1.Items.clear; - Memo1.Lines.Clear; - langlist; - listbox1.itemindex:=0; - form1.Caption:='Miranda NG Langpack Manager'; - qq:=0; - end - else - begin - for i := 1 to 6000 do - begin s[0,i]:='';s[1,i]:='';end; - j:=0; - Memo1.Height:=150; - Memo2.Visible:=true; - Button1.Visible:=true; - Button2.Visible:=true; - Button3.Visible:=true; - lList:=TstringList.Create; - lList.LoadFromFile(extractfilePath(application.exename)+'/english/' - +listbox1.items[listbox1.itemindex]+'.txt',TEncoding.UTF8); - first:=lList[0]; - for i := 1 to lList.Count-1 do - begin - j:=j+1; - s[0,j]:=lList[i]; - end; - // - if not FileExists(extractfilePath(application.exename) - +'/'+locale+'/'+listbox1.items[listbox1.itemindex]+'.txt') - then - begin - assignfile(f,extractfilePath(application.exename) - +'/'+locale+'/'+listbox1.items[listbox1.itemindex]+'.txt'); - rewrite(f); - closefile(f); - end; -// - lList.LoadFromFile(extractfilePath(application.exename)+'/'+locale+'/' - +listbox1.items[listbox1.itemindex]+'.txt',TEncoding.UTF8); - for z:= 1 to j do - for i := 1 to lList.count-2 do - if (copy(s[0,z],1,1)='[')and(s[0,z]=lList[i]) - and (copy(lList[i+1],1,1)<>'[')then - s[1,z]:=lList[i+1]; - lList.free; - form1.Caption:='Miranda NG Langpack Manager: ' - +locale+'\'+listbox1.items[listbox1.itemindex]; - filename:=listbox1.items[listbox1.itemindex]; - listbox1.items.Clear; - listbox1.items.add('..'); - z:=0; - for i := 1 to j do - if (copy(s[0,i],1,1)='[')and(s[1,i]='') then - begin - z:=z+1; - u[z]:=i; - listbox1.items.add(copy(s[0,i],2,length(s[0,i])-2)); - end; - if (fileexists(extractfilePath(application.exename)+'/'+locale+'/' - +'Langpack_'+locale+'.txt')) and (listbox1.items.Count>1) then - button4.Visible:=true; + if form1.caption='Miranda NG Langpack Tools: Editor' + then + begin + locale:=ListBox.items[listBox.itemindex]; + form1.caption:=form1.caption+': '+locale; + ListBox.items.clear; + combobox1.items.add('=CORE='); + res:=findfirst(extractfilepath(application.exename) + +'\english\plugins\*.txt', faanyfile, sr); + while res = 0 do + begin + combobox1.items.add('plugins\'+copy(extractfilename(sr.name),1, + length(extractfilename(sr.name))-4)); + res:=findnext(sr); + end; + SysUtils.FindClose(sr); + res:=findfirst(extractfilepath(application.exename) + +'\english\weather\*.txt', faanyfile, sr); + while res = 0 do + begin + combobox1.items.add('weather\'+copy(extractfilename(sr.name),1, + length(extractfilename(sr.name))-4)); + res:=findnext(sr); + end; + SysUtils.FindClose(sr); + end; - qq:=2; - end; - end; + combobox1.itemindex:=0; + stringlist; + if (fileexists(extractfilePath(application.exename)+'/'+locale+'/' + +'Langpack_'+locale+'.txt')) then button2.Enabled:=true; - 2:begin - if listbox1.items[listbox1.itemindex]='..' then - begin - Memo1.Height:=343; - Memo2.Visible:=false; - Button1.Visible:=false; - Button2.Visible:=false; - Button3.Visible:=false; - button4.Visible:=false; - listbox1.Items.Clear; - listbox1.Items.Add('..'); - fileslist; - memo1.Lines.Clear; - memo2.Lines.Clear; - form1.Caption:='Miranda NG Langpack Manager - '+locale; - qq:=1; - end; - end; -end; end; + end. + diff --git a/tools/langpackmgr/langpackmgr.ico b/tools/langpackmgr/langpackmgr.ico new file mode 100644 index 0000000000..e5fe684d9c Binary files /dev/null and b/tools/langpackmgr/langpackmgr.ico differ diff --git a/tools/langpackmgr/langpackmgr.lpi b/tools/langpackmgr/langpackmgr.lpi new file mode 100644 index 0000000000..cfb49d06ed --- /dev/null +++ b/tools/langpackmgr/langpackmgr.lpi @@ -0,0 +1,91 @@ + + + + + + + + + + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <Icon Value="0"/> + </General> + <i18n> + <EnableI18N LFM="False"/> + </i18n> + <VersionInfo> + <StringTable ProductVersion=""/> + </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> + <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + </local> + </RunParams> + <RequiredPackages Count="1"> + <Item1> + <PackageName Value="LCL"/> + </Item1> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="langpackmgr.lpr"/> + <IsPartOfProject Value="True"/> + <UnitName Value="langpackmgr"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="unit1"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="langpackmgr"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + <Other> + <CompilerMessages> + <MsgFileName Value=""/> + </CompilerMessages> + <CompilerPath Value="$(CompPath)"/> + </Other> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/tools/langpackmgr/langpackmgr.lpr b/tools/langpackmgr/langpackmgr.lpr new file mode 100644 index 0000000000..2de2b5decd --- /dev/null +++ b/tools/langpackmgr/langpackmgr.lpr @@ -0,0 +1,21 @@ +program langpackmgr; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, unit1 + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/tools/langpackmgr/langpackmgr.lps b/tools/langpackmgr/langpackmgr.lps new file mode 100644 index 0000000000..e6fe26509f --- /dev/null +++ b/tools/langpackmgr/langpackmgr.lps @@ -0,0 +1,171 @@ +<?xml version="1.0"?> +<CONFIG> + <ProjectSession> + <PathDelim Value="\"/> + <Version Value="9"/> + <BuildModes Active="Default"/> + <Units Count="4"> + <Unit0> + <Filename Value="langpackmgr.lpr"/> + <IsPartOfProject Value="True"/> + <UnitName Value="langpackmgr"/> + <IsVisibleTab Value="True"/> + <EditorIndex Value="0"/> + <WindowIndex Value="0"/> + <TopLine Value="1"/> + <CursorPos X="1" Y="1"/> + <UsageCount Value="29"/> + <Loaded Value="True"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="unit1"/> + <EditorIndex Value="1"/> + <WindowIndex Value="0"/> + <TopLine Value="312"/> + <CursorPos X="59" Y="333"/> + <UsageCount Value="29"/> + <Loaded Value="True"/> + <LoadedDesigner Value="True"/> + </Unit1> + <Unit2> + <Filename Value="E:\lazarus\lcl\interfaces\win32\win32int.pp"/> + <UnitName Value="Win32Int"/> + <WindowIndex Value="0"/> + <TopLine Value="85"/> + <CursorPos X="26" Y="27"/> + <UsageCount Value="10"/> + </Unit2> + <Unit3> + <Filename Value="E:\lazarus\lcl\interfaces\win32\win32listsl.inc"/> + <EditorIndex Value="2"/> + <WindowIndex Value="0"/> + <TopLine Value="160"/> + <CursorPos X="1" Y="173"/> + <UsageCount Value="10"/> + <Loaded Value="True"/> + </Unit3> + </Units> + <General> + <ActiveWindowIndexAtStart Value="0"/> + </General> + <JumpHistory Count="28" HistoryIndex="27"> + <Position1> + <Filename Value="unit1.pas"/> + <Caret Line="239" Column="7" TopLine="225"/> + </Position1> + <Position2> + <Filename Value="unit1.pas"/> + <Caret Line="238" Column="20" TopLine="225"/> + </Position2> + <Position3> + <Filename Value="unit1.pas"/> + <Caret Line="31" Column="25" TopLine="24"/> + </Position3> + <Position4> + <Filename Value="unit1.pas"/> + <Caret Line="57" Column="28" TopLine="45"/> + </Position4> + <Position5> + <Filename Value="unit1.pas"/> + <Caret Line="56" Column="14" TopLine="38"/> + </Position5> + <Position6> + <Filename Value="unit1.pas"/> + <Caret Line="241" Column="12" TopLine="237"/> + </Position6> + <Position7> + <Filename Value="unit1.pas"/> + <Caret Line="233" Column="1" TopLine="232"/> + </Position7> + <Position8> + <Filename Value="unit1.pas"/> + <Caret Line="275" Column="15" TopLine="259"/> + </Position8> + <Position9> + <Filename Value="unit1.pas"/> + <Caret Line="187" Column="4" TopLine="46"/> + </Position9> + <Position10> + <Filename Value="unit1.pas"/> + <Caret Line="217" Column="14" TopLine="193"/> + </Position10> + <Position11> + <Filename Value="unit1.pas"/> + <Caret Line="323" Column="14" TopLine="304"/> + </Position11> + <Position12> + <Filename Value="unit1.pas"/> + <Caret Line="104" Column="16" TopLine="95"/> + </Position12> + <Position13> + <Filename Value="unit1.pas"/> + <Caret Line="323" Column="3" TopLine="304"/> + </Position13> + <Position14> + <Filename Value="unit1.pas"/> + <Caret Line="92" Column="41" TopLine="78"/> + </Position14> + <Position15> + <Filename Value="unit1.pas"/> + <Caret Line="282" Column="4" TopLine="276"/> + </Position15> + <Position16> + <Filename Value="unit1.pas"/> + <Caret Line="283" Column="4" TopLine="277"/> + </Position16> + <Position17> + <Filename Value="unit1.pas"/> + <Caret Line="282" Column="4" TopLine="276"/> + </Position17> + <Position18> + <Filename Value="unit1.pas"/> + <Caret Line="321" Column="35" TopLine="75"/> + </Position18> + <Position19> + <Filename Value="unit1.pas"/> + <Caret Line="64" Column="28" TopLine="48"/> + </Position19> + <Position20> + <Filename Value="unit1.pas"/> + <Caret Line="323" Column="14" TopLine="301"/> + </Position20> + <Position21> + <Filename Value="unit1.pas"/> + <Caret Line="322" Column="14" TopLine="300"/> + </Position21> + <Position22> + <Filename Value="unit1.pas"/> + <Caret Line="329" Column="14" TopLine="307"/> + </Position22> + <Position23> + <Filename Value="unit1.pas"/> + <Caret Line="105" Column="9" TopLine="89"/> + </Position23> + <Position24> + <Filename Value="unit1.pas"/> + <Caret Line="293" Column="2" TopLine="42"/> + </Position24> + <Position25> + <Filename Value="unit1.pas"/> + <Caret Line="31" Column="26" TopLine="19"/> + </Position25> + <Position26> + <Filename Value="unit1.pas"/> + <Caret Line="29" Column="31" TopLine="17"/> + </Position26> + <Position27> + <Filename Value="unit1.pas"/> + <Caret Line="32" Column="29" TopLine="20"/> + </Position27> + <Position28> + <Filename Value="unit1.pas"/> + <Caret Line="33" Column="29" TopLine="21"/> + </Position28> + </JumpHistory> + </ProjectSession> +</CONFIG> diff --git a/tools/langpackmgr/lpmanager_Icon.ico b/tools/langpackmgr/lpmanager_Icon.ico deleted file mode 100644 index 297ce84a9f..0000000000 Binary files a/tools/langpackmgr/lpmanager_Icon.ico and /dev/null differ diff --git a/tools/langpackmgr/unit1.lfm b/tools/langpackmgr/unit1.lfm new file mode 100644 index 0000000000..1f572fc5f7 --- /dev/null +++ b/tools/langpackmgr/unit1.lfm @@ -0,0 +1,142 @@ +object Form1: TForm1 + Left = 389 + Height = 338 + Top = 232 + Width = 587 + HorzScrollBar.Page = 532 + HorzScrollBar.Range = 528 + VertScrollBar.Page = 296 + VertScrollBar.Range = 283 + BorderStyle = bsDialog + Caption = 'Miranda NG Langpack Tools: Editor' + ClientHeight = 338 + ClientWidth = 587 + DragKind = dkDock + OnCreate = FormCreate + LCLVersion = '1.0.14.0' + object Memo1: TMemo + Left = 136 + Height = 128 + Top = 40 + Width = 448 + ScrollBars = ssHorizontal + TabOrder = 0 + WordWrap = False + end + object Memo2: TMemo + Left = 136 + Height = 128 + Top = 176 + Width = 448 + ScrollBars = ssHorizontal + TabOrder = 1 + WordWrap = False + end + object ListBox: TListBox + Left = 8 + Height = 296 + Top = 40 + Width = 120 + ItemHeight = 0 + OnClick = ListBox1Click + OnDblClick = ListBox2Click + TabOrder = 2 + end + object ComboBox1: TComboBox + Left = 8 + Height = 21 + Top = 8 + Width = 120 + ItemHeight = 13 + OnChange = ComboBox1Change + Style = csDropDownList + TabOrder = 3 + end + object ComboBox2: TComboBox + Left = 512 + Height = 21 + Top = 8 + Width = 72 + Enabled = False + ItemHeight = 13 + ItemIndex = 0 + Items.Strings = ( + 'english' + ) + OnChange = ComboBox2Change + Style = csDropDownList + TabOrder = 4 + Text = 'english' + end + object Button3: TButton + Left = 136 + Height = 21 + Top = 312 + Width = 43 + Caption = 'Copy' + OnClick = Button3Click + TabOrder = 5 + end + object Button4: TButton + Left = 184 + Height = 21 + Top = 312 + Width = 43 + Caption = 'Google' + OnClick = Button4Click + TabOrder = 6 + end + object Button2: TButton + Left = 232 + Height = 21 + Top = 312 + Width = 43 + Caption = 'Find' + Enabled = False + OnClick = Button2Click + TabOrder = 7 + end + object Button1: TButton + Left = 541 + Height = 21 + Top = 312 + Width = 43 + Caption = 'Save' + OnClick = Button1Click + TabOrder = 8 + end + object RadioGroup1: TRadioGroup + Left = 136 + Height = 35 + Top = 0 + Width = 137 + AutoFill = True + Caption = 'View' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + ClientHeight = 17 + ClientWidth = 133 + Columns = 2 + ItemIndex = 0 + Items.Strings = ( + 'Untranslated' + 'All' + ) + TabOrder = 9 + end + object CheckBox1: TCheckBox + Left = 400 + Height = 17 + Top = 12 + Width = 104 + Caption = 'Other languages:' + Enabled = False + TabOrder = 10 + end +end -- cgit v1.2.3