
Zitat von
alexander:
@FriFra: HAst du die
Unit selber geschrieben oder liegt die bei Delphi bei oder hast du sie noch irgendwie anders kaufen müssen?
Wäre mal interessant zu wissen. Wenn sie kostenlos ist, kannst du sie mir vielleicht schicken?
ODer wie sieht das Prinzip der
Unit aus? Stehen da einfach nur die Übersetzungen drinne? Und du rufst dann nur die entsprechende Variabel ab?
DAnke schon mal!!
Die Sprach-
Unit ist teilw. Eigenbau... die Basis habe ich aber mal in einem Forum gefunden:
Delphi-Quellcode:
unit Lang;
interface
uses
windows, controls, sysutils;
function INLanguage(English, German:
string):
string;
implementation
{$R *.DFM}
{call inLanguage like this to get the German text else return english
if you use different coutntry codes you can do more
}
{############### FGetLanguageSettings ############################
# Author: Walter Verhoeven
# Date: 14.Sep.2000
# Coming From: InLanguage
# Next Event: NONE
# Parameters: NONE
# Objective: See the users regional settings and return Country #number code
# Change:
# DD-MMM-YYYYY ¦Programmer
# 1)
#
########################################################}
function FGetLanguageSettings: Integer;
var
OutputBuffer: Pchar;
SelectedLCID: LCID;
//DWORD constand in Windows.pas
begin
OutputBuffer := StrAlloc(4);
//alocate memory for the PChar
try
try
SelectedLCID := GetUserDefaultLCID;
GetLocaleInfo(SelectedLCID, LOCALE_ICOUNTRY, OutputBuffer, 3);
Result := StrToInt(OutputBuffer);
except
Result := 49;
//german
Abort;
end;
finally
StrDispose(OutputBuffer);
//alway's free the memory alocated
end;
end;
{############## INLanguage #######################################
# Author: Walter Verhoeven
# Date: .Jun.2000
# Coming From:
# Next Event: FGetLanguageSettings
# Parameters: Eglish and german text
# Objective: provide a method to return
# english or german results based on the
# users window prefered language setting.
# Change:
# DD-MMM-YYYYY ¦Programmer
# 1)
#
##############################################################}
function INLanguage(English, German:
string):
string;
begin
case FGetLanguageSettings
of
49: Result := German;
//Return the german string
43: Result := German;
// if the pC has a german preferance
41: Result := German;
352: Result := German;
else
Result := English;
//if not german then english
end;
end;
end.
Ich habe die Funktion allerdings noch etwas erweitert, so dass die Funktion bei Vorhandensein einer Sprachdatei einen Wert aus dieser Datei ausgibt... dafür braucht es aber noch einen Parameter mit dem Stringbezeichner...