Skip to main content
Skip table of contents

Translations

Das Be-Portal unterstützt die Definition von Übersetzungen. Entweder direkt als Objekt in der be_package.install.yaml oder in separaten translations.yaml dateien.

Ein Übersetzungseintrag hat die folgenden Felder

key

identifier der Übersetzung

usage?

(optional) - Hinweistext, bei Anzeige auf Übersichtsseite

und darüberhinaus werden die eigentlichen Übersetzungen als Werte von ISO 2-letter codes definiert.

Beispiele

Insgesamt als

YAML
    - key: invoice
      usage: Zur Nutzung an allen Stellen wo Rechnung als Begriff dargestellt wird
      de: Eingangsrechnung
      en: Invoice
      fr: Facture

de und en sind bei der Definition verpflichtend.

Die Übersetzungen können zudem Platzhalter verwenden

YAML
    - key: customerSelected
      usage: Anzeige nach Kundenauswahl mit dynamischer ID
      de: Kunde mit ID {{id}} ist ausgewählt
      en: Customer with ID {{id}} is selected
      fr: Client avec ID {{id}} est sélectionné

Benutzung der Translations

Aktuell (7.7.0) sind Übersetzungen für Menüeinträge, Commands & Pages implementiert

Anstelle eines statischen Strings kann im YAML der Ausdruck ${PKG.translationKey} verwendet. Diese Einträge werden dann gemäß der definierten Übersetzungen ersetzt. Existiert für eine Sprache kein Eintrag, wird als Fallback Deutsch verwendet.

Beispiel

YAML
  commands:
    - name: someCommand
      label: ${PKG.toBeTranslated}

Parameterverwendung in Pages

Falls Übersetzungen Platzhalter enthalten, können diese in Pages ebenfalls angegeben werden.

YAML
  - controlType: inputContainer
    controls:

        # 1. Einfacher Key ohne Platzhalter
      - controlType: label              
        value: ${meinTranslationKey}
              
        # 2. mit Platzhaltern, die aus data.Variablen kommen
      - controlType: label              
        value: "${meinTranslationKey:{ artnr: dab010Instance.artnr }}"

Parametervalues müssen hierbei sein:

  • existierende Variablen, die mittels Bind an dieser Stelle gebunden werden

  • statische strings (in ).

  • Im Fall nicht existenter Variablen. werden die Werte ebenfalls literal verwendet.

Benutzung von Übersetzungen in variables-Section

Analog zu JS-Verboten innerhalb von Variablendefinitionen (z. B. kein dynamisches Binding) können dort auch keine dynamischen Übersetzungen verwendet werden.

Ausnahme:
Übersetzungen ohne Parameter.
Diese werden bereits im Backend ersetzt und können daher auch im variables-Bereich genutzt werden.

Alle anderen Übersetzungen werden dem Frontend als Template übergeben und dort dynamisch ausgewertet.

Benutzung von von Übersetzungen in JS-Code

Auch innerhalb von JavaScript-Code können Translation-Token ausgewertet werden.
Dafür steht die Kontextfunktion zur Verfügung:

TYPESCRIPT
$.translate(key: string, params?: { [key: string]: any } ): Promise<string>

Bitte beachten Sie, dass diese Funktion asynchron ist.
Das Frontend muss in der Lage sein, fehlende Translation Keys, die das Backend beim Seitenaufruf nicht mitgeliefert hat (z. B. durch obfuskierte Funktionsaufrufe), nachzuladen.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.