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