You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2003/05/10 13:34:10 UTC

cvs commit: cocoon-2.1/src/webapp/samples/i18n/images chapter.gif chapter_open.gif current.gif page.gif

stephan     2003/05/10 04:34:10

  Modified:    src/webapp/samples/i18n menu.xml multi.xml simple.xml
                        simple.xsp sitemap.xmap
  Added:       src/webapp/samples/i18n simple2page.xsl
  Removed:     src/webapp/samples/i18n menu2html.xsl page.css simple.xsl
                        site2html.xsl
               src/webapp/samples/i18n/images chapter.gif chapter_open.gif
                        current.gif page.gif
  Log:
  Refactoring i18n samples.
  
  Revision  Changes    Path
  1.5       +4 -4      cocoon-2.1/src/webapp/samples/i18n/menu.xml
  
  Index: menu.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/i18n/menu.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- menu.xml	27 Mar 2003 07:33:09 -0000	1.4
  +++ menu.xml	10 May 2003 11:34:09 -0000	1.5
  @@ -39,14 +39,14 @@
     </menu>
   
     <menu label="Documentation" i18n:attr="label">
  -    <external label="i18n transformer docs" href="http://cocoon.apache.org/userdocs/transformers/i18n-transformer.html" i18n:attr="label"/>   
  -    <external label="i18n transformer Javadoc" href="http://cocoon.apache.org/apidocs/org/apache/cocoon/transformation/I18nTransformer.html" i18n:attr="label"/>   
  -    <external label="LocaleAction Javadoc" href="http://cocoon.apache.org/apidocs/org/apache/cocoon/acting/LocaleAction.html" i18n:attr="label"/>   
  +    <external label="i18n transformer docs" href="http://cocoon.apache.org/2.1/userdocs/transformers/i18n-transformer.html" i18n:attr="label"/>   
  +    <external label="i18n transformer Javadoc" href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/transformation/I18nTransformer.html" i18n:attr="label"/>   
  +    <external label="LocaleAction Javadoc" href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/acting/LocaleAction.html" i18n:attr="label"/>   
     </menu>
     
     <menu label="Credits" i18n:attr="label">
       <menu-item label="Konstantin Piroumian" href="mailto:kpiroumian@apache.org" i18n:attr="label" />  
  -    <menu-item label="Many others..." href="http://cocoon.apache.org/who.html" i18n:attr="label"/>      
  +    <menu-item label="Many others..." href="http://cocoon.apache.org/2.1/who.html" i18n:attr="label"/>      
     </menu>  
      
   </book>
  
  
  
  1.2       +2 -2      cocoon-2.1/src/webapp/samples/i18n/multi.xml
  
  Index: multi.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/i18n/multi.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- multi.xml	9 Mar 2003 00:11:09 -0000	1.1
  +++ multi.xml	10 May 2003 11:34:09 -0000	1.2
  @@ -1,5 +1,5 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<root xmlns:i18n="http://apache.org/cocoon/i18n/2.1" i18n:attr="language" language="language">
  +<document xmlns:i18n="http://apache.org/cocoon/i18n/2.1" i18n:attr="language" language="language">
   	<title>
   		<i18n:text>titletext</i18n:text>
   	</title>
  @@ -10,4 +10,4 @@
       <para>Here we take the key 'language' from the default (= messages) catalogue: <i18n:text>language</i18n:text>.</para>
       <para>Here we take the key 'Documentation' from the menu catalogue: <i18n:text i18n:catalogue="menu">Documentation</i18n:text>.</para>
     </content>
  -</root>
  +</document>
  
  
  
  1.2       +3 -3      cocoon-2.1/src/webapp/samples/i18n/simple.xml
  
  Index: simple.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/i18n/simple.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple.xml	9 Mar 2003 00:11:09 -0000	1.1
  +++ simple.xml	10 May 2003 11:34:09 -0000	1.2
  @@ -1,5 +1,5 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<root xmlns:i18n="http://apache.org/cocoon/i18n/2.1" i18n:attr="language" language="language">
  +<document xmlns:i18n="http://apache.org/cocoon/i18n/2.1" i18n:attr="language" language="language">
   	<title>
   		<i18n:text>titletext</i18n:text>
   	</title>
  @@ -11,7 +11,7 @@
   			<i18n:text i18n:key="doclink"/>
   			<i18n:param>
   				<link>
  -					<href>http://cocoon.apache.org/userdocs/transformers/i18n-transformer.html</href>
  +					<href>http://cocoon.apache.org/2.1/userdocs/transformers/i18n-transformer.html</href>
   					<title>Cocoon 2 Web Site</title>
   				</link>
   			</i18n:param>
  @@ -63,4 +63,4 @@
   			<i18n:text>copyright</i18n:text>
   		</copyright>
   	</bottom>
  -</root>
  +</document>
  
  
  
  1.2       +3 -3      cocoon-2.1/src/webapp/samples/i18n/simple.xsp
  
  Index: simple.xsp
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/i18n/simple.xsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- simple.xsp	9 Mar 2003 00:11:09 -0000	1.1
  +++ simple.xsp	10 May 2003 11:34:09 -0000	1.2
  @@ -7,7 +7,7 @@
       <xsp:logic>
           private static int count = 0;
       </xsp:logic>
  -    <root i18n:attr="language" language="language">
  +    <document i18n:attr="language" language="language">
           <xsp-request:get-session/>
           <xsp:logic>
               synchronized (this) {
  @@ -28,7 +28,7 @@
                   <i18n:text i18n:key="doclink"/>
                   <i18n:param>
                       <link>
  -                        <href>http://cocoon.apache.org/userdocs/transformers/i18n-transformer.html</href>
  +                        <href>http://cocoon.apache.org/2.1/userdocs/transformers/i18n-transformer.html</href>
                           <title>Cocoon 2 Web Site</title>
                       </link>
                   </i18n:param>
  @@ -101,5 +101,5 @@
                   <i18n:text>copyright</i18n:text>
               </copyright>
           </bottom>
  -    </root>
  +    </document>
   </xsp:page>
  
  
  
  1.3       +127 -142  cocoon-2.1/src/webapp/samples/i18n/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/i18n/sitemap.xmap,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sitemap.xmap	26 Mar 2003 21:21:40 -0000	1.2
  +++ sitemap.xmap	10 May 2003 11:34:09 -0000	1.3
  @@ -1,146 +1,131 @@
   <?xml version="1.0"?>
   <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -
  -    <!-- =========================== Components ================================ -->
  -    <map:components>
  -        <map:generators default="file"/>
  -        
  -        <map:transformers default="xslt">
  -            <!-- Configure i18n transformer -->
  -            <map:transformer name="i18n" logger="sitemap.transformer.i18n" 
  -                src="org.apache.cocoon.transformation.I18nTransformer">
  -                <catalogues default="messages">
  -                  <catalogue id="messages" name="messages" location="translations"/>
  -                  <catalogue id="menu" name="menu" location="translations"/>
  -                </catalogues>
  -                <cache-at-startup>true</cache-at-startup>
  -            </map:transformer>
  -        </map:transformers>
  -        
  -        <map:readers default="resource"/>
  -        <map:serializers default="html"/>
  -        <map:selectors default="browser"/>
  -        <map:matchers default="wildcard"/>
  -    
  -        <!-- =========================== Actions ================================= -->   
  -        <map:actions>
  -            <!-- LocaleAction is used to set/get current users locale. See Javadocs for details. -->
  -            <map:action name="locale" logger="sitemap.action.locale" src="org.apache.cocoon.acting.LocaleAction">
  -                <!-- Creates a new session if needed. Used with 'store-in-session' param -->
  -                <create-session>true</create-session>
  -                <!-- Stores locale information in session. A session should be created before, 
  -                       otherwise 'create-session' should be true.
  -                -->
  -                <store-in-session>true</store-in-session>
  -                <!-- Stores locale information in request attributes -->             
  -                <store-in-request>true</store-in-request>
  -                <!-- Stores locale information in a client cookie -->             
  -                <store-in-cookie>false</store-in-cookie>
  -            
  -                <!-- Uncomment as needed to override defaults:
  -                <locale-attribute>locale</locale-attribute>
  -                <language-attribute>language</language-attribute>
  -                <country-attribute>country</country-attribute>
  -                <variant-attribute>variant</variant-attribute>
  +  <!-- =========================== Components ================================ -->
  +  <map:components>
  +    <map:generators default="file"/>
  +    <map:transformers default="xslt">
  +      <!-- Configure i18n transformer -->
  +      <map:transformer name="i18n" logger="sitemap.transformer.i18n" src="org.apache.cocoon.transformation.I18nTransformer">
  +        <catalogues default="messages">
  +          <catalogue id="messages" name="messages" location="translations"/>
  +          <catalogue id="menu" name="menu" location="translations"/>
  +        </catalogues>
  +        <cache-at-startup>true</cache-at-startup>
  +      </map:transformer>
  +    </map:transformers>
  +    <map:readers default="resource"/>
  +    <map:serializers default="html"/>
  +    <map:selectors default="browser"/>
  +    <map:matchers default="wildcard"/>
  +    <!-- =========================== Actions ================================= -->
  +    <map:actions>
  +      <!-- LocaleAction is used to set/get current users locale. See Javadocs for details. -->
  +      <map:action name="locale" logger="sitemap.action.locale" src="org.apache.cocoon.acting.LocaleAction">
  +        <!-- Creates a new session if needed. Used with 'store-in-session' param -->
  +        <create-session>true</create-session>
  +        <!-- Stores locale information in session. A session should be created before, 
  +             otherwise 'create-session' should be true.
                   -->
  -            </map:action>
  -        </map:actions>
  -    </map:components>
  -
  -    <!-- =========================== Resources =============================== -->
  -    <map:resources>
  -        <!-- This resource is used to create a composite page from menu and content -->
  -        <map:resource name="composite">
  -            <map:aggregate element="site">
  -                <map:part src="cocoon:/menu/{../0}"/>
  -                <map:part src="cocoon:/content/{../0}" label="content"/>
  -            </map:aggregate>
  -            <map:transform src="site2html.xsl">
  -                <map:parameter name="page" value="{../0}" />
  -                <map:parameter name="locale" value="{../../locale}" />                
  -            </map:transform>
  -            <map:serialize/>
  -        </map:resource>
  -    </map:resources>
  -
  -    <!-- =========================== Pipelines ================================= -->
  -    <map:pipelines>
  -        <!-- Locale aware content generation pipeline -->            
  -        <map:pipeline>
  -            <map:act type="locale">
  -            
  -                <!-- Default pipeline -->
  -                <map:match pattern="">
  -                    <map:redirect-to uri="simple.xml"/>
  -                </map:match>
  -            
  -                <!-- Generate static output (simple.xml) -->
  -                <map:match pattern="*.xml">
  -                    <map:call resource="composite" />
  -                </map:match>
  -            
  -                <!-- Generate dynamic output (simple.xsp) -->            
  -                <map:match pattern="*.xsp">
  -                    <map:call resource="composite" />
  -                </map:match>                
  -                
  -                <!-- A helper matcher for static content translation and generation -->
  -                <map:match pattern="content/*.xml">
  -                        <map:generate src="{1}.xml"/>
  -                        <map:transform type="i18n">
  -                            <map:parameter name="locale" value="{../locale}"/>
  -                        </map:transform>
  -                        <map:transform src="simple.xsl"/>
  -                        <map:serialize/>
  -                </map:match>
  -            
  -                <!-- A helper matcher for dynamic content translation and generation -->
  -                <map:match pattern="content/*.xsp">
  -                        <map:generate type="serverpages" src="{1}.xsp"/>
  -                        <map:transform type="i18n">
  -                            <map:parameter name="locale" value="{../locale}"/>
  -                        </map:transform>
  -                        <map:transform src="simple.xsl"/>
  -                        <map:serialize/>
  -                </map:match>
  -    
  -                <!-- Menu generation -->
  -                <map:match pattern="menu/*">
  -                        <map:generate src="menu.xml"/>
  -                        <map:transform type="i18n">
  -                            <!-- Override default catalogue for this pipeline -->
  -                            <map:parameter name="default-catalogue-id" value="menu"/>
  -                            <map:parameter name="locale" value="{../locale}"/>
  -                        </map:transform>
  -                        <map:transform src="menu2html.xsl">
  -                            <map:parameter name="locale" value="{../locale}" />
  -                            <map:parameter name="page" value="{1}" />
  -                        </map:transform>
  -                        <map:serialize/>
  -                </map:match>
  -            </map:act>
  -        </map:pipeline>                
  -               
  -        <!-- General purpose pipeline  -->        
  -        <map:pipeline>
  -            
  -            <!-- Display this sitemap source-->
  -            <map:match pattern="sitemap.xmap">
  -                <map:generate src="sitemap.xmap"/>
  -                <map:transform src="context://stylesheets/system/xml2html.xslt"/>
  -                <map:serialize/>
  -            </map:match>            
  -            
  -            <map:match pattern="*.css">
  -                <map:read src="{1}.css" mime-type="text/css"/>
  -            </map:match>
  -            
  -            <map:match pattern="images/*.gif">
  -                <map:read src="images/{1}.gif" mime-type="image/gif"/>
  -            </map:match>
  -        </map:pipeline>
  -        
  -    </map:pipelines>
  -    
  -</map:sitemap>
  +        <store-in-session>true</store-in-session>
  +        <!-- Stores locale information in request attributes -->
  +        <store-in-request>true</store-in-request>
  +        <!-- Stores locale information in a client cookie -->
  +        <store-in-cookie>false</store-in-cookie>
  +        <!-- Uncomment as needed to override defaults:
  +             <locale-attribute>locale</locale-attribute>
  +             <language-attribute>language</language-attribute>
  +             <country-attribute>country</country-attribute>
  +             <variant-attribute>variant</variant-attribute>
  +          -->
  +      </map:action>
  +    </map:actions>
  +  </map:components>
  +
  +  <!-- =========================== Resources =============================== -->
  +  <map:resources>
  +    <!-- This resource is used to create a composite page from menu and content -->
  +    <map:resource name="composite">
  +      <map:aggregate element="root">
  +        <map:part src="cocoon:/menu/{../0}"/>
  +        <map:part src="cocoon:/content/{../0}" label="content"/>
  +      </map:aggregate>
  +      <map:transform type="xalan" src="simple2page.xsl">
  +        <map:parameter name="page" value="{../0}"/>
  +        <map:parameter name="locale" value="{../../locale}"/>
  +      </map:transform>
  +      <map:transform src="context://samples/common/style/xsl/html/complex-page2html.xsl">
  +        <map:parameter name="contextPath" value="{request:contextPath}"/>
  +      </map:transform>
  +      <map:serialize type="html"/>
  +    </map:resource>
  +  </map:resources>
  +
  +  <!-- =========================== Pipelines ================================= -->
  +  <map:pipelines>
  +    <!-- Locale aware content generation pipeline -->
  +    <map:pipeline>
  +      <map:act type="locale">
  +
  +        <!-- Default pipeline -->
  +        <map:match pattern="">
  +          <map:redirect-to uri="simple.xml"/>
  +        </map:match>
   
  +        <!-- Generate static output (simple.xml) -->
  +        <map:match pattern="*.xml">
  +          <map:call resource="composite"/>
  +        </map:match>
  +
  +        <!-- Generate dynamic output (simple.xsp) -->
  +        <map:match pattern="*.xsp">
  +          <map:call resource="composite"/>
  +        </map:match>
  +
  +        <!-- A helper matcher for static content translation and generation -->
  +        <map:match pattern="content/*.xml">
  +          <map:generate src="{1}.xml"/>
  +          <map:transform type="i18n">
  +            <map:parameter name="locale" value="{../locale}"/>
  +          </map:transform>
  +          <map:serialize/>
  +        </map:match>
  +
  +        <!-- A helper matcher for dynamic content translation and generation -->
  +        <map:match pattern="content/*.xsp">
  +          <map:generate type="serverpages" src="{1}.xsp"/>
  +          <map:transform type="i18n">
  +            <map:parameter name="locale" value="{../locale}"/>
  +          </map:transform>
  +          <map:serialize/>
  +        </map:match>
  +
  +        <!-- Menu generation -->
  +        <map:match pattern="menu/*">
  +          <map:generate src="menu.xml"/>
  +          <map:transform type="i18n">
  +            <!-- Override default catalogue for this pipeline -->
  +            <map:parameter name="default-catalogue-id" value="menu"/>
  +            <map:parameter name="locale" value="{../locale}"/>
  +          </map:transform>
  +          <map:serialize/>
  +        </map:match>
  +      </map:act>
  +    </map:pipeline>
  +
  +    <!-- General purpose pipeline  -->
  +    <map:pipeline>
  +      <!-- Display this sitemap source-->
  +      <map:match pattern="sitemap.xmap">
  +        <map:generate src="sitemap.xmap"/>
  +        <map:transform src="context://stylesheets/system/xml2html.xslt"/>
  +        <map:serialize/>
  +      </map:match>
  +      <map:match pattern="*.css">
  +        <map:read src="{1}.css" mime-type="text/css"/>
  +      </map:match>
  +      <map:match pattern="images/*.gif">
  +        <map:read src="images/{1}.gif" mime-type="image/gif"/>
  +      </map:match>
  +    </map:pipeline>
  +  </map:pipelines>
  +</map:sitemap>
  
  
  
  1.1                  cocoon-2.1/src/webapp/samples/i18n/simple2page.xsl
  
  Index: simple2page.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:param name="locale"/>
    <xsl:param name="page"/>
  
    <xsl:template match="root">
      <document>
        <header>
          <title>Internationalization (i18n) and Localization (l10n)</title>
        </header>
        <body>
          <row>
            <column title="Menu">
              <xsl:apply-templates select="book"/>
            </column>
            <column title="{document/title}">
              <xsl:apply-templates select="document"/>
            </column>
          </row>
        </body>
      </document>
    </xsl:template>
  
    <xsl:template match="document">
      <h2>
        <font color="navy">
          <xsl:value-of select="title"/>
        </font>
        <xsl:apply-templates select="form"/>
      </h2>
      <h5>
        <xsl:value-of select="sub-title"/>
      </h5>
      <hr align="left" noshade="noshade" size="1"/>
      <small>
        <font color="red">
          <i>
            <xsl:apply-templates select="annotation"/>
          </i>
        </font>
      </small>
      <xsl:apply-templates select="content"/>
      <hr align="left" noshade="noshade" size="1"/>
      <xsl:apply-templates select="bottom"/>
    </xsl:template>
  
    <xsl:template match="book">
      <xsl:apply-templates select="menu"/>
    </xsl:template>
  
    <!-- Current (open) menu -->
    <xsl:template match="menu">
      <xsl:if test="@icon">
        <img src="{@icon}" align="middle"/>
        <xsl:text> </xsl:text>
      </xsl:if>
      <h3>
        <xsl:value-of select="@label"/>
      </h3>
      <ul>
        <xsl:apply-templates/>
      </ul>
    </xsl:template>
  
    <!-- Display a link to a page -->
    <xsl:template match="menu-item[substring-after(@href, 'locale=') = $locale or @href=$page or (@href='' and $locale='')]">
      <li class="current" title="{@href}">
        <xsl:if test="@icon">
          <img src="{@icon}" align="middle"/>
          <xsl:text> </xsl:text>
        </xsl:if>
        <xsl:value-of select="@label"/>
      </li>
    </xsl:template>
  
    <xsl:template match="menu-item | external">
      <li class="page">
        <xsl:if test="@icon">
          <img src="{@icon}" align="middle"/>
          <xsl:text> </xsl:text>
        </xsl:if>
        <a href="{@href}" class="page">
          <xsl:value-of select="@label"/>
        </a>
      </li>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1">
      <xsl:copy>
        <xsl:apply-templates select="@*"/>
        <xsl:apply-templates/>
      </xsl:copy>
    </xsl:template>
  
  </xsl:stylesheet>