Language Definition"
Line 10: | Line 10: | ||
{{ZKDevelopersReferenceHeadingToc}} | {{ZKDevelopersReferenceHeadingToc}} | ||
+ | |||
+ | Here is a sample (from ZUL's lang.xml): | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <language> | ||
+ | <language-name>xul/html</language-name> | ||
+ | <device-type>ajax</device-type> | ||
+ | <namespace>http://www.zkoss.org/2005/zul</namespace> | ||
+ | <extension>zul</extension><!-- the first extension is the major one --> | ||
+ | <extension>xul</extension> | ||
+ | |||
+ | <version> | ||
+ | <version-class>org.zkoss.zul.Version</version-class> | ||
+ | <version-uid>5.0.6</version-uid> | ||
+ | </version> | ||
+ | |||
+ | <javascript package="zk"/> | ||
+ | <javascript package="zul.lang"/> | ||
+ | <stylesheet href="~./zul/css/zk.wcs" type="text/css"/> | ||
+ | |||
+ | <renderer-class>org.zkoss.zul.impl.PageRenderer</renderer-class> | ||
+ | |||
+ | <label-template> | ||
+ | <component-name>label</component-name> | ||
+ | <component-attribute>value</component-attribute> | ||
+ | </label-template> | ||
+ | <macro-template> | ||
+ | <macro-class>org.zkoss.zk.ui.HtmlMacroComponent</macro-class> | ||
+ | </macro-template> | ||
+ | <native-template> | ||
+ | <native-class>org.zkoss.zk.ui.HtmlNativeComponent</native-class> | ||
+ | </native-template> | ||
+ | |||
+ | <component> | ||
+ | <component-name>a</component-name> | ||
+ | <component-class>org.zkoss.zul.A</component-class> | ||
+ | <widget-class>zul.wgt.A</widget-class> | ||
+ | <text-as>label</text-as><!-- treat text within the element as the label property --> | ||
+ | <mold> | ||
+ | <mold-name>default</mold-name> | ||
+ | <mold-uri>mold/a.js</mold-uri> | ||
+ | <css-uri>css/a.css.dsp</css-uri> | ||
+ | </mold> | ||
+ | </component> | ||
+ | </language> | ||
+ | </source> | ||
+ | |||
{{ZKDevelopersReferencePageFooter}} | {{ZKDevelopersReferencePageFooter}} |
Revision as of 06:59, 18 November 2010
A language definition defines a component set (aka., a language). For example, ZUL and XHTML are two component sets.
To define a language definition, you have to prepare a file called /metainfo/zk/lang.xml
and makes it available to the classpath (such as in a JAR file, or in WEB-INF/classes of a Web application).
A language addon is used to extend a language definition. It shall be called /metainfo/zk/lang-addon.xml
available to the classpath, or specified in WEB-INF/zk.xml.
When ZK starts, it will parse all language definitions and then all language addons based on their dependency. A language addon is a variant of a language definition. They are almost the same, except the naming and it must specify the addon name.
Here is a sample (from ZUL's lang.xml):
<language>
<language-name>xul/html</language-name>
<device-type>ajax</device-type>
<namespace>http://www.zkoss.org/2005/zul</namespace>
<extension>zul</extension><!-- the first extension is the major one -->
<extension>xul</extension>
<version>
<version-class>org.zkoss.zul.Version</version-class>
<version-uid>5.0.6</version-uid>
</version>
<javascript package="zk"/>
<javascript package="zul.lang"/>
<stylesheet href="~./zul/css/zk.wcs" type="text/css"/>
<renderer-class>org.zkoss.zul.impl.PageRenderer</renderer-class>
<label-template>
<component-name>label</component-name>
<component-attribute>value</component-attribute>
</label-template>
<macro-template>
<macro-class>org.zkoss.zk.ui.HtmlMacroComponent</macro-class>
</macro-template>
<native-template>
<native-class>org.zkoss.zk.ui.HtmlNativeComponent</native-class>
</native-template>
<component>
<component-name>a</component-name>
<component-class>org.zkoss.zul.A</component-class>
<widget-class>zul.wgt.A</widget-class>
<text-as>label</text-as><!-- treat text within the element as the label property -->
<mold>
<mold-name>default</mold-name>
<mold-uri>mold/a.js</mold-uri>
<css-uri>css/a.css.dsp</css-uri>
</mold>
</component>
</language>