Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как возвращать сообщения на родном языке компьютера?

01.01.2007
{ 
 
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;
 

Взято с сайта: https://www.swissdelphicenter.ch