Page 1 of 1

Exceptions übersetzen

PostPosted: Fri Nov 16, 2012 6:32 pm
by johnit
Wie kann für bestimmte Fehler eine eigene Fehlermeldung definiert werden?

z.B. anstatt "unique constrain violation..." "Entwickler [NAME] ist bereits der Komponente [KOMP] zugeordnet!".

Re: Exceptions übersetzen

PostPosted: Fri Nov 16, 2012 7:16 pm
by Support@SIB
Die Übersetzung funktioniert losgelöst vom Context in dem eine Meldung ausgelöst wird.Es besteht somit keine Verbindung zwischen Übersetzung und Ursache. Dadurch ist es durch eine reine Übersetzung nicht möglich auf Daten von z.B. Tabellen zuzugreifen.

Es wird immer nur der Fehlertext übersetzt. Wenn Sie eine eigene Exception auslösen/werfen, dann haben Sie den Text komplett in Ihrer Hand.

Im Falle von API Exceptions können Sie den Text übersetzen und im Idealfall können Sie mit * Notation auf einzelne Daten Elemente zugreifen. Wenn der Text aber nicht die gewünschten Elemente enthält bzw. zu allgemein ist und Sie detailliertere Informationen ausgeben wollen, dann müssen Sie die Framework Klassen ableiten und entsprechende Fehlermeldungen selbst erstellen.

Als Beispiel wie Sie eine Message übersetzen können mit * Notation:

Code: Select all
<!--  Postgres -->   

<entry key="PostgreSQL-23502: *»*«*">Please enter a value in field '*1'!</entry>

<entry key="PostgreSQL-23505: *»*«">Uniqueness violation (*1)! Duplicate key can not be inserted.</entry>

<entry key="PostgreSQL-23503: *»*«*»*«*»*«*(*)=(*)*»*«*">Delete not possible!  One or more rows still exists in a detail table *1.*5 (*3).</entry>

Re: Exceptions übersetzen

PostPosted: Fri Nov 16, 2012 7:28 pm
by johnit
Die Einträge

Code: Select all
<entry key="PostgreSQL-23502: *»*«*">Please enter a value in field '*1'!</entry>
<entry key="PostgreSQL-23505: *»*«">Uniqueness violation (*1)! Duplicate key can not be inserted.</entry>
...

scheinen nicht zu wirken. Fehlt ein Pflichtfeld, bekomme ich in der Anwendung den Fehler
PostgreSQL-23502: ERROR: null value in column "kurzbezeichnung" violates not-null constraint (anstatt „Please enter a value....“)

Was mache ich da falsch?

Re: Exceptions übersetzen

PostPosted: Fri Nov 16, 2012 7:31 pm
by Support@SIB
Bitte versuchen Sie das Ausschlußverfahren:

Code: Select all
<entry key="PostgreSQL-23502: *">Please enter a value in field *!</entry>

Das ist zwar noch nicht die korrekte Übersetzung, aber es zeigt ob der Text erkannt wird. Es wird vermutlich an den Sonderzeichen liegen!