![]() |
Infos aus der Locale ID (LCID aka Gebietsschema)
Liste der Anhänge anzeigen (Anzahl: 1)
Die Frage kam grad im DF. Da gibts aber keine so schoene Code-Library ;)
[PUBLIC DOMAIN]
Delphi-Quellcode:
program LCIDtoName;
{$APPTYPE CONSOLE} uses Windows; { int GetLocaleInfo( LCID Locale, // locale identifier LCTYPE LCType, // information type LPTSTR lpLCData, // information buffer int cchData // size of buffer ); } var bla:array[0..1023] of Char; begin GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SENGCOUNTRY, @bla, sizeof(bla)); Writeln('Name des Landes (Englisch) : ',bla); GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SENGLANGUAGE, @bla, sizeof(bla)); Writeln('Name der Sprache auf Englisch: ',bla); GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SLANGUAGE, @bla, sizeof(bla)); Writeln('Name der Sprache lokalisiert : ',bla); GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SNATIVELANGNAME, @bla, sizeof(bla)); Writeln('Orginalname der Sprache : ',bla); GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SNATIVECTRYNAME , @bla, sizeof(bla)); Writeln('Orginalname des Landes : ',bla); Readln; end. |
Re: Infos aus der Locale ID (LCID aka Gebietsschema)
Dann hänge ich die Makros gleich mal hier an, weil´s so schön passt. C-Programmierer haben, dank Microsoft, ein paar schöne Funktionen zum "Dekodieren" von Language-IDs usw. Die hat Borland leider vergessen - zumindest bei Delphi 5 und wahrscheinlich davor. Hier sind sie:
Delphi-Quellcode:
Ein Anwendungsbeispiel:
function MAKELANGID(usPrimaryLanguage, usSubLanguage: BYTE): WORD;
begin Result := (usSubLanguage shl 10) or usPrimaryLanguage; end; function PRIMARYLANGID(lgid: WORD): Word; begin Result := lgid and $3ff; end; function SUBLANGID(lgid: WORD): WORD; begin Result := lgid shr 10; end; function MAKELCID(wLanguageId, wSortId: WORD): DWORD; begin Result := (wSortId shl 16) or wLanguageId; end; function MAKESORTLCID(wLanguageId, wSortId, wSortVersion: WORD): DWORD; begin Result := MAKELCID(wLanguageId,wSortId) or (wSortVersion shl 20); end; function LANGIDFROMLCID(lcid: DWORD): WORD; begin Result := WORD(lcid); end; function SORTIDFROMLCID(lcid: DWORD): WORD; begin Result := WORD((lcid shr 16) and $F); end; function SORTVERSIONFROMLCID(lcid: DWORD): WORD; begin Result := WORD((lcid shr 20) and $F); end;
Delphi-Quellcode:
usw. Im PSDK kann man die Sache genauer nachlesen. :)
var
txt : string; langid : word; begin langid := MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_DOMINICAN_REPUBLIC); SetLength (txt,MAX_PATH); SetLength (txt, VerLanguageName(langid,@txt[1],length(txt))); ShowMessage(txt); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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 by Thomas Breitkreuz