allow multiple dc:publisher
[librarian.git] / librarian / epub / xsltContent.xsl
index 8de0259..24315c5 100644 (file)
@@ -6,8 +6,8 @@
     <package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" version="2.0">
       <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:opf="http://www.idpf.org/2007/opf">
         <xsl:apply-templates select="//dc:title" />
-        <dc:language xsi:type="dcterms:RFC3066">
-          <xsl:apply-templates select="//dc:language" />
+        <dc:language>
+          <xsl:apply-templates select="//dc:language" mode="language" />
         </dc:language>
         <dc:identifier id="BookId" opf:scheme="URI">
           <xsl:apply-templates select="//dc:identifier.url" />
           <xsl:apply-templates select="//dc:identifier.url" />
         </dc:subject>
         <dc:creator opf:role="aut">
-               <xsl:attribute name="opf:file-as">
-               <xsl:value-of select="//dc:creator" />
-            </xsl:attribute>
-            <xsl:apply-templates select="//dc:creator" mode="person"/>
+          <xsl:attribute name="opf:file-as">
+            <xsl:value-of select="//dc:creator" />
+          </xsl:attribute>
+          <xsl:for-each select="//dc:creator/text()">
+              <xsl:value-of select="wl:person_name(.)"/>
+              <xsl:if test="not(position() = last())">, </xsl:if>
+          </xsl:for-each>
         </dc:creator>
         <dc:publisher>
-          <xsl:apply-templates select="//dc:publisher" />
+          <xsl:for-each select="//dc:publisher/text()">
+            <xsl:value-of select="."/>
+            <xsl:if test="not(position() = last())">; </xsl:if>
+          </xsl:for-each>
         </dc:publisher>
         <dc:date opf:event="publication">
           <xsl:apply-templates select="//dc:date" />
@@ -53,5 +59,9 @@
   <xsl:template match="text()" mode="person">
     <xsl:value-of select="wl:person_name(.)" />
   </xsl:template>
+  
+  <xsl:template match="text()" mode="language">
+    <xsl:value-of select="wl:lang_code_3to2(.)" />
+  </xsl:template>
 
 </xsl:stylesheet>