summaryrefslogtreecommitdiff
path: root/tools/langpackmgr
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2013-06-24 12:14:21 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2013-06-24 12:14:21 +0000
commit852df1e2fd8a0e220065b0eb1443b3e834101531 (patch)
tree7a967af55985f5c0b5a0f279df602099950077d3 /tools/langpackmgr
parentf75e5e9292d8307066d7ece402e2e7519139c8f2 (diff)
- langpackmgr tool source code (by Jebifor)
git-svn-id: http://svn.miranda-ng.org/main/trunk@5116 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'tools/langpackmgr')
-rw-r--r--tools/langpackmgr/Unit1.dfm120
-rw-r--r--tools/langpackmgr/Unit1.pas340
-rw-r--r--tools/langpackmgr/langpackmgr.dpr21
-rw-r--r--tools/langpackmgr/langpackmgr.dproj185
-rw-r--r--tools/langpackmgr/langpackmgr.icobin0 -> 5430 bytes
5 files changed, 666 insertions, 0 deletions
diff --git a/tools/langpackmgr/Unit1.dfm b/tools/langpackmgr/Unit1.dfm
new file mode 100644
index 0000000000..7edf9ac297
--- /dev/null
+++ b/tools/langpackmgr/Unit1.dfm
@@ -0,0 +1,120 @@
+object Form1: TForm1
+ Left = 0
+ Top = 0
+ BorderIcons = [biSystemMenu]
+ Caption = 'Miranda NG Langpack Manager'
+ ClientHeight = 219
+ ClientWidth = 684
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ OnCreate = FormCreate
+ OnKeyDown = enter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 8
+ Top = 8
+ Width = 20
+ Height = 13
+ Caption = 'File:'
+ end
+ object Label2: TLabel
+ Left = 455
+ Top = 8
+ Width = 6
+ Height = 13
+ Caption = '1'
+ end
+ object Label3: TLabel
+ Left = 8
+ Top = 188
+ Width = 3
+ Height = 13
+ end
+ object ListBox1: TListBox
+ Left = 488
+ Top = 3
+ Width = 193
+ Height = 214
+ ItemHeight = 13
+ TabOrder = 0
+ OnClick = ListBox1Click
+ end
+ object Edit1: TEdit
+ Left = 45
+ Top = 5
+ Width = 316
+ Height = 21
+ Enabled = False
+ TabOrder = 1
+ end
+ object Button1: TButton
+ Left = 374
+ Top = 3
+ Width = 75
+ Height = 25
+ Caption = 'OPEN'
+ TabOrder = 2
+ OnClick = Button1Click
+ end
+ object Button2: TButton
+ Left = 336
+ Top = 176
+ Width = 146
+ Height = 25
+ Caption = 'SAVE AND REFRESH'
+ TabOrder = 3
+ OnClick = Button2Click
+ end
+ object C: TBitBtn
+ Left = 455
+ Top = 64
+ Width = 27
+ Height = 25
+ Caption = 'C'
+ TabOrder = 4
+ OnClick = CClick
+ end
+ object X: TBitBtn
+ Left = 455
+ Top = 127
+ Width = 27
+ Height = 25
+ Caption = 'X'
+ TabOrder = 5
+ OnClick = XClick
+ end
+ object Edit2: TEdit
+ Left = 8
+ Top = 66
+ Width = 441
+ Height = 21
+ TabOrder = 6
+ end
+ object Edit3: TEdit
+ Left = 8
+ Top = 129
+ Width = 441
+ Height = 21
+ TabOrder = 7
+ OnEnter = FormCreate
+ end
+ object Button3: TButton
+ Left = 240
+ Top = 176
+ Width = 75
+ Height = 25
+ Caption = 'DUPES ON'
+ TabOrder = 8
+ OnClick = Button3Click
+ end
+ object OpenDialog1: TOpenDialog
+ Left = 192
+ Top = 176
+ end
+end
diff --git a/tools/langpackmgr/Unit1.pas b/tools/langpackmgr/Unit1.pas
new file mode 100644
index 0000000000..59c76c06b0
--- /dev/null
+++ b/tools/langpackmgr/Unit1.pas
@@ -0,0 +1,340 @@
+unit Unit1;
+
+interface
+
+uses
+ Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtDlgs, Vcl.StdCtrls, Vcl.Buttons;
+
+type
+ TForm1 = class(TForm)
+ Label1: TLabel;
+ ListBox1: TListBox;
+ OpenDialog1: TOpenDialog;
+ Edit1: TEdit;
+ Button1: TButton;
+ Button2: TButton;
+ C: TBitBtn;
+ X: TBitBtn;
+ Label2: TLabel;
+ Edit2: TEdit;
+ Edit3: TEdit;
+ Label3: TLabel;
+ Button3: TButton;
+ procedure Button1Click(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure ListBox1Click(Sender: TObject);
+ procedure refresh;
+ procedure read;
+ procedure enter(Sender: TObject; var Key: Word; Shift: TShiftState);
+ procedure CClick(Sender: TObject);
+ procedure XClick(Sender: TObject);
+ procedure Button2Click(Sender: TObject);
+ procedure Button3Click(Sender: TObject);
+
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Form1: TForm1;
+ openDialog : TOpenDialog;
+ full: array [1..7000] of string;
+ notranslate: array [1..7000] of integer;
+ ustring,tstring: array [1..7000] of string;
+ fline:array [1..2,1..7000] of string;
+ english,translate: textfile;
+ line:string;
+ ii,i,it,ie:integer;
+ bom, bomd:string;
+ dupes: array [1..7000] of string;
+ idx,idm:integer;
+ cores:boolean;
+implementation
+
+{$R *.dfm}
+procedure tform1.read;
+begin
+
+if extractfilename(opendialog.filename)='=CORE=.txt'
+then button3.Visible:=false
+else button3.Visible:=true;
+
+ listbox1.Items.Clear;
+ line:='';
+ edit3.Text:='';
+ for i:= 1 to 7000 do
+ begin
+ full[i]:='';
+ dupes[i]:='';
+ notranslate[i]:=0;
+ ustring[i]:='';
+ tstring[i]:='';
+ end;
+
+ assignfile(translate,opendialog.filename,CP_UTF8);
+ reset(translate);
+ it:=0;
+ while not Eof(translate) do
+ begin
+ ReadLn(translate, line);
+ if (copy(line,1,1)='[') and (not Eof(translate)) then
+ begin
+ it:=it+1;
+ full[it]:=line;
+ ReadLn(translate, line);
+ if (copy(line,1,1)<>'')and(copy(line,1,1)<>';')and(copy(line,1,1)<>'[')then
+ begin
+ it:=it+1;
+ full[it]:=line;
+ end else it:=it-1;
+ end;
+ end;
+closefile(translate);
+
+ idm:=0;
+if FileExists(ExtractFilePath(opendialog.filename)+'=DUPES=.txt')=true then
+begin
+assignfile(translate,ExtractFilePath(opendialog.filename)+'=DUPES=.txt',CP_UTF8);
+reset(translate);
+ ReadLn(translate, bomd);
+ while not Eof(translate) do
+ begin
+ ReadLn(translate, line);
+ if (copy(line,1,1)='[') and (not Eof(translate)) then
+ begin
+ idm:=idm+1;
+ dupes[idm]:=line;
+ ReadLn(translate, line);
+ if (copy(line,1,1)<>'')and(copy(line,1,1)<>';')and(copy(line,1,1)<>'[')then
+ begin idm:=idm+1; dupes[idm]:=line; end
+ else idm:=idm-1;
+ end;
+end;
+closefile(translate);
+end;
+
+if FileExists(ExtractFilePath(opendialog.filename)+'\..\=DUPES=.txt')=true then
+begin
+assignfile(translate,ExtractFilePath(opendialog.filename)+'\..\=DUPES=.txt',CP_UTF8);
+reset(translate);
+ while not Eof(translate) do
+ begin
+ ReadLn(translate, line);
+ if (copy(line,1,1)='[') and (not Eof(translate)) then
+ begin
+ idm:=idm+1;
+ dupes[idm]:=line;
+ ReadLn(translate, line);
+ if (copy(line,1,1)<>'')and(copy(line,1,1)<>';')and(copy(line,1,1)<>'[')then
+ begin idm:=idm+1; dupes[idm]:=line; end
+ else idm:=idm-1;
+ end;
+end;
+closefile(translate);
+end;
+
+if extractfilename(opendialog.filename)='=CORE=.txt' then
+begin
+assignfile(english,ExtractFilePath(Application.ExeName)+
+'\..\english\'+extractfilename(opendialog.filename),CP_UTF8);
+end
+else
+begin
+assignfile(translate,ExtractFilePath(opendialog.filename)+'\..\=CORE=.txt',CP_UTF8);
+reset(translate);
+ while not Eof(translate) do
+ begin
+ ReadLn(translate, line);
+ if (copy(line,1,1)='[') and (not Eof(translate)) then
+ begin
+ idm:=idm+1;
+ dupes[idm]:=line;
+ ReadLn(translate, line);
+ if (copy(line,1,1)<>'')and(copy(line,1,1)<>';')and(copy(line,1,1)<>'[')then
+ begin
+ idm:=idm+1;
+ dupes[idm]:=line;
+ end else idm:=idm-1;
+ end;
+ end;
+closefile(translate);
+
+assignfile(english,ExtractFilePath(Application.ExeName)+
+'\..\english\plugins\'+extractfilename(opendialog.filename),CP_UTF8);
+end;
+ reset(english);
+ ReadLn(english, bom);
+ ie:=0;
+while not Eof(english) do
+ begin
+ ReadLn(english, line);
+ ie:=ie+1;
+ ustring[ie]:=line;
+ end;
+ closefile(english);
+
+for i := 1 to ie do
+begin
+ for ii:= 1 to it-1 do
+if ustring[i]=full[ii] then tstring[i]:=full[ii+1];
+if copy(ustring[i],1,1)=';' then tstring[i]:=ustring[i];
+end;
+for i := 1 to ie do
+if tstring[i]='' then
+begin
+
+if (extractfilename(opendialog.filename)='=CORE=.txt') and (idm>0) then
+ for idx := 1 to idm do
+ if dupes[idx]=ustring[i] then tstring[i]:=dupes[idx+1];
+
+if (extractfilename(opendialog.filename)<>'=CORE=.txt') and (idm>0)
+and (button3.Caption='DUPES ON') then
+ for idx := 1 to idm do
+ if dupes[idx]=ustring[i] then tstring[i]:=dupes[idx+1];
+
+if tstring[i]='' then
+begin
+listbox1.Items.Add(ustring[i]);
+notranslate[listbox1.Items.Count]:=i;
+end;
+end;
+
+label3.caption:='Untranslate:'+inttostr(listbox1.Items.Count)+' lines.';
+end;
+
+
+procedure tform1.refresh;
+var n:integer;
+begin
+n:=strtoint(label2.caption);
+line:=edit3.Text;
+if length(line)<>0 then
+tstring[notranslate[n]]:=line;
+label2.Caption:=inttostr(ListBox1.ItemIndex+1);
+n:=strtoint(label2.caption);
+edit2.Text:=copy(ustring[notranslate[n]],2,length(ustring[notranslate[n]])-2);
+edit2.SelectAll;
+edit2.CopyToClipboard;
+edit3.Text:=tstring[notranslate[n]];
+edit3.SetFocus;
+end;
+
+
+
+procedure TForm1.Button1Click(Sender: TObject);
+ begin
+ chdir(ExtractFilePath(Application.ExeName));
+ chdir('..');
+ openDialog := TOpenDialog.Create(self);
+ openDialog.Filter := 'Text files only|*.txt';
+ openDialog.InitialDir :=GetCurrentDir ;
+ openDialog.Options := [ofFileMustExist];
+ if (openDialog.Execute)
+ and(extractfilename(openDialog.filename)<>'=HEAD=.txt')
+ and(extractfilename(openDialog.filename)<>'=DUPES=.txt')
+ and(extractfilename(openDialog.filename)<>'untranslated.txt')
+then
+ begin
+ edit1.Text:=copy(openDialog.filename,
+ length(ExtractFilePath(Application.ExeName))-4,
+ length(openDialog.filename)-length(ExtractFilePath(Application.ExeName))+5);
+ read;
+ refresh;
+ end;
+end;
+
+
+
+procedure TForm1.Button2Click(Sender: TObject);
+begin
+refresh;
+assignfile(translate,opendialog.filename,CP_UTF8);
+rewrite(translate);
+writeLn(translate, bom);
+ for i := 1 to ie do
+ if tstring[i]<>'' then
+ begin
+cores:=false;
+ for idx := 1 to idm do
+if (copy(dupes[idx],1,1)='[')
+and (dupes[idx]=ustring[i])
+and (Button3.caption='DUPES ON')
+ then cores:=true;
+ if cores=false then
+ begin
+ writeln(translate,ustring[i]);
+ if copy(ustring[i],1,1)<>';' then
+ writeln(translate,tstring[i]);
+ end;
+ end;
+closefile(translate);
+
+ if (extractfilename(openDialog.filename)='=CORE=.txt')
+ and (FileExists(ExtractFilePath(opendialog.filename)+'=DUPES=.txt')=true)
+ then
+ begin
+assignfile(translate,ExtractFilePath(opendialog.filename)+'=DUPES=.txt',CP_UTF8);
+rewrite(translate);
+writeLn(translate, bomd);
+for idx := 1 to idm do
+if (copy(dupes[idx],1,1)='[') then
+ begin cores:=false;
+ for i := 1 to ie do
+ if dupes[idx]=ustring[i] then cores:=true;
+ if cores=true then begin
+ writeLn(translate, dupes[idx]);
+ writeLn(translate, dupes[idx+1]);
+ end;
+ end;
+closefile(translate);
+ end;
+ read;
+end;
+
+procedure TForm1.Button3Click(Sender: TObject);
+begin
+if edit1.Text<>'' then
+If Button3.Caption='DUPES OFF'
+then Button3.Caption:='DUPES ON'
+else Button3.Caption:='DUPES OFF';
+refresh;read;refresh;
+end;
+
+procedure TForm1.CClick(Sender: TObject);
+begin
+ Edit3.text:=edit2.text;
+end;
+
+procedure TForm1.XClick(Sender: TObject);
+begin
+ Edit3.text:='';
+ tstring[notranslate[strtoint(label2.caption)]]:='';
+ refresh;
+end;
+
+procedure TForm1.enter(Sender: TObject; var Key: Word;
+ Shift: TShiftState);
+begin
+case key of
+ vk_return,vk_down: if listbox1.ItemIndex<listbox1.Items.Count then
+ listbox1.ItemIndex:=listbox1.ItemIndex+1;
+ vk_up: if listbox1.ItemIndex>0 then
+ listbox1.ItemIndex:=listbox1.ItemIndex-1;
+end;
+refresh;
+end;
+
+procedure TForm1.ListBox1Click(Sender: TObject);
+begin
+ refresh;
+end;
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+ KeyPreview := True;
+end;
+
+end.
diff --git a/tools/langpackmgr/langpackmgr.dpr b/tools/langpackmgr/langpackmgr.dpr
new file mode 100644
index 0000000000..69d75469eb
--- /dev/null
+++ b/tools/langpackmgr/langpackmgr.dpr
@@ -0,0 +1,21 @@
+program langpackmgr;
+
+uses
+ Vcl.Forms,
+ Windows,
+ Unit1 in 'Unit1.pas' {Form1};
+
+{$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or
+ 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
new file mode 100644
index 0000000000..503e29559a
--- /dev/null
+++ b/tools/langpackmgr/langpackmgr.dproj
@@ -0,0 +1,185 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{09EFF320-8309-4D4B-A78A-3B3997206B39}</ProjectGuid>
+ <ProjectVersion>14.6</ProjectVersion>
+ <FrameworkType>VCL</FrameworkType>
+ <MainSource>langpackmgr.dpr</MainSource>
+ <Base>True</Base>
+ <Config Condition="'$(Config)'==''">Release</Config>
+ <Platform Condition="'$(Platform)'==''">Win32</Platform>
+ <TargetedPlatforms>1</TargetedPlatforms>
+ <AppType>Application</AppType>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+ <Base_Win32>true</Base_Win32>
+ <CfgParent>Base</CfgParent>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+ <Base_Win64>true</Base_Win64>
+ <CfgParent>Base</CfgParent>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
+ <Cfg_1>true</Cfg_1>
+ <CfgParent>Base</CfgParent>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
+ <Cfg_1_Win32>true</Cfg_1_Win32>
+ <CfgParent>Cfg_1</CfgParent>
+ <Cfg_1>true</Cfg_1>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
+ <Cfg_2>true</Cfg_2>
+ <CfgParent>Base</CfgParent>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+ <Cfg_2_Win32>true</Cfg_2_Win32>
+ <CfgParent>Cfg_2</CfgParent>
+ <Cfg_2>true</Cfg_2>
+ <Base>true</Base>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Base)'!=''">
+ <Icon_MainIcon>langpackmgr.ico</Icon_MainIcon>
+ <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
+ <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
+ <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
+ <DCC_E>false</DCC_E>
+ <DCC_N>false</DCC_N>
+ <DCC_S>false</DCC_S>
+ <DCC_F>false</DCC_F>
+ <DCC_K>false</DCC_K>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Base_Win32)'!=''">
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+ <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+ <VerInfo_Locale>1033</VerInfo_Locale>
+ <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+ <DCC_UsePackage>bindcompfmx;vcldbx;rtl;dbrtl;IndySystem;bindcomp;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;DataSnapProviderClient;xmlrtl;svnui;DBXSybaseASEDriver;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;MetropolisUILiveTile;bindcompdbx;vclactnband;bindengine;vcldb;soaprtl;vcldsnap;bindcompvcl;vclie;vcltouch;VclSmp;dsnap;IndyIPServer;IndyCore;vcl;dsnapcon;vclx;inetdbxpress;webdsnap;svn;bdertl;adortl</DCC_UsePackage>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Base_Win64)'!=''">
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+ <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+ <VerInfo_Locale>1033</VerInfo_Locale>
+ <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+ <DCC_UsePackage>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)</DCC_UsePackage>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Cfg_1)'!=''">
+ <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+ <DCC_DebugDCUs>true</DCC_DebugDCUs>
+ <DCC_Optimize>false</DCC_Optimize>
+ <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+ <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
+ <DCC_RemoteDebug>true</DCC_RemoteDebug>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
+ <DCC_ExeOutput>D:\Delphi\langpacks\tool\</DCC_ExeOutput>
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+ <VerInfo_Locale>1033</VerInfo_Locale>
+ <DCC_RemoteDebug>false</DCC_RemoteDebug>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Cfg_2)'!=''">
+ <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+ <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+ <DCC_DebugInformation>false</DCC_DebugInformation>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+ <Manifest_File>None</Manifest_File>
+ <DCC_DcuOutput>.\</DCC_DcuOutput>
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+ <VerInfo_Locale>1033</VerInfo_Locale>
+ <DCC_ExeOutput>..\..\langpacks\tool\</DCC_ExeOutput>
+ </PropertyGroup>
+ <ItemGroup>
+ <DelphiCompile Include="$(MainSource)">
+ <MainSource>MainSource</MainSource>
+ </DelphiCompile>
+ <DCCReference Include="Unit1.pas">
+ <Form>Form1</Form>
+ </DCCReference>
+ <BuildConfiguration Include="Release">
+ <Key>Cfg_2</Key>
+ <CfgParent>Base</CfgParent>
+ </BuildConfiguration>
+ <BuildConfiguration Include="Base">
+ <Key>Base</Key>
+ </BuildConfiguration>
+ <BuildConfiguration Include="Debug">
+ <Key>Cfg_1</Key>
+ <CfgParent>Base</CfgParent>
+ </BuildConfiguration>
+ </ItemGroup>
+ <ProjectExtensions>
+ <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+ <Borland.ProjectType/>
+ <BorlandProject>
+ <Delphi.Personality>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1049</VersionInfo>
+ <VersionInfo Name="CodePage">1251</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"/>
+ <VersionInfoKeys Name="FileDescription"/>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"/>
+ <VersionInfoKeys Name="LegalCopyright"/>
+ <VersionInfoKeys Name="LegalTrademarks"/>
+ <VersionInfoKeys Name="OriginalFilename"/>
+ <VersionInfoKeys Name="ProductName"/>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"/>
+ <VersionInfoKeys Name="CFBundleName"/>
+ <VersionInfoKeys Name="CFBundleDisplayName"/>
+ <VersionInfoKeys Name="UIDeviceFamily"/>
+ <VersionInfoKeys Name="CFBundleIdentifier"/>
+ <VersionInfoKeys Name="CFBundleVersion"/>
+ <VersionInfoKeys Name="CFBundlePackageType"/>
+ <VersionInfoKeys Name="CFBundleSignature"/>
+ <VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
+ <VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
+ <VersionInfoKeys Name="CFBundleExecutable"/>
+ <VersionInfoKeys Name="CFBundleResourceSpecification"/>
+ <VersionInfoKeys Name="LSRequiresIPhoneOS"/>
+ <VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
+ <VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
+ </VersionInfoKeys>
+ <Source>
+ <Source Name="MainSource">langpackmgr.dpr</Source>
+ </Source>
+ <Excluded_Packages>
+ <Excluded_Packages Name="$(BDSBIN)\dcloffice2k180.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+ <Excluded_Packages Name="$(BDSBIN)\dclofficexp180.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+ </Excluded_Packages>
+ </Delphi.Personality>
+ <Deployment/>
+ <Platforms>
+ <Platform value="Win32">True</Platform>
+ <Platform value="Win64">False</Platform>
+ </Platforms>
+ </BorlandProject>
+ <ProjectFileVersion>12</ProjectFileVersion>
+ </ProjectExtensions>
+ <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+ <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+</Project>
diff --git a/tools/langpackmgr/langpackmgr.ico b/tools/langpackmgr/langpackmgr.ico
new file mode 100644
index 0000000000..297ce84a9f
--- /dev/null
+++ b/tools/langpackmgr/langpackmgr.ico
Binary files differ