labels"
Robertwenzel (talk | contribs) |
m (correct highlight (via JWB)) |
||
Line 23: | Line 23: | ||
Notice that the key of a property could be name as ''key1.key2'', and EL expressions could retrieve them correctly. | Notice that the key of a property could be name as ''key1.key2'', and EL expressions could retrieve them correctly. | ||
− | More precisely, ZK groups the segmented labels as map. For example, <code>${labels.app}</code> was resolved as a map containing two entries (<code>title</code> and < | + | More precisely, ZK groups the segmented labels as map. For example, <code>${labels.app}</code> was resolved as a map containing two entries (<code>title</code> and <code>description</code>). |
<source lang="xml"> | <source lang="xml"> | ||
Line 30: | Line 30: | ||
</source> | </source> | ||
− | If you have a key named as the prefix of the other keys, you have to use < | + | If you have a key named as the prefix of the other keys, you have to use <code>$</code> to access it. For example, <code>${labels.app.$}</code> is required to resolve the label with key named <code>app</code>. |
<source lang="xml"> | <source lang="xml"> | ||
Line 41: | Line 41: | ||
---- | ---- | ||
'''Under the hood:''' | '''Under the hood:''' | ||
− | The < | + | The <code>labels</code> object is actually the map returned by <javadoc method="getSegmentedLabels()">org.zkoss.util.resource.Labels</javadoc>. Furthermore, if the key of a property contains dot ('''.'''), all properties with the same prefix are grouped as another map. For example, <code>${labels.application}</code> (i.e., <code>Labels.getSegmentedLables().get("application")</code>) will return a map containing two entries (<code>name</code> and <code>title</code>) in the previous example. |
</blockquote> | </blockquote> | ||
Latest revision as of 13:26, 19 January 2022
labels - java.util.Map
A map of all internationalization labels belonging to the current locale (Locales.getCurrent()).
For example, if you have a property file as follows:
owner=Foo Inc.
application.name=Killer
application.title=Killer 2011
Then, you could access them with this implicit object as follows.
<grid>
<row>${labels.owner}</row>
<row>${labels.application.name}</row>
<row>${labels.application.title}</row>
</grid>
Notice that the key of a property could be name as key1.key2, and EL expressions could retrieve them correctly.
More precisely, ZK groups the segmented labels as map. For example, ${labels.app}
was resolved as a map containing two entries (title
and description
).
app.title=Foo
app.description=A super application
If you have a key named as the prefix of the other keys, you have to use $
to access it. For example, ${labels.app.$}
is required to resolve the label with key named app
.
app=Application
app.title=Foo
app.description=A super application
Under the hood: The
labels
object is actually the map returned by Labels.getSegmentedLabels(). Furthermore, if the key of a property contains dot (.), all properties with the same prefix are grouped as another map. For example,${labels.application}
(i.e.,Labels.getSegmentedLables().get("application")
) will return a map containing two entries (name
andtitle
) in the previous example.
Version History
Version | Date | Content |
---|---|---|
5.0.7 | March, 2011 | This implicit object was introduced. |