...return Messages in PC native language?

Author: Walter Verhoeven

Category: System

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

 

printed from
www.swissdelphicenter.ch
developers knowledge base