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
Important
if ID is incorrect, you'll receive an "Language Neutral" as result
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