Re: Windows Sprache ermitteln
Ich werde mir die von euch genannten Lösungen an sehen und mal probieren ob und was mir weiterhilft.
Es geht in diesem Fall nicht um eine komplette Lokalisierung der Anwendung, sondern beim Start der Software kann es halt vorkommen das Einstellungen und somit die vom Benutzer eingestellte Sprache nicht geladen werden können daraufhin soll der Anwender eine Fehlermeldung bekommen in der "Systemsprache", weil die vom Anwender eingestellte Sprache ja nicht bekannt ist. |
Re: Windows Sprache ermitteln
Ich habe noch mal den Test gemacht mit Vista welches ich auf das "Englische" Sprachpaket umgestellt habe, die Informationen
die ich mit "GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,.." erhalte ist immer Deutsch, klar das Vista ist im Grunde ein Deutsch aber Windows zeigt ja auch alles in Englisch an und ein Dialog der per "Application.MessageBox()" erstellt wurde, wird auch übersetzt. Ich verstehe das so, das die Regional Einstellungen nur die Formatierungen (Datum, Dezimaltrennzeichen etc.) und ggf. das Tastatur Layout beeinflussen und das muß ja nicht gleich der Systemsprache sein, wie Luckie auch geschrieben hat, muß ein Tastatur Layout nicht der zur Zeit dargestellten Sprache entsprechen. Ich könnte es auch belassen die Meldungen einfach in der Sprache anzuzeigen in der das Betriebssystem installiert wurde, jedoch fände ich es nett wenn ich auch die Sprachpakete von Vista und XP berücksichtigen könnte und ich mich nicht auf diesen ganzen Regional quatsch einlassen muß. |
Re: Windows Sprache ermitteln
Zitat:
|
Re: Windows Sprache ermitteln
Zitat:
noch nie benutzt, es geht nach wie vor nicht um eine Lokalisierung einer ganzen Anwendung sondern eine einfache Abfrage um eine Handvoll Meldungen beim Start des Programms in verschiedenen Sprachen anzuzeigen. |
Re: Windows Sprache ermitteln
|
Re: Windows Sprache ermitteln
Aus der Praxis kenn ich nur den Multilizer.
Der erkennt die Windows-Sprache selbständig. Auch schon Meldungen bei Programmstart werden somit in der Sprache der Windowsinstallation angezeigt. Kritisch wird es allerdings, wenn z.B. ein eigentliche englisches Windows auf Französisch umgestellt wird. Dann kommt Multilizer durcheinander und zeigt die Texte in der Multilizer-Standardsprache an. Je nachdem wie die eingestellt ist, gibt es tolle Effekte. Wir hatten dies nömlich mal bei meinem vorherigen Arbeitgeber. Ein Windows, das in Englisch installiert war (also englisches Windows XP). Der Computer wurde von einem Kunden zurückgenommen, weil ein Hardware-Fehler vermutet wurde. Dieser Fehler trat bei uns nie auf. PC kommt ins Lager. Dann kam ein anderer Kunde und wollte das Windows auf Französisch. Also englischen PC geholt, Sprache auf Französisch umgestellt. Software (mit Multilizer) drauf gepackt. Gestartet und die Texte kamen auf Deutsch. In der Zeit, die wir für Fehlersuche verbraten hatten, hätten wir 10x ein franz.Windows besorgen und installieren können. |
Re: Windows Sprache ermitteln
So noch mal bitte ganz langsam und zum Mitschreiben, wie kann ich GnuText oder Multilizer dazu verwenden, OHNE meine
ganze Anwendung damit zu Lokalisieren, herauszubekomme um welche Sprache es sich handelt. Ich stelle mir das ungefähr so vor, ich lade eine X-Belibige .pas oder sonst was Datei herrunter füge diese in mein Projekt ein und erhalte eine Funktion oder Prozedur die mir die Information liefert die ich benötige. Das Ziel sieht ungefährt so aus: Beispiel 1: WinXP Deutsch, Regional Einstellungen Russisch, Sprache Englisch => Englische Meldungen Beispiel 2: WinXP Deutsch, Regional Einstellungen Deutsch, Sprache Deutsch => Deutsche Meldungen Beispiel 3: Vista Deutsch, Regional Einstellung Deutsch, Sprache Englisch => Englische Meldungen Mir ist ja klar das mir keiner meine Arbeit abnimmt, nur habe ich noch nie mit den bereits mehrfach erwähnten Tools gearbeitet, und ich denke mal jemand der es schon getan hatte weiß sofort wie es geht, den ich müßte erst mal die Tools downloaden/installieren und dann gucken was sie genau sind, wie sie arbeiten und dann evtl. feststellen das es gar nicht geht. |
Re: Windows Sprache ermitteln
Mit Multilizer oder gettext wirst Du Dein Vorhaben nicht lösen können.
Und falls es doch einen Weg gibt, dann wäre das übertrieben. Irgendeine API-Funktion kann Dir doch bestimmt sagen, welche Sprache das Windows hat und welche Sprache gerade aktuell eingestellt ist. Mach Dich mal auf die Suche im MSDN. |
Re: Windows Sprache ermitteln
Zitat:
|
Re: Windows Sprache ermitteln
Was kommt denn bei
Delphi-Quellcode:
heraus?
Var Lang: String;
BufSize := GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SABBREVLANGNAME,Nil,0); SetLength(Lang,BufSize); GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SABBREVLANGNAME,PChar(Lang),BufSize); Mit den ersten beiden Zeichen müsstest Du eigentlich etwas anfangen können. Gruß,teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 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