Bug 8872 Add UTF-8 encoding to opac xslt files
[koha.git] / koha-tmpl / opac-tmpl / prog / en / xslt / UNIMARCslim2OPACDetail.xsl
index 69e5cf6..cb365d9 100644 (file)
@@ -4,12 +4,12 @@
 
 <xsl:stylesheet version="1.0"
   xmlns:marc="http://www.loc.gov/MARC21/slim"
-  xmlns:items="http://www.koha.org/items"
+  xmlns:items="http://www.koha-community.org/items"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   exclude-result-prefixes="marc items">
 
 <xsl:import href="UNIMARCslimUtils.xsl"/>
-<xsl:output method = "xml" indent="yes" omit-xml-declaration = "yes" />
+<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
 <xsl:template match="/">
   <xsl:apply-templates/>
 </xsl:template>
   <xsl:variable name="leader6" select="substring($leader,7,1)"/>
   <xsl:variable name="leader7" select="substring($leader,8,1)"/>
   <xsl:variable name="biblionumber" select="marc:datafield[@tag=090]/marc:subfield[@code='a']"/>
-
+  <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
+  <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
+  <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
 
   <xsl:if test="marc:datafield[@tag=200]">
     <xsl:for-each select="marc:datafield[@tag=200]">
-      <h1>
+      <h1 class="title">
         <xsl:call-template name="addClassRtl" />
-        <xsl:variable name="title" select="marc:subfield[@code='a']"/>
-        <xsl:variable name="ntitle"
-         select="translate($title, '&#x0098;&#x009C;','')"/>
-        <xsl:value-of select="$ntitle" />
-        <xsl:if test="marc:subfield[@code='e']">
-          <xsl:text> : </xsl:text>
-          <xsl:for-each select="marc:subfield[@code='e']">
-            <xsl:value-of select="."/>
-          </xsl:for-each>
-        </xsl:if>
-        <xsl:if test="marc:subfield[@code='b']">
-          <xsl:text> [</xsl:text>
-          <xsl:value-of select="marc:subfield[@code='b']"/>
-          <xsl:text>]</xsl:text>
-        </xsl:if>
-        <xsl:if test="marc:subfield[@code='f']">
-          <xsl:text> / </xsl:text>
-          <xsl:value-of select="marc:subfield[@code='f']"/>
-        </xsl:if>
-        <xsl:if test="marc:subfield[@code='g']">
-          <xsl:text> ; </xsl:text>
-          <xsl:value-of select="marc:subfield[@code='g']"/>
-        </xsl:if>
+        <xsl:for-each select="marc:subfield">
+          <xsl:choose>
+            <xsl:when test="@code='a'">
+              <xsl:variable name="title" select="."/>
+              <xsl:variable name="ntitle"
+               select="translate($title, '&#x0088;&#x0089;&#x0098;&#x009C;','')"/>
+              <xsl:value-of select="$ntitle" />
+            </xsl:when>
+            <xsl:when test="@code='b'">
+              <xsl:text> [</xsl:text>
+              <xsl:value-of select="."/>
+              <xsl:text>]</xsl:text>
+            </xsl:when>
+            <xsl:when test="@code='d'">
+              <xsl:text> = </xsl:text>
+              <xsl:value-of select="."/>
+            </xsl:when>
+            <xsl:when test="@code='e'">
+              <xsl:text> : </xsl:text>
+              <xsl:value-of select="."/>
+            </xsl:when>
+            <xsl:when test="@code='f'">
+              <xsl:text> / </xsl:text>
+              <xsl:value-of select="."/>
+            </xsl:when>
+            <xsl:when test="@code='g'">
+              <xsl:text> ; </xsl:text>
+              <xsl:value-of select="."/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>, </xsl:text>
+              <xsl:value-of select="."/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
       </h1>
     </xsl:for-each>
   </xsl:if>
 
-  <div id="views">
-    <span class="view">
-      <span id="Normalview">Normal View</span>
-    </span>
-    <span class="view">
-      <a id="MARCviewPop" href="/cgi-bin/koha/opac-showmarc.pl?id={marc:datafield[@tag=090]/marc:subfield[@code='a']}" title="MARC" rel="gb_page_center[600,500]">MARC View</a>
-    </span>
-    <span class="view">
-      <a id="MARCview" href="/cgi-bin/koha/opac-MARCdetail.pl?biblionumber={marc:datafield[@tag=090]/marc:subfield[@code='a']}" title="MARC">Expanded MARC View</a>
-    </span>
-    <span class="view">
-      <a id="ISBDview" href="/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber={marc:datafield[@tag=090]/marc:subfield[@code='a']}">Card View (ISBD)</a>
-    </span>
-  </div>
+  <xsl:call-template name="tag_title">
+    <xsl:with-param name="tag">454</xsl:with-param>
+    <xsl:with-param name="label">Translation of</xsl:with-param>
+  </xsl:call-template>
 
-  <xsl:call-template name="tag_4xx" />
+  <xsl:call-template name="tag_title">
+    <xsl:with-param name="tag">461</xsl:with-param>
+    <xsl:with-param name="label">Set Level</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:call-template name="tag_title">
+    <xsl:with-param name="tag">464</xsl:with-param>
+    <xsl:with-param name="label">Piece-Analytic Level</xsl:with-param>
+  </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">700</xsl:with-param>
-    <xsl:with-param name="label">Auteur principal</xsl:with-param>
+    <xsl:with-param name="label">Main Author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">710</xsl:with-param>
-    <xsl:with-param name="label">Collectivité principale</xsl:with-param>
+    <xsl:with-param name="label">Corporate Author (Main)</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">701</xsl:with-param>
-    <xsl:with-param name="label">Co-auteur</xsl:with-param>
+    <xsl:with-param name="label">Coauthor</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">702</xsl:with-param>
-    <xsl:with-param name="label">Auteur</xsl:with-param>
+    <xsl:with-param name="label">Secondary Author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">711</xsl:with-param>
-    <xsl:with-param name="label">Collectivité co-auteur</xsl:with-param>
+    <xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">712</xsl:with-param>
-    <xsl:with-param name="label">Collectivité secondaire</xsl:with-param>
+    <xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:call-template name="tag_title">
+    <xsl:with-param name="tag">500</xsl:with-param>
+    <xsl:with-param name="label">Uniform Title</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:call-template name="tag_title">
+    <xsl:with-param name="tag">503</xsl:with-param>
+    <xsl:with-param name="label">Uniform Conventional Heading</xsl:with-param>
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=101]">
-         <span class="results_summary">
-      <span class="label">Langue: </span>
+    <span class="results_summary">
+      <span class="label">Language:</span>
       <xsl:for-each select="marc:datafield[@tag=101]">
         <xsl:for-each select="marc:subfield">
           <xsl:choose>
-            <xsl:when test="@code='b'">de la trad. intermédiaire, </xsl:when>
-            <xsl:when test="@code='c'">de l'œuvre originale, </xsl:when>
-            <xsl:when test="@code='d'">du résumé, </xsl:when>
-            <xsl:when test="@code='e'">de la table des matières, </xsl:when>
-            <xsl:when test="@code='f'">de la page de titre, </xsl:when>
-            <xsl:when test="@code='g'">du titre propre, </xsl:when>
-            <xsl:when test="@code='h'">d'un livret, </xsl:when>
-            <xsl:when test="@code='i'">des textes d'accompagnement, </xsl:when>
-            <xsl:when test="@code='j'">des sous-titres, </xsl:when>
+            <xsl:when test="@code='b'">of intermediate text, </xsl:when>
+            <xsl:when test="@code='c'">of original work, </xsl:when>
+            <xsl:when test="@code='d'">of summary, </xsl:when>
+            <xsl:when test="@code='e'">of contents page, </xsl:when>
+            <xsl:when test="@code='f'">of title page, </xsl:when>
+            <xsl:when test="@code='g'">of title proper, </xsl:when>
+            <xsl:when test="@code='h'">of libretto, </xsl:when>
+            <xsl:when test="@code='i'">of accompanying material, </xsl:when>
+            <xsl:when test="@code='j'">of subtitles, </xsl:when>
           </xsl:choose>
           <xsl:value-of select="text()"/>
           <xsl:choose>
 
   <xsl:if test="marc:datafield[@tag=102]">
          <span class="results_summary">
-      <span class="label">Pays: </span>
+      <span class="label">Country: </span>
       <xsl:for-each select="marc:datafield[@tag=102]">
         <xsl:for-each select="marc:subfield">
           <xsl:value-of select="text()"/>
     </span>
   </xsl:if>
 
+  <xsl:call-template name="tag_comma">
+    <xsl:with-param name="tag">205</xsl:with-param>
+    <xsl:with-param name="label">Edition Statement</xsl:with-param>
+  </xsl:call-template>
+
   <xsl:call-template name="tag_210" />
 
   <xsl:call-template name="tag_215" />
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">225</xsl:with-param>
-    <xsl:with-param name="label">Collection</xsl:with-param>
+    <xsl:with-param name="label">Series</xsl:with-param>
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=676]">
 
   <xsl:if test="marc:datafield[@tag=327]">
     <span class="results_summary">
-      <span class="label">Note de contenu: </span>
+      <span class="label">Contents note: </span>
       <xsl:for-each select="marc:datafield[@tag=327]">
         <xsl:call-template name="chopPunctuation">
           <xsl:with-param name="chopString">
 
   <xsl:if test="marc:datafield[@tag=330]">
     <span class="results_summary">
-      <span class="label">Résumé: </span>
+      <span class="label">Abstract: </span>
       <xsl:for-each select="marc:datafield[@tag=330]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
         <xsl:choose>
 
   <xsl:if test="marc:datafield[@tag=317]">
     <span class="results_summary">
-      <span class="label">Note sur la provenance: </span>
+      <span class="label">Provenance note: </span>
       <xsl:for-each select="marc:datafield[@tag=317]">
           <xsl:value-of select="marc:subfield[@code='a']"/>
       </xsl:for-each>
 
   <xsl:if test="marc:datafield[@tag=320]">
     <span class="results_summary">
-      <span class="label">Bibliographie: </span>
+      <span class="label">Bibliography: </span>
       <xsl:for-each select="marc:datafield[@tag=320]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
 
   <xsl:if test="marc:datafield[@tag=328]">
     <span class="results_summary">
-      <span class="label">Thèse: </span>
+      <span class="label">Thesis: </span>
       <xsl:for-each select="marc:datafield[@tag=328]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
 
   <xsl:if test="marc:datafield[@tag=333]">
     <span class="results_summary">
-      <span class="label">Public: </span>
+      <span class="label">Audience: </span>
       <xsl:for-each select="marc:datafield[@tag=333]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
     </span>
   </xsl:if>
 
-  <xsl:if test="marc:datafield[@tag=955]">
-    <span class="results_summary">
-      <span class="label">SUDOC serial history: </span>
-      <xsl:for-each select="marc:datafield[@tag=955]">
-        <xsl:value-of select="marc:subfield[@code='9']"/>:
-        <xsl:value-of select="marc:subfield[@code='r']"/>
-        <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
-      </xsl:for-each>
-    </span>
-  </xsl:if>
-
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">600</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Nom de personne</xsl:with-param>
+    <xsl:with-param name="label">Subject - Personal Name</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">601</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Collectivité</xsl:with-param>
+    <xsl:with-param name="label">Subject - Corporate Author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">602</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Famille</xsl:with-param>
+    <xsl:with-param name="label">Subject - Family</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">604</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Auteur/titre</xsl:with-param>
+    <xsl:with-param name="label">Subject - Author/Title</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">606</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Nom commun</xsl:with-param>
+    <xsl:with-param name="label">Subject - Topical Name</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">607</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Nom géographique</xsl:with-param>
+    <xsl:with-param name="label">Subject - Geographical Name</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">608</xsl:with-param>
-    <xsl:with-param name="label">Sujet - Forme</xsl:with-param>
+    <xsl:with-param name="label">Subject - Form</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">610</xsl:with-param>
-    <xsl:with-param name="label">Sujet</xsl:with-param>
+    <xsl:with-param name="label">Subject</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">615</xsl:with-param>
-    <xsl:with-param name="label">Catégorie sujet</xsl:with-param>
+    <xsl:with-param name="label">Subject Category</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_subject">
     <xsl:with-param name="tag">616</xsl:with-param>
-    <xsl:with-param name="label">Marque déposée</xsl:with-param>
+    <xsl:with-param name="label">Trademark</xsl:with-param>
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=856]">
     <span class="results_summary">
-      <span class="label">Online Resources: </span>
+      <span class="label">Online Resources:</span>
       <xsl:for-each select="marc:datafield[@tag=856]">
         <a>
           <xsl:attribute name="href">
             <xsl:value-of select="marc:subfield[@code='u']"/>
           </xsl:attribute>
+          <xsl:if test="$OPACURLOpenInNewWindow='1'">
+            <xsl:attribute name="target">_blank</xsl:attribute>
+          </xsl:if>
           <xsl:choose>
             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
               <xsl:call-template name="subfieldSelect">
               </xsl:call-template>
             </xsl:when>
             <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
-              Click here to access online
+              <xsl:choose>
+                <xsl:when test="$URLLinkText!=''">
+                  <xsl:value-of select="$URLLinkText"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:text>Click here to access online</xsl:text>
+                </xsl:otherwise>
+              </xsl:choose>
             </xsl:when>
           </xsl:choose>
         </a>
         </xsl:choose>
                 <xsl:variable name="f780">
                     <xsl:call-template name="subfieldSelect">
-                        <xsl:with-param name="codes">at</xsl:with-param>
+                        <xsl:with-param name="codes">a_t</xsl:with-param>
                     </xsl:call-template>
                 </xsl:variable>
              <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
         </xsl:choose>
                    <xsl:variable name="f785">
                     <xsl:call-template name="subfieldSelect">
-                        <xsl:with-param name="codes">at</xsl:with-param>
+                        <xsl:with-param name="codes">a_t</xsl:with-param>
                     </xsl:call-template>
                 </xsl:variable>