AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Anwendung mit Resourcestring mehrsprachig, aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung mit Resourcestring mehrsprachig, aber wie?

Ein Thema von Mazel · begonnen am 21. Jul 2006 · letzter Beitrag vom 25. Jul 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#11

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 21. Jul 2006, 11:46
Aso, ok dann werde ich mir Hilfe wohl doch anschaffen.

Danke.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#12

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 15:14
HI,

wie wende ich die GNU Gettext nun an?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 16:30
Halli Hallo,

Zitat von Mazel:
wie wende ich die GNU Gettext nun an?
Hast du dir schon das "HowTo" auf der Seite von GnuGetText durchgelesen?

Link: http://dybdahl.dk/dxgettext/docs/howto.php

Dort wird eigentlich alles Schritt für Schritt erklärt.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#14

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 16:35
Oh, nein hatte ich mir nicht durchgelesen, werde ich aber jetzt tun, danke.


Edit: Ich habe mir diese Seite nun durchgelesen, und habe eine po sowie eine mo Datei erstellt. Doch wie kann ich die Sprache in meine Anwendung einbringen? Darüber steht nichts auf der Seite. Und wie kann ich die Sprache zur Laufzeit ändern?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#15

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 17:12
Hi,

aaalso:

Du entwickelst deine Anwendung erst einmal ganz normal ohne dich um die Sprachproblematik zu kümmern.

Ich entwickle immer alles in Englisch und zwar aus dem ganz einfachen Grund, weil ich ein englisches Delhi habe und bei den meisten Komponenten/Bibliotheken alle Meldungen auch in englisch gehalten sind. So habe ich eine konsistente Ausgangsbasis.

Dann scannst du mit GNUGettext deinen Source und erhälst eine PO-Datei. Diese kopierts du in jeweils ein Verzeichnis pro Sprache (z.B. <PROGRAMMVERZEICHNIS>\locale\LC_MESSAGES\DE für Deutsch).

Die PO-Dateien werden dann mit (z.B.) POEdit in die gewünschte Zielsprache übersetzt. Beim Speichern entsteht automatisch die MO-Datei.

Wenn das Programm auf einem Deutschen Windows läuft und eine MO-Datei für Deutsch vorhanden ist, so wird dxGetText automatisch alles in Deutsche übertragen wenn "TrnaslateComponent(Self)" ausgeführt wird.

Wenn das Programm verschiedene Sprachen unterstützen soll, so muss für jede Sprache ein Verzeichnis mit der übersetzten MO-Daatei existieren. Im Programm kann durch den Aufruf von "UseLanguage(<SPRACHCODE>)" vor dem "TranslateComponent()" die Sprache bestimmt werden. Wenn das Programm also also auf Spanisch laufen soll so wird folgendes augefrufen:

Delphi-Quellcode:
UseLanguage('ES');
TranslateComponent(Self);
Der Parameter bei "UseLanguage" ist immer der ISO-Code der Sprache. Das Verzeichnis in "locale" muss genauso benannt sein.

Findet dxGetText die jeweilige Sprache nicht so tut es einfach: nichts. Das Programm erscheint dann so wie es in Delphi erstellt wurde (also z.B. in Englisch). Das macht es sehr einfach neue Sprachen hinzuzufügen ohne das Programm neu zu erstellen, also z.B. auf dem Rechner des Benutzers durch einen Download neuer Sprachdateien.

Ich hoffe das hilft erst einmal ein wenig weiter,

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#16

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 17:19
Danke für diese ausführlichen Informationen. So wie es aussieht muss ich also die Sprachdateien mitliefern, und POEdit ist also auch notwendig, wenn ich den deutschen Text in Englisch übersetzen will?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#17

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 17:44
Genau. Die Sprachdateien werden vom Setup in die entsprechenden Verzeichnisse kopiert.

POEdit ist nur ein etwas komfortabler Weg die PO-Dateien zu bearbeiten. Man kann sie auch mit jedem Editor der UTF-8 speichern kann bearbeiten. POEdit bietet aber z.B. ein TranslationMemory an damit man Sachen die man schon mal übersetzt hatte nicht komplett neu übersetzen muss.

[EDIT:] man kann die Sprachdateien auch an das Programm "kleben" in dem "HowTo" steht ziemlich weit unten, wie das geht (rechte Maustaste auf die EXE, dann "Embedd strings"...)


Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#18

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 18:05
Ok, danke.

Ich werde diese Tools aber doch nicht verwenden, es ist einfach zu ümständlich. Ich habe es nun folgendermaßen gelöst (ist natürlich noch nicht fertig):

Delphi-Quellcode:
//eine Array-Konstante mit beiden Sprachen:
Lang: array[1..12] of String =
   ('Datei', 'File', 'Öffnen', 'Open', 'Liste der PlugIns...', 'PlugIns...',
    'Beenden', 'Close', 'Effekte', 'Effects', 'Vollbild', 'Fullscreen');

//Im Menü gibt es die Möglichkeit die Sprache zu ändern über Optionen -> Sprache -> Englsich oder Detusch
//im Tag steht für Deutsch die 1 und für Englisch die 2 eingegeben

//die SetLanguage Prozedur wird beim Klick auf die ensprechende Sprache aufgerufen
procedure TForm1.SetLanguage(LangID: Word);
begin
 //LangID: 1 - Deutsch; 2 - Englisch
 Datei.Caption:=Lang[0 + LangID];
 Oeffnen.Caption:=Lang[2 + LangID];
 PlugIns.Caption:=Lang[4 + LangID];
 Beenden.Caption:=Lang[6 + LangID];
 Effekte.Caption:=Lang[8 + LangID];
 Vollbild.Caption:=Lang[10 + LangID];
end;
Ist einfacher und braucht keine weiteren Programme. Ich brauche zwar bis zu 40 Zeilen Code für die Zuweisung aber ich kann den Text in dem Array ohne weiteres ändern.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#19

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 19:18
Zitat von Mazel:
Ok, danke.

Ich werde diese Tools aber doch nicht verwenden, es ist einfach zu ümständlich.
Na dann warte mal ab bis deine Programme etwas umfangreicher werden. Dann wirst du mit deiner Methode aber mal sehen was unständlich wirklich bedeutet...

Kannst du dir vorstellen, wie kompliziert so etwas zu warten ist wenn immer mehr Formulare hinzukommen und dann eventuell noch eine weitee Sprache unterstützt werden soll?

Mit dxGetText wird einfach nur eine weitere MO-Datei dazukopiert und fertig ist die Sache.

Neue Formulare sind hinzugekommen? Mit dxGetText neu den Source scannen, das alte PO-File mit dem neuen "mergen" (dafür gibt es auch einen Menüpunkt bei dxGetText) und nur noch die z.B. 10 neu hinzugekommenen Strings übersetzten. Fertig.

Es geht eigentlich kaum unkomplizierter (OK, bei 5 Menüpunkten und eventuell 3 Bildschirmmeldungen sieht deine Lösung noch einfacher aus. NOCH!)

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#20

Re: Anwendung mit Resourcestring mehrsprachig, aber wie?

  Alt 22. Jul 2006, 20:52
also ich verwende folgende möglichkeit:
http://www.del-net.com/delphi/delphimultilan.html

in einer extradatei werden die strings auf folgende weise gespeichert. (lässt sich auch auf mehrere dateien verteilen -> eine datei pro sprache)

Code:
STRINGTABLE
BEGIN
  1, "Sprachwandler"
  2, "Deutsch"
  3, "Englisch"
  1001, "LanguageChanger"
  1002, "German"
  1003, "English"
END

da mein programm immer umfangreicher wurde, wuchs auch die liste mit den begriffen. klappte aber trotzdem alles wunderbar. ich würde mir aber ein programm zum bearbeiten der strings wünschen. sowas in der art von POEdit. ich habe leider keine info dazu gesehen, ob sich POEdit in soweit anpassen lässt, dass es auch mit anderen resource-dateien zurecht kommt. es müsste eben die darstellung 1, "Sprachwandler" korrekt auseinandergenommen werden.

hat jemand eine idee dafür? (also ob das mit POEdit geht oder mit einem anderen programm?) schlimmstenfalls müsste ich mir selber was basteln, wäre aber schön, wenn ich mir die zeit sparen könnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:54 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