Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Program mehrsprachig ohne Quellcode großartig anzupassen? (https://www.delphipraxis.net/64787-program-mehrsprachig-ohne-quellcode-grossartig-anzupassen.html)

masterchris_99 8. Mär 2006 09:33


Program mehrsprachig ohne Quellcode großartig anzupassen?
 
Hallo,

Angenommen ich habe ein größeres Programm wo viele Sachen wie

Delphi-Quellcode:
Label1.Caption:='Dies ist ein Test';
Label2.Caption:='Deutsch';
Button1.Caption:='Button Deutsch';
Memo1.Text:='Deutsch';
Edit1.Text:='Deutsch';
drin sind.
So nun bin ich aber ein Mensch der den Quellcode nicht wie folgt ändern will:

Delphi-Quellcode:
Label1.Caption:=str1;
Label2.Caption:=str2;
Button1.Caption:=str3;
Memo1.Text:=str4;
Edit1.Text:=str5;
Sondern ich hätte gerne eine Komponente die wenn ich im Programm die Sprache Englisch auswähle einfach die Caption, Text, Hint, usw. Befehle aufgreift und da dann einen anderen String rüberlegt.
Gibt es sowas? Ich weiss suche aber sowas habe ich noch nicht gefunden.
gettext bekomme ich bei mir nicht zum laufen also der editor geht net keine ahnung wieso. Der Multilizer ist recht teuer und anscheinend auch nicht das wahre. Dann habe ich noch den IVS Language Controller gefunden jedoch bekomme ich den nicht für meine Delphi 7 Version aber der macht sowas ja anscheinend.
Resourcenstring und ini datein geht nicht weil ich dann halt den Quelltext umschreiben muss.

mFg Chris

_Sebastian_ 8. Mär 2006 10:01

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Guck dir mal Modelmaker an. Das hat ein Tool dabei das Strings in Recourcestrings umwandelt.
Ich hab das noch nie richtig ausprobiert, aber er erkennt die ganzen 'string' im Quelltext und lässt die dann ausgliedern.

Modelmaker hier gibs die Demo (30 Tage)

XeRo 8. Mär 2006 10:02

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
ich würds so machen:

Delphi-Quellcode:
var s,sprache:string;
begin
 sprache:='deutsch.txt';
 AssignFile(f,sprache);
  Reset(f);
   Readln(f,s);
   Button1.Caption:=s;
   Readln(f,s);
   Button2.Caption:=s;
   // usw
  CloseFile(f);
end;
So erstparst du dir die ganzen Variablen.
Die Textdatei muss dann so aussehen:
Code:
Dies ist die Caption von Button1
Dies ist die Caption von Button2
usw...
So würds ich machen is meiner meinung nach das einfachste.

dfried 8. Mär 2006 10:07

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Zitat:

Zitat von XeRo
So erstparst du dir die ganzen Variablen.
Die Textdatei muss dann so aussehen:
Code:
Dies ist die Caption von Button1
Dies ist die Caption von Button2
usw...
So würds ich machen is meiner meinung nach das einfachste.

Hast du so schon mal ein Programm mit 50 Formularen und dutzenden von Controls übersetzt?

Wir haben für unser Projekt damals Localizer verwendet.

manfred_h 8. Mär 2006 10:16

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Hallo masterchris_99

ich würde Dir GNU Gettext empfehlen GNU Gettext
und das dazu CNXManager
und für das anpassen der Sprachen Poedit

das ganze geht wirklich gut. :thumb:

Ich hatte am Anfang nur Probleme mit dem CnxManager ging dann abr wirklich gut.
viel Erfolg

Manfred

masterchris_99 8. Mär 2006 10:33

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Zitat:

Zitat von XeRo
ich würds so machen:

Delphi-Quellcode:
var s,sprache:string;
begin
 sprache:='deutsch.txt';
 AssignFile(f,sprache);
  Reset(f);
   Readln(f,s);
   Button1.Caption:=s;
   Readln(f,s);
   Button2.Caption:=s;
   // usw
  CloseFile(f);
end;
So erstparst du dir die ganzen Variablen.
Die Textdatei muss dann so aussehen:
Code:
Dies ist die Caption von Button1
Dies ist die Caption von Button2
usw...
So würds ich machen is meiner meinung nach das einfachste.

Aber das ist doch genau das was ich nicht machen will.
Der Quellcode soll erhalten bleiben am liebsten wäre mir eine Komponente die einfach direkt auf die Captions zugreift und diese anpasst.

XeRo 8. Mär 2006 10:54

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
ach so. ich dachte du willst nicht unnötig viele variablen haben...

masterchris_99 8. Mär 2006 11:16

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Zitat:

Zitat von dfried
Zitat:

Zitat von XeRo
So erstparst du dir die ganzen Variablen.
Die Textdatei muss dann so aussehen:
Code:
Dies ist die Caption von Button1
Dies ist die Caption von Button2
usw...
So würds ich machen is meiner meinung nach das einfachste.

Hast du so schon mal ein Programm mit 50 Formularen und dutzenden von Controls übersetzt?

Wir haben für unser Projekt damals Localizer verwendet.

Ahh dieses Tool hatte ich schon gelesen aber wohl vergessen zu testen und im Kopf als "nicht gut" abgelegt.
Habe es mir jetzt aber mal angeguckt das ist richtig gut genau das was ich suche.
Jetzt muss ich nur noch das mit den Strings intern hinbekommen Also der Form-Style wird umgestellt aber wenn ich in der FormCreate oder so sage dieses Label ergibt sich zu 'Blaaa' dann packt er es zwar in eine externe Unit nur ändert sich bei der language umstellung nichts.

Edit:
So schade aber alles was in der FormCreate drin ist wird nicht umgestellt aber trotzdem ein klasse Program!

Sharky 8. Mär 2006 11:27

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Hai,

ich habe eben das selbe "Problem".
Darum schreibe ich mir eben eine Klasse welche die Texte dann aus einer INI holt und anhand des Komponentennamens bzw. der Original-Caption ändert.

Wenn sie fertig ist stelle ich sie hier rein.

masterchris_99 8. Mär 2006 11:47

Re: Program mehrsprachig ohne Quellcode großartig anzupassen
 
Ja das wäre sehr gut dann brauch ich mir nicht diese Komponente kaufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz