| Auszug |
|---|
|
Nuclos Regeln lokalisieren: BusinessException, InputRequiredException, MessageContext, Lokalisierungsschlüssel, Locale, withArgs, DoNotTranslate. |
Sprache: Deutsch · English
Regeln lokalisieren
Regelmeldungen übersetzbar machen – BusinessException, InputRequiredException und MessageContext mit Schlüsseln, Locale und Platzhaltern.
| Status |
|---|
| colour | Blue |
|---|
| title | Anwendungsentwickler |
|---|
|
| Status |
|---|
| colour | Green |
|---|
| title | Stand: Jul 2026 |
|---|
|
| Status |
|---|
| colour | Grey |
|---|
| title | gilt fuer Nuclos 4.2026.x |
|---|
|
Überblick
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.
Der schnelle Weg
Für statische Texte: automatische Schlüsselerzeugung per Boolean-Flag true.
| Codeblock |
|---|
|
throw new BusinessException(new DoNotTranslate(machineApi.getErrorMessage())); |
Der optimale Weg
Vergib einen festen, eindeutigen Lokalisierungsschlüssel. So kannst du den Ausgangstext später ändern, ohne dass Übersetzungen komplett neu aufgebaut werden.
| Codeblock |
|---|
|
throw new BusinessException(new DoNotTranslate(machineApi.getErrorMessage())); |
Lokalisierung verhindern
Text als DoNotTranslate-Objekt übergeben:
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.
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:
Der schnelle Weg
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 |
|---|
| language | java |
|---|
| title | BusinessException |
|---|
|
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 |
| Codeblock |
|---|
| language | java |
|---|
| title | InputRequiredException |
|---|
|
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 |
| Codeblock |
|---|
| language | java |
|---|
| title | MessageContext |
|---|
|
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 |
Der optimale Weg
Vergeben Sie einen festen und eindeutigen Lokalisierungsschlüssel. Damit können Sie den Ausgangstext jederzeit anpassen, ohne das nachfolgende Lokalisierungen diese Texte ebenfalls komplett neu aufbauen müssen.
| Codeblock |
|---|
| language | java |
|---|
| title | BusinessException |
|---|
|
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 |
| Codeblock |
|---|
| language | java |
|---|
| title | InputRequiredException |
|---|
|
throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "org.nuclet.handel.input.key.1",
"Soll eine Bestätigung gesendet werden?", "Rückfrage")); // vor v4.2025.15
throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "org.nuclet.handel.input.key.1",
"org.nuclet.handel.send-confirmation", "Soll eine Bestätigung gesendet werden?", "Rückfrage", Locale.GERMAN)); // ab v4.2025.15 |
| Codeblock |
|---|
| language | java |
|---|
| title | MessageContext |
|---|
|
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 |
Lokalisierung verhindern
Übergeben Sie den Text als Do-Not-Translate-Objekt.
...
|
throw new BusinessException(new DoNotTranslate(machineApi.getErrorMessage())); |
...
Meldungen parametrisieren
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.
...
| language | java |
|---|
| title | BusinessException |
|---|
...
Dynamische Teile über withArgs/withMessageArgs – übersetzt wird nur das Template mit {}-Platzhaltern:
...
Verwandte Seiten
Unterstützende Klassen
Regel-API.
Öffnen →
InputRequiredException | throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "org.nuclet.handel.input.key.2",
"Ist die Liefermenge " + iMenge + " korrekt?", "Rückfrage")); // vor v4.2025.15
throw new InputRequiredException(
new InputSpecification(InputSpecification.CONFIRM_YES_NO, "org.nuclet.handel.input.key.2",
"org.nuclet.handel.confirm-quantity", "Ist die Liefermenge {} korrekt?", "Rückfrage", Locale.GERMAN)
.withMessageArgs(iMenge)); // ab v4.2025.15 |
| Codeblock |
|---|
| language | java |
|---|
| title | MessageContext |
|---|
|
MessageContext.sendMessage("Das Formular " + sName + " wurde erzeugt und im Laufwerk abgelegt."); // vor v4.2025.15
MessageContext.withMessageArgs(sName).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