Translator
Was ist der Translator?
Der Translator ist in erster Linie ein Werkzeug zur Erleichterung der Pflege der Anwendung selbst, bietet aber auch Anpassungsmöglichkeiten.
Wie Sie wahrscheinlich wissen, ist die Structorizer-GUI in verschiedenen Sprachen verfügbar. Das kleine Entwicklerteam ist jedoch nur in der Lage, etwa drei Übersetzungen aktuell zu halten: Englisch, Deutsch und Spanisch. Benutzer haben gelegentlich mit den anderen verfügbaren Sprachen geholfen (wofür wir sehr dankbar sind!).
Aber auch Sie können helfen! Mit einem Verständnis der betreffenden Konzepte und der Beherrschung einer (oder mehrerer) der ebenfalls vernachlässigten Sprachen sind Sie eingeladen, dabei zu helfen, die anderen Lokalisierungen konsistent und aktuell zu halten. Sogar kleine Schritte zur Verbesserung der Übersetzungen sind willkommen. Wir versprechen: Sie werden nicht für fehlende Übersetzungen oder Tippfehler oder ähnliches verantwortlich gemacht. Diese werden beim nächsten Mal einfach korrigiert.
Um die Beiträge der Benutzer zu erleichtern, integriert Structorizer eine Komponente namens „Translator" in seine GUI. Sie ermöglicht eine einfache Bearbeitung der verschiedenen Übersetzungssätze. Die Übersetzungen können gespeichert, neu geladen und fortgesetzt werden. Nicht zuletzt können Sie sogar eine Vorschau Ihrer aktuellen Übersetzung in Ihrer lokalen Structorizer-Instanz auslösen, was das Testen wesentlich benutzerfreundlicher macht als zuvor.
Der Translator kann über den Menüpunkt „Translator ..." im Menü „File" von Structorizer geöffnet werden:

Wie funktioniert der Translator?
Die Translator-GUI enthält eine Symbolleiste und eine Tabellen-Ansicht mit Registerkarten.
Die Symbolleiste besteht aus Sprachschaltflächen (jede mit einer Flagge), einer Fragezeichen-Schaltfläche, einer Vorschau-Schaltfläche (mit einem Augensymbol) und einer Schaltfläche zum Speichern einer bearbeiteten Übersetzung in eine Datei.
Die Tabellenansicht ist anfangs leer und zeigt nur die Meldung „Please load a language!" (Bitte eine Sprache laden!):

Durch Drücken einer der Flaggen-Schaltflächen wählen und laden Sie ein bereits unterstütztes Gebietsschema. Um eine neue Übersetzung zu erstellen, klicken Sie auf die Schaltfläche mit dem Fragezeichen.
Wenn Sie beim Klicken auf eine Sprachschaltfläche die Shift-Taste gedrückt halten, können Sie anstelle des aktuell installierten Gebietsschemas eine zuvor gespeicherte lokale Übersetzungsdatei laden. Ab Version 3.30-16 ändern sich die Symbole der Gebietsschemata-Schaltflächen vorübergehend (kleine Ordnersymbole erscheinen über den Flaggen), während Sie die Shift-Taste gedrückt halten, um den geänderten Modus anzuzeigen:

Außerdem gibt es ein Kontextmenü für jede Sprachschaltfläche (einschließlich der Fragezeichen-Schaltfläche), das die verschiedenen schaltflächenbezogenen Lade-/Speicheroptionen anbietet:

Warum gibt es keine einzelne Lade-Schaltfläche? Es hätte eine geben können, aber die Idee ist, die gebietsschemaspezifische Schaltfläche zu verwenden, weil dadurch ein Vergleich des Produkt-Gebietsschemas mit der geänderten Datei möglich ist – alle Unterschiede werden hervorgehoben. Bei völlig neuen Sprachprojekten macht es natürlich keinen Sinn, alle Unterschiede zu einer anderen Sprache hervorzuheben. Daher bietet die Schaltfläche „Neues Gebietsschema erstellen" nun auch die Möglichkeit, eine begonnene Übersetzungsdatei zu laden, ohne alle Einträge hervorzuheben. Nur die Änderungen gegenüber dem beim Laden vorhandenen Inhalt werden nachverfolgt, was am sinnvollsten ist.
Sie können jederzeit frei zu einer anderen Sprache wechseln, um andere Übersetzungen zu prüfen oder zu vergleichen, ohne Ihre Änderungen zu verlieren.

Jetzt werden Ihnen die Übersetzungsinhalte in mehreren durch Registerkarten auswählbaren Kapiteln präsentiert:
- Header (stellt den Sprachdatei-Header mit erklärenden Kommentaren und Änderungshistorie dar);
- Structorizer (Übersetzungen für die Kern-Produkt-GUI);
- Arranger (Übersetzungen für die GUI der Arranger-Komponente);
- Executor (Übersetzungen für die GUI der Executor-Komponente);
- DiagramController (Übersetzungen für diagrammsteuerbare Module wie den Turtleizer);
- Elements (optionale Lokalisierung der Elementtypnamen, siehe auch Element Names Preferences);
- Keywords (optionale Lokalisierung der Parser Preferences).
Jede der Registerkarten (außer der Header-Registerkarte) zeigt eine scrollbare Tabelle mit drei Textspalten (plus einer vierten Spalte mit Aufklappschaltflächen):
- Schlüsselstring (durch Punkte getrennte hierarchische Folge von Komponentenbezeichnern oder Nummern, möglicherweise gefolgt von einer Bedingung in Klammern);
- Englische Beschriftung oder Text (soweit vorhanden);
- Übersetzung in der ausgewählten Sprache (soweit vorhanden) — diese dritte Spalte ist die einzige editierbare.
Durch Doppelklick auf die Zelle in der dritten Spalte können Sie deren Inhalt bearbeiten.

Hervorhebungsfarben
Der Translator hebt hervor, welche Arbeit bereits erledigt wurde (d. h. alle Unterschiede gegenüber dem mit der Produktversion gelieferten Gebietsschema) und welche Übersetzungen noch fehlen:
- Cyanfarbene Zeilen mit einem String in „
-----[" und „]-----" stellen einen Abschnittsnamen dar und können nicht bearbeitet werden. - Fehlende Übersetzungen in bearbeitbaren Zeilen sind orange hervorgehoben.
- Hinzugefügte oder geänderte Übersetzungen gegenüber dem gelieferten Gebietsschema sind grün hervorgehoben (nur in der letzten Spalte).
- Wenn eine Übersetzung gelöscht wurde (im Vergleich zum gelieferten Gebietsschema), wird der betreffende Eintrag rot hervorgehoben (nur in der letzten Spalte).
Änderungen werden zwischengespeichert, aber nicht automatisch in einer Datei gespeichert. Sobald ein Sprachsatz mindestens eine Änderung enthält, zeigt die jeweilige Sprachschaltfläche einen grünen Hintergrund, um auf nicht gespeicherte Änderungen hinzuweisen.
Filtern (ab Version 3.31-03)
Ab Version 3.31-03 finden Sie eine Gruppe von drei Optionsfeldern zum Filtern unterhalb der Gebietsschemata-Schaltflächen, über den Abschnitt-Registerkarten:
- Alle Zeilen anzeigen
- Nur fehlende Übersetzungen
- Fehlende und geänderte Übersetzungen
Die Optionsfeldgruppe ermöglicht es, die dargestellten Zeilen auf diejenigen einzuschränken, die für das aktuell ausgewählte Gebietsschema noch leer sind (oder die leeren plus alle geänderten). Dies ermöglicht die effiziente Vervollständigung einer Übersetzung, ohne durch große Tabellen scrollen zu müssen. Abschnitts-Header sind jedoch immer sichtbar.

Beachten Sie, dass ein aktiver Filter auch den Suchbereich beeinflusst (siehe unten). Beim Wechsel des Gebietsschemas wird der Filter zurückgesetzt (→ „Alle Zeilen anzeigen").
Platzhalter
Beachten Sie die Platzhalter in den Texten. Diese sollen zur Laufzeit durch variable Strings ersetzt werden. Es gibt drei Arten von Platzhaltern:
- Gewöhnliche, die mit einem Prozentzeichen beginnen:
%,%1,%2usw.; - Elementnamen-Platzhalter, die mit
@beginnen und von einem einzelnen Kleinbuchstaben oder einem internen Elementklassenname in geschweiften Klammern gefolgt werden:@a,@b,@{For}; - Indizierte Platzhalter
[#], die durch den aktuellen Index für Array-Ziele ersetzt werden sollen.
Wenn Platzhalter dieser Art im englischen Mastertext erscheinen, sollten sie auch an geeigneten Positionen (entsprechend den grammatikalischen Anforderungen) in die jeweiligen Übersetzungstexte eingefügt werden.
Suchen
Sie können in der aktuell angezeigten Tabelle nach einem bestimmten Teilstring suchen (seit Version 3.27-04). Der „Find"-Dialog wird durch Drücken der Tastenkombination StrgF geöffnet:

Die Verwendung des Suchdialogs ist recht einfach: Geben Sie den gesuchten Teilstring ein, wählen Sie die Spaltennummern (bezüglich der aktuell angezeigten Tabelle), auf die Sie die Suche beschränken möchten, entscheiden Sie, ob die Suche die Groß-/Kleinschreibung berücksichtigen soll, und drücken Sie die Aufwärts- oder Abwärts-Schaltfläche. Dann wird zur vorherigen oder nächsten Zeile mit dem angegebenen Teilstring gesprungen. Dies hilft Ihnen, die Konsistenz der Übersetzung zu wahren.
Hinweis: Wenn eine Zeilenfilterung aktiv ist (ab Version 3.31-03), werden nur die sichtbaren Zeilen durchsucht. Wechseln Sie vor der Suche auf „Alle Zeilen anzeigen", wenn alle Einträge der aktuellen Tabelle durchsucht werden sollen.
Übersetzungen speichern
Um die Übersetzungen einer Sprache einschließlich aller zwischengespeicherten Änderungen in eine Datei zu speichern, stellen Sie sicher, dass die jeweilige Sprache ausgewählt ist, und drücken Sie dann die Speichern-Schaltfläche (das übliche Diskettensymbol, die am weitesten rechts gelegene Schaltfläche in der Symbolleiste). Ein Dateiauswahldialog erscheint und ermöglicht die Auswahl eines Zielordners. Wenn Sie Änderungen für mehrere Sprachen vorgenommen haben, muss jede Übersetzungsdatei separat gespeichert werden.
Nach dem Speichern der Änderungen kehrt die Farbe der zugehörigen Sprachschaltfläche nicht zur Standardfarbe zurück, sondern wird blassgrün, um anzuzeigen, dass alle Änderungen weiterhin zwischengespeichert sind. Neue Änderungen setzen die Schaltflächenfarbe dann wieder auf gesättigtes Grün.

Übersetzungsdateien laden
Sie können gespeicherte Übersetzungsdateien für ein Gebietsschema in den Translator laden, um mit dem Ergebnis einer früheren Sitzung fortzufahren. Halten Sie dazu die Shift-Taste gedrückt und klicken Sie auf die entsprechende Sprachschaltfläche. Ein Dateiauswahldialog ermöglicht die Auswahl einer Übersetzungsdatei

Verwendung einer individuellen Übersetzung
Beachten Sie auch, dass das Speichern einer Übersetzungsdatei nicht bedeutet, dass Ihre lokale Structorizer-Installation Ihre geänderten Übersetzungen von nun an automatisch verwendet! Sie können Structorizer jedoch explizit zwingen, eine geänderte Sprachdatei zu verwenden, indem Sie den Menüpunkt „From file ..." in den Language Preferences wählen: Der Pfad der geladenen Datei würde sogar in der structorizer.ini-Datei beibehalten und daher beim nächsten Start automatisch neu geladen werden – bis Sie eine andere Sprache auswählen.
Wie in der Einleitung dargelegt, ist das Translator-Werkzeug jedoch hauptsächlich dazu gedacht, die Wartung und Benutzbarkeitverbesserung des Structorizer-Produkts zu erleichtern. Das Beste, was Sie tun können, ist, eine fertige Übersetzungsdatei einzusenden, nachdem Sie sie mit dem Vorschau-Werkzeug getestet haben.
Übersetzungsvorschau
Um die Änderungen im aktuell laufenden Structorizer in einer Vorschau zu sehen, drücken Sie die Augensymbol-Schaltfläche in der Symbolleiste. Die Structorizer-GUI wird sofort mit Ihrem Gebietsschema neu übersetzt. Im Structorizer-Menü „Language Preferences" wird diese Situation wie folgt angezeigt (seit Version 3.30-13):

Die Vorschau kann im Translator selbst nicht deaktiviert werden. Wählen Sie stattdessen ein reguläres Gebietsschema im Menü Language Preferences von Structorizer. Alternativ können Sie im Translator zu einer anderen Sprache wechseln und die Vorschau-Schaltfläche erneut drücken (was tatsächlich eine andere Vorschau ist).
Translator-Zeileneditor (ab Version 3.29-11)

Die Schaltfläche in der letzten Tabellenspalte öffnet einen Übersetzungseditor für die ausgewählte Tabellenzeile. Dieser zeigt den Schlüssel (und mögliche Bedingungen in einer Tabelle zur besseren Lesbarkeit), einen Textbereich mit dem englischen Standardtext (aus der zweiten Spalte), einen Textbereich mit dem übersetzten Text für das aktuell ausgewählte Gebietsschema und einen dritten Textbereich, in dem der jeweilige Text eines auswählbaren Vergleichsgebietsschemas dargestellt werden kann:

Das Kontrollkästchen „Wrap Lines" ermöglicht das Umschalten zwischen symbolischen Zeilenumbrüchen (Escape-Zeichenfolge „\n") und echten Zeilenumbrüchen.

Über das Aufklappelement „?" zwischen dem zweiten und dritten Textbereich können Sie eine dritte Sprache als Referenzübersetzung auswählen:

Die Schaltfläche „Elements" öffnet ein Fenster, das die verfügbaren Elementtypnamen-Platzhalter in Kurz- und Langform sowie die entsprechenden Übersetzungen

Mit der Umschaltschaltfläche „Preview" können Sie die Elementtypnamen-Platzhalter in den aktuell dargestellten Texten durch die jeweiligen Elementnamen-Lokalisierungen ersetzen lassen, bis Sie sie erneut drücken:


Undo/Redo-Stapel wurden im Textbereich nicht implementiert, aber Sie können alle aktuellen Änderungen ohne Verlassen des Dialogs durch Drücken der Schaltfläche „Reset" rückgängig machen. Dieselbe Wirkung hat die Schaltfläche „Cancel", die den Dialog aber auch schließt. Die Schaltfläche „OK" übernimmt schließlich Ihre Änderungen und kopiert die resultierende Übersetzung in die zugehörige Tabellenzeile, bevor der Dialog geschlossen wird.