[Initranslator-svncheckins] SF.net SVN: initranslator: [138] translator/trunk/src
Brought to you by:
peter3
|
From: <pe...@us...> - 2006-11-30 20:07:20
|
Revision: 138
http://svn.sourceforge.net/initranslator/?rev=138&view=rev
Author: peter3
Date: 2006-11-30 12:07:10 -0800 (Thu, 30 Nov 2006)
Log Message:
-----------
ToolProperties:
- Now displays section and name
FoxitPlugin:
- New plugin for Foxit PDF Reader
Modified Paths:
--------------
translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.dfm
translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.pas
Added Paths:
-----------
translator/trunk/src/FoxitPlugin/
translator/trunk/src/FoxitPlugin/FoxitParser.dpr
translator/trunk/src/FoxitPlugin/FoxitParser.pas
translator/trunk/src/FoxitPlugin/FoxitParser.res
translator/trunk/src/FoxitPlugin/FoxitParserImpl.pas
Added: translator/trunk/src/FoxitPlugin/FoxitParser.dpr
===================================================================
--- translator/trunk/src/FoxitPlugin/FoxitParser.dpr (rev 0)
+++ translator/trunk/src/FoxitPlugin/FoxitParser.dpr 2006-11-30 20:07:10 UTC (rev 138)
@@ -0,0 +1,24 @@
+library FoxitParser;
+
+uses
+ SysUtils,
+ Classes,
+ PreviewExportFrm in '..\PluginCommon\PreviewExportFrm.pas' {frmExport},
+ DualImportFrm in '..\PluginCommon\DualImportFrm.pas' {frmDualImport},
+ TransIntf in '..\TransIntf.pas',
+ FoxitParserImpl in 'FoxitParserImpl.pas',
+ CommonUtils in '..\CommonUtils.pas';
+
+{$R *.res}
+
+function InstallPlugin(out Parser: IFileParser): HResult; stdcall;
+begin
+ Parser := TFoxitParser.Create;
+ Result := S_OK;
+end;
+
+exports InstallPlugin name cRegisterTransFileParserFuncName;
+begin
+
+end.
+
Added: translator/trunk/src/FoxitPlugin/FoxitParser.pas
===================================================================
--- translator/trunk/src/FoxitPlugin/FoxitParser.pas (rev 0)
+++ translator/trunk/src/FoxitPlugin/FoxitParser.pas 2006-11-30 20:07:10 UTC (rev 138)
@@ -0,0 +1,284 @@
+{@abstract(Parser for TMX) }
+{
+ Copyright \xA9 2004-2005 by Peter Thornqvist; all rights reserved
+
+ Developer(s):
+ p3 - peter3 att users dott sourceforge dott net
+
+ Status:
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html
+
+ Software distributed under the License is distributed on an "AS IS" basis,
+ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
+ the specific language governing rights and limitations under the License.
+}
+// $Id: TMXParserImpl.pas 132 2006-11-22 15:18:34Z peter3 $
+
+unit TMXParserImpl;
+
+interface
+uses
+ Classes, Types, TntClasses, TntSysUtils, TransIntf;
+
+type
+ TTMXParser = class(TInterfacedObject, IUnknown, IFileParser)
+ private
+ FOldAppHandle: Cardinal;
+ FOrigFile, FOrigLang, FTransLang: string;
+ procedure LoadSettings;
+ procedure SaveSettings;
+ procedure BuildPreview(Items: ITranslationItems; Strings: TTntStrings);
+ public
+ constructor Create;
+ destructor Destroy; override;
+
+ function Capabilities: Integer; safecall;
+ function Configure(Capability: Integer): HRESULT; safecall;
+ function DisplayName(Capability: Integer): WideString; safecall;
+ function ExportItems(const Items: ITranslationItems;
+ const Orphans: ITranslationItems): HRESULT; safecall;
+ function ImportItems(const Items: ITranslationItems;
+ const Orphans: ITranslationItems): HRESULT; safecall;
+ procedure Init(const ApplicationServices: IApplicationServices); safecall;
+ end;
+
+implementation
+uses
+ SysUtils, Forms, IniFiles, PreviewExportFrm, TMXImportFrm,
+ xmlintf, xmldoc, xmldom;
+
+const
+ cTMXFilter = 'TMX Files (*.tmx)|*.tmx|All files (*.*)|*.*';
+ cTMXImportTitle = 'Import from TMX file';
+ cTMXExportTitle = 'Export to TMX file';
+ cOriginalItem:WideString = '!!!!Original%d!!!!';
+ cTranslationItem:WideString = '!!!!Translation%d!!!!';
+
+var
+ XML: WideString = '';
+
+{ TTMXParser }
+
+procedure TTMXParser.BuildPreview(Items: ITranslationItems; Strings: TTntStrings);
+var
+ i: integer;
+ TI: ItranslationItem;
+ S:WideString;
+begin
+ if XML = '' then
+ raise Exception.Create('Building TMX file from scratch not supported. Please import from a TMX file before trying to export.');
+ S := XML; // keep original import untouched so we can reuse it!
+ for i := 0 to Items.Count - 1 do
+ begin
+ TI := Items[i];
+ S := Tnt_WideStringReplace(S, WideFormat(cOriginalItem, [TI.Index]), '<seg>' + TI.Original + '</seg>', [rfReplaceall]);
+ S := Tnt_WideStringReplace(S, WideFormat(cTranslationItem, [TI.Index]), '<seg>' + TI.Translation + '</seg>', [rfReplaceall]);
+ end;
+ Strings.Text := S;
+end;
+
+function TTMXParser.Capabilities: Integer;
+begin
+ Result := CAP_IMPORT or CAP_EXPORT;
+end;
+
+function TTMXParser.Configure(Capability: Integer): HRESULT;
+begin
+ Result := E_NOTIMPL;
+end;
+
+constructor TTMXParser.Create;
+begin
+ inherited;
+ FOldAppHandle := Application.Handle;
+end;
+
+destructor TTMXParser.Destroy;
+begin
+ Application.Handle := FOldAppHandle;
+ inherited;
+end;
+
+function TTMXParser.DisplayName(Capability: Integer): WideString;
+begin
+ case Capability of
+ CAP_IMPORT:
+ Result := cTMXImportTitle;
+ CAP_EXPORT:
+ Result := cTMXExportTitle;
+ else
+ Result := '';
+ end;
+end;
+
+function TTMXParser.ExportItems(const Items, Orphans: ITranslationItems): HRESULT;
+var
+ S: TTntStringlist;
+ FOldSort: TTranslateSortType;
+begin
+ Result := S_FALSE;
+ FOldSort := Items.Sort;
+ try
+ LoadSettings;
+ Items.Sort := stIndex;
+ S := TTntStringlist.Create;
+ try
+ BuildPreview(Items, S);
+ if TfrmExport.Execute(FOrigFile, cTMXExportTitle, cTMXFilter, '.', 'tmx', S) then
+ begin
+ S.SaveToFile(FOrigFile);
+ Result := S_OK;
+ SaveSettings;
+ end;
+ finally
+ S.Free;
+ Items.Sort := FOldSort;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+function TTMXParser.ImportItems(const Items, Orphans: ITranslationItems): HRESULT;
+type
+ TFoundItem = (fiOriginal, fiTranslation);
+ TFoundItems = set of TFoundItem;
+
+var
+ NodeList: IDOMNodeList;
+ Node, ChildNode: IDOMNode;
+ i: integer;
+ TI: ITranslationItem;
+ FFoundItems: TFoundItems;
+ FXMLImport: IXMLDocument;
+
+ function IsOriginal(const Attributes: IDOMNamedNodeMap): boolean;
+ begin
+ Result := (Attributes <> nil) and (Attributes.getNamedItem('xml:lang') <> nil)
+ and WideSameText(Attributes.getNamedItem('xml:lang').nodeValue, FOrigLang);
+ end;
+
+ function IsTranslation(const Attributes: IDOMNamedNodeMap): boolean;
+ begin
+ Result := (Attributes <> nil) and (Attributes.getNamedItem('xml:lang') <> nil)
+ and WideSameText(Attributes.getNamedItem('xml:lang').nodeValue, FTransLang);
+ end;
+
+ function RemoveTags(const S:WideString):WideString;
+ begin
+ Result := Tnt_WideStringReplace(S, '<seg>', '', [rfReplaceAll]);
+ Result := Tnt_WideStringReplace(Result, '</seg>', '', [rfReplaceAll]);
+ end;
+begin
+ Result := S_FALSE;
+ FFoundItems := [];
+ try
+ Items.Clear;
+ Orphans.Clear;
+ LoadSettings;
+ if TfrmTMXImport.Execute(FOrigFile, FOrigLang, FTransLang, cTMXImportTitle, cTMXFilter, '.', 'tmx') then
+ begin
+ FXMLImport := TXMLDocument.Create(nil);
+ try
+ FXMLImport.LoadFromFile(FOrigFile);
+
+ if FXMLImport.DOMDocument <> nil then
+ begin
+ NodeList := FXMLImport.DOMDocument.getElementsByTagName('tuv');
+ if NodeList <> nil then
+ for i := 0 to NodeList.length - 1 do
+ begin
+ Node := NodeList.item[i];
+ if IsOriginal(Node.attributes) then
+ begin
+ ChildNode := Node.firstChild;
+ if (ChildNode <> nil) and (ChildNode.nodeName = 'seg') then
+ begin
+ if TI = nil then
+ TI := Items.Add;
+ TI.Original := RemoveTags((ChildNode as IDOMNodeEx).xml);
+ Node.removeChild(ChildNode);
+ ChildNode := FXMLImport.DOMDocument.createTextNode('');
+ ChildNode.nodeValue := WideFormat(cOriginalItem,[TI.Index]);
+ Node.appendChild(ChildNode);
+ Include(FFoundItems, fiOriginal);
+ end;
+ end
+ else if IsTranslation(Node.attributes) then
+ begin
+ ChildNode := Node.firstChild;
+ if (ChildNode <> nil) and (ChildNode.nodeName = 'seg') then
+ begin
+ if TI = nil then
+ TI := Items.Add;
+ TI.Translation := RemoveTags((ChildNode as IDOMNodeEx).xml);
+ Node.removeChild(ChildNode);
+ ChildNode := FXMLImport.DOMDocument.createTextNode('');
+ ChildNode.nodeValue := WideFormat(cTranslationItem,[TI.Index]);
+ Node.appendChild(ChildNode);
+ Include(FFoundItems, fiTranslation);
+ end;
+ end;
+ if FFoundItems = [fiTranslation, fiOriginal] then
+ begin
+ if TI <> nil then
+ TI.Translated := TI.Translation <> '';
+ TI := nil;
+ FFoundItems := [];
+ end;
+ end;
+ end;
+ SaveSettings;
+ Items.Modified := false;
+ FXMLImport.SaveToXML(XML); // save the imported data in a string
+ Result := S_OK;
+ finally
+ FXMLImport := nil;
+ end;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+procedure TTMXParser.Init(const ApplicationServices: IApplicationServices);
+begin
+ Application.Handle := ApplicationServices.AppHandle;
+end;
+
+procedure TTMXParser.LoadSettings;
+begin
+ try
+ with TIniFile.Create(ChangeFileExt(GetModuleName(hInstance), '.ini')) do
+ try
+ FOrigFile := ReadString('Settings', 'OrigFile', FOrigFile);
+ FOrigLang := ReadString('Settings', 'OrigLang', FOrigLang);
+ FTransLang := ReadString('Settings', 'TransLang', FTransLang);
+ finally
+ Free;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+procedure TTMXParser.SaveSettings;
+begin
+ try
+ with TIniFile.Create(ChangeFileExt(GetModuleName(hInstance), '.ini')) do
+ try
+ WriteString('Settings', 'OrigFile', FOrigFile);
+ WriteString('Settings', 'OrigLang', FOrigLang);
+ WriteString('Settings', 'TransLang', FTransLang);
+ finally
+ Free;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+end.
+
Added: translator/trunk/src/FoxitPlugin/FoxitParser.res
===================================================================
(Binary files differ)
Property changes on: translator/trunk/src/FoxitPlugin/FoxitParser.res
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: translator/trunk/src/FoxitPlugin/FoxitParserImpl.pas
===================================================================
--- translator/trunk/src/FoxitPlugin/FoxitParserImpl.pas (rev 0)
+++ translator/trunk/src/FoxitPlugin/FoxitParserImpl.pas 2006-11-30 20:07:10 UTC (rev 138)
@@ -0,0 +1,308 @@
+{@abstract(Parser for Foxit PDF Reader) }
+{
+ Copyright \xA9 2006 by Peter Thornqvist; all rights reserved
+
+ Developer(s):
+ p3 - peter3 att users dott sourceforge dott net
+
+ Status:
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html
+
+ Software distributed under the License is distributed on an "AS IS" basis,
+ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
+ the specific language governing rights and limitations under the License.
+}
+// $Id: $
+
+unit FoxitParserImpl;
+
+interface
+uses
+ Classes, Types, TntClasses, TntSysUtils, TransIntf;
+
+type
+ TFoxitParser = class(TInterfacedObject, IUnknown, IFileParser)
+ private
+ FOldAppHandle: Cardinal;
+ FOrigFile, FTransFile: string;
+ procedure LoadSettings;
+ procedure SaveSettings;
+ procedure BuildPreview(Items: ITranslationItems; Strings: TTntStrings);
+ public
+ constructor Create;
+ destructor Destroy; override;
+
+ function Capabilities: Integer; safecall;
+ function Configure(Capability: Integer): HRESULT; safecall;
+ function DisplayName(Capability: Integer): WideString; safecall;
+ function ExportItems(const Items: ITranslationItems;
+ const Orphans: ITranslationItems): HRESULT; safecall;
+ function ImportItems(const Items: ITranslationItems;
+ const Orphans: ITranslationItems): HRESULT; safecall;
+ procedure Init(const ApplicationServices: IApplicationServices); safecall;
+ end;
+
+implementation
+uses
+ Windows, SysUtils, Forms, IniFiles, PreviewExportFrm, DualImportFrm,
+ TntSystem, xmlintf, xmldoc, xmldom;
+
+const
+ cFoxitFilter = 'Foxit Files (*.xml)|*.xml|All files (*.*)|*.*';
+ cFoxitImportTitle = 'Import from Foxit file';
+ cFoxitExportTitle = 'Export to Foxit file';
+ cDialogItem = 'dlgitem';
+ cPopupItem = 'popup';
+ cMenuItem = 'menuitem';
+ cStringItem = 'string';
+
+ cReplaceID = '!!!!%d!!!!';
+
+var
+ XML: WideString = '';
+
+{ TFoxitParser }
+
+function XMLEncode(const S:WideString):WideString;
+begin
+ Result := Tnt_WideStringReplace(S, '&', '&',[rfReplaceAll]);
+ Result := Tnt_WideStringReplace(Result, '"', '"',[rfReplaceAll]);
+ Result := Tnt_WideStringReplace(Result, '''', ''',[rfReplaceAll]);
+ Result := Tnt_WideStringReplace(Result, '<', '<',[rfReplaceAll]);
+ Result := Tnt_WideStringReplace(Result, '>', '>',[rfReplaceAll]);
+end;
+
+procedure TFoxitParser.BuildPreview(Items: ITranslationItems; Strings: TTntStrings);
+var
+ i: integer;
+ TI: ItranslationItem;
+ S: WideString;
+begin
+ if XML = '' then
+ raise Exception.Create('Building Foxit file from scratch not supported. Please import from a Foxit file before trying to export.');
+ S := XML; // keep original import untouched so we can reuse it!
+ Items.Sort := stIndex;
+ for i := 0 to Items.Count - 1 do
+ begin
+ TI := Items[i];
+ S := Tnt_WideStringReplace(S, WideFormat(cReplaceID, [TI.Index]), XMLEncode(TI.Translation), [rfReplaceall]);
+ end;
+ Strings.Text := S;
+end;
+
+function TFoxitParser.Capabilities: Integer;
+begin
+ Result := CAP_IMPORT or CAP_EXPORT;
+end;
+
+function TFoxitParser.Configure(Capability: Integer): HRESULT;
+begin
+ Result := E_NOTIMPL;
+end;
+
+constructor TFoxitParser.Create;
+begin
+ inherited;
+ FOldAppHandle := Application.Handle;
+end;
+
+destructor TFoxitParser.Destroy;
+begin
+ Application.Handle := FOldAppHandle;
+ inherited;
+end;
+
+function TFoxitParser.DisplayName(Capability: Integer): WideString;
+begin
+ case Capability of
+ CAP_IMPORT:
+ Result := cFoxitImportTitle;
+ CAP_EXPORT:
+ Result := cFoxitExportTitle;
+ else
+ Result := '';
+ end;
+end;
+
+function TFoxitParser.ExportItems(const Items, Orphans: ITranslationItems): HRESULT;
+var
+ S: TTntStringlist;
+ FOldSort: TTranslateSortType;
+begin
+ Result := S_FALSE;
+ FOldSort := Items.Sort;
+ try
+ LoadSettings;
+ Items.Sort := stIndex;
+ S := TTntStringlist.Create;
+ try
+ BuildPreview(Items, S);
+ if TfrmExport.Execute(FTransFile, cFoxitExportTitle, cFoxitFilter, '.', 'xml', S) then
+ begin
+ S.Text := WideStringToUTF8(S.Text);
+ S.AnsiStrings.SaveToFile(FTransFile);
+ Result := S_OK;
+ SaveSettings;
+ end;
+ finally
+ S.Free;
+ Items.Sort := FOldSort;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+function TFoxitParser.ImportItems(const Items, Orphans: ITranslationItems): HRESULT;
+type
+ TFoundItem = (fiOriginal, fiTranslation);
+ TFoundItems = set of TFoundItem;
+
+var
+ NodeList: IDOMNodeList;
+// Node, ChildNode: IDOMNode;
+// i: integer;
+ TI: ITranslationItem;
+ FFoundItems: TFoundItems;
+ FXMLImport: IXMLDocument;
+
+ function FindItem(const Section, Name: WideString): ITranslationItem;
+ var i: integer;
+ begin
+ for i := 0 to Items.Count - 1 do
+ if WideSameText(Section, Items[i].Section) and WideSameText(Name, Items[i].Name) then
+ begin
+ Result := Items[i];
+ Exit;
+ end;
+ Result := nil;
+ end;
+
+ function GetName(const ANode: IDOMNode): WideString;
+ var N: IDOMNode;
+ begin
+ N := ANode;
+ Result := '';
+ while N <> nil do
+ begin
+ if Result <> '' then
+ Result := '-' + Result;
+ if (N.attributes <> nil) and (N.attributes.getNamedItem('id') <> nil) then
+ Result := N.attributes.getNamedItem('id').nodeValue + Result;
+ N := N.parentNode;
+ end;
+ end;
+
+ procedure ImportOriginalItem(const ItemName: WideString);
+ var i: integer;
+ begin
+ NodeList := FXMLImport.DOMDocument.getElementsByTagName(ItemName);
+ if NodeList <> nil then
+ for i := 0 to NodeList.length - 1 do
+ if (NodeList[i].attributes <> nil) and (NodeList[i].attributes.getNamedItem('text') <> nil) and (NodeList[i].attributes.getNamedItem('id') <> nil) then
+ begin
+ TI := Items.Add;
+ TI.Section := ItemName;
+ TI.Original := NodeList[i].attributes.getNamedItem('text').nodeValue;
+ TI.Name := GetName(NodeList[i]);
+ end;
+
+ end;
+
+ procedure ImportTranslationItem(const ItemName: WideString);
+ var i: integer;
+ begin
+ NodeList := FXMLImport.DOMDocument.getElementsByTagName(ItemName);
+ if NodeList <> nil then
+ for i := 0 to NodeList.length - 1 do
+ if (NodeList[i].attributes <> nil) and (NodeList[i].attributes.getNamedItem('text') <> nil) and (NodeList[i].attributes.getNamedItem('id') <> nil) then
+ begin
+ TI := FindItem(ItemName, GetName(NodeList[i]));
+ if TI <> nil then
+ begin
+ TI.Translation := NodeList[i].attributes.getNamedItem('text').nodeValue;
+ TI.Translated := TI.Translation <> '';
+ NodeList[i].attributes.getNamedItem('text').nodeValue := Format(cReplaceID, [TI.Index]);
+ end;
+ end;
+ end;
+begin
+ Result := S_FALSE;
+ FFoundItems := [];
+ try
+ Items.Clear;
+ Orphans.Clear;
+ LoadSettings;
+ if TfrmDualImport.Execute(FOrigFile, FTransFile, cFoxitImportTitle, cFoxitFilter, '.', 'xml') then
+ begin
+ FXMLImport := TXMLDocument.Create(nil);
+ try
+ FXMLImport.LoadFromFile(FOrigFile);
+ // TODO: load original items
+ if FXMLImport.DocumentElement <> nil then
+ begin
+ ImportOriginalItem(cPopupItem);
+ ImportOriginalItem(cMenuItem);
+ ImportOriginalItem(cDialogItem);
+ ImportOriginalItem(cStringItem);
+ end;
+ FXMLImport.LoadFromFile(FTransFile);
+ if FXMLImport.DocumentElement <> nil then
+ begin
+ ImportTranslationItem(cPopupItem);
+ ImportTranslationItem(cMenuItem);
+ ImportTranslationItem(cDialogItem);
+ ImportTranslationItem(cStringItem);
+ FXMLImport.SaveToXML(XML); // save the imported data in a string
+ end;
+ SaveSettings;
+ Items.Modified := false;
+ Result := S_OK;
+ finally
+ FXMLImport := nil;
+ end;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+procedure TFoxitParser.Init(const ApplicationServices: IApplicationServices);
+begin
+ Application.Handle := ApplicationServices.AppHandle;
+end;
+
+procedure TFoxitParser.LoadSettings;
+begin
+ try
+ with TIniFile.Create(ChangeFileExt(GetModuleName(hInstance), '.ini')) do
+ try
+ FOrigFile := ReadString('Settings', 'OrigFile', FOrigFile);
+ FTransFile := ReadString('Settings', 'TransFile', FTransFile);
+ finally
+ Free;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+procedure TFoxitParser.SaveSettings;
+begin
+ try
+ with TIniFile.Create(ChangeFileExt(GetModuleName(hInstance), '.ini')) do
+ try
+ WriteString('Settings', 'OrigFile', FOrigFile);
+ WriteString('Settings', 'TransFile', FTransFile);
+ finally
+ Free;
+ end;
+ except
+ Application.HandleException(self);
+ end;
+end;
+
+end.
+
Modified: translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.dfm
===================================================================
--- translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.dfm 2006-11-25 15:53:35 UTC (rev 137)
+++ translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.dfm 2006-11-30 20:07:10 UTC (rev 138)
@@ -16,7 +16,7 @@
TextHeight = 13
object TntStatusBar1: TTntStatusBar
Left = 0
- Top = 468
+ Top = 461
Width = 691
Height = 19
Panels = <
@@ -28,7 +28,7 @@
Left = 0
Top = 0
Width = 691
- Height = 468
+ Height = 461
Align = alClient
BevelKind = bkFlat
BorderStyle = bsNone
@@ -37,6 +37,14 @@
Caption = 'Index'
end
item
+ Caption = 'Section'
+ Width = 100
+ end
+ item
+ Caption = 'Name'
+ Width = 100
+ end
+ item
Caption = 'Original'
Width = 100
end
Modified: translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.pas
===================================================================
--- translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.pas 2006-11-25 15:53:35 UTC (rev 137)
+++ translator/trunk/src/ToolPropertiesView/ToolPropertiesViewFrm.pas 2006-11-30 20:07:10 UTC (rev 138)
@@ -63,6 +63,8 @@
with TTntListItem(Item) do
begin
Caption := IntToStr(FItems[Index].Index);
+ SubItems.Add(FItems[Index].Section);
+ SubItems.Add(FItems[Index].Name);
SubItems.Add(FItems[Index].Original);
SubItems.Add(FItems[Index].Translation);
SubItems.Add(FItems[Index].OrigComments);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|