Dictionary functionality to include key in richtext or widget labels - aem

I need to implement a dictionary in AEM — I have created an i18n->en->sling message entry with a key-value pair ("gegessen" is the key and message is "Record"), and I am able to render the message value in Sightly using the expression:
${'gegessen' # i18n}
If I change the message, it should be reflected in all the locations where I am using key. How can I make this key available in the Rich Text Editor and in widget labels?

Related

get arb key from child widget

I am facing problems that is I cannot get arb key from child widget when using translation in flutter.
All I can get is text contains itself.
I want to get arb key string.
Is there any solution??
Key are so you can get access to the value, if you need to get access to the key make it a value.

Seperate error messages for required TextFields and DropDownChoices

I'm currently working on a Wicket 6.20 project which already has dozens of pages with TextFields and DropDownChoices. Now the requirement came up to change the default '${label}' is required. message to something more specific, depending on whether a TextField or a DropDownChoice doesn't have a value.
I know I can put Required=My Text in a properties file of the application, but that changes the message for all FormComponents. And specifying the full component path to either the TextFields or the DropDownChoices in the form of myform.mycontainer.mydropdownchoice.Required=My Text isn't feasible, since of course the structure of the Forms can differ on each page.
Ideally I'd like to put something like
org.apache.wicket.markup.html.form.DropDownChoice.Required=Please select a value for '${label}'
org.apache.wicket.markup.html.form.TextField.Required=Please enter a value in '${label}'
in my application's property file, either with or without FQCN.
Is there a way to achieve this with any of the default IStringResourceLoader that come with Wicket?
It is not necessary to provide the complete path to the components. It could be a path with just few parents:
mycontainer.mydropdownchoice.Required=My Text
mydropdownchoice.Required=My Text
If this still is not an option then you can override org.apache.wicket.markup.html.form.FormComponent#reportRequiredError() for any instance or type (e.g. MyDropDownChoice).

Change ActiveX email font

Would anyone know how to change the font in an email generated by new ActiveXObject("Outlook.Application")?
This seems to default to Times New Roman regardless of the default settings in the mail client.
Thanks
The Outlook object model provides three main ways for working item bodies:
Body - a string representing the clear-text body of the Outlook item.
HTMLBody - a string representing the HTML body of the specified item.
Word editor - the Microsoft Word Document Object Model of the message being displayed. The WordEditor property of the Inspector class returns an instance of the Document class from the Word object model which you can use to set up the message body.
You can read more about all these ways in the Chapter 17: Working with Item Bodies. It us up to you which way is to choose to customize the message body. But the last two ways allows to choose a font.

Wicket - can you specify markups IDs for elements inside repeaters?

I'm having a hard time testing our Wicket application using Selenium because of the random markup ids.
For individual elements, I can use abc.setOutputMarkupId(true).setMarkupId("myId")
to set their markup id explicitly.
But what if the element is added dynamically using a repeater (like ListView)? Is there a way to specify how the markup id sequence should look like?
Well, can't you do the same thing with ListView? If you make your own ListView implementation, and then in the populateItem(final ListItem<?> listItem) method, on that respective listItem you do:
listItem.setOutputMarkupId(true); // write id attribute of element to html
listItem.setMarkupId("id"+i);
where i is some index you initialize in the ListView's constructor or something?
as Andrei told that its possible but dangerous.
setMarkupId doc:
Retrieves id by which this component is represented within the markup. This is either the id attribute set explicitly via a call to
org.apache.wicket.Component.setMarkupId(java.lang.String), id
attribute defined in the markup, or an automatically generated id - in
that order. If no explicit id is set this function will generate an id
value that will be unique in the page. This is the preferred way as
there is no chance of id collision.
http://www.kiwidoc.com/java/l/p/org.apache.wicket/wicket/1.4.0/p/org.apache.wicket/c/Component#top
and also you cant get the markup id with getMarkupId()

How to add a non editable field using install4j - value of this is not static and should be displayed from a user defined variable

I would like to be able to add a key/value pair label in an install screen. The key is a static text. The value is a dynamic value and a value from a variable should be used to display the value label. I'm not able to do so using install4J. I see options like a textArea, textfield that will enable to be able to do so. However, these are editable fields and does not serve my purpose. I want a non editable field to display a value from a variable. This is not a system variable. This should be a user defined variable. I'm using install4j 4.2 version. Any help in this area is highly appreciated.
Thanks for the response. I was able to create key/value pair. However, I'm not able to define my own installer variable. Can you please let me know where I can define an installer variable that can be used in the key/value pair?
There is a "Key value pair" form component that does exactly what you need. It is available in install4j 4.2.
In the "Value label/Text" property, you can use an installer variable like
${installer:myValue}
for displaying dynamic text.