I created a Liferay 7 structure with an "Explanation" field.
Here is a Web Content using that structure:
<?xml version="1.0"?>
<root available-locales="en_US" default-locale="en_US">
<dynamic-element name="Text" type="text_area" index-type="text" instance-id="vjsj">
<dynamic-content language-id="en_US">
<![CDATA[<p>Hello!</p>]]>
</dynamic-content>
</dynamic-element>
</root>
I noticed that the fourth line has a language-id="en_US" attribute.
Does that mean that I could add localizations of that field (via JournalArticle.setContent) as below and automatically have the explanation displayed in French to French readers in the Liferay UI?
<?xml version="1.0"?>
<root available-locales="en_US" default-locale="en_US">
<dynamic-element name="Text" type="text_area" index-type="text" instance-id="vjsj">
<dynamic-content language-id="en_US">
<![CDATA[<p>Hello!</p>]]>
</dynamic-content>
<dynamic-content language-id="fr_FR">
<![CDATA[<p>Bonjour !</p>]]>
</dynamic-content>
</dynamic-element>
</root>
Unlike the JournalArticle's Title and Summary I don't see small flags under any structure-issued field, so I am not sure whether such XML is supported.
You don't see the flags because the switch functionality is provided by the big article language switch on top of the edit view. If you change it there you should get the XML that you posted or something similar. Note that you did not adjust the available-locales at root.
In general, Liferay encodes all the languages into one XML. It indicates what languages are contained in the root. The actual translation is then encoded per field and language code.