Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ISO 639-1 Sprachcode auslesen (https://www.delphipraxis.net/62386-iso-639-1-sprachcode-auslesen.html)

3_of_8 3. Feb 2006 20:12


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...

3_of_8 4. Feb 2006 18:51

Re: ISO 639-1 Sprachcode auslesen
 
Es sind zwar noch nicht ganz 24 Stunden, aber ich erlaube es mir trotzdem mal, zu *push*en.

Der_Unwissende 4. Feb 2006 19:31

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

marabu 4. Feb 2006 19:31

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:
function AbbrevLangName: String;
var
  buffer: array [0..5] of Char;
begin
  SetString(Result, buffer,
    GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, @buffer, sizeOf(buffer))
  );
end;
Grüße vom marabu

3_of_8 4. Feb 2006 20:52

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.

marabu 4. Feb 2006 23:34

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:
// uses Cisso;
ShowMessage(CissoUtil.LocaleIDToISO(GetUserDefaultLCID));
marabu

3_of_8 4. Feb 2006 23:37

Re: ISO 639-1 Sprachcode auslesen
 
Wo finde ich diese DLL?

Sir Rufo 5. Feb 2006 01:14

Re: ISO 639-1 Sprachcode auslesen
 
Schau mal unter C:\WINDOWS\system32 oder besser %systemroot%\system32 :mrgreen:

3_of_8 5. Feb 2006 01:42

Re: ISO 639-1 Sprachcode auslesen
 
Ich hab nicht genau gelesen.

OK, woher bekomme ich die Header für diese DLL?

marabu 5. Feb 2006 09:29

Re: ISO 639-1 Sprachcode auslesen
 
So erzeugst du dir die Unit CISSO, die du dann in ein Package deiner Wahl installieren kannst:

Code:
c:
cd \Programme\Borland\Delphi7\Imports\Source
tlibimp -Fe- %windir%\system32\ixsso.dll
Danach ziehst du die Komponente CissoUtil aus der Palettenseite Servers auf eine Form und los geht es.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr.
Seite 1 von 2  1 2      

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