return
Messages in PC native language?
Author:
Walter Verhoeven
{
Call inLanguage like this to get the German
text else return english
if you use different coutntry codes you can
do more
}
{###############
FGetLanguageSettings ############################
# Author: Walter Verhoeven
# Date:
14.Sep.2000
# Coming From: InLanguage
#
Next Event: NONE
#
Parameters: NONE
#
Objective: See the users regional settings and return Country #number
code
#
Change:
#
DD-MMM-YYYYY ¦Programmer
# 1)
#
########################################################}
function
FGetLanguageSettings: Integer;
var
OutputBuffer: PChar;
SelectedLCID: LCID; //DWORD constand in Windows.pas
begin
OutputBuffer := StrAlloc(4); //alocate memory for the PChar
try
try
SelectedLCID := GetUserDefaultLCID;
GetLocaleInfo(SelectedLCID,
LOCALE_ICOUNTRY, OutputBuffer, 3);
Result := StrToInt(OutputBuffer);
except
Result := 49; //german
Abort;
end;
finally
StrDispose(OutputBuffer); //alway's free the memory alocated
end;
end;
{##############
INLanguage #######################################
# Author: Walter Verhoeven
# Date:
.Jun.2000
# Coming From:
#
Next Event: FGetLanguageSettings
#
Parameters: Eglish and german text
#
Objective: provide a method to return
# english or german results based on the
# users window prefered language setting.
#
Change:
#
DD-MMM-YYYYY ¦Programmer
# 1)
#
##############################################################}
function
INLanguage(English, German: string): string;
begin
case FGetLanguageSettings of
49: Result := German; // Return the
german string
43: Result := German; // If the PC
has a german preferance
41: Result := German;
352: Result := German;
else
Result := English; // if not german then english
end;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Format(INLanguage('My %s English
Word',
'Riesiges %s Software-Angebot'), ['Hopla']));
end;