Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Compiling-Fehler auf Resource in integr. Übersetzungsumgebun (https://www.delphipraxis.net/3308-compiling-fehler-auf-resource-integr-uebersetzungsumgebun.html)

oki 6. Mär 2003 08:35


Compiling-Fehler auf Resource in integr. Übersetzungsumgebun
 
Hallo,

ich nutze zum ersten mal die ITE von Delphi 5 und das natürlich unter Zeitdruck. Nun habe ich folgendes Problem.

Nach dem Hinzufügen einer neuen Spache und nachfolgendem Compiling des Projektes sagt mir Delphi:

RC Fehler
kann Datei Programmname_DRC.res nicht finden


in der automatisch angelegten Projektdatei steht auch diese Datei, ist in dem automatisch angelegten Unterverzeichnis nicht zu finden.

Was ist da los?

Wenn mir jemand schnell helfen kann, währe toll.

Gruß oki

hacki 3. Mai 2003 18:58

Hallo oki,

leider kann ich dir nicht helfen. Ich interessiere mich aber für die integrierte übersetzungs umgebung (ITE). Wie nutze ich sie ? Gibt es vielleicht irgendwelche Dokumentation, falls ja wo finde ich sie.

Danke und Grüsse
Hacki

APP 3. Mai 2003 20:14

Hallo,

ich habe zu Hause leider nur D5 Pro ohne ITE, kann Dir aber sagen,
dass ich damit auch schon meine "Freude" hatte, ich hoffe,
Du hast Dein Projekt vor dem Hinzufügen der neuen Sprache gesichert?

Ich kann nur mal eine Ferndiagnose machen, aber hast Du nach dem
Hinzufügen auch im Translation Manager nachgesehen, ob Deine DFM und
Units mit den Ressourcen in der neuen Sprache angelegt sind?

Ich bin im Moment total blank, aber bei meinem D7 gibt es doch einen
Menüpunkt mit <ADD NEW LANGUAGE> oder so, und 2 Zeilen weiter unten
gibt es noch einen Menüpunkt zum ITE der mir nicht einfällt, aber
soweit ich mich erinnere, immer wenn ich einen z.B. Resourcenstring
einfügte, musste ich diesen Menüpunkt anwählen und danach konnte ich
mir <Build all> erst korrekt kompilieren.


Vielleicht hilft das?


p.s.
Mir ist auch noch aufgefallen, dass, wenn ich nachträglich den
BorderStyle umstellte und danach wieder zurückstellte, hatte ich größte
Probleme mit der korrekten Darstellung der Form.

p.p.s.
Soll nun kein Schauermärchen werden, ich finde den ITE grundsätzlich
O.K., aber man muß höllisch aufpassen, wenn man nachträglich etwas
ändert :-(

p.p.p.s Sonst bitte warten auf Monatg, vielleicht finden wir da eine Lösung...

APP 4. Mai 2003 11:47

Hallo Oki,
mir ist gerade noch etwas eingefallen:

Du schreibst leider nicht, ob Du vorher schon
eine andere Sprache "aktiviert" hast oder nicht,
wenn nein, und, falls Du Dein Projekt in verschiedene
Verzeichnisse (\bin, \dcu, \source...) verteilt hast,
habe ich möglicherweise eine Lösung für Dich:

Ich postete hier einmal Translation Manager und Verzeichnisse eines Projektes ein Problem, vielleicht ist das bei Dir genauso?

oki 5. Mai 2003 07:16

Hi Leute.

Danke für die Anteilnahme. Ich habe in der Zwischenzeit mein Problem gelöst. Die Ursache war folgende.

Nach Auswahl der neuen Sprachen muß der Menüpunkt Resourcen-DLL erstellen angewählt werden, damit die entsprechenden Formulare und Resourcen-Dateien für die neuen Sprachen durch die ITE erstellt werden. Nun war es bei mir so, dass die ITE Probleme mit meinem Datenmodul hatte. Das hat zum Abbruch des Erstellungungsvorganges geführt. Offensichtlich ist die eigentliche Resourcen-Datei in der Reihenfolge der Erstellung erst nach den DFM-Dateien dran. Beim compilieren ist dann die ausländische res-Datei natürlich nicht vorhanden gewesen. Ich habe mein Datenmodul ausgetauscht, danach hat alles super geklappt. (Datensicherung ist doch was tolles).

Wenn noch jemand Fragen hat, so'n bischen kenn ich mich nun mit der ITE aus.

Gruß oki

APP 5. Mai 2003 07:36

Hallo oki,

es freut mich das nun alles klappt, was mich aber noch brennend
interessieren würde ist, ob Du deine Projektdateien in verschiedene
Verzeichnisse speicherst (\bin, \dcu, \source...), wenn ja, wie funkt
dann bei Dir der ITE?

oki 5. Mai 2003 10:14

Hi App,

also ich speichere grundsätzlich folgendermaßen.

Ich lege mir ein eigenes Projektverzeichnis mit dem Namen meines Projektes an (C:\Programmierung\Delphi5\MeinProjekt). Dort speicher ich alle Dateiern meines Projektes ab (*.dfm, *.pas, *.dcu usw.). Die ITE bildes dann in meinem Projektverzeichnis ein Unterverzeichnis, z.B. esp für eine spanische Version. Dort liegen nach dem Erstellen der Übersetzung alle Formular-dfm in der entspechenden Sprachversion. In meinem Projekthauptverzeichnis wird die Datei Projektname.esp als kopierfähige Sprachresource abgelegt.
Habe ich einzelne Units die mein Projekt verwendet in anderen Pfaden abgelegt, so erstellt mir die ITE in meinem Projekt-Verzeichnis im Verzeichnis esp entprechende Unterverzeichnisse die dem Pfad dieser Dateien entsprechen. In diesen liegen dann die entsprechenden Resourcen.

ok, so siehts bei mir aus.

Gruß oki

APP 7. Mai 2003 07:44

Hallo, oki

bin nun endlich zurück und habe noch einmal den TM mit Verzeichnissen ausprobiert:

Ich kam zum Schluß, dass der TM auch mit Verzeichnissen arbeitet.
Allerdings habe ich mir angewöhnt mit relativen Pfaden (..\BIN) zu arbeiten,
dabei motzt der TM, dass er den Pfad \BIN\MeinProg.EXE nicht findet, allerdings
kann man diese Meldung ignorieren, das habe ich am Anfang aber nicht gemacht...

Mit absoluten Pfaden geht alles klaglos.

----------------------------------------------------------------------------------------

@hacki

Kochrezept zur Benutzung des TM:

VORBEREITUNGEN:
In den Units vor IMPLEMENTATION die Resourcen (=Texte) definieren die man übersetzen möchte.
(in EINER Sprache, am Besten in der Ausgangssprache)

Delphi-Quellcode:
RESOURCESTRING
  RsTest                     = 'Sapperlot';
  RsErrorQueryBereich        = 'Can not execute SQL: %s' + CRLF + '%s';
BENUTZUNG MIT FORMATSTRINGS:
z.B.
Delphi-Quellcode:
   E.Message := Format(RsErrorQueryBereich, [queryBereich.SQL.Text, E.Message]);
EINSATZ DES TM (englische Version):
  • Projekt speichern
  • Menü: Projekt/Languages/Add
  • (Select ALL) <Next>
  • gewünschte Sprachen auswählen
  • 3x <Next>
  • 1x <Finish>
    -- Projekt wird compiliert --
    -- *.bpg Datei speichern --
  • TM Fenster öffnet sich
  • Reiter <Workspace> (ganz rechts)
  • Im Treeview gibt es Knoten für jede Sprache
    -> Forms: Formulareigenschaften und Texte für jede Sprache individuell anpassen
    -> Ressource Scripts: ResourceStrings die man vorher erstellt hat übersetzen

SPRACHUMSCHALTUNG IM CODE AKTIVIEREN:

Die Datei reinit in das Projektverzeichnis kopieren:
C:\Program Files\Borland\Delphi7\Demos\RichEdit\reinit.pas


Im Hauptprogramm folgendes einfügen:
Delphi-Quellcode:
USES
  ...
  reinit,                                        // Länderanpassung
  ...

CONST
// ------------------ Länderanpassung ------------------
// Konstanten sind in der Windows.pas definiert.
  ENGLISH                    = (SUBLANG_ENGLISH_US SHL 10) OR LANG_ENGLISH;
  FRENCH                     = (SUBLANG_FRENCH SHL 10) OR LANG_FRENCH;
  GERMAN_A                   = (SUBLANG_GERMAN_AUSTRIAN SHL 10) OR LANG_GERMAN;
Ich habe die Sprachauswahl in eine INI-Datei verpackt:

Code:
[Translation]
Language=GERMAN_A
Codebeispiel zur Umschaltung zur Laufzeit:

Delphi-Quellcode:
     // Anpassen für mehrere/andere Sprachen!
      IF LoadNewResourceModule(IniFile.ReadInteger(SectionDatabase, KeyLanguage, GERMAN_A)) <> 0 THEN
        BEGIN
          ReinitializeForms;
        END;
ACHTUNG:
Projekt natürlich nur mehr über die *.bpg und nicht durch *.dpr Datei öffnen!

ACHTUNG:
Bei Änderungen in Forms/Code immer mit <Build ALL> kompilieren,
bei Bedarf auch im Menü: Projekt/Languages/Update Resource DLLs ausführen.

ACHTUNG:
Zur Laufzeit hartkodierte Texte ( z.B. Form1.Caption := 'SEPPL' ) werden natürlich überschrieben.
-> Abhilfe: Form1.Caption := 'SEPPL'; NACH dem Aufruf ReinitializeForms ausführen.


p.s. Ich hoffe ich habe nichts vergessen, wenn alles funkt könnte das ja einmal ein Beitrag für die Library werden. :coder: :coder:

APP 5. Mär 2004 07:42

Re: Compiling-Fehler auf Resource in integr. Übersetzungsumg
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachtrag:

Ich habe mal eine Mini-Demo beigefügt, damit man nachvollziehen kann was ich oben beschrieben habe.

Anmerkung: In der Projektanzeige muß die Datei LangDemo.exe auf ACTIVE (rechte Maus) gesetzt sein.


p.s.
Ich bin KEIN Translation Manager Spezialist (daher auch mein Kochrezept),
und denke, man soll sich gut überlegen, ob man ein mühsam erstelltes Projekt
im Nachinein noch für den Translation Manager anpassen sollte, oder ob man
andere Alternative suchen sollte.

Manchmal gibt es nicht immer logisch nachvollziehbare Probleme mit dem TM, z.b. ist mir passiert, dass
nachdem ich die *.Exe und die *.DEU/*.ENG Dateien in ein anderes Verzeichnis kopierte, dass bei der
Umschaltung von einer auf die andere Sprache "Geisterfenster" erschienen, allerdings nur einmal :gruebel:

SteffenSchm 31. Mär 2005 08:09

Re: Compiling-Fehler auf Resource in integr. Übersetzungsumg
 
Liste der Anhänge anzeigen (Anzahl: 1)
Obwohl das Thema jetzt schon ein Jahr alt ist, möchte ich die Diskussion hier doch noch einmal aufnehmen, weil ich ein ähnliches, etwas weiter führendes Problem habe:

Ich habe für mein Projekt deutsche und englische Ressourcen-dlls erstellt (zwar nicht mit dem TM, da der in meiner Delphi-Version nicht enthalten ist, aber ich glaube das ändert am Prinzip nichts). Das Programm kann mit einem Parameter aufgerufen werden, um auf deutsche oder englische Sprache der Oberfläche umzuschalten. Das Umschalten auf die gewünschte Sprache erfolgt (wie von APP beschrieben) durch LoadNewResourceModule und ReinitializeForms;.

Auf den ersten Blick scheint alles zu klappen. Als ich aber vom Programm mal eine Fehlermeldung erhielt (z.B. Gleitkommadivision durch Null) war diese auch bei englischer Programmoberfläche in deutsch obwohl ich zumindest die nach meiner Meinung wichtigen Strings (u.a. auch den oben erwähnten) übersetzt hatte.

Um das nachzuvollziehen habe ich das LangDemo von APP mal erweitert - mit dem gleichen Effekt, dass die Fehlermeldung beim Umschalten der Sprachen über LoadNewResourceModule und ReinitializeForms; nicht mit übersetzt wird.

Setze ich die Sprache aber entweder über die Systemsteuerung oder über die Registry (../Borland/Locales) dann wird auch die Fehlermeldung korrekt übersetzt.

Gibt es dafür eine Erklärung/Lösung ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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