Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Realisierung von Mehrsprachigkeit (https://www.delphipraxis.net/82336-realisierung-von-mehrsprachigkeit.html)

OldGrumpy 11. Dez 2006 19:58

Re: Realisierung von Mehrsprachigkeit
 
Zitat:

Zitat von xZise
Ich besitzte Turbo Delphi Exporer ;) d.h. ich kann keine Fremdpackges installieren (was ja im 2. Fall 100% so ist (und im 1. scheint es auch so.)).

Aber ich guck mir mal den 1. Fall nochmal an.

PS: Ich weiß ;) Ich könnte es auch dynamisch erstellen, aber ich möchte iegtnlich nicht darauf verzichten.

Red ich eigentlich Kisuaheli oder sowas? Da ist keine Komponente zu installieren, zefixnochamol :mrgreen:

xZise 11. Dez 2006 20:07

Re: Realisierung von Mehrsprachigkeit
 
Ach das wolltest du sagen Grumpy ;)

Ne im ernst ;) Ich habe zuerst befürtchtet, ich müsse eine Kombosammlung installieren. Sry, aber es scheint zu gehen.
Ich muss nur mal damit klarkommen ;) weil z.Zt. stört mich der Pfad ein wenig :D

PS: thx wegen den Third-Party-Komponeten :stupid:

OldGrumpy 11. Dez 2006 20:47

Re: Realisierung von Mehrsprachigkeit
 
Der Pfad ist ja praktisch nur während der Entwicklung relevant, du kannst die Übersetzungen später in die Exe einbetten und fertig. Eine Exe, alle Sprachen - automatisch oder auf Knopfdruck.

xZise 11. Dez 2006 20:58

Re: Realisierung von Mehrsprachigkeit
 
Zitat:

Zitat von OldGrumpy
Der Pfad ist ja praktisch nur während der Entwicklung relevant, du kannst die Übersetzungen später in die Exe einbetten und fertig. Eine Exe, alle Sprachen - automatisch oder auf Knopfdruck.

Geschieht dies automatisch? Oder muss ich das über Ressourcen erledigen.

OldGrumpy 11. Dez 2006 21:01

Re: Realisierung von Mehrsprachigkeit
 
Unter Windows dank Explorer-Integration nur ein Rechtsklick auf die Exe und Auswahl des Menüpunktes "Embed translations". Geht natuerlich auch kommandozeilenbasiert über das entsprechende Tool im dxgettext-Paket. Steht alles im Handbuch.

xZise 12. Dez 2006 15:17

Re: Realisierung von Mehrsprachigkeit
 
Ok... Nun habe ich ein ganz anderes Problem. Ich meine es soweit zu verstanden zu haben, aber...
Ich kann keine po-Datei erstellen (mit poEdit), und ich kann die auch nicht mit "msginit.exe" weil "name.pot" fehlt :(

PS: poEdit-Fehlermsg:
Zitat:

---------------------------
Poedit Fehler
---------------------------
poEdit hat keine Dateien in den verarbeiteten Verzeichnissen gefunden.
---------------------------
OK
---------------------------
(Also mir sagt die Msg nichts)

OldGrumpy 12. Dez 2006 19:27

Re: Realisierung von Mehrsprachigkeit
 
Zuerstmal musst Du im Explorer einen Rechtsklick auf Dein Projektverzeichnis machen und den Punkt "Extract translations to template" anwählen. Die Optionen dann noch richtig einstellen (wie, hängt von Deinen Projekteinstellungen und auch nen bissl vom Geschmack ab) und dann die erzeugte Datei in den passenden Pfad speichern. Also mit locale usw. - Dieses File öffnest Du dann mit poEdit und bearbeitest die Texte da drin.

Bevor Du das File dann speichern kannst, musst Du in poEdit im Menü unter Catalog, Settings die Standardwerte für das Translationfile (also Dummywerte) mit den korrekten Infos überschreiben. Das ist ein Sicherheitsmechanismus damit man nicht mehrere Übersetzungsdateien durcheinanderwerfen kann. Entgegen der Dokumentation erstellt poEdit übrigens mit den Standardeinstellungen das zugehörige *.mo automatisch.

Nun kannst Du die Exe starten (die übersetzten Texte sollten nun automatisch erscheinen sofern Du nach Handbuch vorgegangen bist) zum Testen. Wenn alle Texte sitzen, kannst Du mit Rechtsklick auf die Exe die Texte in die Exe einbetten.

Ich gebe zu, die ersten Schritte mit dxgettext sind etwas holperig, wenn man aber erstmal eine gewisse Routine entwickelt hat, geht einem das sehr einfach von der Hand, zumal ja die meisten Sachen automatisch gehen.
Delphi-Quellcode:
Form.Caption:=_('Text');
ist fast so schnell geschrieben wie
Delphi-Quellcode:
Form.Caption:='Text';
und alle grafischen Komponenten lassen sich bis auf wenige Ausnahmen (auch hier siehe Handbuch) ja mit TranslateComponent(self) mit einem Handschlag lokalisieren.

xZise 12. Dez 2006 22:03

Re: Realisierung von Mehrsprachigkeit
 
Wow!
Das ist ja ein heftiges Teil :P

Nur habe ich jetzt ein richtig dummes Problem mit den .po-Dateien :(

Ich krieg da nicht neue Einträge hinzu (z.B. für Messages) :(

OldGrumpy 13. Dez 2006 01:17

Re: Realisierung von Mehrsprachigkeit
 
Die neuen Einträge erzeugst Du ja schon allein dadurch, dass Du im Programm eine entsprechende Referenz anbringst. Du musst danach nur erneut die Translations extrahieren und die beiden po-Files mergen. Das steht aber auch alles im Handbuch und im Tutorial :)

Kleines Beispiel:

Alte Programmversion:

Delphi-Quellcode:
Form1.Caption:=_('Erster Text');
Wenn Du hierfür die Übersetzungen extrahierst, hast Du einen Eintrag im po-File. Wenn nun noch Code dazukommt:

Delphi-Quellcode:
Form1.Caption:=_('Erster Text');
Form2.Caption:=_('Zweiter Text');
...musst Du erneut die Übersetzungen extrahieren, dabei kommt ein po-File mit zwei Texten heraus. Die bereits existierende Übersetzung für den ersten Text kannst Du jetzt mit dem Mergetool in das neue po-File übernehmen. Die Syntax suchst Du Dir jetzt aber bitte selber raus, ist schon spät :)

Nach dem gleichen Muster gehst Du auch vor, wenn sich ein Text ändert. Die restlichen Texte musst Du nicht auch noch neu übersetzen, sondern kannst einfach die beiden Übersetzungen mergen, und nur die neuen Texte müssen übersetzt werden.

xZise 13. Dez 2006 14:23

Re: Realisierung von Mehrsprachigkeit
 
Also das dies hinzugefügt wird ist gut soweit...
NUR... Erkennt er keine TTreeViews ;) Und dementsprechend keine Einträge darin...
Werde es wohl "Hardcore" machen müssen (also .po mit Editor öffnen und selber hinzufügen)...

Und wehe es gibt eine Möglichkeit Einträge hinzuzufügen, und die stehen in dem HB :P

PS: Handbuch = Docs?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Seite 2 von 3     12 3      

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