Announcement

Collapse
No announcement yet.

Translation-Manager D6

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Translation-Manager D6

    Hallo,

    ich möchte heute mal ein Testprojekt zur Mehrsprachigkeit machen! hat jemand schon mal mit dem Translation-Manager von D6 gearbeitet und kann mir paar tipps in bezug auf die vorgensweise geben?
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Probier lieber mal <a href="http://dybdahl.dk/dxgettext/">GNU GetText</a> aus

    Comment


    • #3
      was ist daran besser?
      habe mir schon mal eine demo von dem ding runter geladen
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        > was ist daran besser?

        Ich finde den Ansatz einfacher zu handeln. Und du brauchst keine Enterprise-Version von Delphi

        Comment


        • #5
          hi,

          mein kollege meinte ich solle mal mit dem translation-manager das ganze machen, weil der eben bei delphi schon dabei ist!

          das sind so grob die wichtigsten schritte:
          Also man geht auf neues Projekt und legt einen Resourcen-dll-experte an.
          (das zu übersetzende Projekt muss schon geöffnet sein!)
          bei den folgenden fenstern einfach lesen und den anweisungen folgen.
          nachdem ganzen geklicke landet man ihm translation-manager.
          im register "Arbeitsbereich" sieht man dann die ausgewählten Sprachen. Bei mir Deutsch und Englisch.
          man klickt dann zum beispiel auf englisch, auf das entsprechende forumar und übersetzt dann die gewünschten strings.

          in der Projektverwaltung sieht man dann z.b. Sprache.DEU und Sprache.ENG. beide müssen compiliert werden.
          dann kann man im delphi menü "Projekt"->"Sprachen" die gewünschte Sprache aktivieren.
          Projekt nochmal compileren-> starten und funzt!!!

          was mir noch nicht ganz klar ist, wie man meldungen (z.b. showmessage) übersetzt! weiss das jemand
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            > was mir noch nicht ganz klar ist, wie man meldungen (z.b. showmessage) übersetzt!

            Du mußt die Meldungen als resourcenstrings ablegen

            Comment


            • #7
              habe ich sshon probiert:
              <pre>
              resourcestring
              Meldung1='Hallo Markus';

              implementation

              {$R *.dfm}

              procedure TForm1.btnMessage1Click(Sender: TObject);
              begin
              ShowMessage(Meldung1);
              end;
              </pre>

              bei showmessage wird nun gar kein text angezeigt und im translationmanager wird Meldung1 auch nicht angezeigt!
              was mache ich falsch?

              gruß

              marku
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                1. Der Translation-Manager taugt erst ab Delphi 7 was.
                2. Es wird eine Enterprise Lizenz benötigt
                3. Wie kommen die Texte zum Übersetzer und wieder zurück?
                4. Immer mit resourcestring arbeiten!
                Z.B.:
                resourcestring
                rcMeldung1= 'Hallo %s';
                5. und dann: ShowMessage(Format(rcMeldung1, ['Markus']));
                6. Nicht gut: ShowMessage(rcHallo + 'Markus');
                7. Daran denken, daß z.B. franz. und spanisch bedeutend mehr Platz auf dem Formular benötigt wird.
                8. Bei Labels die Eigenschaft AutoSize = true setzen.
                9. Vorteil Translation-Manager: Formulare können für jede Sprache andere Größen und Farben haben.
                10. Umschalten der Sprache erfolgt indem in die Registry "'HKEY_CURRENT_USER\SOFTWARE\BORLAND\LOCALES\" der Sprachcode eingetragen wird. Daran denken, daß bei Installation und Deinstallation alles sauber eingetragen und ausgetragen wird, auch wenn die Anwendung mit normalen Userrechten laufen soll.
                11. Wurde bei der DB-Architektur an die Mehrsprachigkeit gedacht?
                12. Fazit: Mehrsprachigkeit kann sehr anspruchvoll sein!

                Falls es sich um eine Datenbankanwendung handelt, dann ggf. einfach eine Tabelle anlegen mit den Spalten ID, DEU, ENU, usw.
                In der Anwendung die Texte über die eindeutige ID in die Anwendung laden

                Comment


                • #9
                  hallo dietmar,

                  vielen dank für deinen ausführlichen beitrag!
                  das mit resourcestring habe ich gemacht habe aber erst gerade eben gepeilt, dass es im translation-manager bei resourcen-Scripts drin steht! war etwas unübersichtlich! die neuen Strings standen halt mittendrin!

                  warum ist bei 5. das "Format" so wichtig?

                  noch ne andere frage!
                  wie hast du das mit den strings für die ganzen meldungen gemacht! immer in der entsprechenden unit wo die meldungen kommen, die resourcenstrings definiert oder in einem extra-unit?
                  bitte antwort mit begründung!

                  gruß und danke!

                  marku
                  Herzliche Grüße

                  Markus Lemcke
                  barrierefreies Webdesign

                  Comment


                  • #10
                    warum ist bei 5. das "Format" so wichtig?
                    Re: Beispiel:
                    In deutsch: "%s-Datei existiert nicht."
                    In spanisch: "El archivo %s no existe."
                    oder
                    In deutsch: "Ihre Bestellung wird in der im Anhang befindlichen Datei "%s.txt" aufgelistet."
                    In englisch: "Your order is listed in the file "%s.txt" to be found in the appendix."
                    In niederländisch: "uw bestelling wordt in het bijgevoegde voorhanden bestand "%s.txt" opgenomen."

                    Die Formatbezeichner %s,%d,usw. befinden sich an verschiedenen Stellen. Würdest Du schreiben: showmessage(rcBestellungAngang + '"' + Dateiname + '.txt"' + rcaufgelistet)", dann läßt sich soetwas nicht übersetzen. Deshalb showmessage(Format(rcBestellungAngang, [Dateiname]))

                    ------------------
                    wie hast du das mit den strings für die ganzen meldungen gemacht! immer in der entsprechenden unit wo die meldungen kommen, die resourcenstrings definiert oder in einem extra-unit?

                    Re: Extra-Unit, die von sämtlichen Programmen genutzt wird:
                    Wenn Du vor jeder Zeile resourcestring davorschreibst, dann bindet der Delphi-Linker nur die resourcestrings in die EXE, die auch verwendet werden.

                    Beispiel:
                    resourcestring rcDatenSindAktuell =
                    'Daten sind aktuell, keine Datenübertragung notwendig.';

                    resourcestring rcDerVorgangWirdAbgebrochen =
                    'Der Vorgang wird abgebrochen.';

                    resourcestring rcBitteWaehlenSieEinenOrdner =
                    'Bitte wählen Sie einen Ordner:';

                    ------------------
                    Nach Möglichkeit "&" in den Strings für den Tastencode vermeiden, sondern bei TMenu die Eigenschaft AutoHotKeys = maAutomatic setzen:
                    resourcestring rcWeiter = '&Weiter'; // falsch
                    resourcestring rcWeiter = 'Weiter'; // richtig, AutoHotKeys = maAutomatic

                    ------------------
                    Ob ich nochmals auf Translation-Manager setzen würden, kann ich nicht mit einem eindeutigen JA beantworten!
                    Nehme Dir die Zeit, um verschiedene Techniken auszuprobieren.
                    Das ganze ist nicht trivial! Wenn mehrere Programmierer an verschiedenen Programmen arbeiten, dann wird es noch schwieriger, denn es soll für den gleichen Sachverhalt auch immer der gleiche übersetzte Text verwendet werden

                    Comment


                    • #11
                      hallo dietmar!

                      vielen, vielen dank für deine ausführliche antwort!
                      in der delphi-hilfe habe ich noch was von einem wörtberbuch gelesen. ich hatte es auch schon offen, aber wie es verwendet wird ist mir noch nicht so ganz klar!
                      könntest du das auch noch kurz erklären?

                      vielen dank!

                      Marku
                      Herzliche Grüße

                      Markus Lemcke
                      barrierefreies Webdesign

                      Comment


                      • #12
                        Das Wörterbuch kann über das Mainmenü Tools in Delphi aufgerufen werden. In einem Team sollten sämtliche Programmierer das gleiche Wörterbuch verwenden. In dem Wörterbuch werden die übersetzten Texte verwaltet. Für den Datenaustausch gibt es eine XML-Schnittstelle.
                        Für weitere Infos rufe bitte das Wörterbuch auf und klicke auf Hilfe.
                        Da das Wörterbuch scheinbar immer komplett in den Speicher geladen wird, muß der Entwicklerrechner "gut" ausgestattet sein, z.B. Haupspeicher größer gleich 1 GByte

                        Comment


                        • #13
                          Du schreibst, daß Du mit Delphi 6 arbeitest. Der Grund warum wir vor Jahren von Delphi 5 auf Delphi 7 geupdatet haben, ist, daß der Translation-Manager unter Delphi 5 nur etwas für Programmierer ist, die nicht zu Bluthochdruck neigen. Unter Delphi 5 konnte es schon mal passieren, daß ein Projekt zerschossen wurde und man wieder von vorne beginnen mußte:-). Ansonsten war Delphi 5 nicht das schlechteste Delphi.
                          Für Delphi 6 habe ich keine Erfahrungen

                          Comment


                          • #14
                            Ich glaube, wenn man die Eintragungen zum Thema Delphi 6 und Translation-Manager hier im Forum verfolgt, dann kann man behaupten, daß auch diese Kombination nur etwas für Programmierer ist, die nicht zu Bluthochdruck neigen :-

                            Comment


                            • #15
                              sehe ich gnauso! *schlapplach*!!
                              Herzliche Grüße

                              Markus Lemcke
                              barrierefreies Webdesign

                              Comment

                              Working...
                              X