Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows Sprache ermitteln (https://www.delphipraxis.net/116965-windows-sprache-ermitteln.html)

Sherlock 10. Jul 2008 11:00

Re: Windows Sprache ermitteln
 
Warum willst Du das alles selber machen?

Nimm doch Sakuras feines Tool: http://www.wischnewski.tv/de/products/dw32pl.html

Sherlock

TUX_der_Pinguin 10. Jul 2008 11:35

Re: Windows Sprache ermitteln
 
Zitat:

Zitat von teebee
Was kommt denn bei
Delphi-Quellcode:
Var Lang: String;

BufSize := GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SABBREVLANGNAME,Nil,0);
 SetLength(Lang,BufSize);
 GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SABBREVLANGNAME,PChar(Lang),BufSize);
heraus?
Mit den ersten beiden Zeichen müsstest Du eigentlich etwas anfangen können.
Gruß,teebee

Also mit deinem Vorschlag würde folgendes passieren

Beispiel 1:
WinXP Deutsch, Regional Einstellungen Russisch, Sprache Englisch => Russisch Meldungen (Richtig wäre Englisch)

Beispiel 2:
WinXP Deutsch, Regional Einstellungen Deutsch, Sprache Deutsch => Deutsche Meldungen (Ausnahmsweise korrekt)

Beispiel 3:
Vista Deutsch, Regional Einstellung Deutsch, Sprache Englisch => Deutsche Meldungen (Richtig wäre Englisch)


Mit "Richtig wäre" meine ich das ergebnis welches ich haben möchte.

Zitat:

Zitat von Sherlock
Warum willst Du das alles selber machen?

Nimm doch Sakuras feines Tool: http://www.wischnewski.tv/de/products/dw32pl.html

Sherlock

Ich möchte mich ungern wiederholen ich will mein Programm nicht Lokalisieren mit solch einem Tool, da meine Anwendung
bereits Lokalisiert ist nur an dem Punkt wo die Meldungen kommen noch nicht, ich werde mein Programm nicht kompl. umschreiben.

Daher suche ich eine einfach Methode die gewünschte Information zu bekommen, was anscheind nicht geht.

RavenIV 10. Jul 2008 11:46

Re: Windows Sprache ermitteln
 
Zitat:

Zitat von TUX_der_Pinguin
Ich möchte mich ungern wiederholen ich will mein Programm nicht Lokalisieren mit solch einem Tool, da meine Anwendung
bereits Lokalisiert ist nur an dem Punkt wo die Meldungen kommen noch nicht, ich werde mein Programm nicht kompl. umschreiben.

Irgendwo und irgendwie hast Du ja die Lokalisierung schon eingebaut.
Wieso funktioniert das nur bei diesen Meldungen noch nicht?

Solltest vielleicht Dein Konzept überdenken, anstatt einfach nur einen Flicken drauf zu kleben.
Manchmal tut man sich leichter, wenn man gewisse Dinge umgebaut oder über den Haufen geworfen hat.

Wenn Du nicht bereit bist, Änderungen vorzunehmen, warum hast Du dann um Ideen gefragt?

TUX_der_Pinguin 10. Jul 2008 12:20

Re: Windows Sprache ermitteln
 
Beim Programmstart weiß ich nicht welche Sprache eingestellt ist, da diese Information in einer ini Datei liegt die erst
noch geladen werden muß, ist diese nicht vorhanden gibts ein weiteres Problem um diese Information zu bekommen.
Dann sind die Texte selbst bis auf die Fehlermeldungs Texte in einer DLL in Form von Tabellen. Bisher hatte ich die
Fehlermeldungen in Englisch angezeigt und wollte nur jetzt wissen ob mir Windows irgendwie verraten kann welche
Sprache eingestellt ist unabhänig von irgendwelchen Regionaleinstellungen etc.

Klar gibt es Tools von Sakura, GnuText, Multilizer und vieles mehr die sicherlich auch alle ihren Zweck erfüllen und ich
auch bereit bin mir diese mal näher anzusehen nur da ich meine Anwendung bereits auf meine art lokalisiert habe möchte ich
nicht für solch eine Kleinigkeit meine ganze Anwendung umschreiben was sicherlich einige Zeit in Anspruch nehmen würde.

Und daher gebe ich auf, ich wollte nur wissen ob es eine Möglichkeit gibt die Sprache zuermitteln, aber mir kann anscheind
niemand weiter helfen also lasse ich es sein, ich danke allen Beteiligten für ihre mühe und ihre Zeit.

Wünsche noch einen schönen Tag.

hathor 11. Jul 2008 09:52

Re: Windows Sprache ermitteln
 
WARUM fragst Du den User nicht einfach, welche Sprache bevorzugt wird?

Auf guten, barrierefreien Websites wird man doch auch gefragt!

kopernikus 6. Feb 2009 12:58

Re: Windows Sprache ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die WindowsAPI stellt vier verschiedene Abfragemöglichkeiten für die Sprache zur
Verfügung:

Regionale Einstellungen (locale):
---------------------------------
System:
GetSystemDefaultLangID

User:
GetUserDefaultLangID

Einstellungen für die Sprache (user interface):
-----------------------------------------------
(verfügbar erst ab Windows ME, bzw. 2000)
System:
GetSystemDefaultUILanguage

User:
GetUserDefaultUILanguage

Alle Funktionen geben als Ergebnis den "language identifier" zurück, z.B.
$407 für deutsch, &409 für englisch

Weitere Hinweise in " Platform SDK for Windows XP"

Implementierung unter Delphi 7:
-------------------------------
"GetSystemDefaultLangID" und "GetUserDefaultLangID" sind in "Windows.pas" deklariert.

"GetSystemDefaultUILanguage" und "GetUserDefaultUILanguage" fehlen und müssen
daher selbst deklariert werden.

Für Anwendungen unter Windows 2000 und neuer:

interface
...
{$EXTERNALSYM GetSystemDefaultUILanguage}
function GetSystemDefaultUILanguage: LANGID; stdcall;

{$EXTERNALSYM GetUserDefaultUILanguage}
function GetUserDefaultUILanguage: LANGID; stdcall;

implementation
...
function GetSystemDefaultUILanguage; external kernel32 name 'GetSystemDefaultUILanguage';
function GetUserDefaultUILanguage; external kernel32 name 'GetUserDefaultUILanguage';

Für eine Kompatibilität zu älteren Betriebssystem müssen diese beiden Deklarationen dynamisch
eingefügt werden (siehe Anhang).


Hinweis zu GnuGetText for Delphi:
---------------------------------
Die dort enthaltene Funktion "GetWindowsLanguage" fragt die regionalen Einstellungen ab,
was bei unterschiedlichen Sprach- und Regionaleinstellunegn zu falschen Ergebnissen führt.

Bsp:
Ein englisches Windows mit regionalen Einstellungen für Deutschland (Datum, Uhrzeit, etc.)
liefert $407 (deutsch) zurück. Als System-Sprache sollte aber englisch erkannt werden.

Das richtige Ergebnis liefert o.g. Funktion "GetUserDefaultUILanguage" (Ergebnis: $409).


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Seite 3 von 3     123   

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