kpiroumian 02/04/16 03:03:12 Added: src/webapp/samples/i18n simple.xml simple.xsl simple.xsp sitemap.xmap src/webapp/samples/i18n/translations messages.xml messages_de.xml messages_en.xml messages_es.xml messages_hy.xml messages_pl.xml messages_ru.xml Log: Refactored i18n samples Revision Changes Path 1.1 xml-cocoon2/src/webapp/samples/i18n/simple.xml Index: simple.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <root xmlns:i18n="http://apache.org/cocoon/i18n/2.0"> <title> <i18n:text>titletext</i18n:text> </title> <sub-title> <i18n:date-time pattern="FULL"/> </sub-title> <annotation> <i18n:text>doclink</i18n:text> <link> <href>http://xml.apache.org/cocoon/userdocs/transformers/i18n-transformer.html</href> <title>Cocoon 2 Web Site</title> </link> </annotation> <menu> <item> <title><i18n:text>language</i18n:text></title> </item> <item> <link> <href>simple.xml?locale=<i18n:text>lang_id1</i18n:text></href> <title> <i18n:text>language1</i18n:text> </title> </link> </item> <item> <link> <href>simple.xml?locale=<i18n:text>lang_id2</i18n:text></href> <title> <i18n:text>language2</i18n:text> </title> </link> </item> <item> <link> <href>simple.xml?locale=<i18n:text>lang_id3</i18n:text></href> <title> <i18n:text>language3</i18n:text> </title> </link> </item> <item> <link> <href>simple.xml?locale=<i18n:text>lang_id4</i18n:text></href> <title> <i18n:text>language4</i18n:text> </title> </link> </item> <item> <link> <href>simple.xml?locale=<i18n:text>lang_id5</i18n:text></href> <title> <i18n:text>language5</i18n:text> </title> </link> </item> </menu> <menu> <item> <link> <href>simple.xml?locale=en_US</href> <title>English (US)</title> </link> </item> <item> <link> <href>simple.xml?locale=en_GB</href> <title>English (GB)</title> </link> </item> <item> <link> <href>simple.xml?locale=ru_RU</href> <title>Russian (Russia)</title> </link> </item> <item> <link> <href>simple.xml?locale=de_AT_EURO</href> <title>German (Austria, Euro)</title> </link> </item> </menu> <content> <para title="first" name="article" i18n:attr="title name"> <i18n:text i18n:key="a_key">article_text1</i18n:text> </para> <para title="second" name="article" i18n:attr="title name"> <i18n:text>article_text2</i18n:text> </para> <para title="third" name="article" i18n:attr="title name"> <i18n:translate> <i18n:text>Hello</i18n:text> <i18n:param name="username"> <i18n:text>Kot</i18n:text> </i18n:param> </i18n:translate> </para> <para title="forth" name="article" i18n:attr="title name"> <i18n:translate> One = {0}, two = {1}, {2}! {3} This line is not translated {3} <i18n:param name="one"><i18n:text>one</i18n:text></i18n:param> <i18n:param name="two"><i18n:text>two</i18n:text></i18n:param> <i18n:param name="third">baby</i18n:param> <i18n:param name="forth"> ~ </i18n:param> </i18n:translate> </para> <para title="Number formatting (not translated)" name="article" i18n:attr="name"> <i18n:translate> Number : {0} | Currency: {1} | Percent: {2}, processed on: {3} <i18n:param type="number" src-locale="en" value="1703.74" /> <i18n:param type="number" sub-type="currency" src-locale="en">27.24</i18n:param> <i18n:param type="number" sub-type="percent" src-locale="en">1.2</i18n:param> <i18n:param type="date-time" pattern="MEDIUM"/> </i18n:translate> </para> </content> <bottom> <copyright> <i18n:text>copyright</i18n:text> </copyright> </bottom> </root> 1.1 xml-cocoon2/src/webapp/samples/i18n/simple.xsl Index: simple.xsl =================================================================== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="root"> <html> <head> <title> <xsl:value-of select="title"/> </title> </head> <body bgcolor="white" style="font-family: Verdana, Arial, Helvetica"> <h2> <font color="navy"> <xsl:value-of select="title"/> </font> </h2> <h5><xsl:value-of select="sub-title"/></h5> <table width="100%"> <tr> <td align="left"> <xsl:apply-templates select="menu[1]"/> </td> <td align="right"> <xsl:apply-templates select="menu[2]"/> </td> </tr> </table> <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"/> </body> </html> </xsl:template> <xsl:template match="menu"> <font size="-1"> <xsl:for-each select="item"> <xsl:apply-templates select="."/> <xsl:if test="position() != last()"><xsl:text> | </xsl:text></xsl:if> </xsl:for-each> </font> </xsl:template> <xsl:template match="link"> <a href="{href}"><xsl:value-of select="normalize-space(title)"/></a> </xsl:template> <xsl:template match="item/title"> <font color="maroon"><xsl:copy-of select="normalize-space(.)"/></font> </xsl:template> <xsl:template match="content"> <xsl:apply-templates /> </xsl:template> <xsl:template match="para"> <p> <font color="navy"><b><xsl:value-of select="position() div 2"/>. <xsl:value-of select="@name"/> </b>: <xsl:value-of select="@title"/></font><br/> <font size="-1"><xsl:value-of select="."/></font> </p> </xsl:template> <xsl:template match="bottom"> <small><b><xsl:value-of select="copyright"/></b></small> </xsl:template> </xsl:stylesheet> 1.1 xml-cocoon2/src/webapp/samples/i18n/simple.xsp Index: simple.xsp =================================================================== <?xml version="1.0" encoding="UTF-8"?> <xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:xsp-request="http://apache.org/xsp/request/2.0" xmlns:i18n="http://apache.org/cocoon/i18n/2.0"> <xsp:logic> private static int count = 0; </xsp:logic> <root> <xsp-request:get-session/> <xsp:logic> synchronized (this) { count++; } </xsp:logic> <title> <i18n:text>titletext</i18n:text> </title> <annotation> <i18n:text>doclink</i18n:text> <link> <href>http://xml.apache.org/cocoon/userdocs/transformers/i18n-transformer.html</href> <title>Cocoon 2 Web Site</title> </link> </annotation> <sub-title> <i18n:translate> <i18n:text>count_title</i18n:text> <i18n:param type="number" pattern="000000"> <xsp:expr>count</xsp:expr> </i18n:param> <i18n:param type="date-time" src-pattern="EEE MMM dd hh:mm:ss zzz yyyy" src-locale="en" pattern="MEDIUM" > <xsp:expr>new Date()</xsp:expr> </i18n:param> </i18n:translate> </sub-title> <menu> <item> <title> <i18n:text>language</i18n:text> </title> </item> <item> <link> <href>simple.xsp?locale=<i18n:text>lang_id1</i18n:text></href> <title> <i18n:text>language1</i18n:text> </title> </link> </item> <item> <link> <href>simple.xsp?locale=<i18n:text>lang_id2</i18n:text></href> <title> <i18n:text>language2</i18n:text> </title> </link> </item> <item> <link> <href>simple.xsp?locale=<i18n:text>lang_id3</i18n:text></href> <title> <i18n:text>language3</i18n:text> </title> </link> </item> <item> <link> <href>simple.xsp?locale=<i18n:text>lang_id4</i18n:text></href> <title> <i18n:text>language4</i18n:text> </title> </link> </item> <item> <link> <href>simple.xsp?locale=<i18n:text>lang_id5</i18n:text></href> <title> <i18n:text>language5</i18n:text> </title> </link> </item> </menu> <menu> <item> <link> <href>simple.xsp?locale=en_US</href> <title>English (US)</title> </link> </item> <item> <link> <href>simple.xsp?locale=en_GB</href> <title>English (GB)</title> </link> </item> <item> <link> <href>simple.xsp?locale=ru_RU</href> <title>Russian (Russia)</title> </link> </item> <item> <link> <href>simple.xsp?locale=de_AT_EURO</href> <title>German (Austria, Euro)</title> </link> </item> </menu> <content> <para title="first" name="article" i18n:attr="title name"> <i18n:text i18n:key="a_key">article_text1</i18n:text> </para> <para title="second" name="article" i18n:attr="title name"> <i18n:text>article_text2</i18n:text> </para> <para title="third" name="article" i18n:attr="title name"> <i18n:translate> <i18n:text>Hello, {0}! Glad to see you!</i18n:text> <i18n:param name="username"> <xsp-request:get-parameter name="user" default="none" as="string"/> </i18n:param> </i18n:translate> </para> <para title="forth" name="article" i18n:attr="title name"> <i18n:translate> One = {0}, two = {1}, {2}! {3} This line is not translated {3} <i18n:param name="one"> <i18n:text> <xsp:expr>"ONE".toLowerCase()</xsp:expr> </i18n:text> </i18n:param> <i18n:param name="two"> <i18n:text>two</i18n:text> </i18n:param> <i18n:param name="third">baby</i18n:param> <i18n:param name="forth">~</i18n:param> </i18n:translate> </para> <para title="Number formatting (not translated)" name="article" i18n:attr="name"> <i18n:translate> Number : {0} | Currency: {1} | Percent: {2}, processed on: {3} <i18n:param type="number" src-locale="en"> <xsp:expr>17 + 3 + 1974</xsp:expr> </i18n:param> <i18n:param type="number" sub-type="currency" src-locale="en"> <xsp:expr>2002.0 / 28.0</xsp:expr> </i18n:param> <i18n:param type="number" sub-type="percent" src-locale="en">1.205</i18n:param> <i18n:param type="date-time" pattern="MEDIUM"/> </i18n:translate> </para> </content> <bottom> <copyright> <i18n:text>copyright</i18n:text> </copyright> </bottom> </root> </xsp:page> 1.1 xml-cocoon2/src/webapp/samples/i18n/sitemap.xmap Index: sitemap.xmap =================================================================== <?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"> <map:transformer name="i18n" logger="sitemap.transformer.i18n" src="org.apache.cocoon.transformation.I18nTransformer"> <catalogue-name>messages</catalogue-name> <catalogue-location>translations</catalogue-location> </map:transformer> </map:transformers> <map:readers default="resource"/> <map:serializers default="html"/> <map:selectors default="browser"/> <map:matchers default="wildcard"/> </map:components> <!-- =========================== Pipelines ================================= --> <map:pipelines> <map:pipeline> <map:match pattern=""> <map:redirect-to uri="cocoon:/simple.xml" /> </map:match> <map:match pattern="*.xml"> <map:generate src="{1}.xml"/> <map:transform type="i18n"/> <map:transform src="simple.xsl"/> <map:serialize/> </map:match> <map:match pattern="*.xsp"> <map:generate type="serverpages" src="{1}.xsp"/> <map:transform type="i18n"/> <map:transform src="simple.xsl"/> <map:serialize/> </map:match> </map:pipeline> </map:pipelines> </map:sitemap> <!-- end of file --> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages.xml Index: messages.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- Default English message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="en"> <message key="a_key">This is a key value.</message> <message key="lang_id1">ru</message> <message key="lang_id2">de</message> <message key="lang_id3">pl</message> <message key="lang_id4">es</message> <message key="lang_id5">hy</message> <message key="language">English</message> <message key="language1">Russian</message> <message key="language2">German</message> <message key="language3">Polish</message> <message key="language4">Spanish</message> <message key="language5">Armenian</message> <message key="titletext">Hello, internationalization!</message> <message key="doclink">See i18n documentation for details:</message> <message key="first">First</message> <message key="second">Second</message> <message key="third">Third</message> <message key="forth">Forth</message> <message key="article">Article</message> <message key="article_text1">This is a i18n paragraph.</message> <message key="article_text2">This is another i18n paragraph and is also a cool one.</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian. No rights are reserved.</message> <message key="Hello, {0}! Glad to see you!">Hello, {0}! Glad to see you!</message> <message key="Kot">Tomcat</message> <message key="none">None</message> <message key="one">one</message> <message key="two">two</message> <message key="count_title">This page was accessed {0} times. Last at: {1}.</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_de.xml Index: messages_de.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_de.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- German message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="de"> <message key="count_title">Diese Seite wurde {0}mal aufgerufen. Letzter Aufruf: {1}.</message> <message key="a_key">Dies ist der Wert eines Schlüssels.</message> <message key="lang_id1">en</message> <message key="lang_id2">ru</message> <message key="lang_id3">pl</message> <message key="lang_id4">es</message> <message key="lang_id5">hy</message> <message key="language">Deutsch</message> <message key="language1">Englisch</message> <message key="language2">Russisch</message> <message key="language3">Polnisch</message> <message key="language4">Spanisch</message> <message key="language5">Armenisch</message> <message key="titletext">Herzlich willkommen zur Internationalisierung!</message> <message key="doclink">Näheres unter der i18n Dokumentation:</message> <message key="first">Erstens</message> <message key="second">Zweitens</message> <message key="third">Drittens</message> <message key="forth">Viertens</message> <message key="article">Artikel</message> <message key="article_text1">Dies ist ein Absatz nach i18n.</message> <message key="article_text2">Dies ist ein weiterer Absatz nach i18n und auch noch ein ziemlich cooler dazu.</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian. Deutsche Übersetzung von Jörg Prante.</message> <message key="Hello, {0}! Glad to see you!">Hallo {0}! Schön, dich zu sehen!</message> <message key="Kot">Tomcat</message> <message key="none">nichts</message> <message key="one">eins</message> <message key="two">zwei</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_en.xml Index: messages_en.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_en.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- English message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="en"> <message key="a_key">This is a key value.</message> <message key="lang_id1">ru</message> <message key="lang_id2">de</message> <message key="lang_id3">pl</message> <message key="lang_id4">es</message> <message key="lang_id5">hy</message> <message key="language">English</message> <message key="language1">Russian</message> <message key="language2">German</message> <message key="language3">Polish</message> <message key="language4">Spanish</message> <message key="language5">Armenian</message> <message key="titletext">Hello, internationalization!</message> <message key="doclink">See i18n documentation for details:</message> <message key="first">First</message> <message key="second">Second</message> <message key="third">Third</message> <message key="forth">Forth</message> <message key="article">Article</message> <message key="article_text1">This is a i18n paragraph.</message> <message key="article_text2">This is another i18n paragraph and is also a cool one.</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian. No rights are reserved.</message> <message key="Hello, {0}! Glad to see you!">Hello, {0}! Glad to see you!</message> <message key="Kot">Tomcat</message> <message key="none">None</message> <message key="one">one</message> <message key="two">two</message> <message key="count_title">This page was accessed {0} times. Last at: {1}.</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_es.xml Index: messages_es.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_es.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- Spanish message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="es"> <message key="count_title">Esta página fue tenida acceso {0} veces. Pasado en: {1}.</message> <message key="a_key">Esto es un valor clave.</message> <message key="lang_id1">en</message> <message key="lang_id2">ru</message> <message key="lang_id3">de</message> <message key="lang_id4">pl</message> <message key="lang_id5">hy</message> <message key="language">Español</message> <message key="language1">Inglés</message> <message key="language2">Ruso</message> <message key="language3">Alemán</message> <message key="language4">Polaco</message> <message key="language5">Armenio</message> <message key="titletext">¡¡Hola!, internacionalización!</message> <message key="doclink">Visto la documentación i18n para detalles:</message> <message key="first">Primero</message> <message key="second">Segundo</message> <message key="third">Tercio</message> <message key="forth">En adelante</message> <message key="article">Artículo</message> <message key="article_text1">Esto es un párrafo i18n.</message> <message key="article_text2">Esto es otro párrafo i18n y es también uno 'cool'.</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian. Ningunos derechos son reservados.</message> <message key="Hello, {0}! Glad to see you!">¡¡Hola!, {0}! ¡Alegre de verle!</message> <message key="Kot">Gato</message> <message key="none">Ninguno</message> <message key="one">un</message> <message key="two">dos</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_hy.xml Index: messages_hy.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_hy.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- Armenian message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="hy"> <message key="count_title">²Ûë ¿çÁ ³Ûó»É»É »Ý {0} ³Ý·³Ù. ì»ñçÇÝÁ {1}.</message> <message key="a_key">ê³ µ³Ý³ÉÇÇ ³éÅ»ùÝ ¿£</message> <message key="lang_id1">en</message> <message key="lang_id2">ru</message> <message key="lang_id3">de</message> <message key="lang_id4">pl</message> <message key="lang_id5">es</message> <message key="language">гۻñ»Ý</message> <message key="language1">²Ý·É»ñ»Ý</message> <message key="language2">èáõë»ñ»Ý</message> <message key="language3">¶»ñٳݻñ»Ý</message> <message key="language4">Ȼѻñ»Ý</message> <message key="language5">Æëå³Ý»ñ»Ý</message> <message key="titletext">´³ñ¢°, ÇÝï»ñݳóÛáݳÉáõÃÛáõÝ£</message> <message key="doclink">سÝñ³Ù³ë µ³ó³ïñáõÃÛ³Ý Ñ³Ù³ñ ݳÇñª</message> <message key="first">²é³çÇÝ</message> <message key="second">ºñÏñáñ¹</message> <message key="third">ºññáñ¹</message> <message key="forth">¼áñáñ¹</message> <message key="article">Ðá¹í³Í</message> <message key="article_text1">ê³ ÇÝï»ñݳóÛáÝ³É å³ñ³·ñ³ý ¿£</message> <message key="article_text2">ê³ ÙÇ áõñÇß ÇÝï»ñݳóÛáÝ³É å³ñ³·ñ³ý ¿, ¢ ÝáõÛÝ å»ë ó»Ýïñ£</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian. àãÇÝã ãÇ å³Ñå³Ýí³Í£</message> <message key="Hello, {0}! Glad to see you!">´³ñ¢¯ {0}: àõñ³Ë »Ù ù»½ ï»ëݻɣ</message> <message key="Kot">γïáõ</message> <message key="none">àã áù</message> <message key="one">Ù»Ï</message> <message key="two">»ñÏáõë</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_pl.xml Index: messages_pl.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_pl.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- Polish message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="pl"> <message key="count_title">Ta strona była pobierana {0} razy. Ostatnio {1}</message> <message key="a_key">To jest klucz.</message> <message key="lang_id1">en</message> <message key="lang_id2">ru</message> <message key="lang_id3">de</message> <message key="lang_id4">es</message> <message key="lang_id5">hy</message> <message key="language">Polski</message> <message key="language1">Angielski</message> <message key="language2">Rosyjski</message> <message key="language3">Niemiecki</message> <message key="language4">Hiszpañski</message> <message key="language5">Armeñski</message> <message key="titletext">Witam, oto przykład wielojęzycznej strony!</message> <message key="doclink">Widzą i18n dokumentacja dla szczegółów:</message> <message key="first">Pierwszy</message> <message key="second">Drugi</message> <message key="third">Trzeci</message> <message key="forth">Czwarty</message> <message key="article">Artykuł</message> <message key="article_text1">To jest paragraf w i18n.</message> <message key="article_text2">To jest następny paragraf w i18n i jest takze fajny.</message> <message key="copyright">Copyright © 2001 Konstantin Piroumian i Krzysztof Zieliński. Żadne prawa nie są zastrzeżone:)</message> <message key="Hello, {0}! Glad to see you!">Witam, {0}! Miło Cię widzieć!</message> <message key="Kot">Tomcat</message> <message key="none">Nic</message> <message key="one">raz</message> <message key="two">dwa</message> </catalogue> 1.1 xml-cocoon2/src/webapp/samples/i18n/translations/messages_ru.xml Index: messages_ru.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- CVS $Id: messages_ru.xml,v 1.1 2002/04/16 10:03:12 kpiroumian Exp $ --> <!-- Russian message catalogue file for cocoon2 sample webapp --> <catalogue xml:lang="ru"> <message key="count_title">На эту страницу заходили {0} раз(а). В последний раз {1}.</message> <message key="a_key">Это значение по ключу.</message> <message key="lang_id1">en</message> <message key="lang_id2">de</message> <message key="lang_id3">pl</message> <message key="lang_id4">es</message> <message key="lang_id5">hy</message> <message key="language">Русский</message> <message key="language1">Английский</message> <message key="language2">Немецкий</message> <message key="language3">Польский</message> <message key="language4">Испанский</message> <message key="language5">Армянский</message> <message key="titletext">Привет, многоязычность!</message> <message key="doclink">Для дополнительной информации по i18n смотри:</message> <message key="first">Первый</message> <message key="second">Второй</message> <message key="third">Третий</message> <message key="forth">Четвертый</message> <message key="article">Статья</message> <message key="article_text1">Это интернационализированный абзац.</message> <message key="article_text2">Это тоже интернационализированный абзац и такой же классный.</message> <message key="copyright">Авторские права © 2001 Константин Пирумян. Ничто не защищено.</message> <message key="Hello, {0}! Glad to see you!">Привет, {0}! Рад тебя видеть!</message> <message key="Kot">Кот</message> <message key="none">Никто</message> <message key="one">раз</message> <message key="two">два</message> </catalogue>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]