![]() |
ISO 639-1 Sprachcode auslesen
Morgen.
Ich will den ISO 639-1 Sprachcode der momentanen Systemsprache ermitteln. Mit GetSystemDefaultLangID kriegt man ja einen Word-Wert, aber der hilft mir ned wirklich weiter... |
Re: ISO 639-1 Sprachcode auslesen
Es sind zwar noch nicht ganz 24 Stunden, aber ich erlaube es mir trotzdem mal, zu *push*en.
|
Re: ISO 639-1 Sprachcode auslesen
Hi,
ich glaube mit dem ISO Standard dürfte es etwas schwer werden. Der ist erst in .Net verfügbar. Da musst du nur mal auf den MSDN Seiten nach dem NLS SDK gucken, dürfte eine Funktion GetSystemDefaultLocaleName geben, die arbeitet (imho) nach ISO 639, weiß aber nicht genau ob -1 oder -2. Unter Win32 glaube ich nicht, dass der schon so verfügbar war. Aber auch dort denke ich wirst du eher bei MSDN fündig. Sorry dass ich dir nicht direkt helfen kann. Gruß Der Unwissende |
Re: ISO 639-1 Sprachcode auslesen
Hallo Manuel,
wenn du die ersten 2 Buchstaben des Funktionsergebnisses abgreifst, dann solltest du nach Windows-Konvention die zweistellige Sprachkennung nach ISO 639-1 erhalten.
Delphi-Quellcode:
Grüße vom marabu
function AbbrevLangName: String;
var buffer: array [0..5] of Char; begin SetString(Result, buffer, GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, @buffer, sizeOf(buffer)) ); end; |
Re: ISO 639-1 Sprachcode auslesen
Also einfach die ersten zwei Zeichen nehmen geht nicht, da das bei vielen Sprachen nicht so ist.
Aber ich habe jetzt eine andere Möglichkeit gefunden. Dafür bräuchte ich aber die Eigenbezeichnung der Sprache ODER die englische Bezeichnung. Aber nicht Deutsch (Deutschland) sondern nur Deutsch. |
Re: ISO 639-1 Sprachcode auslesen
Oft liefert der Code das richtige Ergebnis, aber leider nicht immer. Wenn du mehr Sicherheit brauchst, dann hilft es das CissoUtil Automationsobjekt aus der Bibliothek IXSSO.DLL zu importieren. Danach geht sowas:
Delphi-Quellcode:
marabu
// uses Cisso;
ShowMessage(CissoUtil.LocaleIDToISO(GetUserDefaultLCID)); |
Re: ISO 639-1 Sprachcode auslesen
Wo finde ich diese DLL?
|
Re: ISO 639-1 Sprachcode auslesen
Schau mal unter C:\WINDOWS\system32 oder besser %systemroot%\system32 :mrgreen:
|
Re: ISO 639-1 Sprachcode auslesen
Ich hab nicht genau gelesen.
OK, woher bekomme ich die Header für diese DLL? |
Re: ISO 639-1 Sprachcode auslesen
So erzeugst du dir die Unit CISSO, die du dann in ein Package deiner Wahl installieren kannst:
Code:
Danach ziehst du die Komponente CissoUtil aus der Palettenseite Servers auf eine Form und los geht es.
c:
cd \Programme\Borland\Delphi7\Imports\Source tlibimp -Fe- %windir%\system32\ixsso.dll Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz