LCL: translations: added TranslateUnitResourceStrings overload with TPOFile, from Benito van der Zander, bug #12280

git-svn-id: trunk@17602 -
This commit is contained in:
mattias 2008-11-26 15:36:38 +00:00
parent 40d1b6687c
commit caca721cc5

View File

@ -144,6 +144,7 @@ procedure TranslateUnitResourceStrings(const ResUnitName, BaseFilename,
Lang, FallbackLang: string); Lang, FallbackLang: string);
function TranslateUnitResourceStrings(const ResUnitName, AFilename: string function TranslateUnitResourceStrings(const ResUnitName, AFilename: string
): boolean; ): boolean;
function TranslateUnitResourceStrings(const ResUnitName:string; po: TPOFile): boolean;
function UTF8ToSystemCharSet(const s: string): string; inline; function UTF8ToSystemCharSet(const s: string): string; inline;
function UpdatePoFile(Files: TStrings; const POFilename: string): boolean; function UpdatePoFile(Files: TStrings; const POFilename: string): boolean;
@ -341,22 +342,31 @@ end;
function TranslateUnitResourceStrings(const ResUnitName, AFilename: string function TranslateUnitResourceStrings(const ResUnitName, AFilename: string
): boolean; ): boolean;
var var po: TPOFile;
begin
//debugln('TranslateUnitResourceStrings) ResUnitName="',ResUnitName,'" AFilename="',AFilename,'"');
if (ResUnitName='') or (AFilename='') or (not FileExistsUTF8(AFilename)) then
exit;
result:=false;
po:=nil;
try
po:=TPOFile.Create(AFilename);
result:=TranslateUnitResourceStrings(ResUnitName,TPOFile.Create(AFilename));
finally
po.free;
end;
end;
function TranslateUnitResourceStrings(const ResUnitName: string; po: TPOFile
): boolean;
{$ifdef ver2_0} {$ifdef ver2_0}
var
TableID, StringID, TableCount: Integer; TableID, StringID, TableCount: Integer;
s: String; s: String;
DefValue: String; DefValue: String;
{$endif ver2_0} {$endif ver2_0}
po: TPOFile;
begin begin
Result:=false; Result:=false;
//debugln('TranslateUnitResourceStrings) ResUnitName="',ResUnitName,'" AFilename="',AFilename,'"');
if (ResUnitName='') or (AFilename='') or (not FileExistsUTF8(AFilename)) then
exit;
try
po := nil;
// read .po file
po := TPOFile.Create(AFilename);
try try
{$ifdef ver2_0} {$ifdef ver2_0}
for TableID:=0 to ResourceStringTableCount - 1 do begin for TableID:=0 to ResourceStringTableCount - 1 do begin
@ -384,9 +394,6 @@ begin
{$else ver2_0} {$else ver2_0}
SetUnitResourceStrings(ResUnitName,@Translate,po); SetUnitResourceStrings(ResUnitName,@Translate,po);
{$endif ver2_0} {$endif ver2_0}
finally
po.Free;
end;
Result:=true; Result:=true;
except except
on e: Exception do begin on e: Exception do begin