type
TLocalizeResString =
record
ResString: PResStringRec;
LocalizedText:
string
;
end
;
procedure
LocalizeResStrings(
const
Strings:
array
of
TLocalizeResString);
var
I: Integer;
OldProtect, Dummy: DWORD;
begin
for
I := Low(Strings)
to
High(Strings)
do
with
Strings[I]
do
begin
Win32Check(VirtualProtect(ResString, SizeOf(TResStringRec),
PAGE_READWRITE, OldProtect));
try
ResString^.Identifier := Integer(PChar(LocalizedText));
finally
VirtualProtect(ResString, SizeOf(TResStringRec), OldProtect, Dummy);
end
;
end
;
end
;
procedure
LocalizeDialogs;
var
ResStrings:
array
[
0
..
7
]
of
TLocalizeResString;
begin
ResStrings[
0
].ResString := @SMsgDlgYes;
ResStrings[
0
].LocalizedText :=
'Ano'
;
ResStrings[
1
].ResString := @SMsgDlgNo;
ResStrings[
1
].LocalizedText:=
'Ne'
;
ResStrings[
2
].ResString := @SMsgDlgWarning;
ResStrings[
2
].LocalizedText:=
'Varování'
;
ResStrings[
3
].ResString := @SMsgDlgError;
ResStrings[
3
].LocalizedText:=
'Chyba'
;
ResStrings[
4
].ResString := @SMsgDlgInformation;
ResStrings[
4
].LocalizedText:=
'Upozornní'
;
ResStrings[
5
].ResString := @SMsgDlgConfirm;
ResStrings[
5
].LocalizedText:=
'Potvrzení'
;
ResStrings[
6
].ResString := @SMsgDlgAll;
ResStrings[
6
].LocalizedText:=
'Vae'
;
ResStrings[
7
].ResString := @SMsgDlgCancel;
ResStrings[
7
].LocalizedText:=
'Storno'
;
LocalizeResStrings(ResStrings);
end
;
Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com