AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tipps zu mehrsprachigen Programmen

Ein Thema von Ares · begonnen am 30. Nov 2005 · letzter Beitrag vom 1. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 11:00
Weiß nicht genau ob´s passt, aber ich habe das alles über eine ini-Datei gelöst, was den Vorteil hat, dass ich die ini-Datei jemandem zum Übersetzen geben kann und ich habe im Quellcode nichts damit zu tun. Einmal die Arbeit quasi im Quellcode erledigt, ab nur noch Pflege über externe Datei.
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#12

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 11:27
Hallo padavan,

wir haben das Ganze auch mit INI Dateien gelöst. Unsere Sprachen sind durch senkrechte Striche getrennt. Funktioniert ausgezeichnet und vor allem schnell.
Nachteil:
wenn die ini nicht irgendwie an die exe angehängt ist kann jeder darin rumpfuschen.
Achtung Ini Dateien haben einen Nachteil:
Unter win9x dürfen die Dinger nicht gr
össer als 64k sein.

Rainer
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#13

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 11:33
Zitat von Garby:
Zitat von Ares:
Hat sonst noch jemand einen Tipp, wo ich mich über den Umgang mit Res-Dateien schlau machen kann?
Such mal hier im Forum nach TResourceStream oder LoadFromResourceName von TBitmap.
Ok danke, ich werd mich mal danach umsehen. Ich habe dazu allerdings schon eine Frage: Das sieht so aus, also würde man mit TResourceStream oder LoadFromResourceName zur Laufzeit eine Daten aus einer externen Datei einbinden. Die Daten sind also nicht in der EXE enthalten, es müssen also mehrer Dateien weiter gegeben werden. Oder vertue ich mich da?



Zitat von padavan:
Weiß nicht genau ob´s passt, aber ich habe das alles über eine ini-Datei gelöst, was den Vorteil hat, dass ich die ini-Datei jemandem zum Übersetzen geben kann und ich habe im Quellcode nichts damit zu tun. Einmal die Arbeit quasi im Quellcode erledigt, ab nur noch Pflege über externe Datei.
Daran habe ich auch schon gedacht (s.o.). Ini Dateien haben für mich aber ein paar Nachteile. Zum einen lösen Sie nur die Probleme mit den Texten und nicht mit den Bildern. Außerdem können die Daten auch nur zur Laufzeit ausgelesen und somit nicht in die EXE hineinkompiliert werden. Daher fände ich es sinnvoller die Texte als Konstanten in einer Unit abzulegen. Somit wird alles in die EXE Kompiliert, man spart sich das Einlesen aus der INI, und ob man jemanden eine INI oder eine PAS-Datei zum übersetzen gibt ist kein großer Unterschied.


Hey, ich habe da gerade eine Idee: Also Texte werden wie geplant als Konstanten in eigener Unit abgelegt. Bilder werden als Bilder auf einem eigenen Formular abgelegt. Unit und Formular-Datei werden je nach Sprache ausgetauscht, und beim Start des Programms den eigentlichen Texten und Bildern zugewiesen:

Delphi-Quellcode:
label1.caption := langConstLabel1;
image1.picture := langPicture1.Picture;
...
Das sollte doch eigentlich gehen, oder? Sieht jemand Probleme oder Nachteile?
  Mit Zitat antworten Zitat
Puhbaehr
(Gast)

n/a Beiträge
 
#14

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 11:49
Was hälst du denn von einer Imageliste? Für jede Sprache eine Liste. Beim Wechsel der Sprache wird dann nur die Liste ausgetauscht. Willst du die Bilder eigentlich mit hineinkompilieren?

Gruß, Robert
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#15

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 12:01
Zitat von Puhbaehr:
Was hälst du denn von einer Imageliste? Für jede Sprache eine Liste. Beim Wechsel der Sprache wird dann nur die Liste ausgetauscht.
Gruß, Robert
Das Problem bei ner ImageList ist, dass jedes enthaltene Bild gleich groß ist, oder?


Zitat von Puhbaehr:
Willst du die Bilder eigentlich mit hineinkompilieren?
Gruß, Robert
Klar, das ist ja der Sinn der ganzen Übung und aller meiner Fragen Ich möchte möglichst für jede Sprache eine eigene EXE haben, die auf keine anderen Dateien mehr Zugreifen muss...
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Tipps zu mehrsprachigen Programmen

  Alt 1. Dez 2005, 12:50
Zitat von Ares:
Ok danke, ich werd mich mal danach umsehen. Ich habe dazu allerdings schon eine Frage: Das sieht so aus, also würde man mit TResourceStream oder LoadFromResourceName zur Laufzeit eine Daten aus einer externen Datei einbinden. Die Daten sind also nicht in der EXE enthalten, es müssen also mehrer Dateien weiter gegeben werden. Oder vertue ich mich da?
Ja, da vertust du dich

Hier eine Kurzanleitung wie du das einfach machen kannst.
1. Schreibe im Notepad für jede Bilddatei eine Zeile im Format: NAME ART "DATEINAME" z.B.
Code:
BildNr1 BMP 'Bild1.bmp'
2. Speichere diese ab als XYZ.rc
3. Kompiliere diese Datei mit brcc32.
Ich erstelle mir dafür eine Batchdatei (XYZ.bat) die folgendermassen aussieht:
Code:
brcc32 XYZ.rc
PAUSE
Diese Batchdatei lege ich dann im gleichen Verzeichnis ab und starte sie.
Dadurch wird eine neue Datei (XYZ.res) erzeugt.
4. Im Delphi-Quellcode schreibst du dann in der jeweiligen Unit, wo du die Übersetzungen Handeln möchtest:{$R XYZ.res} Dadurch wird die Resourcendatei mit in deine Exe gelinkt.
5. Um dann das Bitmap in einem TImage anzeigen zu lassen (z.B. mit TResourceStream) schreibst du dann:
Delphi-Quellcode:
    var Res: TResourceStream;
  ...
    Res := TResourceStream.Create(HInstance, 'BildNr1', 'BMP');
    try
      Image1.Picture.Bitmap.LoadFromStream(Res);
    finally
      Res.Free;
    end;
Vorsicht nicht getestet, sollte aber laufen

Viel Spaß
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 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