Sprache des Betriebssystems herausfinden

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Sprache des Betriebssystems herausfinden

Beitrag von 400kmh »

Hallo, mit welchen Befehlen kann man die Sprache des Betriebssystems (in meinem Fall Windows) herausfinden?

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Sprache des Betriebssystems herausfinden

Beitrag von theo »


jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Sprache des Betriebssystems herausfinden

Beitrag von jwdietrich »

In meinen Programmen verwende ich immer die folgende Funktion:

Code: Alles auswählen

function GetOSLanguage: string;
  {platform-independent method to read the language of the user interface}
var
  l, fbl: string;
  {$IFDEF LCLCarbon}
  theLocaleRef: CFLocaleRef;
  locale: CFStringRef;
  buffer: StringPtr;
  bufferSize: CFIndex;
  encoding: CFStringEncoding;
  success: boolean;
  {$ENDIF}
begin
  {$IFDEF LCLCarbon}
  theLocaleRef := CFLocaleCopyCurrent;
  locale := CFLocaleGetIdentifier(theLocaleRef);
  encoding := 0;
  bufferSize := 256;
  buffer := new(StringPtr);
  success := CFStringGetPascalString(locale, buffer, bufferSize, encoding);
  if success then
    l := string(buffer^)
  else
    l := '';
  fbl := Copy(l, 1, 2);
  dispose(buffer);
  {$ELSE}
  {$IFDEF UNIX}
  fbl := Copy(GetEnvironmentVariable('LC_CTYPE'), 1, 2);
    {$ELSE}
  GetLanguageIDs(l, fbl);
    {$ENDIF}
  {$ENDIF}
  Result := fbl;
end;


Sie hat den Vorteil, dass sie auch OS X (z. B. macOS) unterstützt.

deadc0de
Beiträge: 56
Registriert: So 24. Jan 2016, 18:31
OS, Lazarus, FPC: Windows(10,8.1,7), Archlinux, Debian
CPU-Target: 64Bit + 32Bit
Wohnort: Winnenden
Kontaktdaten:

Re: Sprache des Betriebssystems herausfinden

Beitrag von deadc0de »

Man kann es auch aus der Registry auslesen.
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\Language
InstallLanguage"="0407 steht dafür, das Windows auf Deutsch ist.
Wissen ist Macht und ich weis, das ich nichts weis

Antworten