Localization
In order to localize the fields for the automatically generated XML Content
editor, you have to create a Java resource bundle containing localized Strings
for each input field. Additionally, the resource bundle name has to be defined
in the <appinfo> node of the XSD. The
resource bundle has to be placed in a classes/
subfolder of your module to be exported to the real file system of the
server.
For each element configured in the XSD, the XML content editor tries
to get a localized String.
The keys
that are
searched by the editor follow a
fixed scheme. Have a look at the elements
of the article example
article.xsd in the folder
/xmlcontentdemo/: <xsd:complexType name="OpenCmsArticle">
<xsd:sequence>
<xsd:element name="Title" type="OpenCmsString" />
<xsd:element name="Teaser" type="OpenCmsString" maxOccurs="5"/>
...
</xsd:sequence>
<xsd:attribute name="language" type="OpenCmsLocale" use="required"/>
</xsd:complexType>
To localize these two elements, the resource bundle has to define the keys label.Article.Title and label.Article.Teaser. If you want to display help
texts for the elements, the additional keys label.Article.Title.help and label.Article.Teaser.help must be present.
Check out the resource bundle workplace.properties in the module folder /system/modules/org.opencms.frontend.templateone.xmlcontentdemo/classes/org/opencms/frontend/templateone/xmlcontentdemo/: label.Article.Title = Title
label.Article.Title.help = The title of the article. This value will be mapped to the "Title" property of the resource.
label.Article.Teaser = Teaser text
label.Article.Teaser.help = The teaser of the article, a short summary that will be displayed on overview lists.
The keys follow a fixed scheme: first
is a fixed "label" prefix, after that the name of the XML content element, in
this case "Article", and the name of the element to localize. For help texts,
the suffix "help" has to be appended.
For all configuration options of the combo or select boxes, it is possible to
use localized Strings that were defined in the resource bundle for the XML
content. Instead of writing the text directly to the attribute values, use a
macro. To get the localized String for the key myselectvalue1 in the resource bundle, use the
macro ${key.myselectvalue1}. ... <layouts> <layout element="Combobox" widget="ComboWidget" configuration=" value='${key.combo.value1}' help=${key.combo.help1}'|
value='${key.combo.value2}' help='${key.combo.help2}'|
value='${key.combo.value3}' default='true' help='${key.combo.help3}'|
value=${key.combo.value4}' help='${key.combo.help4}'" />
</layouts> ...
Macros can also be used for validation error messages and default values in the
XSD.
Learn in the next step
how to create nested contents.
|