Elementnamen
Das Problem
Die algorithmischen Standardelemente, aus denen jedes Nassi-Shneiderman-Diagramm besteht, werden an vielen Stellen der grafischen Benutzeroberfläche (GUI) von Structorizer referenziert: in Menüs, Dialogen und Meldungen. Die Elemente müssen natürlich irgendwie benannt werden. Diese Namen unterliegen der Lokalisierung, d. h. für jede gewählte Sprache gibt es in der Regel einen anderen Satz von Bezeichnungen. Die Lokalisierung ist nicht immer vollständig, wirkt manchmal unnatürlich, ist nicht notwendigerweise eindeutig und manchmal nicht einmal konsistent. Zudem ist sie nicht immer willkommen. Viele Benutzer fühlen sich mit den vertrauten englischen Konzepten wohler.
Mithilfe des Werkzeugs Translator könnten Sie natürlich eine individuelle Übersetzungsdatei von der jeweiligen mit Structorizer mitgelieferten Locale ableiten. Aber das ist mühsam, nicht nur wegen der vielen Vorkommen von Elementnamen in den Locale-Dateien. Eine zusätzliche Komplikation besteht darin: Während generell jeder Vervollständigungsvorschlag an die Entwickler (insbesondere für jene Locales, die hinter der funktionalen Weiterentwicklung von Structorizer zurückgeblieben sind) sehr willkommen ist, kann dies in diesem speziellen Bereich der Elementnamen wenig hilfreich sein, da dort Konflikte wahrscheinlich sind.
Die Lösung
Structorizer bietet Ihnen nun an, Ihre bevorzugte Benennung von Elementtypen auf einfachere und nachhaltigere Weise zu konfigurieren (seit Version 3.27-04). Solche individuell angegebenen Bezeichnungen überschreiben die lokalisierten Namen aus der Locale, unabhängig von der gewählten Sprache.
Um Ihren individuellen Bezeichnungssatz zu konfigurieren, wählen Sie den Menüpunkt „Preferences › Element names ..." (Präferenzen › Elementnamen ...):

Dieser Menüpunkt öffnet den Dialog „Element Names Preferences" (Elementnamen-Präferenzen, siehe folgenden Screenshot). In der linken Spalte werden die lokalisierten Namen der Elementtypen und -varianten gemäß der aktuell gewählten Sprache aufgelistet. In der rechten Spalte befindet sich für jeden ein Textfeld, in das Sie Ihren bevorzugten Namen eingeben können. Sie können einige Felder leer lassen, in diesem Fall wird der jeweilige Name auf der linken Seite nicht überschrieben (beachten Sie jedoch, dass dies für jede gewählte Sprache gilt):

Die Textfelder sind nur bearbeitbar, wenn das Kontrollkästchen „Enable the configured labels" (Konfigurierte Bezeichnungen aktivieren) ausgewählt ist. Der zweite Effekt dieses Kontrollkästchens ist, dass es die tatsächliche Namensersetzung in den GUI-Texten aktiviert (oder bei Deaktivierung deaktiviert). Die folgenden Screenshots eines Menüs und eines Dialogs zeigen den Effekt des obigen Beispiels (nachdem die konfigurierten Elementbezeichnungen aktiviert wurden):


Wenn Sie die konfigurierten Bezeichnungen deaktivieren (Kontrollkästchen „Enable the configured labels" deaktivieren), gehen die angegebenen Namen nicht verloren, sondern bleiben inaktiv erhalten, sodass die Ersetzung jederzeit wieder aktiviert werden kann.
Damit ahnungslose Benutzer nicht irritiert werden, wird das Kontrollkästchen automatisch deaktiviert, wenn Sie die Locale wechseln (d. h. über das Menü „Preferences › Language" auf eine andere Sprache umschalten). Sobald Sie den Modus jedoch wieder einschalten, werden die Ersetzungen sofort wirksam, unabhängig von der gewählten Sprache. (Dies gilt nicht uneingeschränkt, da einige Locale-Dateien noch nicht auf diese Funktion vorbereitet wurden.)
Seit Version 3.29-11 befüllt eine Schaltfläche am unteren Rand des Dialogs „Element Name Preferences" die standardmäßigen englischen Elementtypnamen (d. h. die englischen Bezeichnungen der algorithmischen Strukturen), wenn sie gedrückt wird:

Auf diese Weise zeigt die grafische Benutzeroberfläche immer die (international verständlichen) englischen Namen, unabhängig von der gewählten Locale. Sie müssen jedoch nach einem Locale-Wechsel das Kontrollkästchen noch immer einschalten (siehe vorheriger Absatz).
Der Mechanismus
Um das oben beschriebene Verhalten zu erreichen, wurde der Meldungsabrufmechanismus in einer Weise modifiziert, die die Bezeichnung von Elementen teilweise von der restlichen Locale entkoppelt. Daher wurde ein neuer Platzhalter-Mechanismus implementiert, bei dem Textübersetzungen Elementnamen nicht mehr direkt enthalten sollen, sondern nur spezifische Markierungen, die durch die aktuell gültigen Namen für den jeweiligen Elementtyp ersetzt werden. Diese Platzhalter beginnen mit einem '@'-Zeichen und können in Kurz- oder Langform vorliegen. In der Kurzform folgt nur ein Kleinbuchstabe, während in der Langform der nachfolgende Schlüssel ein interner Elementklassenname ist, der in geschweifte Klammern eingeschlossen ist.
In den folgenden Translator-Screenshots verwenden zwei Locale-Dateien (die englische und die spanische) die Kurzform, während die französische Locale die Langform verwendet:


Die lokalisierten Elementnamen selbst sind nun in einem separaten Abschnitt/einer separaten Registerkarte der Locale-Datei konzentriert, anstatt redundant über die Meldungen verstreut zu sein:

Der Kommentarabschnitt in den Sprachdatei-Headern enthält eine erklärende Legende:

Die benutzerspezifizierten Elementnamen verwenden denselben Platzhalter-Mechanismus, werden jedoch nicht in den Locale-Dateien, sondern in der Datei structorizer.ini im Home-Verzeichnis des Benutzers gespeichert.
Zusammenfassung: Wenn eine Meldung einen Elementnamen-Platzhalter (@...) enthält, wird eine dreistufige Ersetzungsrichtlinie angewendet:
- Wenn benutzerdefinierte Elementbezeichnung aktiviert ist (siehe oben) und das Namensfeld für den jeweiligen Elementtyp ausgefüllt ist, ersetzt diese Bezeichnung den Platzhalter.
- Andernfalls wird der Elementtypname aus der Locale-Datei eingefügt (sofern angegeben).
- Wenn weder ein benutzerkonfigurierter noch ein lokalisierter Name verfügbar ist, wird der Name aus der englischen Produkt-Locale verwendet (Fallback).