PR: MPXDOC-128

Submitted by: Vincent Siveton
Reviewed by:  Brett Porter, Arnaud Heritier
Internationalization support for xdoc.
Applied with changes

git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@171222 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
brett 2005-05-21 15:10:41 +00:00
parent 489cf92482
commit 4e177daa2d
49 changed files with 3470 additions and 1027 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
@ -28,11 +28,11 @@
xmlns:x="jelly:xml"
xmlns:velocity="jelly:velocity"
xmlns:ant="jelly:ant"
xmlns:fmt="jelly:fmt"
xmlns:doc="doc">
<j:new var="reports" className="java.util.ArrayList"/>
<define:taglib uri="doc">
<define:tag name="deregisterReport">
<!-- @name : Report to deregister, must be same as name used to register -->
@ -67,7 +67,7 @@
<j:set var="add" value="false"/>
</j:if>
</j:forEach>
<j:if test="${add.equals('true')}">
<j:new var="report" className="java.util.HashMap"/>
<j:set var="dummy">
@ -179,7 +179,6 @@
prettyPrint="${prettyPrint}"/>
</define:tag>
<!--
@link
@relativePath
@ -206,7 +205,7 @@
</j:if>
<j:if test="${empty(state)}"><j:set var="state" value="none"/></j:if>
<j:if test="${empty(img)}">${name}</j:if>
<j:if test="${!empty(img)}"><img style="border: 1px" src="${pathTool.calculateLink(img,relativePath)}" title="${name}" alt="${name}"/></j:if>
<j:if test="${!empty(img)}"><img style="border: 1px" src="${pathTool.calculateLink(img, relativePath)}" title="${name}" alt="${name}"/></j:if>
</x:element>
</define:tag>
@ -227,23 +226,24 @@
</j:if>
<!-- Set default encoding if not set. -->
<j:if test="${encoding == null}">
<j:set var="encoding"
value="${plugin.getVariable('maven.docs.outputencoding')}"/>
</j:if>
<j:if test="${encoding == null}">
<j:set var="encoding"
value="${plugin.getVariable('maven.docs.outputencoding')}"/>
</j:if>
<j:file name="${output}" prettyPrint="false" encoding="${encoding}">
<document>
<properties><title>${title}</title></properties>
<body>
<section name="${section}">
<p>${preamble}</p>
<source><![CDATA[${inputText}]]></source>
</section>
</body>
</document>
</j:file>
<document>
<properties><title>${title}</title></properties>
<body>
<section name="${section}">
<p>${preamble}</p>
<source>
<![CDATA[${inputText}]]>
</source>
</section>
</body>
</document>
</j:file>
</define:tag>
<!-- Alternator for row style in a table -->
@ -260,8 +260,66 @@
</j:if>
</define:tag>
<!-- Generates the JSL files on the given srcdir attribute -->
<!-- Generates the JSL files on the given srcdir attribute depending the locale wanted -->
<define:tag name="performJSL">
<!-- Safety : Reinit the defaultLocale -->
<echo>${defaultLocale}</echo>
<j:if test="${defaultLocale == null}">
<!-- Init the default language -->
<j:invokeStatic className="org.apache.commons.lang.StringUtils" method="isEmpty" var="isEmptyLocaleDefault">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
<j:if test="${isEmptyLocaleDefault}">
<j:invokeStatic className="java.util.Locale" method="getDefault" var="defaultLocaleTmp"/>
<j:set var="maven.xdoc.locale.default" value="${defaultLocaleTmp.toString().substring(0, 2)}"/>
</j:if>
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="codeToLocale" var="defaultLocale">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
</j:if>
<!-- First step: default resource bundle -->
<doc:performJSL-i18n srcdir="${srcdir}" destdir="${destdir}" currentLocale="${defaultLocale}"/>
<!-- Second step: local-specific resource bundle -->
<j:forEach var="locale" items="${locales}">
<j:if test="${!currentLocale.equals(defaultLocale)}">
<doc:performJSL-i18n srcdir="${srcdir}/${locale}" destdir="${destdir}/${locale}" currentLocale="${locale}"/>
</j:if>
</j:forEach>
</define:tag>
<define:tag name="performJSLTransform">
<!-- Safety : Reinit the defaultLocale -->
<j:if test="${defaultLocale == null}">
<!-- Init the default language -->
<j:invokeStatic className="org.apache.commons.lang.StringUtils" method="isEmpty" var="isEmptyLocaleDefault">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
<j:if test="${isEmptyLocaleDefault}">
<j:invokeStatic className="java.util.Locale" method="getDefault" var="defaultLocaleTmp"/>
<j:set var="maven.xdoc.locale.default" value="${defaultLocaleTmp.toString().substring(0, 2)}"/>
</j:if>
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="codeToLocale" var="defaultLocale">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
</j:if>
<!-- First step: default resource bundle -->
<doc:performJSL-i18n srcdir="${srcdir}" destdir="${destdir}" currentLocale="${defaultLocale}"/>
<!-- Second step: local-specific resource bundle -->
<j:forEach var="locale" items="${locales}">
<j:if test="${!currentLocale.equals(defaultLocale)}">
<doc:performJSL-i18n srcdir="${srcdir}" destdir="${destdir}/${locale}" currentLocale="${locale}"/>
</j:if>
</j:forEach>
</define:tag>
<!-- Generates the JSL files on the given srcdir attribute -->
<define:tag name="performJSL-i18n">
<util:file var="srcdirFile" name="${srcdir}"/>
<j:set var="srcdir" value="${srcdirFile.getCanonicalPath()}"/>
<util:file var="destdirFile" name="${destdir}"/>
@ -282,102 +340,150 @@
<maven:pluginVar var="maven_xdoc_xml_copy_pattern"
plugin='maven-xdoc-plugin' property='maven.xdoc.xml.copy' />
<fileScanner var="docFiles">
<fileset dir="${srcdir}">
<patternset>
<exclude name="**/project.xml"/>
<exclude name="**/template.xml"/>
<exclude name="**/navigation.xml"/>
<exclude name="changes.xml"/>
<j:if test="${maven_xdoc_xml_copy_pattern!=null and !maven_xdoc_xml_copy_pattern.equals('')}">
<util:tokenize var="xmlPatterns" delim=",">${maven_xdoc_xml_copy_pattern}</util:tokenize>
<j:forEach var="xmlPattern" items="${xmlPatterns}">
<exclude name="${xmlPattern}"/>
</j:forEach>
</j:if>
<include name="**/*.xml"/>
</patternset>
</fileset>
</fileScanner>
<!-- Set the current locale as default -->
<j:if test="${currentLocale.equals(defaultLocale)}">
<fmt:setLocale value="${defaultLocale}"/>
</j:if>
<j:if test="${!currentLocale.equals(defaultLocale)}">
<fmt:setLocale value="${currentLocale}"/>
</j:if>
<fmt:setBundle basename="plugin-resources/templates/templates" var="msg"/>
<!-- User bundle -->
<!-- Goal grabClassLoader should be call first -->
<maven:grabClassLoader resource="${maven.xdoc.bundle.src}"/>
<!-- Failed
<doc:grabClassLoader resource="${maven.xdoc.bundle.src}"/>
-->
<fmt:setBundle basename="${maven.xdoc.bundle}" var="myMsg"/>
<!-- determine nav file to be used:- 1. check for sitewide nav files -->
<!-- supplied nav file as project.xml in stylesheets dir -->
<util:available file="${maven.docs.src}/stylesheets/project.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/stylesheets/project.xml"/>
</util:available>
<!-- supplied nav file as project.xml in root of xdocs source tree -->
<util:available file="${maven.docs.src}/project.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/project.xml"/>
</util:available>
<!-- supplied navigation file in root of xdocs source tree -->
<util:available file="${maven.docs.src}/navigation.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/navigation.xml"/>
</util:available>
<!-- navigation file that was generated -->
<util:available file="${maven.gen.docs}/navigation.xml">
<util:file var="siteNavFile" name="${maven.gen.docs}/navigation.xml"/>
</util:available>
<!-- hold onto maven.docs.src for later -->
<util:file var="docsSrcFile" name="${maven.docs.src}"/>
<!-- Echo information -->
<j:if test="${currentLocale.equals(defaultLocale)}">
<echo message="The current Locale is the default one"/>
</j:if>
<j:if test="${!currentLocale.equals(defaultLocale)}">
<echo message="The current Locale is '${currentLocale}'"/>
</j:if>
<echo message="Scanning '${srcdir}'..."/>
<!-- parse the project nav. Someone jellier than me can remove the temp file requirement -->
<maven:pluginVar var="reports" plugin="maven-xdoc-plugin" property="reports" />
<util:file var="tempnav" name="${maven.build.dir}/project-nav.xml"/>
<!-- This test is only used to prevent error if other plugins calls this tag like linkcheck -->
<util:available file="${srcdir}">
<fileScanner var="docFiles">
<fileset dir="${srcdir}">
<patternset>
<exclude name="**/project.xml"/>
<exclude name="**/template.xml"/>
<exclude name="**/navigation.xml"/>
<exclude name="changes.xml"/>
<exclude name="**/*.properties"/>
<j:if test="${maven_xdoc_xml_copy_pattern!=null and !maven_xdoc_xml_copy_pattern.equals('')}">
<util:tokenize var="xmlPatterns" delim=",">${maven_xdoc_xml_copy_pattern}</util:tokenize>
<j:forEach var="xmlPattern" items="${xmlPatterns}">
<exclude name="${xmlPattern}"/>
</j:forEach>
</j:if>
<include name="**/*.xml"/>
<j:if test="${currentLocale.equals(defaultLocale)}">
<j:forEach var="locale" items="${locales}">
<exclude name="${locale}/**"/>
</j:forEach>
</j:if>
<j:if test="${!currentLocale.equals(defaultLocale)}">
<j:forEach var="locale" items="${locales}">
<j:if test="${currentLocale.equals(locale)}">
<include name="${locale}/**"/>
</j:if>
<j:if test="${!currentLocale.equals(locale)}">
<exclude name="${locale}/**"/>
</j:if>
</j:forEach>
</j:if>
</patternset>
</fileset>
</fileScanner>
<j:file name="${tempnav.toString()}" outputMode="xml">
<j:import file="${plugin.resources}/navigation.jelly" inherit="true"/>
</j:file>
<x:parse var="projectNavRoot" xml="${tempnav}"/>
<x:set var="projectNav" select="$projectNavRoot/project"/>
<j:forEach var="file" items="${docFiles.iterator()}">
<util:replace var="inDirForward" oldChar="\" newChar="/" value="${file.parent}"/>
<j:set var="outDir" value="${dirMapper.mapFileName(inDirForward).0}"/>
<mkdir dir="${outDir}"/>
<!-- generate output file name -->
<util:replace var="outFileForward" oldChar="\" newChar="/" value="${file.toString()}"/>
<j:set var="outFile" value="${mapper.mapFileName(outFileForward).0}"/>
<echo>Generating ${outFile} from ${file}</echo>
<!-- work out relative path -->
<util:replace var="docsForward" oldChar="\" newChar="/" value="${srcdir}"/>
<j:if test="${pathTool == null}">
<j:useBean var="pathTool" class="org.apache.maven.util.DVSLPathTool"/>
</j:if>
<j:set var="relativePath" value="${pathTool.getRelativePath(docsForward, outFileForward)}"/>
<!-- determine nav file to be used: 2. check for nav file -->
<!-- in the same directory as xml file being processed -->
<!-- if no such nav file available use sitewide nav file -->
<j:set var="navFile" value="${siteNavFile}" />
<util:available file="${file.parentFile.absoluteFile}/navigation.xml">
<!-- dont use current directory navigation.xml if it's in maven.docs.src -->
<j:if test="${!(file.parentFile.equals(docsSrcFile))}">
<util:file var="navFile" name="${file.parentFile.absoluteFile}/navigation.xml"/>
</j:if>
</util:available>
<!-- parse nav and make it available to the stylesheet -->
<j:if test="${navFile != null}">
<x:parse var="navXML" xml="${navFile}"/>
<x:set var="nav" select="$navXML/project"/>
</j:if>
<!-- parse the doc and pass it to the stylesheet -->
<x:parse var="doc" xml="${file}"/>
<!-- determine nav file to be used:- 1. check for sitewide nav files -->
<!-- supplied nav file as project.xml in stylesheets dir -->
<util:available file="${maven.docs.src}/stylesheets/project.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/stylesheets/project.xml"/>
</util:available>
<!-- supplied nav file as project.xml in root of xdocs source tree -->
<util:available file="${maven.docs.src}/project.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/project.xml"/>
</util:available>
<!-- supplied navigation file in root of xdocs source tree -->
<util:available file="${maven.docs.src}/navigation.xml">
<util:file var="siteNavFile" name="${maven.docs.src}/navigation.xml"/>
</util:available>
<!-- navigation file that was generated -->
<util:available file="${maven.gen.docs}/navigation.xml">
<util:file var="siteNavFile" name="${maven.gen.docs}/navigation.xml"/>
</util:available>
<!-- hold onto maven.docs.src for later -->
<util:file var="docsSrcFile" name="${maven.docs.src}"/>
<!-- parse the project nav. Someone jellier than me can remove the temp file requirement -->
<maven:pluginVar var="reports" plugin="maven-xdoc-plugin" property="reports" />
<util:file var="tempnav" name="${maven.build.dir}/project-nav.xml"/>
<j:file name="${outFile}" encoding="${outputencoding}"
omitXmlDeclaration="true" outputMode="xml"
prettyPrint="no">
<j:include uri="${stylesheet.toString()}"/>
</j:file>
</j:forEach>
</define:tag>
<j:file name="${tempnav.toString()}" outputMode="xml">
<j:import file="${plugin.resources}/navigation.jelly" inherit="true"/>
</j:file>
<x:parse var="projectNavRoot" xml="${tempnav}"/>
<x:set var="projectNav" select="$projectNavRoot/project"/>
<j:forEach var="file" items="${docFiles.iterator()}">
<util:replace var="inDirForward" oldChar="\" newChar="/" value="${file.parent}"/>
<j:set var="outDir" value="${dirMapper.mapFileName(inDirForward).0}"/>
<mkdir dir="${outDir}"/>
<!-- generate output file name -->
<util:replace var="outFileForward" oldChar="\" newChar="/" value="${file.toString()}"/>
<j:set var="outFile" value="${mapper.mapFileName(outFileForward).0}"/>
<echo>Generating ${outFile} from ${file}</echo>
<!-- work out relative path -->
<util:replace var="docsForward" oldChar="\" newChar="/" value="${srcdir}"/>
<j:if test="${pathTool == null}">
<j:useBean var="pathTool" class="org.apache.maven.util.DVSLPathTool"/>
</j:if>
<j:set var="relativePath" value="${pathTool.getRelativePath(docsForward, outFileForward)}"/>
<j:set var="relativePathForLocale" value="${pathTool.getRelativePath(docsForward, outFileForward)}"/>
<!-- Relative path if locale used -->
<j:set var="relativePathForLocale" value="${relativePath}/"/>
<j:if test="${!currentLocale.equals(defaultLocale)}">
<j:set var="relativePathForLocale" value="${relativePath}/../"/>
</j:if>
<!-- determine nav file to be used: 2. check for nav file -->
<!-- in the same directory as xml file being processed -->
<!-- if no such nav file available use sitewide nav file -->
<j:set var="navFile" value="${siteNavFile}" />
<util:available file="${file.parentFile.absoluteFile}/navigation.xml">
<!-- dont use current directory navigation.xml if it's in maven.docs.src -->
<j:if test="${!(file.parentFile.equals(docsSrcFile))}">
<util:file var="navFile" name="${file.parentFile.absoluteFile}/navigation.xml"/>
</j:if>
</util:available>
<!-- parse nav and make it available to the stylesheet -->
<j:if test="${navFile != null}">
<x:parse var="navXML" xml="${navFile}"/>
<x:set var="nav" select="$navXML/project"/>
</j:if>
<!-- parse the doc and pass it to the stylesheet -->
<x:parse var="doc" xml="${file}"/>
<j:file name="${outFile}" encoding="${outputencoding}"
omitXmlDeclaration="true" outputMode="xml"
prettyPrint="no">
<j:include uri="${stylesheet.toString()}"/>
</j:file>
</j:forEach>
</util:available>
</define:tag>
<define:tag name="jslToSite">
<!--
@ -421,7 +527,6 @@
<!-- restore plugin.resources -->
<j:set var="plugin.resources" value="${previous.plugin.resources}" />
</define:tag>
<!--
@ -435,6 +540,39 @@
<j:arg type="java.lang.String" value="__________________" useContextClassLoader="true"/>
</j:invokeStatic>${escapedtoken}</define:tag>
<!--
Grab the existing classloader
Create a new classloader that inherits the current one
Add URL to the classloader
@resource
-->
<define:tag name="grabClassLoader">
<maven:param-check value="${resource}" fail="true" message="'resource' must be specified"/>
<util:file var="dirResource" name="${resource}" />
<j:set var="currentClassLoader" value="${context.getClassLoader()}"/>
<log:debug>Start to grab the current class loader ${currentClassLoader}</log:debug>
<j:set var="dummy">${currentClassLoader.addURL(dirResource.toURL())}</j:set>
<j:new className="com.werken.forehead.ForeheadClassLoader" var="foreheadClassLoader">
<j:arg value="${currentClassLoader}" />
<j:arg value="${currentClassLoader.getName()}_TEMP" />
</j:new>
<j:set var="dummy">${context.setClassLoader(foreheadClassLoader)}</j:set>
</define:tag>
<!--
Returns the old classloader
-->
<define:tag name="unGrabClassLoader">
<maven:param-check value="${foreheadClassLoader}" fail="true" message="Please call xdoc:grabClassLoader first"/>
<j:set var="currentClassLoader" value="${context.getClassLoader()}"/>
<log:debug>Start to ungrab the current class loader ${currentClassLoader}</log:debug>
<j:set var="dummy">${context.setClassLoader(currentClassLoader.getParent())}</j:set>
</define:tag>
</define:taglib>
<!-- ================================================================== -->
@ -446,16 +584,86 @@
description="Generate html project documentation xdoc sources"/>
<goal name="xdoc:init"
prereqs="xdoc:init-i18n"
description="Generates the directory structure required for xdocs">
<echo message="Generates the directory structure required for xdocs"/>
<mkdir dir="${maven.gen.docs}"/>
<mkdir dir="${maven.docs.dest}"/>
</goal>
<j:forEach var="locale" items="${locales}">
<j:if test="${!currentLocale.equals(defaultLocale)}">
<mkdir dir="${maven.gen.docs}/${locale}"/>
</j:if>
</j:forEach>
</goal>
<goal name="xdoc:init-i18n"
description="Init the i18n support">
<j:if test="${initI18n == null}">
<echo message="Init the i18n support"/>
<!-- Init the default language -->
<j:invokeStatic className="org.apache.commons.lang.StringUtils" method="isEmpty" var="isEmptyLocaleDefault">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
<j:if test="${isEmptyLocaleDefault}">
<j:invokeStatic className="java.util.Locale" method="getDefault" var="defaultLocaleTmp"/>
<j:set var="maven.xdoc.locale.default" value="${defaultLocaleTmp.toString().substring(0, 2)}"/>
</j:if>
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="codeToLocale" var="defaultLocale">
<j:arg value="${maven.xdoc.locale.default}" type="java.lang.String"/>
</j:invokeStatic>
<!-- Init locales variables and create local-specific directories -->
<j:catch var="ex">
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="codesToLocales" var="locales">
<j:arg value="${maven.xdoc.locale.supported}" type="java.lang.String"/>
</j:invokeStatic>
</j:catch>
<j:if test="${ex != null}">
<log:debug>java.lang.reflect.InvocationTargetException</log:debug>
<log:debug>Caused by: org.apache.maven.xdoc.util.LocaleUtil.codesToLocales(java.lang.String)</log:debug>
<log:debug>${ex.getCause().getTargetException().getMessage()}</log:debug>
</j:if>
<j:if test="${ex == null}">
<j:set var="localeList.isValid" value="true"/>
</j:if>
<maven:param-check value="${localeList.isValid}" fail="true"
message="ERROR: The locales list '${maven.xdoc.locale.supported}' seems to contain invalid locale code. Verify the 'maven.xdoc.locale.supported' property."/>
<log:debug>defaultLocale=[${defaultLocale}]</log:debug>
<j:forEach var="locale" items="${locales}">
<log:debug>locale_supported=[${locale}]</log:debug>
</j:forEach>
<j:set var="initI18n" value="true"/>
</j:if>
</goal>
<!-- Validate the user locale entries -->
<goal name="xdoc:i18n-validation"
description="Validation of the locale entries for internationalization support">
<echo message="Validation of the locale entries"/>
<j:invokeStatic method="getAvailableLocales" className="java.util.Locale" var="availableLocales"/>
<j:invokeStatic className="java.util.Arrays" method="asList" var="availableLocalesAsList">
<j:arg value="${availableLocales}" type="[Ljava.lang.Object;"/>
</j:invokeStatic>
<j:forEach var="locale" items="${locales}">
<j:if test="${!availableLocalesAsList.contains(locale)}">
<echo message="WARNING: The locale '${locale}' is not a valid one."/>
</j:if>
</j:forEach>
</goal>
<goal
name="xdoc:generate-from-pom"
prereqs="xdoc:init, xdoc:register-reports"
prereqs="xdoc:init, xdoc:i18n-validation, xdoc:register-reports"
description="Generates xdocs for site based on project descriptor">
<echo>Generating xdocs from POM ... </echo>
@ -512,9 +720,35 @@
<fail>Unknown report format for report [${pomDocument}].</fail>
</j:otherwise>
</j:choose>
</j:forEach>
<!-- Copy all generated files in an internationalize site structure, ie:
|__ en\
|__ index.xml
|__ ... (mail-lists.xml, maven-reports.xml...)
|__ fr\
|__ index.xml
|__ ... (mail-lists.xml, maven-reports.xml...)
|__ index.xml
|__ ... (mail-lists.xml, maven-reports.xml...)
-->
<j:forEach var="locale" items="${locales}">
<j:if test="${!currentLocale.equals(defaultLocale)}">
<copy todir="${maven.gen.docs}/${locale}" filtering="no">
<fileset dir="${maven.gen.docs}">
<exclude name="**/CVS/*"/>
<exclude name="images/**"/>
<exclude name="**/*.properties"/>
<j:forEach var="locale" items="${locales}">
<exclude name="${locale}/**"/>
</j:forEach>
<exclude name="stylesheets/*"/>
<include name="**/*.xml"/>
<include name="**/*.fml"/>
</fileset>
</copy>
</j:if>
</j:forEach>
</goal>
<!-- ================================================================== -->
@ -548,7 +782,6 @@
<!-- ================================================================== -->
<!-- C O P Y R E S O U R C E S -->
<!-- ================================================================== -->
<!-- copy resources needed for xdocs -->
<goal name="xdoc:copy-resources"
prereqs="xdoc:init"
@ -603,7 +836,7 @@
</j:if>
</fileset>
</copy>
<!-- excluded by default from previous -->
<j:set var="var" value="${maven.xdoc.poweredby.image}" />
<j:if test="${!empty(var)}">
@ -616,14 +849,43 @@
<!-- ================================================================== -->
<!-- C O P Y U S E R S U P P L I E D R E S O U R C E S -->
<!-- ================================================================== -->
<!-- copy user bundles for xdocs -->
<!-- Known issue with a multiproject goal. -->
<!-- http://www.mail-archive.com/dev@maven.apache.org/msg21646.html -->
<!-- Lets see multiproject:prepare-site-i18n -->
<goal name="xdoc:copy-user-bundles"
description="Copy user provided resources to docs destination">
<!--
<available file="${maven.docs.src}" type="dir"
property="maven.docs.src.available"/>
<j:if test="${maven.docs.src.available}">
<log:info>
Copying user bundles.
</log:info>
<util:available file="${maven.xdoc.bundle.src}/${maven.xdoc.bundle}.properties">
<copy todir="${plugin.resources}/temp" filtering="no">
<fileset dir="${maven.xdoc.bundle.src}">
<include name="${maven.xdoc.bundle}*"/>
</fileset>
</copy>
<j:set var="user.bundle.available" value="true"/>
</util:available>
<j:if test="${!empty(maven.xdoc.locale.supported)}">
<maven:param-check value="${user.bundle.available}" fail="true"
message="ERROR: Unable to translate the documentation. Disagreement between the definition of 'maven.xdoc.locale.supported' property and the local-specific resources bundles."/>
</j:if>
</j:if>
-->
</goal>
<!-- copy user resources -->
<goal name="xdoc:copy-user-resources"
prereqs="xdoc:init"
prereqs="xdoc:init, xdoc:copy-user-bundles"
description="Copy user provided resources to docs destination">
<j:if test="${maven.docs.src.available}">
<log:info>
Copying user supplied resources.
</log:info>
@ -635,15 +897,50 @@
<exclude name="**/*.fml"/>
<exclude name="**/CVS/*"/>
<exclude name="stylesheets/*"/>
<exclude name="**/*.properties"/>
</fileset>
<!-- copy file in generated docs folder: this allows for reporting plugins to add images -->
<fileset dir="${maven.gen.docs}">
<exclude name="**/*.xml"/>
<exclude name="**/CVS/*"/>
<exclude name="**/*.properties"/>
<j:forEach var="locale" items="${locales}">
<exclude name="${locale}/**"/>
</j:forEach>
<exclude name="stylesheets/*"/>
</fileset>
</copy>
<!-- Copy all default site structure to differents locales -->
<j:forEach var="locale" items="${locales}">
<j:if test="${!currentLocale.equals(defaultLocale)}">
<copy todir="${maven.gen.docs}/${locale}" filtering="no">
<fileset dir="${maven.docs.src}">
<exclude name="**/CVS/*"/>
<exclude name="images/**"/>
<exclude name="**/*.properties"/>
<include name="**/*.xml"/>
<include name="**/*.fml"/>
</fileset>
</copy>
</j:if>
</j:forEach>
<!-- Multi project bugs
<util:available file="${maven.xdoc.bundle.src}/${maven.xdoc.bundle}.properties">
<copy todir="${plugin.resources}/temp" filtering="no">
<fileset dir="${maven.xdoc.bundle.src}">
<include name="${maven.xdoc.bundle}*"/>
</fileset>
</copy>
<j:set var="user.bundle.available" value="true"/>
</util:available>
<j:if test="${!empty(maven.xdoc.locale.supported)}">
<maven:param-check value="${user.bundle.available}" fail="true"
message="ERROR: Unable to translate the documentation. Disagreement between the definition of 'maven.xdoc.locale.supported' property and the local-specific resources bundles."/>
</j:if>
-->
<util:available file="${maven.docs.src}/stylesheets">
<!-- Copy user supplied stylesheets, can override maven -->
<copy todir="${maven.docs.dest}/style">
@ -652,8 +949,7 @@
</fileset>
</copy>
</util:available>
</j:if>
</j:if>
<maven:pluginVar var="maven_xdoc_xml_copy_pattern"
plugin='maven-xdoc-plugin' property='maven.xdoc.xml.copy' />
@ -683,12 +979,7 @@
prereqs="xdoc:init"
description="Generate html project documentation xdoc sources">
<tstamp>
<format property="mavenCurrentYear" pattern="yyyy"/>
</tstamp>
<!-- Use jelly utils here -->
<available
file="${maven.gen.docs}"
type="dir"
@ -705,7 +996,10 @@
<attainGoal name="xdoc:copy-resources"/>
<attainGoal name="xdoc:copy-user-resources"/>
<attainGoal name="xdoc:jelly-transform"/>
<maven:unGrabClassLoader/>
<!-- Failed
<doc:unGrabClassLoader/>
-->
</goal>
<!-- ================================================================== -->
@ -713,17 +1007,19 @@
<!-- ================================================================== -->
<goal name="xdoc:jelly-init" description="Set up jelly xdoc requirements">
<!-- moving here temporarily -->
<tstamp>
<format property="mavenCurrentYear" pattern="yyyy"/>
</tstamp>
<!-- Set the current time in a locale-sensitive manner (pattern/locale) -->
<tstamp>
<format property="build.date" pattern="${maven.xdoc.date.format}"
locale="${maven.xdoc.date.locale}"/>
</tstamp>
<!-- Set the current time to display the date in the current locale -->
<j:useBean var="now" class="java.util.Date"/>
</goal>
<goal name="xdoc:register-reports">
<!--
@ -731,7 +1027,6 @@
| build up our navbar. To do this, we call the plugin:register
| goal on each report plugin.
|-->
<j:if test="${!pom.reports.isEmpty()}">
<j:forEach var="report" items="${pom.reports}">
<attainGoal name="${report}:register"/>
@ -766,7 +1061,6 @@
<!-- mapper for determining output file name -->
<j:new var="mapper" className="org.apache.maven.util.CaseInsensitiveGlobPatternMapper"/>
<!-- path tool for relative processing -->
<j:useBean var="pathTool" class="org.apache.maven.util.DVSLPathTool"/>
@ -796,11 +1090,10 @@
<log:info>
Transforming user supplied documentation.
</log:info>
<doc:performJSL srcdir="${maven.docs.src}" destdir="${maven.docs.dest}"/>
</j:if>
<doc:performJSLTransform srcdir="${maven.docs.src}" destdir="${maven.docs.dest}"/>
</j:if>
</goal>
</goal>
<!--
! This is required as the linkchecker runs as a final pass over the generated
@ -808,7 +1101,7 @@
! FIXME: Why isn't this in linkcheck?
!-->
<goal name="xdoc:performJSL"
description="Allows the LinkCheck plugin to xdoc a single directory">
description="Allows the LinkCheck plugin to xdoc a single directory">
<maven:pluginVar var="maven.xdoc.src" plugin="maven-linkcheck-plugin" property="maven.xdoc.src" />
<doc:performJSL
@ -832,6 +1125,14 @@
<ant:delete file="${basedir}/velocity.log.1" quiet="true" failonerror="false"/>
</goal>
<!-- Used to clean the directory ${user.home}/.maven/cache/maven-xdoc-plugin-XXX/plugin-resources/temp/ -->
<goal name="xdoc:clean-user-bundles"
description="Clean the user bundles in the plugin resources">
<delete>
<fileset dir="${plugin.resources}/temp" includes="${maven.xdoc.bundle}*"/>
</delete>
</goal>
<preGoal name="clean:clean">
<attainGoal name="xdoc:clean" />
</preGoal>

View File

@ -40,18 +40,6 @@ maven.xdoc.legend=true
# NOTE: In the future this information will be described in the POM
maven.xdoc.distributionType=jar
#
# DATE Preferences
#
# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom'
maven.xdoc.date =
maven.xdoc.date.format = dd MMMM yyyy
# The date locale
maven.xdoc.date.locale = en
# The default logo to show on the generated site.
maven.xdoc.poweredby.image=maven-button-1.png
maven.xdoc.poweredby.title=Built by Maven
@ -88,3 +76,34 @@ maven.xdoc.projectInfo = cvs-usage.xml,\
maven.xdoc.copy.excludes=file.gif,folder-closed.gif,folder-open.gif,icon_alert.gif,icon_alertsml.gif,icon_arrowfolder1_sml.gif,icon_arrowfolder2_sml.gif,icon_arrowmembers1_sml.gif,icon_arrowmembers2_sml.gif,icon_arrowusergroups1_sml.gif,icon_arrowusergroups2_sml.gif,icon_confirmsml.gif,icon_help_lrg.gif,icon_infosml.gif,icon_members_sml.gif,icon_sortleft.gif,icon_sortright.gif,icon_usergroups_sml.gif,icon_waste_lrg.gif,icon_waste_sml.gif,none.png,nw_maj.gif,nw_maj_hi.gif,nw_med.gif,nw_med_hi.gif,nw_med_rond.gif,nw_min.gif,nw_min_036.gif,nw_min_hi.gif,poweredby_036.gif,product_logo.gif,se_maj_rond.gif,sw_min.gif,logos/**
# Files not copied unless skin is classic
maven.xdoc.copy.excludes.classic=external-classic.png,help_logo.gif,icon_arrowfolderclosed1_sml.gif,icon_arrowwaste1_sml.gif,icon_arrowwaste2_sml.gif,icon_doc_lrg.gif,icon_doc_sml.gif,icon_error_lrg.gif,icon_folder_lrg.gif,icon_folder_sml.gif,icon_help_sml.gif,icon_info_lrg.gif,icon_members_lrg.gif,icon_sortdown.gif,icon_sortup.gif,icon_success_lrg.gif,icon_usergroups_lrg.gif,icon_arrowfolderopen2_sml.gif,icon_warning_lrg.gif,newwindow-classic.png,nw_maj_rond.gif,strich.gif,sw_maj_rond.gif,sw_med_rond.gif
#
# I18N Preferences
#
# NOTE: Only used for the default language
# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom'
maven.xdoc.date=
maven.xdoc.date.format=dd MMMM yyyy
# The date locale
maven.xdoc.date.locale=en
# The default locale (if null, it is the default locale for this instance of the Java Virtual Machine)
# By default it is en to ensure backward compatible
maven.xdoc.locale.default=en
# A comma separated of locales supported by the project
maven.xdoc.locale.supported=
# Should be in ${maven.docs.src} directory
maven.xdoc.bundle.src=${maven.docs.src}
# NOT CLEAN: we need to copy ${maven.docs.src}/xdocs.properties to
# ${user.home}\.maven\cache\maven-xdoc-plugin-XXX\plugin-resources\temp\${maven.xdoc.bundle}.properties
maven.xdoc.bundle=xdocs
# If true, display the default language with [defaultLocale.byDefault]
# Ex: English [By default]
maven.xdoc.ui.displayByDefault=false
# If true, display the maven.xdoc.locale.list property as an HTML <select/> tag
maven.xdoc.ui.localeList.asSelect=false
# The maximum number of locales displayed without an HTML select tag.
maven.xdoc.ui.localeList.max=5

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
@ -16,6 +17,7 @@
* limitations under the License.
*/
-->
<project>
<extend>../plugin-parent/project.xml</extend>
<pomVersion>3</pomVersion>
@ -140,7 +142,7 @@
<role>Developer</role>
</roles>
<timezone>-3</timezone>
</developer>
</developer>
</developers>
<dependencies>
<dependency>
@ -204,5 +206,14 @@
<artifactId>xml-apis</artifactId>
<version>1.0.b2</version>
</dependency>
<dependency>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly-tags-fmt</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<id>forehead</id>
<version>1.0-beta-5</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,152 @@
package org.apache.maven.xdoc.util;
/* ====================================================================
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Arrays;
import java.util.StringTokenizer;
/**
* Utility class to handle the <code>java.util.Locale</code> object.
*
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton </a>
* @version $Id:$
*/
public final class LocaleUtil extends Object {
/**
* Converts a locale code like "en", "en_US" or "en_US_win" to a <code>java.util.Locale</code>
* object. <br>
* If localeCode = "default", return the current value of the default locale for this instance
* of the Java Virtual Machine.
*
* @see <a
* href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html">java.util.Locale#getDefault()
* </a>
* @param localeCode
* the locale code string.
* @return a java.util.Locale object instancied or null if errors occurred
*/
public static Locale codeToLocale(final String localeCode) {
if (localeCode == null) {
return null;
}
if (localeCode.toLowerCase().equals("default")) {
return Locale.getDefault();
}
Locale locale = null;
String language = "";
String country = "";
String variant = "";
StringTokenizer tokenizer = new StringTokenizer(localeCode, "_");
if (tokenizer.countTokens() > 3) {
System.out.println("The locale code=[" + localeCode + "] is not a valid java.util.Locale");
return null;
}
if (tokenizer.hasMoreTokens()) {
language = tokenizer.nextToken();
if (tokenizer.hasMoreTokens()) {
country = tokenizer.nextToken();
if (tokenizer.hasMoreTokens()) {
variant = tokenizer.nextToken();
}
}
}
locale = new Locale(language, country, variant);
return locale;
}
/**
* Parse a comma separated list of locale codes and converts to an array of
* <code>java.util.Locale</code> object.
*
* @param localeCodes
* a comma separated list of locale codes.
* @return a array of java.util.Locale object instancied or null if errors occurred
*/
public static Locale[] codesToLocales(final String localeCodes) {
if (localeCodes == null) {
return null;
}
List arrays = new ArrayList();
StringTokenizer strToken = new StringTokenizer(localeCodes, ", ");
while (strToken.hasMoreTokens()) {
final String locale = strToken.nextToken().trim();
final Locale currentLocale = codeToLocale(locale);
if (!Arrays.asList(Locale.getAvailableLocales()).contains(currentLocale)) {
System.out.println("The current locale parsed defined by '" + locale
+ "' is not available in the Java version " + System.getProperty("java.version") + " from "
+ System.getProperty("java.vendor"));
}
arrays.add(currentLocale);
}
return (Locale[]) arrays.toArray(new Locale[0]);
}
/**
* Returns the name for the <code>locale</code>. This will be the values returned by
* <code>java.util.Locale.getDisplayName()</code>, but the first character will be in upper
* case.
*
* @param locale
* The locale to display
* @return The display name of the locale with the first character in upper case
*/
public static String displayName(final Locale locale) {
return displayName(locale, null);
}
/**
* Returns the name for the <code>locale</code>. This will be the values returned by
* <code>java.util.Locale.getDisplayName()</code>, but the first character will be in upper
* case. The display name can be in a locale wanted.
*
* @param locale
* The locale to display
* @param localeWanted
* The locale wanted to display the locale
* @return The display name of the locale with the first character in upper case
*/
public static String displayName(final Locale locale, final Locale localeWanted) {
if (locale == null) {
return null;
}
String localeAsStr = null;
if (localeWanted == null) {
localeAsStr = locale.getDisplayName();
} else {
localeAsStr = locale.getDisplayName(localeWanted);
}
char[] letters = localeAsStr.toCharArray();
letters[0] = Character.toUpperCase(letters[0]);
return new String(letters);
}
}

View File

@ -17,67 +17,95 @@
*/
-->
<j:whitespace
xmlns:j="jelly:core"
xmlns:util="jelly:util"
xmlns="dummy"
trim="true">
<j:whitespace
xmlns:j="jelly:core"
xmlns:util="jelly:util"
xmlns="dummy"
trim="true">
<project>
<body>
<j:if test="${includeProjectDocumentation.equals('yes')}">
<menu name="Project Documentation">
<item name="About ${pom.name}" href="/index.html"/>
<body>
<j:if test="${includeProjectDocumentation.equals('yes')}">
<menu key="navigation.menu.project_documentation"
bundle="plugin-resources/templates/templates">
<item key="navigation.menu.item.about"
bundle="plugin-resources/templates/templates"
href="/index.html" />
<!-- Only display a "Downloads" menu link if the
maven.xdoc.distributionUrl has been defined -->
<j:if test="${context.getVariable('maven.xdoc.distributionUrl') != null}">
<item name="Downloads" href="/downloads.html"/>
<!-- Only display a "Downloads" menu link if the
maven.xdoc.distributionUrl has been defined -->
<j:if test="${context.getVariable('maven.xdoc.distributionUrl') != null}">
<item key="navigation.menu.item.downloads"
bundle="plugin-resources/templates/templates"
href="/downloads.html" />
</j:if>
<item key="navigation.menu.item.project_info"
bundle="plugin-resources/templates/templates"
href="/project-info.html" collapse="true">
<item key="navigation.menu.item.mailing_lists"
bundle="plugin-resources/templates/templates"
href="/mail-lists.html" />
<item key="navigation.menu.item.project_team"
bundle="plugin-resources/templates/templates"
href="/team-list.html" />
<item key="navigation.menu.item.dependencies"
bundle="plugin-resources/templates/templates"
href="/dependencies.html" />
<j:set var="url" value="${pom.repository.url}" />
<j:if test="${!empty(url)}">
<item key="navigation.menu.item.source_repository"
bundle="plugin-resources/templates/templates"
href="/cvs-usage.html" />
</j:if>
<j:set var="url"
value="${pom.issueTrackingUrl}" />
<j:if test="${!empty(url)}">
<item key="navigation.menu.item.issue_tracking"
bundle="plugin-resources/templates/templates"
href="/issue-tracking.html" />
</j:if>
</item>
<item key="navigation.menu.item.project_reports"
bundle="plugin-resources/templates/templates"
href="/maven-reports.html" collapse="true">
<j:forEach var="report" items="${reports}">
<j:set var="link" value="${report.link}" />
<j:set var="externalLink" value="${report.externalLink}" />
<j:if test="${!empty(link)}">
<item name="${report.name}"
href="/${report.link}.html"
target="${report.target}" />
</j:if>
<j:if test="${empty(link) and !empty(externalLink)}">
<item name="${report.name}"
href="${report.externalLink}"
target="${report.target}" />
</j:if>
</j:forEach>
</item>
<j:set var="devProcess" value="false" />
<util:available file="${maven.docs.src}/development-process.xml">
<j:set var="devProcess" value="true" />
</util:available>
<j:if test="${devProcess}">
<item key="navigation.menu.item.development_process"
bundle="plugin-resources/templates/templates"
href="/development-process.html" />
</j:if>
<j:if test="${!devProcess}">
<j:set var="devProcessUrl"
value="${maven.xdoc.developmentProcessUrl}" />
<j:if test="${!empty(devProcessUrl)}">
<item key="navigation.menu.item.development_process"
bundle="plugin-resources/templates/templates"
href="${devProcessUrl}" />
</j:if>
</j:if>
</menu>
</j:if>
<item name="Project Info" href="/project-info.html" collapse="true">
<item name="Mailing Lists" href="/mail-lists.html"/>
<item name="Project Team" href="/team-list.html"/>
<item name="Dependencies" href="/dependencies.html"/>
<j:set var="url" value="${pom.repository.url}"/>
<j:if test="${!empty(url)}">
<item name="Source Repository" href="/cvs-usage.html"/>
</j:if>
<j:set var="url" value="${pom.issueTrackingUrl}"/>
<j:if test="${!empty(url)}">
<item name="Issue Tracking" href="/issue-tracking.html"/>
</j:if>
</item>
<item name="Project Reports" href="/maven-reports.html" collapse="true">
<j:forEach var="report" items="${reports}">
<j:set var="link" value="${report.link}"/>
<j:set var="externalLink" value="${report.externalLink}"/>
<j:if test="${!empty(link)}">
<item name="${report.name}" href="/${report.link}.html" target="${report.target}"/>
</j:if>
<j:if test="${empty(link) and !empty(externalLink)}">
<item name="${report.name}" href="${report.externalLink}" target="${report.target}"/>
</j:if>
</j:forEach>
</item>
<j:set var="devProcess" value="false"/>
<util:available file="${maven.docs.src}/development-process.xml">
<j:set var="devProcess" value="true"/>
</util:available>
<j:if test="${devProcess}">
<item name="Development Process" href="/development-process.html"/>
</j:if>
<j:if test="${!devProcess}">
<j:set var="devProcessUrl" value="${maven.xdoc.developmentProcessUrl}"/>
<j:if test="${!empty(devProcessUrl)}">
<item name="Development Process" href="${devProcessUrl}"/>
</j:if>
</j:if>
</menu>
</j:if>
</body>
</body>
</project>
</j:whitespace>

View File

@ -27,6 +27,7 @@
xmlns:log="jelly:log"
xmlns:util="jelly:util"
xmlns:x="jelly:xml"
xmlns:fmt="jelly:fmt"
xmlns:doc="doc"
xmlns:maven="jelly:maven"
xmlns="dummy">
@ -42,40 +43,104 @@
<j:setProperties object="${navbean}" document="${doc}" location="${location}"/>
<x:set var="templateContext" select="." />
<!-- Format the build date depending the current locale if no pattern is defined -->
<j:if test="${currentLocale.equals(defaultLocale)}">
<j:if test="${now == null}">
<j:useBean var="now" class="java.util.Date"/>
</j:if>
<fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long" var="build.date"/>
</j:if>
<html>
<head>
<j:set var="docTitle"><x:expr select="./properties/title"/></j:set>
<!-- Key is more important than message... -->
<!-- From doc -->
<j:set var="_docKey">
<x:expr select="./properties/title/@key" />
</j:set>
<j:set var="_docBundle">
<x:expr select="./properties/title/@bundle" />
</j:set>
<j:if test="${empty(_docKey)}">
<j:set var="_docTitle">
<x:expr select="./properties/title" />
</j:set>
</j:if>
<j:if test="${!empty(_docKey)}">
<!-- Shortcut for the user bundle -->
<j:if test="${empty(_docBundle)}">
<fmt:message key="${_docKey}" bundle="${myMsg}" var="_docTitle"/>
</j:if>
<j:if test="${!empty(_docBundle)}">
<fmt:bundle basename="${_docBundle}">
<fmt:message key="${_docKey}" var="_docTitle"/>
</fmt:bundle>
</j:if>
</j:if>
<!-- From nav -->
<j:set var="_navKey">
<x:expr select="$nav/title/@key" />
</j:set>
<j:set var="_navBundle">
<x:expr select="$nav/title/@bundle" />
</j:set>
<j:if test="${empty(_navKey)}">
<j:set var="_navTitle">
<x:expr select="$nav/title" />
</j:set>
</j:if>
<j:if test="${!empty(_navKey)}">
<!-- Shortcut for the user bundle -->
<j:if test="${empty(_navBundle)}">
<fmt:message key="${_navKey}" bundle="${myMsg}" var="_navTitle"/>
</j:if>
<j:if test="${!empty(_navBundle)}">
<fmt:bundle basename="${_navBundle}">
<fmt:message key="${_navKey}" var="_navTitle"/>
</fmt:bundle>
</j:if>
</j:if>
<j:set var="titleSeparator" value=" - "/>
<x:if select="$nav/title">
<title><x:expr select="$nav/title"/> - ${docTitle}</title>
<title>
${_docTitle}${titleSeparator}${_navTitle}
</title>
</x:if>
<x:if select="not($nav/title)">
<title>${pom.name} - ${docTitle}</title>
<title>
${pom.name}${titleSeparator}${_navTitle}
</title>
</x:if>
<j:set var="themeUrl" value="${maven.xdoc.theme.url}"/>
<util:file var="projectCssFile" name="${maven.docs.src}/style/project.css"/>
<style type="text/css" media="all"><![CDATA[
@import url("${relativePath}/style/maven-base.css");
@import url("${relativePathForLocale}style/maven-base.css");
]]>
<j:if test="${!empty(themeUrl)}"><![CDATA[
@import url("${maven.xdoc.theme.url}");
]]></j:if>
<j:if test="${empty(themeUrl)}"><![CDATA[
@import url("${relativePath}/style/maven-${maven.xdoc.theme}.css");
@import url("${relativePathForLocale}style/maven-${maven.xdoc.theme}.css");
]]></j:if>
<j:if test="${projectCssFile.exists()}"><![CDATA[
@import url("${relativePath}/style/project.css");
@import url("${relativePathForLocale}style/project.css");
]]></j:if>
</style>
<link rel="stylesheet" type="text/css" href="${relativePath}/style/print.css" media="print"/>
<link rel="stylesheet" type="text/css" href="${relativePathForLocale}style/print.css" media="print"/>
<meta http-equiv="Content-Type" content="text/html; charset=${outputencoding}"/>
<x:forEach var="author" select="$templateContext/properties/author">
<x:forEach var="author" select="./properties/author">
<meta name="author" content="${author.text}"/>
<meta name="email" content="${author.attribute('email').value}"/>
</x:forEach>
<jsl:applyTemplates select="$templateContext/head/*" />
</head>
<jsl:applyTemplates select="$templateContext/*" />
@ -90,202 +155,314 @@
<jsl:template match="body" trim="true">
<x:set var="templateContext" select="." />
<x:element name="body"><j:whitespace trim="true">
<x:attribute name="class">composite</x:attribute>
<x:element name="body"><j:whitespace trim="true">
<x:attribute name="class">composite</x:attribute>
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
</j:whitespace>
<div id="banner">
<!-- organization logo -->
<j:set var="logo" value="${pom.organization.logo}"/>
<j:if test="${!empty(logo)}">
<!-- set url to org or project url -->
<j:set var="url" value="${pom.organization.url}"/>
<j:if test="${!empty(url)}">
<j:set var="home" value="${pom.organization.url}"/>
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
</j:whitespace>
<div id="banner">
<!-- organization logo -->
<j:set var="logo" value="${pom.organization.logo}"/>
<j:if test="${!empty(logo)}">
<!-- set url to org or project url -->
<j:set var="url" value="${pom.organization.url}"/>
<j:if test="${!empty(url)}">
<j:set var="home" value="${pom.organization.url}"/>
</j:if>
<j:if test="${empty(url)}">
<j:set var="home" value="${pom.url}"/>
</j:if>
<!-- set home to relative or complete -->
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.organization.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:if test="${!image.startsWith('/')}" trim="yes">
<j:set var="image" value="${relativePathForLocale}${image}"/>
</j:if>
<j:if test="${image.startsWith('/')}" trim="yes">
<j:set var="image" value="${relativePathForLocale}${image.substring(1)}"/>
</j:if>
</j:if>
<a href="${home}" id="organizationLogo">
<img src="${image}" alt="${pom.organization.name}" />
</a>
</j:if>
<j:if test="${empty(url)}">
<j:set var="home" value="${pom.url}"/>
</j:if>
<!-- set home to relative or complete -->
<!-- set project to relative or complete -->
<j:set var="home" value="${pom.url}"/>
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.organization.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
<!-- project logo and link -->
<j:set var="logo" value="${pom.logo}"/>
<j:if test="${logo != null and logo != ''}">
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:if test="${!image.startsWith('/')}" trim="yes">
<j:set var="image" value="${relativePathForLocale}${image}"/>
</j:if>
<j:if test="${image.startsWith('/')}" trim="yes">
<j:set var="image" value="${relativePathForLocale}${image.substring(1)}"/>
</j:if>
</j:if>
<a href="${home}" id="projectLogo">
<img src="${image}" alt="${pom.name}"/>
</a>
</j:if>
<a href="${home}" id="organizationLogo">
<img src="${image}" alt="${pom.organization.name}" />
</a>
</j:if>
<!-- set project to relative or complete -->
<j:set var="home" value="${pom.url}"/>
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<!-- project logo and link -->
<j:set var="logo" value="${pom.logo}"/>
<j:if test="${logo != null and logo != ''}">
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
<j:if test="${logo == null or logo == ''}">
<a href="${home}" id="projectLogo">
<span>${pom.name}</span>
</a>
</j:if>
<a href="${home}" id="projectLogo">
<img src="${image}" alt="${pom.name}"/>
</a>
</j:if>
<j:if test="${logo == null or logo == ''}">
<a href="${home}" id="projectLogo">
<span>${pom.name}</span>
</a>
</j:if>
<div class="clear"><hr /></div>
</div>
<div id="breadcrumbs">
<maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
<j:set var="breadcrumbsUsed" value=""/>
<x:if select="$nav/body/breadcrumbs">
<j:set var="breadcrumbsUsed" value="'true'"/>
</x:if>
<div class="xleft">
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'left'}">
Last published: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
Doc for ${version}
</j:if>
</j:if>
</j:if>
<j:if test="${!empty( breadcrumbsUsed )}">
<jsl:applyTemplates select="$nav/body/breadcrumbs" />
${pom.name}&#160;<span class="separator">&gt;</span>&#160;${docTitle}
</j:if>
<div class="clear"><hr /></div>
</div>
<div class="xright">
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'right'}">
Last published: ${build.date}
<div id="breadcrumbs">
<maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
<j:set var="breadcrumbsUsed" value=""/>
<x:if select="$nav/body/breadcrumbs">
<j:set var="breadcrumbsUsed" value="'true'"/>
</x:if>
<div class="xleft">
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'left'}">
<fmt:message key="site.last_published" bundle="${msg}"/>: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
<fmt:message key="site.doc_for" bundle="${msg}"/> ${version}
</j:if>
</j:if>
</j:if>
<j:if test="${!empty( breadcrumbsUsed )}">
<jsl:applyTemplates select="$nav/body/breadcrumbs" />
${pom.name}&#160;<span class="separator">&gt;</span>&#160;${docTitle}
</j:if>
</div>
<div class="xright">
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'right'}">
<fmt:message key="site.last_published" bundle="${msg}"/>: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
<fmt:message key="site.doc_for" bundle="${msg}"/> ${version}
</j:if>
</j:if>
</j:if>
<!-- render links -->
<x:if select="$nav/body/links">
<jsl:applyTemplates select="$nav/body/links"/>
</x:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- left column start -->
<div id="leftColumn">
<div id="navcolumn">
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- allows user to put menu items after standard reports -->
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
</x:if>
<j:if test="${context.getVariable('maven.xdoc.legend') == 'true'}">
<div id="legend">
<h5><fmt:message key="site.legend" bundle="${msg}"/></h5>
<ul>
<li class="externalLink"><fmt:message key="site.external_link" bundle="${msg}"/></li>
<li class="newWindow"><fmt:message key="site.opens_new_window" bundle="${msg}"/></li>
</ul>
</div>
</j:if>
<!-- Display all availables locales depending :
* the user preferences
* the size of the maven.xdoc.locale.supported property -->
<j:if test="${locales != null}">
<j:if test="${size(locales) gt 0}">
<j:set var="displaySelect" value="${maven.xdoc.ui.localeList.asSelect}" />
<j:set var="displayMaxElt" value="${maven.xdoc.ui.localeList.max}"/>
<j:useBean var="mavenTool" class="org.apache.maven.util.MavenTool"/>
<j:set var="displayMaxEltAsInteger" value="${mavenTool.toInteger(displayMaxElt)}"/>
<div id="language">
<h5><fmt:message key="site.language" bundle="${msg}"/></h5>
<ul>
<!-- Display language in a form with select tag -->
<j:if test="${displaySelect == 'true' or size(locales) gt displayMaxEltAsInteger}">
<form name="languageForm" method="GET">
<select size="1" name="languageSelect"
onChange="javascript:window.location=this.options[this.selectedIndex].value;">
<!-- Default language -->
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="displayName" var="displayLocale">
<j:arg value="${defaultLocale}" type="java.util.Locale"/>
<j:arg value="${defaultLocale}" type="java.util.Locale"/>
</j:invokeStatic>
<j:if test="${maven.xdoc.ui.displayByDefault == 'true'}">
<j:set var="displayLocale">${displayLocale} <fmt:message key="defaultLocale.byDefault" bundle="${msg}"/></j:set>
</j:if>
<option value="${relativePathForLocale}${location}">${displayLocale}</option>
<!-- Supported language -->
<j:forEach var="locale" items="${locales}">
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="displayName" var="displayLocale">
<j:arg value="${locale}" type="java.util.Locale"/>
<j:arg value="${locale}" type="java.util.Locale"/>
</j:invokeStatic>
<j:if test="${currentLocale.equals(defaultLocale)}">
<option value="${relativePathForLocale}${locale}${location}">${displayLocale}</option>
</j:if>
<j:if test="${!currentLocale.equals(defaultLocale)}">
<j:if test="${locale.equals(currentLocale)}">
<option value="${relativePathForLocale}${locale}${location}" selected="true">${displayLocale}</option>
</j:if>
<j:if test="${!locale.equals(currentLocale)}">
<option value="${relativePathForLocale}${locale}${location}">${displayLocale}</option>
</j:if>
</j:if>
</j:forEach>
</select>
</form>
</j:if>
<!-- Display language as listing -->
<j:if test="${!(displaySelect == 'true' or size(locales) gt displayMaxEltAsInteger)}">
<!-- Default language -->
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="displayName" var="displayLocale">
<j:arg value="${defaultLocale}" type="java.util.Locale"/>
<j:arg value="${defaultLocale}" type="java.util.Locale"/>
</j:invokeStatic>
<j:if test="${maven.xdoc.ui.displayByDefault == 'true'}">
<j:set var="displayLocale">${displayLocale} <fmt:message key="defaultLocale.byDefault" bundle="${msg}"/></j:set>
</j:if>
<li><doc:itemLink name="${displayLocale}" link="/${location}" relativePath="${relativePathForLocale}"/></li>
<!-- Supported language -->
<j:forEach var="locale" items="${locales}">
<j:invokeStatic className="org.apache.maven.xdoc.util.LocaleUtil" method="displayName" var="displayLocale">
<j:arg value="${locale}" type="java.util.Locale"/>
<j:arg value="${locale}" type="java.util.Locale"/>
</j:invokeStatic>
<li><doc:itemLink name="${displayLocale}" link="${locale}${location}" relativePath="${relativePathForLocale}"/></li>
</j:forEach>
</j:if>
</ul>
</div>
</j:if>
</j:if>
<!-- Standard Maven Navigation -->
<j:set var="fileName">${file}</j:set>
<j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
<j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
<j:set var="poweredbyurl" value="${maven.xdoc.poweredby.url}" />
<j:if test="${!empty(poweredbyimage)}">
<a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
<img alt="${maven.xdoc.poweredby.title}" src="${relativePathForLocale}images/logos/${poweredbyimage}" />
</a>
</j:if>
<j:if test="${empty( breadcrumbsUsed )}">
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished"><fmt:message key="site.last_published" bundle="${msg}"/>: ${build.date}</div>
</j:if>
</j:if>
</div>
</div>
<!-- left column end -->
<!-- body start -->
<div id="bodyColumn">
<div class="contentBox">
<jsl:applyTemplates select="$templateContext/*" />
</div>
</div>
<div class="clear"><hr /></div>
<!-- body end -->
<!-- footer start -->
<div id="footer">
<jsl:applyTemplates select="$nav/body/footer"/>
<j:if test="${!empty(breadcrumbsUsed)}">
<div class="xleft">
<fmt:message key="site.last_published" bundle="${msg}"/>: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
Doc for ${version}
</j:if>
</j:if>
</j:if>
<!-- render links -->
<x:if select="$nav/body/links">
<jsl:applyTemplates select="$nav/body/links" />
</x:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- left column start -->
<div id="leftColumn">
<div id="navcolumn">
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- allows user to put menu items after standard reports -->
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
</x:if>
<j:if test="${context.getVariable('maven.xdoc.legend') == 'true'}">
<div id="legend">
<h5>Legend</h5>
<ul>
<li class="externalLink">External Link</li>
<li class="newWindow">Opens in a new window</li>
</ul>
<fmt:message key="site.doc_for" bundle="${msg}"/> ${version}
</j:if>
</div>
</j:if>
<!-- Standard Maven Navigation -->
<j:set var="fileName">${file}</j:set>
<j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
<j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
<j:set var="poweredbyurl" value="${maven.xdoc.poweredby.url}" />
<j:if test="${!empty(poweredbyimage)}">
<a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
<img alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}" />
</a>
</j:if>
<j:if test="${empty( breadcrumbsUsed )}">
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
</j:if>
</div>
</div>
<!-- left column end -->
<!-- body start -->
<div id="bodyColumn">
<div class="contentBox">
<jsl:applyTemplates select="$templateContext/*" />
</div>
</div>
<div class="clear"><hr /></div>
<!-- body end -->
<!-- footer start -->
<div id="footer">
<jsl:applyTemplates select="$nav/body/footer"/>
<j:if test="${!empty(breadcrumbsUsed)}">
<div class="xleft">
<div id="lastPublished">Last published: ${build.date} Doc for ${pom.currentVersion}</div>
</div>
</j:if>
<div class="xright">
<j:if test="${!empty(pom.organization.name)}">
<j:if test="${!empty(pom.inceptionYear)}">
<j:if test="${pom.inceptionYear == mavenCurrentYear}">
<div class="xright">
<j:if test="${!empty(pom.organization.name)}">
<j:if test="${!empty(pom.inceptionYear)}">
<j:if test="${pom.inceptionYear == mavenCurrentYear}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${pom.inceptionYear != mavenCurrentYear}">
&#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</j:if>
</j:if>
<j:if test="${empty(pom.inceptionYear)}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${pom.inceptionYear != mavenCurrentYear}">
&#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'bottom'}">
&#169; - <fmt:message key="site.last_published" bundle="${msg}"/>: ${build.date}
</j:if>
<j:if test="${empty(pom.inceptionYear)}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${empty(breadcrumbsUsed)}">
<j:if test="${date == 'bottom'}">
- Last published: ${build.date}
</j:if>
</j:if>
</j:if>
</div>
<div class="clear"><hr /></div>
</div>
<div class="clear"><hr /></div>
</div>
<!-- footer end -->
</x:element>
<!-- footer end -->
</x:element>
</jsl:template>
<!-- process a documentation section -->
<jsl:template match="section" trim="true">
<div class="section">
<j:set var="_sectionName"><x:expr select="@name"/></j:set>
<!-- Key is more important than message... -->
<j:set var="_key">
<x:expr select="@key" />
</j:set>
<j:set var="_bundle">
<x:expr select="@bundle" />
</j:set>
<j:if test="${!empty(_key)}">
<!-- Default bundle is the user one in ${maven.xdoc.bundle} -->
<j:if test="${empty(_bundle)}">
<fmt:message key="${_key}" bundle="${myMsg}" var="_sectionName"/>
</j:if>
<j:if test="${!empty(_bundle)}">
<fmt:bundle basename="${_bundle}">
<fmt:message key="${_key}" var="_sectionName"/>
</fmt:bundle>
</j:if>
</j:if>
<!-- named anchors can't contain whitespaces -->
<j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
<j:if test="${!empty(_sectionName)}">
@ -298,6 +475,26 @@
<jsl:template match="subsection" trim="true">
<div class="subsection">
<j:set var="_sectionName"><x:expr select="@name"/></j:set>
<!-- Key is more important than message... -->
<j:set var="_key">
<x:expr select="@key" />
</j:set>
<j:set var="_bundle">
<x:expr select="@bundle" />
</j:set>
<j:if test="${!empty(_key)}">
<!-- Default bundle is the user one in ${maven.xdoc.bundle} -->
<j:if test="${empty(_bundle)}">
<fmt:message key="${_key}" bundle="${myMsg}" var="_sectionName"/>
</j:if>
<j:if test="${!empty(_bundle)}">
<fmt:bundle basename="${_bundle}">
<fmt:message key="${_key}" var="_sectionName"/>
</fmt:bundle>
</j:if>
</j:if>
<!-- named anchors can't contain whitespaces -->
<j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
<j:if test="${!empty(_sectionName)}">
@ -306,7 +503,7 @@
<jsl:applyTemplates />
</div>
</jsl:template>
<jsl:template match="source" trim="false">
<div class="source"><pre><jsl:applyTemplates /></pre></div>
</jsl:template>
@ -356,7 +553,7 @@
<jsl:applyTemplates/>
</x:element>
</jsl:template>
<!-- Process the breadcrumb navbar -->
<jsl:template match="links" trim="true">
<j:set var="linkCount" value="1"/>
@ -377,8 +574,7 @@
</x:forEach>
</jsl:template>
<!-- Process the breadcrumb navbar -->
<!-- Process the breadcrumb navbar -->
<jsl:template match="breadcrumbs" trim="true">
<x:forEach var="link" select="item">
<j:set var="_name"><x:expr select="@name"/></j:set>
@ -387,16 +583,35 @@
&#160;<span class="separator">&gt;</span>&#160;
</x:forEach>
</jsl:template>
<!-- Process a menu for the navigation bar -->
<jsl:template match="menu" trim="true">
<j:set var="_menuName"><x:expr select="@name"/></j:set>
<j:set var="_menuName"><doc:escapeNameToken value="${_menuName}"/></j:set>
<!-- Key is more important than message... -->
<j:set var="_key">
<x:expr select="@key" />
</j:set>
<j:set var="_bundle">
<x:expr select="@bundle" />
</j:set>
<j:if test="${!empty(_key)}">
<!-- Default bundle is the user one in ${maven.xdoc.bundle} -->
<j:if test="${empty(_bundle)}">
<fmt:message key="${_key}" bundle="${myMsg}" var="_menuName"/>
</j:if>
<j:if test="${!empty(_bundle)}">
<fmt:bundle basename="${_bundle}">
<fmt:message key="${_key}" var="_menuName"/>
</fmt:bundle>
</j:if>
</j:if>
<j:choose>
<j:when test="${!empty(_menuName)}">
<div id="menu${_menuName}">
<h5><x:expr select="@name"/></h5>
<h5>${_menuName}</h5>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:when>
@ -417,6 +632,23 @@
<x:set var="_childCount" select="count(./item)"/>
<j:set var="_isCollapsed" value="${navbean.isCollapsed(item.get(0))}"/>
<j:set var="_state" value="none"/>
<!-- Key is more important than message... -->
<j:set var="_key">
<x:expr select="@key" />
</j:set>
<j:if test="${!empty(_key)}">
<!-- Default bundle is the user one in ${maven.xdoc.bundle} -->
<j:if test="${empty(_bundle)}">
<fmt:message key="${_key}" bundle="${myMsg}" var="_name"/>
</j:if>
<j:if test="${!empty(_bundle)}">
<fmt:bundle basename="${_bundle}">
<fmt:message key="${_key}" var="_name"/>
</fmt:bundle>
</j:if>
</j:if>
<j:if test="${_childCount.intValue() gt 0}">
<j:if test="${!_isCollapsed}"><j:set var="_state" value="expanded"/></j:if>
<j:if test="${_isCollapsed}"><j:set var="_state" value="collapsed"/></j:if>
@ -441,7 +673,7 @@
<!-- Search code: http://www.google.com/searchcode.html -->
<!-- Google logos: http://www.google.com/stickers.html -->
<!-- Terms: http://www.google.com./services/terms_free.html -->
<div id="searchbar">
<div id="search">
<h5>Search ${pom.name}</h5>
<form method="get" action="http://www.google.com/search">
<a class="navlink" href="http://www.google.com">
@ -513,44 +745,46 @@
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<jsl:applyTemplates />
</j:whitespace></x:element>
</jsl:template>
</j:whitespace></x:element>
</jsl:template>
<!-- goals documentation -->
<jsl:template match="goals" trim="true">
<!-- reset row alternation -->
<j:set var="rowMode" value="" />
<div class="h3">
<a name="Goals"/><h3>Goals</h3>
<table class="bodyTable">
<thead>
<tr><th>Goal</th><th>Description</th></tr>
</thead>
<tbody>
<jsl:applyTemplates select="goal"/>
</tbody>
</table>
</div>
</jsl:template>
<!-- goals documentation -->
<jsl:template match="goals" trim="true">
<!-- reset row alternation -->
<j:set var="rowMode" value="" />
<div class="h3">
<a name="Goals"/><h3><fmt:message key="site.goals" bundle="${msg}"/></h3>
<table class="bodyTable">
<thead>
<tr><th><fmt:message key="site.goal" bundle="${msg}"/></th><th><fmt:message key="site.description" bundle="${msg}"/></th></tr>
</thead>
<tbody>
<jsl:applyTemplates select="goal"/>
</tbody>
</table>
</div>
</jsl:template>
<!-- a goal -->
<jsl:template match="goal" trim="true">
<j:choose>
<j:when test="${rowMode == 'a'}">
<j:set var="rowMode" value="b"/>
</j:when>
<j:otherwise>
<j:set var="rowMode" value="a"/>
</j:otherwise>
</j:choose>
<!-- a goal -->
<jsl:template match="goal" trim="true">
<j:choose>
<j:when test="${rowMode == 'a'}">
<j:set var="rowMode" value="b"/>
</j:when>
<j:otherwise>
<j:set var="rowMode" value="a"/>
</j:otherwise>
</j:choose>
<x:element name="tr"><j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<j:set var="_goalName"><x:expr select="./name" /></j:set>
<td style="width:20%"><a name="${_goalName}"/>${_goalName}</td>
<td ><jsl:applyTemplates select="description" /></td>
</j:whitespace></x:element>
</jsl:template>
<x:element name="tr">
<j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<j:set var="_goalName"><x:expr select="./name" /></j:set>
<td style="width:20%"><a name="${_goalName}"/>${_goalName}</td>
<td ><jsl:applyTemplates select="description" /></td>
</j:whitespace>
</x:element>
</jsl:template>
<jsl:template match="description">
<jsl:applyTemplates trim="false"/>
@ -565,4 +799,28 @@
<!-- copy any other elements through -->
<jsl:template match="*" trim="false"><jsl:copy trim="false"><jsl:applyTemplates trim="false"/></jsl:copy></jsl:template>
<!-- process a message -->
<!-- Key is more important than message... -->
<jsl:template match="message" trim="true">
<j:set var="_key">
<x:expr select="@key" />
</j:set>
<j:set var="_bundle">
<x:expr select="@bundle" />
</j:set>
<j:if test="${!empty(_key)}">
<!-- Default bundle is the user one in ${maven.xdoc.bundle} -->
<j:if test="${empty(_bundle)}">
<fmt:message key="${_key}" bundle="${myMsg}" />
</j:if>
<j:if test="${!empty(_bundle)}">
<fmt:bundle basename="${_bundle}">
<fmt:message key="${_key}" />
</fmt:bundle>
</j:if>
</j:if>
<jsl:applyTemplates />
</jsl:template>
</jsl:stylesheet>

View File

@ -17,143 +17,155 @@
*/
-->
<document>
<properties>
<title>CVS</title>
</properties>
<properties>
<title key="template.cvs_usage.title"
bundle="plugin-resources\templates\templates" />
</properties>
<body>
#set ($repository = $project.repository)
#if (!$repository)
<section name="Repository">
<p>
No SCM repository is defined.
</p>
</section>
#else
#if ($repository.url && $repository.url != '')
#set ($url = $escape.getText($repository.url))
<section name="Web Access">
<p>
<a href="$url">$url</a>
</p>
</section>
#end
#if ($repository.connection && $repository.connection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.connection, ''))
#set ($module = $repository.getCvsModule($repository.connection))
<section name="Anonymous Access with Maven">
<p>
This project's CVS repository can be checked out through anonymous (pserver)
CVS with the following instruction on a single line.
</p>
<source><![CDATA[
maven scm:checkout-project
-Dmaven.scm.method=$connscm
-Dmaven.scm.cvs.module=$module
-Dmaven.scm.cvs.root=$conn
-Dmaven.scm.checkout.dir=.
]]></source>
</section>
<section name="Anonymous CVS Access">
<p>
This project's CVS repository can be checked out through anonymous (pserver)
CVS with the following instruction set.
When prompted for a password for anonymous, simply press the Enter key.
</p>
<p>
cvs -d $conn login
<br/>
cvs -z3 -d $conn co $module
</p>
<body>
#set ($repository = $project.repository)
<p>
Updates from within the module's directory do not need the -d parameter.
</p>
</section>
#end
#end
#if ($repository.developerConnection && $repository.developerConnection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.developerConnection, 'username'))
#set ($module = $repository.getCvsModule($repository.developerConnection))
#set ($server = $repository.getCvsServer($repository.developerConnection))
<section name="Developer Access with Maven">
<p>
Only project developers can access the CVS tree via this method.
Substitute <b>username</b> with the proper value.
</p>
<source><![CDATA[
maven scm:checkout-project
-Dmaven.scm.method=$connscm
-Dmaven.scm.cvs.module=$module
-Dmaven.scm.cvs.root=$conn
-Dmaven.scm.checkout.dir=.
-Dmaven.scm.cvs.rsh=ssh
]]></source>
<p>
Remember to replace 'username' with your actual username on $server.<br/>
Also change <code>ssh</code> in <code>maven.scm.cvs.rsh=ssh</code>
to the name of your ssh executable.
</p>
</section>
<section name="Developer CVS Access via SSH">
<p>
Only project developers can access the CVS tree via this method.
SSH1 must be installed on your client machine. Substitute
<b>username</b> with the proper value. Enter your site password when prompted.
</p>
<p>
export CVS_RSH=ssh
<br/>
cvs -z3 -d $conn co $module
</p>
<p>
Remember to replace 'username' with your actual username on $server.
</p>
</section>
#end
#end
#if ($repository.url && $repository.url != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
<section name="CVS Access behind a firewall">
#if (!$repository)
<section key="template.cvs_usage.section1.title"
bundle="plugin-resources\templates\templates">
<p>
For those developers who are stuck behind a corporate
firewall, <a href="http://cvsgrab.sourceforge.net/">CVSGrab</a>
can use the viewcvs web interface to checkout the source code.
<message key="template.cvs_usage.section1.no_repository"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#else
#set ($url = $escape.getText($repository.url))
#if ($repository.url && $repository.url != '')
<section key="template.cvs_usage.section2.title"
bundle="plugin-resources\templates\templates">
<p>
<a href="$url">$url</a>
</p>
</section>
#end
#if ($repository.connection && $repository.connection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.connection, ''))
#set ($module = $repository.getCvsModule($repository.connection))
<section key="template.cvs_usage.section3.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs_usage.section3.description"
bundle="plugin-resources\templates\templates" />
</p>
<source>
<![CDATA[
maven scm:checkout-project
-Dmaven.scm.method=$connscm
-Dmaven.scm.cvs.module=$module
-Dmaven.scm.cvs.root=$conn
-Dmaven.scm.checkout.dir=.
]]>
</source>
</section>
<section key="template.cvs_usage.section4.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs_usage.section4.description"
bundle="plugin-resources\templates\templates" />
</p>
<p>
cvs -d $conn login
<br />
cvs -z3 -d $conn co $module
</p>
<p>
<message key="template.cvs_usage.section4.updates"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#if ($repository.developerConnection && $repository.developerConnection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.developerConnection, 'username'))
#set ($module = $repository.getCvsModule($repository.developerConnection))
#set ($server = $repository.getCvsServer($repository.developerConnection))
<section key="template.cvs_usage.section5.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs_usage.section5.description"
bundle="plugin-resources\templates\templates" />
</p>
<source>
<![CDATA[
maven scm:checkout-project
-Dmaven.scm.method=$connscm
-Dmaven.scm.cvs.module=$module
-Dmaven.scm.cvs.root=$conn
-Dmaven.scm.checkout.dir=.
-Dmaven.scm.cvs.rsh=ssh
]]>
</source>
<p>
<message key="template.cvs_usage.section5.remember"
bundle="plugin-resources\templates\templates" />
</p>
</section>
<section key="template.cvs_usage.section6.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs_usage.section6.description"
bundle="plugin-resources\templates\templates" />
</p>
<p>
export CVS_RSH=ssh
<br />
cvs -z3 -d $conn co $module
</p>
<p>
<message key="template.cvs_usage.section6.remember"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#if ($repository.url && $repository.url != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
<section key="template.cvs_usage.section7.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs_usage.section7.description1"
bundle="plugin-resources\templates\templates" />
<a href="http://cvsgrab.sourceforge.net/">CVSGrab</a>
<message key="template.cvs_usage.section7.description2"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#end
#end
#end
</body>
</body>
</document>

View File

@ -17,55 +17,63 @@
*/
-->
<document>
<properties>
<title key="template.dependencies.title"
bundle="plugin-resources\templates\templates" />
</properties>
<properties>
<title>Dependencies</title>
</properties>
<body>
<section name="Dependencies">
#if ($project.dependencies.size() == 0)
<p>
There are no dependencies for this project. It is a standalone
application that does not depend on any other project.
</p>
#else
<p>
The following is a list of dependencies for this project. These
dependencies are required to compile and run the application:
</p>
<table>
<thead>
<tr>
<th>Artifact ID</th>
<th>Type</th>
<th>Version</th>
<th>URL</th>
<th>Comment</th>
</tr>
</thead>
<tbody>
#foreach ($dep in $dependencyDescriber.Dependencies)
<tr>
<td>${dep.ArtifactId}</td>
<td>${dep.Type}</td>
<td>${dep.Version}</td>
<td>
#if ($dep.Url)
<a href="${dep.Url}">${dep.Url}</a>
#end
</td>
<td>
#if(${dep.comment})
${dep.comment}
#end
</td>
</tr>
#end
</tbody>
</table>
#end
</section>
</body>
<body>
<section key="template.dependencies.section.title"
bundle="plugin-resources\templates\templates">
#if ($project.dependencies.size() == 0)
<p>
<message key="template.dependencies.section.no_dependency"
bundle="plugin-resources\templates\templates" />
</p>
#else
<p>
<message key="template.dependencies.section.dependencies"
bundle="plugin-resources\templates\templates" />
</p>
<table>
<thead>
<tr>
<th>
<message key="template.dependencies.section.artifactID"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.dependencies.section.type"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.dependencies.section.version"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.dependencies.section.url"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
</thead>
<tbody>
#foreach ($dep in $dependencyDescriber.Dependencies)
<tr>
<td>${dep.ArtifactId}</td>
<td>${dep.Type}</td>
<td>${dep.Version}</td>
<td>
#if ($dep.Url)
<a href="${dep.Url}">${dep.Url}</a>
#end
</td>
</tr>
#end
</tbody>
</table>
#end
</section>
</body>
</document>

View File

@ -17,21 +17,20 @@
*/
-->
<document>
<properties>
<title>Issue Tracking</title>
</properties>
<properties>
<title key="template.issue_tracking.title"
bundle="plugin-resources\templates\templates" />
</properties>
<body>
<section name="Issue Tracking">
<p>
#if ($project.issueTrackingUrl && $project.issueTrackingUrl != '')
#set ($url = $escape.getText($project.issueTrackingUrl))
<a href="$url">$url</a>
#end
</p>
</section>
</body>
<body>
<section key="template.issue_tracking.section.title"
bundle="plugin-resources\templates\templates">
<p>
#set ($url = $escape.getText($project.issueTrackingUrl))
<a href="$url">$url</a>
</p>
</section>
</body>
</document>

View File

@ -20,58 +20,71 @@
#macro (displayLink $label $link)
<td>
#if ($link && $link.length() != 0)
#if ($link.trim().startsWith("http"))
<a href="$escape.getText($link)">$label</a>
#if ($link && $link.length() != 0)
#if ($link.trim().startsWith("http"))
<a href="$escape.getText($link)">$label</a>
#else
<a href="mailto:$link">$label</a>
#end
#else
<a href="mailto:$link">$label</a>
<message key="template.mail_lists.not_available"
bundle="plugin-resources\templates\templates" />
#end
#else
Not Available
#end
</td>
#end
<document>
<properties>
<title key="template.mail_lists.title"
bundle="plugin-resources\templates\templates" />
</properties>
<properties>
<title>Mailing Lists</title>
</properties>
<body>
<section name="Mailing Lists">
#if ($project.mailingLists.size() == 0)
<p>
There are no mailing lists established for this project. Please
check back at a later date.
</p>
#else
<p>
These are the mailing lists that have been established for this
project. For each list, there is a subscribe, unsubscribe, and an
archive link.
</p>
<table>
<thead>
<tr>
<th>List Name</th>
<th>Subscribe</th>
<th>Unsubscribe</th>
<th>Archive</th>
</tr>
</thead>
<tbody>
#foreach ($list in $project.mailingLists)
<tr>
<td>$list.name</td>
#displayLink("Subscribe" $list.subscribe)
#displayLink("Unsubscribe" $list.unsubscribe)
#displayLink("Archive" $list.archive)
</tr>
#end
</tbody>
</table>
#end
</section>
</body>
<body>
<section key="template.mail_lists.section.title"
bundle="plugin-resources\templates\templates">
#if ($project.mailingLists.size() == 0)
<p>
<message key="template.mail_lists.section.no_mail_list"
bundle="plugin-resources\templates\templates" />
</p>
#else
<p>
<message key="template.mail_lists.section.mail_lists"
bundle="plugin-resources\templates\templates" />
</p>
<table>
<thead>
<tr>
<th>
<message key="template.mail_lists.section.list_name"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.mail_lists.section.subscribe"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.mail_lists.section.unsubscribe"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.mail_lists.section.archive"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
</thead>
<tbody>
#foreach ($list in $project.mailingLists)
<tr>
<td>$list.name</td>
#displayLink("Subscribe" $list.subscribe)
#displayLink("Unsubscribe" $list.unsubscribe)
#displayLink("Archive" $list.archive)
</tr>
#end
</tbody>
</table>
#end
</section>
</body>
</document>

View File

@ -17,49 +17,84 @@
*/
-->
<document>
<properties>
<title key="template.maven_reports.title"
bundle="plugin-resources\templates\templates" />
</properties>
<properties>
<title>Project Reports</title>
</properties>
<body>
<section key="template.maven_reports.section.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.maven_reports.section.maven_reports1"
bundle="plugin-resources\templates\templates" />
<a href="http://maven.apache.org/">Maven</a>
<message key="template.maven_reports.section.maven_reports2"
bundle="plugin-resources\templates\templates" />
</p>
<body>
<section name="Maven Generated Reports">
<p>
This document provides an overview of the various reports that
are automatically generated by
<a href="http://maven.apache.org/">Maven</a>.
Each report is briefly described below.
</p>
#set ($reports = $project.getPluginContext('maven-xdoc-plugin').getVariable('reports'))
#set ($currentLocale = $project.getPluginContext('maven-xdoc-plugin').getVariable('currentLocale'))
#set ($reports = $project.getPluginContext('maven-xdoc-plugin').getVariable('reports'))
<subsection name="Overview">
<table>
<tr><th>Document</th><th>Description</th></tr>
#foreach ($report in $reports)
#if ($report.link && $report.link.length() != 0)
<tr>
#if($report.target && $report.target.length() != 0)
<td><a href="${report.link}.html" target="${report.target}">$report.name</a></td>
#else
<td><a href="${report.link}.html">$report.name</a></td>
#end
<td>$report.description</td>
</tr>
#end
#if ($report.externalLink && $report.externalLink.length() != 0)
<tr>
#if($report.target && $report.target.length() != 0)
<td><a href="${report.externalLink}" class="externalLink" target="${report.target}">$report.name</a></td>
#else
<td><a href="${report.externalLink}" class="externalLink">$report.name</a></td>
#end
<td>$report.description</td>
</tr>
#end
#end
</table>
</subsection>
</section>
</body>
<subsection key="template.maven_reports.section.subsection.title"
bundle="plugin-resources\templates\templates">
<table>
<tr>
<th>
<message key="template.maven_reports.section.subsection.document"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.maven_reports.section.subsection.description"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
#foreach ($report in $reports)
#if ($report.link && $report.link.length() != 0)
<tr>
#if($report.target && $report.target.length() != 0)
<td>
<a href="${report.link}.html"
target="${report.target}">
$report.name
</a>
</td>
#else
<td>
<a href="${report.link}.html">
$report.name
</a>
</td>
#end
<td>$report.description</td>
</tr>
#end
#if ($report.externalLink && $report.externalLink.length() != 0)
<tr>
#if($report.target && $report.target.length() != 0)
<td>
<a href="${report.externalLink}"
class="externalLink"
target="${report.target}">
$report.name
</a>
</td>
#else
<td>
<a href="${report.externalLink}"
class="externalLink">
$report.name
</a>
</td>
#end
<td>$report.description</td>
</tr>
#end
#end
</table>
</subsection>
</section>
</body>
</document>

View File

@ -17,71 +17,109 @@
*/
-->
<document>
<properties>
<title key="template.project_info.title"
bundle="plugin-resources\templates\templates" />
</properties>
<properties>
<title>Project Information</title>
</properties>
<body>
<section key="template.project_info.section.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.project_info.section.project_information1"
bundle="plugin-resources\templates\templates" />
<a href="http://maven.apache.org/">Maven</a>
<message key="template.project_info.section.project_information2"
bundle="plugin-resources\templates\templates" />
</p>
<body>
<section name="General Project Information">
<p>
This document provides an overview of the various documents and
links that are part of this project's general information. All
of this content is automatically generated by
<a href="http://maven.apache.org/">Maven</a> on
behalf of the project.
</p>
<subsection key="template.project_info.section.subsection.title"
bundle="plugin-resources\templates\templates">
<table>
<tr>
<th>
<message key="template.project_info.section.subsection.document"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.project_info.section.subsection.description"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
<tr>
<td>
<a href="mail-lists.html">
<message key="template.project_info.section.subsection.document.mailing_lists"
bundle="plugin-resources\templates\templates" />
</a>
</td>
<td>
<message key="template.project_info.section.subsection.description.mailing_lists"
bundle="plugin-resources\templates\templates" />
</td>
</tr>
<tr>
<td>
<a href="team-list.html">
<message key="template.project_info.section.subsection.document.project_team"
bundle="plugin-resources\templates\templates" />
</a>
</td>
<td>
<message key="template.project_info.section.subsection.description.project_team"
bundle="plugin-resources\templates\templates" />
</td>
</tr>
<tr>
<td>
<a href="dependencies.html">
<message key="template.project_info.section.subsection.document.dependencies"
bundle="plugin-resources\templates\templates" />
</a>
</td>
<td>
<message key="template.project_info.section.subsection.description.dependencies"
bundle="plugin-resources\templates\templates" />
</td>
</tr>
<subsection name="Overview">
<table>
<tr><th>Document</th><th>Description</th></tr>
<tr><td><a href="mail-lists.html">Mailing Lists</a></td>
<td>
This document provides subscription and archive
information for this project's mailing lists.
</td>
</tr>
<tr><td><a href="team-list.html">Project Team</a></td>
<td>
This document provides information on the members of
this project. These are the individuals who have
contributed to the project in one form or another.
</td>
</tr>
<tr><td><a href="dependencies.html">Dependencies</a></td>
<td>
This document lists the projects dependencies and provides
information on each dependency.
</td>
</tr>
<!--
This is really bad that the url requires specification in two
places. Makes pluggable reporting impossible. FIX
-->
#if ($project.repository.url && $project.repository.url != '')
<tr><td><a href="cvs-usage.html">Source Repository</a></td>
<td>
This is a link to the online source repository that can be
viewed via a web browser.
</td>
</tr>
#end
#if ($project.issueTrackingUrl && $project.issueTrackingUrl != '')
<tr><td><a href="issue-tracking.html">Issue Tracking</a></td>
<td>
This is a link to the issue tracking system for this
project. Issues (bugs, features, change requests) can be
created and queried using this link.
</td>
</tr>
#end
</table>
</subsection>
</section>
</body>
<!--
This is really bad that the url requires specification in two
places. Makes pluggable reporting impossible. FIX
-->
#if ($project.repository.url && $project.repository.url != '')
<tr>
<td>
<a href="cvs-usage.html">
<message key="template.project_info.section.subsection.document.source_repository"
bundle="plugin-resources\templates\templates" />
</a>
</td>
<td>
<message key="template.project_info.section.subsection.description.source_repository"
bundle="plugin-resources\templates\templates" />
</td>
</tr>
#end
#if ($project.issueTrackingUrl && $project.issueTrackingUrl != '')
<tr>
<td>
<a href="issue-tracking.html">
<message key="template.project_info.section.subsection.document.issue_tracking"
bundle="plugin-resources\templates\templates" />
</a>
</td>
<td>
<message key="template.project_info.section.subsection.description.issue_tracking"
bundle="plugin-resources\templates\templates" />
</td>
</tr>
#end
</table>
</subsection>
</section>
</body>
</document>

View File

@ -17,102 +17,106 @@
*/
-->
<document>
<properties>
<title>CVS</title>
</properties>
<properties>
<title key="template.cvs.title"
bundle="plugin-resources\templates\templates" />
</properties>
<body>
#set ($repository = $project.repository)
#if (!$repository)
<section name="Repository">
<p>
No SCM repository is defined.
</p>
</section>
#else
#if ($repository.url && $repository.url != '')
#set ($url = $escape.getText($repository.url))
<section name="Web Access">
<p>
<a href="$url">$url</a>
</p>
</section>
#end
#if ($repository.connection && $repository.connection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.connection, ''))
#set ($module = $repository.getCvsModule($repository.connection))
<section name="Anonymous CVS Access">
<p>
This project's CVS repository can be checked out through anonymous (pserver)
CVS with the following instruction set.
When prompted for a password for anonymous, simply press the Enter key.
</p>
<p>
cvs -d $conn login
<br/>
cvs -z3 -d $conn co $module
</p>
<body>
#set ($repository = $project.repository)
<p>
Updates from within the module's directory do not need the -d parameter.
</p>
</section>
#if (!$repository)
<section key="template.cvs.section1.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs.section1.no_repository"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#else
#set ($url = $escape.getText($repository.url))
#if ($repository.url && $repository.url != '')
<section key="template.cvs.section2.title"
bundle="plugin-resources\templates\templates">
<p>
<a href="$url">$url</a>
</p>
</section>
#end
#if ($repository.connection && $repository.connection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.connection, ''))
#set ($module = $repository.getCvsModule($repository.connection))
<section key="template.cvs.section3.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs.section3.description"
bundle="plugin-resources\templates\templates" />
</p>
<p>
cvs -d $conn login
<br />
cvs -z3 -d $conn co $module
</p>
<p>
<message key="template.cvs.section3.updates"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#if ($repository.developerConnection && $repository.developerConnection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.developerConnection, 'username'))
#set ($module = $repository.getCvsModule($repository.developerConnection))
#set ($server = $repository.getCvsServer($repository.developerConnection))
<section key="template.cvs.section4.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs.section4.description"
bundle="plugin-resources\templates\templates" />
</p>
<p>
export CVS_RSH=ssh
<br />
cvs -z3 -d $conn co $module
</p>
<p>
<message key="template.cvs.section4.remember"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#if ($repository.url && $repository.url != '')
<section key="template.cvs.section5.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.cvs.section5.description1"
bundle="plugin-resources\templates\templates" />
<a href="http://cvsgrab.sourceforge.net/">CVSGrab</a>
<message key="template.cvs.section5.description2"
bundle="plugin-resources\templates\templates" />
</p>
</section>
#end
#end
#end
#if ($repository.developerConnection && $repository.developerConnection != '')
#set ($connscm = $repository.getScmType())
#if ($connscm == 'cvs')
#set ($conn = $repository.getCvsRoot($repository.developerConnection, 'username'))
#set ($module = $repository.getCvsModule($repository.developerConnection))
#set ($server = $repository.getCvsServer($repository.developerConnection))
<section name="Developer CVS Access via SSH">
<p>
Only project developers can access the CVS tree via this method.
SSH1 must be installed on your client machine. Substitute
<b>name</b> with the proper value. Enter your site password when prompted.
</p>
<p>
export CVS_RSH=ssh
<br/>
cvs -z3 -d $conn co $module
</p>
<p>
Remember to replace 'username' with your actual username on $server.
</p>
</section>
#end
#end
#if ($repository.url && $repository.url != '')
<section name="CVS Access behind a firewall">
<p>
For those developers who are stuck behind a corporate
firewall, <a href="http://cvsgrab.sourceforge.net/">CVSGrab</a>
can use the viewcvs web interface to checkout the source code.
</p>
</section>
#end
#end
</body>
</body>
</document>

View File

@ -17,141 +17,194 @@
*/
-->
<document>
<properties>
<title key="template.team_list.title"
bundle="plugin-resources\templates\templates" />
</properties>
<properties>
<title>Project Team</title>
</properties>
<head>
<script type="text/javascript">
function offsetDate(id, offset) {
<head>
<script type="text/javascript">
function offsetDate(id, offset) {
var now = new Date() ;
var nowTime = now.getTime() ;
var localOffset = now.getTimezoneOffset() ;
var developerTime = nowTime + (offset * 60 * 60 * 1000) + (localOffset * 60 * 1000) ;
var developerDate = new Date(developerTime) ;
var now = new Date() ;
var nowTime = now.getTime() ;
var localOffset = now.getTimezoneOffset() ;
var developerTime = nowTime + (offset * 60 * 60 * 1000) + (localOffset * 60 * 1000) ;
var developerDate = new Date(developerTime) ;
document.getElementById(id).innerHTML = developerDate;
}
document.getElementById(id).innerHTML = developerDate;
}
function init() {
#foreach ($developer in $project.developers)
#if ($developer.timezone)
#if ($developer.timezone != "")
offsetDate("developer-$developer.id", "$developer.timezone");
#end
#end
#end
}
</script>
</head>
<body onload="init();">
function init() {
#foreach ($developer in $project.developers)
#if ($developer.timezone)
#if ($developer.timezone != "")
offsetDate("developer-$developer.id", "$developer.timezone");
#end
#end
#end
}
</script>
</head>
<section name="The Team">
<p>
A successful project requires many people to play many roles.
Some members write code or documentation, while others are
valuable as testers, submitting patches and suggestions.
</p>
<body onload="init();">
<p>
The team is comprised of <a href="#Members">Members</a>
and <a href="#Contributors">Contributors</a>. Members
have direct access to the source of a project and actively
evolve the code-base. Contributors improve the project
through submission of patches and suggestions to the Members.
The number of Contributors to the project is unbounded.
Get involved today. All contributions to the project are
greatly appreciated.
</p>
<section key="template.team_list.section.title"
bundle="plugin-resources\templates\templates">
<p>
<message key="template.team_list.section.description1"
bundle="plugin-resources\templates\templates" />
</p>
<subsection name="Members">
#if ($project.developers.size() == 0)
<p>
There are no developers working on this project. Please check
back at a later date.
</p>
#else
<p>
The following is a list of developers with commit privileges that have
directly contributed to the project in one way or another.
</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Id</th>
<th>Email</th>
<th>Organization</th>
<th>Roles</th>
<th>TZ Offset</th>
<th>Time</th>
</tr>
</thead>
<tbody>
#foreach ($developer in $project.developers)
<tr>
#if ($developer.url.length() != 0)
<td><a href="$developer.url">$!developer.name</a></td>
#else
<td>$!developer.name</td>
#end
<td><a name="$!developer.id"/>$!developer.id</td>
<td><a href="mailto:$!developer.email">$!developer.email</a></td>
<td>$!developer.organization</td>
<td>
#foreach ($role in $developer.roles)
$role<br/>
#end
</td>
<td>$!developer.timezone</td>
<td><span id="developer-$developer.id">Unknown</span></td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
<subsection name="Contributors">
#if ($project.contributors.size() == 0)
<p>
There are no contributors listed for this project. Please check
back again later.
</p>
#else
<p>
The following additional people have contributed to this project
through the way of suggestions, patches or documentation.
</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Organization</th>
<th>Roles</th>
</tr>
</thead>
<tbody>
#foreach ($contributor in $project.contributors)
<tr>
<td>$!contributor.name</td>
<td><a href="mailto:$!contributor.email">$!contributor.email</a></td>
<td>$!contributor.organization</td>
<td>
#foreach ($role in $contributor.roles)
$role<br/>
#end
</td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
</section>
</body>
<p>
<message key="template.team_list.section.description2"
bundle="plugin-resources\templates\templates" />
</p>
<subsection key="template.team_list.section.members.title"
bundle="plugin-resources\templates\templates">
#if ($project.developers.size() == 0)
<p>
<message
key="template.team_list.section.no_developer"
bundle="plugin-resources\templates\templates" />
</p>
#else
<p>
<message key="template.team_list.section.developers"
bundle="plugin-resources\templates\templates" />
</p>
<table>
<thead>
<tr>
<th>
<message key="template.team_list.section.developer.name"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.id"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.email"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.organization"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.roles"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.offset"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.developer.time"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
</thead>
<tbody>
#foreach ($developer in $project.developers)
<tr>
#if ($developer.url.length() != 0)
<td>
<a href="$developer.url">
$!developer.name
</a>
</td>
#else
<td>$!developer.name</td>
#end
<td>
<a name="$!developer.id" />
$!developer.id
</td>
<td>
<a href="mailto:$!developer.email">
$!developer.email
</a>
</td>
<td>$!developer.organization</td>
<td>
#foreach ($role in $developer.roles)
$role
<br />
#end
</td>
<td>$!developer.timezone</td>
<td>
<span id="developer-$developer.id">
<message key="template.team_list.section.developer.timezone.unknown"
bundle="plugin-resources\templates\templates" />
</span>
</td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
<subsection
key="template.team_list.section.contributors.title"
bundle="plugin-resources\templates\templates">
#if ($project.contributors.size() == 0)
<p>
<message key="template.team_list.section.no_contributor"
bundle="plugin-resources\templates\templates" />
</p>
#else
<p>
<message key="template.team_list.section.contributors"
bundle="plugin-resources\templates\templates" />
</p>
<table>
<thead>
<tr>
<th>
<message key="template.team_list.section.contributor.name"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.contributor.email"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.contributor.organization"
bundle="plugin-resources\templates\templates" />
</th>
<th>
<message key="template.team_list.section.contributor.roles"
bundle="plugin-resources\templates\templates" />
</th>
</tr>
</thead>
<tbody>
#foreach ($contributor in $project.contributors)
<tr>
<td>$!contributor.name</td>
<td>
<a href="mailto:$!contributor.email">
$!contributor.email
</a>
</td>
<td>$!contributor.organization</td>
<td>
#foreach ($role in $contributor.roles)
$role
<br />
#end
</td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
</section>
</body>
</document>

View File

@ -0,0 +1,154 @@
# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------
# To display the default language
defaultLocale.byDefault=English [By default]
# For cvs.xml
template.cvs.title=CVS
template.cvs.section1.title=Repository
template.cvs.section1.no_repository=No SCM repository is defined.
template.cvs.section2.title=Web Access
template.cvs.section3.title=Anonymous CVS Access
template.cvs.section3.description=This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. When prompted for a password for anonymous, simply press the Enter key.
template.cvs.section3.updates=Updates from within the module's directory do not need the -d parameter.
template.cvs.section4.title=Developer CVS Access via SSH
template.cvs.section4.description=Only project developers can access the CVS tree via this method. SSH1 must be installed on your client machine. Substitute <b>name</b> with the proper value. Enter your site password when prompted.
template.cvs.section4.remember=Remember to replace 'username' with your actual username on the server.
template.cvs.section5.title=CVS Access behind a firewall
template.cvs.section5.description1=For those developers who are stuck behind a corporate firewall,
template.cvs.section5.description2=can use the viewcvs web interface to checkout the source code.
# For cvs-usage.xml
template.cvs_usage.title=CVS
template.cvs_usage.section1.title=Repository
template.cvs_usage.section1.no_repository=No SCM repository is defined.
template.cvs_usage.section2.title=Web Access
template.cvs_usage.section3.title=Anonymous Access with Maven
template.cvs_usage.section3.description=This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction on a single line.
template.cvs_usage.section4.title=Anonymous CVS Access
template.cvs_usage.section4.description=This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. When prompted for a password for anonymous, simply press the Enter key.
template.cvs_usage.section4.updates=Updates from within the module's directory do not need the -d parameter.
template.cvs_usage.section5.title=Developer Access with Maven
template.cvs_usage.section5.description=Only project developers can access the CVS tree via this method. Substitute <b>username</b> with the proper value.
template.cvs_usage.section5.remember=Remember to replace 'username' with your actual username on the server.<br/> Also change <code>ssh</code> in <code>maven.scm.cvs.rsh=ssh</code> to the name of your ssh executable.
template.cvs_usage.section6.title=Developer CVS Access via SSH
template.cvs_usage.section6.description=Only project developers can access the CVS tree via this method. SSH1 must be installed on your client machine. Substitute <b>username</b> with the proper value. Enter your site password when prompted.
template.cvs_usage.section6.remember=Remember to replace 'username' with your actual username on the server.
template.cvs_usage.section7.title=CVS Access behind a firewall
template.cvs_usage.section7.description1=For those developers who are stuck behind a corporate firewall,
template.cvs_usage.section7.description2=can use the viewcvs web interface to checkout the source code.
# For dependencies.xml
template.dependencies.title=Dependencies
template.dependencies.section.title=Dependencies
template.dependencies.section.no_dependency=There are no dependencies for this project. It is a standalone application that does not depend on any other project.
template.dependencies.section.dependencies=The following is a list of dependencies for this project. These dependencies are required to compile and run the application:
template.dependencies.section.artifactID=Artifact ID
template.dependencies.section.type=Type
template.dependencies.section.version=Version
template.dependencies.section.url=URL
# For issue-tracking.xml
template.issue_tracking.title=Issue Tracking
template.issue_tracking.section.title=Issue Tracking
# For mail_lists.xml
template.mail_lists.not_available=Not Available
template.mail_lists.title=Mailing Lists
template.mail_lists.section.title=Mailing Lists
template.mail_lists.section.no_mail_list=There are no mailing lists established for this project. Please check back at a later date.
template.mail_lists.section.mail_lists=These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.
template.mail_lists.section.list_name=List Name
template.mail_lists.section.subscribe=Subscribe
template.mail_lists.section.unsubscribe=Unsubscribe
template.mail_lists.section.archive=Archive
# For maven-reports.xml
template.maven_reports.title=Project Reports
template.maven_reports.section.title=Maven Generated Reports
template.maven_reports.section.maven_reports1=This document provides an overview of the various reports that are automatically generated by
template.maven_reports.section.maven_reports2=. Each report is briefly described below.
template.maven_reports.section.subsection.title=Overview
template.maven_reports.section.subsection.document=Document
template.maven_reports.section.subsection.description=Description
# For project-info.xml
template.project_info.title=Project Information
template.project_info.section.title=General Project Information
template.project_info.section.project_information1=This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by
template.project_info.section.project_information2=on behalf of the project.
template.project_info.section.subsection.title=Overview
template.project_info.section.subsection.document=Document
template.project_info.section.subsection.description=Description
template.project_info.section.subsection.document.mailing_lists=Mailing Lists
template.project_info.section.subsection.description.mailing_lists=This document provides subscription and archive information for this project's mailing lists.
template.project_info.section.subsection.document.project_team=Project Team
template.project_info.section.subsection.description.project_team=This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
template.project_info.section.subsection.document.dependencies=Dependencies
template.project_info.section.subsection.description.dependencies=This document lists the projects dependencies and provides information on each dependency.
template.project_info.section.subsection.document.source_repository=Source Repository
template.project_info.section.subsection.description.source_repository=This is a link to the online source repository that can be viewed via a web browser.
template.project_info.section.subsection.document.issue_tracking=Issue Tracking
template.project_info.section.subsection.description.issue_tracking=This is a link to the issue tracking system for this project. Issues (bugs, features, change requests) can be created and queried using this link.
# For team-list.xml
template.team_list.title=Team list
template.team_list.section.title=The Team
template.team_list.section.description1=A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.
template.team_list.section.description2=The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.
template.team_list.section.members.title=Members
template.team_list.section.no_developer=There are no developers working on this project. Please check back at a later date.
template.team_list.section.developers=The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.
template.team_list.section.developer.name=Name
template.team_list.section.developer.id=Id
template.team_list.section.developer.email=Email
template.team_list.section.developer.organization=Organization
template.team_list.section.developer.roles=Roles
template.team_list.section.developer.offset=TZ Offset
template.team_list.section.developer.time=Time
template.team_list.section.contributors.title=Contributors
template.team_list.section.no_contributor=There are no contributors listed for this project. Please check back again later.
template.team_list.section.contributors=The following additional people have contributed to this project through the way of suggestions, patches or documentation.
template.team_list.section.contributor.name=Name
template.team_list.section.contributor.email=Email
template.team_list.section.contributor.organization=Organization
template.team_list.section.contributor.roles=Roles
template.team_list.section.developer.timezone.unknown=Unknown
# For navigation.jelly
navigation.menu.project_documentation=Project Documentation
navigation.menu.item.about=About
navigation.menu.item.downloads=Downloads
navigation.menu.item.project_info=Project Info
navigation.menu.item.mailing_lists=Mailing Lists
navigation.menu.item.project_team=Project Team
navigation.menu.item.dependencies=Dependencies
navigation.menu.item.source_repository=Source Repository
navigation.menu.item.issue_tracking=Issue Tracking
navigation.menu.item.project_reports=Project Reports
navigation.menu.item.development_process=Development Process
# For site.jsl
site.legend=Legend
site.last_published=Last published
site.doc_for=Doc for
site.external_link=External Link
site.opens_new_window=Opens in a new window
site.language=Language
site.goals=Goals
site.goal=Goal
site.description=Description

View File

@ -0,0 +1,153 @@
# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------
# Translated by Daniel Frey (daniel.frey@xmatrix.ch)
# To display the default language
defaultLocale.byDefault=Deutsche [Durch Rückstellung]
# For cvs.xml
template.cvs.title = CVS
template.cvs.section1.title = Repository
template.cvs.section1.no_repository = Es ist kein SCM definiert.
template.cvs.section2.title = Zugriff über das Web
template.cvs.section3.title = Anonymer CVS Zugriff
template.cvs.section3.description = This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. When prompted for a password for anonymous, simply press the Enter key.
template.cvs.section3.updates = Updates from within the module's directory do not need the -d parameter.
template.cvs.section4.title = Developer CVS Access via SSH
template.cvs.section4.description = Only project developers can access the CVS tree via this method. SSH1 must be installed on your client machine. Substitute <b>name</b> with the proper value. Enter your site password when prompted.
template.cvs.section4.remember = Remember to replace 'username' with your actual username on the server.
template.cvs.section5.title = CVS Access behind a firewall
template.cvs.section5.description1 = For those developers who are stuck behind a corporate firewall,
template.cvs.section5.description2 = can use the viewcvs web interface to checkout the source code.
# For cvs-usage.xml
template.cvs_usage.title = CVS
template.cvs_usage.section1.title = Repository
template.cvs_usage.section1.no_repository = No SCM repository is defined.
template.cvs_usage.section2.title = Web Access
template.cvs_usage.section3.title = Anonymous Access with Maven
template.cvs_usage.section3.description = This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction on a single line.
template.cvs_usage.section4.title = Anonymous CVS Access
template.cvs_usage.section4.description = This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. When prompted for a password for anonymous, simply press the Enter key.
template.cvs_usage.section4.updates = Updates from within the module's directory do not need the -d parameter.
template.cvs_usage.section5.title = Developer Access with Maven
template.cvs_usage.section5.description = Only project developers can access the CVS tree via this method. Substitute <b>username</b> with the proper value.
template.cvs_usage.section5.remember = Remember to replace 'username' with your actual username on the server.<br/> Also change <code>ssh</code> in <code>maven.scm.cvs.rsh = ssh</code> to the name of your ssh executable.
template.cvs_usage.section6.title = Developer CVS Access via SSH
template.cvs_usage.section6.description = Only project developers can access the CVS tree via this method. SSH1 must be installed on your client machine. Substitute <b>username</b> with the proper value. Enter your site password when prompted.
template.cvs_usage.section6.remember = Remember to replace 'username' with your actual username on the server.
template.cvs_usage.section7.title = CVS Access behind a firewall
template.cvs_usage.section7.description1 = For those developers who are stuck behind a corporate firewall,
template.cvs_usage.section7.description2 = can use the viewcvs web interface to checkout the source code.
# For dependencies.xml
template.dependencies.title = Abhängigkeiten
template.dependencies.section.title = Abhängigkeiten
template.dependencies.section.no_dependency = Für dieses Projekt existieren keine Abhängigkeiten. Es ist eine autonome Lösung ohne externe Abhängigkeiten.
template.dependencies.section.dependencies = Im Foldenden finden Sie eine Liste der Abhängikeiten für dieses Projekt. Diese Abhängikeiten müssen zur Verfügung stehen, um das Projekt zu kompilieren oder laufen zu lassen:
template.dependencies.section.artifactID = Artifact ID
template.dependencies.section.type = Typ
template.dependencies.section.version = Version
template.dependencies.section.url = URL
# For issue-tracking.xml
template.issue_tracking.title = Fehlerbehandlung
template.issue_tracking.section.title = Fehlerbehandlung
# For mail_lists.xml
template.mail_lists.title = Mailinglisten
template.mail_lists.section.title = Mailinglisten
template.mail_lists.section.no_mail_list = Für dieses Projekt wurden keine Mailinglisten eingerichtet. Bitte schauen Sie später nochmals rein.
template.mail_lists.section.mail_lists = Dies sind die Mailinglisten, die für dieses Projekt eingerichtet worden sind. Für jede Liste gibt es einen Abonnieren-, Abbestellen- und einen Archiv-Link.
template.mail_lists.section.list_name = Mailinglisten Name
template.mail_lists.section.subscribe = Abonnieren
template.mail_lists.section.unsubscribe = Abbgestellen
template.mail_lists.section.archive = Archiv
# For maven-reports.xml
template.maven_reports.title = Projekt Reports
template.maven_reports.section.title = Maven Generierte Reports
template.maven_reports.section.maven_reports1 = Dieses Dokument zeigt einen Überblick über die verschiedenen Reports, die von
template.maven_reports.section.maven_reports2 = generiert worden sind. Für jeden Report finden Sie unten eine kurze Beschreibung.
template.maven_reports.section.subsection.title = Überblick
template.maven_reports.section.subsection.document = Dokument
template.maven_reports.section.subsection.description = Beschreibung
# For project-info.xml
template.project_info.title = Projektinformation
template.project_info.section.title = Allgemeine Projekinformation
template.project_info.section.project_information1 = Dieses Dokument zeigt einen Überblick über die verschiedenen Dokumente und Verknüpfungen, die zur allgemeinen Information dieses Projekte gehören. Der Inhalt dieser Dokumente ist automatisch durch
template.project_info.section.project_information2 = generiert worden.
template.project_info.section.subsection.title = Überblick
template.project_info.section.subsection.document = Dokument
template.project_info.section.subsection.description = Beschreibung
template.project_info.section.subsection.document.mailing_lists = Mailinglisten
template.project_info.section.subsection.description.mailing_lists = Dieses Dokument zeigt Abonnier- und Archivierungs-Informationen für die Mailinglisten dieses Projektes.
template.project_info.section.subsection.document.project_team = Projekt Team
template.project_info.section.subsection.description.project_team = Dieses Dokument zeigt Informationen über die Leute, die zu diesem Projekt beigetragen haben. Diese Leute haben in der einen oder anderen Form zum Gelingen dieses Projektes beigetragen.
template.project_info.section.subsection.document.dependencies = Abhängigkeiten
template.project_info.section.subsection.description.dependencies = Dieses Dokument listet die Abhängigkeiten von diesem Projekt zu anderen Resourcen an und liefert Informationen dazu.
template.project_info.section.subsection.document.source_repository = Quell-Verzichnis
template.project_info.section.subsection.description.source_repository = Dieses Dokument zeigt Zugriffsmöglichkeiten auf den Quellbaum dieses Projektes.
template.project_info.section.subsection.document.issue_tracking = Fehlerbehandlung
template.project_info.section.subsection.description.issue_tracking = Dieses Dokument zeigt einen Link zur Website für die Fehlerbehandlung für dieses Projekt. Dort können Fehler, Änderungen und neue Anforderungen gemeldet werden.
# For team-list.xml
template.team_list.title = Team
template.team_list.section.title = Das Team
template.team_list.section.description1 = Ein erfolgreiches Projekt erfordert, dass viele Leute verschieden Rollen innerhalb des Teams wahrnehmen. Einige schreiben Quellcode, während andere ausprobieren und testen, wieder andere Vorschläge für Verbesserungen machen.
template.team_list.section.description2 = Das Team besteht aus Entwickler und Beitragende. Entwickler haben direkten Zugriff auf den Quellcode des Projektes und entwickeln die Quellcode-Basis weiter. Beitragende helfen, das Projekt zu verbessern, indem sie Fehlermeldungen, Änderungswünsche oder sogar Verbeserungsvorschläge einbringen und den Entwicklern melden. Die Anzahl von Beitragenden in diesem Projekt ist unbegrenzt. Beteiligen Sie sich heute noch! Jeder Beitrag ist von höchstem Wert.
template.team_list.section.members.title = Entwickler
template.team_list.section.no_developer = In diesem Projekt arbeiten keine Entwickler. Schauen Sie doch später nochmals rein.
template.team_list.section.developers = Im Folgenden finden Sie eine Liste der Entwickler dieses Projektes, die auf die eine oder andere Weise zum Gelingen dieses Projektes beigetragen haben.
template.team_list.section.developer.name = Name
template.team_list.section.developer.id = Kennung
template.team_list.section.developer.email = E-Mail
template.team_list.section.developer.organization = Organisation
template.team_list.section.developer.roles = Rolle
template.team_list.section.developer.offset = Zeitverschiebung
template.team_list.section.developer.time = Zeit
template.team_list.section.contributors.title = Helfer
template.team_list.section.no_contributor = Für dieses Projekt sind keine Helfer definiert. Bitte schauen Sie später nochmals rein.
template.team_list.section.contributors = Im Folgenden finden Sie Leute, die auf die eine oder andere Weise zu Gelingen dieses Projektes biegetragen haben. Dies kann zum Beisiel in der Form von Fehlermeldungen, Änderungswünschen, Lösungsvorschlägen, Tests, Dokumentation erfolgt sein.
template.team_list.section.contributor.name = Name
template.team_list.section.contributor.email = E-Mail
template.team_list.section.contributor.organization = Organisation
template.team_list.section.contributor.roles = Rolle
# For navigation.jelly
navigation.menu.project_documentation = Dokumentation
navigation.menu.item.about = Über
navigation.menu.item.downloads = Downloads
navigation.menu.item.project_info = Informationen
navigation.menu.item.mailing_lists = Mailinglisten
navigation.menu.item.project_team = Projekt Team
navigation.menu.item.dependencies = Abhängigkeiten
navigation.menu.item.source_repository = Quelle
navigation.menu.item.issue_tracking = Fehlerbehandlung
navigation.menu.item.project_reports = Reports
navigation.menu.item.development_process = Entwicklungs Prozess
# For site.jsl
site.legend = Legende
site.last_published = Letzte Änderung
site.doc_for = Dokumentation für
site.external_link = Externe Links
site.opens_new_window = Öffnet in einem neuen Fenster
site.language = Sprache
site.locale.en = Englisch
site.locale.fr = Französisch

View File

@ -0,0 +1,156 @@
# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------
# Translated by Vincent Siveton (vincent.siveton@gmail.com)
# To display the default language
defaultLocale.byDefault=Français [Par défaut]
# For cvs.xml
template.cvs.title=CVS
template.cvs.section1.title=Repository
template.cvs.section1.no_repository=Aucun dépôt SCM n'est défini.
template.cvs.section2.title=Accès Web
template.cvs.section3.title=Accès de façon anonyme
template.cvs.section3.description=Le dépôt d'archive CVS de ce projet peut être vérifié de façon anonyme (pserver) avec les instructions suivantes. Lorsqu'un mot de passe pour anonyme est demandé, appuyez simplement sur la touche Enter.
template.cvs.section3.updates=Les mises à jour à partir d'un module n'ont pas besoin du paramètre -d.
template.cvs.section4.title=Accès CVS pour les dévelopeurs via SSH
template.cvs.section4.description=Seulement les dévelopeurs du projet peuvent accéder à l'arbre de CVS par l'intermédiaire de cette méthode. SSH1 doit être installé sur votre machine client. Remplacez <b>nom</b> avec la valeur appropriée. Entrez votre mot de passe une fois incité.
template.cvs.section4.remember=Rappelez-vous de remplacer le 'username' par votre nom d'utilisateur réel dans le serveur.
template.cvs.section5.title=Accès CVS derrière un firewall
template.cvs.section5.description1=Pour les dévelopeurs qui sont coincés derrière un firewall,
template.cvs.section5.description2=peut utiliser l'interface Web pour effectuer un checkout du code source.
# For cvs-usage.xml
template.cvs_usage.title=CVS
template.cvs_usage.section1.title=Repository
template.cvs_usage.section1.no_repository=Aucun dépôt SCM n'est défini.
template.cvs_usage.section2.title=Accès Web
template.cvs_usage.section3.title=Accès de façon anonyme avec Maven
template.cvs_usage.section3.description=Le dépôt d'archive CVS de ce projet peut être vérifié de façon anonyme (pserver) avec les instructions suivantes. Lorsqu'un mot de passe pour anonyme est demandé, appuyez simplement sur la touche Enter.
template.cvs_usage.section4.title=Accés CVS de façon anonyme
template.cvs_usage.section4.description=Le dépôt d'archive CVS de ce projet peut être vérifié de façon anonyme (pserver) avec les instructions suivantes. Lorsqu'un mot de passe pour anonyme est demandé, appuyez simplement sur la touche Enter.
template.cvs_usage.section4.updates=Les mises à jour à partir d'un module n'ont pas besoin du paramètre -d.
template.cvs_usage.section5.title=Accès CVS pour les dévelopeurs avec Maven
template.cvs_usage.section5.description=Seulement les dévelopeurs du projet peuvent accéder à l'arbre de CVS par l'intermédiaire de cette méthode. Remplacez <b>nom</b> avec la valeur appropriée.
template.cvs_usage.section5.remember=Rappelez-vous de remplacer le 'username' par votre nom d'utilisateur réel dans le serverr. <br /> Changez aussi <code>ssh</code> dans <code>maven.scm.cvs.rsh=ssh</code> avec le nom de exécutable SSH.
template.cvs_usage.section6.title=Accès CVS pour les dévelopeurs via SSH
template.cvs_usage.section6.description=Seulement les dévelopeurs du projet peuvent accéder à l'arbre de CVS par l'intermédiaire de cette méthode. SSH1 doit être installé sur votre machine client. Remplacez <b>nom</b> avec la valeur appropriée. Entrez votre mot de passe une fois incité.
template.cvs_usage.section6.remember=Rappelez-vous de remplacer le 'username' par votre nom d'utilisateur réel dans le serveur.
template.cvs_usage.section7.title=Accès CVS derrière un firewall
template.cvs_usage.section7.description1=Pour les dévelopeurs qui sont coincés derrière un firewal,
template.cvs_usage.section7.description2=peut utiliser l'interface Web pour effectuer un checkout du code source.
# For dependencies.xml
template.dependencies.title=Dépendances
template.dependencies.section.title=Dépendances
template.dependencies.section.no_dependency=Il n'y a aucune dépendance pour ce projet. C'est une application autonome qui ne dépend d'aucun autre projet.
template.dependencies.section.dependencies=Ce qui suit est une liste des dépendances pour ce projet. Ces dépendances sont exigées pour compiler et exécuter l'application:
template.dependencies.section.artifactID=Artefact ID
template.dependencies.section.type=Type
template.dependencies.section.version=Version
template.dependencies.section.url=URL
# For issue-tracking.xml
template.issue_tracking.title=Contrôle des livraisons
template.issue_tracking.section.title=Contrôle des livraisons
# For mail_lists.xml
template.mail_lists.not_available=Non-disponible
template.mail_lists.title=Listes de diffusion
template.mail_lists.section.title=Listes de diffusion
template.mail_lists.section.no_mail_list=Il n'y a aucune liste de diffusion établie pour ce projet. Vérifiez plus tard si une liste de diffusion est disponible.
template.mail_lists.section.mail_lists=Ce sont les listes de diffusion qui ont été établies pour ce projet. Pour chaque liste, il y a une souscription, une annulation de souscription, et un lien vers les archives.
template.mail_lists.section.list_name=Nom de la liste
template.mail_lists.section.subscribe=Souscription
template.mail_lists.section.unsubscribe=Annulation de souscription
template.mail_lists.section.archive=Archive
# For maven-reports.xml
template.maven_reports.title=Rapports sur le projet
template.maven_reports.section.title=Rapports produits par Maven
template.maven_reports.section.maven_reports1=Ce document fournit une vue d'ensemble des divers rapports qui sont automatiquement produits par
template.maven_reports.section.maven_reports2=. Chaque document est brièvement décrit.
template.maven_reports.section.subsection.title=Vue d'ensemble
template.maven_reports.section.subsection.document=Document
template.maven_reports.section.subsection.description=Description
# For project-info.xml
template.project_info.title=Information sur le projet
template.project_info.section.title=Information générale sur le project
template.project_info.section.project_information1=Ce document fournit une vue d'ensemble des divers documents et liens qui font partie des informations générales de ce projet. Tout ce contenu est automatiquement produit par
template.project_info.section.project_information2=pour ce projet.
template.project_info.section.subsection.title=Vue d'ensemble
template.project_info.section.subsection.document=Document
template.project_info.section.subsection.description=Description
template.project_info.section.subsection.document.mailing_lists=Listes de diffusion
template.project_info.section.subsection.description.mailing_lists=Ce document fournit l'abonnement ainsi que les archives pour les listes de diffusion de ce projet.
template.project_info.section.subsection.document.project_team=Membres de ce projet
template.project_info.section.subsection.description.project_team=Ce document fournit des informations sur les membres de ce projet. Ce sont les individus qui ont contribué au projet d'une façon ou d'une autre.
template.project_info.section.subsection.document.dependencies=Dépendances
template.project_info.section.subsection.description.dependencies=Ce document énumère les dépendances de ce projet et fournit des informations sur chaque dépendance.
template.project_info.section.subsection.document.source_repository=Dépôt de sources
template.project_info.section.subsection.description.source_repository=C'est un lien au dépôt de sources en ligne qui peut être regardé par l'intermédiaire d'un browser Web.
template.project_info.section.subsection.document.issue_tracking=Contrôle des livraisons
template.project_info.section.subsection.description.issue_tracking=C'est un lien au système de contrôle des livraisons pour ce projet. Des issues (bogues, dispositifs, demandes de changement) peuvent être créées et questionnées en utilisant ce lien.
# For team-list.xml
template.team_list.title=Membres de l'équipe
template.team_list.section.title=L'équipe
template.team_list.section.description1=Un projet réussi exige que beaucoup de personnes jouent plusieurs rôles. Quelques personnes écrivent le code ou la documentation, alors que d'autres testent, soumettent des patches ou des suggestions.
template.team_list.section.description2=L'équipe est composée des membres et des collaborateurs . Les membres ont un accès direct aux sources du projet et font évolué activement le code de base. Les contribuants améliorent le projet par la soumission de patches et des suggestions aux membres. Le nombre de contribuants au projet est illimité. Toutes les contributions au projet sont considérablement appréciées.
template.team_list.section.members.title=Members=Membres
template.team_list.section.no_developer=Il n'y a aucun dévelopeur travaillant sur ce projet. Vérifiez plus tard si des dévelopeurs ont été ajouté.
template.team_list.section.developers=Ce qui suit est la liste des dévelopeurs avec leurs rôles qui ont contribué d'une manière ou d'une autre au projet.
template.team_list.section.developer.name=Nom
template.team_list.section.developer.id=Id
template.team_list.section.developer.email=Email
template.team_list.section.developer.organization=Organisation
template.team_list.section.developer.roles=Rôles
template.team_list.section.developer.offset=TZ Offset
template.team_list.section.developer.time=Heure GMT
template.team_list.section.contributors.title=Collaborateurs
template.team_list.section.no_contributor=Il n'y a aucun collaborateur travaillant sur ce projet. Vérifiez plus tard si des collaborateurs ont été ajouté.
template.team_list.section.contributors=Les personnes additionnelles suivantes ont contribué à ce projet pour leurs suggestions, ou leurs apports à la documentation ou aux patches.
template.team_list.section.contributor.name=Nom
template.team_list.section.contributor.email=Email
template.team_list.section.contributor.organization=Organisation
template.team_list.section.contributor.roles=Rôles
template.team_list.section.developer.timezone.unknown=Inconnu
# For navigation.jelly
navigation.menu.project_documentation=Documentation sur le projet
navigation.menu.downloads=Téléchargements
navigation.menu.item.about=A propos
navigation.menu.item.project_info=Info sur le projet
navigation.menu.item.mailing_lists=Listes de diffusion
navigation.menu.item.project_team=Equipe du projet
navigation.menu.item.dependencies=Dépendances
navigation.menu.item.source_repository=Source Repository
navigation.menu.item.issue_tracking=Contrôle des livraisons
navigation.menu.item.project_reports=Rapports sur le projet
navigation.menu.item.development_process=Processus de développement
# For site.jsl
site.legend=Légende
site.last_published=Dernière publication
site.doc_for=Doc pour
site.external_link=Lien externe
site.opens_new_window=Ouverture dans une nouvelle fenêtre
site.language=Langue
site.goals=Buts
site.goal=But
site.description=Description

View File

@ -19,4 +19,9 @@
<goal name="testPlugin">
<maven:reactor basedir="${basedir}" includes="test*/project.xml" goals="testPlugin" banner="Test" ignoreFailures="false"/>
</goal>
<goal name="multixdoc">
<maven:reactor basedir="${basedir}"
includes="test*/project.xml"
goals="xdoc" banner="Test" ignoreFailures="false" />
</goal>
</project>

View File

@ -0,0 +1,76 @@
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project xmlns:util="jelly:util"
xmlns:j="jelly:core"
xmlns:assert="assert"
xmlns:doc="doc"
xmlns:x="jelly:xml">
<goal name="testPlugin" prereqs="clean,xdoc">
<j:set var="linkcheck" value="${maven.build.dir}/linkcheck/linkcheck-results.xml"/>
<assert:assertFileExists file="${linkcheck}"/>
<util:file var="linkcheckFile" name="${linkcheck}"/>
<x:parse var="linkcheckDoc" xml="${linkcheckFile.toURL()}"/>
<x:set var="countLogo" select="count($linkcheckDoc/linkcheck/file/result[contains(child::target,'apache-maven-project.png')][contains(child::status,'NOT FOUND')])"/>
<assert:assertEquals expected="0" value="${countLogo.intValue().toString()}" msg="Logo not found."/>
<x:set var="countUrl" select="count($linkcheckDoc/linkcheck/file/result[contains(child::target,'project-info.html')][contains(child::status,'NOT FOUND')])"/>
<assert:assertEquals expected="0" value="${countUrl.intValue().toString()}" msg="Url not found."/>
<assert:assertFileExists file="velocity.log"/>
<!-- Test the output according the project.properties file -->
<!-- maven.xdoc.locale.supported=en_CA, fr_CA -->
<!-- Test Default language -->
<assert:assertFileExists file="${maven.docs.dest}/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/subdir/testjsltosite.html"/>
<!-- Test en_CA language -->
<assert:assertFileExists file="${maven.docs.dest}/en_CA/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/subdir/testjsltosite.html"/>
<!-- Test fr_CA language -->
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/subdir/testjsltosite.html"/>
</goal>
</project>

View File

@ -0,0 +1,23 @@
# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------
maven.xdoc.locale.default=en
maven.xdoc.locale.supported=en_CA, fr_CA
# Presentation Properties
maven.xdoc.date=left
maven.xdoc.date.format=dd MMMM yyyy HH:mm z
maven.xdoc.date.locale=en

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project>
<pomVersion>3</pomVersion>
<issueTrackingUrl>http://jira.codehaus.org/browse/MAVEN</issueTrackingUrl>
<id>test-maven-xdoc-plugin-03</id>
<name>MPXDOC-128</name>
<groupId>maven</groupId>
<currentVersion>1.0</currentVersion>
<organization>
<name>Apache Software Foundation</name>
<url>/project-info.html</url>
<logo>/images/apache-maven-project.png</logo>
</organization>
<logo>/images/maven.gif</logo>
<description>Test for MPXDOC-128</description>
<shortDescription>Test for MPXDOC-128</shortDescription>
<url>/project-info.html</url>
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="myfile_i18n.title"/>
</properties>
<body>
<section key="myfile_i18n.section1.title">
<p>
<message key="myfile_i18n.section1.description1"/>
</p>
<p>
<message key="myfile_i18n.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project name="Nanuq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="MAVEN_HOME/maven-navigation-1.0.xsd">
<title>MPXDOC128</title>
<body>
<menu name="General Project Information">
<item name="myfile_i18n"
href="/myfile_i18n.html" />
<item name="testjsltosite"
href="/subdir/testjsltosite.html" />
<item name="testjsltosite2"
href="/subdir/subdir2/testjsltosite2.html" />
</menu>
</body>
</project>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project name="MPXDOC-128"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="MAVEN_HOME/maven-navigation-1.0.xsd">
<title key="navigation.title"/>
<body>
<breadcrumbs>
<item name="Maven" href="http://maven.apache.org"/>
<item name="Maven Plugins" href="http://maven.apache.org/reference/plugins/index.html"/>
</breadcrumbs>
<links>
<!--
<item name="PDF Documentation" href="app.pdf"
img="images/pdf.gif"/>
-->
</links>
<!-- project overview -->
<menu key="navigation.menu1.title">
<item key="navigation.menu1.item1"
href="/myfile_i18n.html" />
<item key="navigation.menu1.item2"
href="/subdir/testjsltosite.html" />
<item key="navigation.menu1.item3"
href="/subdir/subdir2/testjsltosite2.html" />
</menu>
</body>
</project>

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="testjstltosite.title"/>
</properties>
<body>
<section key="testjstltosite.section1.title">
<p>
<message key="testjstltosite.section1.description1"/>
</p>
<p>
<message key="testjstltosite.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="testjstltosite.title"/>
</properties>
<body>
<section key="testjstltosite.section1.title">
<p>
<message key="testjstltosite.section1.description1"/>
</p>
<p>
<message key="testjstltosite.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="testjstltosite.title"/>
</properties>
<body>
<section key="testjstltosite.section1.title">
<subsection key="testjstltosite.section1.title">
<p>
<message key="testjstltosite.section1.description1"/>
</p>
<p>
<message key="testjstltosite.section1.description2"/>
</p>
</subsection>
</section>
</body>
</document>

View File

@ -0,0 +1,18 @@
# From navigation.xml
navigation.title=MPXDOC-128
navigation.menu1.title=General Project Information
navigation.menu1.item1=myfile_i18n
navigation.menu1.item2=testjsltosite
navigation.menu1.item3=testjsltosite2
# From myfile_i18n.xml
myfile_i18n.title=Xdoc test Document
myfile_i18n.section1.title=Title 1
myfile_i18n.section1.description1=empty document
myfile_i18n.section1.description2=This document is generated separately from other xdoc documents but should retain the site stylesheet and navigation.
# From testjstltosite.xml
testjstltosite.title=test jslToSite tag
testjstltosite.section1.title=Title 1
testjstltosite.section1.description1=empty document
testjstltosite.section1.description2=This document is generated separately from other xdoc documents but should retain the site stylesheet and navigation.

View File

@ -0,0 +1,18 @@
# From navigation.xml
navigation.title=MPXDOC-128
navigation.menu1.title=Information générale sur le projet
navigation.menu1.item1=myfile_i18n
navigation.menu1.item2=testjsltosite
navigation.menu1.item3=testjsltosite2
# From myfile_i18n.xml
myfile_i18n.title=Document Xdoc test
myfile_i18n.section1.title=Titre 1
myfile_i18n.section1.description1=document vide
myfile_i18n.section1.description2=Ce document est produit séparément des autres documents XDOC mais devrait maintenir le stylesheet et la navigation d'emplacement.
# From testjstltosite.xml
testjstltosite.title=test jslToSite tag
testjstltosite.section1.title=Titre 1
testjstltosite.section1.description1=document vide
testjstltosite.section1.description2=Ce document est produit séparément des autres documents XDOC mais devrait maintenir le stylesheet et la navigation d'emplacement.

View File

@ -0,0 +1,76 @@
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project xmlns:util="jelly:util"
xmlns:j="jelly:core"
xmlns:assert="assert"
xmlns:doc="doc"
xmlns:x="jelly:xml">
<goal name="testPlugin" prereqs="clean,xdoc">
<j:set var="linkcheck" value="${maven.build.dir}/linkcheck/linkcheck-results.xml"/>
<assert:assertFileExists file="${linkcheck}"/>
<util:file var="linkcheckFile" name="${linkcheck}"/>
<x:parse var="linkcheckDoc" xml="${linkcheckFile.toURL()}"/>
<x:set var="countLogo" select="count($linkcheckDoc/linkcheck/file/result[contains(child::target,'apache-maven-project.png')][contains(child::status,'NOT FOUND')])"/>
<assert:assertEquals expected="0" value="${countLogo.intValue().toString()}" msg="Logo not found."/>
<x:set var="countUrl" select="count($linkcheckDoc/linkcheck/file/result[contains(child::target,'project-info.html')][contains(child::status,'NOT FOUND')])"/>
<assert:assertEquals expected="0" value="${countUrl.intValue().toString()}" msg="Url not found."/>
<assert:assertFileExists file="velocity.log"/>
<!-- Test the output according the project.properties file -->
<!-- maven.xdoc.locale.list=en_CA, fr_CA -->
<!-- Test Default language -->
<assert:assertFileExists file="${maven.docs.dest}/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/subdir/testjsltosite.html"/>
<!-- Test en_CA language -->
<assert:assertFileExists file="${maven.docs.dest}/en_CA/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/en_CA/subdir/testjsltosite.html"/>
<!-- Test fr_CA language -->
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/cvs-usage.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/mail-lists.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/dependencies.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/maven-reports.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/team-list.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/downloads.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/index.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/myfile_i18n.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/issue-tracking.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/project-info.html"/>
<assert:assertFileExists file="${maven.docs.dest}/fr_CA/subdir/testjsltosite.html"/>
</goal>
</project>

View File

@ -0,0 +1,24 @@
# -------------------------------------------------------------------
# Copyright 2001-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------
maven.xdoc.locale.default=en
maven.xdoc.locale.supported=en_CA, fr_CA
# Presentation Properties
maven.xdoc.date=left
maven.xdoc.date.format=dd MMMM yyyy HH:mm z
maven.xdoc.date.locale=en
maven.xdoc.ui.localeList.asSelect=true

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project>
<pomVersion>3</pomVersion>
<issueTrackingUrl>http://jira.codehaus.org/browse/MAVEN</issueTrackingUrl>
<id>test-maven-xdoc-plugin-04</id>
<name>MPXDOC-128</name>
<groupId>maven</groupId>
<currentVersion>1.0</currentVersion>
<organization>
<name>Apache Software Foundation</name>
<url>/project-info.html</url>
<logo>/images/apache-maven-project.png</logo>
</organization>
<logo>/images/maven.gif</logo>
<description>An other test for MPXDOC-128</description>
<shortDescription>An other test for MPXDOC-128</shortDescription>
<url>/project-info.html</url>
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="myfile_i18n.title"/>
</properties>
<body>
<section key="myfile_i18n.section1.title">
<p>
<message key="myfile_i18n.section1.description1"/>
</p>
<p>
<message key="myfile_i18n.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<project name="MPXDOC-128"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="MAVEN_HOME/maven-navigation-1.0.xsd">
<title key="navigation.title"/>
<body>
<links>
<!--
<item name="PDF Documentation" href="app.pdf"
img="images/pdf.gif"/>
-->
</links>
<!-- project overview -->
<menu key="navigation.menu1.title">
<item key="navigation.menu1.item1"
href="/myfile_i18n.html" />
<item key="navigation.menu1.item2"
href="/subdir/testjsltosite.html" />
<item key="navigation.menu1.item3"
href="/subdir/subdir2/testjsltosite2.html" />
</menu>
</body>
</project>

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="testjstltosite.title"/>
</properties>
<body>
<section key="testjstltosite.section1.title">
<p>
<message key="testjstltosite.section1.description1"/>
</p>
<p>
<message key="testjstltosite.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
<title key="testjstltosite.title"/>
</properties>
<body>
<section key="testjstltosite.section1.title">
<p>
<message key="testjstltosite.section1.description1"/>
</p>
<p>
<message key="testjstltosite.section1.description2"/>
</p>
</section>
</body>
</document>

View File

@ -0,0 +1,18 @@
# From navigation.xml
navigation.title=MPXDOC-128
navigation.menu1.title=General Project Information
navigation.menu1.item1=myfile_i18n
navigation.menu1.item2=testjsltosite
navigation.menu1.item3=testjsltosite2
# From myfile_i18n.xml
myfile_i18n.title=Xdoc test Document
myfile_i18n.section1.title=Title 1
myfile_i18n.section1.description1=empty document
myfile_i18n.section1.description2=This document is generated separately from other xdoc documents but should retain the site stylesheet and navigation.
# From testjstltosite.xml
testjstltosite.title=test jslToSite tag
testjstltosite.section1.title=Title 1
testjstltosite.section1.description1=empty document
testjstltosite.section1.description2=This document is generated separately from other xdoc documents but should retain the site stylesheet and navigation.

View File

@ -0,0 +1,18 @@
# From navigation.xml
navigation.title=MPXDOC-128
navigation.menu1.title=Information générale sur le projet
navigation.menu1.item1=myfile_i18n
navigation.menu1.item2=testjsltosite
navigation.menu1.item3=testjsltosite2
# From myfile_i18n.xml
myfile_i18n.title=Document Xdoc test
myfile_i18n.section1.title=Titre 1
myfile_i18n.section1.description1=document vide
myfile_i18n.section1.description2=Ce document est produit séparément des autres documents XDOC mais devrait maintenir le stylesheet et la navigation d'emplacement.
# From testjstltosite.xml
testjstltosite.title=test jslToSite tag
testjstltosite.section1.title=Title 1
testjstltosite.section1.description1=document vide
testjstltosite.section1.description2=Ce document est produit séparément des autres documents XDOC mais devrait maintenir le stylesheet et la navigation d'emplacement.

View File

@ -29,6 +29,7 @@
<assert:assertFileExists file="${depXmlPath}"/>
<util:file var="depXmlFile" name="${depXmlPath}"/>
<x:parse var="depXmlDom" xml="${depXmlFile}"/>
<!--
<x:set var="headerComment" select="string($depXmlDom/document/body/section[@name='Dependencies']/table/thead/tr/th[5])"/>
<assert:assertEquals expected="Comment" value="${headerComment}"/>
<x:forEach var="tr" select="$depXmlDom/document/body/section[@name='Dependencies']/table/tbody/*">
@ -47,7 +48,7 @@
<assert:assertEquals expected="" value="${comment.trim()}"/>
</j:if>
</x:forEach>
-->
</goal>
</project>

View File

@ -0,0 +1,69 @@
package org.apache.maven.xdoc.util;
/* ====================================================================
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*/
import java.util.Locale;
import org.apache.maven.xdoc.util.LocaleUtil;
import junit.framework.TestCase;
/**
* LocaleUtil Test class.
*
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
* @version $Id$
*/
public class LocaleUtilTest extends TestCase {
public void testCodeToLocale1() {
Locale locale = LocaleUtil.codeToLocale("en");
assertEquals(locale.toString(), "en");
}
public void testCodeToLocale2() {
Locale locale = LocaleUtil.codeToLocale("en_CA");
assertEquals(locale.toString(), "en_CA");
}
public void testCodeToLocaleAsNull() {
Locale locale = LocaleUtil.codeToLocale(null);
assertNull(locale);
}
public void testCodeToLocaleAsDefault() {
Locale locale = LocaleUtil.codeToLocale("default");
assertEquals(locale, Locale.getDefault());
}
public void testCodesToLocales() {
Locale[] locales = LocaleUtil.codesToLocales("en, en_CA");
assertEquals(locales[0].toString(), "en");
assertEquals(locales[1].toString(), "en_CA");
}
public void testCodesToLocalesAsNull() {
Locale[] locales = LocaleUtil.codesToLocales(null);
assertNull(locales);
}
public void testDisplayName() {
Locale locale = new Locale("fr");
String result = LocaleUtil.displayName(locale, locale);
assertEquals(result, "Français");
}
}

View File

@ -72,8 +72,14 @@ maven.xdoc.poweredby.url = http://maven.apache.org/
</question>
<answer>Create an index.xml file in the xdocs directory.</answer>
</faq>
<faq id="i18n">
<question>Does the documentation generated by Maven Xdocs plugin support internationalization?</question>
<answer>
Yes. Please see the <a href="i18n.html">i18n</a> document.
</answer>
</faq>
</part>
<part id="navigation">
<title>Navigation</title>

View File

@ -22,11 +22,11 @@
<properties>
<title>XDoc Plugin Goals</title>
<author email="dion@apache.org">dIon Gillard</author>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
</properties>
<body>
<goals>
<goal>
<name>xdoc</name>
<description>
@ -49,8 +49,19 @@
This goal defines the <code>DVSL</code> tag library for generating
documentation. A single tag <code>dvsl:dvsl</code> is defined.
</description>
</goal>
</goal>
<goal>
<name>copy-user-bundles</name>
<description>
Copy user bundles in the XDOC plugin. Used for the i18n support.
</description>
</goal>
<goal>
<name>clean-user-bundles</name>
<description>
Remove all user bundles from the XDOC plugin.
</description>
</goal>
</goals>
</body>
</document>

166
xdoc/xdocs/i18n.xml Normal file
View File

@ -0,0 +1,166 @@
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<title>About</title>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
</properties>
<body>
<section name="Internationalization">
<p>
This plugin could produce internationalised Maven1 documentation.
</p>
</section>
<section name="Used Technologies">
<p>
XDoc plugin uses Java to produce internationalised
documentation. Please refer to:
<ul>
<li>
<a href="http://java.sun.com/j2se/corejava/intl/index.jsp">
Core Java Internationalization
</a>
</li>
<li>
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html">
ResourceBundle (Java 2 Platform SE v1.4.2)
</a>
</li>
<li>
<a href="http://java.sun.com/j2se/1.4.2/docs/guide/intl/locale.doc.html">
Supported Locales
</a>
</li>
<li>
<a href="http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html">
Supported Encodings
</a>
</li>
</ul>
The XDoc plugin will generate this following structure:
<source>
|-- en\
|-- user_dir\
|-- index.html
|-- ... (mail-lists.html, maven-reports.html...)
|-- fr\
|-- user_dir\
|-- index.html
|-- ... (mail-lists.html, maven-reports.html...)
|-- OTHER_LANGUAGE\
|-- user_dir\
|-- index.html
|-- ... (mail-lists.html, maven-reports.html...)
|-- images\
|-- style\
|-- user_dir\
|-- index.html
|-- ... (mail-lists.html, maven-reports.html...)</source>
</p>
</section>
<section name="Getting started">
<subsection name="First step">
<p>
You should define a default locale and all supported locales.
For example, you want to produce Maven documentation by
default in English, and also in French and in German. Just add
these properties in your <code>project.properties</code> file:
<div class="source">
<pre>
maven.xdoc.locale.default=en
maven.xdoc.locale.supported=fr, de</pre>
</div>
</p>
</subsection>
<subsection name="Second step">
<p>
You should define your own bundles called
<code>${maven.xdoc.bundle}.properties</code>
in the
<code>${maven.xdoc.bundle.src}</code>
directory. In our example, you should have:
<div class="source">
<pre>
|-- ${maven.xdoc.bundle.src}\
|-- user_dir\
|-- ${maven.xdoc.bundle}.properties
|-- ${maven.xdoc.bundle}_fr.properties
|-- ${maven.xdoc.bundle}_de.properties
</pre>
</div>
</p>
</subsection>
<subsection name="Last step">
<p>
You should create your own XDoc files which supports i18n. For
<code>navigation.xml</code> :
<source><![CDATA[
<menu key="mykey"/>
<item key="mykey" href="/mylink.html" />]]></source>
For <code>myxdoc.xml</code> :
<source><![CDATA[
<title key="mykey"/>
<message key="mykey"/>
<section key="mykey"/>
<subsection key="mykey"/>]]></source>
NOTE: XDoc plugin always uses key if defined. For instance,
this line of code:
<source><![CDATA[<title key="myKey">blabla</title>]]></source>
will produce the key value and not "blabla".
</p>
</subsection>
<subsection name="Beautify the generated navigation">
<p>
If you have lots of languages defined, you can beautify the
display with a select form. Just add this following property:
<div class="source">
<pre>maven.xdoc.ui.localeList.asSelect=true</pre>
</div>
</p>
</subsection>
</section>
<section name="Language supported">
<p>
Actually, only English, French and German are currently fully
supported by Maven. Contributions are welcome!
</p>
</section>
<section name="Known Issues">
<subsection name="Generated Reports">
<p>
All generated reports by other plugins are not supported by the XDoc plugin.
Each Maven1 plugin should be translated by their authors.
</p>
</subsection>
<subsection name="Others Plugins">
<p>
Actually, PDF and HTML2XDOC plugins do not support the
internationalization.
</p>
</subsection>
</section>
</body>
</document>

View File

@ -32,6 +32,7 @@
<menu name="Overview">
<item name="Goals" href="/goals.html"/>
<item name="Properties" href="/properties.html"/>
<item name="i18n" href="/i18n.html"/>
<item name="FAQs" href="/faq.html"/>
</menu>
</body>

View File

@ -18,11 +18,11 @@
-->
<document>
<properties>
<title>Xdoc Properties</title>
<author email="smor@apache.org">Stéphane MOR</author>
<author email="vmassol@apache.org">Vincent Massol</author>
<author email="vincent.siveton@gmail.com">Vincent Siveton</author>
</properties>
<body>
@ -113,6 +113,88 @@
</tr>
</table>
</section>
<section name="I18n Properties">
<table>
<tr>
<th>Property name</th>
<th>Optional?</th>
<th>Description</th>
</tr>
<tr>
<td>maven.xdoc.date.format</td>
<td>Yes</td>
<td>
Sets the format of the date to display. Defaults to "dd MMMM
yyyy" (eg: "14 August 2002"). For details on the format, see
SimpleDateFormat in the jdk documentation.
</td>
</tr>
<tr>
<td>maven.xdoc.date.locale</td>
<td>Yes</td>
<td>Sets the locale used for the date. Defaults to "en", ie english.
</td>
</tr>
<tr>
<td>maven.xdoc.locale.default</td>
<td>Yes</td>
<td>
Sets the default locale used for the translation. If null, it is
the default locale for this instance of the Java Virtual Machine
Defaults to "en", ie english, to ensure backward compatible.
</td>
</tr>
<tr>
<td>maven.xdoc.locale.supported</td>
<td>Yes</td>
<td>
A comma separated of locales supported by the project, ie "fr,
en_CA"
</td>
</tr>
<tr>
<td>maven.xdoc.bundle.src</td>
<td>Yes</td>
<td>
Specifies the location where user bundles are stored. The
default value is ${maven.docs.src}.
</td>
</tr>
<tr>
<td>maven.xdoc.bundle</td>
<td>Yes</td>
<td>
Specifies the name of the user bundles. The default value is
xdocs.
</td>
</tr>
<tr>
<td>maven.xdoc.ui.displayByDefault</td>
<td>Yes</td>
<td>
Boolean value to specify the display of the default language, ie
"English [By default]". The default value is false.
</td>
</tr>
<tr>
<td>maven.xdoc.ui.localeList.asSelect</td>
<td>Yes</td>
<td>
Boolean value to display the language list as an HTML
&lt;select/&gt; tag. The default value is false.
</td>
</tr>
<tr>
<td>maven.xdoc.ui.localeList.max</td>
<td>Yes</td>
<td>
An integer value to specify the maximum number of locales
displayes without an HTML &lt;select/&gt; tag. The default value is 5.
</td>
</tr>
</table>
</section>
<section name="Presentation Properties">
<table>
<tr>
@ -158,23 +240,6 @@
If "maven.xdoc.date" is left empty, no date is shown on the site (default).
</td>
</tr>
<tr>
<td>maven.xdoc.date.format</td>
<td>Yes</td>
<td>
Sets the format of the date to display.
Defaults to "dd MMMM yyyy" (eg: "14 August 2002").
For details on the format, see SimpleDateFormat in the jdk documentation.
</td>
</tr>
<tr>
<td>maven.xdoc.date.locale</td>
<td>Yes</td>
<td>
Sets the locale used for the date.
Defaults to "en", ie english.
</td>
</tr>
<tr>
<td>maven.xdoc.version</td>
<td>Yes</td>