Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Betriebssystem Sprache auslesen (https://www.delphipraxis.net/175056-betriebssystem-sprache-auslesen.html)

firlefanz 28. Mai 2013 14:18

Betriebssystem Sprache auslesen
 
Hallo zusammen,

ich möchte die Betriebssystem Sprache auslesen (mit Delphi 2010), dabei ist mir egal, ob "en" oder "en-US" etc. ermittelt wird, wichtig ist mir eine Unterscheidung nach Englisch und Deutsch.

Habe versucht, Google dafür zu nutzen, aber bekomme bei Suchbegriffen mit Delphi und Sprache oder Language etc nichts Vernünftiges raus :-)

Vielen Dank für eure Hilfe im voraus :-)

Firlefanz

sHoXx 28. Mai 2013 14:22

AW: Betriebssystem Sprache auslesen
 
womöglich hilft dir das schon weiter: http://www.delphifaq.com/faq/f135.shtml

erster Google-Eintrag den ich gefunden habe :D

milos 28. Mai 2013 14:23

AW: Betriebssystem Sprache auslesen
 
Versuch das Mal:
Delphi-Quellcode:
uses
  SysUtils, Dialogs;

procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  i := Languages.IndexOf(SysLocale.DefaultLCID);
  ShowMessage(Languages.Name[i]);
end;
Kann es gerade nicht testen, scheint jedoch das richtige zu sein. ^^

Edit: Da war wohl einer schneller mit dem genau gleichen Google Eintrag den ich auch als ersten Link gefunden habe^^

firlefanz 29. Mai 2013 12:09

AW: Betriebssystem Sprache auslesen
 
Vielen Dank. Das hat mir sehr geholfen :-)

generic 29. Mai 2013 16:00

AW: Betriebssystem Sprache auslesen
 
Möchtest du die Betriebssystemsprache wissen oder die beim angemeldeten Benutzer eingestellt ist?

Seit Windows 7 gibt es dort (abhängig von der Version) Unterschiede.

Zitat:

Sprachpakete sind über Windows Update als optionale Updates für Windows 7 Ultimate verfügbar. Sie werden nicht automatisch installiert. Wenn Sie Windows 7 Enterprise verwenden, wenden Sie sich an den Systemadministrator, um Informationen zum Installieren weiterer Sprachen zu erhalten.
Windows 7 ist immer Englisch im Bauch, bei dem Benutzer ist aber eine Sprache vorinstalliert.
Bei Ultimate und Enterprise kann die Anzeige-Sprache durch jeden Benutzer gewählt werden.

firlefanz 29. Mai 2013 16:03

AW: Betriebssystem Sprache auslesen
 
Betriebssystem-Sprache reicht mir.

Es geht darum, den einstellbaren Default für ein neu installiertes Spiel zu setzen, das deutsche und englische Sprache unterstützt.

Nintendo 29. Mai 2013 17:52

AW: Betriebssystem Sprache auslesen
 
Ähm, und wo finde ich die Indizes für all die anderen Sprachen. Deutsch hat den Index Nummer 6.

Welchen Index hat die englische Sprache, welchen die französische. Wo gibt es hierzu Doku?

Bummi 29. Mai 2013 18:27

AW: Betriebssystem Sprache auslesen
 
Du gehst nicht über den Index des Array aus Language sondern über den Locale identifier von hier Language Identifier Constants and Strings


Delphi-Quellcode:
// DE = 1031 = $0407
var
 LCID:Integer;
begin
  LCID := Languages.indexOf(SysLocale.DefaultLCID);
  Showmessage( IntToStr(Languages.LocaleID[LCID])
               + '[' +IntToHex(Languages.LocaleID[LCID],4) +']'
               + '-' + Languages.LocaleName[LCID]
               + '-' + Languages.Name[LCID]);
end;

Nintendo 29. Mai 2013 19:02

AW: Betriebssystem Sprache auslesen
 
Zitat:

Zitat von Bummi (Beitrag 1216895)
Du gehst nicht über den Index des Array aus Language sondern über den Locale identifier von hier Language Identifier Constants and Strings


Delphi-Quellcode:
// DE = 1031 = $0407
var
 LCID:Integer;
begin
  LCID := Languages.indexOf(SysLocale.DefaultLCID);
  Showmessage( IntToStr(Languages.LocaleID[LCID])
               + '[' +IntToHex(Languages.LocaleID[LCID],4) +']'
               + '-' + Languages.LocaleName[LCID]
               + '-' + Languages.Name[LCID]);
end;

Danke erst mal für die Antwort!

Das verblüfft mich jetzt. Ich hatte soeben diese Idee:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: integer; s,s1,s2: String;
begin
  //i := Languages.IndexOf(SysLocale.DefaultLCID);
  s := '';
  for i := 0 to Languages.Count-1 do
  begin
    s1 := 'Index: '+ IntToStr(i);
    s2 := Languages.Name[i];
    s := s1 + '  ' + s2;
    Memo1.Lines.Add(s);
    s := '';
  end;
  //Label2.Caption := IntToStr(i);
  //ShowMessage(Languages.Name[i]);
end;
Damit erhalte ich je Index eine Sprache. Mit Ihrer Methode erhalte ich jedoch 1031[0407]-German(Germany)

Ich suche das, um die Systemsprache zu ermitteln, um in einer eigenen Anwendung davon abhängig die Bedienersprache einzustellen.
Daher suchte ich eine Tabelle mit den Indizes.

Damit ich später abhängig von diesem Index die richtige Sprache in meiner Anwendung eistellen kann.

.

Bummi 29. Mai 2013 20:05

AW: Betriebssystem Sprache auslesen
 
Ich würde mich nur nicht auf den Index verlassen sondern mich per Languages.IndexOf auf den Locale identifier beziehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz