Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , ОС и Железо , Язык

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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

Программа, предназначенная для возвращения сообщений на языке пользователя, который определяется с помощью функции FGetLanguageSettings. Функция INLanguage принимает два параметра: текст на английском и немецком языках. Затем она использует оператор switch для определения, какой язык вернуть, основываясь на результате FGetLanguageSettings.

FGetLanguageSettings Функция возвращает целое число, представляющее собой предпочтительный язык пользователя. Она использует функцию GetUserDefaultLCID для получения LCID (идентификатора кода языка) и затем функцию GetLocaleInfo для извлечения кода страны в виде строки. Полученная строка конвертируется в целое число с помощью функции StrToInt, которое возвращается как результат.

INLanguage Функция принимает два параметра: текст на английском и немецком языках. Она использует оператор switch для определения, какой язык вернуть, основываясь на результате FGetLanguageSettings. Если предпочтительный язык пользователя равен 49 (немецкий), она возвращает текст на немецком языке. Если язык не равен 49, она возвращает текст на английском языке.

Button1Click Событийный обработчик вызывает функцию INLanguage с двумя параметрами: строкой на английском языке и строкой на немецком языке. Функция возвращает соответствующий язык строки, основываясь на предпочтительном языке пользователя. Возвращенная строка затем отображается в сообщении с помощью ShowMessage.

Обратите внимание, что это код assumes, что программа Delphi запущена на системе Windows, так как она использует API-функции Windows, такие как GetUserDefaultLCID и GetLocaleInfo. Кроме того, коды стран, используемые в операторе switch, являются специфичными для немецкого языка (49) и, возможно, других европейских стран. Если вам нужно поддерживать несколько языков или регионов, вы может захотеть использовать более полный библиотеку детекции языка.

В статье описывается функция INLanguage, которая возвращает текст на родном языке компьютера, а также способ реализации этой функции с использованием функции FGetLanguageSettings.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Язык ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:40:49/0.0034091472625732/0