Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Wichtig
#24760
Übersetzungen für `ResKey`s in deklarativen Formularen eingeben
Wird in einem deklarativen Formular ein Property vom Typ ResKey definiert, so wird standardmäßig ein Eingabefeld angezeigt, in dem das ResKey-Format eingegeben werden kann.
Anwendung
Das Property des deklarativen Formulars annotieren, um direkt die Übersetzungen eingeben zu können:
#!java @ItemDisplay(ItemDisplayType.MONOMORPHIC) @PropertyEditor(InternationalizationEditor.class) ResKey getMyProperty();
Nach dem Editiervorgang enthält das Property als Wert einen literalen ResKey (der die Übersetzungen in sich selbst speichert).
Mit dem Utility InternationalizedUtil.storeI18N(ConfigurationItem) können alle in dem gegebenen Item enthaltenen literalen `ResKey`s durch "echte" `ResKey`s ersetzt werden und die Übersetzungen aus dem Literal in die Übersetzungen der Anwendungen übernommen werden. Enthält das Literal keinen Key, wird ein neuer Key generiert.
Code-Migration
Implementiertungen von Editor (com.top_logic.layout.form.values.edit.editor.Editor.createUI(EditorFactory, FormContainer, ValueModel)) müssen EditorFactoryeditorFactory.processControlProviderAnnotation(valueModel.getProperty(), field); für das Feld aufrufen, auf das ein annotierter ControlProvider wirken soll.
Test
- Neue Properties reskey-primitive, reskey-multiline-primitive und reskey-html-primitive in tl-demo "Deklarative Formaulare".