| Auszug | ||
|---|---|---|
| ||
Nuclos Regeln lokalisieren: BusinessException, InputRequiredException, MessageContext, Lokalisierungsschlüssel, Locale, withArgs, DoNotTranslate. |
Sprache: Deutsch · English
Regelmeldungen übersetzbar machen – BusinessException, InputRequiredException und MessageContext mit Schlüsseln, Locale und Platzhaltern.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
Auf dieser Seite
|
Regelmeldungen an den Benutzer lassen sich seit v4.2025.15 lokalisieren. Unterstützung bieten die Klassen BusinessException, InputRequiredException und MessageContext. Übergib nach Möglichkeit immer eine Locale – sonst versucht Nuclos, das Nuclet über das Package zu ermitteln.
Für statische Texte: automatische Schlüsselerzeugung per Boolean-Flag true.
| Codeblock | ||
|---|---|---|
| ||
hier |
| Codeblock | ||
|---|---|---|
|
Es wurde eine neue Möglichkeit geschaffen Meldungen an einen Benutzer zu lokalisieren, und hier beschreiben wir Ihnen wie Sie Ihre Regeln auf die Lokalisierung umstellen können.
| Inhalt | ||
|---|---|---|
|
Informationen wie die Lokalisierung zentral funktioniert und administriert wird finden Sie hier. Bitte lesen Sie den Abschnitt Nuclet und Regel API.
| Info | ||
|---|---|---|
| ||
ab 4.2025.15 bis 4.2025.28: Beta ab 4.2025.29: Released |
Folgende Klassen bieten Unterstützung für Übersetzungen:
Schnell und unkompliziert kann eine Meldung auf eine automatische Generierung eines Lokalisierungsschlüssels umgestellt werden. Dies sollte aber nur für statische Texte erfolgen!
Wenn keine Locale mitgegeben wird versucht Nuclos anhand des Package zu ermitteln zu welchem Nuclet eine Lokalisierungsanfrage gehört. Am ermittelten Nuclet werden die verfügbaren (System-)Spachen ausgewertet. Kann über diesen Mechanismus keine Locale eindeutig ermittelt werden, wird dem Übersetzer auch keine Source-Locale übermittelt.
Wenn möglich sollten die Aufrufe daher immer eine Locale mitgeben.
| Codeblock | ||||
|---|---|---|---|---|
| ||||
throw new BusinessException("Bitte geben Sie ein Lieferdatum an"); // vor v4.2025.15
throw new BusinessException(true, "Bitte geben Sie ein Lieferdatum an"); // ab v4.2025.15 |
...
throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "my.nuclet.input.key.1",
"Soll eine Bestätigung gesendet werden?", "Rückfrage")); // vor v4.2025.15
throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "my.nuclet.input.key.1",
true, "Soll eine Bestätigung gesendet werden?", "Rückfrage", Locale.GERMAN)); // ab v4.2025.15 |
...
...
MessageContext.sendMessage("Das Formular wurde erzeugt und im Laufwerk abgelegt."); // vor v4.2025.15
MessageContext.sendMessage(true, "Das Formular wurde erzeugt und im Laufwerk abgelegt."); // ab v4.2025.15...
Vergib einen festen
...
, eindeutigen Lokalisierungsschlüssel.
...
So kannst du den Ausgangstext
...
später ändern, ohne
...
| Codeblock | ||||
|---|---|---|---|---|
| ||||
throw new BusinessException("Bitte geben Sie ein Lieferdatum an"); // vor v4.2025.15
throw new BusinessException("org.nuclet.handel.enter-delivery-date", "Bitte geben Sie ein Lieferdatum an", Locale.GERMAN); // ab v4.2025.15 |
...
| language | java |
|---|---|
| title | InputRequiredException |
...
dass Übersetzungen komplett neu aufgebaut werden.
| Codeblock | ||
|---|---|---|
|
...
MessageContext |
...
.sendMessage("Das Formular wurde erzeugt und im Laufwerk abgelegt."); // vor v4.2025.15
MessageContext.sendMessage( |
...
true, "Das Formular wurde erzeugt und im Laufwerk abgelegt." |
...
); // ab v4.2025.15 |
...
Text als
...
DoNotTranslate-
...
Objekt übergeben:
| Codeblock | ||
|---|---|---|
| ||
throw new BusinessException(new DoNotTranslate(machineApi.getErrorMessage())); |
...
Wenn eine Meldung an einigen Stellen dynamisch ersetzt werden soll, kann dies mit den "withArgs" Methoden erfolgen. Übersetzt wird dann nur das Template und im Anschluss werden die Teile ersetzt.
| Codeblock | ||||
|---|---|---|---|---|
| ||||
throw new BusinessException("Die Liefermenge " + iMenge + " ist überschritten?"); // vor v4.2025.15
throw new BusinessException("org.nuclet.handel.delivery-quantity-exceeded", "Die Liefermenge {} ist überschritten?", Locale.GERMAN).withArgs(iMenge); // ab v4.2025.15 |
...
| language | java |
|---|---|
| title | InputRequiredException |
...
Dynamische Teile über withArgs/withMessageArgs – übersetzt wird nur das Template mit {}-Platzhaltern:
| Codeblock | ||
|---|---|---|
|
...
MessageContext.sendMessage("Das Formular |
...
wurde erzeugt und im Laufwerk abgelegt."); // vor v4.2025.15
MessageContext. |
...
sendMessage("org.nuclet.handel.pdf-created-and-stored", "Das Formular |
...
wurde erzeugt und im Laufwerk abgelegt.", /*no-title*/null, Locale.GERMAN); // ab v4.2025.15 |