<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
    <!ENTITY nbsp "&#160;">
]>
<!-- $Id: table.xsl,v 1.17 2009/11/09 11:04:37 asdrury Exp $ -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"/>

<!-- ********************************************************************** -->
<!-- Begin main template                                                    -->
<!-- ********************************************************************** -->

<xsl:template match="/">
<xsl:comment disable-output-escaping="true"><![CDATA[Ad Majorem Dei Gloriam]]></xsl:comment>
<xsl:text>
</xsl:text>
<xsl:comment disable-output-escaping="true"><![CDATA[
]]></xsl:comment>
<xsl:text>
</xsl:text>
<html>
<head>
<meta name="author" content="A.S.Drury"/>
<meta name="keywords" content="Traditional Latin Mass, Extraordinary Form, Latin Rite, Gregorian Rite, Motu Proprio Summorum Pontificum, William Whitaker's WORDS, Roman Catholic, translation, grammar, language study aid, learning guide, dictionary, glossary, Ecclesiastical Latin, Ordo Missae Missale Romanum, Ordinary of the Mass"/>
 <meta name="description" content="List of Latin words from Traditional Latin Mass 1962 with grammatical information."/>
<link rel="shortcut icon" href="http://gmr.sourceforge.net/images/favicon.ico"/>
<link rel="icon" type="image/ico" href="http://gmr.sourceforge.net/images/favicon.ico"/>
<title>Latin Mass Words List</title>
<style type="text/css">
body { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: x-small; background-color:#FFFFFF; }
td { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: x-small; background-color:#FFFFFF; }
.rubric { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: small; font-color: red; font-decoration: italic; }
.prayer_type { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: small; }
.small { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: small; }
.xsmall { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: x-small; }
.xxsmall { font-family:Tahoma,Arial,Helvitica,sans-serif; font-size: xx-small; }
</style>
<script type="text/javascript">
<!--
function stat(msg) {
 window.status=msg;
}
//-->
</script>
</head>
<body bgcolor="white">

<h2>Latin Grammar Word List from the Ordinary of the Mass in the Roman Missal of 1962</h2>

<a class="xsmall" href="http://gmr.sourceforge.net/">Latin Grammar home</a>
<br/>
<a class="xsmall" href="http://gmr.sourceforge.net/grammar/gmr.html">Order of the Mass, Roman Missal 1962</a>
<br/>
Some browsers can render <a class="xsmall" href="http://gmr.sourceforge.net/xml/gmr.xml">XML source</a>

<p>
This study of the Latin grammar of the Order of the Mass in the Missale Romanum of 1962 has been constructed using
<a title="William Whitaker's WORDS" href="http://en.wikipedia.org/wiki/William_Whitaker's_Words">William Whitaker's WORDS</a>,
but all the errors are mine. Should you find an error, kindly let me know at arthur&#0046;drury&#0064;gmail&#0046;com*_NOSPAM_*.
</p>

<h1><font color="RED">DRAFT</font></h1>

<p>

</p>

<table border="1" cellpadding="3" cellspacing="1" cols="4">
<tr><th>Term</th><th>Translation</th><th><a href="http://users.erols.com/whitaker/words.htm" title="William Whitaker's WORDS">Grammar</a></th><th>Dictionary entry</th><th>Notes</th></tr>
<xsl:for-each select="verba/concisio">
 <!-- ********************************************************************** -->
 <!-- RCS keywords                                                           -->
 <!-- ********************************************************************** -->
 <tr valign="top" align="left">
  <xsl:for-each select="version">
   <td colspan="5">Version: <xsl:value-of select="."/></td>
  </xsl:for-each>
 </tr>
 <!-- ********************************************************************** -->
 <!-- Headings                                                               -->
 <!-- ********************************************************************** -->
 <tr valign="top" align="left">
  <xsl:for-each select="heading">
   <td colspan="5"><b><xsl:value-of select="."/></b></td>
  </xsl:for-each>
 </tr>
 <!-- ********************************************************************** -->
 <!-- Latin: for-each Verbum                                                 -->
 <!-- ********************************************************************** -->
 <xsl:if test="@type='prayer'">
  <xsl:for-each select="verbum">
    <xsl:call-template name="grammar_table"/>
  </xsl:for-each>
 </xsl:if> <!-- prayer -->
</xsl:for-each> <!-- verba/concisio -->
</table>

</body>
</html>
</xsl:template>

<!-- ********************************************************************** -->
<!-- End main template                                                      -->
<!-- ********************************************************************** -->

<!-- *********************************************************************** -->
<!-- Colorize Latin terms to indicate parts of speech and case               -->
<!-- *********************************************************************** -->
<xsl:template name="colors">
 <xsl:param name="node"/> 
 <xsl:param name="term"/> 
 <xsl:variable name="enclitic_str">
 <xsl:choose>
  <xsl:when test="not(string(enclitic/@term)) = false"><xsl:value-of select="enclitic/@term"/></xsl:when>
  <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
 </xsl:choose>
 </xsl:variable>
 <xsl:variable name="term_str" select="concat($term,$enclitic_str)"/>
 <xsl:choose>
     <xsl:when test="@case='NOM' or @case='VOC'">
         <font color="DarkGreen"><xsl:value-of select="normalize-space($term_str)"/></font>
     </xsl:when>
     <xsl:when test="@case='ACC'">
         <font color="Teal"><xsl:value-of select="normalize-space($term_str)"/></font>
     </xsl:when>
     <xsl:when test="@case='ABL'">
         <font color="#4C787E"><xsl:value-of select="normalize-space($term_str)"/></font>
     </xsl:when>
     <xsl:when test="@case='GEN'">
         <font color="Brown"><xsl:value-of select="normalize-space($term_str)"/></font>
     </xsl:when>
     <xsl:when test="@case='DAT'">
         <font color="Navy"><xsl:value-of select="normalize-space($term_str)"/></font>
     </xsl:when>
     <xsl:when test="@part='V' or @part='VT' or @part='VPAR' or @part='VDEP'">
         <xsl:choose>
             <xsl:when test="(@tense='FUT' or @tense='FUTP') and @mood='SUB'">
                 <font color="Purple"><b><i><xsl:value-of select="normalize-space($term_str)"/></i></b></font>
             </xsl:when>
             <xsl:when test="@tense='FUT' or @tense='FUTP'">
                 <font color="Purple"><i><xsl:value-of select="normalize-space($term_str)"/></i></font>
             </xsl:when>
             <xsl:when test="(@tense='PERF' or @tense='IMPF') and @mood='SUB'">
                 <font color="DarkOrchid"><b><xsl:value-of select="normalize-space($term_str)"/></b></font>
             </xsl:when>
             <xsl:when test="@tense='PERF' or @tense='IMPF'">
                 <font color="DarkOrchid"><xsl:value-of select="normalize-space($term_str)"/></font>
             </xsl:when>
             <xsl:when test="@tense='PRES' and @mood='SUB'">
                 <font color="Purple"><b><xsl:value-of select="normalize-space($term_str)"/></b></font>
             </xsl:when>
             <xsl:otherwise> <!--xsl:when test="@tense='PRES'"-->
                 <font color="Purple"><xsl:value-of select="normalize-space($term_str)"/></font>
             </xsl:otherwise>
         </xsl:choose>
     </xsl:when>
     <xsl:otherwise>
         <xsl:value-of select="normalize-space($term_str)"/>
     </xsl:otherwise>
 </xsl:choose>
</xsl:template>
<!-- *********************************************************************** -->
<!-- Display William Whitaker's WORDS grammar in HTML table                  -->
<!-- *********************************************************************** -->
<xsl:template name="grammar_table">
<!--
 <table border="1" cellpadding="2" cellspacing="1">
   -->
   <tr>
   <td>
    <xsl:call-template name="colors">
     <xsl:with-param name="node" select="."/>
     <xsl:with-param name="term" select="@radix"/>
    </xsl:call-template> 
   </td>
   <td nowrap="true">
    <xsl:value-of select="normalize-space(translation)"/>
   </td>
   <td>
    <xsl:value-of select="@part"/><xsl:if test="not(string(@part)) = false">&#160;</xsl:if>
    <xsl:value-of select="@declension"/><xsl:if test="not(string(@declension)) = false">&#160;</xsl:if>
    <xsl:value-of select="@conjugation"/><xsl:if test="not(string(@conjugation)) = false">&#160;</xsl:if>
    <xsl:value-of select="@tense"/><xsl:if test="not(string(@tense)) = false">&#160;</xsl:if>
    <xsl:value-of select="@mood"/><xsl:if test="not(string(@mood)) = false">&#160;</xsl:if>
    <xsl:value-of select="@case"/><xsl:if test="not(string(@case)) = false">&#160;</xsl:if>
    <xsl:value-of select="@voice"/><xsl:if test="not(string(@voice)) = false">&#160;</xsl:if>
    <xsl:value-of select="@person"/><xsl:if test="not(string(@person)) = false">&#160;</xsl:if>
    <xsl:value-of select="@number"/><xsl:if test="not(string(@number)) = false">&#160;</xsl:if>
    <xsl:value-of select="@gender"/><xsl:if test="not(string(@gender)) = false">&#160;</xsl:if>
    <xsl:text>&#160;</xsl:text>
   </td>
   <td>
    <xsl:value-of select="noun/@nominative"/><xsl:if test="boolean(noun[@nominative])">&#160;</xsl:if>
    <xsl:value-of select="noun/@genitive"/><xsl:if test="boolean(noun[@genitive])">&#160;</xsl:if>
    <xsl:value-of select="verb/@first"/><xsl:if test="boolean(verb[@first])">&#160;</xsl:if>
    <xsl:value-of select="verb/@second"/><xsl:if test="boolean(verb[@second])">&#160;</xsl:if>
    <xsl:value-of select="verb/@third"/><xsl:if test="boolean(verb[@third])">&#160;</xsl:if>
    <xsl:value-of select="verb/@fourth"/><xsl:if test="boolean(verb[@fourth])">&#160;</xsl:if>
    <xsl:value-of select="adjective/@masculine"/><xsl:if test="boolean(adjective[@masculine])">&#160;</xsl:if>
    <xsl:value-of select="adjective/@feminine"/><xsl:if test="boolean(adjective[@feminine])">&#160;</xsl:if>
    <xsl:value-of select="adjective/@neuter"/><xsl:if test="boolean(adjective[@neuter])">&#160;</xsl:if>
    <xsl:if test="boolean(enclitic[@term])">
     <xsl:value-of select="pronoun/@term"/><xsl:if test="boolean(pronoun[@term])">&#160;</xsl:if>
     <xsl:if test="boolean(enclitic[@term])">&#43;&#160;</xsl:if>
      <xsl:value-of select="enclitic/@term"/>
     <xsl:if test="boolean(enclitic[@term])">&#160;</xsl:if>
    </xsl:if>
    <xsl:text>&#160;</xsl:text>
  </td>
  <td>
    <xsl:choose>
     <xsl:when test="not(string(note)) = false">
      <xsl:value-of select="normalize-space(note)"/>
     </xsl:when>
     <xsl:otherwise>
      <xsl:text>&nbsp;</xsl:text>
     </xsl:otherwise>
    </xsl:choose>
  </td>
  </tr>
  <!--
 </table>
 -->
</xsl:template>
</xsl:stylesheet>
