Scalabium Software

SMExport/SMImport suites
Knowledge for your independence'.
Home Delphi and C++Builder tips


#133: How can I read native text of current locale?

Sometimes in application we want to show a text with description of current used locale.
For example, "english", "russian", "ukrainian", "chinese" etc

For this task you can use VerLanguageName function from Windows API:

var
  ID: LangID;
  LanguageName: array[0..255] of Char;
begin
  {read current system locale}
  ID := GetSystemDefaultLangID;

  {convert an ID into text}
  VerLanguageName(ID, LanguageName, SizeOf(LanguageName));

  ShowMessage(LanguageName);
end;

Of course, you can expand this code and to translate a locale as parameter

For example, if ID is $419, you'll receive a "russian". For $$0A - the "Spanish (Traditional Sort)", for $0C0C - the "French (Canadian)", for $407 - "German (Standard)" etc

Especially it is usefully when you'll retrieve an information from file (see GetFileVersionInfo/VerQueryValue functions or my freeware TSMVersionInfo component) or in some install tools.

Important

  1. if ID is incorrect, you'll receive an "Language Neutral" as result
  2. text in result will be translated in the current language. I mean that text will be not in English if you have localized version of MS Windows


Published: November 28, 2001

See also
 
DBISAM Viewer
Viewer for TNEF-files (winmail.dat)
ABA Spreadsheet Convert
ABA Document Convert
MAPIMail
DBExport tools
Viewer for MS Outlook Messages
Clarion to Text converter
Excel Web-stream
SMDBGrid
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2017, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMExport advertising