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/)
-   -   Delphi ISO 639-1 Sprachcode auslesen (https://www.delphipraxis.net/62386-iso-639-1-sprachcode-auslesen.html)

3_of_8 3. Feb 2006 19: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 17: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 18: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 18: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 19: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 22: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 22:37

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

Sir Rufo 5. Feb 2006 00:14

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

3_of_8 5. Feb 2006 00: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 08: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

3_of_8 5. Feb 2006 11:10

Re: ISO 639-1 Sprachcode auslesen
 
Da gibts keine tlibimp.exe.

Christian Seehase 5. Feb 2006 11:25

Re: ISO 639-1 Sprachcode auslesen
 
Moin Manuel,

hast Du mal im Delphi\Bin-Verzeichnis nachgesehen?

3_of_8 5. Feb 2006 11:28

Re: ISO 639-1 Sprachcode auslesen
 
Da ist auch nur ne tlibimp.sym, die nicht sehr ausführbar aussieht.

Christian Seehase 5. Feb 2006 11:37

Re: ISO 639-1 Sprachcode auslesen
 
Moin Manuel,

dann ist die bei der PE wohl nicht mit dabei.
Schau doch mal, ob Du die DLL nicht über "Komponenten\ActiveX Control importieren" hinzufügen kannst.

marabu 5. Feb 2006 11:42

Re: ISO 639-1 Sprachcode auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Cisso.pas im Anhang.

marabu

3_of_8 5. Feb 2006 12:18

Re: ISO 639-1 Sprachcode auslesen
 
:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 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