PBToolboxAI v1 ← Site

5. Sprache und Leserichtung #

← Designs · Inhalt · Übergreifende Funktionen →


Die Komponenten bringen ihre eigenen Oberflächenbeschriftungen mit: Kontextmenüs, Dialogschaltflächen, Aktionen der andockbaren Panels, Tooltips der Symbolleisten… Diese Zeichenfolgen werden von der Bibliothek übersetzt, ohne dass Sie sie liefern müssen.


5.1 Die Sprache wählen #

Die Sprache gilt prozessweit. Legen Sie sie einmalig im Anwendungsobjekt fest, bevor das erste Fenster geöffnet wird:

// open-Event des Anwendungsobjekts
PBT_SetLanguage("fr")
CodeSprache
enEnglisch (Standard)
frFranzösisch
deDeutsch
itItalienisch
esSpanisch
ptPortugiesisch

Das Wörterbuch wird vor der ersten Darstellung jeder Komponente eingespielt: Es blitzt keine englische Beschriftung auf, bevor die Übersetzung erscheint. Ein Wechsel im laufenden Betrieb ist möglich — alle geöffneten Komponenten werden sofort neu beschriftet.

// Sprachumschaltung ueber ein Menue der Anwendung
PBT_SetLanguage("de")

Eine Sprache lässt sich nicht komponentenweise einstellen: Eine Anwendung zeigt immer nur eine Sprache an. Das ist eine bewusste Entscheidung (Einheitlichkeit der Oberfläche), anders als beim Design, das lokal überschrieben werden kann.


5.2 Eine Beschriftung anpassen: of_set_translation #

Sie sind nicht an die mitgelieferten Wörterbücher gebunden. of_set_translation(Schlüssel, Text) überschreibt eine Zeichenfolge der Oberfläche, mit Vorrang vor dem Sprachwörterbuch:

// Fachvokabular: von "Bereichen" statt von "Panels" sprechen
uo_dock.of_set_translation("dock.float", "Bereich abdocken")
uo_dock.of_set_translation("dock.autohide", "Bereich ausblenden")
uo_dock.of_set_translation("dock.closePanel", "Bereich schliessen")

Zwei Anwendungsfälle:

// Eine eigene Sprache aus Ihrem Uebersetzungsbestand versorgen
uo_dock.of_set_translation("dock.float", of_traduire("DOCK_DETACHER"))
uo_dock.of_set_translation("dock.show",  of_traduire("DOCK_AFFICHER"))

Die Überschreibung wird auf der Instanz gesetzt; of_reset() hebt sie auf.

Die Schlüsselfamilien #

Die Schlüssel folgen der Form <Bereich>.<Name>. Die wichtigsten Familien:

PräfixBetrifft
dock.*Andockbare Panels: abdocken, ausblenden, schließen
toolbar.*Symbolleiste: Leiste verschieben, Überlauf
tab.*Registerkarten: schließen
tile.* · tilesbox.*Kacheln: Größen, Meldung „keine Kachel“
ribbon.*Menüband: minimieren, erweitern
mb.*Meldungsfenster: Standardschaltflächen, Kennwort anzeigen / ausblenden
webbrowser.*Webbrowser: Kontextmenü (zurück, vorwärts, neu laden)
picture.*Bild: Hinweis zum Verschieben
sb.*Statusleiste: ihr Name für Screenreader
color.*Farbauswahl: OK / Abbrechen

💡 Um den genauen Schlüssel hinter einer Beschriftung zu ermitteln, öffnen Sie die Demo-Anwendung auf Englisch und dann in einer anderen Sprache: Die Zeichenfolge, die sich ändert, stammt aus dem Wörterbuch. Die vollständige Schlüsselliste wird mit der Bibliothek ausgeliefert.


Für Sprachen, die von rechts nach links geschrieben werden (Arabisch, Hebräisch), kippt ein einziger Aufruf die gesamte Anwendung:

// open-Event des Anwendungsobjekts
PBT_SetFlowDirection("rtl")     // "ltr" ist der Standard

Was sich dadurch in allen Komponenten ändert, den heutigen wie den künftigen:

// Umschalten im laufenden Betrieb
PBT_SetFlowDirection("ltr")

Wie das Design und die Sprache wird die Leserichtung vor der ersten Darstellung eingespielt: Eine nach dem Umschalten erzeugte Komponente kommt bereits in der richtigen Richtung zur Welt.

⚠️ Die Leserichtung betrifft ausschließlich die PBToolboxAI-Komponenten. Die nativen PowerBuilder-Steuerelemente Ihrer Fenster (Eingabefelder, DataWindows) bleiben in Ihrer Verantwortung.


5.4 RTL-tauglichen Code schreiben #

Die Spiegelung erfolgt automatisch für das Layout. Für die Werte, die Sie selbst setzen, kann sie das nicht: Wenn Sie "left" fest verdrahten, steht es in beiden Leserichtungen links.

Deshalb verwenden alle Platzierungseigenschaften der Bibliothek logische und keine physischen Werte:

Logischer WertBei Schrift links → rechtsBei Schrift rechts → links
startlinksrechts
endrechtslinks

Sie werden als Konstanten bereitgestellt und sind an dem Objekt zu lesen, dem Sie den Wert zuweisen:

// Textausrichtung, Position eines Bandes...
uo_titre.is_align      = uo_titre.ALIGN_START
uo_onglets.is_position = uo_onglets.POSITION_START

Die betroffenen Familien: ALIGN_START / ALIGN_END (statictext, statusbar, picture), POSITION_START / POSITION_END (tab, dockcontainer), MARQUEE_START / MARQUEE_END (statictext).

Die alten physischen Werte "left" und "right" werden weiterhin überall akzeptiert: Ihr bestehender Code funktioniert unverändert weiter. Sie sind lediglich festgelegt — sie kippen in rtl nicht um.

Die zwei bewussten Ausnahmen #

Manche Platzierungen haben keinen „Leseanfang“: Sie bleiben physisch, und das ist Absicht.


5.5 Zusammenfassung #

EinstellungGeltungsbereichWo aufzurufen
PBT_SetLanguage (string as_lang)Gesamter Prozessopen des Anwendungsobjekts
of_set_translation (string as_clé, string as_texte)Eine InstanzNach dem Erzeugen der Komponente
PBT_SetFlowDirection (string as_sens)Gesamter Prozessopen des Anwendungsobjekts

Die drei globalen Einstellungen — Design, Sprache, Leserichtung — werden gemeinsam an derselben Stelle festgelegt:

// open-Event des Anwendungsobjekts
PBT_SetLicense(gs_titulaire, gs_cle_licence)
PBT_SetDefaultTheme("fluent-light")
PBT_SetLanguage("fr")
PBT_SetFlowDirection("ltr")
PBT_Warmup()

Open(w_principale)

← Designs · Inhalt · Übergreifende Funktionen →