Get operating system’s default language

I needed (for a project I am working on) to obtain the default language for the operation system. Preferable it should be in “human” format like “English” instead of “En-US”.

The AI lead me to strange paths. In the end it tuned out to be quite easy so I created these two function (now part of my Delphi LightSaber) library. It works on all platforms!

 

// Returns the language of the operating system in this format: "English (United States)"
function GetSystemLanguageName: string;
begin
  VAR Locale:= TLanguages.UserDefaultLocale;
  Result := TLanguages.Create.NameFromLocaleID[Locale];
end;

// Returns the language of the operating system in this format: "English"
function GetSystemLanguageShortName: string;
var
  FullName: string;
  P: Integer;
begin
  FullName := GetSystemLanguageName;
  P := Pos('(', FullName);
  if P > 0
  then Result := Trim(Copy(FullName, 1, P - 1))
  else Result := FullName;
end;

 

Leave a Comment

Scroll to Top