gimp-help-2 r2456 - in trunk: . src/preface stylesheets



Author: ulfehlert
Date: Thu Apr 17 19:22:42 2008
New Revision: 2456
URL: http://svn.gnome.org/viewvc/gimp-help-2?rev=2456&view=rev

Log:
2008-04-17  Ulf-D. Ehlert  <ulfehlert svn gnome org>

	* AUTHORS (removed)
	* src/preface/authors.xml (removed)
	* src/preface/titles.xml (added)
	* stylesheets/authors_docbook.xsl
	* Makefile.am: autogenerate "AUTHORS" and "src/preface/authors.xml",
	where translatable phrases have been splitted off to the new file
	"src/preface/titles.xml"; this should fix bug #515535


Added:
   trunk/src/preface/titles.xml   (contents, props changed)
Removed:
   trunk/AUTHORS
   trunk/src/preface/authors.xml
Modified:
   trunk/ChangeLog
   trunk/Makefile.am
   trunk/stylesheets/authors_docbook.xsl

Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am	(original)
+++ trunk/Makefile.am	Thu Apr 17 19:22:42 2008
@@ -35,9 +35,12 @@
 src_find_predicates =       \
 	-name '.svn' -prune \
 	-o                  \
+	-name '$(notdir $(AUTHORS_DOCBOOK_XML))' -prune \
+	-o                  \
 	-name '*.xml' -print
 
-XML_FILES := $(shell cd $(top_srcdir) && find src $(src_find_predicates))
+XML_FILES = $(shell cd $(top_srcdir) && find src $(src_find_predicates)) \
+	    $(AUTHORS_DOCBOOK_XML)
 
 COMMON_CSS_FILES = \
 	stylesheets/gimp-help-plain.css	\
@@ -57,6 +60,7 @@
 	stylesheets/profile.xsl
 
 EXTRA_DIST = \
+	AUTHORS				\
 	HACKING				\
 	INSTALL				\
 	TERMINOLOGY			\
@@ -339,11 +343,21 @@
 
 #### AUTHORS file creation
 
-authors: stylesheets/authors.xml stylesheets/authors_text.xsl
-	@echo "Creating AUTHORS"
-	$(XSLTPROC) stylesheets/authors_text.xsl stylesheets/authors.xml > AUTHORS
-	@echo "Creating src/preface/authors.xml"
-	$(XSLTPROC) stylesheets/authors_docbook.xsl stylesheets/authors.xml > $(AUTHORS_DOCBOOK_XML)
+AUTHORS: stylesheets/authors.xml stylesheets/authors_text.xsl $(AUTHORS_DOCBOOK_XML)
+	@echo "Creating $@"
+	@$(XSLTPROC) \
+	  $(XSLTFLAGS) \
+	  $(srcdir)/stylesheets/authors_text.xsl \
+	  $< \
+	  > $@
+	
+$(AUTHORS_DOCBOOK_XML): stylesheets/authors.xml src/preface/titles.xml stylesheets/authors_*.xsl
+	@echo "Creating $@"
+	@$(XSLTPROC) \
+	  $(XSLTFLAGS) \
+	  $(srcdir)/stylesheets/authors_docbook.xsl \
+	  $< \
+	  > $@
 
 
 #### Installation
@@ -387,7 +401,7 @@
 check-local: validate
 
 if GIMP_HELP_BUILD
-all-local: validate html-local index
+all-local: validate html-local index AUTHORS
 endif
 
 dist-hook: dist-copy-images

Added: trunk/src/preface/titles.xml
==============================================================================
--- (empty file)
+++ trunk/src/preface/titles.xml	Thu Apr 17 19:22:42 2008
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE gimp-help:i18n-phrases [
+<!ENTITY % URI "'http://www.gimp.org/docs'">
+<!ELEMENT gimp-help:i18n-phrases (i18n-record*)>
+<!ATTLIST gimp-help:i18n-phrases
+    xmlns:gimp-help CDATA #FIXED "%URI"
+    linguas         CDATA #REQUIRED>
+<!ELEMENT i18n-record (l10n-phrase*)>
+<!ATTLIST i18n-record name CDATA #REQUIRED>
+<!ELEMENT l10n-phrase (#PCDATA)>
+<!ATTLIST l10n-phrase lang CDATA #REQUIRED>
+]>
+
+
+<gimp-help:i18n-phrases xmlns:gimp-help="http://www.gimp.org/docs";
+  linguas="en;cs;de;es;fr;it;ko;nl;no">
+  
+  <!-- Do not touch the "name" attributes!
+       They are used by the stylesheet (stylesheets/authors_docbook.xsl)
+       to identify and print the authors with the corresponding role. -->
+
+  <i18n-record name="authors">
+    <l10n-phrase lang="en">
+      GIMP User Manual Authors and Contributors
+    </l10n-phrase>
+    <l10n-phrase lang="cs">
+      AutoÅi a pÅispÄvatelà k uÅivatelskà pÅÃruÄce GIMPu
+    </l10n-phrase>
+    <l10n-phrase lang="de">
+      Autoren und Mitwirkende des GIMP-Benutzerhandbuches
+    </l10n-phrase>
+    <l10n-phrase lang="es">
+      Autores y contribuyentes al manual de usuario del GIMP
+    </l10n-phrase>
+    <l10n-phrase lang="fr">
+      Auteurs et contributeurs du Guide de l'utilisateur Gimp
+    </l10n-phrase>
+    <l10n-phrase lang="it">
+      Autori e collaboratori del manuale utente di GIMP
+    </l10n-phrase>
+    <l10n-phrase lang="ko">êí ììì ìëì ìì ë êêì</l10n-phrase>
+    <l10n-phrase lang="nl">
+      Schrijvers en medewerkers aan de GIMP Handleiding
+    </l10n-phrase>
+    <l10n-phrase lang="no">
+      Personane bak <acronym>GIMP</acronym>-handboka
+    </l10n-phrase>
+  </i18n-record>
+
+  <i18n-record name="creators">
+    <l10n-phrase lang="en">Content Writers</l10n-phrase>
+    <l10n-phrase lang="cs">AutoÅi obsahu</l10n-phrase>
+    <l10n-phrase lang="de">Autoren und Mitwirkende</l10n-phrase>
+    <l10n-phrase lang="es">Escritores del contenido</l10n-phrase>
+    <l10n-phrase lang="fr">RÃdacteurs du contenu</l10n-phrase>
+    <l10n-phrase lang="it">Autori</l10n-phrase>
+    <l10n-phrase lang="ko">ëë ìì</l10n-phrase>
+    <l10n-phrase lang="nl">Schrijvers en vertalers</l10n-phrase>
+    <l10n-phrase lang="no">Forfattarane</l10n-phrase>
+  </i18n-record>
+
+  <i18n-record name="documenters">
+    <l10n-phrase lang="en">Proof Reading</l10n-phrase>
+    <l10n-phrase lang="cs">Korektury</l10n-phrase>
+    <l10n-phrase lang="de">Korrekturleser</l10n-phrase>
+    <l10n-phrase lang="fr">Relectures</l10n-phrase>
+    <l10n-phrase lang="it">Correzione e revisione</l10n-phrase>
+    <l10n-phrase lang="ko">êì</l10n-phrase>
+    <l10n-phrase lang="nl">Proef lezers</l10n-phrase>
+    <l10n-phrase lang="no">Korrekturlesing</l10n-phrase>
+  </i18n-record>
+
+  <i18n-record name="artists">
+    <l10n-phrase lang="en">Graphics, Stylesheets</l10n-phrase>
+    <l10n-phrase lang="cs">Grafika a styly</l10n-phrase>
+    <l10n-phrase lang="de">Grafik, Stylesheets</l10n-phrase>
+    <l10n-phrase lang="es">GrÃficos, hojas de estilo</l10n-phrase>
+    <l10n-phrase lang="fr">Graphismes, Feuilles de Style</l10n-phrase>
+    <l10n-phrase lang="it">Grafica e fogli di stile</l10n-phrase>
+    <l10n-phrase lang="ko">êëíì, ìíììí</l10n-phrase>
+    <l10n-phrase lang="nl">Afbeeldingen en Stijlbladen</l10n-phrase>
+    <l10n-phrase lang="no">Grafikk og stilark</l10n-phrase>
+  </i18n-record>
+
+  <i18n-record name="technicans">
+    <l10n-phrase lang="en">Build System, Technical Contributions</l10n-phrase>
+    <l10n-phrase lang="cs">Technickà ÅeÅenÃ</l10n-phrase>
+    <l10n-phrase lang="de">Technische UnterstÃtzung</l10n-phrase>
+    <l10n-phrase lang="es">Contribuciones tÃcnicas</l10n-phrase>
+    <l10n-phrase lang="fr">Contributions techniques</l10n-phrase>
+    <l10n-phrase lang="it">Contributi tecnici</l10n-phrase>
+    <l10n-phrase lang="ko">ììí êì, êì ìì</l10n-phrase>
+    <l10n-phrase lang="nl">Technische Ondersteuning</l10n-phrase>
+    <l10n-phrase lang="no">Teknisk stÃtte</l10n-phrase>
+  </i18n-record>
+
+</gimp-help:i18n-phrases>

Modified: trunk/stylesheets/authors_docbook.xsl
==============================================================================
--- trunk/stylesheets/authors_docbook.xsl	(original)
+++ trunk/stylesheets/authors_docbook.xsl	Thu Apr 17 19:22:42 2008
@@ -5,140 +5,151 @@
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 xmlns:dc="http://purl.org/dc/elements/1.1/";
-                exclude-result-prefixes="dc">
-  <xsl:include href="authors_text.xsl" />
+                xmlns:gimp-help="http://www.gimp.org/docs";
+                exclude-result-prefixes="dc gimp-help">
 
-  <xsl:output method="xml" indent="yes" />
+  <!-- importing instead of including should avoid 
+       any problems with duplicate definitions -->
+  <xsl:import href="authors_text.xsl" />
 
+  <xsl:output method="xml" indent="yes"
+              doctype-public="-//OASIS//DTD DocBook XML V4.3//EN"
+              doctype-system="http://www.docbook.org/xml/4.3/docbookx.dtd"/>
+
+  <xsl:param name="roles">creator documenter artist technican</xsl:param>
+  <xsl:param name="print.roles.with.lang">creator documenter</xsl:param>
+
+  <!-- read translations of titles and phrases -->
+  <xsl:variable name="i18n"
+    select="document('../src/preface/titles.xml')"/>
+
+  <!-- ============================================================= -->
   <xsl:template match="/dc:gimp-authors">
-    <xsl:text disable-output-escaping="yes">
-      <![CDATA[
-    <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-                "http://www.docbook.org/xml/4.3/docbookx.dtd";>
-    <!-- do not edit this file directly -->
-    <!-- it was generated automatically from authors.xml 
-         in the root of gimp-help-2 -->
-      ]]>
-    </xsl:text>
-    <sect1 id="gimp-team" lang="en;es;cs;de;fr;it;ko;nl;no">
+  <!-- ============================================================= -->
+<xsl:comment>
+    Do not edit this file directly. It was generated automatically
+    from "stylesheets/authors.xml".
+    Translations are read from "src/preface/titles.xml".
+</xsl:comment>
+
+    <sect1 id="gimp-team" lang="{$i18n/gimp-help:i18n-phrases/@linguas}">
       <title>
-        <phrase lang="en">GIMP User Manual Authors and Contributors</phrase>
-        <phrase lang="cs">
-          AutoÅi a pÅispÄvatelà k uÅivatelskà pÅÃruÄce GIMPu
-        </phrase>
-        <phrase lang="de">
-          Autoren und Mitwirkende des GIMP-Benutzerhandbuches
-        </phrase>
-        <phrase lang="es">
-          Autores y contribuyentes al manual de usuario del GIMP
-        </phrase>
-        <phrase lang="fr">
-          Auteurs et contributeurs du Guide de l'utilisateur Gimp
-        </phrase>
-        <phrase lang="it">
-          Autori e collaboratori del manuale utente di GIMP
-        </phrase>
-        <phrase lang="ko">êí ììì ìëì ìì ë êêì</phrase>
-        <phrase lang="nl">
-          Schrijvers en medewerkers aan de GIMP Handleiding
-        </phrase>
-        <phrase lang="no">
-          Personane bak <acronym>GIMP</acronym>-handboka
-        </phrase>
+        <xsl:for-each
+            select="$i18n/gimp-help:i18n-phrases/i18n-record[ name='authors']/l10n-phrase">
+          <phrase lang="{ lang}">
+            <xsl:value-of select="text()"/>
+          </phrase>
+        </xsl:for-each>
       </title>
     
       <variablelist>
-        <varlistentry>
-          <term lang="en">Content Writers</term>
-          <term lang="cs">AutoÅi obsahu</term>
-          <term lang="de">Autoren und Mitwirkende</term>
-          <term lang="es">Escritores del contenido</term>
-          <term lang="fr">RÃdacteurs du contenu</term>
-          <term lang="it">Autori</term>
-          <term lang="ko">ëë ìì</term>
-          <term lang="nl">Schrijvers en vertalers</term>
-          <term lang="no">Forfattarane</term>
-          <listitem>
-            <para>
-              <itemizedlist>
-                <xsl:apply-templates select="//dc:creator" />
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term lang="en">Proof Reading</term>
-          <term lang="cs">Korektury</term>
-          <term lang="de">Korrekturleser</term>
-          <term lang="fr">Relectures</term>
-          <term lang="it">Correzione e revisione</term>
-          <term lang="ko">êì</term>
-          <term lang="nl">Proef lezers</term>
-          <term lang="no">Korrekturlesing</term>
-          <listitem>
-            <para>
-              <itemizedlist>
-                <xsl:apply-templates select="//dc:contributor[contains(@role, 'documenter')]" />
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term lang="en">Graphics, Stylesheets</term>
-          <term lang="cs">Grafika a styly</term>
-          <term lang="de">Grafik, Stylesheets</term>
-          <term lang="es">GrÃficos, hojas de estilo</term>
-          <term lang="fr">Graphismes, Feuilles de Style</term>
-          <term lang="it">Grafica e fogli di stile</term>
-          <term lang="ko">êëíì, ìíììí</term>
-          <term lang="nl">Afbeeldingen en Stijlbladen</term>
-          <term lang="no">Grafikk og stilark</term>
-
-          <listitem>
-            <para>
-              <itemizedlist>
-                <xsl:apply-templates select="//dc:contributor[contains(@role, 'artist')]" />
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term lang="en">Build System, Technical Contributions</term>
-          <term lang="cs">Technickà ÅeÅenÃ</term>
-          <term lang="de">Technische UnterstÃtzung</term>
-          <term lang="es">Contribuciones tÃcnicas</term>
-          <term lang="fr">Contributions techniques</term>
-          <term lang="it">Contributi tecnici</term>
-          <term lang="ko">ììí êì, êì ìì</term>
-          <term lang="nl">Technische Ondersteuning</term>
-          <term lang="no">Teknisk stÃtte</term>
-
-          <listitem>
-            <para>
-              <itemizedlist>
-                <xsl:apply-templates select="//dc:contributor[contains(@role, 'technican')]" />
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
+        <!-- create recursively "varlistentry" nodes -->
+        <xsl:call-template name="print.listentry">
+          <xsl:with-param name="roles">
+            <xsl:value-of select="normalize-space($roles)"/>
+          </xsl:with-param>
+        </xsl:call-template>
       </variablelist>
     </sect1> 
   </xsl:template>
 
-  <!-- two simple transformations -->
-  <xsl:template match="//dc:creator | //dc:contributor">
-    <xsl:param name="print_language">1</xsl:param>
-    <listitem>
-      <para>
+  <!-- ============================================================= -->
+  <xsl:template name="print.listentry">
+  <!-- ============================================================= -->
+    <!-- parameter: space-separated list of roles -->
+    <xsl:param name="roles" select="''"/>
+    <xsl:variable name="role">
+      <xsl:choose>
+        <xsl:when test="contains($roles,' ')">
+          <xsl:value-of select="substring-before($roles,' ')"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$roles"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:if test="$role != ''">
+      <varlistentry>
+        <term>
+          <xsl:variable name="name" select="concat($role,'s')"/>
+          <!-- extract localized phrases -->
+          <xsl:for-each
+              select="$i18n/gimp-help:i18n-phrases/i18n-record[ name=$name]/l10n-phrase">
+            <phrase lang="{ lang}">
+              <xsl:value-of select="text()"/>
+            </phrase>
+          </xsl:for-each>
+        </term>
+        <listitem>
+          <simplelist type="inline">
+            <!-- whether to print "John Doe (English)" or "John Doe" -->
+            <xsl:variable name="with.language">
+              <xsl:choose>
+                <xsl:when test="contains($print.roles.with.lang, $role)">
+                  <xsl:value-of select="1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="0"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:variable>
+            <!-- extract authors and contributors -->
+            <xsl:choose>
+              <!-- technicans may be creators or contributors -->
+              <xsl:when test="$role = 'technican'">
+                <xsl:for-each select="//dc:contributor[contains(@role, $role)] |
+                                      //dc:creator[contains(@role, $role)]">
+                  <xsl:call-template name="print.item">
+                    <xsl:with-param name="print.language" select="$with.language"/>
+                  </xsl:call-template>
+                </xsl:for-each>
+              </xsl:when>
+              <!-- print contributors? -->
+              <xsl:when test="$role != 'creator'">
+                <xsl:for-each select="//dc:contributor[contains(@role, $role)]">
+                  <xsl:call-template name="print.item">
+                    <xsl:with-param name="print.language" select="$with.language"/>
+                  </xsl:call-template>
+                </xsl:for-each>
+              </xsl:when>
+              <!-- print creators -->
+              <xsl:otherwise>
+                <xsl:for-each select="//dc:creator">
+                  <xsl:call-template name="print.item">
+                    <xsl:with-param name="print.language" select="$with.language"/>
+                  </xsl:call-template>
+                </xsl:for-each>
+              </xsl:otherwise>
+            </xsl:choose>
+          </simplelist>
+        </listitem>
+      </varlistentry>
+      <!-- if necessary, print next list entry -->
+      <xsl:if test="contains($roles,' ')">
+        <xsl:call-template name="print.listentry">
+          <xsl:with-param name="roles">
+            <xsl:value-of select="substring-after($roles,' ')"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ============================================================= -->
+  <xsl:template name="print.item">
+  <!-- ============================================================= -->
+    <xsl:param name="print.language">1</xsl:param>
+    <member>
+      <phrase>
         <xsl:apply-templates match="." />
-        <xsl:if test="@lang != '' and $print_language != 0">
-          <xsl:text> (</xsl:text>
+        <xsl:if test="@lang != '' and $print.language != 0">
+          <xsl:text>Â(</xsl:text>
           <xsl:call-template name="lang.split">
             <xsl:with-param name="lang" select="@lang" />
           </xsl:call-template>
           <xsl:text>)</xsl:text>
         </xsl:if>
-      </para>
-    </listitem>
+      </phrase>
+    </member>
   </xsl:template>
 </xsl:stylesheet>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]