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

Previous  Top  Next

    
 

 

Code:

{

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;

 

©Drkb::04560

Âçÿòî ñ ñàéòà: http://www.swissdelphicenter.ch