You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by wg...@apache.org on 2005/07/13 06:49:31 UTC

svn commit: r216112 [1/2] - in /jakarta/velocity/core/trunk/xdocs: ./ stylesheets/ translations/

Author: wglass
Date: Tue Jul 12 21:49:29 2005
New Revision: 216112

URL: http://svn.apache.org/viewcvs?rev=216112&view=rev
Log:
fixed links to docs / redirected to docs14 on website

Added:
    jakarta/velocity/core/trunk/xdocs/readme.txt
Modified:
    jakarta/velocity/core/trunk/xdocs/.htaccess
    jakarta/velocity/core/trunk/xdocs/build.xml
    jakarta/velocity/core/trunk/xdocs/getting-started.xml
    jakarta/velocity/core/trunk/xdocs/index.xml
    jakarta/velocity/core/trunk/xdocs/overview.xml
    jakarta/velocity/core/trunk/xdocs/stylesheets/project-website.xml
    jakarta/velocity/core/trunk/xdocs/stylesheets/project.xml
    jakarta/velocity/core/trunk/xdocs/translations/user-guide_es.xml
    jakarta/velocity/core/trunk/xdocs/translations/user-guide_fi.xml
    jakarta/velocity/core/trunk/xdocs/translations/user-guide_fr.xml

Modified: jakarta/velocity/core/trunk/xdocs/.htaccess
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/.htaccess?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/.htaccess (original)
+++ jakarta/velocity/core/trunk/xdocs/.htaccess Tue Jul 12 21:49:29 2005
@@ -1,5 +1,9 @@
 RewriteEngine  on
 RewriteBase /
+
+## rewrite links from earlier directory structure
+## use forward not redirect so anchors still work
+
 RewriteRule ^anakia\.html velocity/docs14/anakia.html 
 RewriteRule ^changes\.html velocity/docs14/changes.html 
 RewriteRule ^developer-guide\.html velocity/docs14/developer-guide.html 
@@ -9,3 +13,9 @@
 RewriteRule ^veltag\.html docs14/veltag.html 
 RewriteRule ^vtl-reference-guide\.html velocity/docs14/vtl-reference-guide.html 
 RewriteRule ^api velocity/docs14/api
+
+
+## rewrite official links to point to correct version
+RewriteRule ^docs velocity/docs14/
+
+RewriteRule ^docs/(.*/) velocity/docs14/\1

Modified: jakarta/velocity/core/trunk/xdocs/build.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/build.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/build.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/build.xml Tue Jul 12 21:49:29 2005
@@ -87,7 +87,7 @@
 
 <p>
 Note that to build any of the specific build targets, as detailed in
-the <a href="developer-guide.html">developers guide</a>, simply add
+the <a href="docs/developer-guide.html">developers guide</a>, simply add
 the target name to the command line.  For example, to build the Javadoc
 API documentation :
 </p>

Modified: jakarta/velocity/core/trunk/xdocs/getting-started.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/getting-started.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/getting-started.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/getting-started.xml Tue Jul 12 21:49:29 2005
@@ -13,26 +13,28 @@
 <section name="Getting Started">
 
 <p>
-  It's easy to get started with Velocity.   The best places to begin are:
+
+Velocity is easy to use! A quick way to get started is to skim the
+references below, then look at the examples and source provided in the
+distribution. <i>For developers writing web-based applications, the Web
+Application Guide is highly recommended!</i>
+
 
   <ul>
-   <li>
-      the <a href="user-guide.html">User's Guide</a>, which provides a good
-      overview of what Velocity templates are all about.
-   </li>
-   <li>
-     the <a href="developer-guide.html">Developer's Guide</a>, which provides
-     a good reference and discussion of how to incorporate Velocity into your Java
-     programs and servlets.
-   </li>
-   <li>
-     the <a href="vtl-reference-guide.html">VTL Reference Guide</a>, which is a reference
-     guide to VTL, the Velocity Template Language.
-   </li>
-   <li>
-     if you want to build a web application, be sure to read the <a href="webapps.html">Web Application Guide</a>
-     and then download the <a href="">Velocity Tools</a> sub-project to use VelocityViewServlet.
+
+    <li><a href="docs/user-guide.html">User's Guide</a> - explains how to write Velocity templates 
+    </li>
+    
+    <li><a href="docs/developer-guide.html">Developer's Guide</a> - explains how to use Velocity inside Java programs
     </li>
+    
+    <li><a href="docs/vtl-reference-guide.html">VTL Reference</a> - concise syntax for Velocity Template Language (VTL) 
+    </li>
+    
+    <li><a href="webapps.html">Web Application Guide</a> - web-based application techniques and
+    VelocityViewServlet tutorial 
+    </li>
+
    </ul>
 
     

Modified: jakarta/velocity/core/trunk/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/index.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/index.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/index.xml Tue Jul 12 21:49:29 2005
@@ -33,7 +33,7 @@
   <p>
      Velocity's capabilities reach well beyond the realm of the web;
      for example, it can be used to generate SQL, PostScript and XML
-     (see <a href="./anakia.html">Anakia</a> for more information on
+     (see <a href="docs/anakia.html">Anakia</a> for more information on
      XML transformations) from templates.  It can be used either as a
      standalone utility for generating source code and reports, or as
      an integrated component of other systems.  For instance, Velocity

Modified: jakarta/velocity/core/trunk/xdocs/overview.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/overview.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/overview.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/overview.xml Tue Jul 12 21:49:29 2005
@@ -18,14 +18,16 @@
  </p>
     <ul>
         <li>Web applications.  Web designers create HTML pages with placeholders for dynamic information.  
-           The page is processed with <a href="">VelocityViewServlet</a> or any of a 
-           number of <a href="">frameworks</a> which support Velocity.  This approach to web application development
+           The page is processed with <a href="http://jakarta.apache.org/velocity/tools/view/">VelocityViewServlet</a> or any of a 
+           number of <a href="http://wiki.apache.org/jakarta-velocity/PoweredByVelocity">frameworks</a> which support Velocity.  
+           This approach to web application development
            is called Model-View-Controller or MVC and is intended to be a direct replacement
            for applications developed with Java Server Pages (JSPs) or PHP.
         </li>
         
         <li>Source code generation.  Velocity can be used to generate Java source code, SQL, or PostScript
-            based on templates.  The <a href="">Powered by</a> page lists a number of open source 
+            based on templates.  The <a href="http://wiki.apache.org/jakarta-velocity/PoweredByVelocity">PoweredByVelocity</a> 
+            page lists a number of open source 
             and commercial development software packages which use Velocity in this manner.
         </li>
             
@@ -34,7 +36,7 @@
             file rather than directly embedded in your Java code.
         </li>
             
-        <li>XML transformation.  Velocity provides an ant task called <a href="anakia.html">Anakia</a> which reads
+        <li>XML transformation.  Velocity provides an ant task called <a href="docs/anakia.html">Anakia</a> which reads
             an XML file and makes it available to a Velocity template.  A common application is to
             convert documentation stored in a generic "xdoc" format into a styled HTML document.
          </li>
@@ -46,8 +48,8 @@
  <p>
     Velocity allows web page designers and other template writers to include markup statements 
     called <em>references</em> in the page.  These references are pulled from a <em>Context</em>
-    object --essentially a hashtable that provides get and set
-    methods for retrieving and setting objects --and the corresponding values are inserted 
+    object -- essentially a hashtable that provides get and set
+    methods for retrieving and setting objects -- and the corresponding values are inserted 
     directly in a page.  Velocity provides basic control statements, that can loop over a collection
     of values (foreach) or conditionally show a block of text (if/else).  The ability to
     call arbitrary Java methods, include other files, and to create macros that can be repeatedly

Added: jakarta/velocity/core/trunk/xdocs/readme.txt
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/readme.txt?rev=216112&view=auto
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/readme.txt (added)
+++ jakarta/velocity/core/trunk/xdocs/readme.txt Tue Jul 12 21:49:29 2005
@@ -0,0 +1,33 @@
+Notes on documentation structure and versioning
+------------------------------------------------
+
+This folder contains "xdocs" - raw unformatted files for
+website and product documentation.
+
+To create HTML documentation, do:
+	ant docs
+
+To create docs for the website, do:
+	ant -Ddocs.project=project-website.xml
+	
+When creating new documentation, please note that we've adopted a few
+conventions for product documentation (User's Guide, Developer's Guide, etc).
+
+(1) The website always shows the released version of the docs, while
+the nightly snapshort has the latest.
+
+(2) To make this work, before generating the website copy the latest
+released product docs (in the subdirectory docs) and rename it
+"docs14" (for version 1.4)
+
+(3) All internal links to product documenation should be directly to 
+the "docs" directory.
+
+(4) Update the file .htaccess to make any link to "docs" link to
+"docs14" instead.
+
+Consequently, on a file system a link to docs/user-guide.html will
+point to the latest file, while on the webserver it will be forwarded
+to docs14/user-guide.html.
+
+

Modified: jakarta/velocity/core/trunk/xdocs/stylesheets/project-website.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/stylesheets/project-website.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/stylesheets/project-website.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/stylesheets/project-website.xml Tue Jul 12 21:49:29 2005
@@ -18,16 +18,18 @@
         <item name="Download"                 href="http://jakarta.apache.org/site/downloads/downloads_velocity.html"/>
         <item name="FAQ (Wiki)"               href="http://wiki.apache.org/jakarta-velocity/VelocityFAQ"/>
     </menu>
+    
+    <!-- note: on the website a .htaccess file will direct these links to the "docs14" folder -->
     <menu name="Docs (Velocity 1.4)">
-        <item name="User's Guide"             href="http://jakarta.apache.org/velocity/docs14/user-guide.html"/>
-        <item name="Developer's Guide"        href="http://jakarta.apache.org/velocity/docs14/developer-guide.html"/>
-        <item name="VTL Reference Guide"      href="http://jakarta.apache.org/velocity/docs14/vtl-reference-guide.html"/>
-        <item name="Anakia : XML->doc tool"   href="http://jakarta.apache.org/velocity/docs14/anakia.html"/>
-        <item name="Texen : text generation"  href="http://jakarta.apache.org/velocity/docs14/texen.html"/>
-        <item name="Veltag : JSP taglib"      href="http://jakarta.apache.org/velocity/docs14/veltag.html"/>
-        <item name="Javadoc"                  href="http://jakarta.apache.org/velocity/docs14/api/index.html"/>
-        <item name="Change Log"               href="http://jakarta.apache.org/velocity/docs14/changes.html"/>
-        <item name="License"                  href="http://jakarta.apache.org/velocity/docs14/license.html"/>
+        <item name="User's Guide"             href="http://jakarta.apache.org/velocity/docs/user-guide.html"/>
+        <item name="Developer's Guide"        href="http://jakarta.apache.org/velocity/docs/developer-guide.html"/>
+        <item name="VTL Reference"            href="http://jakarta.apache.org/velocity/docs/vtl-reference-guide.html"/>
+        <item name="Anakia : XML->doc tool"   href="http://jakarta.apache.org/velocity/docs/anakia.html"/>
+        <item name="Texen : text generation"  href="http://jakarta.apache.org/velocity/docs/texen.html"/>
+        <item name="Veltag : JSP taglib"      href="http://jakarta.apache.org/velocity/docs/veltag.html"/>
+        <item name="Javadoc"                  href="http://jakarta.apache.org/velocity/docs/api/index.html"/>
+        <item name="Change Log"               href="http://jakarta.apache.org/velocity/docs/changes.html"/>
+        <item name="License"                  href="http://jakarta.apache.org/velocity/docs/license.html"/>
     </menu>
     <menu name="Sub Projects">
         <item name="Velocity Tools"           href="http://jakarta.apache.org/velocity/tools/index.html"/>

Modified: jakarta/velocity/core/trunk/xdocs/stylesheets/project.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/stylesheets/project.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/stylesheets/project.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/stylesheets/project.xml Tue Jul 12 21:49:29 2005
@@ -17,7 +17,7 @@
     <menu name="Docs">
         <item name="User's Guide"             href="/docs/user-guide.html"/>
         <item name="Developer's Guide"        href="/docs/developer-guide.html"/>
-        <item name="VTL Reference Guide"      href="/docs/vtl-reference-guide.html"/>
+        <item name="VTL Reference"            href="/docs/vtl-reference-guide.html"/>
         <item name="Anakia : XML->doc tool"   href="/docs/anakia.html"/>
         <item name="Texen : text generation"  href="/docs/texen.html"/>
         <item name="Veltag : JSP taglib"      href="/docs/veltag.html"/>

Modified: jakarta/velocity/core/trunk/xdocs/translations/user-guide_es.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/translations/user-guide_es.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/translations/user-guide_es.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/translations/user-guide_es.xml Tue Jul 12 21:49:29 2005
@@ -7,62 +7,62 @@
 <author email="ju-moral@uniandes.edu.co">Juan Pablo Morales</author>
 </properties>
 <body>
-	<section name="Tabla de Contenidos">
+    <section name="Tabla de Contenidos">
 
 <ol>
-	<li><a href="#Acerca de esta guía">Acerca de esta guía</a></li>
-	<li><a href="#¿Qué es Velocity?">¿Qué es Velocity?</a></li>
-	<li><a href="#¿Qué puede hacer Velocity por mi?">¿Qué puede hacer Velocity por mi?</a>
-	<ol>
-		<li><a href="#El Ejemplo de la tienda de Lodo">El Ejemplo de la tienda de
-			Lodo</a></li>
-	</ol>
+    <li><a href="#Acerca de esta guía">Acerca de esta guía</a></li>
+    <li><a href="#¿Qué es Velocity?">¿Qué es Velocity?</a></li>
+    <li><a href="#¿Qué puede hacer Velocity por mi?">¿Qué puede hacer Velocity por mi?</a>
+    <ol>
+        <li><a href="#El Ejemplo de la tienda de Lodo">El Ejemplo de la tienda de
+            Lodo</a></li>
+    </ol>
 </li>
 <li><a href="#El Lenguaje de Plantillas de Velocity (VTL): Una Introducción">El Lenguaje de Plantillas de Velocity (VTL): Una Introducción</a></li>
 <li><a href="#¡Hola Mundo Velocity!">¡Hola Mundo Velocity!</a></li>
 <li><a href="#Comentarios">Comentarios</a></li>
 <li><a href="#Referencias">Referencias</a>
-	<ol>
-		<li><a href="#Variables">Variables</a></li>
-		<li><a href="#Propiedades">Propiedades</a></li>
-		<li><a href="#Métodos">Métodos</a></li>
-	</ol>
+    <ol>
+        <li><a href="#Variables">Variables</a></li>
+        <li><a href="#Propiedades">Propiedades</a></li>
+        <li><a href="#Métodos">Métodos</a></li>
+    </ol>
 </li>
 <li><a href="#Notación Formal de Referencias">Notación Formal de Referencias</a></li>
 <li><a href="#Notación Sileciosa de Referencias">Notación Sileciosa de Referencias</a></li>
 <li><a href="#Literalmente">Literalmente</a>
-	<ol>
-		<li><a href="#Dinero">Dinero</a></li>
-		<li><a href="#Escapando Referencias VTL Válidas">Escapando Referencias VTL Válidas</a></li>
-	</ol>
+    <ol>
+        <li><a href="#Dinero">Dinero</a></li>
+        <li><a href="#Escapando Referencias VTL Válidas">Escapando Referencias VTL Válidas</a></li>
+    </ol>
 </li>
 <li><a href="#Sustitución de Mayúsculas y Minúsculas">Sustitución de Mayúsculas y Minúsculas</a></li>
 <li><a href="#Directivas">Directivas</a>
-	<ol>
-		<li><a href="#Set">Set</a></li>
-		<li><a href="#Cadenas de Caracteres">Cadenas de Caracteres</a></li>
-		<li><a href="#Sentencias If-Else">Sentencias If-Else</a>
-			<ol>
-				<li><a href="#Operadores Lógicos y Relacionales">Operadores Lógicos y Relacionales</a></li>
-			</ol>
-		</li>
-		<li><a href="#Ciclos Foreach">Ciclos Foreach</a></li>
-		<li><a href="#Include">Include</a></li>
-		<li><a href="#Parse">Parse</a></li>
-		<li><a href="#Stop">Stop</a></li>
-		<li><a href="#Velocimacros">Velocimacros</a></li>
-	</ol>
+    <ol>
+        <li><a href="#Set">Set</a></li>
+        <li><a href="#Cadenas de Caracteres">Cadenas de Caracteres</a></li>
+        <li><a href="#Sentencias If-Else">Sentencias If-Else</a>
+            <ol>
+                <li><a href="#Operadores Lógicos y Relacionales">Operadores Lógicos y Relacionales</a></li>
+            </ol>
+        </li>
+        <li><a href="#Ciclos Foreach">Ciclos Foreach</a></li>
+        <li><a href="#Include">Include</a></li>
+        <li><a href="#Parse">Parse</a></li>
+        <li><a href="#Stop">Stop</a></li>
+        <li><a href="#Velocimacros">Velocimacros</a></li>
+    </ol>
 </li>
 <li><a href="#Escapando Directivas VTL">Escapando Directivas VTL</a></li>
 <li><a href="#VTL: Asuntos de Formato">VTL: Asuntos de Formato</a></li>
 <li><a href="#Otras Características y Miscelánea">Otras Características y Miscelánea</a>
-	<ol>
-		<li><a href="#Matemáticas">Matemáticas</a></li>
-		<li><a href="#El Operador de Rango">El Operador de Rango</a></li>
-		<li><a href="#Temas Avanzados: Escapando y !">Temas Avanzados: Escapando y !</a></li>
-		<li><a href="#Miscelánea de Velocimacro">Miscelánea de Velocimacro</a></li>
-		<li><a href="#Concatenación de Cadenas">Concatenación de Cadenas</a></li>
-	</ol>
+    <ol>
+        <li><a href="#Matemáticas">Matemáticas</a></li>
+        <li><a href="#El Operador de Rango">El Operador de Rango</a></li>
+        <li><a href="#Temas Avanzados: Escapando y !">Temas Avanzados: Escapando y !</a></li>
+        <li><a href="#Miscelánea de Velocimacro">Miscelánea de Velocimacro</a></li>
+        <li><a href="#Concatenación de Cadenas">Concatenación de Cadenas</a></li>
+    </ol>
 </li>
 <li><a href="#Retroalimentación">Retroalimentación</a></li>
 </ol>
@@ -91,8 +91,8 @@
 diseñado y que los programadores se encarguen solamente de escribir código de
 primera calidad. Velocity separa el código Java de las páginas Web, haciendo el
 sitio más mantenible a largo plazo y presentando una alternativa viable a <a
-	href="http://java.sun.com/products/jsp/">Java Server Pages</a> (JSP) o <a
-	href="http://www.php.net">PHP</a>.
+    href="http://java.sun.com/products/jsp/">Java Server Pages</a> (JSP) o <a
+    href="http://www.php.net">PHP</a>.
 </p>
 
 <p>
@@ -101,7 +101,7 @@
 independiente para generar código fuente y reportes, o como un componente
 integrado en otros sistemas. Cuando este completo Velocity proveerá servicios
 para el conjunto de aplicaciones web de <a
-	href="http://jakarta.apache.org/turbine">Turbine</a>.  Velocity+Turbine
+    href="http://jakarta.apache.org/turbine">Turbine</a>.  Velocity+Turbine
 proveerá un servicio de plantillas que facilitará el desarrollo de aplicaciones
 web de acuerdo a un verdadero modelo MVC.
 </p>
@@ -193,12 +193,12 @@
  </p>
 
  <p>
- 	VTL usa <em>referencias</em> para incluir contenido dinámico dentro
-	de un sitio web. Una variable es un tipo de referencia que puede
-	referirse a algo definido dentro del código Java o obtener su valor
-	de un <em>enunciado</em> VTL en la página misma. A continuación hay
-	un ejemplo de un enunciado VTL que se puede incluir en un documento
-	HTML:
+    VTL usa <em>referencias</em> para incluir contenido dinámico dentro
+    de un sitio web. Una variable es un tipo de referencia que puede
+    referirse a algo definido dentro del código Java o obtener su valor
+    de un <em>enunciado</em> VTL en la página misma. A continuación hay
+    un ejemplo de un enunciado VTL que se puede incluir en un documento
+    HTML:
  </p>
 
 <source><![CDATA[
@@ -206,12 +206,12 @@
 ]]></source>
 
   <p>
-  	Este enunciado VTL, como todos los enunciados VTL comienza con el
-	caracter <em>#</em> y contiene una directiva: <em>set</em>. Cuando
-	un visitante solicita su página, el Motor de Plantillas de Velocity
-	buscará dentro del contenido de su página y encontrará todos los
-	símbolos <em>#</em>, para luego determinar cuáles marcan el comienzo
-	de enunciados VTL y cuáles no tienen nada que ver con VTL.
+    Este enunciado VTL, como todos los enunciados VTL comienza con el
+    caracter <em>#</em> y contiene una directiva: <em>set</em>. Cuando
+    un visitante solicita su página, el Motor de Plantillas de Velocity
+    buscará dentro del contenido de su página y encontrará todos los
+    símbolos <em>#</em>, para luego determinar cuáles marcan el comienzo
+    de enunciados VTL y cuáles no tienen nada que ver con VTL.
  </p>
 
  <p>
@@ -236,8 +236,8 @@
  <p>
  La siguiente regla puede ser útil para entender mejor como funciona
  Velocity: <strong>Las Referencias comienzan con <em>$</em> y se
-	 utilizan para obtener algo. Las directivas comienzan con <em>#</em>
-	 y se utilizan para hacer algo</strong>
+     utilizan para obtener algo. Las directivas comienzan con <em>#</em>
+     y se utilizan para hacer algo</strong>
  </p>
 
  <p>
@@ -251,10 +251,10 @@
 <section name="¡Hola Mundo Velocity!">
 
   <p>
-	Una vez un valor ha sido asignado a una variable, usted puede
-	referenciar la variable en cualquier lugar dentro del documento
-	HTML. En el ejemplo siguiente, un valor es asignado a la variable
-	<em>$foo</em>, que luego es referenciada.
+    Una vez un valor ha sido asignado a una variable, usted puede
+    referenciar la variable en cualquier lugar dentro del documento
+    HTML. En el ejemplo siguiente, un valor es asignado a la variable
+    <em>$foo</em>, que luego es referenciada.
  </p>
 
 <source><![CDATA[
@@ -294,12 +294,12 @@
 ]]></source>
 
 <p>
-	Un comentario de una sola línea comienza con <em>##</em> y termina
-	al final de la línea. Si usted desea escribir varias líneas de
-	comentario no es necesario tener numerosos comentarios de una sóla
-	línea. Los comentarios de varias líneas, que comienzan con
-	<em>#*</em> y terminan con <em>*#</em> le permiten manejar
-	fácilmente esta situación.
+    Un comentario de una sola línea comienza con <em>##</em> y termina
+    al final de la línea. Si usted desea escribir varias líneas de
+    comentario no es necesario tener numerosos comentarios de una sóla
+    línea. Los comentarios de varias líneas, que comienzan con
+    <em>#*</em> y terminan con <em>*#</em> le permiten manejar
+    fácilmente esta situación.
  </p>
 
  <source><![CDATA[
@@ -316,8 +316,8 @@
 ]]></source>
 
  <p>
- 	A continuación hay algunos ejemplos para aclarar como funcionan
-	los comentarios de una y varias líneas:
+    A continuación hay algunos ejemplos para aclarar como funcionan
+    los comentarios de una y varias líneas:
  </p>
 
  <source><![CDATA[
@@ -331,9 +331,9 @@
 ]]></source>
 
 <p>
-	Existe un tercer tipo de comentario, el bloque de comentario VTL,
-	que puede ser utilizado para almacenar datos como el autor y la
-	información de versiones:
+    Existe un tercer tipo de comentario, el bloque de comentario VTL,
+    que puede ser utilizado para almacenar datos como el autor y la
+    información de versiones:
 </p>
 
 <source><![CDATA[
@@ -352,40 +352,40 @@
 <section name="Referencias">
 
 <p>
-	Existen tres tipos de referencias en VTL: variables, propiedades y
-	métodos. Como un diseñador que utilizar VTL, usted y sus ingenieros
-	deben llegar a un acuerdo respecto a los nombres de las referencias
-	para que usted pueda utilizarlas correctamente en sus plantillas.
+    Existen tres tipos de referencias en VTL: variables, propiedades y
+    métodos. Como un diseñador que utilizar VTL, usted y sus ingenieros
+    deben llegar a un acuerdo respecto a los nombres de las referencias
+    para que usted pueda utilizarlas correctamente en sus plantillas.
  </p>
 
  <p>
- 	Todo lo que entra y sale de una referencia se trata como una cadena
-	de caracteres (un objeto String). Si existe un objeto que representa
-	<em>$foo</em> (por ejemplo, un objeto Integer), entonces Velocity
-	llamará el método <code>.toString()</code> de ese objeto para
-	convertirlo en una cadena de caracteres.
+    Todo lo que entra y sale de una referencia se trata como una cadena
+    de caracteres (un objeto String). Si existe un objeto que representa
+    <em>$foo</em> (por ejemplo, un objeto Integer), entonces Velocity
+    llamará el método <code>.toString()</code> de ese objeto para
+    convertirlo en una cadena de caracteres.
  </p>
 
  <p>
  <a name="Variables"><strong>Variables</strong></a>
  <br />
- 	La notación breve de una variable esta compuesta por un signo "$"
-	inicial seguido de un <em>Identificador</em>. Un identificador VTL
-	debe comenzar con un caracter alfabético (a .. z ó A .. Z). El resto
-	de los caracteres deb ser de alguno de los siguiente tipos:
+    La notación breve de una variable esta compuesta por un signo "$"
+    inicial seguido de un <em>Identificador</em>. Un identificador VTL
+    debe comenzar con un caracter alfabético (a .. z ó A .. Z). El resto
+    de los caracteres deb ser de alguno de los siguiente tipos:
  </p>
 
  <p>
    <ul>
      <li>alfabético (a .. z, A .. Z)</li>
-	 <li>numérico (0 .. 9)</li>
-	 <li>línea ("-")</li>
+     <li>numérico (0 .. 9)</li>
+     <li>línea ("-")</li>
      <li>underscore ("_")</li>
    </ul>
  </p>
 
  <p>
- 	A continuación hay algunos ejemplos de referencias válidas en VTL:
+    A continuación hay algunos ejemplos de referencias válidas en VTL:
  </p>
 
 <source><![CDATA[
@@ -397,14 +397,14 @@
 ]]></source>
 
 <p>
-	Cuando VTL hace referencia una variable, po ejemplo, <em>$foo</em>,
-	la variable puede obtener su valor de una directiva <em>set</em>
-	dentro de la plantilla, o del código Java. Por ejemplo, si la
-	variable de Java <em>$foo</em> tiene el valor <em>bar</em> en el
-	momento en que se solicita la plantilla, entonces <em>bar</em>
-	reemplaza todas las ocurrencias (o instancias) de <em>$foo</em>
-	dentro de la página web. De manera alterna, si se incluye el
-	enunciado
+    Cuando VTL hace referencia una variable, po ejemplo, <em>$foo</em>,
+    la variable puede obtener su valor de una directiva <em>set</em>
+    dentro de la plantilla, o del código Java. Por ejemplo, si la
+    variable de Java <em>$foo</em> tiene el valor <em>bar</em> en el
+    momento en que se solicita la plantilla, entonces <em>bar</em>
+    reemplaza todas las ocurrencias (o instancias) de <em>$foo</em>
+    dentro de la página web. De manera alterna, si se incluye el
+    enunciado
  </p>
 
 <source><![CDATA[
@@ -412,18 +412,18 @@
 ]]></source>
 
 <p>
-	La salida será la misma para todas las instancias de <em>$foo</em>
-	que se encuentren a continuación es esta directiva.
+    La salida será la misma para todas las instancias de <em>$foo</em>
+    que se encuentren a continuación es esta directiva.
  </p>
 
  <p>
  <a name="Propiedades"><strong>Propiedades</strong></a>
  <br />
- 	El segundo sabor de referencias VTL son las propiedades; las
-	propiedades tienen un formato particular. La versión corta se
-	compone de un signo <em>$</em> seguido de un identificador VTL,
-	seguido de un punto y de otro identificador VTL. A continuación hay
-	ejemplos de referencias de propiedades válidas en VTL:
+    El segundo sabor de referencias VTL son las propiedades; las
+    propiedades tienen un formato particular. La versión corta se
+    compone de un signo <em>$</em> seguido de un identificador VTL,
+    seguido de un punto y de otro identificador VTL. A continuación hay
+    ejemplos de referencias de propiedades válidas en VTL:
  </p>
 
 <source><![CDATA[
@@ -432,30 +432,30 @@
 ]]></source>
 
 <p>
-	Tome el primer ejemplo, <em>$cliente.Direccion</em>. Puede tener dos
-	significados. Puede significar, Busque en la tabla de hashing
-	identificada como <em>cliente</em> y devuelva el valor asociado con
-	la llave <em>Direccion</em>. Pero <em>$customer.Address</em> puede
-	también referirse a un método (las referencias que se relacionan con
-	métodos se discutirán en la sección siguiente);
-	<em>$customer.Address</em> puede ser una manera corta de escribir
-	<em>$customer.getAddress()</em>. Cuando su página sea solicitada
-	Velocity determinará cuál de las dos posibilidades tiene sentido, y
-	luego devolverá el valor apropiado.
+    Tome el primer ejemplo, <em>$cliente.Direccion</em>. Puede tener dos
+    significados. Puede significar, Busque en la tabla de hashing
+    identificada como <em>cliente</em> y devuelva el valor asociado con
+    la llave <em>Direccion</em>. Pero <em>$customer.Address</em> puede
+    también referirse a un método (las referencias que se relacionan con
+    métodos se discutirán en la sección siguiente);
+    <em>$customer.Address</em> puede ser una manera corta de escribir
+    <em>$customer.getAddress()</em>. Cuando su página sea solicitada
+    Velocity determinará cuál de las dos posibilidades tiene sentido, y
+    luego devolverá el valor apropiado.
  </p>
 
  <p>
  <a name="Métodos"><strong>Methods</strong></a>
  <br />
- 	Un método esta definido dentro del código de Java y es capaz de
-	hacer algo útil, como desarrollar un cálculo o llegar a una
-	decisión. Los métodos son referencias compuestas de un signo "$"
-	inicial seguido en un identificador VTL, seguido de un <em>Cuerpo de
-		Método</em> VTL. Un cuerpo de método VTL, a su vez esta formado
-	por un identificador VTL seguido por un paréntesis izquierdo ("("),
-	seguido, opcionalmente, por una lista de parámetros, para terminar
-	en un paréntesis derecho. A continuación hay ejemplos de referencias
-	de métodos válidas dentro de VTL:
+    Un método esta definido dentro del código de Java y es capaz de
+    hacer algo útil, como desarrollar un cálculo o llegar a una
+    decisión. Los métodos son referencias compuestas de un signo "$"
+    inicial seguido en un identificador VTL, seguido de un <em>Cuerpo de
+        Método</em> VTL. Un cuerpo de método VTL, a su vez esta formado
+    por un identificador VTL seguido por un paréntesis izquierdo ("("),
+    seguido, opcionalmente, por una lista de parámetros, para terminar
+    en un paréntesis derecho. A continuación hay ejemplos de referencias
+    de métodos válidas dentro de VTL:
 
  </p>
 
@@ -467,23 +467,23 @@
 ]]></source>
 
 <p>
-	Los primeros dos ejemplos -- <em>$cliente.getDireccion()</em> y
-	<em>$compra.getTotal()</em> -- pueden parecer similares a aquellos
-	utilizados en la sección de propiedades, <em>$cliente.Direccion</em>
-	y <em>$compra.Total</em>. Si usted supuso que estos ejemplos están
-	relacionados de alguna manera, usted esta en lo cierto.
+    Los primeros dos ejemplos -- <em>$cliente.getDireccion()</em> y
+    <em>$compra.getTotal()</em> -- pueden parecer similares a aquellos
+    utilizados en la sección de propiedades, <em>$cliente.Direccion</em>
+    y <em>$compra.Total</em>. Si usted supuso que estos ejemplos están
+    relacionados de alguna manera, usted esta en lo cierto.
  </p>
 
  <p>
- 	Las Propiedades VTL pueden utilizarse como notación abreviada para
-	los métodos de VTL. La propiedad <em>$cliente.Direccion</em> tiene
-	exactamente el mismo efecto que el método
-	<em>$cliente.getDireccion()</em> (Nótese el uso de la palabra
-	inglesa <em>get</em> en lugar de la castellana <em>obtener</em>).
-	Generalmente es preferible utilizar una Propiedad si esta
-	disponible. La diferencia principal entre las propiedades y los
-	métodos es que usted le puede dar una lista de parámetros a un
-	Método.
+    Las Propiedades VTL pueden utilizarse como notación abreviada para
+    los métodos de VTL. La propiedad <em>$cliente.Direccion</em> tiene
+    exactamente el mismo efecto que el método
+    <em>$cliente.getDireccion()</em> (Nótese el uso de la palabra
+    inglesa <em>get</em> en lugar de la castellana <em>obtener</em>).
+    Generalmente es preferible utilizar una Propiedad si esta
+    disponible. La diferencia principal entre las propiedades y los
+    métodos es que usted le puede dar una lista de parámetros a un
+    Método.
  </p>
 
  <p>
@@ -497,10 +497,10 @@
 ]]></source>
 
 <p>
-	Podríamos esperar que estos métodos devolvieran los nombres de los
-	planetas que giran alrededor del sol, alimentaran un gusano de
-	tierra y extrajeran una foro de un album. Los siguientes Métodos
-	solo se pueden referenciar por medio de la notación larga:
+    Podríamos esperar que estos métodos devolvieran los nombres de los
+    planetas que giran alrededor del sol, alimentaran un gusano de
+    tierra y extrajeran una foro de un album. Los siguientes Métodos
+    solo se pueden referenciar por medio de la notación larga:
  </p>
 
 <source><![CDATA[
@@ -516,7 +516,7 @@
 
  <p>
  <a name="Notación Formal de Referencias"><strong>Notación Formal de
-		 Referncias</strong></a>
+         Referncias</strong></a>
  <br />
  La notación abreviada para referencias fue utilizada en los ejemplos
  anteriores, pero también existe una notación formal para referencias,
@@ -561,35 +561,35 @@
 ]]></source>
 
 <p>
-	Ahora Velocity save que la referencia es <em>$vicio</em> y no
-	<em>$viciomano</em>. La notación formal es útil cuando las
-	referencias están ubicadas directamente al lado del texto dentro de
-	una plantilla.
+    Ahora Velocity save que la referencia es <em>$vicio</em> y no
+    <em>$viciomano</em>. La notación formal es útil cuando las
+    referencias están ubicadas directamente al lado del texto dentro de
+    una plantilla.
  </p>
 
 
  <p>
  <a name="Notación Sileciosa de Referencias"><strong>Notación de Referenias
-		 Silenciosas</strong></a>
+         Silenciosas</strong></a>
  <br />
- 	Cuando Velocity encuentra una referencia indefinida, su
-	comportamiento normal es es de escribir el nombre de la referencia.
-	Por ejemplo, suponga que la siguiente referencia aparece como parte
-	de una plantilla VTL.
+    Cuando Velocity encuentra una referencia indefinida, su
+    comportamiento normal es es de escribir el nombre de la referencia.
+    Por ejemplo, suponga que la siguiente referencia aparece como parte
+    de una plantilla VTL.
  </p>
 
 <source><![CDATA[
 <input type="text" name="correo" value="$correo"/>
 ]]></source>
 
-	<p>
-	Cuando el formulario se carga por primera vez la referencia
-	<em>$correo</em> no tiene valor, pero usted probablemente preferiría
-	un texto en blanco a uno con el valor de "$correo". Usando la
-	notación de referencias silenciosa se pasa por alto el
-	comportamiento normal de Velocity. Para lograr eso en lugar de
-	<em>$correo</em> en el VTL usted utilizaría <em>$!correo</em>. Con
-	esta modificación el ejemplo anterior quedaría así:
+    <p>
+    Cuando el formulario se carga por primera vez la referencia
+    <em>$correo</em> no tiene valor, pero usted probablemente preferiría
+    un texto en blanco a uno con el valor de "$correo". Usando la
+    notación de referencias silenciosa se pasa por alto el
+    comportamiento normal de Velocity. Para lograr eso en lugar de
+    <em>$correo</em> en el VTL usted utilizaría <em>$!correo</em>. Con
+    esta modificación el ejemplo anterior quedaría así:
  </p>
 
 <source><![CDATA[
@@ -597,13 +597,13 @@
 ]]></source>
 
 <p>
-	Ahora cuando el formulario se carga por primera vez y $correo no
-	tenga valor una cadena vacía se escribirá en lugar de "$correo".
+    Ahora cuando el formulario se carga por primera vez y $correo no
+    tenga valor una cadena vacía se escribirá en lugar de "$correo".
  </p>
 
  <p>
- 	La notación formal y la silenciosa se puede usar juntas como se
-	muestra en el ejemplo siguiente:
+    La notación formal y la silenciosa se puede usar juntas como se
+    muestra en el ejemplo siguiente:
  </p>
 
 <source><![CDATA[
@@ -623,17 +623,17 @@
 
   <p>
     <a name="Dinero"><strong>Dinero</strong></a>
-	<br />
-	No hay ningún problema en escribir "Yo compré un saco de maíz de
-	2 kg. en el mercado de lagranja por sólo $2.50!". Como se mencionó
-	anteriormente, un identificador VTL siempre comienza con una letra
-	mayúscula o minúscula por lo que $2.50 no se confunde con una
-	referencia.
+    <br />
+    No hay ningún problema en escribir "Yo compré un saco de maíz de
+    2 kg. en el mercado de lagranja por sólo $2.50!". Como se mencionó
+    anteriormente, un identificador VTL siempre comienza con una letra
+    mayúscula o minúscula por lo que $2.50 no se confunde con una
+    referencia.
   </p>
 
   <p>
   <a name="Escapando Referencias VTL Válidas"><strong>Escapando Referencias
-		  VTL Válidas</strong></a>
+          VTL Válidas</strong></a>
   <br />
   Pueden existir casos en donde haya la posibilidad de que Velocity se
   confunda. <em>Escapar</em> caracteres especiales es la mejor manera de
@@ -648,18 +648,18 @@
 ]]></source>
 
 <p>
-	Si Velocity encuentra una referencia en su plantilla VTL a
-	<em>$correo</em>, el buscará el contexto ppor un valor
-	correspondiente. En este caso el resultado será <em>foo</em> por
-	qué <em>$correo</em> esta definido. Si <em>$correo</em> no esta
-	definido el resultado será <em>$correo</em>.
+    Si Velocity encuentra una referencia en su plantilla VTL a
+    <em>$correo</em>, el buscará el contexto ppor un valor
+    correspondiente. En este caso el resultado será <em>foo</em> por
+    qué <em>$correo</em> esta definido. Si <em>$correo</em> no esta
+    definido el resultado será <em>$correo</em>.
   </p>
 
   <p>
-  	Suponga que <em>$correo</em> está definido (por ejemplo, que tiene
-	el valor <em>foo</em>) y que usted desea escribir <em>$correo</em>.
-	Existen varias maneras de hacer esto pero la más sencilla es usar el
-	caracter de escape.
+    Suponga que <em>$correo</em> está definido (por ejemplo, que tiene
+    el valor <em>foo</em>) y que usted desea escribir <em>$correo</em>.
+    Existen varias maneras de hacer esto pero la más sencilla es usar el
+    caracter de escape.
   </p>
 
 <source><![CDATA[
@@ -709,10 +709,10 @@
 ]]></source>
 
 <p>
-	Note que Velocity maneja de manera diferentes las referencias que
-	están definidas de aquellas que no lo están. A continuación se
-	encuentra una directiva que da a <em>$foo</em> el valor
-	<em>verde</em>.
+    Note que Velocity maneja de manera diferentes las referencias que
+    están definidas de aquellas que no lo están. A continuación se
+    encuentra una directiva que da a <em>$foo</em> el valor
+    <em>verde</em>.
   </p>
 
 <source><![CDATA[
@@ -728,8 +728,8 @@
 
 
   <p>
-  	También es posible escapar directivas de VTL; esto se describe con
-	más detalle en la sección de Directivas.
+    También es posible escapar directivas de VTL; esto se describe con
+    más detalle en la sección de Directivas.
   </p>
 
 </section>
@@ -770,25 +770,25 @@
     </p>
 
     <p>
-	Velocity, que ha sido modelado con las especificaciones de Bean
-	definidas por Sun Microsystems, distingue entre mayúsculas y
-	minúsculas; sin embargo sus desarrolladores se han esforzado para
-	encontrar y corregir los errores del usuario cuando sea posible.
-	Cuando el método <em>getFoo()</em> es referenciado dentro de una
-	plantilla como <code>$bar.foo</code>, Velocity intentará primero
-	<code>getfoo()</code>. Si esto falla, intentará <code>getFoo()</code>.
-	De la misma manera, cuando una plantilla se refiera a
-	<code>$bar.Foo</code>, Velocity intentará <em>$getFoo()</em> primero
-	y luego <em>getfoo()</em>.
+    Velocity, que ha sido modelado con las especificaciones de Bean
+    definidas por Sun Microsystems, distingue entre mayúsculas y
+    minúsculas; sin embargo sus desarrolladores se han esforzado para
+    encontrar y corregir los errores del usuario cuando sea posible.
+    Cuando el método <em>getFoo()</em> es referenciado dentro de una
+    plantilla como <code>$bar.foo</code>, Velocity intentará primero
+    <code>getfoo()</code>. Si esto falla, intentará <code>getFoo()</code>.
+    De la misma manera, cuando una plantilla se refiera a
+    <code>$bar.Foo</code>, Velocity intentará <em>$getFoo()</em> primero
+    y luego <em>getfoo()</em>.
     </p>
 
     <p>
-	Nota: <em>Las Referencias a variables de instancia dentro de una
-		plantilla no se resuelven.</em> Solo las referencias a los
-	atributos get y set de los JavaBeans se resuelven (i.e.
-	<code>$foo.Nombre</code> se resuelve como el método de instancia
-	<code>getNombre()</code> de la clase Foo, pero no como su variable
-	de instancia <code>Nombre</code>).
+    Nota: <em>Las Referencias a variables de instancia dentro de una
+        plantilla no se resuelven.</em> Solo las referencias a los
+    atributos get y set de los JavaBeans se resuelven (i.e.
+    <code>$foo.Nombre</code> se resuelve como el método de instancia
+    <code>getNombre()</code> de la clase Foo, pero no como su variable
+    de instancia <code>Nombre</code>).
     </p>
 
 </section>
@@ -797,12 +797,12 @@
 <section name="Directivas">
 
 <p>
-	Las Referencias le permiten a los diseñadores de plantillas generar
-	contenido dinámico para sitios web, mientras que las
-	<em>directivas</em> -- elementos de script fáciles de usar que se
-	pueden usar para manipular de manera creativa la salida del código
-	Java -- les permiten a los diseñadores realmente estar a cargo de la
-	apariencia y en contenido del sitio web.
+    Las Referencias le permiten a los diseñadores de plantillas generar
+    contenido dinámico para sitios web, mientras que las
+    <em>directivas</em> -- elementos de script fáciles de usar que se
+    pueden usar para manipular de manera creativa la salida del código
+    Java -- les permiten a los diseñadores realmente estar a cargo de la
+    apariencia y en contenido del sitio web.
  </p>
 
  <a name="Set"><strong>#set</strong></a>
@@ -819,19 +819,19 @@
 ]]></source>
 
 <p>
-	El lado izquierdo (LI) de la asignación debe ser una referencia de
-	variable o una referencia de propiedad. El lado derecho (LD) puede
-	ser de alguno de los siguientes tipos:
+    El lado izquierdo (LI) de la asignación debe ser una referencia de
+    variable o una referencia de propiedad. El lado derecho (LD) puede
+    ser de alguno de los siguientes tipos:
  </p>
 
  <p>
     <ul>
-		<li>Referencia de Variable</li>
-		<li>Constante de Cadena</li>
-		<li>Referencia de Propiedad</li>
-		<li>Referencia de Método</li>
+        <li>Referencia de Variable</li>
+        <li>Constante de Cadena</li>
+        <li>Referencia de Propiedad</li>
+        <li>Referencia de Método</li>
         <li>Literal Numérico</li>
-		<li>Lista de elementos como arreglo</li>
+        <li>Lista de elementos como arreglo</li>
     </ul>
  </p>
 
@@ -867,11 +867,11 @@
 ]]></source>
 
 <p>
-	Si el Lado Derecho es una propiedad o referencia de método que se
-	evalúa como <em>null</em>, <b>no</b> será asignada al lado
-	izquierdo. No es posible remover una referencia existente del
-	contexto utilizando este mecanismo. Esto puede ser confuso para los
-	recién llegados a Velocity. Por ejemplo:
+    Si el Lado Derecho es una propiedad o referencia de método que se
+    evalúa como <em>null</em>, <b>no</b> será asignada al lado
+    izquierdo. No es posible remover una referencia existente del
+    contexto utilizando este mecanismo. Esto puede ser confuso para los
+    recién llegados a Velocity. Por ejemplo:
  </p>
 
 <source><![CDATA[
@@ -883,9 +883,9 @@
 ]]></source>
 
 <p>
-	Si <em>$consulta.criterio("nombre")</em> retorna la cadena "pedro",
-	y <em>$consulta.criterio("direccion")</em> retorna <em>null</em>, el
-	VTL anterio se mostraría de la siguiente manera:
+    Si <em>$consulta.criterio("nombre")</em> retorna la cadena "pedro",
+    y <em>$consulta.criterio("direccion")</em> retorna <em>null</em>, el
+    VTL anterio se mostraría de la siguiente manera:
  </p>
 
 <source><![CDATA[
@@ -895,10 +895,10 @@
 ]]></source>
 
 <p>
-	Esto tiende a confundir a quines están comenzando, que construyen
-	ciclos <em>#foreach</em> que intentan hacer <em>#set</em> de una
-	referencia por medio de una propiedad o un método e inmediatamente
-	evalúan la referencia con una directiva <em>#if</em>. Por ejemplo:
+    Esto tiende a confundir a quines están comenzando, que construyen
+    ciclos <em>#foreach</em> que intentan hacer <em>#set</em> de una
+    referencia por medio de una propiedad o un método e inmediatamente
+    evalúan la referencia con una directiva <em>#if</em>. Por ejemplo:
  </p>
 
 <source><![CDATA[
@@ -910,26 +910,26 @@
     #set( $resultado = $consulta.criterios($criterio) )
 
     #if( $result )
-	La consulta tuvo éxito
+    La consulta tuvo éxito
     #end
 
 #end
 ]]></source>
 
 <p>
-	En el ejemplo anterior, no sería inteligente confiar en la
-	evaluación de <em>$resultado</em> para determinar si una consulta
-	tuvo éxito. Después de que <em>$result</em> ha sido agregado al
-	contexto (por medio de una directiva <em>#set</em>), no puede volver
-	a establecerse a <em>null</em> (quitarse del contexto). Los detalles
-	de las directivas <em>#if</em> y <em>#foreach</em> son cubiertos con
-	mayor detalle posteriormente en esta guía.
+    En el ejemplo anterior, no sería inteligente confiar en la
+    evaluación de <em>$resultado</em> para determinar si una consulta
+    tuvo éxito. Después de que <em>$result</em> ha sido agregado al
+    contexto (por medio de una directiva <em>#set</em>), no puede volver
+    a establecerse a <em>null</em> (quitarse del contexto). Los detalles
+    de las directivas <em>#if</em> y <em>#foreach</em> son cubiertos con
+    mayor detalle posteriormente en esta guía.
  </p>
 
  <p>
- 	Una solución para este problema puede ser predefinir
-	<em>$resultado</em> a <em>false</em>. Luego, si la llamada a
-	<em>$consulta.criterios()</em> falla, es posible verificar.
+    Una solución para este problema puede ser predefinir
+    <em>$resultado</em> a <em>false</em>. Luego, si la llamada a
+    <em>$consulta.criterios()</em> falla, es posible verificar.
  </p>
 
 
@@ -943,23 +943,23 @@
     #set( $resultado = $consulta.criterios($criterio) )
 
     #if( $resultado )
-		La consulta tuvo éxito
+        La consulta tuvo éxito
     #end
 
 #end
 ]]></source>
 
 <p>
-	A diferencia de algunas de las otras directivas de Velocity, la
-	directiva <em>#set</em> no tiene un enunciado <em>#end</em>.
+    A diferencia de algunas de las otras directivas de Velocity, la
+    directiva <em>#set</em> no tiene un enunciado <em>#end</em>.
  </p>
 
  <a name="Cadenas de Caracteres"><strong>Cadenas de Caracteres</strong></a>
 
  <p>
- 	Cuando se utiliza la directiva <em>#set</em>, los literales de
-	cadena que están encerrados en comillas dobles serán evaluados y
-	mostrados en la plantilla, como se demuestra a continuación:
+    Cuando se utiliza la directiva <em>#set</em>, los literales de
+    cadena que están encerrados en comillas dobles serán evaluados y
+    mostrados en la plantilla, como se demuestra a continuación:
  </p>
 
 <source><![CDATA[
@@ -978,8 +978,8 @@
 ]]></source>
 
 <p>
-	Sin embargo, cuando la cadena de caracteres esta encerrada en
-	comillas sencillas, no será evaluada:
+    Sin embargo, cuando la cadena de caracteres esta encerrada en
+    comillas sencillas, no será evaluada:
  </p>
 
 <source><![CDATA[
@@ -997,10 +997,10 @@
 ]]></source>
 
 <p>
-	Por defecto, la característica de las comillas sencillas para
-	mostrar texto sin evaluar esta disponible en Velocity; sin embargo
-	este valor por defecto se puede cambiar editando el archivo
-	<code>velocity.properties</code> de tal manera que
+    Por defecto, la característica de las comillas sencillas para
+    mostrar texto sin evaluar esta disponible en Velocity; sin embargo
+    este valor por defecto se puede cambiar editando el archivo
+    <code>velocity.properties</code> de tal manera que
     <code>stringliterals.interpolate=false</code>.
  </p>
 </section>
@@ -1010,9 +1010,9 @@
 
 <strong>Condicionales</strong>
 <p>
-	La directiva <em>#if</em> en Velocity permite que se incluya texto
-	dentro de la plantilla generada, con la condición de que el
-	enunciado condicional evalue a verdadero. Por ejemplo:
+    La directiva <em>#if</em> en Velocity permite que se incluya texto
+    dentro de la plantilla generada, con la condición de que el
+    enunciado condicional evalue a verdadero. Por ejemplo:
 </p>
 
 <source><![CDATA[
@@ -1022,62 +1022,62 @@
 ]]></source>
 
 <p>
-	La variable <em>$foo</em> se evalúa para determinar si es verdadera,
-	cosa que ocurrirá bajo una de dos circunstancias: (i) <em>$foo</em>
-	es un valor booleano (verdadero ó falso) que tiene un valor de
-	verdadero, ó (ii) el valor no es <em>null</em>. Recuerde que el
-	contexto de Velocity solamente contiene objetos, por lo que cuando
-	se dice 'booleano' se habla en realidad de la clase Boolean. Esto es
-	cierto incluso para los métodos que devuelven un valor de tipo
-	<code>boolean</code> - la infraestructura de introspección devolverá
-	un <code>Boolean</code> del mismo valor lógico.
+    La variable <em>$foo</em> se evalúa para determinar si es verdadera,
+    cosa que ocurrirá bajo una de dos circunstancias: (i) <em>$foo</em>
+    es un valor booleano (verdadero ó falso) que tiene un valor de
+    verdadero, ó (ii) el valor no es <em>null</em>. Recuerde que el
+    contexto de Velocity solamente contiene objetos, por lo que cuando
+    se dice 'booleano' se habla en realidad de la clase Boolean. Esto es
+    cierto incluso para los métodos que devuelven un valor de tipo
+    <code>boolean</code> - la infraestructura de introspección devolverá
+    un <code>Boolean</code> del mismo valor lógico.
 </p>
 
 <p>
-	El contenido que se encuentra entre el enunciado <em>#if</em> y el
-	enunciado <em>#end</em> es lo que se escribe en la plantilla si la
-	evaluación resulta en un valor verdadero. En este caso, si
-	<em>$foo</em> es verdadero, la salida será: "Velocity!". De manera
-	análoga, si <em>$foo</em> tiene un valor <em>null</em>, o evalua a
-	falso, entonces el enunciado completo es falso y no se escribe nada.
+    El contenido que se encuentra entre el enunciado <em>#if</em> y el
+    enunciado <em>#end</em> es lo que se escribe en la plantilla si la
+    evaluación resulta en un valor verdadero. En este caso, si
+    <em>$foo</em> es verdadero, la salida será: "Velocity!". De manera
+    análoga, si <em>$foo</em> tiene un valor <em>null</em>, o evalua a
+    falso, entonces el enunciado completo es falso y no se escribe nada.
 </p>
 
 <p>
-	Un elemento <em>#elseif</em> ó <em>#else</em> puede utilizarse junto
-	con una sentencia <em>#if</em> para indicar condiciones adicionales
-	o la labor por defecto. Note que el Motor de Plantillas de Velocity
-	parará en la primera expresión que evalue a verdadero. En el ejemplo
-	siguiente suponga que <em>$foo</em> tiene un valor de 15 y
-	<em>$bar</em> tiene un valor de 6.
+    Un elemento <em>#elseif</em> ó <em>#else</em> puede utilizarse junto
+    con una sentencia <em>#if</em> para indicar condiciones adicionales
+    o la labor por defecto. Note que el Motor de Plantillas de Velocity
+    parará en la primera expresión que evalue a verdadero. En el ejemplo
+    siguiente suponga que <em>$foo</em> tiene un valor de 15 y
+    <em>$bar</em> tiene un valor de 6.
 </p>
 
 <source><![CDATA[
 #if( $foo < 10 )
-	<strong>Vaya hacía el Norte</strong>
+    <strong>Vaya hacía el Norte</strong>
 #elseif( $foo == 10 )
     <strong>Vaya hacía el Este</strong>
 #elseif( $bar == 6 )
-	<strong>Vaya al Sur</strong>
+    <strong>Vaya al Sur</strong>
 #else
     <strong>Vaya al Oeste</strong>
 #end
 ]]></source>
 
-	<p>En este ejemplo, <em>$foo</em> es mayor que diez, por lo que las
-	dos primeras comparaciones fallan. A continuación se compara
-	<em>$bar</em> con 6, como son iguales, la salida es <strong>Vaya al
-		Sur</strong>
+    <p>En este ejemplo, <em>$foo</em> es mayor que diez, por lo que las
+    dos primeras comparaciones fallan. A continuación se compara
+    <em>$bar</em> con 6, como son iguales, la salida es <strong>Vaya al
+        Sur</strong>
     </p>
 
     <p>
-	<a name="Operadores Lógicos y Relacionales"><strong>Operadores
-			Lógicos y Relacionales</strong></a>
+    <a name="Operadores Lógicos y Relacionales"><strong>Operadores
+            Lógicos y Relacionales</strong></a>
     </p>
 
-	<p>
-	Velocity usa el operador de equivalencia para determinar las
-	relaciones entre las variables. A continuación hay un ejemplo
-	sencillo para ilustrar como se utiliza el operador de igualdad.
+    <p>
+    Velocity usa el operador de equivalencia para determinar las
+    relaciones entre las variables. A continuación hay un ejemplo
+    sencillo para ilustrar como se utiliza el operador de igualdad.
     </p>
 
 <source><![CDATA[
@@ -1085,19 +1085,19 @@
 #set ($bar = "ácido ribonucleico")
 
 #if ($foo == $bar)
-	En este caso es claro que no son equivalentes por lo que....
+    En este caso es claro que no son equivalentes por lo que....
   In this case it's clear they aren't equivalent. So...
 #else
-	No son equivalentes y esta será la salida.
+    No son equivalentes y esta será la salida.
 #end
 ]]></source>
 
 <p>
-	Velocity tiene también operadores lógicos para el Y, el O y el NO
-	(AND, OR y NOT). Para mayor información vea la <a
-		href="vtl-reference-guide.html">Guía de Referencia VTL</a>.
-	A continuación se encuentran ejemplos que demuestran la utilización
-	de los operadores lógicos AND, OR y NOT.
+    Velocity tiene también operadores lógicos para el Y, el O y el NO
+    (AND, OR y NOT). Para mayor información vea la <a
+        href="../docs/vtl-reference-guide.html">Guía de Referencia VTL</a>.
+    A continuación se encuentran ejemplos que demuestran la utilización
+    de los operadores lógicos AND, OR y NOT.
     </p>
 
 <source><![CDATA[
@@ -1105,26 +1105,26 @@
 ## Y lógico
 
 #if( $foo && $bar )
-	<strong>Esto Y aquello</strong>
+    <strong>Esto Y aquello</strong>
 #end
 
 ]]></source>
 
     <p>
-	La directiva <em>#if()</em> solamente evaluará a verdadero si tanto
-	<em>$foo</em> como <em>$bar</em> son ciertos. Si <em>$foo</em> es
-	falso la expresión evaluará a falso; <em>$bar</em> no será evaluada.
-	Si <em>$foo</em> es verdadero el Motor de Plantillas de Velocity
-	verificará el valor de <em>$bar</em>; si <em>$bar</em> es cierto,
-	entonces toda la expresión es cierto y la salida es <strong>Esto Y
-		aquello</strong>. Si <em>$bar</em> es falso, entonces no habrá
-	ninguna salida porque toda la expresión es falsa.
+    La directiva <em>#if()</em> solamente evaluará a verdadero si tanto
+    <em>$foo</em> como <em>$bar</em> son ciertos. Si <em>$foo</em> es
+    falso la expresión evaluará a falso; <em>$bar</em> no será evaluada.
+    Si <em>$foo</em> es verdadero el Motor de Plantillas de Velocity
+    verificará el valor de <em>$bar</em>; si <em>$bar</em> es cierto,
+    entonces toda la expresión es cierto y la salida es <strong>Esto Y
+        aquello</strong>. Si <em>$bar</em> es falso, entonces no habrá
+    ninguna salida porque toda la expresión es falsa.
     </p>
 
-	<p>
-	El O lógico trabaja de la misma manera, pero sólo una de las
-	referencias debe evaluar a verdadero para que toda la expresión
-	evalue a verdadero. Considere el ejemplo siguiente.
+    <p>
+    El O lógico trabaja de la misma manera, pero sólo una de las
+    referencias debe evaluar a verdadero para que toda la expresión
+    evalue a verdadero. Considere el ejemplo siguiente.
     </p>
 
 <source><![CDATA[
@@ -1137,19 +1137,19 @@
 ]]></source>
 
     <p>
-	Si <em>$foo</em> es verdadero, el Motor de Plantillas de Velocity no
-	necesita consultar <em>$bar,</em>; sin importar si <em>$bar</em> es
-	cierto o falso, la expresión será cierta, y <strong>Esto O
-		Aquello</strong> será la salida. Si <em>$foo</em> es falso, en
-	cambio, es necesario verificar <em>$bar</em>. En este caso, si
-	<em>$bar</em> es falso, entonces la expresión es falsa y no se
-	escribe nada. De otro lado, si <em>$bar</em> es verdadero, entonces
-	toda la expresión es verdadera y el resultado es <strong>Esto O
-		Aquello</strong>
+    Si <em>$foo</em> es verdadero, el Motor de Plantillas de Velocity no
+    necesita consultar <em>$bar,</em>; sin importar si <em>$bar</em> es
+    cierto o falso, la expresión será cierta, y <strong>Esto O
+        Aquello</strong> será la salida. Si <em>$foo</em> es falso, en
+    cambio, es necesario verificar <em>$bar</em>. En este caso, si
+    <em>$bar</em> es falso, entonces la expresión es falsa y no se
+    escribe nada. De otro lado, si <em>$bar</em> es verdadero, entonces
+    toda la expresión es verdadera y el resultado es <strong>Esto O
+        Aquello</strong>
     </p>
 
-	<p>
-	Con el operador lógico NO, solo hay un argumento :
+    <p>
+    Con el operador lógico NO, solo hay un argumento :
     </p>
 
 <source><![CDATA[
@@ -1163,12 +1163,12 @@
 ]]></source>
 
 <p>
-	Aquí si <em>$foo</em> es cierto, entonces <em>!$foo</em> es falso, y
-	no se escribe nada. Por el contrario, si <em>$foo</em> es falso,
-	entonces <em>!$foo</em> será verdadero y <strong>eso NO</strong>
-	será escrito. Tenga cuidado de no confundir este operador con la
-	<em>referencia sileciosa $!foo</em>, que es algo completamente
-	distinto.
+    Aquí si <em>$foo</em> es cierto, entonces <em>!$foo</em> es falso, y
+    no se escribe nada. Por el contrario, si <em>$foo</em> es falso,
+    entonces <em>!$foo</em> será verdadero y <strong>eso NO</strong>
+    será escrito. Tenga cuidado de no confundir este operador con la
+    <em>referencia sileciosa $!foo</em>, que es algo completamente
+    distinto.
     </p>
 
 
@@ -1179,8 +1179,8 @@
    <strong>Ciclo Foreach</strong>
 
    <p>
-   	El elemento <em>#foreach</em> permite la construcción de ciclos. Por
-	ejemplo:
+    El elemento <em>#foreach</em> permite la construcción de ciclos. Por
+    ejemplo:
     </p>
 
 <source><![CDATA[
@@ -1192,59 +1192,59 @@
 ]]></source>
 
 <p>
-	Este cilco <em>#foreach</em> hace que el objeto correspondiente a la
-	lista de $todosProductos sea iterado buscando todos los productos de
-	la lista. En cada iteración del ciclo, el valor de
-	<em>$todosProductos</em> se asigna a la variable <em>$producto</em>.
-    </p>
-
-	<p>
-	El contenido de la variable <em>$todosProductos</em> es un Vector,
-	una tabla de Hashing (Hashtable) o un arreglo (Array). El valor
-	asignado a la variable <em>$producto</em> es un objeto Java y se
-	puede referenciar desde una variabkle como tal. Por ejemplo, si
-	<em>$product</em> fuera realmente un elemento de la clase Producto
-	en Java, su nombre se podría obtener referenciando el método
-	<em>$producto.Nombre</em> (ie: <em>$Product.getName()</em>).
-    </p>
-
-	<p>
-	Ahora supongamos que <em>$todosProductos</em> es una tabla de
-	Hashing. Si usted quisiera recuperar los valores de las llaves de la
-	tabla de Hashing, al igual que los objetos dentro de esta, usted
-	podría utilizar código como el siguiente:
+    Este cilco <em>#foreach</em> hace que el objeto correspondiente a la
+    lista de $todosProductos sea iterado buscando todos los productos de
+    la lista. En cada iteración del ciclo, el valor de
+    <em>$todosProductos</em> se asigna a la variable <em>$producto</em>.
+    </p>
+
+    <p>
+    El contenido de la variable <em>$todosProductos</em> es un Vector,
+    una tabla de Hashing (Hashtable) o un arreglo (Array). El valor
+    asignado a la variable <em>$producto</em> es un objeto Java y se
+    puede referenciar desde una variabkle como tal. Por ejemplo, si
+    <em>$product</em> fuera realmente un elemento de la clase Producto
+    en Java, su nombre se podría obtener referenciando el método
+    <em>$producto.Nombre</em> (ie: <em>$Product.getName()</em>).
+    </p>
+
+    <p>
+    Ahora supongamos que <em>$todosProductos</em> es una tabla de
+    Hashing. Si usted quisiera recuperar los valores de las llaves de la
+    tabla de Hashing, al igual que los objetos dentro de esta, usted
+    podría utilizar código como el siguiente:
     </p>
 
 <source><![CDATA[
 <ul>
-	#foreach( $llave in $todosProductos.keySet() )
-	<li>Llave: $llave -> Valor: $todosProductos.get($llave)</li>
+    #foreach( $llave in $todosProductos.keySet() )
+    <li>Llave: $llave -> Valor: $todosProductos.get($llave)</li>
 #end
 </ul>
 ]]></source>
 
 <p>
-	Velocity proporciona una manera sencilla de obtener el contador del
-	ciclo para que usted pueda hacer algo como lo siguiente:
+    Velocity proporciona una manera sencilla de obtener el contador del
+    ciclo para que usted pueda hacer algo como lo siguiente:
 </p>
 
 <source><![CDATA[
 <table>
-	#foreach( $cliente in $listaClientes )
+    #foreach( $cliente in $listaClientes )
     <tr><td>$velocityCount</td><td>$cliente.Nombre</td></tr>
 #end
 </table>
 ]]></source>
 
 <p>
-	El nombre por defecto para la referencia de la variable contador del
-	ciclo, que se especifica en el archivo
-	<code>velocity.properties</code>, es
-	$velocityCount. Por defecto el contador comienza en 1, pero esto se
-	puede hacer 0 o 1 en el archivo <code>velocity.properties</code>. A
-	continuación se muestra el fragmento de este archivo que corresponde
-	al contador de ciclo (en inglés, tal como aparece en el archivo
-	original):
+    El nombre por defecto para la referencia de la variable contador del
+    ciclo, que se especifica en el archivo
+    <code>velocity.properties</code>, es
+    $velocityCount. Por defecto el contador comienza en 1, pero esto se
+    puede hacer 0 o 1 en el archivo <code>velocity.properties</code>. A
+    continuación se muestra el fragmento de este archivo que corresponde
+    al contador de ciclo (en inglés, tal como aparece en el archivo
+    original):
     </p>
 
 <source><![CDATA[
@@ -1261,15 +1261,15 @@
 
 <section name="Include">
 
-	<p>
-	El elemento de script <em>#include</em> le permite al diseñador de
-	plantillas importar un archivo local, que después es insertado en la
-	localización donde se encuentra la sentencia <em>#include</em>. Los
-	contenidos del archivo no se muestran por intermedio del motor de
-	plantillas por lo que si se hacen referencias dentro del archivo,
-	estas no serán reemplazadas. Por motivos de seguridad el archivo que
-	va a ser incluido debe encontrarse en el directorio indicado por la
-	propiedad TEMPLATE_ROOT.
+    <p>
+    El elemento de script <em>#include</em> le permite al diseñador de
+    plantillas importar un archivo local, que después es insertado en la
+    localización donde se encuentra la sentencia <em>#include</em>. Los
+    contenidos del archivo no se muestran por intermedio del motor de
+    plantillas por lo que si se hacen referencias dentro del archivo,
+    estas no serán reemplazadas. Por motivos de seguridad el archivo que
+    va a ser incluido debe encontrarse en el directorio indicado por la
+    propiedad TEMPLATE_ROOT.
     </p>
 
 <source><![CDATA[
@@ -1277,9 +1277,9 @@
 ]]></source>
 
 <p>
-	El archivo al que se refiere la directiva <em>#include</em> se
-	encierra entre comillas. Si mas de un archivo será incluido, los
-	nombres de los archivos a incluir deben ir separados por comas.
+    El archivo al que se refiere la directiva <em>#include</em> se
+    encierra entre comillas. Si mas de un archivo será incluido, los
+    nombres de los archivos a incluir deben ir separados por comas.
     </p>
 
 <source><![CDATA[
@@ -1287,14 +1287,14 @@
 ]]></source>
 
 <p>
-	El archivo a incluir no tiene que ser referenciado por nombre, de
-	hecho, muchas veces es preferible usar una variable, en lugar de un
-	nombre de archivo. Esto puede ser útil para dirigir la salida de
-	acuerdo a criterios determinados cuando la solicitud de la página es
-	enviada, es decir, que dependa de factores como los datos del
-	usuario que visita la página, el momento del día, etc. A
-	continuación se muestra un ejemplo en el que se usan tanto un nombre
-	como una variable.
+    El archivo a incluir no tiene que ser referenciado por nombre, de
+    hecho, muchas veces es preferible usar una variable, en lugar de un
+    nombre de archivo. Esto puede ser útil para dirigir la salida de
+    acuerdo a criterios determinados cuando la solicitud de la página es
+    enviada, es decir, que dependa de factores como los datos del
+    usuario que visita la página, el momento del día, etc. A
+    continuación se muestra un ejemplo en el que se usan tanto un nombre
+    como una variable.
     </p>
 
 <source><![CDATA[
@@ -1306,9 +1306,9 @@
 <section name="Parse">
 
 <p>
-	El elemento de script <em>#parse</em> le permite al diseñadore de
-	plantillas importar un archivo local que contiene VTL. Velocity
-	procesará el VTL y mostrará la plantilla especificada.
+    El elemento de script <em>#parse</em> le permite al diseñadore de
+    plantillas importar un archivo local que contiene VTL. Velocity
+    procesará el VTL y mostrará la plantilla especificada.
 </p>
 
 <source><![CDATA[
@@ -1316,25 +1316,25 @@
 ]]></source>
 
 <p>
-	Al igual que la directiva <em>#include</em>, <em>#parse</em> puede
-	utilizar una variable, en lugar de una plantilla. Todas las
-	plantillas a las que <em>#parse</em> se refiera deben incluirse bajo
-	TEMPLATE_ROOT. A diferencia de la directva <em>#include</em>,
-	<em>#parse</em> solo recibe un argumento.
+    Al igual que la directiva <em>#include</em>, <em>#parse</em> puede
+    utilizar una variable, en lugar de una plantilla. Todas las
+    plantillas a las que <em>#parse</em> se refiera deben incluirse bajo
+    TEMPLATE_ROOT. A diferencia de la directva <em>#include</em>,
+    <em>#parse</em> solo recibe un argumento.
 </p>
 
 <p>
-	Las plantillas de VTL puede tener sentencias <em>#parse</em> que se
-	refieran a plantillas que a su vez tengan sentencias
-	<em>#parse</em>. La línea <em>parse_directive.maxdepth</em> del
-	archivo <code>velocity.properties</code>, cuyo valor por defecto es
-	10, permite a los usuarios configurar el máximo número de
-	referencias a <em>#parse</em> que pueden ocurrir desde una única
-	plantilla. (Nota: Si la propiedad <em>parse_directive.maxdepth</em>
-	no esta dentro del archivo <code>velocity.properties</code>,
-	Velocity establecerá el valor por defecto en 10.) La recursión esta
-	permitida, por ejemplo, si la plantilla <code>hacerfoo.vm</code>
-	contiene las siguientes líneas:
+    Las plantillas de VTL puede tener sentencias <em>#parse</em> que se
+    refieran a plantillas que a su vez tengan sentencias
+    <em>#parse</em>. La línea <em>parse_directive.maxdepth</em> del
+    archivo <code>velocity.properties</code>, cuyo valor por defecto es
+    10, permite a los usuarios configurar el máximo número de
+    referencias a <em>#parse</em> que pueden ocurrir desde una única
+    plantilla. (Nota: Si la propiedad <em>parse_directive.maxdepth</em>
+    no esta dentro del archivo <code>velocity.properties</code>,
+    Velocity establecerá el valor por defecto en 10.) La recursión esta
+    permitida, por ejemplo, si la plantilla <code>hacerfoo.vm</code>
+    contiene las siguientes líneas:
     </p>
 
 <source><![CDATA[
@@ -1345,8 +1345,8 @@
 ]]></source>
 
 <p>
-	Hay una referencia a la plantilla <code>parsefoo.vm</code>, que
-	contiene el siguiente código VTL:
+    Hay una referencia a la plantilla <code>parsefoo.vm</code>, que
+    contiene el siguiente código VTL:
 </p>
 
 <source><![CDATA[
@@ -1360,11 +1360,11 @@
 ]]></source>
 
 <p>
-	Después de que se muestra "Cuenta Regresiva.", Velocity pasa por
-	<code>parsefoo.vm</code>, contando hacía abajo desde 8. Cuando el
-	conteo llegue a 0, mostrará el mensaje "Listo parsefoo.vm!". En este
-	punto Velocity volverá a <code>dofoo.vm</code> y escribirá el
-	mensaje "Listo hacerfoo.vm!".
+    Después de que se muestra "Cuenta Regresiva.", Velocity pasa por
+    <code>parsefoo.vm</code>, contando hacía abajo desde 8. Cuando el
+    conteo llegue a 0, mostrará el mensaje "Listo parsefoo.vm!". En este
+    punto Velocity volverá a <code>dofoo.vm</code> y escribirá el
+    mensaje "Listo hacerfoo.vm!".
     </p>
 
  </section>
@@ -1386,13 +1386,13 @@
 <section name="Velocimacros">
 
     <p>
-	El elemento de script <em>#macro</em> script permite definir un
-	segmento de plantilla VTL repetitivo. Los Velocimacros son muy
-	útiles en una amplia gama se situaciones, tanto simples como
-	complejas. El siguiente Velocimacro, creado con el único propósito
-	de ahorrar tecleo y minimizar errores tipográficos, provee una
-	introducción al concepto de Velocimacros
-	element allows template designers to.
+    El elemento de script <em>#macro</em> script permite definir un
+    segmento de plantilla VTL repetitivo. Los Velocimacros son muy
+    útiles en una amplia gama se situaciones, tanto simples como
+    complejas. El siguiente Velocimacro, creado con el único propósito
+    de ahorrar tecleo y minimizar errores tipográficos, provee una
+    introducción al concepto de Velocimacros
+    element allows template designers to.
     </p>
 
 <source><![CDATA[
@@ -1402,8 +1402,8 @@
 ]]></source>
 
 <p>
-	El Velocimacro que se define en este ejemplo es <em>d</em>, y se
-	puede llamar de manera similar a cualquier otra directiva VTL:
+    El Velocimacro que se define en este ejemplo es <em>d</em>, y se
+    puede llamar de manera similar a cualquier otra directiva VTL:
     </p>
 
 <source><![CDATA[
@@ -1439,7 +1439,7 @@
 el segundo argumento el de <em>$algunalista</em>
     </p>
 
-	<p>
+    <p>
 Cualquier cosa que se pueda incluir dentro de una plantilla VTL puede
 formar parte delcuerpo de un Velocimacro. El Velocimacro
 <em>filastabla</em> es una sentencia <em>foreach</em>. Hay dos
@@ -1451,14 +1451,14 @@
 #set( $grandeslagos = ["Superior","Michigan","Huron","Erie","Ontario"] )
 #set( $color = "blue" )
 <table>
-	#filastabla( $color $grandeslagos )
+    #filastabla( $color $grandeslagos )
 </table>
 ]]></source>
 
     <p>
-	Note que <em>$grandeslagos</em> toma el lugar de
-	<em>$algunalista</em>. Cuando el Velocimacro es llamado en esta
-	situación, la siguiente salida es generada:
+    Note que <em>$grandeslagos</em> toma el lugar de
+    <em>$algunalista</em>. Cuando el Velocimacro es llamado en esta
+    situación, la siguiente salida es generada:
     </p>
 
 <source><![CDATA[
@@ -1495,7 +1495,7 @@
 #set( $partes = ["raíz","tallo","hojas","flores","frutos"] )
 #set( $colorCelda = "#CC00FF" )
 <table>
-	#filastabla( $colorCelda $parts )
+    #filastabla( $colorCelda $parts )
 </table>
 ]]></source>
 
@@ -1525,35 +1525,35 @@
 
   <ul>
     <li>
-	Referencia : cualquier cosa que comience con '$'
+    Referencia : cualquier cosa que comience con '$'
     </li>
     <li>
-	Cadena de caracteres : algo como "$foo" u 'hola'
+    Cadena de caracteres : algo como "$foo" u 'hola'
     </li>
     <li>
       Número : 1, 2 etc
     </li>
     <li>
-		Rango de enteros : [ 1..2] ó [$foo .. $bar]
+        Rango de enteros : [ 1..2] ó [$foo .. $bar]
     </li>
     <li>
-      	ObjectArray : [ "a", "b", "c"]
+        ObjectArray : [ "a", "b", "c"]
     </li>
     <li>
        El valor booleano "verdadero"
     </li>
-	<li>
-	   El valor booleano "falso"
+    <li>
+       El valor booleano "falso"
     </li>
   </ul>
 
   <p>
-  	Cuando pase referencias como argumentos para los Velocimacros tenga
-	en cuenta que las referencias se pasan 'por nombre'. Esto quiere
-	decir que su valor es 'generado' cada vez que se usa dentro del
-	Velocimacros. Esta característica le permite pasar referencias con
-	las llamadas de método y hacer que el método se llame cada vez. Por
-	ejemplo, cuando llame el siguiente Velocimacro
+    Cuando pase referencias como argumentos para los Velocimacros tenga
+    en cuenta que las referencias se pasan 'por nombre'. Esto quiere
+    decir que su valor es 'generado' cada vez que se usa dentro del
+    Velocimacros. Esta característica le permite pasar referencias con
+    las llamadas de método y hacer que el método se llame cada vez. Por
+    ejemplo, cuando llame el siguiente Velocimacro
    </p>
 
    <source><![CDATA[
@@ -1565,28 +1565,28 @@
    ]]></source>
 
    <p>
-   	Esa llamada hace que el método bar() de la referencia $foo sea
-	llamado 3 veces.
+    Esa llamada hace que el método bar() de la referencia $foo sea
+    llamado 3 veces.
+    </p>
+
+    <p>
+    A primera vista, esta característica parece sorprendente, pero
+    cuando se tiene en cuenta la motivación original de los Velocimacros
+    -- eliminar la duplicación de "copiar y pegar" del VTL usado varias
+    veces -- tiene mucho sentido. Permite pasar al Velocimacro objetos
+    con estado, como un objeto que genera colores en una secuencia
+    repetitiva para colorear las filas de una tabla.
     </p>
 
-	<p>
-	A primera vista, esta característica parece sorprendente, pero
-	cuando se tiene en cuenta la motivación original de los Velocimacros
-	-- eliminar la duplicación de "copiar y pegar" del VTL usado varias
-	veces -- tiene mucho sentido. Permite pasar al Velocimacro objetos
-	con estado, como un objeto que genera colores en una secuencia
-	repetitiva para colorear las filas de una tabla.
-    </p>
-
-	<p>
-	Si usted no desea utilizar esta característica siempre es posible
-	simplemente obtener el valor del método como una nueva referencia y
-	pasar ese valor:
+    <p>
+    Si usted no desea utilizar esta característica siempre es posible
+    simplemente obtener el valor del método como una nueva referencia y
+    pasar ese valor:
     </p>
 
     <source><![CDATA[
-	#set( $mivalor = $foo.bar() )
-	#llamame( $mivalor )
+    #set( $mivalor = $foo.bar() )
+    #llamame( $mivalor )
    ]]></source>
 
 
@@ -1596,7 +1596,7 @@
    Varias líneas en al archivo <code>velocity.properties</code> permiten
    flexibilizar la implementación de los Velocimacro. Tenga en cuenta
    que estas propiedades también están documentadas en la <a
-	   href="developer-guide.html">Guía de Desarrolladores</a>.
+       href="../docs/developer-guide.html">Guía de Desarrolladores</a>.
    </p>
 
    <p>
@@ -1608,83 +1608,83 @@
     </p>
 
     <p>
-	<code>velocimacro.permissions.allow.inline</code> - Esta propiedad,
-	que tiene como valores posibles verdadero y falso (true y false),
-	determina si los Velocimacros pueden ser definidos dentro de las
-	plantillas normales.
-	El valor por defecto, verdadero, le permite a los diseñadores
-	definir por si mismos macros en las plantillas.
+    <code>velocimacro.permissions.allow.inline</code> - Esta propiedad,
+    que tiene como valores posibles verdadero y falso (true y false),
+    determina si los Velocimacros pueden ser definidos dentro de las
+    plantillas normales.
+    El valor por defecto, verdadero, le permite a los diseñadores
+    definir por si mismos macros en las plantillas.
     </p>
 
     <p>
     <code>velocimacro.permissions.allow.inline.to.replace.global</code> -
-	Con valores posibles verdadero y falso (true y false), esta
-	propiedad le permite al usuario decidir si un Velocimacro definido
-	inline dentro de una plantilla puede reemplazar a la plantilla
-	global, que fue cargada al comienzo por medio de la propiedad
-	<code>velocimacro.library</code>. El valor por defecto, falso
-	(<code>false</code>), evita que los Velocimacros definidos en una
-	plantilla reemplacen a los que fueron cargados al inicio.
+    Con valores posibles verdadero y falso (true y false), esta
+    propiedad le permite al usuario decidir si un Velocimacro definido
+    inline dentro de una plantilla puede reemplazar a la plantilla
+    global, que fue cargada al comienzo por medio de la propiedad
+    <code>velocimacro.library</code>. El valor por defecto, falso
+    (<code>false</code>), evita que los Velocimacros definidos en una
+    plantilla reemplacen a los que fueron cargados al inicio.
     </p>
 
    <p>
    <code>velocimacro.permissions.allow.inline.local.scope</code> -
-	Con valores posibles verdadero y falso (true y false), valor por
-	defecto falso, esta propiedad dice si los Velocimacros definidos
-	inline son 'visibles' únicamente para la plantilla que los define.
-	Usted puede usar esta característica para hacer algunos trucos de
-	VM - si un VM global llama a otro VM global, con ancance inline, una
-	plantilla puede definir una implementación privada del segundo VM,
-	que será llamada por el primer VM cuando sea invocado en esa
-	plantilla. Ninguna de las otras templates es afectada.
+    Con valores posibles verdadero y falso (true y false), valor por
+    defecto falso, esta propiedad dice si los Velocimacros definidos
+    inline son 'visibles' únicamente para la plantilla que los define.
+    Usted puede usar esta característica para hacer algunos trucos de
+    VM - si un VM global llama a otro VM global, con ancance inline, una
+    plantilla puede definir una implementación privada del segundo VM,
+    que será llamada por el primer VM cuando sea invocado en esa
+    plantilla. Ninguna de las otras templates es afectada.
+    </p>
+
+    <p>
+    <code>velocimacro.context.localscope</code> -
+    Con valores posibles verdadero y falso (true y false), valor por
+    defecto falso. Cuando es verdadera cualquier modificación al
+    contexto por medio de un #set() dentro de un Velocimacro se
+    considera local a ese Velocimacro y no afecta permanentemente al
+    contexto.
     </p>
 
     <p>
-	<code>velocimacro.context.localscope</code> -
-	Con valores posibles verdadero y falso (true y false), valor por
-	defecto falso. Cuando es verdadera cualquier modificación al
-	contexto por medio de un #set() dentro de un Velocimacro se
-	considera local a ese Velocimacro y no afecta permanentemente al
-	contexto.
+    <code>velocimacro.library.autoreload</code> - Esta propiedad
+    controla el cargado automático de la libreria de Velocimacros. El
+    valor por defecto es <code>false</code>. Cuando es verdadero
+    (<code>true</code>) la librería fuente de un Velocimacro que ha sido
+    invocado será verificada para comprobar que no haya cambiado, y si
+    lo ha hecho será recargada. Esta característica le permite cambiar y
+    probar librerías de macros sin necesidad de reiniciar la aplicación
+    o el contenedor de servlets, de la misma manera que se hace con
+    plantillas normales.
+    Este modo solo funciona cuando el caché esta <i>apagado</i>
+    en los cargadores de recursos( e.g. <code>file.resource.loader.cache
+        = false</code>).
+    Esta característica esta pensada para el proceso de desarrollo, no
+    el de producción.
+    This property
     </p>
 
+    <strong>Cosas y Casos de Velocimacros</strong>
+
     <p>
-	<code>velocimacro.library.autoreload</code> - Esta propiedad
-	controla el cargado automático de la libreria de Velocimacros. El
-	valor por defecto es <code>false</code>. Cuando es verdadero
-	(<code>true</code>) la librería fuente de un Velocimacro que ha sido
-	invocado será verificada para comprobar que no haya cambiado, y si
-	lo ha hecho será recargada. Esta característica le permite cambiar y
-	probar librerías de macros sin necesidad de reiniciar la aplicación
-	o el contenedor de servlets, de la misma manera que se hace con
-	plantillas normales.
-	Este modo solo funciona cuando el caché esta <i>apagado</i>
-	en los cargadores de recursos( e.g. <code>file.resource.loader.cache
-		= false</code>).
-	Esta característica esta pensada para el proceso de desarrollo, no
-	el de producción.
-	This property
-    </p>
-
-	<strong>Cosas y Casos de Velocimacros</strong>
-
-	<p>
-	Actualmente los Velocimacros deben ser definidos antes de ser
-	utilizados por primera vez dentro de una plantilla. Esto significa
-	que sus declaraciones de #macro() deben aparecerantes de que usted
-	utilice los Velocimacros.
-    </p>
-
-	<p>
-	Esto es importante recordarlo cuando usted intenta hacerle #parse()
-	a una plantilla que contiene directivas #macro(). Como el #parse()
-	ocurre en tiempo de ejecución, y el parser decide si un elemento que
-	parece una VM es realmente un VM cuando esta haciendo el #parse(),
-	entonces probablemente el #parse() de un conjunto de declaraciones
-	no funciona como se esperaría. Para evitar este problema,
-	simplemente utilice la propiedad
-	<code>velocimacro.library</code>para cargar todos sus VM cuando se
-	inicie la aplicación.
+    Actualmente los Velocimacros deben ser definidos antes de ser
+    utilizados por primera vez dentro de una plantilla. Esto significa
+    que sus declaraciones de #macro() deben aparecerantes de que usted
+    utilice los Velocimacros.
+    </p>
+
+    <p>
+    Esto es importante recordarlo cuando usted intenta hacerle #parse()
+    a una plantilla que contiene directivas #macro(). Como el #parse()
+    ocurre en tiempo de ejecución, y el parser decide si un elemento que
+    parece una VM es realmente un VM cuando esta haciendo el #parse(),
+    entonces probablemente el #parse() de un conjunto de declaraciones
+    no funciona como se esperaría. Para evitar este problema,
+    simplemente utilice la propiedad
+    <code>velocimacro.library</code>para cargar todos sus VM cuando se
+    inicie la aplicación.
     </p>
  </section>
 
@@ -1857,7 +1857,7 @@
 Enviame
 #set($foo       = ["$10 y ","un pastel"])
                  #foreach           ($a in $foo )$a
-	#end por favor.
+    #end por favor.
 ]]></source>
 
 <p>
@@ -2066,7 +2066,7 @@
 
 <p>
 Tenga en cuenta que en segundo ejemplo el argumentos es evaluado <i>
-	dentro</i> de la VM, no a nivel del llamador. En otras palabras, el
+    dentro</i> de la VM, no a nivel del llamador. En otras palabras, el
 argumento para el VM es pasado completo y evaluado dentro del VM al que
 se le pasa. Esto le permite hacer cosas como :
 </p>
@@ -2138,23 +2138,23 @@
 </p>
 
     <p>
-	Esto es importante recordarlo cuando usted intenta hacerle #parse()
-	a una plantilla que contiene directivas #macro(). Como el #parse()
-	ocurre en tiempo de ejecución, y el parser decide si un elemento que
-	parece una VM es realmente un VM cuando esta haciendo el #parse(),
-	entonces probablemente el #parse() de un conjunto de declaraciones
-	no funciona como se esperaría. Para evitar este problema,
-	simplemente utilice la propiedad
-	<code>velocimacro.library</code>para cargar todos sus VM cuando se
-	inicie la aplicación.
+    Esto es importante recordarlo cuando usted intenta hacerle #parse()
+    a una plantilla que contiene directivas #macro(). Como el #parse()
+    ocurre en tiempo de ejecución, y el parser decide si un elemento que
+    parece una VM es realmente un VM cuando esta haciendo el #parse(),
+    entonces probablemente el #parse() de un conjunto de declaraciones
+    no funciona como se esperaría. Para evitar este problema,
+    simplemente utilice la propiedad
+    <code>velocimacro.library</code>para cargar todos sus VM cuando se
+    inicie la aplicación.
     </p>
 
 
-	<strong>¿Qué es la auto recarga de Velocimacros?</strong>
-
-	<p>
-	Existe una propiedad, pensada para usarse en <i>desarrollo</i>, no
-	en producción :
+    <strong>¿Qué es la auto recarga de Velocimacros?</strong>
+
+    <p>
+    Existe una propiedad, pensada para usarse en <i>desarrollo</i>, no
+    en producción :
   </p>
 
   <p>
@@ -2172,9 +2172,9 @@
   Velocimacros se recarguen.
     </p>
 
-	<p>
-	A continuación se muestra un conjunto sencillo de propiedades de
-	configuración.
+    <p>
+    A continuación se muestra un conjunto sencillo de propiedades de
+    configuración.
     </p>
 
     <source><![CDATA[
@@ -2183,7 +2183,7 @@
     velocimacro.library.autoreload = true
     ]]></source>
 
-	<p>No utilice esto en producción</p>
+    <p>No utilice esto en producción</p>
 
 </subsection>
 
@@ -2191,8 +2191,8 @@
 
 <p>
 Una pregunta común que los desarrolladores formulan es <i>¿Cómo
-	concateno cadenas de caracteres? ¿Existe algún análogo al operador
-	'+' en Java?</i>
+    concateno cadenas de caracteres? ¿Existe algún análogo al operador
+    '+' en Java?</i>
    </p>
 
    <p>
@@ -2215,40 +2215,40 @@
    ]]></source>
 
    <p>
-   	y la salida será 'El reloj es BigBen'. Para caso más interesantes,
-	como cuando ested desea concatenar las cadenas que pasará a un
-	método, o establecer el valor de una nueva referencia use
+    y la salida será 'El reloj es BigBen'. Para caso más interesantes,
+    como cuando ested desea concatenar las cadenas que pasará a un
+    método, o establecer el valor de una nueva referencia use
    </p>
 
    <source><![CDATA[
       #set( $tam = "Big" )
       #set( $nombre = "Ben" )
 
-	  #set($reloj = "$tam$nombre" )
+      #set($reloj = "$tam$nombre" )
 
-	 	El reloj es $reloj.
+        El reloj es $reloj.
     ]]></source>
 
-	<p>
-	Que resultará en la mismo que el ejemplo anterior. Como un ejemplo
-	final, cuando usted desea mezclar cadenas 'estáticas' con sus
-	referencias usted puede necesitar 'referencias formales':
+    <p>
+    Que resultará en la mismo que el ejemplo anterior. Como un ejemplo
+    final, cuando usted desea mezclar cadenas 'estáticas' con sus
+    referencias usted puede necesitar 'referencias formales':
     </p>
 
     <source><![CDATA[
-	  #set( $tam = "Big" )
+      #set( $tam = "Big" )
       #set( $nombre = "Ben" )
 
-	  #set($reloj = "${tam}Alto$nombre" )
+      #set($reloj = "${tam}Alto$nombre" )
 
-	  El reloj es $reloj.
+      El reloj es $reloj.
     ]]></source>
 
-	<p>
-	Ahora el resultado es 'El reloj es BigAltoBen'. La notación formal
-	es necesaria para que el procesador de las plantillas sepa que usted
-	quiso usar la referencia '$tam', en lugar de '$tamAlto', que sería
-	lo que entendería si los corchetes '{}' no estuvieran presentes.
+    <p>
+    Ahora el resultado es 'El reloj es BigAltoBen'. La notación formal
+    es necesaria para que el procesador de las plantillas sepa que usted
+    quiso usar la referencia '$tam', en lugar de '$tamAlto', que sería
+    lo que entendería si los corchetes '{}' no estuvieran presentes.
     </p>
 </subsection>
 
@@ -2260,8 +2260,8 @@
 Si encuentra algún error en este manual o tiene algún otro comentario o
 retroalimentación relacionada con la guía del usuario de Velocity, por
 favor envie un correo a <a
-	href="mailto:velocity-user@jakarta.apache.org">La lista de usuarios
-	de Velocity</a>.
+    href="mailto:velocity-user@jakarta.apache.org">La lista de usuarios
+    de Velocity</a>.
 Gracias!
   </p>
 

Modified: jakarta/velocity/core/trunk/xdocs/translations/user-guide_fi.xml
URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/xdocs/translations/user-guide_fi.xml?rev=216112&r1=216111&r2=216112&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/xdocs/translations/user-guide_fi.xml (original)
+++ jakarta/velocity/core/trunk/xdocs/translations/user-guide_fi.xml Tue Jul 12 21:49:29 2005
@@ -1121,7 +1121,7 @@
     <p>
       Velocity tukee myös loogisia AND ja OR
       operaattoreita. Lisätietoja löydät dokumentista <a
-      href="vtl-reference-guide.html">VTL Reference Guide</a>. Alla on
+      href="../docs/vtl-reference-guide.html">VTL Reference Guide</a>. Alla on
       esimerkkilause joka käyttää loogista AND:iä.
     </p>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-dev-help@jakarta.apache.org