Date: Thu, 25 Nov 2004 01:57:14 +0100 From: Martin Heinen <martin@sumuk.de> To: Hiroki Sato <hrs@freebsd.org> Cc: doc@freebsd.org Subject: Re: orig/trans automatic selection patch for news/{newsflash,press}.html Message-ID: <20041125005714.GA12863@sumuk.de> In-Reply-To: <20041123.043553.131911200.hrs@eos.ocn.ne.jp> References: <20041123.043553.131911200.hrs@eos.ocn.ne.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
--rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Nov 23, 2004 at 04:35:53AM +0900, Hiroki Sato wrote: > Translators, could you please try them? I know there are > several known problems such as www/<lang>/index.xsl support and > so on, they should work and you can understand what I want to do. For each single day the patch generates n^2 entries for n events (this doesn't matter if n equals 1 :) For example, September 15 has two events and the resulting list has four events. To fix this, I introduced the variable index, which tracks the current event position and selects this position from the result set (a patch for includes.misc.xsl is attached): | <xsl:for-each select="day"> | <xsl:param name="index" select="position()" /> | <xsl:param name="day" select="name" /> | <!-- search localized items per day basis --> | <xsl:param name="localizeditems" | select="document($news.project.xml) | //descendant::year[name = $year] | /month[name = $month] | /day[name = $day] | [position() = $index]" /> This requires that translated entries are ordered exactly like the original entries. > I would appreciate your comments. Especially, I would like to > know if the l10n knobs are sufficient for your language. Thanks. Other than that, the patches apply cleanly and are working for the German tree, nice idea! -- Marxpitn --rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="includes.misc.xsl.diff" Index: includes.misc.xsl =================================================================== RCS file: /u/cvs/www/share/sgml/includes.misc.xsl,v retrieving revision 1.13 diff -u -r1.13 includes.misc.xsl --- includes.misc.xsl 27 Jun 2004 19:18:00 -0000 1.13 +++ includes.misc.xsl 25 Nov 2004 00:19:45 -0000 @@ -25,6 +25,13 @@ <!-- template name used in + html-news-list-newsflash news/newsflash.xsl + html-news-list-press news/press.xsl + html-news-list-datelabel news/newsflash.xsl (for l10n) + html-news-generate-anchor news/newsflash.xsl + html-news-make-olditems-list news/newsflash.xsl (for l10n) + html-news-month-headings news/newsflash.xsl (for l10n) + html-list-advisories security/mkindex.xsl html-list-advisories-putitems security/mkindex.xsl html-list-advisories-release-label security/mkindex.xsl (for l10n) @@ -40,6 +47,251 @@ html-index-news-press-items-lastmodified index.xsl (for i10n) html-index-mirrors-options-list index.xsl --> + + <!-- template: "html-news-make-olditems-list" --> + <xsl:template name="html-news-make-olditems-list"> + <p>Old announcement: + <a href="2002/index.html">2002</a>, + <a href="2001/index.html">2001</a>, + <a href="2000/index.html">2000</a>, + <a href="1999/index.html">1999</a>, + <a href="1998/index.html">1998</a>, + <a href="1997/index.html">1997</a>, + <a href="1996/index.html">1996</a></p> + </xsl:template> + + <!-- template: "html-news-list-newsflash" --> + <xsl:template name="html-news-list-newsflash"> + <xsl:param name="news.project.xml-master" select="'none'" /> + <xsl:param name="news.project.xml" select="'none'" /> + + <xsl:for-each select="document($news.project.xml-master)//descendant::year"> + <xsl:param name="year" select="name" /> + + <xsl:for-each select="month"> + <xsl:param name="month" select="name" /> + + <h1> + <!-- generate month headings --> + <xsl:call-template name="html-news-month-headings"> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month"> + <xsl:call-template name="transtable-lookup"> + <xsl:with-param name="word-group" select="'number-month'" /> + <xsl:with-param name="word" select="$month" /> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </h1> + + <ul> + <xsl:for-each select="day"> + <xsl:param name="index" select="position()" /> + <xsl:param name="day" select="name" /> + <!-- search localized items per day basis --> + <xsl:param name="localizeditems" + select="document($news.project.xml) + //descendant::year[name = $year] + /month[name = $month] + /day[name = $day] + [position() = $index]" /> + + <xsl:choose> + <xsl:when test="$localizeditems"> + <!-- when localized item exists --> + <xsl:for-each select="$localizeditems/event"> + <xsl:param name="anchor-position" select="position()" /> + + <li><p class="localized"> + <a><xsl:attribute name="name"> + <xsl:call-template name="html-news-generate-anchor"> + <xsl:with-param name="label" select="local-name()" /> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month" select="$month" /> + <xsl:with-param name="day" select="$day" /> + <xsl:with-param name="pos" select="$anchor-position" /> + </xsl:call-template> + </xsl:attribute></a> + <b><xsl:call-template name="html-news-datelabel"> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month"> + <xsl:call-template name="transtable-lookup"> + <xsl:with-param name="word-group" select="'number-month'" /> + <xsl:with-param name="word" select="$month" /> + </xsl:call-template> + </xsl:with-param> + <xsl:with-param name="day" select="$day" /> + </xsl:call-template></b> + <xsl:text> </xsl:text> + + <!-- put localized text --> + <xsl:apply-templates select="p" /> + + </p> + </li> + </xsl:for-each> + </xsl:when> + + <xsl:otherwise> + <!-- when localized item does not exist --> + <xsl:for-each select="event"> + <xsl:param name="anchor-position" select="position()" /> + + <li><p class="original"> + <a><xsl:attribute name="name"> + <xsl:call-template name="html-news-generate-anchor"> + <xsl:with-param name="label" select="local-name()" /> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month" select="$month" /> + <xsl:with-param name="day" select="$day" /> + <xsl:with-param name="pos" select="$anchor-position" /> + </xsl:call-template> + </xsl:attribute></a> + <b><xsl:call-template name="html-news-datelabel"> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month"> + <xsl:call-template name="transtable-lookup"> + <xsl:with-param name="word-group" select="'number-month'" /> + <xsl:with-param name="word" select="$month" /> + </xsl:call-template> + </xsl:with-param> + <xsl:with-param name="day" select="$day" /> + </xsl:call-template></b> + + <!-- put English text --> + <xsl:text> </xsl:text> + <xsl:apply-templates select="p" /> + </p> + </li> + </xsl:for-each> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </ul> + </xsl:for-each> + </xsl:for-each> + </xsl:template> + + <!-- template: "html-news-list-press" --> + <xsl:template name="html-news-list-press"> + <xsl:param name="news.press.xml-master" select="'none'" /> + <xsl:param name="news.press.xml" select="'none'" /> + + <xsl:for-each select="document($news.press.xml-master)//descendant::year"> + <xsl:param name="year" select="name" /> + + <xsl:for-each select="month"> + <xsl:param name="month" select="name" /> + + <h1> + <!-- generate month headings --> + <xsl:call-template name="html-news-month-headings"> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month"> + <xsl:call-template name="transtable-lookup"> + <xsl:with-param name="word-group" select="'number-month'" /> + <xsl:with-param name="word" select="$month" /> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + </h1> + + <ul> + <xsl:for-each select="story"> + <xsl:variable name="url"><xsl:value-of select="url"/></xsl:variable> + <xsl:variable name="site-url"><xsl:value-of select="site-url"/></xsl:variable> + + <!-- search localized items per story(URL) basis --> + <xsl:param name="localizeditems" + select="document($news.press.xml) + //descendant::year[name = $year] + /month[name = $month] + /story[url = $url]" /> + + <xsl:param name="anchor-position" select="position()" /> + + <xsl:choose> + <xsl:when test="$localizeditems"> + <xsl:for-each select="$localizeditems"> + <li><p> + <a><xsl:attribute name="name"> + <xsl:call-template name="html-news-generate-anchor"> + <xsl:with-param name="label" select="local-name()" /> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month" select="$month" /> + <xsl:with-param name="pos" select="$anchor-position" /> + </xsl:call-template> + </xsl:attribute></a> + <a href="{$url}"><b><xsl:value-of select="name"/></b></a><br/> + <a href="{$site-url}"><xsl:value-of select="site-name"/></a>, + <xsl:value-of select="author"/><br/> + <xsl:copy-of select="p/child::node()"/> + </p> + </li> + </xsl:for-each> + </xsl:when> + + <xsl:otherwise> + <xsl:for-each select="."> + <li><p> + <a><xsl:attribute name="name"> + <xsl:call-template name="html-news-generate-anchor"> + <xsl:with-param name="label" select="local-name()" /> + <xsl:with-param name="year" select="$year" /> + <xsl:with-param name="month" select="$month" /> + <xsl:with-param name="pos" select="$anchor-position" /> + </xsl:call-template> + </xsl:attribute></a> + + <a href="{$url}"><b><xsl:value-of select="name"/></b></a><br/> + <a href="{$site-url}"><xsl:value-of select="site-name"/></a>, + <xsl:value-of select="author"/><br/> + <xsl:copy-of select="p/child::node()"/> + </p> + </li> + </xsl:for-each> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </ul> + </xsl:for-each> + </xsl:for-each> + </xsl:template> + + <!-- template: "html-news-datelabel" (for l10n) --> + <xsl:template name="html-news-datelabel"> + <xsl:param name="year" /> + <xsl:param name="month" /> + <xsl:param name="day" /> + + <xsl:value-of select="concat($day, ' ', $month, ', ', $year, ':')" /> + </xsl:template> + + <!-- template: "html-news-generate-anchor" (for l10n) --> + <xsl:template name="html-news-generate-anchor"> + <xsl:param name="label" /> + <xsl:param name="year" /> + <xsl:param name="month" /> + <xsl:param name="day" /> + <xsl:param name="pos" /> + + <xsl:value-of select="concat( + $label, + format-number($year, '0000'), + format-number($month, '00'))" /> + <xsl:if test="$label = 'event'" > + <xsl:value-of select="format-number($day, '00')" /> + </xsl:if> + <xsl:value-of select="format-number($pos, ':00')" /> + </xsl:template> + + <!-- template: "html-news-month-headings" (for l10n) --> + <xsl:template name="html-news-month-headings"> + <xsl:param name="year" /> + <xsl:param name="month" /> + + <xsl:value-of select="concat($month, ' ', $year)" /> + </xsl:template> <!-- template: "html-list-advisories" generate a list of all security advisories --> --rwEMma7ioTxnRzrJ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041125005714.GA12863>