Autor Beitrag
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Fr 28.02.03 13:19 
Hallo!

Bei den Professional und Enterprise-Versionen von Delphi liegt ja der Sourcecode der VCL mit bei. Gibt es die VCL bzw. den Source irgenwo bereits übersetzt in mehreren Sprachen oder muss man die Übersetzung dieser Komponenten auch selbst vornehmen?? Bei den anders-sprachigen Delphiversionen liegt ja entsprechend auch der Source in der jeweiligen Landessprache bei. Bekommt man diese Versionen (z.B. Englisch oder Französisch) irgendwo??

_________________
Gruß,
MB
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Fr 28.02.03 13:34 
Du könntest mal bei Borland nachfragen... Oder irgendwelche Kumpels. Oder im Netz suchen.
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Fr 28.02.03 13:40 
Hallo!

Ja, auf diese Ideen bin ich auch schon gekommen... wobei:

1. habe ich leider keinen Kumpel, der auch mit Delphi programmiert
2. bei Borland auf den Internetseiten und FTP habe ich nix gefunden
3. im Internet findet man viel zur VCL, aber zu dieser Borland VCL habe ich nix gefunden.

Deswegen habe ich mich auch hier an das Forum gewandt. Hat jemand von Euch nicht verschiedene Sprachversionen davon?

_________________
Gruß,
MB
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Fr 28.02.03 14:04 
hmmm...wie siehst mit selbst übersetzen aus?? :lol:
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Fr 28.02.03 15:55 
Prima, danke :wink: ... das war's wonach ich gesucht hätte.

Echt, meine Aufgabe sehe ich hauptsächlich im Programmieren - nicht im Übersetzen. Und ich denke, dass ich nicht der einzige bin, der (versucht) mehrsprachigen Anwendungen zu entwickeln, oder??

_________________
Gruß,
MB
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 28.02.03 16:36 
Hi,

meinst Du im mehrsprachig im Sinne von der Ausprache ? Wenn ja, dann kann ich Dir folgenden Tip empfehlen :

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
<b>Ressourcen erstellen</b>
---------------------------

<b>deutsche Menüeinträge</b>



STRINGTABLE
{
 100, "&Datei"
 101, "&Beenden"
 200, "&Hilfe"
 201, "&Info über..."
}


<i>
//Speichern unter deutsch.rc

//kompilieren mit brcc32 deutsch.rc
</i>



<b>englishe Menüeinträge</b>



STRINGTABLE
{
 100, "&File"
 101, "&Close"
 200, "&Help"
 201, "&About..."
}


<i>
//Speichern unter english.rc

//kompilieren mit brcc32 english.rc
</i>



<b>DLL's erstellen</b>
---------------------------

library english;

uses
  SysUtils;

{$R ENGLISH.RES}

begin
end.

<i>//speichern unter english</i>



library deutsch;

uses
  SysUtils;

{$R DEUTSCH.RES}

begin
end.

<i>//speichern unter deutsch</i>





<b>Aufruf im Programm</b>



  private
    sDLLName : String;              <i>//DLL-Version</i>
    hDLL     : THandle;             <i>//DLL-Handle</i>
    function GetStringFromRes(iID: Integer) : String;
    procedure Sprachauswahl;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


type
  Tlanguage =(de_, en_);

var
  Form1: TForm1;
  language : TLanguage;


implementation

{$R *.dfm}


function TForm1.GetStringFromRes(iID: Integer) : String;
var
  iCnt   : Integer;
  szText : array[0..29] of Char;
begin
  iCnt := LoadString(hDLL, iID, szText, SizeOf(szText)-1);
  if iCnt > 0 then GetStringFromRes := StrPas(szText)
              else GetStringFromRes := 'Kein Eintrag!';
end;




<i>//welche Sprachversion soll eingebunden werden?</i>
procedure TForm1.Sprachauswahl;
begin
 if language = en_ then
    sDLLName := 'ENGLISH.DLL'
  else
    sDLLName := 'GERMAN.DLL';

<i>  //entsprechende DLL laden</i>
  hDLL := LoadLibrary(PChar(sDLLName));
  if hDLL <> 0 then begin
    StatusBar1.SimpleText := sDLLName + ' geladen.';

 <i>//Beschriftung der Menü-Einträge aus den DLL-Ressourcen lesen</i>
    with MainMenu1 do begin
      Datei.Caption := GetStringFromRes(100);
      Beenden.Caption := GetStringFromRes(101);
      Hilfe.Caption := GetStringFromRes(200);
      Info.Caption := GetStringFromRes(201);
    end;
  end;
end;


<i>//English</i>
procedure TForm1.Button1Click(Sender: TObject);
begin
  language := en_;
  Sprachauswahl
end;


<i>//Deutsch
procedure TForm1.Button2Click(Sender: TObject);
begin
  language := de_;</i>
  Sprachauswahl
end;


<i>//DLL entladen</i>
procedure TForm1.FormDestroy(Sender: TObject);
begin
  if hDLL <> 0 then FreeLibrary(hDLL);
end;


Den Code habe ich mal irgendwo aus dem Internet gefischt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 19:11 
Oder man arbeitet mit mehrsprachigen zeichenfolgen tabellen. dann muß man zwar alles aus der Ressource lesen, aber Windows nimmt einem alles hab. Habe ich eine Zeichenfolge Tabelle für englisch und eine für deutsch. Kuck Windows welche Sprache das OS hat und nimmt dann den String aus der entsprechenden Zeichenfolgetabelle. Der Trick ist nur, dass gleicher Text in verschiedenen Sprachen die gleiche ID haben muß. Als Beispiel siehe meinen FileSplitter von meiner Seite. Einfach mal in die Ressource reinkucken.
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Fr 28.02.03 21:41 
Hallo nochmal!

Vielen Dank zunächst für die Antworten.
Das Prinzip der mehrsprachigen Anwendungen (mit Sprach-DLLs) ist mir schon bekannt. Nur habe ich mich wahrscheinlich etwas zu kompliziert ausgedrückt:

Was ich eigentlich suche, wäre den Sourcecode der VCL (der ja in der eigenen Sprache schon Delphi beiliegt) nur eben in einer anderen Sprache, so dass ich solche Dinge wie Std.-Fehlermeldungen, MessageDlgs etc. nicht auch übersetzen muss.

Hat da jemand was für mich??

_________________
Gruß,
MB
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 21:56 
FormatMessage, damit kannst du die Fehlermeldungen von GetLastError in der Landessprache ausgeben.
Nimm statt MessageDlg Messagebox und die Buttonbeschriftung ist wieder abhängig von der Systemsprache.