AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Softwareentwicklung im Allgemeinen Projektplanung und -Management Dateien zum Übersetzen anbieten in welchem Format

Dateien zum Übersetzen anbieten in welchem Format

Ein Thema von Strict · begonnen am 16. Apr 2020 · letzter Beitrag vom 16. Apr 2020
Antwort Antwort
Strict

Registriert seit: 24. Mär 2020
46 Beiträge
 
#1

Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 15:40
Ein seit Jahren gewachsenes Projekt habe ich in verschiedene Sprachen übersetzt. Es gibt keine externen Sprachdateien. Alles ist einkompiliert.
Ein netter Nutzer des Programms möchte es jetzt in seine Landessprache übersetzen und hat sich dafür angeboten.

In welchem Format schicke ich denn jetzt die Dateien? Alles ist direkt in pas-Dateien vorhanden moit den Zuordnungen für jedes Formular und jeder Variablen.

Eine Idee die ich diese Nacht hatte lautet ungefähr: ich schnappe mir die Dateien mit der englischen Übersetzung, filtere jeden String raus und baue daraus eine PO-Datei.
Ein beispiel ist hier zu finden https://gist.github.com/bosskovic/5930785

Dafür brauche ich einerseits ein Tool, welches mit die PO-Datei baut und andererseits eines, was mit die Strings wieder in eine Pascal-Dummy-Datei packt.
Das könnte eine meiner Sprachdateien sein, wo alle Strings durch die msgid's ersetzt werden.

Pascal-Datei, ein absolut minimalistisches Beispiel
Delphi-Quellcode:
Programm.Caption := 'Programm v1.0 - no bugs - really!';
Programm.lblHello := 'Hello';
Ein Tool erzeugt mir daruas Dummy-Dateien
Delphi-Quellcode:
Programm.Caption := msgid:'Programm v1.0 - no bugs - really!';
Programm.lblHello := msgid:'Hello';
Noch ein weiteres filtert mir die Strings aus der eigentlichen Datei raus und erzeugt eine PO-Datei.

Und das letzte geht durch die PO-Datei und ersetzt die msgstr-Einträge (die Übersetzten strings) mit den msgid's aus der Dummy-Datei.

Geändert von Strict (16. Apr 2020 um 15:51 Uhr)
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
657 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:27
ich schnappe mir die Dateien mit der englischen Übersetzung, filtere jeden String raus und baue daraus eine PO-Datei.

Dafür brauche ich einerseits ein Tool, welches mit die PO-Datei baut und andererseits eines, was mit die Strings wieder in eine Pascal-Dummy-Datei packt.
Das könnte eine meiner Sprachdateien sein, wo alle Strings durch die msgid's ersetzt werden.
Naja, das Problem dabei ist, dass Du das jedes Mal neu machen müsstest, wenn Du einen String veränderst oder einen neuen hinzufügst.

Wenn du die Übersetzungen auf Dauer behalten willst, und evtl. auch weitere Sprachen dazukommen sollen, lohnt es sich, das richtig zu machen. Z.B. mit dxgettext.

Vorgehensweise wäre dann:
  1. Alle zu übersetzenden Strings durch Aufruf von der _()-Funktion markieren.
  2. Bei allen Formularen im Constructor einen Aufruf von TranslateComponent(Self) einbauen.
  3. Mittels dxgettext die Strings als .po-Datei extrahieren.
  4. Übersetzen lassen z.B. mit Gorm oder PoEdit.
  5. Die übersetzten .po-Dateien in .mo-Dateien compilieren.
  6. Die Übersetzungen der Delphi-Strings nicht vergessen (die liefert dxgettext zum größten Teil mit).
  7. Die .mo-Dateien im Unterverzeichnis locale\[sprachkuerzel]\lc_messages mit dem Programm ausliefern
  8. Falls man keine zusätlichen Dateien ausliefern will, kann man die .mo-Dateien auch mit einem Tool an die EXE-Datei anhängen.

Das ist eigentlich gar nicht so aufwändig wie es jetzt klingt, und zur gleichen Zeit deutlich aufwändiger als man denkt.
Thomas Mueller
  Mit Zitat antworten Zitat
Strict

Registriert seit: 24. Mär 2020
46 Beiträge
 
#3

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:34
Codeänderungen wird es leider keine geben. Das hätte ich oben als aller erstes dazuschreiben sollen. Es gibt insgesamt über 2000 Zeilen zu übersetzen pro Sprache. Dafür ist es mir den Aufwand mit dxgettext nicht wert. Lieber baue ich ein eigenes Tool, welches ich voll kontrollieren kann und das den Code durchparst, ohne dass ich erst einen Refactor brauche.
Ich kann mir aber auch nicht vorstellen was du oben meinst. Hast du ein Minimalbeispiel?

Geändert von Strict (16. Apr 2020 um 17:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.861 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:38
Ja, sowas wie die PO/MO-Dateien sind weit verbreitet und es gibt viele Editoren dafür.
Egal was du nun machst, als Format für den Austausch wären die schon nutzbar.



Das andere Minimum wäre der (alte) Weg von Delphi.

RessourceStrings
Die kann man einmal in den Ressourcen bearbeiten, auch nach dem Compilieren,
und es ist möglich Sprach-DLLs mitzuliefern, mit alternativen Sprachen.

z.B. VCL240.bpl und VCL240.de

Diese Ressourcen kann man einmal selber erstellen und dann z.B. via MSDN-Library durchsuchenLoadString laden,
oder statt Delphi-Referenz durchsuchenconst einfach Delphi-Referenz durchsuchenressourcestring verwenden. (siehe SysConst)


Die Varianten ala GNU-gettext oder Delphi-Referenz durchsuchenTLang bieten dagegen die Möglichkeit auch während der Laufzeit die Sprache zu ändern.


Sowas wie Delphi-Referenz durchsuchenTLang gab es auch mal in der VCL. (TTranslateIregendwas, oder so)
http://docwiki.embarcadero.com/RADSt...ger_in_the_IDE
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (16. Apr 2020 um 17:48 Uhr)
  Mit Zitat antworten Zitat
Strict

Registriert seit: 24. Mär 2020
46 Beiträge
 
#5

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:42
Das beantwortet die Frage aber nicht. Die Frage lautet eigentlich, in welchem Format ich die Grundübersetzung am besten weitergebe, damit darauf basierend in eine weitere Sprache übersetzt werden kann.

Geändert von Strict (16. Apr 2020 um 17:55 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
2.502 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:52
Mit .po sollten die meisten Übersetzungsbüros klarkommen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.861 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:53
Joar, das hatte ich auch garde noch nachgetragen.

Zitat:
Ja, sowas wie die PO/MO-Dateien sind weit verbreitet und es gibt viele Editoren dafür.
Egal was du nun machst, als Format für den Austausch wären die schon nutzbar.
https://wordpress.stackexchange.com/...s-localization
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Strict

Registriert seit: 24. Mär 2020
46 Beiträge
 
#8

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 17:56
Ich begebe mich mal daran einen ganz schlechten Parser zu bauen, der Strings rausfiltert und stelle den dann hier vor. Könnte aber etwas dauern.
Das scheitert bestimmt kläglich. Ob das mit RegEx einfacher ist, Strings rauszufiltern? Ich mache dafür aber ein extra Thema auf. Danke bis hierhin!

Geändert von Strict (16. Apr 2020 um 18:23 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
721 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Dateien zum Übersetzen anbieten in welchem Format

  Alt 16. Apr 2020, 22:35
Als Dateiformat für die Weitergabe von Übersetzungen ist auch das XML basierte TMX Format gebräuchlich odr auch das XML basierte XLIFF Format. TMX kann i.d.R. von Kommerziellen Programmen benutzt werden.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf